package doumeemes.service.business.impl; import doumeemes.core.constants.ResponseStatus; import doumeemes.core.exception.BusinessException; import doumeemes.core.model.LoginUserInfo; import doumeemes.core.model.PageData; import doumeemes.core.model.PageWrap; import doumeemes.core.utils.Constants; import doumeemes.core.utils.DateUtil; import doumeemes.core.utils.Utils; import doumeemes.dao.business.CompanyPositionMapper; import doumeemes.dao.business.model.CompanyPosition; import doumeemes.service.business.CompanyPositionService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.Date; import java.util.List; /** * 企业岗位信息表Service实现 * @author 江蹄蹄 * @date 2022/05/06 14:51 */ @Service public class CompanyPositionServiceImpl implements CompanyPositionService { @Autowired private CompanyPositionMapper companyPositionMapper; @Override public Integer create(CompanyPosition companyPosition) { LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); if(!Constants.equalsInteger(user.getType(),Constants.USERTYPE.COM)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), ResponseStatus.NOT_ALLOWED.getMessage()); } CompanyPosition cpfind=new CompanyPosition(); cpfind.setName(companyPosition.getName()); cpfind.setCompanyId(user.getCompany().getId()); QueryWrapper wrapper = new QueryWrapper<>(cpfind); List findlist= companyPositionMapper.selectList(wrapper); if(findlist.size()>0){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "名称已存在不允许添加"); } CompanyPosition cpfind1=new CompanyPosition(); cpfind1.setCode(companyPosition.getCode()); QueryWrapper wrapper1 = new QueryWrapper<>(cpfind1); List findlist1= companyPositionMapper.selectList(wrapper1); if(findlist1.size()>0){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "编码已存在不允许添加"); } companyPosition.setCompanyId(user.getCompany().getId()); companyPosition.setCreateTime(DateUtil.getCurrentDate()); companyPosition.setDeleted(Constants.ZERO); companyPosition.setCreateUser(user.getId()); companyPosition.setStatus(Constants.formatIntegerNum(companyPosition.getStatus())); companyPositionMapper.insert(companyPosition); return companyPosition.getId(); } @Override public void deleteById(Integer id) { LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); if(findById(id) == null){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), ResponseStatus.DATA_EMPTY.getMessage()); } CompanyPosition companyPosition = new CompanyPosition(); companyPosition.setId(id); companyPosition.setDeleted(Constants.ONE); companyPosition.setUpdateTime(DateUtil.getCurrentDate()); companyPosition.setUpdateUser(user.getId()); companyPositionMapper.updateById(companyPosition); } @Override public void delete(CompanyPosition companyPosition) { UpdateWrapper deleteWrapper = new UpdateWrapper<>(companyPosition); companyPositionMapper.delete(deleteWrapper); } @Override public void deleteByIdInBatch(List ids) { LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); if (CollectionUtils.isEmpty(ids)) { return; } // companyPositionMapper.deleteBatchIds(ids); for (Integer id: ids) { CompanyPosition companyPosition=this.findById(id); companyPosition.setDeleted(Constants.ONE); companyPosition.setUpdateTime(new Date()); companyPosition.setUpdateUser(user.getId()); this.updateById(companyPosition); } } @Override public void updateById(CompanyPosition companyPosition) { if(findById(companyPosition.getId()) == null){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), ResponseStatus.DATA_EMPTY.getMessage()); } companyPositionMapper.updateById(companyPosition); } @Override public void updateByIdInBatch(List companyPositions) { if (CollectionUtils.isEmpty(companyPositions)) { return; } for (CompanyPosition companyPosition: companyPositions) { this.updateById(companyPosition); } } @Override public CompanyPosition findById(Integer id) { CompanyPosition companyPosition = new CompanyPosition(); companyPosition.setId(id); companyPosition.setDeleted(Constants.ZERO); return findOne(companyPosition); } @Override public CompanyPosition findOne(CompanyPosition companyPosition) { LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); if(!Constants.equalsInteger(user.getType(),Constants.USERTYPE.COM)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), ResponseStatus.NOT_ALLOWED.getMessage()); } companyPosition.setCompanyId(user.getCompany().getId()); QueryWrapper wrapper = new QueryWrapper<>(companyPosition); return companyPositionMapper.selectOne(wrapper); } @Override public List findList(CompanyPosition companyPosition) { LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); if(!Constants.equalsInteger(user.getType(),Constants.USERTYPE.COM)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), ResponseStatus.NOT_ALLOWED.getMessage()); } companyPosition.setDeleted(Constants.ZERO); companyPosition.setCompanyId(user.getCompany().getId()); QueryWrapper wrapper = new QueryWrapper<>(companyPosition); return companyPositionMapper.selectList(wrapper); } @Override public PageData findPage(PageWrap pageWrap) { LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); if(!Constants.equalsInteger(user.getType(),Constants.USERTYPE.COM)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), ResponseStatus.NOT_ALLOWED.getMessage()); } pageWrap.getModel().setDeleted(Constants.ZERO); pageWrap.getModel().setCompanyId(user.getCompany().getId()); IPage page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); QueryWrapper queryWrapper = new QueryWrapper<>(); Utils.MP.blankToNull(pageWrap.getModel()); if (pageWrap.getModel().getId() != null) { queryWrapper.lambda().eq(CompanyPosition::getId, pageWrap.getModel().getId()); } if (pageWrap.getModel().getDeleted() != null) { queryWrapper.lambda().eq(CompanyPosition::getDeleted, pageWrap.getModel().getDeleted()); } if (pageWrap.getModel().getCreateUser() != null) { queryWrapper.lambda().eq(CompanyPosition::getCreateUser, pageWrap.getModel().getCreateUser()); } if (pageWrap.getModel().getCreateTime() != null) { queryWrapper.lambda().ge(CompanyPosition::getCreateTime, Utils.Date.getStart(pageWrap.getModel().getCreateTime())); queryWrapper.lambda().le(CompanyPosition::getCreateTime, Utils.Date.getEnd(pageWrap.getModel().getCreateTime())); } if (pageWrap.getModel().getUpdateUser() != null) { queryWrapper.lambda().eq(CompanyPosition::getUpdateUser, pageWrap.getModel().getUpdateUser()); } if (pageWrap.getModel().getUpdateTime() != null) { queryWrapper.lambda().ge(CompanyPosition::getUpdateTime, Utils.Date.getStart(pageWrap.getModel().getUpdateTime())); queryWrapper.lambda().le(CompanyPosition::getUpdateTime, Utils.Date.getEnd(pageWrap.getModel().getUpdateTime())); } if (pageWrap.getModel().getCode() != null) { queryWrapper.lambda().eq(CompanyPosition::getCode, pageWrap.getModel().getCode()); } if (pageWrap.getModel().getName() != null) { queryWrapper.lambda().eq(CompanyPosition::getName, pageWrap.getModel().getName()); } if (pageWrap.getModel().getStatus() != null) { queryWrapper.lambda().eq(CompanyPosition::getStatus, pageWrap.getModel().getStatus()); } if (pageWrap.getModel().getRemark() != null) { queryWrapper.lambda().eq(CompanyPosition::getRemark, pageWrap.getModel().getRemark()); } if (pageWrap.getModel().getCompanyId() != null) { queryWrapper.lambda().eq(CompanyPosition::getCompanyId, pageWrap.getModel().getCompanyId()); } for(PageWrap.SortData sortData: pageWrap.getSorts()) { if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { queryWrapper.orderByDesc(sortData.getProperty()); } else { queryWrapper.orderByAsc(sortData.getProperty()); } } return PageData.from(companyPositionMapper.selectPage(page, queryWrapper)); } @Override public long count(CompanyPosition companyPosition) { LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); if(!Constants.equalsInteger(user.getType(),Constants.USERTYPE.COM)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), ResponseStatus.NOT_ALLOWED.getMessage()); } companyPosition.setDeleted(Constants.ZERO); companyPosition.setCompanyId(user.getCompany().getId()); QueryWrapper wrapper = new QueryWrapper<>(companyPosition); return companyPositionMapper.selectCount(wrapper); } }