From aeea62d121a1a8fd4475da30f1ef8b44b4776c7b Mon Sep 17 00:00:00 2001 From: wl <173@qq.com> Date: 星期三, 04 一月 2023 14:02:47 +0800 Subject: [PATCH] fix: 店铺消息发送 --- ycl-platform/src/main/java/com/ycl/vo/message/MessageVO.java | 12 +++- ycl-platform/src/main/java/com/ycl/service/message/IMessageService.java | 2 ycl-platform/src/main/resources/mapper/message/MessageMapper.xml | 6 + ycl-platform/src/main/java/com/ycl/entity/message/Message.java | 3 + ycl-platform/src/main/java/com/ycl/dto/message/MessageParam.java | 1 ycl-platform/src/main/resources/mapper/trend/TrendAnalysisMapper.xml | 1 ycl-platform/src/main/java/com/ycl/controller/message/MessageController.java | 11 +++ ycl-platform/src/main/java/com/ycl/service/message/impl/MessageServiceImpl.java | 94 +++++++++++++++++++++++++----- 8 files changed, 107 insertions(+), 23 deletions(-) diff --git a/ycl-platform/src/main/java/com/ycl/controller/message/MessageController.java b/ycl-platform/src/main/java/com/ycl/controller/message/MessageController.java index 2489f87..cfc396a 100644 --- a/ycl-platform/src/main/java/com/ycl/controller/message/MessageController.java +++ b/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 diff --git a/ycl-platform/src/main/java/com/ycl/dto/message/MessageParam.java b/ycl-platform/src/main/java/com/ycl/dto/message/MessageParam.java index e8a0ee4..fa5e76c 100644 --- a/ycl-platform/src/main/java/com/ycl/dto/message/MessageParam.java +++ b/ycl-platform/src/main/java/com/ycl/dto/message/MessageParam.java @@ -53,4 +53,5 @@ @ApiModelProperty(value = "鍝嶅簲缁撴灉") private String respondResult; + } \ No newline at end of file diff --git a/ycl-platform/src/main/java/com/ycl/entity/message/Message.java b/ycl-platform/src/main/java/com/ycl/entity/message/Message.java index fcdf270..78b77ab 100644 --- a/ycl-platform/src/main/java/com/ycl/entity/message/Message.java +++ b/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; } diff --git a/ycl-platform/src/main/java/com/ycl/service/message/IMessageService.java b/ycl-platform/src/main/java/com/ycl/service/message/IMessageService.java index 571a72e..0505805 100644 --- a/ycl-platform/src/main/java/com/ycl/service/message/IMessageService.java +++ b/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); } diff --git a/ycl-platform/src/main/java/com/ycl/service/message/impl/MessageServiceImpl.java b/ycl-platform/src/main/java/com/ycl/service/message/impl/MessageServiceImpl.java index 04e0ea9..e0c1a53 100644 --- a/ycl-platform/src/main/java/com/ycl/service/message/impl/MessageServiceImpl.java +++ b/ycl-platform/src/main/java/com/ycl/service/message/impl/MessageServiceImpl.java @@ -82,26 +82,29 @@ @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()) - .eq(Message::getBody, message.getBody()) - .eq(Message::getHead, message.getHead())); - if (savedMessage != null) { - messageMapper.deleteById(savedMessage); + if (!StringUtils.equals(message.getChannelCode(),ChannelCode.SMS)){ + Message savedMessage = messageMapper.selectOne(new LambdaQueryWrapper<Message>() + .eq(Message::getTargetTo, message.getTargetTo()) + .eq(Message::getTargetFrom, message.getTargetFrom()) + .eq(Message::getBody, message.getBody()) + .eq(Message::getHead, message.getHead())); + if (savedMessage != null) { + messageMapper.deleteById(savedMessage); + } } - ArrayList<Long> ids = new ArrayList<>(); message.setTargetFrom(umsAdminMapper.selectById(message.getCreateUser()).getUsername()); - 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()); + if (message.getId()==null) { + 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()) { //閭欢鍙戦�� @@ -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) { diff --git a/ycl-platform/src/main/java/com/ycl/vo/message/MessageVO.java b/ycl-platform/src/main/java/com/ycl/vo/message/MessageVO.java index be9d22f..a86f6cf 100644 --- a/ycl-platform/src/main/java/com/ycl/vo/message/MessageVO.java +++ b/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 = "浠g爜") + private String channelCode; + + @ApiModelProperty(value = "娑堟伅绫诲瀷") + private Integer messageType; } diff --git a/ycl-platform/src/main/resources/mapper/message/MessageMapper.xml b/ycl-platform/src/main/resources/mapper/message/MessageMapper.xml index f1b0a73..be8b16f 100644 --- a/ycl-platform/src/main/resources/mapper/message/MessageMapper.xml +++ b/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> diff --git a/ycl-platform/src/main/resources/mapper/trend/TrendAnalysisMapper.xml b/ycl-platform/src/main/resources/mapper/trend/TrendAnalysisMapper.xml index 8a74e7e..db8e345 100644 --- a/ycl-platform/src/main/resources/mapper/trend/TrendAnalysisMapper.xml +++ b/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> -- Gitblit v1.8.0