document/ÔÆmas/~$TPS¶ÌÐŽӿÚÎĵµ.docxBinary files differ
ycl-platform/src/main/java/com/ycl/common/util/PropertyValueUtil.java
File was deleted ycl-platform/src/main/java/com/ycl/config/RestTemplateConfig.java
New file @@ -0,0 +1,14 @@ package com.ycl.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.client.RestTemplate; @Configuration public class RestTemplateConfig { @Bean public RestTemplate restTemplate() { return new RestTemplate(); } } ycl-platform/src/main/java/com/ycl/controller/caseHandler/BaseCaseController.java
@@ -1,14 +1,13 @@ package com.ycl.controller.caseHandler; import com.alibaba.excel.EasyExcel; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ycl.annotation.LogSave; import com.ycl.api.CommonResult; import com.ycl.common.constant.BaseCaseStatus; import com.ycl.common.util.UtilNumber; import com.ycl.controller.video.common.constant.BaseCaseStatus; import com.ycl.controller.video.common.util.UtilNumber; import com.ycl.controller.BaseController; import com.ycl.dto.caseHandler.QueryForViolationParam; import com.ycl.dto.casePool.IllegalBuildingParam; ycl-platform/src/main/java/com/ycl/controller/message/MessageColumnController.java
@@ -3,7 +3,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.ycl.api.CommonResult; import com.ycl.bo.AdminUserDetails; import com.ycl.common.util.UtilNumber; import com.ycl.controller.video.common.util.UtilNumber; import com.ycl.dto.message.MessageColumnParam; import com.ycl.entity.message.MessageColumn; import com.ycl.service.message.IMessageColumnService; ycl-platform/src/main/java/com/ycl/controller/message/MessageController.java
@@ -37,12 +37,24 @@ @ApiOperation(value = "åéæ¶æ¯") @RequestMapping(value = "/sendMessage", method = RequestMethod.POST) @ResponseBody public CommonResult sendMessage(@Validated @RequestBody MessageParam messageParam) { public CommonResult sendMessage(@Validated @RequestBody Message message) { AdminUserDetails user = (AdminUserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); //设置å建人 messageParam.setCreateUser(user.getUserId()); return CommonResult.success(iMessageService.sendMessage(messageParam)); message.setCreateUser(user.getUserId()); return CommonResult.success(iMessageService.sendMessage(message)); } @ApiOperation(value = "æåæ¶æ¯") @PostMapping("/saveMessage") @ResponseBody public CommonResult saveMessage(@Validated @RequestBody Message message) { AdminUserDetails user = (AdminUserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); //设置å建人 message.setCreateUser(user.getUserId()); message.setCreateTime(new Date()); return CommonResult.success(iMessageService.save(message)); } @ApiOperation(value = "è·åæ¶æ¯å页æ¥è¯¢") @RequestMapping(value = "/list", method = RequestMethod.GET) @ResponseBody @@ -62,14 +74,11 @@ @ApiOperation("ä¿®æ¹æå®æ¶æ¯") @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) @ResponseBody public CommonResult update(@PathVariable Long id, @RequestBody MessageParam messageParam) { Message message = new Message(); message.setId(id); public CommonResult update(@RequestBody Message message) { AdminUserDetails user = (AdminUserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); //设置å建人 message.setUpdateUser(user.getUserId()); message.setUpdateTime(new Date()); BeanUtils.copyProperties(messageParam, message); boolean success = iMessageService.updateById(message); if (success) { return CommonResult.success(null); ycl-platform/src/main/java/com/ycl/controller/store/StoreInfoController.java
@@ -5,10 +5,9 @@ import com.ycl.annotation.LogSave; import com.ycl.api.CommonPage; import com.ycl.api.CommonResult; import com.ycl.common.util.UtilNumber; import com.ycl.controller.video.common.util.UtilNumber; import com.ycl.dto.store.UmsStoreInfoParam; import com.ycl.entity.store.StoreInfo; import com.ycl.entity.video.VideoPoint; import com.ycl.service.store.StoreInfoService; import com.ycl.service.video.impl.IVideoPointService; import com.ycl.vo.store.StoreInfoVO; ycl-platform/src/main/java/com/ycl/controller/task/TaskController.java
@@ -3,7 +3,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.ycl.api.CommonResult; import com.ycl.bo.AdminUserDetails; import com.ycl.common.util.UtilNumber; import com.ycl.controller.video.common.util.UtilNumber; import com.ycl.entity.task.Task; import com.ycl.service.task.ITaskService; import io.swagger.annotations.Api; ycl-platform/src/main/java/com/ycl/controller/text/SmsController.java
New file @@ -0,0 +1,41 @@ package com.ycl.controller.text; import com.fasterxml.jackson.databind.ObjectMapper; import com.ycl.entity.message.SendReq; import com.ycl.entity.message.SendRes; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.SneakyThrows; import org.springframework.util.Base64Utils; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController() @Api(tags = "æµè¯SMs") @RequestMapping("/text") public class SmsController { @PostMapping("/sms_res") @ApiOperation(value = "çä¿¡æµè¯") @SneakyThrows public SendRes getSms(@RequestBody String param) { SendRes sendRes = new SendRes(); sendRes.setRspcod("success"); sendRes.setMgsGroup("SMS123456"); sendRes.setSuccess("success"); return sendRes; } @PostMapping("/sms_res/fail") @ApiOperation(value = "çä¿¡æµè¯") @SneakyThrows public SendRes getSmsToFail(@RequestBody String param) { SendRes sendRes = new SendRes(); sendRes.setRspcod("InvalidUsrOrPwd"); sendRes.setMgsGroup("SMS123456"); sendRes.setSuccess("success"); return sendRes; } } ycl-platform/src/main/java/com/ycl/controller/video/common/constant/BaseCaseStatus.java
File was renamed from ycl-platform/src/main/java/com/ycl/common/constant/BaseCaseStatus.java @@ -1,4 +1,4 @@ package com.ycl.common.constant; package com.ycl.controller.video.common.constant; /** * <p> ycl-platform/src/main/java/com/ycl/controller/video/common/constant/ChannelCode.java
File was renamed from ycl-platform/src/main/java/com/ycl/common/constant/ChannelCode.java @@ -1,4 +1,4 @@ package com.ycl.common.constant; package com.ycl.controller.video.common.constant; /** * <p> ycl-platform/src/main/java/com/ycl/controller/video/common/constant/CheckResult.java
File was renamed from ycl-platform/src/main/java/com/ycl/common/constant/CheckResult.java @@ -1,4 +1,4 @@ package com.ycl.common.constant; package com.ycl.controller.video.common.constant; /** * <p> ycl-platform/src/main/java/com/ycl/controller/video/common/constant/StepName.java
File was renamed from ycl-platform/src/main/java/com/ycl/common/constant/StepName.java @@ -1,4 +1,4 @@ package com.ycl.common.constant; package com.ycl.controller.video.common.constant; public enum StepName { ycl-platform/src/main/java/com/ycl/controller/video/common/util/CommonUtils.java
File was renamed from ycl-platform/src/main/java/com/ycl/common/util/CommonUtils.java @@ -1,4 +1,4 @@ package com.ycl.common.util; package com.ycl.controller.video.common.util; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; ycl-platform/src/main/java/com/ycl/controller/video/common/util/DateUtil.java
File was renamed from ycl-platform/src/main/java/com/ycl/common/util/DateUtil.java @@ -1,4 +1,4 @@ package com.ycl.common.util; package com.ycl.controller.video.common.util; import java.text.ParseException; import java.text.SimpleDateFormat; ycl-platform/src/main/java/com/ycl/controller/video/common/util/DateUtils.java
File was renamed from ycl-platform/src/main/java/com/ycl/common/util/DateUtils.java @@ -1,4 +1,4 @@ package com.ycl.common.util; package com.ycl.controller.video.common.util; import java.text.ParseException; import java.text.SimpleDateFormat; ycl-platform/src/main/java/com/ycl/controller/video/common/util/Md5.java
File was renamed from ycl-platform/src/main/java/com/ycl/common/util/Md5.java @@ -1,4 +1,4 @@ package com.ycl.common.util; package com.ycl.controller.video.common.util; import java.security.MessageDigest; ycl-platform/src/main/java/com/ycl/controller/video/common/util/ParamsMap.java
File was renamed from ycl-platform/src/main/java/com/ycl/common/util/ParamsMap.java @@ -1,4 +1,4 @@ package com.ycl.common.util; package com.ycl.controller.video.common.util; import lombok.extern.slf4j.Slf4j; ycl-platform/src/main/java/com/ycl/controller/video/common/util/RandomNumberGenerator.java
File was renamed from ycl-platform/src/main/java/com/ycl/common/util/RandomNumberGenerator.java @@ -1,4 +1,4 @@ package com.ycl.common.util; package com.ycl.controller.video.common.util; import java.text.SimpleDateFormat; import java.util.Date; ycl-platform/src/main/java/com/ycl/controller/video/common/util/RandomStringUtil.java
File was renamed from ycl-platform/src/main/java/com/ycl/common/util/RandomStringUtil.java @@ -1,4 +1,4 @@ package com.ycl.common.util; package com.ycl.controller.video.common.util; import java.util.Random; ycl-platform/src/main/java/com/ycl/controller/video/common/util/UtilNumber.java
File was renamed from ycl-platform/src/main/java/com/ycl/common/util/UtilNumber.java @@ -1,4 +1,4 @@ package com.ycl.common.util; package com.ycl.controller.video.common.util; import com.ycl.mapper.common.GeneratedCodeMapper; ycl-platform/src/main/java/com/ycl/dto/message/MessageParam.java
@@ -16,12 +16,7 @@ @Data @ApiModel("æ¶æ¯åæ°ä½") public class MessageParam extends BasePageVO { /** * 主é®id */ @ApiModelProperty(value = "主é®id") private Long id; private Byte sort; /** * æ é¢ */ @@ -32,54 +27,24 @@ */ @ApiModelProperty(value = "æ¸ éç 01-å ç«ä¿¡02-é®ä»¶03-çä¿¡") private String channelCode; /** * æ¶æ¯ç±»å */ @ApiModelProperty(value = "å¡«å æ ç®ç¼ç ") private Integer messageType; /** * æ¶æ¯ä½ */ @ApiModelProperty(value = "æ¶æ¯ä½") private String body; /** * åéè */ @ApiModelProperty(value = "åéè ") private String targetFrom; /** * æ¥æ¶è */ @ApiModelProperty(value = "æ¥æ¶è ") private String targetTo; /** * éæºç */ @ApiModelProperty(value = "éæºç ") private String randomCode; /** * åéæ¶é´ */ @ApiModelProperty(value = "åéæ¶é´") private String sendTime; @ApiModelProperty(value = "å¼å§æ¶é´") private String startTime; @ApiModelProperty(value = "å¼å§æ¶é´") private String endTime; /** * ç¶æ0-æªåå¸1-å·²åå¸ */ @ApiModelProperty(value = "ç¶æ0-æªåå¸1-å·²åå¸") private Integer status; /** * 夿³¨ */ @ApiModelProperty(value = "夿³¨ ps:é¢çåæ®µ") private String remark; /** * å建人 */ @ApiModelProperty(value = "å建人") private Long createUser; /** * æ¯å¦æ«æ0-æªæ«æ1-å·²æ«æ */ @ApiModelProperty(value = "æ¯å¦æ«æ0-æªæ«æ1-å·²æ«æ") private Integer isScan; @ApiModelProperty(value = "ååºç»æ") private String respondResult; } ycl-platform/src/main/java/com/ycl/entity/message/Message.java
@@ -14,7 +14,7 @@ /** * <p> * æ¶æ¯å®ä½ç±» * æ¶æ¯å®ä½ç±» * </p> * * @author mg @@ -167,4 +167,6 @@ @ApiModelProperty(value = "æ´æ°æ¶é´") private Date updateTime; @ApiModelProperty(value = "ååºç»æ") private String respondResult; } ycl-platform/src/main/java/com/ycl/entity/message/SendReq.java
New file @@ -0,0 +1,15 @@ package com.ycl.entity.message; import lombok.Data; @Data public class SendReq { private String apId; private String ecName; //éå¢åç§° private String sign; //ç½å ³ç¾åç¼ç private String addSerial; //æå±ç 填空 private String mac;//请æ±url private String mobiles; private String context; } ycl-platform/src/main/java/com/ycl/entity/message/SendRes.java
New file @@ -0,0 +1,10 @@ package com.ycl.entity.message; import lombok.Data; @Data public class SendRes { private String rspcod; private String mgsGroup; private String success; } ycl-platform/src/main/java/com/ycl/mapper/message/MessageMapper.java
@@ -1,6 +1,8 @@ package com.ycl.mapper.message; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ycl.dto.message.MessageParam; import com.ycl.entity.message.Message; /** @@ -12,4 +14,5 @@ * @since 2022-10-08 */ public interface MessageMapper extends BaseMapper<Message> { Page<Message> selectMessagePage(Page<Message> page, MessageParam messageParam); } ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/BaseCaseServiceImpl.java
@@ -8,9 +8,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.bo.AdminUserDetails; import com.ycl.common.constant.BaseCaseStatus; import com.ycl.common.constant.StepName; import com.ycl.common.util.DateUtil; import com.ycl.controller.video.common.constant.BaseCaseStatus; import com.ycl.controller.video.common.constant.StepName; import com.ycl.controller.video.common.util.DateUtil; import com.ycl.dto.caseHandler.QueryForViolationParam; import com.ycl.dto.casePool.IllegalBuildingParam; import com.ycl.dto.casePool.ViolationParam; ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/CheckHandleServiceImpl.java
@@ -3,9 +3,9 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.common.constant.BaseCaseStatus; import com.ycl.common.constant.CheckResult; import com.ycl.common.constant.StepName; import com.ycl.controller.video.common.constant.BaseCaseStatus; import com.ycl.controller.video.common.constant.CheckResult; import com.ycl.controller.video.common.constant.StepName; import com.ycl.dto.caseHandler.ChechParam; import com.ycl.entity.caseHandler.BaseCase; import com.ycl.entity.caseHandler.DisposeRecord; ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/DisposeRecordServiceImpl.java
@@ -5,8 +5,8 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.bo.AdminUserDetails; import com.ycl.common.constant.BaseCaseStatus; import com.ycl.common.constant.StepName; import com.ycl.controller.video.common.constant.BaseCaseStatus; import com.ycl.controller.video.common.constant.StepName; import com.ycl.dto.dispatch.UploadDisposingResultParam; import com.ycl.entity.caseHandler.*; import com.ycl.entity.resources.ImageResources; ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/IDispatchHandleServiceImpl.java
@@ -3,8 +3,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.common.constant.BaseCaseStatus; import com.ycl.common.constant.StepName; import com.ycl.controller.video.common.constant.BaseCaseStatus; import com.ycl.controller.video.common.constant.StepName; import com.ycl.dto.caseHandler.DispatchInfoParam; import com.ycl.entity.caseHandler.BaseCase; import com.ycl.entity.caseHandler.DispatchInfo; ycl-platform/src/main/java/com/ycl/service/message/IMessageService.java
@@ -1,6 +1,6 @@ package com.ycl.service.message; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.ycl.dto.message.MessageParam; import com.ycl.entity.message.Message; @@ -9,7 +9,7 @@ /** * <p> * æ¶æ¯æå¡ç±» * æ¶æ¯æå¡ç±» * </p> * * @author mg @@ -17,8 +17,9 @@ */ public interface IMessageService extends IService<Message> { Message sendMessage(MessageParam messageParam); IPage<Message> list(MessageParam messageParam); String sendMessage(Message message); Page<Message> list(MessageParam messageParam); Boolean deleteMessages(List<Long> ids); } ycl-platform/src/main/java/com/ycl/service/message/Provider.java
File was deleted ycl-platform/src/main/java/com/ycl/service/message/Sender.java
File was deleted ycl-platform/src/main/java/com/ycl/service/message/factory/InnerFactory.java
File was deleted ycl-platform/src/main/java/com/ycl/service/message/factory/InnerSender.java
File was deleted ycl-platform/src/main/java/com/ycl/service/message/factory/MailFactory.java
File was deleted ycl-platform/src/main/java/com/ycl/service/message/factory/MailSender.java
File was deleted ycl-platform/src/main/java/com/ycl/service/message/factory/SmsFactory.java
File was deleted ycl-platform/src/main/java/com/ycl/service/message/factory/SmsSender.java
File was deleted ycl-platform/src/main/java/com/ycl/service/message/impl/MessageServiceImpl.java
@@ -1,26 +1,42 @@ package com.ycl.service.message.impl; import cn.hutool.core.net.url.UrlBuilder; import cn.hutool.core.net.url.UrlPath; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.common.constant.ChannelCode; import com.ycl.common.util.CommonUtils; import com.fasterxml.jackson.databind.ObjectMapper; import com.ycl.controller.video.common.constant.ChannelCode; import com.ycl.controller.video.common.util.CommonUtils; import com.ycl.dto.message.MessageParam; import com.ycl.entity.message.Message; import com.ycl.entity.message.SendReq; import com.ycl.entity.message.SendRes; import com.ycl.entity.user.UmsAdmin; import com.ycl.exception.ApiException; import com.ycl.mapper.message.MessageMapper; import com.ycl.mapper.user.UmsAdminMapper; import com.ycl.service.message.IMessageService; import com.ycl.service.message.Provider; import com.ycl.service.message.Sender; import com.ycl.service.message.factory.InnerFactory; import com.ycl.service.message.factory.MailFactory; import com.ycl.service.message.factory.SmsFactory; import com.ycl.utils.MD5Util; import lombok.SneakyThrows; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.mail.javamail.JavaMailSenderImpl; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Base64Utils; import org.springframework.web.client.RestTemplate; import javax.annotation.Resource; import javax.mail.internet.MimeMessage; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -35,78 +51,162 @@ @Service public class MessageServiceImpl extends ServiceImpl<MessageMapper, Message> implements IMessageService { @Value("${e-mail.sendHost}") private String sendHost; @Value("${e-mail.username}") private String userName; @Value("${e-mail.password}") private String password; @Value(value = "${SMS.ecName}") private String ecName; //éå¢å®¢æ·åç§° @Value(value = "${SMS.apId}") private String apId; //ç¨æ·å @Value(value = "${SMS.sign}") private String sign; //ç½å ³ç¾åç¼ç ï¼å¿ å¡«ï¼ç¾åç¼ç å¨ä¸å½ç§»å¨éå¢å¼éå¸å·ååé ï¼å¯ä»¥å¨äºMASç½é¡µç«¯ç®¡çåç³»ç»-SMSæ¥å£ç®¡çåè½ä¸ä¸è½½ã @Value(value = "${SMS.url}") private String url; @Resource private UmsAdminMapper umsAdminMapper; @Resource private MessageMapper messageMapper; @Resource RestTemplate restTemplate; @Override public Message sendMessage(MessageParam messageParam) { Message message = null; Provider provider = null; switch (messageParam.getChannelCode()) { //å ç«åé case ChannelCode.INNER: provider = new InnerFactory(); break; @Transactional(rollbackFor = Exception.class) public String sendMessage(Message message) { Message savedMessage = messageMapper.selectOne(new LambdaQueryWrapper<Message>() .eq(Message::getTargetTo, message.getTargetTo()) .eq(Message::getTargetFrom, message.getTargetFrom())); if (savedMessage != null) { messageMapper.deleteById(savedMessage); } ArrayList<Long> ids = new ArrayList<>(); for (String receive : message.getTargetTo().split(",")) { Message sendMessage = new Message(); BeanUtils.copyProperties(message, sendMessage); sendMessage.setCreateTime(new Date()); sendMessage.setSendTime(new Date()); sendMessage.setTargetTo(receive); sendMessage.setSendTime(new Date()); this.save(sendMessage); ids.add(sendMessage.getId()); } switch (message.getChannelCode()) { //é®ä»¶åé case ChannelCode.SMS: provider = new MailFactory(); sendSMS(message, ids); break; //çä¿¡åé //çä¿¡åé case ChannelCode.MAIL: provider = new SmsFactory(); sendMail(message); break; default: throw new ApiException("æªå¹é å°è¯¥ç±»å"); } Sender sender = provider.produce(); sender.sendMessage(messageParam); return message; return "send message success!"; } @SneakyThrows private void sendSMS(Message message, List<Long> mesIds) { String context = "ã" + message.getHead() + "ã" + message.getBody(); String addSerial = ""; SendReq sendReq = new SendReq(); sendReq.setEcName(ecName); sendReq.setApId(apId); sendReq.setSign(sign); sendReq.setContext(context); String[] ids = message.getTargetTo().split(","); String[] mobiles = new String[ids.length]; for (int i = 0; i < ids.length; i++) { mobiles[i] = umsAdminMapper.selectById(ids[i]).getMobile(); } sendReq.setMobiles(StringUtils.join(mobiles, ",")); sendReq.setAddSerial(addSerial); StringBuffer mac = new StringBuffer(); mac.append(ecName); mac.append(apId); mac.append(sendReq.getMobiles()); mac.append(context); mac.append(sign); mac.append(addSerial); sendReq.setMac(MD5Util.md5Encrypt32Lower(mac.toString())); HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.setContentType(MediaType.APPLICATION_JSON); ObjectMapper objectMapper = new ObjectMapper(); HttpEntity<String> stringHttpEntity = new HttpEntity<>(Base64Utils.encodeToString(objectMapper.writeValueAsBytes(mac)), httpHeaders); SendRes sendRes = objectMapper.readValue(restTemplate.postForEntity(url, stringHttpEntity, String.class).getBody(), SendRes.class); Message sendedMessage = new Message(); if (sendRes.getRspcod().equals("success")) { for (Long id : mesIds) { sendedMessage.setStatus(2); sendedMessage.setRespondResult("åéæå"); sendedMessage.setId(id); sendedMessage.setUpdateTime(new Date()); sendedMessage.setSendTime(new Date()); messageMapper.updateById(sendedMessage); } } else { for (Long id : mesIds) { sendedMessage.setStatus(3); sendedMessage.setRespondResult("åé失败"); sendedMessage.setSendTime(new Date()); sendedMessage.setId(id); sendedMessage.setUpdateTime(new Date()); messageMapper.updateById(sendedMessage); } } } //åéé®ä»¶ @SneakyThrows private void sendMail(Message message) { JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl(); javaMailSender.setHost(sendHost); javaMailSender.setUsername(userName); javaMailSender.setPassword(password); MimeMessage mimeMessage = javaMailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(mimeMessage); helper.setText(message.getBody()); helper.setSubject(message.getHead()); helper.setFrom(userName); String[] ids = message.getTargetTo().split(","); String[] address = new String[ids.length]; for (int i = 0; i < ids.length; i++) { address[i] = umsAdminMapper.selectById(ids[i]).getEmail(); } helper.setTo(address); javaMailSender.send(mimeMessage); } @Override public IPage<Message> list(MessageParam messageParam) { public Page<Message> list(MessageParam messageParam) { Page<Message> page = new Page<>(messageParam.getCurrent(), messageParam.getPageSize()); LambdaQueryWrapper<Message> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(Message::getParentId, 0); if (!CommonUtils.isEmpty(messageParam.getHead())) { queryWrapper.eq(Message::getHead, messageParam.getHead()); } if (!CommonUtils.isEmpty(messageParam.getChannelCode())) { queryWrapper.eq(Message::getChannelCode, messageParam.getChannelCode()); } if (!CommonUtils.isEmpty(messageParam.getStatus())) { queryWrapper.eq(Message::getStatus, messageParam.getStatus()); } queryWrapper.orderByDesc(Message::getCreateTime); Page<Message> result = baseMapper.selectPage(page, queryWrapper); List<Message> messages = result.getRecords(); if (!CommonUtils.isEmpty(messages)) { List<Long> ids = messages.stream().map(e -> Long.parseLong(e.getTargetFrom().trim())).collect(Collectors.toList()); LambdaQueryWrapper<UmsAdmin> queryUSers = new LambdaQueryWrapper<>(); queryUSers.in(UmsAdmin::getId, ids); List<UmsAdmin> users = umsAdminMapper.selectList(queryUSers); if (!CommonUtils.isEmpty(users)) { for (UmsAdmin user : users) { for (Message message : messages) { if (message.getTargetFrom().equals(user.getId()+"")) { message.setTargetFrom(user.getUsername()); } } } } } return result; return messageMapper.selectMessagePage(page,messageParam); } @Override public Boolean deleteMessages(List<Long> ids) { LambdaQueryWrapper<Message> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.in(Message::getId, ids).or().in(Message::getParentId,ids); queryWrapper.in(Message::getId, ids).or().in(Message::getParentId, ids); List<Message> messages = baseMapper.selectList(queryWrapper); if (CommonUtils.isNotEmpty(messages)) { List<Long> deleteIds = messages.stream().map(Message::getId).collect(Collectors.toList()); List<Long> deleteIds = messages.stream().map(Message::getId).collect(Collectors.toList()); baseMapper.deleteBatchIds(deleteIds); } return true; ycl-platform/src/main/java/com/ycl/service/message/impl/SmsAuditServiceImpl.java
@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.common.util.CommonUtils; import com.ycl.controller.video.common.util.CommonUtils; import com.ycl.dto.message.MessageSmsParam; import com.ycl.entity.message.Message; import com.ycl.entity.message.SmsAudit; @@ -14,7 +14,6 @@ import com.ycl.mapper.message.SmsAuditMapper; import com.ycl.mapper.user.UmsDepartManageMapper; import com.ycl.service.message.ISmsAuditService; import com.ycl.service.message.factory.SmsSender; import com.ycl.service.user.UmsAdminService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -25,7 +24,7 @@ /** * <p> * çä¿¡å®¡æ ¸ æå¡å®ç°ç±» * çä¿¡å®¡æ ¸ æå¡å®ç°ç±» * </p> * * @author mg @@ -41,8 +40,6 @@ @Resource private UmsAdminService adminService; @Resource private SmsSender smsSender; @Override public IPage<SmsAudit> list(SmsAudit smsAudit) { @@ -72,18 +69,14 @@ queryDeptWrapper.in(UmsDepartManage::getUserId, ids); List<UmsDepartManage> depts = umsDepartManageMapper.selectList(queryDeptWrapper); //é¨é¨å»é List<UmsDepartManage> uniques = depts.stream().collect( Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o->o.getDepartId()))), ArrayList::new)); List<UmsDepartManage> uniques = depts.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getDepartId()))), ArrayList::new)); List<Long> deptLeadIds = uniques.stream().map(UmsDepartManage::getDepartId).collect(Collectors.toList()); LambdaQueryWrapper<UmsDepartManage> queryDeptLeadWrapper = new LambdaQueryWrapper<>(); queryDeptLeadWrapper.in(UmsDepartManage::getDepartId, deptLeadIds).eq(UmsDepartManage::getIsLeader,1); queryDeptLeadWrapper.in(UmsDepartManage::getDepartId, deptLeadIds).eq(UmsDepartManage::getIsLeader, 1); List<UmsDepartManage> deptLeads = umsDepartManageMapper.selectList(queryDeptLeadWrapper); //å®¡æ ¸å»é List<UmsDepartManage> uniqueLeads = deptLeads.stream().collect( Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o->o.getUserId()))), ArrayList::new)); List<UmsDepartManage> uniqueLeads = deptLeads.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getUserId()))), ArrayList::new)); //æ·»å çä¿¡å®¡æ ¸ List<SmsAudit> audits = new ArrayList<>(); for (UmsDepartManage depart : uniqueLeads) { @@ -104,8 +97,7 @@ @Override public Boolean checkSms(MessageSmsParam messageSmsParam) { switch (messageSmsParam.getStatus()) { switch (messageSmsParam.getStatus()) { //æªéè¿ case 0: noPassMethod(messageSmsParam); @@ -119,6 +111,7 @@ } return true; } @Transactional public void passMethod(MessageSmsParam messageSmsParam) { Message message = messageMapper.selectById(messageSmsParam.getMessageId()); @@ -128,8 +121,6 @@ //idæ¢æææºå· String targetToPhone = adminService.getTargetTo(message.getTargetTo(), message.getChannelCode()); message.setTargetTo(targetToPhone); //åéçä¿¡ smsSender.sendSms(message); Message updateMessage = new Message(); updateMessage.setSendTime(new Date()); @@ -143,17 +134,20 @@ //å®¡æ ¸çä¿¡æ´æ° updateSmsAudit(messageSmsParam); } @Transactional public void noPassMethod(MessageSmsParam messageSmsParam) { //å®¡æ ¸çä¿¡æ´æ° updateSmsAudit(messageSmsParam); } public void updateSmsAudit(MessageSmsParam messageSmsParam) { SmsAudit smsAudit = packageData(messageSmsParam); LambdaQueryWrapper<SmsAudit> smsAuditUpdate = new LambdaQueryWrapper<>(); smsAuditUpdate.eq(SmsAudit::getMessageId, messageSmsParam.getMessageId()); baseMapper.update(smsAudit,smsAuditUpdate); baseMapper.update(smsAudit, smsAuditUpdate); } public SmsAudit packageData(MessageSmsParam messageSmsParam) { SmsAudit smsAudit = new SmsAudit(); smsAudit.setMessageId(messageSmsParam.getMessageId()); ycl-platform/src/main/java/com/ycl/service/message/impl/SmsTemplateServiceImpl.java
@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.common.util.CommonUtils; import com.ycl.controller.video.common.util.CommonUtils; import com.ycl.entity.message.SmsTemplate; import com.ycl.mapper.message.SmsTemplateMapper; import com.ycl.service.message.ISmsTemplateService; ycl-platform/src/main/java/com/ycl/service/video/impl/VideoInspectionServiceImpl.java
@@ -1,8 +1,6 @@ package com.ycl.service.video.impl; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ycl.common.util.CommonUtils; import com.ycl.entity.video.VideoPoint; import com.ycl.mapper.video.VideoPointMapper; import com.ycl.service.video.IVideoInspectionService; import com.ycl.vo.equipment.VideoPointVo; ycl-platform/src/main/java/com/ycl/vo/message/MessageVO.java
New file @@ -0,0 +1,91 @@ package com.ycl.vo.message; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import java.io.Serializable; import java.util.Date; /** * <p> * æ¶æ¯å®ä½ç±» * </p> * * @author mg * @since 2022-10-08 */ @Data @EqualsAndHashCode(callSuper = false) @TableName("ums_message") @ApiModel(value = "æ¶æ¯è¡¨") public class MessageVO implements Serializable { private static final long serialVersionUID = 1L; /** * ä¸»é® */ @TableId(value = "id", type = IdType.AUTO) @ApiModelProperty(value = "主é®") private Long id; /** * æ é¢ */ @TableField("head") @ApiModelProperty(value = "æ é¢") private String head; /** * æ¶æ¯ç±»å */ @TableField("message_type") @ApiModelProperty(value = "å¡«å æ ç®ç¼ç ") private String messageTypeName; /** * æ¶æ¯ä½ */ @ApiModelProperty(value = "æ¶æ¯ä½") private String body; /** * åéè */ @ApiModelProperty(value = "åéè ") private String targetFrom; /** * åéæ¶é´ */ @ApiModelProperty(value = "åéæ¶é´") @JsonFormat(timezone = "GMT", pattern = "yyyy-MM-dd HH:mm:ss") private Date sendTime; /** * ç¶æ0-æªåå¸1-å·²åå¸ */ @ApiModelProperty(value = "ç¶æ0-æªåå¸1-å·²åå¸") private Integer status; @ApiModelProperty(value = "å建人") private String createUser; /** * å建æ¶é´ */ @ApiModelProperty(value = "å建æ¶é´") @JsonFormat(timezone = "GMT", pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; @ApiModelProperty(value = "ååºç»æ") private String respondResult; } ycl-platform/src/main/resources/application-dev.yml
@@ -11,7 +11,7 @@ groupName: sczhzf soTimeout: 1500 connectTimeout: 600 trackerList: #TrackerListåæ°,æ¯æå¤ä¸ª trackerList: #TrackerListåæ°,æ¯æå¤ä¸ª - 140.143.152.226:22122 cfg: @@ -20,10 +20,6 @@ snow-flake: datacenterId: 1 machineId: 1 mail: host: smtp.163.com username: maokecheng2015@163.com authorizationCode: JOMMIXUTGAJYOSNA spring: redis: @@ -57,3 +53,14 @@ testOnReturn: false poolPreparedStatements: true maxOpenPreparedStatements: 20 e-mail: sendHost: smtp.qq.com username: 1723292425@qq.com password: qizcitupatzoeeij SMS: ecName: ycl apId: 1 sign: sign url: http://localhost:8082/sccg/text/sms_res/fail ycl-platform/src/main/resources/application.yml
@@ -88,3 +88,4 @@ - /**/system/portal/logo/search - /**/unauthorized/** - /**/api/** - /**/text/** ycl-platform/src/test/java/com/ycl/sccgplatform/SccgPlatformApplicationTests.java
@@ -1,13 +1,12 @@ package com.ycl.sccgplatform; import com.ycl.common.util.UtilNumber; import com.ycl.controller.video.common.util.UtilNumber; import com.ycl.enums.common.DictTypeEnum; import com.ycl.service.caseHandler.IBaseCaseService; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.Map;