郑永安
2023-06-19 7a6abd05683528032687c75e80e0bd2030a3e46c
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
package com.gkhy.safePlatform.account.service.baseService.impl;
 
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gkhy.safePlatform.account.entity.user.PositionInfo;
import com.gkhy.safePlatform.account.entity.user.PositionInfoDO;
import com.gkhy.safePlatform.account.enums.PositionStatusEnum;
import com.gkhy.safePlatform.account.model.query.PositionPageQuery;
import com.gkhy.safePlatform.account.model.query.PositionQuery;
import com.gkhy.safePlatform.account.model.query.db.PositionDBQuery;
import com.gkhy.safePlatform.account.model.query.db.PositionPageDBQuery;
import com.gkhy.safePlatform.account.repository.PositionInfoRepository;
import com.gkhy.safePlatform.account.service.baseService.PositionInfoService;
import com.gkhy.safePlatform.commons.enums.ResultCodes;
import com.gkhy.safePlatform.commons.exception.BusinessException;
import com.gkhy.safePlatform.commons.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import java.util.List;
 
@Service("positionInfoService")
public class PositionInfoServiceImpl extends ServiceImpl<PositionInfoRepository, PositionInfo> implements PositionInfoService {
 
    @Autowired
    private PositionInfoRepository positionInfoRepository;
 
    @Override
    public List<PositionInfoDO> listPositionInfo(PositionDBQuery query) {
        if (query == null) {
            throw new BusinessException(ResultCodes.SERVER_PARAM_NULL);
        }
        return positionInfoRepository.listPositionInfoDO(query);
    }
 
    @Override
    public List<PositionInfo> listPositionInfoByPage(Page<PositionInfo> page, PositionPageDBQuery dbQuery) {
        if (page == null || dbQuery == null) {
            throw new BusinessException(ResultCodes.SERVER_PARAM_NULL);
        }
        return positionInfoRepository.listPositionInfo(page,dbQuery);
    }
 
    @Override
    public PositionInfo getPositionInfoByCode(String code) {
        if (StringUtils.isBlank(code)) {
            throw new BusinessException(ResultCodes.SERVER_PARAM_NULL);
        }
        List<PositionInfo> positionInfos = positionInfoRepository.selectList(new LambdaQueryWrapper<PositionInfo>()
                // code 编码
                .eq(PositionInfo::getCode, code)
                // status 状态
                .eq(PositionInfo::getStatus, PositionStatusEnum.ENABLED.getCode()));
 
        if (positionInfos.size() > 1) {
            throw new BusinessException(ResultCodes.SERVER_DATABASE_DATA_DUPLICATED);
        }
        if (positionInfos.size() == 0) {
            return null;
        }
 
        return positionInfos.get(0);
 
    }
 
    @Override
    public PositionInfo getPositionInfoByName(String name) {
        if (StringUtils.isBlank(name)) {
            throw new BusinessException(ResultCodes.SERVER_PARAM_NULL);
        }
        List<PositionInfo> positionInfos = positionInfoRepository.selectList(new LambdaQueryWrapper<PositionInfo>()
                // code 编码
                .eq(PositionInfo::getName, name)
                // status 状态
                .eq(PositionInfo::getStatus, PositionStatusEnum.ENABLED.getCode()));
 
        if (positionInfos.size() > 1) {
            throw new BusinessException(ResultCodes.SERVER_DATABASE_DATA_DUPLICATED);
        }
        if (positionInfos.size() == 0) {
            return null;
        }
        return positionInfos.get(0);
    }
 
    @Override
    public void savePositionInfo(PositionInfo positionInfo) {
        if (positionInfo == null) {
            throw new BusinessException(ResultCodes.SERVER_PARAM_NULL);
        }
        int i = positionInfoRepository.insertPositionInfo(positionInfo);
        if (i != 1) {
            throw new BusinessException(ResultCodes.SERVER_ADD_ERROR);
        }
    }
 
    @Override
    public PositionInfoDO getPositionInfoById(Long positionId) {
        if (positionId == null) {
            throw new BusinessException(ResultCodes.SERVER_PARAM_NULL);
        }
        return positionInfoRepository.getPositionInfoDOById(positionId);
    }
 
    @Override
    public void updatePositionInfo(PositionInfo positionInfo) {
        if (positionInfo == null || positionInfo.getId() == null) {
            throw new BusinessException(ResultCodes.SERVER_PARAM_NULL);
        }
        int i = positionInfoRepository.updatePositionInfo(positionInfo);
        if (i == 0) {
            throw new BusinessException(ResultCodes.SERVER_UPDATE_DATA_NO_CHANGE);
        }
        if (i > 1) {
            throw new BusinessException(ResultCodes.SERVER_UPDATE_ERROR);
        }
    }
 
    @Override
    public void deletePositionInfoById(Long positionId) {
        if (positionId == null) {
            throw new BusinessException(ResultCodes.SERVER_PARAM_NULL);
        }
        int i = positionInfoRepository.updatePositionStatusById(positionId, PositionStatusEnum.ABANDONED.getCode());
        if (i == 0) {
            throw new BusinessException(ResultCodes.SERVER_UPDATE_DATA_NO_CHANGE);
        }
    }
 
}