package com.doumee.service.business.impl; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; import com.doumee.core.utils.Constants; import com.doumee.core.utils.DateUtil; import com.doumee.dao.business.model.*; import com.doumee.dao.system.model.SystemUser; import com.doumee.service.business.third.model.LoginUserInfo; import com.doumee.service.business.third.model.PageData; import com.doumee.service.business.third.model.PageWrap; import com.doumee.core.utils.Utils; import com.doumee.dao.business.JkIccardMapper; import com.doumee.dao.business.model.JkIccard; import com.doumee.service.business.JkIccardService; 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 com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.commons.lang3.StringUtils; 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; import java.util.Objects; /** * 钥匙柜IC卡信息表Service实现 * @author 江蹄蹄 * @date 2025/09/28 09:01 */ @Service public class JkIccardServiceImpl implements JkIccardService { @Autowired private JkIccardMapper jkIccardMapper; @Override public Integer create(JkIccard jkIccard) { if(Objects.isNull(jkIccard) || StringUtils.isBlank(jkIccard.getCode()) || Objects.isNull(jkIccard.getStatus()) || Objects.isNull(jkIccard.getMemberId()) || Objects.isNull(jkIccard.getUserType()) ){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } LoginUserInfo loginUserInfo = jkIccard.getLoginUserInfo(); jkIccard.setCreateDate(new Date()); jkIccard.setCreator(loginUserInfo.getId()); jkIccard.setEditDate(jkIccard.getCreateDate()); jkIccard.setEditor(jkIccard.getCreator()); jkIccard.setIsdeleted(Constants.ZERO); //查询编号是否重复 if(jkIccardMapper.selectCount(new QueryWrapper().lambda().eq(JkIccard::getCode,jkIccard.getCode()).eq(JkIccard::getIsdeleted,Constants.ZERO))>Constants.ZERO){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"IC卡号已存在!"); } jkIccardMapper.insert(jkIccard); return jkIccard.getId(); } @Override public void deleteById(Integer id) { JkIccard jkIccard = jkIccardMapper.selectById(id); if(Objects.isNull(jkIccard)||Constants.equalsInteger(jkIccard.getIsdeleted(),Constants.ONE)){ throw new BusinessException(ResponseStatus.DATA_EMPTY); } if(Constants.equalsInteger(jkIccard.getStatus(),Constants.ZERO)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"启用数据无法进行删除!"); } } @Override public void delete(JkIccard jkIccard) { UpdateWrapper deleteWrapper = new UpdateWrapper<>(jkIccard); jkIccardMapper.delete(deleteWrapper); } @Override public void deleteByIdInBatch(List ids) { if (CollectionUtils.isEmpty(ids)) { return; } jkIccardMapper.deleteBatchIds(ids); } @Override public void updateById(JkIccard jkIccard) { if(Objects.isNull(jkIccard) || Objects.isNull(jkIccard.getId()) || StringUtils.isBlank(jkIccard.getCode()) || Objects.isNull(jkIccard.getStatus()) || Objects.isNull(jkIccard.getMemberId()) || Objects.isNull(jkIccard.getUserType()) ){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } LoginUserInfo loginUserInfo = jkIccard.getLoginUserInfo(); jkIccard.setCreateDate(new Date()); jkIccard.setCreator(loginUserInfo.getId()); jkIccard.setEditDate(jkIccard.getCreateDate()); jkIccard.setEditor(jkIccard.getCreator()); jkIccard.setIsdeleted(Constants.ZERO); //查询编号是否重复 if(jkIccardMapper.selectCount(new QueryWrapper().lambda().ne(JkIccard::getId,jkIccard.getId()).eq(JkIccard::getCode,jkIccard.getCode()).eq(JkIccard::getIsdeleted,Constants.ZERO))>Constants.ZERO){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"IC卡号已存在!"); } jkIccardMapper.updateById(jkIccard); } @Override public void updateByIdInBatch(List jkIccards) { if (CollectionUtils.isEmpty(jkIccards)) { return; } for (JkIccard jkIccard: jkIccards) { this.updateById(jkIccard); } } @Override public JkIccard findById(Integer id) { return jkIccardMapper.selectById(id); } @Override public JkIccard findOne(JkIccard jkIccard) { QueryWrapper wrapper = new QueryWrapper<>(jkIccard); return jkIccardMapper.selectOne(wrapper); } @Override public List findList(JkIccard jkIccard) { QueryWrapper wrapper = new QueryWrapper<>(jkIccard); return jkIccardMapper.selectList(wrapper); } @Override public PageData findPage(PageWrap pageWrap) { IPage page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); Utils.MP.blankToNull(pageWrap.getModel()); JkIccard model = pageWrap.getModel(); MPJLambdaWrapper wrapper = new MPJLambdaWrapper() .selectAll(JkIccard.class) .selectAs(Member::getName,JkIccard::getMemberName) .leftJoin(Member.class,Member::getId,JkIccard::getMemberId) .eq(JkIccard::getIsdeleted,Constants.ZERO) .eq(Objects.nonNull(model.getStatus()),JkIccard::getStatus,model.getStatus()) .like(StringUtils.isNotBlank(model.getCode()),JkIccard::getCode,model.getCode()) .like(StringUtils.isNotBlank(model.getMemberName()),Member::getName,model.getMemberName()) .orderByDesc(JkIccard::getCreateDate) ; IPage iPage = jkIccardMapper.selectJoinPage(page,JkIccard.class,wrapper); return PageData.from(iPage); } @Override public long count(JkIccard jkIccard) { QueryWrapper wrapper = new QueryWrapper<>(jkIccard); return jkIccardMapper.selectCount(wrapper); } @Override public void updateStatusById(JkIccard jkIccard) { if(Objects.isNull(jkIccard) || Objects.isNull(jkIccard.getId()) || Objects.isNull(jkIccard.getStatus())){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } jkIccardMapper.update(null,new UpdateWrapper() .lambda().set(JkIccard::getStatus,jkIccard.getStatus()) .set(JkIccard::getEditDate, DateUtil.getCurrDateTime()) .eq(JkIccard::getId,jkIccard.getId())); } }