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 implements PositionInfoService { @Autowired private PositionInfoRepository positionInfoRepository; @Override public List listPositionInfo(PositionDBQuery query) { if (query == null) { throw new BusinessException(ResultCodes.SERVER_PARAM_NULL); } return positionInfoRepository.listPositionInfoDO(query); } @Override public List listPositionInfoByPage(Page 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 positionInfos = positionInfoRepository.selectList(new LambdaQueryWrapper() // 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 positionInfos = positionInfoRepository.selectList(new LambdaQueryWrapper() // 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); } } }