From bd6229ebd9cb543a22944ecb1142fad92b675dce Mon Sep 17 00:00:00 2001 From: rk <94314517@qq.com> Date: 星期一, 13 十月 2025 14:26:25 +0800 Subject: [PATCH] bug 修复 --- server/services/src/main/java/com/doumee/service/business/impl/IdentityInfoServiceImpl.java | 286 ++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 222 insertions(+), 64 deletions(-) diff --git a/server/services/src/main/java/com/doumee/service/business/impl/IdentityInfoServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/IdentityInfoServiceImpl.java index d1b698e..fd591be 100644 --- a/server/services/src/main/java/com/doumee/service/business/impl/IdentityInfoServiceImpl.java +++ b/server/services/src/main/java/com/doumee/service/business/impl/IdentityInfoServiceImpl.java @@ -2,26 +2,37 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.doumee.biz.system.SystemDictDataBiz; +import com.doumee.config.wx.SendWxMessage; import com.doumee.core.annotation.excel.ExcelColumn; import com.doumee.core.constants.Constants; 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.Utils; +import com.doumee.dao.business.CategoryMapper; import com.doumee.dao.business.IdentityInfoMapper; import com.doumee.dao.business.MemberMapper; import com.doumee.dao.business.model.IdentityInfo; import com.doumee.dao.business.model.Member; +import com.doumee.dao.dto.AuditDTO; +import com.doumee.dao.system.model.SystemUser; +import com.doumee.service.business.AliSmsService; import com.doumee.service.business.IdentityInfoService; 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 io.swagger.annotations.ApiModelProperty; +import me.chanjar.weixin.common.error.WxErrorException; +import nonapi.io.github.classgraph.json.Id; 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.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.util.ArrayList; @@ -42,14 +53,19 @@ @Autowired private MemberMapper memberMapper; @Autowired + private AliSmsService aliSmsService; + @Autowired private SystemDictDataBiz systemDictDataBiz; + @Autowired + private CategoryMapper categoryMapper; @Override + @Transactional(rollbackFor = {BusinessException.class,Exception.class}) public Integer create(IdentityInfo identityInfo) { if(Objects.isNull(identityInfo) - || Objects.isNull(identityInfo.getType()) - || Objects.isNull(identityInfo.getMemberId()) - || Objects.isNull(identityInfo.getAuthType()) + || Objects.isNull(identityInfo.getType()) + || Objects.isNull(identityInfo.getMemberId()) + || Objects.isNull(identityInfo.getAuthType()) || StringUtils.isEmpty(identityInfo.getLinkName()) || StringUtils.isEmpty(identityInfo.getTelephone()) || StringUtils.isEmpty(identityInfo.getLocation()) @@ -63,14 +79,36 @@ ){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } - //鏌ヨ鐢ㄦ埛鏄惁宸插瓨鍦ㄥ綋鍓嶈韩浠� - if(identityInfoMapper.selectCount(new QueryWrapper<IdentityInfo>().lambda().eq(IdentityInfo::getMemberId,identityInfo.getMemberId()) - .eq(IdentityInfo::getType,identityInfo.getType()))>Constants.ZERO){ - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"宸插瓨鍦ㄨ韬唤璇峰埛鏂版煡鐪嬶紒"); - }; - identityInfo.setCreateTime(new Date()); - identityInfo.setAuditStatus(Constants.ZERO); - identityInfoMapper.insert(identityInfo); + IdentityInfo model = identityInfoMapper.selectOne(new QueryWrapper<IdentityInfo>().lambda() + .eq(IdentityInfo::getMemberId,identityInfo.getMemberId()) + .eq(IdentityInfo::getType,identityInfo.getType()) + .last("limit 1") + ); + if(Objects.nonNull(model)){ + identityInfo.setId(model.getId()); + this.updateById(identityInfo); + return identityInfo.getId(); + } + + + //鏌ヨ鐢ㄦ埛鏄惁宸插瓨鍦ㄥ綋鍓嶈韩浠� + if(identityInfoMapper.selectCount(new QueryWrapper<IdentityInfo>().lambda() + .eq(IdentityInfo::getDeleted,Constants.ZERO) + .eq(IdentityInfo::getMemberId,identityInfo.getMemberId()) + .eq(IdentityInfo::getType,identityInfo.getType()))>Constants.ZERO){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"宸插瓨鍦ㄨ韬唤璇峰埛鏂版煡鐪嬶紒"); + }; + identityInfo.setDeleted(Constants.ZERO); + identityInfo.setCreateTime(new Date()); + identityInfo.setUpdateTime(identityInfo.getCreateTime()); + identityInfo.setAuditStatus(Constants.ONE); + identityInfoMapper.insert(identityInfo); + + memberMapper.update(new UpdateWrapper<Member>().lambda() + .set(Constants.equalsInteger(identityInfo.getType(),Constants.ZERO),Member::getWorkerIdentity,Constants.ONE) + .set(Constants.equalsInteger(identityInfo.getType(),Constants.ONE),Member::getDriverIdentity,Constants.ONE) + .set(Constants.equalsInteger(identityInfo.getType(),Constants.TWO),Member::getChefIdentity,Constants.ONE) + .eq(Member::getId,identityInfo.getMemberId())); return identityInfo.getId(); } @@ -94,6 +132,7 @@ } @Override + @Transactional(rollbackFor = {BusinessException.class,Exception.class}) public void updateById(IdentityInfo identityInfo) { if(Objects.isNull(identityInfo) || Objects.isNull(identityInfo.getId()) @@ -123,12 +162,20 @@ if(!Constants.equalsInteger(model.getAuditStatus(),Constants.THREE)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠鐘舵�佹棤娉曡繘琛岃鎿嶄綔"); } + identityInfo.setAuditRemark(""); identityInfo.setUpdateTime(new Date()); + identityInfo.setAuditStatus(Constants.ONE); identityInfoMapper.updateById(identityInfo); + memberMapper.update(new UpdateWrapper<Member>().lambda() + .set(Constants.equalsInteger(identityInfo.getType(),Constants.ZERO),Member::getWorkerIdentity,Constants.ONE) + .set(Constants.equalsInteger(identityInfo.getType(),Constants.ONE),Member::getDriverIdentity,Constants.ONE) + .set(Constants.equalsInteger(identityInfo.getType(),Constants.TWO),Member::getChefIdentity,Constants.ONE) + .eq(Member::getId,identityInfo.getMemberId())); } @Override + @Transactional(rollbackFor = {BusinessException.class,Exception.class}) public void updateLocation(IdentityInfo identityInfo) { if(Objects.isNull(identityInfo) || Objects.isNull(identityInfo.getId()) @@ -168,24 +215,50 @@ @Override public IdentityInfo findById(Integer id) { - IdentityInfo identityInfo = identityInfoMapper.selectById(id); - //缂哄け鍓嶇紑 - identityInfo.setPrefix(""); - return identityInfo; + IdentityInfo model = identityInfoMapper.selectById(id); + String path = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RESOURCE_PATH).getCode() + +systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.INENTITY_FILES).getCode(); + model.setImgList(new ArrayList<>()); + if(StringUtils.isNotBlank(model.getImg1())){ + model.getImgList().add(path + model.getImg1()); + } + if(StringUtils.isNotBlank(model.getImg2())){ + model.getImgList().add(path + model.getImg2()); + } + if(StringUtils.isNotBlank(model.getImg3())) { + model.getImgList().add(path + model.getImg3()); + } + if(StringUtils.isNotBlank(model.getImg4())){ + model.getImgList().add(path + model.getImg4()); + } + return model; } @Override public IdentityInfo findByMemberType(Integer type,Integer memberId){ - IdentityInfo identityInfo = identityInfoMapper.selectOne(new QueryWrapper<IdentityInfo>().lambda() + IdentityInfo model = identityInfoMapper.selectOne(new QueryWrapper<IdentityInfo>().lambda() .eq(IdentityInfo::getMemberId,memberId).eq(IdentityInfo::getType,type)); - if(Objects.nonNull(identityInfo)){ - //缂哄け鍓嶇紑 - identityInfo.setPrefix(""); + if(Objects.nonNull(model)){ + String path = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RESOURCE_PATH).getCode() + +systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.INENTITY_FILES).getCode(); + model.setImgList(new ArrayList<>()); + if(StringUtils.isNotBlank(model.getImg1())){ + model.getImgList().add(path + model.getImg1()); + } + if(StringUtils.isNotBlank(model.getImg2())){ + model.getImgList().add(path + model.getImg2()); + } + if(StringUtils.isNotBlank(model.getImg3())) { + model.getImgList().add(path + model.getImg3()); + } + if(StringUtils.isNotBlank(model.getImg4())){ + model.getImgList().add(path + model.getImg4()); + } }else{ - identityInfo = new IdentityInfo(); + model = new IdentityInfo(); } - return identityInfo; + return model; } @@ -230,26 +303,18 @@ } private void addMemberModelByType(Integer id,Integer type, List<IdentityInfo> list,String path) { - LambdaQueryWrapper<IdentityInfo> wrapper = new LambdaQueryWrapper<IdentityInfo>() + MPJLambdaWrapper<IdentityInfo> wrapper = new MPJLambdaWrapper<IdentityInfo>() + .selectAll(IdentityInfo.class) + .selectAs(SystemUser::getUsername,IdentityInfo::getEditorName) + .leftJoin(SystemUser.class,SystemUser::getId,IdentityInfo::getUpdateUser) .orderByDesc(IdentityInfo::getCreateTime )//鍙栨渶鏂颁竴鏉� .eq(IdentityInfo::getMemberId,id) .eq(IdentityInfo::getType,type) .eq(IdentityInfo::getDeleted,Constants.ZERO) .last("limit 1"); - IdentityInfo model = identityInfoMapper.selectOne(wrapper); + IdentityInfo model = identityInfoMapper.selectJoinOne(IdentityInfo.class,wrapper); if(model !=null){ - if(StringUtils.isNotBlank(model.getImg1())){ - model.setImg1(path+model.getImg1()); - } - if(StringUtils.isNotBlank(model.getImg2())){ - model.setImg1(path+model.getImg2()); - } - if(StringUtils.isNotBlank(model.getImg3())) { - model.setImg1(path + model.getImg3()); - } - if(StringUtils.isNotBlank(model.getImg4())){ - model.setImg1(path+model.getImg4()); - } + initModelImage(model,path); list.add(model); } } @@ -257,76 +322,108 @@ @Override public PageData<IdentityInfo> findPage(PageWrap<IdentityInfo> pageWrap) { IPage<IdentityInfo> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); - QueryWrapper<IdentityInfo> queryWrapper = new QueryWrapper<>(); + MPJLambdaWrapper<IdentityInfo> queryWrapper = new MPJLambdaWrapper<>(); Utils.MP.blankToNull(pageWrap.getModel()); + pageWrap.getModel().setDeleted(Constants.ZERO); + queryWrapper.selectAll(IdentityInfo.class) + .selectAs(Member::getNickName,IdentityInfo::getMemberName) + .selectAs(Member::getOpenid,IdentityInfo::getOpenid) + .selectAs(SystemUser::getUsername,IdentityInfo::getEditorName) + .leftJoin(Member.class,Member::getId,IdentityInfo::getMemberId) + .leftJoin(SystemUser.class,SystemUser::getId,IdentityInfo::getUpdateUser); if (pageWrap.getModel().getId() != null) { - queryWrapper.lambda().eq(IdentityInfo::getId, pageWrap.getModel().getId()); + queryWrapper.eq(IdentityInfo::getId, pageWrap.getModel().getId()); } if (pageWrap.getModel().getDeleted() != null) { - queryWrapper.lambda().eq(IdentityInfo::getDeleted, pageWrap.getModel().getDeleted()); + queryWrapper.eq(IdentityInfo::getDeleted, pageWrap.getModel().getDeleted()); } if (pageWrap.getModel().getCreateUser() != null) { - queryWrapper.lambda().eq(IdentityInfo::getCreateUser, pageWrap.getModel().getCreateUser()); + queryWrapper.eq(IdentityInfo::getCreateUser, pageWrap.getModel().getCreateUser()); } if (pageWrap.getModel().getCreateTime() != null) { - queryWrapper.lambda().ge(IdentityInfo::getCreateTime, Utils.Date.getStart(pageWrap.getModel().getCreateTime())); - queryWrapper.lambda().le(IdentityInfo::getCreateTime, Utils.Date.getEnd(pageWrap.getModel().getCreateTime())); + queryWrapper.ge(IdentityInfo::getCreateTime, Utils.Date.getStart(pageWrap.getModel().getCreateTime())); + queryWrapper.le(IdentityInfo::getCreateTime, Utils.Date.getEnd(pageWrap.getModel().getCreateTime())); } if (pageWrap.getModel().getUpdateUser() != null) { - queryWrapper.lambda().eq(IdentityInfo::getUpdateUser, pageWrap.getModel().getUpdateUser()); + queryWrapper.eq(IdentityInfo::getUpdateUser, pageWrap.getModel().getUpdateUser()); } if (pageWrap.getModel().getUpdateTime() != null) { - queryWrapper.lambda().ge(IdentityInfo::getUpdateTime, Utils.Date.getStart(pageWrap.getModel().getUpdateTime())); - queryWrapper.lambda().le(IdentityInfo::getUpdateTime, Utils.Date.getEnd(pageWrap.getModel().getUpdateTime())); + queryWrapper.ge(IdentityInfo::getUpdateTime, Utils.Date.getStart(pageWrap.getModel().getUpdateTime())); + queryWrapper.le(IdentityInfo::getUpdateTime, Utils.Date.getEnd(pageWrap.getModel().getUpdateTime())); } if (pageWrap.getModel().getRemark() != null) { - queryWrapper.lambda().eq(IdentityInfo::getRemark, pageWrap.getModel().getRemark()); + queryWrapper.like(IdentityInfo::getRemark, pageWrap.getModel().getRemark()); } if (pageWrap.getModel().getType() != null) { - queryWrapper.lambda().eq(IdentityInfo::getType, pageWrap.getModel().getType()); + queryWrapper.eq(IdentityInfo::getType, pageWrap.getModel().getType()); } if (pageWrap.getModel().getMemberId() != null) { - queryWrapper.lambda().eq(IdentityInfo::getMemberId, pageWrap.getModel().getMemberId()); + queryWrapper.eq(IdentityInfo::getMemberId, pageWrap.getModel().getMemberId()); } if (pageWrap.getModel().getAuthType() != null) { - queryWrapper.lambda().eq(IdentityInfo::getAuthType, pageWrap.getModel().getAuthType()); + queryWrapper.eq(IdentityInfo::getAuthType, pageWrap.getModel().getAuthType()); } if (pageWrap.getModel().getLinkName() != null) { - queryWrapper.lambda().eq(IdentityInfo::getLinkName, pageWrap.getModel().getLinkName()); + queryWrapper.like(IdentityInfo::getLinkName, pageWrap.getModel().getLinkName()); } if (pageWrap.getModel().getTelephone() != null) { - queryWrapper.lambda().eq(IdentityInfo::getTelephone, pageWrap.getModel().getTelephone()); + queryWrapper.like(IdentityInfo::getTelephone, pageWrap.getModel().getTelephone()); } if (pageWrap.getModel().getLocation() != null) { - queryWrapper.lambda().eq(IdentityInfo::getLocation, pageWrap.getModel().getLocation()); + queryWrapper.like(IdentityInfo::getLocation, pageWrap.getModel().getLocation()); } if (pageWrap.getModel().getCompanyName() != null) { - queryWrapper.lambda().eq(IdentityInfo::getCompanyName, pageWrap.getModel().getCompanyName()); + queryWrapper.like(IdentityInfo::getCompanyName, pageWrap.getModel().getCompanyName()); } if (pageWrap.getModel().getLat() != null) { - queryWrapper.lambda().eq(IdentityInfo::getLat, pageWrap.getModel().getLat()); + queryWrapper.eq(IdentityInfo::getLat, pageWrap.getModel().getLat()); } if (pageWrap.getModel().getLgt() != null) { - queryWrapper.lambda().eq(IdentityInfo::getLgt, pageWrap.getModel().getLgt()); + queryWrapper.eq(IdentityInfo::getLgt, pageWrap.getModel().getLgt()); } if (pageWrap.getModel().getAuditStatus() != null) { - queryWrapper.lambda().eq(IdentityInfo::getAuditStatus, pageWrap.getModel().getAuditStatus()); + queryWrapper.eq(IdentityInfo::getAuditStatus, pageWrap.getModel().getAuditStatus()); } if (pageWrap.getModel().getAuditTime() != null) { - queryWrapper.lambda().ge(IdentityInfo::getAuditTime, Utils.Date.getStart(pageWrap.getModel().getAuditTime())); - queryWrapper.lambda().le(IdentityInfo::getAuditTime, Utils.Date.getEnd(pageWrap.getModel().getAuditTime())); + queryWrapper.ge(IdentityInfo::getAuditTime, Utils.Date.getStart(pageWrap.getModel().getAuditTime())); + queryWrapper.le(IdentityInfo::getAuditTime, Utils.Date.getEnd(pageWrap.getModel().getAuditTime())); } if (pageWrap.getModel().getAuditRemark() != null) { - queryWrapper.lambda().eq(IdentityInfo::getAuditRemark, pageWrap.getModel().getAuditRemark()); + queryWrapper.like(IdentityInfo::getAuditRemark, pageWrap.getModel().getAuditRemark()); } - for(PageWrap.SortData sortData: pageWrap.getSorts()) { - if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { - queryWrapper.orderByDesc(sortData.getProperty()); - } else { - queryWrapper.orderByAsc(sortData.getProperty()); + queryWrapper.orderByAsc(IdentityInfo::getAuditStatus ); + queryWrapper.orderByDesc(IdentityInfo::getCreateTime ); + PageData<IdentityInfo> result = PageData.from(identityInfoMapper.selectJoinPage(page,IdentityInfo.class, queryWrapper)); + if(result!=null && result.getRecords()!=null){ + String path = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RESOURCE_PATH).getCode() + +systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.INENTITY_FILES).getCode(); + for (IdentityInfo model :result.getRecords()){ + initModelImage(model,path); } } - return PageData.from(identityInfoMapper.selectPage(page, queryWrapper)); + + return result; + + } + + private void initModelImage(IdentityInfo model, String path) { + model.setImgList(new ArrayList<>()); + if(StringUtils.isNotBlank(model.getImg1())){ + model.setImg1(path+model.getImg1()); + model.getImgList().add(model.getImg1()); + } + if(StringUtils.isNotBlank(model.getImg2())){ + model.setImg2(path+model.getImg2()); + model.getImgList().add(model.getImg2()); + } + if(StringUtils.isNotBlank(model.getImg3())) { + model.setImg3(path + model.getImg3()); + model.getImgList().add(model.getImg3()); + } + if(StringUtils.isNotBlank(model.getImg4())){ + model.setImg4(path+model.getImg4()); + model.getImgList().add(model.getImg4()); + } } @Override @@ -334,4 +431,65 @@ QueryWrapper<IdentityInfo> wrapper = new QueryWrapper<>(identityInfo); return identityInfoMapper.selectCount(wrapper); } + + + @Autowired + private SendWxMessage sendWxMessage; + + @Override + @Transactional(rollbackFor = {BusinessException.class,Exception.class}) + public void audit(AuditDTO auditDTO){ + if(Objects.isNull(auditDTO) + || Objects.isNull(auditDTO.getId()) + || Objects.isNull(auditDTO.getAuditStatus()) + || auditDTO.getAuditStatus()<2 + || auditDTO.getAuditStatus()>3){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + IdentityInfo identityInfo = identityInfoMapper.selectById(auditDTO.getId()); + if(Objects.isNull(identityInfo)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY); + } + if(!Constants.equalsInteger(identityInfo.getAuditStatus(),Constants.ONE)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"宸插鎵癸紝璇峰嬁閲嶅鎿嶄綔"); + } + Member member = memberMapper.selectById(identityInfo.getMemberId()); + if(Objects.isNull(member)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY); + } + identityInfo.setAuditStatus(auditDTO.getAuditStatus()); + identityInfo.setAuditRemark(auditDTO.getAuditRemark()); + identityInfo.setAuditTime(new Date()); + Date date = new Date(); + identityInfoMapper.update(new UpdateWrapper<IdentityInfo>().lambda() + .set(IdentityInfo::getAuditStatus, auditDTO.getAuditStatus() ) + .set(StringUtils.isNotBlank(auditDTO.getAuditRemark()),IdentityInfo::getAuditRemark,auditDTO.getAuditRemark()) + .set(IdentityInfo::getAuditTime,date) + .set(IdentityInfo::getUpdateUser,user.getId()) + .set(IdentityInfo::getUpdateTime,date) + .eq(IdentityInfo::getId,identityInfo.getId()) + ); + + memberMapper.update(new UpdateWrapper<Member>().lambda() + .set(Member::getUpdateUser,user.getId()) + .set(Member::getUpdateTime,date) + .set(Constants.equalsInteger(auditDTO.getAuditStatus(),Constants.ZERO),Member::getAutoReceiveStatus,Constants.ONE) + .set(Constants.equalsInteger(identityInfo.getType(),Constants.ZERO),Member::getWorkerIdentity, auditDTO.getAuditStatus() ) + .set(Constants.equalsInteger(identityInfo.getType(),Constants.ONE),Member::getDriverIdentity , auditDTO.getAuditStatus() ) + .set(Constants.equalsInteger(identityInfo.getType(),Constants.TWO),Member::getChefIdentity , auditDTO.getAuditStatus() ) + .eq(Member::getId,identityInfo.getMemberId()) + ); + + //鍙戦�佸井淇¢�氱煡 + if(StringUtils.isNotBlank(member.getOpenid())){ + sendWxMessage.identityInfoMessage(member.getOpenid(),identityInfo); + } + + //鐭俊閫氱煡 + aliSmsService.businessSendSms(Constants.smsContent.authentication.getKey(), + member.getTelephone(),null,null, + identityInfo,categoryMapper); + + } } -- Gitblit v1.9.3