package com.doumee.biz.system.impl; 
 | 
  
 | 
import com.doumee.biz.system.SystemDataPermissionBiz; 
 | 
import com.doumee.core.constants.Constants; 
 | 
import com.doumee.core.constants.DataPermissionConstants; 
 | 
import com.doumee.core.constants.ResponseStatus; 
 | 
import com.doumee.core.exception.BusinessException; 
 | 
import com.doumee.dao.system.model.SystemDataPermission; 
 | 
import com.doumee.service.system.SystemDataPermissionService; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.stereotype.Service; 
 | 
  
 | 
@Service 
 | 
public class SystemDataPermissionBizImpl implements SystemDataPermissionBiz { 
 | 
  
 | 
    @Autowired 
 | 
    private SystemDataPermissionService systemDataPermissionService; 
 | 
  
 | 
    @Override 
 | 
    public Integer create(SystemDataPermission systemDataPermission) { 
 | 
        // 验证是否已存在配置 
 | 
        this.check(systemDataPermission, "该业务模块与角色存在有效的数据权限,请勿重复配置"); 
 | 
        // 清空自定义数据 
 | 
        if ( 
 | 
            DataPermissionConstants.Type.DEPARTMENT_CUSTOM.getCode() != systemDataPermission.getType() && 
 | 
            DataPermissionConstants.Type.POSITION_CUSTOM.getCode() != systemDataPermission.getType() 
 | 
        ) { 
 | 
            systemDataPermission.setCustomData(""); 
 | 
        } 
 | 
        return systemDataPermissionService.create(systemDataPermission); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void update(SystemDataPermission systemDataPermission) { 
 | 
        // 清空自定义数据 
 | 
        if ( 
 | 
            DataPermissionConstants.Type.DEPARTMENT_CUSTOM.getCode() != systemDataPermission.getType() && 
 | 
            DataPermissionConstants.Type.POSITION_CUSTOM.getCode() != systemDataPermission.getType() 
 | 
        ) { 
 | 
            systemDataPermission.setCustomData(""); 
 | 
        } 
 | 
        systemDataPermissionService.updateById(systemDataPermission); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void updateStatus(SystemDataPermission systemDataPermission) { 
 | 
        if (Constants.formatIntegerNum(systemDataPermission.getDisabled()) == Constants.ONE) { 
 | 
            SystemDataPermission dbPermission = systemDataPermissionService.findById(systemDataPermission.getId()); 
 | 
            if (dbPermission == null) { 
 | 
                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), ResponseStatus.DATA_EMPTY.getMessage()); 
 | 
            } 
 | 
            // 验证是否已存在配置 
 | 
            this.check(dbPermission, "该业务模块与角色存在有效的数据权限,请先禁用后再尝试启动此数据权限"); 
 | 
        } 
 | 
        systemDataPermissionService.updateById(systemDataPermission); 
 | 
    } 
 | 
  
 | 
    private void check (SystemDataPermission systemDataPermission, String message) { 
 | 
        // 验证是否已存在配置 
 | 
        SystemDataPermission queryDto = new SystemDataPermission(); 
 | 
        queryDto.setRoleId(systemDataPermission.getRoleId()); 
 | 
        queryDto.setBusinessCode(systemDataPermission.getBusinessCode()); 
 | 
        queryDto.setDisabled(Constants.ZERO); 
 | 
        queryDto.setDeleted(Constants.ZERO); 
 | 
        if (systemDataPermissionService.count(queryDto) > 0) { 
 | 
            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), message); 
 | 
        } 
 | 
    } 
 | 
} 
 |