package com.doumee.service.business.impl; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; import com.doumee.core.model.LoginUserInfo; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.core.utils.Utils; import com.doumee.dao.business.HiddenDangerParamMapper; import com.doumee.dao.business.MemberMapper; import com.doumee.dao.business.model.CarDriver; import com.doumee.dao.business.model.HiddenDangerParam; import com.doumee.dao.business.model.Member; import com.doumee.service.business.HiddenDangerParamService; 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 io.swagger.models.auth.In; import org.apache.commons.lang3.StringUtils; 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 江蹄蹄 * @since 2024/04/28 16:06 */ @Service public class HiddenDangerParamServiceImpl implements HiddenDangerParamService { @Autowired private HiddenDangerParamMapper hiddenDangerParamMapper; @Autowired private MemberMapper memberMapper; @Override public Integer create(HiddenDangerParam model) { LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); if(loginUserInfo == null){ loginUserInfo = model.getLoginUserInfo(); } if(Constants.equalsInteger(model.getType(),Constants.ZERO)){ //如果是区域配置 List ids = Constants.getIntegerListByStrs(model.getMemberIds()); if(ids==null || ids.size() ==0){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,安全员信息不正确,请按要求填写内容!"); } List memberList = memberMapper.selectList(new QueryWrapper().lambda() .eq(Member::getType,Constants.TWO) .eq(Member::getIsdeleted,Constants.ZERO)); if(memberList == null || memberList.size() == 0 || memberList.size() != ids.size() ){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,请选择正确的安全员信息!"); } String names = null; String idss = null; for(Member member : memberList){ if(StringUtils.isNotBlank(names)){ names += ","; } if(StringUtils.isNotBlank(idss)){ idss += ","; } names += member.getName(); names += member.getId(); } model.setMemberNames(names); model.setMemberIds(idss); } model.setType(Constants.formatIntegerNum(model.getType())); model.setCreateDate(new Date()); model.setCreator(loginUserInfo.getId()); model.setEditDate(new Date()); model.setEditor(loginUserInfo.getId()); model.setStatus(Constants.ZERO); hiddenDangerParamMapper.insert(model); return model.getId(); } @Override public void deleteById(Integer id, LoginUserInfo userInfo) { HiddenDangerParam model = new HiddenDangerParam(); model.setEditDate(new Date()); model.setEditor(userInfo.getId()); model.setId(id); model.setIsdeleted(Constants.ONE); hiddenDangerParamMapper.updateById(model); } @Override public void delete(HiddenDangerParam hiddenDangerParam) { UpdateWrapper deleteWrapper = new UpdateWrapper<>(hiddenDangerParam); hiddenDangerParamMapper.delete(deleteWrapper); } @Override public void deleteByIdInBatch(List ids, LoginUserInfo userInfo) { if (CollectionUtils.isEmpty(ids)) { return; } for(Integer id :ids){ deleteById(id,userInfo); } } @Override public void updateById(HiddenDangerParam model) { LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); if(loginUserInfo == null){ loginUserInfo = model.getLoginUserInfo(); } HiddenDangerParam hiddenDangerParam = hiddenDangerParamMapper.selectById(model.getId()); if(hiddenDangerParam == null || Constants.equalsObject(hiddenDangerParam.getIsdeleted(),Constants.ONE)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,该配置信息不存在,请返回刷新页面重试!"); } if(Constants.equalsInteger(hiddenDangerParam.getType(),Constants.ZERO)){ //如果是区域配置,校验安全员信息是否正确 List ids = Constants.getIntegerListByStrs(model.getMemberIds()); if(ids==null || ids.size() ==0){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,安全员信息不正确,请按要求填写内容!"); } List memberList = memberMapper.selectList(new QueryWrapper().lambda() .eq(Member::getType,Constants.TWO) .eq(Member::getIsdeleted,Constants.ZERO)); if(memberList == null || memberList.size() == 0 || memberList.size() != ids.size() ){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,请选择正确的安全员信息!"); } String names = null; String idss = null; for(Member member : memberList){ if(StringUtils.isNotBlank(names)){ names += ","; } if(StringUtils.isNotBlank(idss)){ idss += ","; } names += member.getName(); names += member.getId(); } model.setMemberNames(names); model.setMemberIds(idss); } model.setType(Constants.formatIntegerNum(model.getType())); model.setEditDate(new Date()); model.setEditor(loginUserInfo.getId()); model.setStatus(Constants.ZERO); hiddenDangerParamMapper.updateById(model); } @Override public void updateByIdInBatch(List hiddenDangerParams) { if (CollectionUtils.isEmpty(hiddenDangerParams)) { return; } for (HiddenDangerParam hiddenDangerParam: hiddenDangerParams) { this.updateById(hiddenDangerParam); } } @Override public HiddenDangerParam findById(Integer id) { return hiddenDangerParamMapper.selectById(id); } @Override public HiddenDangerParam findOne(HiddenDangerParam hiddenDangerParam) { QueryWrapper wrapper = new QueryWrapper<>(hiddenDangerParam); return hiddenDangerParamMapper.selectOne(wrapper); } @Override public List findList(HiddenDangerParam hiddenDangerParam) { QueryWrapper wrapper = new QueryWrapper<>(hiddenDangerParam); return hiddenDangerParamMapper.selectList(wrapper); } @Override public PageData findPage(PageWrap pageWrap) { IPage page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); QueryWrapper queryWrapper = new QueryWrapper<>(); Utils.MP.blankToNull(pageWrap.getModel()); pageWrap.getModel().setIsdeleted(Constants.ZERO); queryWrapper.lambda() .eq(pageWrap.getModel().getId() != null, HiddenDangerParam::getId, pageWrap.getModel().getId()) .eq(pageWrap.getModel().getCreator() != null, HiddenDangerParam::getCreator, pageWrap.getModel().getCreator()) .ge(pageWrap.getModel().getCreateDate() != null, HiddenDangerParam::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())) .le(pageWrap.getModel().getCreateDate() != null, HiddenDangerParam::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())) .eq(pageWrap.getModel().getEditor() != null, HiddenDangerParam::getEditor, pageWrap.getModel().getEditor()) .ge(pageWrap.getModel().getEditDate() != null, HiddenDangerParam::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())) .le(pageWrap.getModel().getEditDate() != null, HiddenDangerParam::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())) .eq(pageWrap.getModel().getIsdeleted() != null, HiddenDangerParam::getIsdeleted, pageWrap.getModel().getIsdeleted()) .eq(pageWrap.getModel().getName() != null, HiddenDangerParam::getName, pageWrap.getModel().getName()) .eq(pageWrap.getModel().getRemark() != null, HiddenDangerParam::getRemark, pageWrap.getModel().getRemark()) .eq(pageWrap.getModel().getStatus() != null, HiddenDangerParam::getStatus, pageWrap.getModel().getStatus()) .eq(pageWrap.getModel().getSortnum() != null, HiddenDangerParam::getSortnum, pageWrap.getModel().getSortnum()) .eq(pageWrap.getModel().getImgurl() != null, HiddenDangerParam::getImgurl, pageWrap.getModel().getImgurl()) .eq(pageWrap.getModel().getMemberIds() != null, HiddenDangerParam::getMemberIds, pageWrap.getModel().getMemberIds()) .eq(pageWrap.getModel().getMemberNames() != null, HiddenDangerParam::getMemberNames, pageWrap.getModel().getMemberNames()) .eq(pageWrap.getModel().getType() != null, HiddenDangerParam::getType, pageWrap.getModel().getType()) .orderByDesc(HiddenDangerParam::getCreateDate) .eq( HiddenDangerParam::getIsdeleted, Constants.ZERO) ; for(PageWrap.SortData sortData: pageWrap.getSorts()) { if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { queryWrapper.orderByDesc(sortData.getProperty()); } else { queryWrapper.orderByAsc(sortData.getProperty()); } } return PageData.from(hiddenDangerParamMapper.selectPage(page, queryWrapper)); } @Override public long count(HiddenDangerParam hiddenDangerParam) { QueryWrapper wrapper = new QueryWrapper<>(hiddenDangerParam); return hiddenDangerParamMapper.selectCount(wrapper); } }