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);
|
}
|
}
|
|
}
|