| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.service.business.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | 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.doumee.biz.system.SystemDictDataBiz; |
| | | import com.doumee.core.constants.ResponseStatus; |
| | | import com.doumee.core.exception.BusinessException; |
| | | 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; |
| | | import org.springframework.context.annotation.Lazy; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.util.*; |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * çä¿¡é®ä»¶ä¿¡æ¯è¡¨Serviceå®ç° |
| | | * @author æ±è¹è¹ |
| | | * @date 2024/01/16 10:03 |
| | | */ |
| | | @Service |
| | | public class SmsEmailServiceImpl implements SmsEmailService { |
| | | |
| | | @Autowired |
| | | private SmsEmailMapper smsEmailMapper; |
| | | @Autowired |
| | | private SystemUserMapper systemUserMapper; |
| | | @Autowired |
| | | private MemberMapper memberMapper; |
| | | @Autowired |
| | | private SystemDictDataBiz systemDictDataBiz; |
| | | @Autowired |
| | | @Lazy |
| | | private EmayService emayService; |
| | | @Autowired |
| | | private SmsConfigMapper smsConfigMapper; |
| | | |
| | | @Value("${debug_model}") |
| | | private boolean debugModel; |
| | | |
| | | public static void isCaptcheValide(com.doumee.dao.business.dao.SmsEmailMapper smsEmailMapper, String phone, String captche) { |
| | | SmsEmail model = smsEmailMapper.selectOne(new QueryWrapper<SmsEmail>().lambda() |
| | | .eq(SmsEmail::getType, Constants.ZERO) |
| | | .eq(SmsEmail::getPhone, phone) |
| | | .eq(SmsEmail::getRemark, captche) |
| | | .eq(SmsEmail::getIsdeleted, Constants.ZERO) |
| | | ); |
| | | if(model == null){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼éªè¯ç 䏿£ç¡®ï¼è¯·éæ°åéåè¯ï¼"); |
| | | } |
| | | if(!Constants.equalsInteger(model.getStatus(),Constants.ZERO)){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼éªè¯ç 已失æï¼è¯·éæ°åéåè¯ï¼"); |
| | | } |
| | | if(model.getCreateDate() !=null && |
| | | System.currentTimeMillis() - model.getCreateDate().getTime() > 3*60*1000){ |
| | | model.setStatus(Constants.ONE); |
| | | model.setEditDate(new Date()); |
| | | smsEmailMapper.updateById(model); |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼éªè¯ç 已失æï¼è¯·éæ°åéåè¯~"); |
| | | } |
| | | model.setStatus(Constants.ONE); |
| | | model.setEditDate(new Date()); |
| | | smsEmailMapper.updateById(model); |
| | | } |
| | | |
| | | |
| | | |
| | | @Override |
| | | public void validPhoneCaptcha(ValidPhoneCodeVO param){ |
| | | 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(); |
| | | } |
| | | |
| | | @Override |
| | | public Integer sendSms(SmsEmail smsEmail) { |
| | | 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"); |
| | | if(smsEmailMapper.selectCount(new QueryWrapper<SmsEmail>().lambda() |
| | | .eq(SmsEmail::getPhone,smsEmail.getPhone()) |
| | | .eq(SmsEmail::getType,Constants.ZERO) |
| | | .between(SmsEmail::getCreateDate, DateUtil.getFomartDate(DateUtil.afterMinutesDate(-5),"yyyy-MM-dd HH:mm:ss"),nowDate) |
| | | )>=3){ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"对ä¸èµ·ï¼è¶
åºå鿬¡æ°ï¼è¯·ç¨åéè¯ï¼"); |
| | | } |
| | | String code = Constants.getRandom6Num(); |
| | | SmsConfig smsConfig = smsConfigMapper.selectOne(new QueryWrapper<SmsConfig>().lambda().eq(SmsConfig::getObjType, |
| | | SmsConstants.inventCode).last(" limit 1 ")); |
| | | //å¼å¯çä¿¡éç¥ |
| | | if(Objects.nonNull(smsConfig) || Constants.equalsInteger(smsConfig.getStatus(),Constants.ZERO)){ |
| | | if(StringUtils.isNotBlank(smsConfig.getContent())){ |
| | | String content = smsConfig.getContent().replace("{éªè¯ç }",code); |
| | | emayService.sendSmsByHk(smsEmail.getPhone(),content); |
| | | smsEmail.setRemark(code); |
| | | smsEmail.setIsdeleted(Constants.ZERO); |
| | | smsEmail.setCreateDate(new Date()); |
| | | smsEmail.setStatus(Constants.ZERO); |
| | | smsEmail.setType(Constants.ZERO); |
| | | smsEmail.setTitle("çä¿¡éªè¯ç "); |
| | | smsEmail.setContent(content); |
| | | smsEmail.setObjType(Constants.ZERO+""); |
| | | smsEmailMapper.insert(smsEmail); |
| | | return smsEmail.getId(); |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public void validateCode(String code,String phone) { |
| | | if(StringUtils.isBlank(code)){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | if(debugModel){ |
| | | return; |
| | | } |
| | | SmsEmailServiceImpl.isCaptcheValide(smsEmailMapper,phone,code); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public void deleteById(Integer id) { |
| | | smsEmailMapper.deleteById(id); |
| | | } |
| | | |
| | | @Override |
| | | public void delete(SmsEmail smsEmail) { |
| | | UpdateWrapper<SmsEmail> deleteWrapper = new UpdateWrapper<>(smsEmail); |
| | | smsEmailMapper.delete(deleteWrapper); |
| | | } |
| | | |
| | | @Override |
| | | public void deleteByIdInBatch(List<Integer> ids) { |
| | | if (CollectionUtils.isEmpty(ids)) { |
| | | return; |
| | | } |
| | | smsEmailMapper.deleteBatchIds(ids); |
| | | } |
| | | |
| | | @Override |
| | | public void updateById(SmsEmail smsEmail) { |
| | | smsEmailMapper.updateById(smsEmail); |
| | | } |
| | | |
| | | @Override |
| | | public void updateByIdInBatch(List<SmsEmail> smsEmails) { |
| | | if (CollectionUtils.isEmpty(smsEmails)) { |
| | | return; |
| | | } |
| | | for (SmsEmail smsEmail: smsEmails) { |
| | | this.updateById(smsEmail); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public SmsEmail findById(Integer id) { |
| | | return smsEmailMapper.selectById(id); |
| | | } |
| | | |
| | | @Override |
| | | public SmsEmail findOne(SmsEmail smsEmail) { |
| | | QueryWrapper<SmsEmail> wrapper = new QueryWrapper<>(smsEmail); |
| | | return smsEmailMapper.selectOne(wrapper); |
| | | } |
| | | |
| | | @Override |
| | | public List<SmsEmail> findList(SmsEmail smsEmail) { |
| | | QueryWrapper<SmsEmail> wrapper = new QueryWrapper<>(smsEmail); |
| | | return smsEmailMapper.selectList(wrapper); |
| | | } |
| | | |
| | | @Override |
| | | public PageData<SmsEmail> findPage(PageWrap<SmsEmail> pageWrap) { |
| | | IPage<SmsEmail> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | QueryWrapper<SmsEmail> queryWrapper = new QueryWrapper<>(); |
| | | Utils.MP.blankToNull(pageWrap.getModel()); |
| | | if (pageWrap.getModel().getId() != null) { |
| | | queryWrapper.lambda().eq(SmsEmail::getId, pageWrap.getModel().getId()); |
| | | } |
| | | if (pageWrap.getModel().getCreator() != null) { |
| | | queryWrapper.lambda().eq(SmsEmail::getCreator, pageWrap.getModel().getCreator()); |
| | | } |
| | | if (pageWrap.getModel().getCreateDate() != null) { |
| | | queryWrapper.lambda().ge(SmsEmail::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); |
| | | queryWrapper.lambda().le(SmsEmail::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())); |
| | | } |
| | | if (pageWrap.getModel().getEditor() != null) { |
| | | queryWrapper.lambda().eq(SmsEmail::getEditor, pageWrap.getModel().getEditor()); |
| | | } |
| | | if (pageWrap.getModel().getEditDate() != null) { |
| | | queryWrapper.lambda().ge(SmsEmail::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())); |
| | | queryWrapper.lambda().le(SmsEmail::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())); |
| | | } |
| | | if (pageWrap.getModel().getIsdeleted() != null) { |
| | | queryWrapper.lambda().eq(SmsEmail::getIsdeleted, pageWrap.getModel().getIsdeleted()); |
| | | } |
| | | if (pageWrap.getModel().getRemark() != null) { |
| | | queryWrapper.lambda().eq(SmsEmail::getRemark, pageWrap.getModel().getRemark()); |
| | | } |
| | | if (pageWrap.getModel().getTitle() != null) { |
| | | queryWrapper.lambda().eq(SmsEmail::getTitle, pageWrap.getModel().getTitle()); |
| | | } |
| | | if (pageWrap.getModel().getInfo() != null) { |
| | | queryWrapper.lambda().eq(SmsEmail::getInfo, pageWrap.getModel().getInfo()); |
| | | } |
| | | if (pageWrap.getModel().getContent() != null) { |
| | | queryWrapper.lambda().eq(SmsEmail::getContent, pageWrap.getModel().getContent()); |
| | | } |
| | | if (pageWrap.getModel().getPhone() != null) { |
| | | 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()); |
| | | } |
| | | if (pageWrap.getModel().getStatus() != null) { |
| | | queryWrapper.lambda().eq(SmsEmail::getStatus, pageWrap.getModel().getStatus()); |
| | | } |
| | | if (pageWrap.getModel().getType() != null) { |
| | | queryWrapper.lambda().eq(SmsEmail::getType, pageWrap.getModel().getType()); |
| | | } |
| | | if (pageWrap.getModel().getObjId() != null) { |
| | | queryWrapper.lambda().eq(SmsEmail::getObjId, pageWrap.getModel().getObjId()); |
| | | } |
| | | if (pageWrap.getModel().getObjType() != null) { |
| | | queryWrapper.lambda().eq(SmsEmail::getObjType, pageWrap.getModel().getObjType()); |
| | | } |
| | | 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)); |
| | | } |
| | | |
| | | @Override |
| | | public long count(SmsEmail smsEmail) { |
| | | QueryWrapper<SmsEmail> wrapper = new QueryWrapper<>(smsEmail); |
| | | return smsEmailMapper.selectCount(wrapper); |
| | | } |
| | | @Override |
| | | public void sendWaitingSmsNotice(){ |
| | | LambdaQueryWrapper<SmsEmail> wrapper = new LambdaQueryWrapper<SmsEmail>() |
| | | .eq(SmsEmail::getIsdeleted,Constants.ZERO) |
| | | .eq(SmsEmail::getStatus,Constants.TWO); |
| | | List<SmsEmail> smsEmails = smsEmailMapper.selectList(wrapper); |
| | | if(smsEmails!=null && smsEmails.size()>0){ |
| | | for(SmsEmail model : smsEmails){ |
| | | if(Constants.equalsInteger(model.getType(),Constants.ZERO)){ |
| | | 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){ |
| | | 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,systemDictDataBiz.queryByCode(Constants.WX_PLATFORM, Constants.WX_PLATFORM_ACCESS_TOKEN).getCode()); |
| | | model.setStatus(Constants.ONE);//åéæå |
| | | model.setRemark("微信éç¥åéæå"); |
| | | }else{ |
| | | model.setStatus(Constants.THREE);//åéæå |
| | | model.setRemark("微信éç¥åé失败"); |
| | | } |
| | | }else{ |
| | | continue; |
| | | } |
| | | model.setEditDate(new Date()); |
| | | smsEmailMapper.updateById(model); |
| | | } |
| | | } |
| | | } |
| | | /** |
| | | * 访客ç³è¯·ä¸å¡çä¿¡éç¥ |
| | | * @param systemDictDataBiz |
| | | * @param emayService |
| | | * @param smsEmailMapper |
| | | * @param smsConfigMapper |
| | | * @param visitsMapper |
| | | * @param objId |
| | | * @param objCode |
| | | * @param msg |
| | | * @param auditUser |
| | | */ |
| | | public static void sendVisitSms(SystemDictDataBiz systemDictDataBiz, EmayService emayService , com.doumee.dao.business.dao.SmsEmailMapper smsEmailMapper , SmsConfigMapper smsConfigMapper, |
| | | 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.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()); |
| | | }else if(objCode.equals(SmsConstants.visitContent.visitAuditFail)){ |
| | | //æ¨çã访客ç³è¯·ã已被驳åï¼é©³ååå 为ï¼{驳ååå }ã妿çé®ï¼è¯·è系被访人ã |
| | | content = content.replace("{驳ååå }",msg); |
| | | sendBusinessSms(emayService,smsEmailMapper, |
| | | Arrays.asList(visits.getPhone().split(",")),SmsConstants.visit,content,visits.getId()); |
| | | }else if(objCode.equals(SmsConstants.visitContent.visitTimeOutSignOut)){ |
| | | //æ¨çã访客ç³è¯·ãå·²äº{å°ææ¶é´}å°æï¼è¯·åæ¶ç¦»åºå¹¶åå¾é¨å«å®¤è®¿å®¢æºç¾ç¦»ï¼å¦æçé®ï¼è¯·è系被访人 |
| | | content = content.replace("{å°ææ¶é´}",DateUtil.getFomartDate(visits.getEndtime(),"yyyy-MM-dd HH:mm")); |
| | | sendBusinessSms(emayService,smsEmailMapper, |
| | | Arrays.asList(visits.getPhone().split(",")),SmsConstants.visit,content,visits.getId()); |
| | | }else if(objCode.equals(SmsConstants.visitContent.visitTimeOutSignOutNum)) { |
| | | //仿¥è¿æ{æªç¾ç¦»æ°é}个访客æªç¾ç¦»ï¼è¯·åå¾PC端æ¥ç详ç»ä¿¡æ¯ã |
| | | 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, |
| | | auditUser,SmsConstants.platformBook,content,visits.getId()); |
| | | } |
| | | } |
| | | } |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 访客æ¥å¤ä¸å¡çä¿¡éç¥ |
| | | * @param systemDictDataBiz |
| | | * @param emayService |
| | | * @param smsEmailMapper |
| | | * @param smsConfigMapper |
| | | * @param visitsMapper |
| | | * @param objId |
| | | * @param objCode |
| | | * @param msg |
| | | * @param auditUser |
| | | */ |
| | | public static void sendVisitReportSms(SystemDictDataBiz systemDictDataBiz, EmayService emayService , com.doumee.dao.business.dao.SmsEmailMapper smsEmailMapper , SmsConfigMapper smsConfigMapper, |
| | | 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.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.getCreateMobile().split(",")),SmsConstants.visitReport,content,visits.getId()); |
| | | }else if(objCode.equals(SmsConstants.visitReportingContent.visitReportingAuditFail)){ |
| | | //æ¨çã访客æ¥å¤ã已被驳åï¼é©³ååå 为ï¼{驳ååå }ã妿çé®ï¼è¯·è系审æ¹äººã |
| | | content = content.replace("{驳ååå }",msg); |
| | | sendBusinessSms(emayService,smsEmailMapper, |
| | | 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")); |
| | | sendBusinessSms(emayService,smsEmailMapper, |
| | | Arrays.asList(visits.getPhone().split(",")),SmsConstants.visitReport,content,visits.getId()); |
| | | }else if(objCode.equals(SmsConstants.visitReportingContent.visitReportingTimeOutSignOutNum)) { |
| | | //仿¥è¿æ{æªç¾ç¦»æ°é}个访客æ¥å¤è½¦è¾æªç¦»åºï¼è¯·åå¾PC端æ¥ç详ç»ä¿¡æ¯ã |
| | | content = content.replace("{æªç¾ç¦»æ°é}",msg); |
| | | sendBusinessSms(emayService,smsEmailMapper, |
| | | Arrays.asList(visits.getPhone().split(",")),SmsConstants.visitReport,content,visits.getId()); |
| | | }else{ |
| | | //æ¨æä¸æ¡ã车è¾å
¥åç³è¯·ãéè¦å¤çï¼è¯¦ç»ä¿¡æ¯è¯·åå¾å¾®ä¿¡å
¬ä¼å·æ¥çã |
| | | sendBusinessSms(emayService,smsEmailMapper, |
| | | auditUser,SmsConstants.platformBook,content,visits.getId()); |
| | | } |
| | | } |
| | | } |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | public static void sendVisitReportTimeOutSms(SystemDictDataBiz systemDictDataBiz, EmayService emayService , com.doumee.dao.business.dao.SmsEmailMapper smsEmailMapper , |
| | | SmsConfigMapper smsConfigMapper, |
| | | String objCode, String msg,List<String> mobiles){ |
| | | 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(); |
| | | //è¶
æ¶ç¹æ®å¤ç |
| | | if(smsConfig.getCode().equals(SmsConstants.visitReportingContent.visitReportingTimeOutSignOutNum)){ |
| | | //仿¥è¿æ{æªç¾ç¦»æ°é}个访客æ¥å¤è½¦è¾æªç¦»åºï¼è¯·åå¾PC端æ¥ç详ç»ä¿¡æ¯ã |
| | | content = content.replace("{æªç¾ç¦»æ°é}",msg); |
| | | sendBusinessSms(emayService,smsEmailMapper, |
| | | mobiles,SmsConstants.visitReport,content,0); |
| | | return; |
| | | } |
| | | } |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | |
| | | public static void sendVisitTimeOutSms(SystemDictDataBiz systemDictDataBiz, EmayService emayService , com.doumee.dao.business.dao.SmsEmailMapper smsEmailMapper , |
| | | SmsConfigMapper smsConfigMapper, |
| | | String objCode, String msg,List<String> mobiles){ |
| | | 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(); |
| | | //è¶
æ¶ç¹æ®å¤ç |
| | | if(smsConfig.getCode().equals(SmsConstants.visitContent.visitTimeOutSignOutNum)){ |
| | | //仿¥è¿æ{æªç¾ç¦»æ°é}个访客æ¥å¤è½¦è¾æªç¦»åºï¼è¯·åå¾PC端æ¥ç详ç»ä¿¡æ¯ã |
| | | content = content.replace("{æªç¾ç¦»æ°é}",msg); |
| | | sendBusinessSms(emayService,smsEmailMapper, |
| | | mobiles,SmsConstants.visit,content,0); |
| | | return; |
| | | } |
| | | } |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 鿣鿿 |
| | | * @param systemDictDataBiz |
| | | * @param emayService |
| | | * @param smsEmailMapper |
| | | * @param smsConfigMapper |
| | | * @param hiddenDangerMapper |
| | | * @param objId |
| | | * @param objCode |
| | | * @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){ |
| | | 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(); |
| | | HiddenDanger hiddenDanger = hiddenDangerMapper.selectById(objId); |
| | | //æ¨æä¸æ¡ã鿣鿿-æ¶é²éæ£ãéè¦å¤çï¼è¯¦ç»ä¿¡æ¯è¯·åå¾å¾®ä¿¡å
¬ä¼å·æ¥ç |
| | | //æ¨æäº¤çã鿣鿿-æ¶é²éæ£ãå·²ç»å¤ç宿¯ï¼è¯¦ç»ä¿¡æ¯è¯·åå¾å¾®ä¿¡å
¬ä¼å·æ¥çã |
| | | if(Objects.nonNull(hiddenDanger)){ |
| | | sendBusinessSms(emayService,smsEmailMapper, |
| | | auditUser,SmsConstants.platformBook,content,hiddenDanger.getId()); |
| | | } |
| | | } |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * ç¨è½¦ç³è¯· |
| | | * @param systemDictDataBiz |
| | | * @param emayService |
| | | * @param smsEmailMapper |
| | | * @param smsConfigMapper |
| | | * @param carUseBookMapper |
| | | * @param objId |
| | | * @param objCode |
| | | * @param msg |
| | | * @param userList |
| | | */ |
| | | public static void sendCarUseSms(SystemDictDataBiz systemDictDataBiz, EmayService emayService , com.doumee.dao.business.dao.SmsEmailMapper smsEmailMapper , SmsConfigMapper smsConfigMapper, |
| | | CarUseBookMapper carUseBookMapper, Integer objId, String objCode, String msg, List<String> userList){ |
| | | //æ¨æä¸æ¡ãç¨è½¦ç³è¯·ãéè¦å¤çï¼è¯¦ç»ä¿¡æ¯è¯·åå¾å¾®ä¿¡å
¬ä¼å·æ¥çã |
| | | 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(); |
| | | CarUseBook carUseBook = carUseBookMapper.selectById(objId); |
| | | if(Objects.nonNull(carUseBook)){ |
| | | if(objCode.equals(SmsConstants.carUseBookContent.carUseBookAuditSuccess)){ |
| | | //æ¨çãç¨è½¦ç³è¯·ãå·²ç»å®¡æ¹éè¿ï¼åºåæ¶é´ä¸º{æäº¤çåºåæ¶é´}ï¼è¯·ææ¶ç¨è½¦ãå¦ç¨è½¦è®¡åæåï¼è¯·åæ¶è系派车åã |
| | | content = content.replace("{æäº¤çåºåæ¶é´}",DateUtil.getFomartDate(carUseBook.getStartTime(),"yyyy-MM-dd HH:mm")); |
| | | }else if(objCode.equals(SmsConstants.carUseBookContent.carUseBookAuditFail) || objCode.equals(SmsConstants.carUseBookContent.carUseBookCancel)){ |
| | | //æ¨çãç¨è½¦ç³è¯·ã已被驳åï¼é©³ååå 为ï¼{驳ååå }ã妿çé®ï¼è¯·è系派车åã |
| | | if(StringUtils.isBlank(msg)){ |
| | | msg = "å
¶ä»åå "; |
| | | } |
| | | content = content.replace("{驳ååå }",msg); |
| | | //æ¨çãç¨è½¦ç³è¯·ãå·²è¢«åæ¶ï¼åæ¶åå 为ï¼{åæ¶åå }ã妿çé®ï¼è¯·è系派车åã |
| | | content = content.replace("{åæ¶åå }",msg); |
| | | } |
| | | sendBusinessSms(emayService,smsEmailMapper, |
| | | userList,SmsConstants.carUse,content,carUseBook.getId()); |
| | | } |
| | | } |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * ç©æµè½¦é¢çº¦ çä¿¡éç¥é
ç½® |
| | | * @param emayService |
| | | * @param smsEmailMapper |
| | | * @param smsConfigMapper |
| | | * @param platformBooksMapper |
| | | * @param objId |
| | | * @param objCode |
| | | * @param msg |
| | | * @param auditUser |
| | | */ |
| | | public static void sendPlatformBookSms(SystemDictDataBiz systemDictDataBiz, EmayService emayService , com.doumee.dao.business.dao.SmsEmailMapper smsEmailMapper , SmsConfigMapper smsConfigMapper, |
| | | PlatformBooksMapper platformBooksMapper, 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(); |
| | | PlatformBooks platformBooks = platformBooksMapper.selectById(objId); |
| | | if(Objects.nonNull(platformBooks)){ |
| | | if(objCode.equals(SmsConstants.platformBookContent.platformBookAuditSuccess)){ |
| | | //æ¨çã车è¾å
¥åç³è¯·ãå·²ç»å®¡æ¹éè¿ï¼å
¥åæ¶é´ä¸º{å
¥åæ¶é´}ï¼è¯·æå30åéåå¾ç°åºç¾å°ãå¦è®¡åæåï¼è¯·åæ¶èç³»å®¡æ ¸äººåã |
| | | content = content.replace("{å
¥åæ¶é´}",DateUtil.getFomartDate(platformBooks.getArriveDate(),"yyyy-MM-dd HH:mm")); |
| | | sendBusinessSms(emayService,smsEmailMapper, |
| | | Arrays.asList(platformBooks.getDriverPhone().split(",")),SmsConstants.platformBook,content,platformBooks.getId()); |
| | | }else if(objCode.equals(SmsConstants.platformBookContent.platformBookAuditFail) || objCode.equals(SmsConstants.platformBookContent.platformBookCancel)){ |
| | | //æ¨çã车è¾å
¥åç³è¯·ã已被驳åï¼é©³ååå 为ï¼{驳ååå }ã妿çé®ï¼è¯·èç³»å®¡æ ¸äººåã |
| | | content = content.replace("{驳ååå }",msg); |
| | | //æ¨çã车è¾å
¥åç³è¯·ãå·²è¢«åæ¶ï¼åæ¶åå 为ï¼{åæ¶åå }ã妿çé®ï¼è¯·èç³»å®¡æ ¸äººåã |
| | | content = content.replace("{åæ¶åå }",msg); |
| | | sendBusinessSms(emayService,smsEmailMapper, |
| | | Arrays.asList(platformBooks.getDriverPhone().split(",")),SmsConstants.platformBook,content,platformBooks.getId()); |
| | | }else{ |
| | | //æ¨æä¸æ¡ã车è¾å
¥åç³è¯·ãéè¦å¤çï¼è¯¦ç»ä¿¡æ¯è¯·åå¾å¾®ä¿¡å
¬ä¼å·æ¥çã |
| | | sendBusinessSms(emayService,smsEmailMapper, |
| | | auditUser,SmsConstants.platformBook,content,platformBooks.getId()); |
| | | } |
| | | } |
| | | } |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * ç¨è½¦ç³è¯· çä¿¡éç¥é
ç½® |
| | | * @param emayService |
| | | * @param smsEmailMapper |
| | | * @param smsConfigMapper |
| | | * @param platformJobMapper |
| | | * @param objId |
| | | * @param objCode |
| | | * @param platformName |
| | | */ |
| | | public static void sendPlatformJobSms(SystemDictDataBiz systemDictDataBiz, EmayService emayService , com.doumee.dao.business.dao.SmsEmailMapper smsEmailMapper , SmsConfigMapper smsConfigMapper, |
| | | PlatformJobMapper platformJobMapper, Integer objId, String objCode, String platformName, String newPlatformName){ |
| | | //platformJobNewJob {车çå·}车主æ¨å¥½ï¼æ¨æä¸ä¸ªæ°çè¿è¾ä»»å¡ï¼è¯¦ç»ä¿¡æ¯è¯·åå¾å¾®ä¿¡å
¬ä¼å·æ¥çã |
| | | //platformJobStopJob {车çå·}车主æ¨å¥½ï¼æ¨çè¿è¾ä»»å¡å·²è¢«åæ¶ï¼è¯¦ç»ä¿¡æ¯è¯·åå¾å¾®ä¿¡å
¬ä¼å·æ¥çã |
| | | //platformJobCallIn {车çå·}车主æ¨å¥½ï¼è¯·å¨10åéå
ï¼åå¾ååºçå¾
åºçå¾
å«å·ä½ä¸ã |
| | | //platformJobSingIn {车çå·}车主æ¨å¥½ï¼è¯·å¨10åéå
ï¼åå¾{æå°åç§°}è¿è¡ä½ä¸ã |
| | | //platformJobOverNum {车çå·}车主æ¨å¥½ï¼æ¨çä»»å¡å·²è¿å·ï¼è¯·éæ°ç¾å°æéçå¾
ã |
| | | //platformJobWorking {车çå·}车主æ¨å¥½ï¼æ¨ç车è¾å·²å¨{æå°åç§°}å¼å§ä½ä¸ï¼è¯·éæ¶å
³æ³¨ä½ä¸æ
åµã |
| | | //platformJobFinish {车çå·}车主æ¨å¥½ï¼æ¨ç车è¾å·²å¨{æå°åç§°}宿ä½ä¸ï¼è¯·åæ¶é©¶ç¦»æå°ã |
| | | //platformJobError {车çå·}车主æ¨å¥½ï¼æ¨å¨{æå°åç§°}çä½ä¸ä»»å¡å·²ç»è¢«å¼å¸¸æèµ·ï¼è¯·åæ¶å
³æ³¨å
·ä½æ
åµã |
| | | //platformJobMove {车çå·}车主æ¨å¥½ï¼æ¨å¨{æå°åç§°}çä½ä¸ä»»å¡å·²ç»å·²è¢«è½¬ç§»è³{转移åæå°åç§°}ï¼è¯·åæ¶å
³æ³¨å«å·æ
åµã |
| | | //platformJobTimeOut {车çå·}车主æ¨å¥½ï¼æ¨å¨{æå°åç§°}å·²åé è¶
æ¶ï¼è¯·å°½å¿«é©¶ç¦»ä»¥å
å½±ååç»ä½ä¸ã |
| | | 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(); |
| | | PlatformJob platformJob = platformJobMapper.selectById(objId); |
| | | if(Objects.nonNull(platformJob)){ |
| | | content = content.replace("{车çå·}",platformJob.getCarCodeFront()); |
| | | if(StringUtils.isNotBlank(platformName)&&content.indexOf("{æå°åç§°}")>=Constants.ZERO){ |
| | | content = content.replace("{æå°åç§°}",platformName); |
| | | } |
| | | if(StringUtils.isNotBlank(newPlatformName)&&content.indexOf("{转移åæå°åç§°}")>=Constants.ZERO){ |
| | | content = content.replace("{转移åæå°åç§°}",newPlatformName); |
| | | } |
| | | sendBusinessSms(emayService,smsEmailMapper, |
| | | Arrays.asList(platformJob.getDrivierPhone().split(",")),SmsConstants.platformJob,content,platformJob.getId()); |
| | | } |
| | | } |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | public static void sendBusinessSms(EmayService emayService, SmsEmailMapper smsEmailMapper, List<String> phoneList, String objType, String content, Integer objId){ |
| | | for (String phone:phoneList) { |
| | | SmsEmail smsEmail = new SmsEmail(); |
| | | smsEmail.setIsdeleted(Constants.ZERO); |
| | | smsEmail.setCreateDate(new Date()); |
| | | smsEmail.setStatus(Constants.ONE); |
| | | smsEmail.setType(Constants.ZERO); |
| | | smsEmail.setTitle("ä¸å¡çä¿¡"); |
| | | smsEmail.setPhone(phone); |
| | | smsEmail.setContent(content); |
| | | smsEmail.setObjType(objType); |
| | | smsEmail.setObjId(objId); |
| | | smsEmailMapper.insert(smsEmail); |
| | | emayService.sendSmsByHk(phone,content); |
| | | } |
| | | } |
| | | |
| | | } |