liukangdong
2024-12-23 7c23d914bcce65cfa3450b119d3ffcf0556c6145
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package com.doumee.biz.system.impl;
 
import com.doumee.biz.system.SystemDataPermissionBiz;
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 (!systemDataPermission.getDisabled()) {
            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(Boolean.FALSE);
        queryDto.setDeleted(Boolean.FALSE);
        if (systemDataPermissionService.count(queryDto) > 0) {
            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), message);
        }
    }
}