From 1c20c8231980a8d4b91688ff8641a06d3b2f68ab Mon Sep 17 00:00:00 2001 From: MrShi <1878285526@qq.com> Date: 星期二, 14 十月 2025 16:34:22 +0800 Subject: [PATCH] 改bug --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java | 138 ++++++++++++++++++++++++++++++++++++---------- 1 files changed, 108 insertions(+), 30 deletions(-) diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java index be1458c..b73d4c3 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java @@ -8,16 +8,24 @@ import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; -import com.doumee.core.model.PageData; -import com.doumee.core.model.PageWrap; +import com.doumee.service.business.third.model.PageData; +import com.doumee.service.business.third.model.PageWrap; import com.doumee.core.utils.*; +import com.doumee.core.wx.wxPlat.WxPlatNotice; import com.doumee.dao.business.*; +import com.doumee.dao.business.dao.MemberMapper; import com.doumee.dao.business.dao.SmsConfigMapper; import com.doumee.dao.business.dao.SmsEmailMapper; +import com.doumee.dao.business.join.VisitsJoinMapper; import com.doumee.dao.business.model.*; import com.doumee.dao.business.model.vo.ValidPhoneCodeVO; +import com.doumee.dao.business.model.Member; +import com.doumee.dao.system.SystemUserMapper; +import com.doumee.dao.system.model.SystemUser; import com.doumee.service.business.SmsEmailService; import com.doumee.service.business.third.EmayService; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import org.apache.commons.lang3.RandomStringUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -38,6 +46,10 @@ @Autowired private SmsEmailMapper smsEmailMapper; + @Autowired + private SystemUserMapper systemUserMapper; + @Autowired + private MemberMapper memberMapper; @Autowired private SystemDictDataBiz systemDictDataBiz; @Autowired @@ -81,6 +93,45 @@ isCaptcheValide(smsEmailMapper,param.getPhone(),param.getCode()); } @Override + public SystemUser validDriverPhone(ValidPhoneCodeVO param){ + isCaptcheValide(smsEmailMapper,param.getPhone(),param.getCode()); + + SystemUser systemUser = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda() + .eq(SystemUser::getDeleted,Constants.ZERO) + .and(i->i.eq(SystemUser::getMobile,param.getPhone()).or().eq(SystemUser::getUsername,param.getPhone())) + .last("limit 1")); + if(systemUser !=null){ + return systemUser; + } + String salt = RandomStringUtils.randomAlphabetic(6); + Member member = new Member(); + member.setCreateDate(new Date()); + member.setIsdeleted(Constants.ZERO); + member.setType(Constants.memberType.driver); + member.setPhone(param.getPhone()); + member.setStatus(Constants.ZERO); + member.setOpenid(param.getOpenId()); + member.setPassward(Utils.Secure.encryptPassword(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.INITIAL_PASSWORD).getCode(), salt)); + memberMapper.insert(member); + + systemUser = new SystemUser(); + systemUser.setCreateTime(new Date()); + systemUser.setDeleted(Boolean.FALSE); + systemUser.setUsername(param.getPhone()); + systemUser.setRealname(null); + systemUser.setMemberId(member.getId()); + systemUser.setMobile(param.getPhone()); + systemUser.setSalt(salt); + systemUser.setPassword(member.getPassward()); + systemUser.setStatus(Constants.ZERO); + systemUser.setType(Constants.memberType.driver); + systemUser.setSource(Constants.TWO); + systemUser.setOpenid(param.getOpenId()); + systemUserMapper.insert(systemUser); + return systemUser; + } + + @Override public Integer create(SmsEmail smsEmail) { smsEmailMapper.insert(smsEmail); return smsEmail.getId(); @@ -88,7 +139,7 @@ @Override public Integer sendSms(SmsEmail smsEmail) { - if(StringUtils.isBlank(smsEmail.getPhone())){ + if(StringUtils.isBlank(smsEmail.getPhone()) || smsEmail.getPhone().length() != 11 ){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } String nowDate = DateUtil.getFomartDate(new Date(),"yyyy-MM-dd HH:mm:ss"); @@ -224,7 +275,10 @@ queryWrapper.lambda().eq(SmsEmail::getContent, pageWrap.getModel().getContent()); } if (pageWrap.getModel().getPhone() != null) { - queryWrapper.lambda().eq(SmsEmail::getPhone, pageWrap.getModel().getPhone()); + queryWrapper.lambda().and(wr ->{ + wr.like(SmsEmail::getPhone, pageWrap.getModel().getPhone()) + .or().like(SmsEmail::getEmail, pageWrap.getModel().getPhone()); + }); } if (pageWrap.getModel().getEmail() != null) { queryWrapper.lambda().eq(SmsEmail::getEmail, pageWrap.getModel().getEmail()); @@ -241,13 +295,11 @@ if (pageWrap.getModel().getObjType() != null) { queryWrapper.lambda().eq(SmsEmail::getObjType, pageWrap.getModel().getObjType()); } - for(PageWrap.SortData sortData: pageWrap.getSorts()) { - if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { - queryWrapper.orderByDesc(sortData.getProperty()); - } else { - queryWrapper.orderByAsc(sortData.getProperty()); - } - } + queryWrapper.lambda().ge(Objects.nonNull(pageWrap.getModel().getStartTime()), + SmsEmail::getCreateDate, pageWrap.getModel().getStartTime()) + .le(Objects.nonNull(pageWrap.getModel().getEndTime()), + SmsEmail::getCreateDate, pageWrap.getModel().getEndTime()) + .orderByDesc(SmsEmail::getCreateDate); return PageData.from(smsEmailMapper.selectPage(page, queryWrapper)); } @@ -264,25 +316,38 @@ List<SmsEmail> smsEmails = smsEmailMapper.selectList(wrapper); if(smsEmails!=null && smsEmails.size()>0){ for(SmsEmail model : smsEmails){ - if(model.getPhone() == null){ - model.setStatus(Constants.THREE);//鍙戦�佸け璐� - model.setRemark("鎵嬫満鍙蜂负绌猴紝鍙栨秷浠诲姟鍙戦�侊紒"); - }else{ - try { - emayService.sendSmsByHk(model.getPhone(),model.getContent()); - model.setStatus(Constants.ONE);//鍙戦�佹垚鍔� - model.setRemark("鐭俊浠诲姟鍙戦�佹垚鍔�"); - }catch (Exception e){ + if(Constants.equalsInteger(model.getType(),Constants.ZERO)){ + if(model.getPhone() == null){ model.setStatus(Constants.THREE);//鍙戦�佸け璐� - model.setRemark("鐭俊浠诲姟鍙戦�佸け璐ワ紒"+e.getMessage()); + model.setRemark("鎵嬫満鍙蜂负绌猴紝鍙栨秷浠诲姟鍙戦�侊紒"); + }else{ + try { + emayService.sendSmsByHk(model.getPhone(),model.getContent()); + model.setStatus(Constants.ONE);//鍙戦�佹垚鍔� + model.setRemark("鐭俊浠诲姟鍙戦�佹垚鍔�"); + }catch (Exception e){ + model.setStatus(Constants.THREE);//鍙戦�佸け璐� + model.setRemark("鐭俊浠诲姟鍙戦�佸け璐ワ紒"+e.getMessage()); + } } + }else if(Constants.equalsInteger(model.getType(),Constants.TWO)){ + if(DateUtil.fromStringToDate("yyyy-MM-dd HH:mm:ss",model.getInfo()).getTime() < System.currentTimeMillis()){ + WxPlatNotice wxPlatNotice = new WxPlatNotice(); + wxPlatNotice.sendMeetTemplateNotice(systemDictDataBiz,model); + model.setStatus(Constants.ONE);//鍙戦�佹垚鍔� + model.setRemark("寰俊閫氱煡鍙戦�佹垚鍔�"); + }else{ + model.setStatus(Constants.THREE);//鍙戦�佹垚鍔� + model.setRemark("寰俊閫氱煡鍙戦�佸け璐�"); + } + }else{ + continue; } model.setEditDate(new Date()); smsEmailMapper.updateById(model); } } } - /** * 璁垮鐢宠涓氬姟鐭俊閫氱煡 * @param systemDictDataBiz @@ -296,17 +361,21 @@ * @param auditUser */ public static void sendVisitSms(SystemDictDataBiz systemDictDataBiz, EmayService emayService , com.doumee.dao.business.dao.SmsEmailMapper smsEmailMapper , SmsConfigMapper smsConfigMapper, - VisitsMapper visitsMapper, Integer objId, String objCode, String msg, List<String> auditUser){ + VisitsJoinMapper visitsMapper, Integer objId, String objCode, String msg, List<String> auditUser){ try{ SmsConfig smsConfig = smsConfigMapper.selectOne(new QueryWrapper<SmsConfig>().lambda().eq(SmsConfig::getCode, objCode).last(" limit 1 ")); //寮�鍚煭淇¢�氱煡 if(Objects.nonNull(smsConfig) || Constants.equalsInteger(smsConfig.getStatus(),Constants.ZERO)){ String content = systemDictDataBiz.queryByCode(Constants.SMS,Constants.SMS_COMNAME).getCode() + smsConfig.getContent(); - Visits visits = visitsMapper.selectById(objId); + Visits visits = visitsMapper.selectJoinOne(Visits.class,new MPJLambdaWrapper<Visits>().selectAll(Visits.class) + .selectAs(SystemUser::getMobile,Visits::getReceptMemberMobile) + .leftJoin(SystemUser.class,SystemUser::getMemberId, Visits::getReceptMemberId) + .eq(Visits::getId,objId).last(" limit 1 ")); if(Objects.nonNull(visits)){ if(objCode.equals(SmsConstants.visitContent.visitAuditSuccess)){ //鎮ㄧ殑銆愯瀹㈢敵璇枫�戝凡缁忓鎵归�氳繃锛岃浜巤棰勭害鍏ュ洯寮�濮嬫椂闂磢鍓嶅線闂ㄥ崼瀹よ瀹㈡満绛惧埌鍏ュ洯锛屽鏈夌枒闂紝璇疯仈绯昏璁夸汉 + //鎮ㄧ殑[璁垮鐢宠]宸茬粡瀹℃壒閫氳繃锛岃閫氱煡璁垮浜巤棰勭害鍏ュ洯寮�濮嬫椂闂磢鍏ュ洯锛屽鏈夌枒闂紝璇疯仈绯昏璁夸汉銆� content = content.replace("{棰勭害鍏ュ洯寮�濮嬫椂闂磢",DateUtil.getFomartDate(visits.getStarttime(),"yyyy-MM-dd HH:mm")); sendBusinessSms(emayService,smsEmailMapper, Arrays.asList(visits.getPhone().split(",")),SmsConstants.visit,content,visits.getId()); @@ -325,6 +394,10 @@ content = content.replace("{鏈绂绘暟閲弣",msg); sendBusinessSms(emayService,smsEmailMapper, Arrays.asList(visits.getPhone().split(",")),SmsConstants.visit,content,visits.getId()); + }else if(objCode.equals(SmsConstants.visitContent.visitAuditSuccessToVisiter)) { + content = content.replace("{棰勭害鍏ュ洯寮�濮嬫椂闂磢",DateUtil.getFomartDate(visits.getStarttime(),"yyyy-MM-dd HH:mm")); + sendBusinessSms(emayService,smsEmailMapper, + Arrays.asList(visits.getReceptMemberMobile().split(",")),SmsConstants.visit,content,visits.getId()); }else{ //鎮ㄦ湁涓�鏉°�愯溅杈嗗叆鍥敵璇枫�戦渶瑕佸鐞嗭紝璇︾粏淇℃伅璇峰墠寰�寰俊鍏紬鍙锋煡鐪嬨�� sendBusinessSms(emayService,smsEmailMapper, @@ -350,26 +423,31 @@ * @param auditUser */ public static void sendVisitReportSms(SystemDictDataBiz systemDictDataBiz, EmayService emayService , com.doumee.dao.business.dao.SmsEmailMapper smsEmailMapper , SmsConfigMapper smsConfigMapper, - VisitsMapper visitsMapper, Integer objId, String objCode, String msg, List<String> auditUser){ + VisitsJoinMapper visitsMapper, Integer objId, String objCode, String msg, List<String> auditUser){ try{ SmsConfig smsConfig = smsConfigMapper.selectOne(new QueryWrapper<SmsConfig>().lambda().eq(SmsConfig::getCode, objCode).last(" limit 1 ")); //寮�鍚煭淇¢�氱煡 if(Objects.nonNull(smsConfig) || Constants.equalsInteger(smsConfig.getStatus(),Constants.ZERO)){ String content = systemDictDataBiz.queryByCode(Constants.SMS,Constants.SMS_COMNAME).getCode() + smsConfig.getContent(); - Visits visits = visitsMapper.selectById(objId); + Visits visits = visitsMapper.selectJoinOne(Visits.class,new MPJLambdaWrapper<Visits>().selectAll(Visits.class) + .selectAs(SystemUser::getMobile,Visits::getCreateMobile) + .leftJoin(SystemUser.class,SystemUser::getMemberId,Visits::getMemberId) + .eq(Visits::getId,objId) + .last(" limit 1") + ); if(Objects.nonNull(visits)){ if(objCode.equals(SmsConstants.visitReportingContent.visitReportingAuditSuccess)){ // 鎮ㄧ殑銆愯瀹㈡姤澶囥�戝凡缁忓鎵归�氳繃锛岃閫氱煡璁垮浜巤棰勭害鍏ュ洯寮�濮嬫椂闂磢鍚庝箻鍧恵杞︾墝鍙穧鍏ュ洯锛屽鏈夌枒闂紝璇疯仈绯昏璁夸汉銆� content = content.replace("{棰勭害鍏ュ洯寮�濮嬫椂闂磢",DateUtil.getFomartDate(visits.getStarttime(),"yyyy-MM-dd HH:mm")) .replace("{杞︾墝鍙穧",visits.getCarNos()); sendBusinessSms(emayService,smsEmailMapper, - Arrays.asList(visits.getPhone().split(",")),SmsConstants.visitReport,content,visits.getId()); + Arrays.asList(visits.getCreateMobile().split(",")),SmsConstants.visitReport,content,visits.getId()); }else if(objCode.equals(SmsConstants.visitReportingContent.visitReportingAuditFail)){ //鎮ㄧ殑銆愯瀹㈡姤澶囥�戝凡琚┏鍥烇紝椹冲洖鍘熷洜涓猴細{椹冲洖鍘熷洜}銆傚鏈夌枒闂紝璇疯仈绯诲鎵逛汉銆� content = content.replace("{椹冲洖鍘熷洜}",msg); sendBusinessSms(emayService,smsEmailMapper, - Arrays.asList(visits.getPhone().split(",")),SmsConstants.visitReport,content,visits.getId()); + Arrays.asList(visits.getCreateMobile().split(",")),SmsConstants.visitReport,content,visits.getId()); }else if(objCode.equals(SmsConstants.visitReportingContent.visitReportingTimeOutSignOut)){ //鎮ㄧ殑銆愯瀹㈡姤澶囥�戝凡浜巤棰勭害鍏ュ洯缁撴潫鏃堕棿}鍒版湡锛岃鍙婃椂绂诲満锛屽鏈夌枒闂紝璇疯仈绯昏璁夸汉 content = content.replace("{棰勭害鍏ュ洯缁撴潫鏃堕棿}",DateUtil.getFomartDate(visits.getEndtime(),"yyyy-MM-dd HH:mm")); @@ -451,13 +529,13 @@ * @param auditUser */ public static void sendHiddenDangerSms(SystemDictDataBiz systemDictDataBiz, EmayService emayService , com.doumee.dao.business.dao.SmsEmailMapper smsEmailMapper , SmsConfigMapper smsConfigMapper, - HiddenDangerMapper hiddenDangerMapper, Integer objId, String objCode, List<String> auditUser){ + HiddenDangerMapper hiddenDangerMapper, Integer objId, String objCode, List<String> auditUser,String hiddenParam){ try{ SmsConfig smsConfig = smsConfigMapper.selectOne(new QueryWrapper<SmsConfig>().lambda().eq(SmsConfig::getCode, objCode).last(" limit 1 ")); //寮�鍚煭淇¢�氱煡 if(Objects.nonNull(smsConfig) || Constants.equalsInteger(smsConfig.getStatus(),Constants.ZERO)){ - String content = systemDictDataBiz.queryByCode(Constants.SMS,Constants.SMS_COMNAME).getCode() + smsConfig.getContent(); + String content = systemDictDataBiz.queryByCode(Constants.SMS,Constants.SMS_COMNAME).getCode() + smsConfig.getContent().replace("{闅愭偅绫诲瀷}",hiddenParam); HiddenDanger hiddenDanger = hiddenDangerMapper.selectById(objId); //鎮ㄦ湁涓�鏉°�愰殣鎮i殢鎵嬫媿-娑堥槻闅愭偅銆戦渶瑕佸鐞嗭紝璇︾粏淇℃伅璇峰墠寰�寰俊鍏紬鍙锋煡鐪� //鎮ㄦ彁浜ょ殑銆愰殣鎮i殢鎵嬫媿-娑堥槻闅愭偅銆戝凡缁忓鐞嗗畬姣曪紝璇︾粏淇℃伅璇峰墠寰�寰俊鍏紬鍙锋煡鐪嬨�� -- Gitblit v1.9.3