ycl-platform/src/main/java/com/ycl/controller/message/MessageController.java
@@ -46,6 +46,17 @@ return CommonResult.success(iMessageService.sendMessage(message)); } @ApiOperation(value = "发送消息通过手机号码") @RequestMapping(value = "/send_message_phone", method = RequestMethod.POST) public CommonResult sendMessageByPhoneNumber( @RequestBody Message message) { AdminUserDetails user = (AdminUserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); //设置创建人 message.setCreateUser(user.getUserId()); return CommonResult.success(iMessageService.sendMessageByPhone(message)); } @ApiOperation(value = "暂存消息") @PostMapping("/saveMessage") @ResponseBody ycl-platform/src/main/java/com/ycl/dto/message/MessageParam.java
@@ -53,4 +53,5 @@ @ApiModelProperty(value = "响应结果") private String respondResult; } ycl-platform/src/main/java/com/ycl/entity/message/Message.java
@@ -169,4 +169,7 @@ @ApiModelProperty(value = "响应结果") private String respondResult; @ApiModelProperty(value = "电话号码") private String phoneNumber; } ycl-platform/src/main/java/com/ycl/service/message/IMessageService.java
@@ -23,4 +23,6 @@ Page<MessageVO> list(MessageParam messageParam); Boolean deleteMessages(List<Long> ids); String sendMessageByPhone(Message message); } ycl-platform/src/main/java/com/ycl/service/message/impl/MessageServiceImpl.java
@@ -82,6 +82,7 @@ @Transactional(rollbackFor = Exception.class) public String sendMessage(Message message) { if (!StringUtils.equals(message.getChannelCode(),ChannelCode.SMS)){ Message savedMessage = messageMapper.selectOne(new LambdaQueryWrapper<Message>() .eq(Message::getTargetTo, message.getTargetTo()) .eq(Message::getTargetFrom, message.getTargetFrom()) @@ -90,9 +91,10 @@ if (savedMessage != null) { messageMapper.deleteById(savedMessage); } } ArrayList<Long> ids = new ArrayList<>(); message.setTargetFrom(umsAdminMapper.selectById(message.getCreateUser()).getUsername()); if (message.getId()==null) { for (String receive : message.getTargetTo().split(",")) { Message sendMessage = new Message(); BeanUtils.copyProperties(message, sendMessage); @@ -102,6 +104,7 @@ sendMessage.setSendTime(new Date()); this.save(sendMessage); ids.add(sendMessage.getId()); } } switch (message.getChannelCode()) { //邮件发送 @@ -176,6 +179,63 @@ } } @Override @SneakyThrows public String sendMessageByPhone(Message message) { Message sendMessage = new Message(); BeanUtils.copyProperties(message, sendMessage); sendMessage.setCreateTime(new Date()); sendMessage.setSendTime(new Date()); sendMessage.setSendTime(new Date()); this.save(sendMessage); String context = "【" + message.getHead() + "】" + message.getBody(); String addSerial = ""; SendReq sendReq = new SendReq(); sendReq.setEcName(ecName); sendReq.setApId(apId); sendReq.setSign(sign); sendReq.setContext(context); sendReq.setMobiles(message.getPhoneNumber()); 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")) { sendedMessage.setStatus(2); sendedMessage.setRespondResult("发送成功"); sendedMessage.setId(sendMessage.getId()); sendedMessage.setUpdateTime(new Date()); sendedMessage.setSendTime(new Date()); messageMapper.updateById(sendedMessage); return "send message success!"; } else { sendedMessage.setStatus(3); sendedMessage.setRespondResult("发送失败"); sendedMessage.setSendTime(new Date()); sendedMessage.setId(sendedMessage.getId()); sendedMessage.setUpdateTime(new Date()); messageMapper.updateById(sendedMessage); return "send message fail!"; } } //发送邮件 @SneakyThrows private void sendMail(Message message) { ycl-platform/src/main/java/com/ycl/vo/message/MessageVO.java
@@ -64,6 +64,9 @@ @ApiModelProperty(value = "发送者") private String targetFrom; @ApiModelProperty(value = "接收者") private Integer targetTo; /** * 发送时间 */ @@ -76,9 +79,6 @@ @ApiModelProperty(value = "状态0-未发布1-已发布") private Integer status; @ApiModelProperty(value = "创建人") private String createUser; /** * 创建时间 */ @@ -88,4 +88,10 @@ @ApiModelProperty(value = "响应结果") private String respondResult; @ApiModelProperty(value = "代码") private String channelCode; @ApiModelProperty(value = "消息类型") private Integer messageType; } ycl-platform/src/main/resources/mapper/message/MessageMapper.xml
@@ -37,7 +37,7 @@ resultType="com.ycl.vo.message.MessageVO"> SELECT t1.id, t2.username as targetFrom, t1.target_from, t3.column_name as messageTypeName, t1.`status`, t1.body, @@ -45,10 +45,12 @@ t1.create_time, t1.respond_result, t1.head, t1.target_to, t1.message_type, t1.channel_code, t4.username as createUser FROM `ums_message` t1 LEFT JOIN ums_admin t2 ON t1.target_from = t2.id left join ums_admin t4 on t1.create_user = t4.id LEFT JOIN ums_message_column t3 ON t3.id = t1.message_type <where> ycl-platform/src/main/resources/mapper/trend/TrendAnalysisMapper.xml
@@ -21,7 +21,6 @@ </where> GROUP BY t1.video_point_id ORDER BY count DESC </select>