From 2304d7b140c5c5b4bf3a83f9ced8bff37d20c42e Mon Sep 17 00:00:00 2001 From: rk <94314517@qq.com> Date: 星期日, 28 九月 2025 16:45:33 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- server/services/src/main/java/com/doumee/service/business/impl/IdentityInfoServiceImpl.java | 195 +++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 156 insertions(+), 39 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 a23d9d5..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,18 +2,23 @@ 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; @@ -21,9 +26,13 @@ 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; @@ -44,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()) @@ -65,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(); } @@ -96,6 +132,7 @@ } @Override + @Transactional(rollbackFor = {BusinessException.class,Exception.class}) public void updateById(IdentityInfo identityInfo) { if(Objects.isNull(identityInfo) || Objects.isNull(identityInfo.getId()) @@ -125,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()) @@ -170,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; } @@ -281,7 +352,7 @@ queryWrapper.le(IdentityInfo::getUpdateTime, Utils.Date.getEnd(pageWrap.getModel().getUpdateTime())); } if (pageWrap.getModel().getRemark() != null) { - queryWrapper.eq(IdentityInfo::getRemark, pageWrap.getModel().getRemark()); + queryWrapper.like(IdentityInfo::getRemark, pageWrap.getModel().getRemark()); } if (pageWrap.getModel().getType() != null) { queryWrapper.eq(IdentityInfo::getType, pageWrap.getModel().getType()); @@ -293,16 +364,16 @@ queryWrapper.eq(IdentityInfo::getAuthType, pageWrap.getModel().getAuthType()); } if (pageWrap.getModel().getLinkName() != null) { - queryWrapper.eq(IdentityInfo::getLinkName, pageWrap.getModel().getLinkName()); + queryWrapper.like(IdentityInfo::getLinkName, pageWrap.getModel().getLinkName()); } if (pageWrap.getModel().getTelephone() != null) { - queryWrapper.eq(IdentityInfo::getTelephone, pageWrap.getModel().getTelephone()); + queryWrapper.like(IdentityInfo::getTelephone, pageWrap.getModel().getTelephone()); } if (pageWrap.getModel().getLocation() != null) { - queryWrapper.eq(IdentityInfo::getLocation, pageWrap.getModel().getLocation()); + queryWrapper.like(IdentityInfo::getLocation, pageWrap.getModel().getLocation()); } if (pageWrap.getModel().getCompanyName() != null) { - queryWrapper.eq(IdentityInfo::getCompanyName, pageWrap.getModel().getCompanyName()); + queryWrapper.like(IdentityInfo::getCompanyName, pageWrap.getModel().getCompanyName()); } if (pageWrap.getModel().getLat() != null) { queryWrapper.eq(IdentityInfo::getLat, pageWrap.getModel().getLat()); @@ -318,15 +389,10 @@ queryWrapper.le(IdentityInfo::getAuditTime, Utils.Date.getEnd(pageWrap.getModel().getAuditTime())); } if (pageWrap.getModel().getAuditRemark() != null) { - queryWrapper.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() @@ -367,12 +433,63 @@ } - public void audit(){ + @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