From 362d57869b208b20b62610efcd91bfd570e99da8 Mon Sep 17 00:00:00 2001 From: wangqx Date: Wed, 24 Sep 2025 18:21:46 +0800 Subject: [PATCH] =?UTF-8?q?[fix]=E4=BF=AE=E6=94=B9=E9=80=9A=E7=9F=A5?= =?UTF-8?q?=E7=9A=84=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/customer/AppOrderController.java | 11 ++++ .../dromara/common/mq/domain/MQMessage.java | 5 +- .../common/mq/enums/MessageActionEnum.java | 52 ++++++++------- .../org/dromara/common/mq/utils/MqUtil.java | 4 ++ .../soopin/content/domain/bo/CommentBO.java | 6 +- .../wzj/soopin/content/domain/po/Comment.java | 8 +-- .../content/domain/vo/ChildCommentVO.java | 8 +-- .../soopin/content/domain/vo/CommentVO.java | 6 +- .../service/impl/CommentServiceImpl.java | 63 ++++++++++-------- .../service/impl/VlogPushServiceImpl.java | 5 +- .../content/service/impl/VlogServiceImpl.java | 16 +++-- .../im/consumer/MessageRocketMQConsumer.java | 2 +- .../impl/MQMessageHandleServiceImpl.java | 13 ++-- .../member/service/impl/FansServiceImpl.java | 7 +- .../service/impl/FeedbackServiceImpl.java | 7 +- .../business/impl/OrderBusinessImpl.java | 11 ++++ .../soopin/order/domain/entity/OrderItem.java | 1 + .../wzj/soopin/order/domain/vo/OrderVO.java | 3 + .../soopin/order/service/OrderService.java | 1 + .../service/impl/AftersaleServiceImpl.java | 6 +- .../order/service/impl/OrderServiceImpl.java | 66 +++++++++++-------- .../service/impl/ChargeServiceImpl.java | 58 ++++++++++------ .../service/impl/EasypayServiceImpl.java | 30 +++++++++ .../service/impl/RedPacketServiceImpl.java | 2 +- .../service/impl/WithdrawServiceImpl.java | 4 +- 25 files changed, 253 insertions(+), 142 deletions(-) diff --git a/ruoyi-admin/src/main/java/org/dromara/app/customer/AppOrderController.java b/ruoyi-admin/src/main/java/org/dromara/app/customer/AppOrderController.java index 332268b72..b0e1e8b55 100644 --- a/ruoyi-admin/src/main/java/org/dromara/app/customer/AppOrderController.java +++ b/ruoyi-admin/src/main/java/org/dromara/app/customer/AppOrderController.java @@ -5,6 +5,7 @@ import com.wzj.soopin.content.utils.RedisOperator; import com.wzj.soopin.order.business.IOrderBusiness; import com.wzj.soopin.order.domain.bo.OrderBo; import com.wzj.soopin.order.domain.bo.SaveOrderBO; +import com.wzj.soopin.order.domain.entity.Order; import com.wzj.soopin.order.domain.vo.OrderVO; import com.wzj.soopin.order.service.IMemberOrderService; import com.wzj.soopin.order.service.OrderService; @@ -17,6 +18,7 @@ import org.dromara.common.core.domain.R; import org.dromara.common.core.domain.model.LoginUser; import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.mq.utils.MqUtil; import org.dromara.common.satoken.utils.LoginHelper; import org.springframework.web.bind.annotation.*; @@ -70,4 +72,13 @@ public class AppOrderController { return R.ok(); } + @Operation(summary = "发送消息") + @Log(title = "发送消息", businessType = BusinessType.UPDATE) + @PostMapping("/send/{orderId}") + public R send(@PathVariable("orderId") Long orderId) { + orderService.sendMessage(orderId); + //发出消息 + return R.ok(); + } + } diff --git a/ruoyi-common/ruoyi-common-mq/src/main/java/org/dromara/common/mq/domain/MQMessage.java b/ruoyi-common/ruoyi-common-mq/src/main/java/org/dromara/common/mq/domain/MQMessage.java index 519c1cf9f..b057c77cf 100644 --- a/ruoyi-common/ruoyi-common-mq/src/main/java/org/dromara/common/mq/domain/MQMessage.java +++ b/ruoyi-common/ruoyi-common-mq/src/main/java/org/dromara/common/mq/domain/MQMessage.java @@ -5,6 +5,7 @@ import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import org.dromara.common.mq.enums.MQMessageType; import java.time.LocalDateTime; @@ -28,7 +29,7 @@ public class MQMessage { /** * 消息类型 */ - private String + private MQMessageType messageType; /** * 消息内容 @@ -42,4 +43,6 @@ public class MQMessage { * 发送时间 */ private LocalDateTime sendTime; + + private Long toUserId; } diff --git a/ruoyi-common/ruoyi-common-mq/src/main/java/org/dromara/common/mq/enums/MessageActionEnum.java b/ruoyi-common/ruoyi-common-mq/src/main/java/org/dromara/common/mq/enums/MessageActionEnum.java index 13afc53ee..ea1e8bdf7 100644 --- a/ruoyi-common/ruoyi-common-mq/src/main/java/org/dromara/common/mq/enums/MessageActionEnum.java +++ b/ruoyi-common/ruoyi-common-mq/src/main/java/org/dromara/common/mq/enums/MessageActionEnum.java @@ -3,34 +3,36 @@ package org.dromara.common.mq.enums; public enum MessageActionEnum { - SYSTEM_NOTIFY(10, "system"), // 系统->通知 - SYSTEM_REPORT(13, "system"), // 系统->举报下架(视频,视频评论) 视频评论 - SYSTEM_CHECK(14, "system"), // 系统->审核结果(通过) - SYSTEM_VLOG_REFUSE(17, "system"), // 系统->审核结果(驳回) - SYSTEM_VLOG_RECHECK(18, "system"), // 系统->审核结果(复审) - SYSTEM_PUSH(15, "system"), //系统->推广类的 - INTERACTION_COMMENT(21, "interaction"), //互动->评论 - INTERACTION_AT(27, "interaction"), //互动->视频评论中的@ - INTERACTION_LIKE(28, "interaction"), //互动->点赞 - NEW_FOUCS(21,"newFocus"), //新的关注 - INTERACTION_REPLY(29, "interaction"), //互动->评论回复 - ORDER_RECHARGE(30, "order"), //订单->充值 online - ORDER_PAY(31, "order"), //订单->订单交易成功通知 online - ORDER_REFUND(32, "order"), //订单->退款结果通知 - ORDER_WITHDRAW_AUDIT(33, "order"), //订单->提现审核结果通知 - ORDER_WITHDRAW_REFUSE(34, "order"), //订单->提现审核结果通知(拒绝) - GROUP_NOTIFY_CHECK(43, "groupNotify"), //群通知->进群申请 online - GROUP_NOTIFY_ACCEPT(44, "groupNotify"), // 群通知->进群审核审核通过 online - GROUP_NOTIFY_FAIL(45, "groupNotify"), // 群通知->进群审核审核拒绝 online - GROUP_NOTIFY_LEAVE_UP(46, "groupNotify"), // 群通知->群升级为达人群通知 - GROUP_NOTIFY_LEAVE_DOWN(47, "groupNotify"); // 群通知->群降级为普通群通知 + SYSTEM_NOTIFY(10, "system","systemNotify"), // 系统->通知 + SYSTEM_REPORT(13, "system","systemReport"), // 系统->举报下架(视频,视频评论) 视频评论 + SYSTEM_CHECK(14, "system","systemCheck"), // 系统->审核结果(通过) + SYSTEM_VLOG_REFUSE(17, "system","systemVlogRefuse"), // 系统->审核结果(驳回) + SYSTEM_VLOG_RECHECK(18, "system","systemVlogRecheck"), // 系统->审核结果(复审) + SYSTEM_PUSH(15, "system","systemPush"), //系统->推广类的 + INTERACTION_COMMENT(25, "interaction","interactionComment"), //互动->评论 + INTERACTION_AT(27, "interaction","interactionAt"), //互动->视频评论中的@ + INTERACTION_LIKE(28, "interaction","interactionLike"), //互动->点赞 + NEW_FOUCS(21,"newFocus","newFocus"), //新的关注 + INTERACTION_REPLY(29, "interaction","interactionReply"), //互动->评论回复 + ORDER_RECHARGE(30, "order","orderRecharge"), //订单->充值 online + ORDER_PAY(31, "order","orderPay"), //订单->订单交易成功通知 online + ORDER_REFUND(32, "order","orderRefund"), //订单->退款结果通知 + ORDER_WITHDRAW_AUDIT(33, "order","orderWithdrawAudit"), //订单->提现审核结果通知 + ORDER_WITHDRAW_REFUSE(34, "order","orderWithdrawRefuse"), //订单->提现审核结果通知(拒绝) + GROUP_NOTIFY_CHECK(43, "groupNotify","groupNotifyCheck"), //群通知->进群申请 online + GROUP_NOTIFY_ACCEPT(44, "groupNotify","groupNotifyAccept"), // 群通知->进群审核审核通过 online + GROUP_NOTIFY_FAIL(45, "groupNotify","groupNotifyFail"), // 群通知->进群审核审核拒绝 online + GROUP_NOTIFY_LEAVE_UP(46, "groupNotify","groupNotifyLeaveUp"), // 群通知->群升级为达人群通知 + GROUP_NOTIFY_LEAVE_DOWN(47, "groupNotify","groupNotifyLeaveDown"); // 群通知->群降级为普通群通知 private int code; private String account; + private String key; - MessageActionEnum(int code, String account) { + MessageActionEnum(int code, String account,String key) { this.code = code; this.account = account; + this.key = key; } public int getCode() { @@ -50,12 +52,14 @@ public enum MessageActionEnum { } public static MessageActionEnum getByAccount(String account) { for (MessageActionEnum actionEnum : values()) { - if (actionEnum.getAccount().equals(account)) { + if (actionEnum.name().equals(account)) { return actionEnum; } } return null; } - + public String getKey() { + return key; + } } diff --git a/ruoyi-common/ruoyi-common-mq/src/main/java/org/dromara/common/mq/utils/MqUtil.java b/ruoyi-common/ruoyi-common-mq/src/main/java/org/dromara/common/mq/utils/MqUtil.java index edc124014..9b5a7ac05 100644 --- a/ruoyi-common/ruoyi-common-mq/src/main/java/org/dromara/common/mq/utils/MqUtil.java +++ b/ruoyi-common/ruoyi-common-mq/src/main/java/org/dromara/common/mq/utils/MqUtil.java @@ -78,6 +78,10 @@ public class MqUtil implements ApplicationContextAware { log.error("RocketMQTemplate未初始化,无法发送消息"); return; } + if (message == null) { + log.error("消息为空,无法发送"); + return; + } try { String jsonMessage = JsonUtils.toJsonString(message); diff --git a/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/domain/bo/CommentBO.java b/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/domain/bo/CommentBO.java index 11887b46b..fc5e1fe98 100644 --- a/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/domain/bo/CommentBO.java +++ b/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/domain/bo/CommentBO.java @@ -17,16 +17,16 @@ public class CommentBO extends BaseBO { private Long id; @NotBlank(message = "留言信息不完整") - private String vlogerId; + private Long vlogerId; @NotBlank(message = "留言信息不完整") - private String fatherCommentId; + private Long fatherCommentId; @NotBlank(message = "留言信息不完整") private String vlogId; @NotBlank(message = "当前用户信息不正确,请尝试重新登录") - private String commentUserId; + private Long commentUserId; @NotBlank(message = "评论内容不能为空") @Length(max = 50, message = "评论内容长度不能超过50") diff --git a/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/domain/po/Comment.java b/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/domain/po/Comment.java index c8581dea5..8ca5f1055 100644 --- a/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/domain/po/Comment.java +++ b/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/domain/po/Comment.java @@ -13,18 +13,18 @@ import java.time.LocalDateTime; public class Comment { @TableId(type = IdType.ASSIGN_ID) - private String id; + private Long id; /** * 评论的视频是哪个作者(member)的关联id */ @TableField("member_id") - private String vlogerId; + private Long vlogerId; /** * 如果是回复评论,则本条为子评论,需要关联查询 */ - private String fatherCommentId; + private Long fatherCommentId; /** * 回复的那个视频id @@ -34,7 +34,7 @@ public class Comment { /** * 发布评论的用户id */ - private String commentUserId; + private Long commentUserId; /** * 评论内容 diff --git a/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/domain/vo/ChildCommentVO.java b/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/domain/vo/ChildCommentVO.java index 3f6fdedbd..74bae412a 100644 --- a/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/domain/vo/ChildCommentVO.java +++ b/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/domain/vo/ChildCommentVO.java @@ -5,16 +5,16 @@ import java.time.LocalDateTime; @Data public class ChildCommentVO { - private String id; - private String commentId; + private Long id; + private Long commentId; private String content; private Integer status; private String replyedUserNickname; // 被回复的昵称(父评论用户昵称) private String replyUserNickname; // 回复人昵称(当前子评论用户昵称) private String replyUserFace; // 回复人头像 - private String fatherCommentId; + private Long fatherCommentId; private String likeCounts; private String vlogId; - private String commentUserId; + private Long commentUserId; private LocalDateTime createTime; } diff --git a/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/domain/vo/CommentVO.java b/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/domain/vo/CommentVO.java index fe785018b..4939f878d 100644 --- a/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/domain/vo/CommentVO.java +++ b/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/domain/vo/CommentVO.java @@ -14,9 +14,9 @@ import java.util.Date; @ToString public class CommentVO { private String id; - private String commentId; - private String vlogerId; - private String fatherCommentId; + private Long commentId; + private Long vlogerId; + private Long fatherCommentId; private String vlogId; private String commentUserId; private String commentUserNickname; diff --git a/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/service/impl/CommentServiceImpl.java b/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/service/impl/CommentServiceImpl.java index e2fc4e792..c7beab3ef 100644 --- a/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/service/impl/CommentServiceImpl.java +++ b/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/service/impl/CommentServiceImpl.java @@ -21,6 +21,7 @@ import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.dromara.common.core.domain.model.LoginUser; import org.dromara.common.mq.domain.MQMessage; +import org.dromara.common.mq.enums.MQMessageType; import org.dromara.common.mq.enums.MessageActionEnum; import org.dromara.common.mq.utils.MqUtil; import org.dromara.common.mybatis.core.page.PageQuery; @@ -149,9 +150,7 @@ public class CommentServiceImpl extends ServiceImpl impl @Override @Transactional(rollbackFor = Exception.class) public void createComment(CommentBO commentBO) { - String commentId = sid.nextShort(); Comment comment = new Comment(); - comment.setId(commentId); comment.setVlogId(commentBO.getVlogId()); comment.setVlogerId(commentBO.getVlogerId()); comment.setCommentUserId(commentBO.getCommentUserId()); @@ -160,6 +159,7 @@ public class CommentServiceImpl extends ServiceImpl impl comment.setLikeCounts(0); comment.setCreateTime(LocalDateTime.now()); commentMapper.insert(comment); + commentBO.setId(comment.getId()); } @Override @@ -174,7 +174,7 @@ public class CommentServiceImpl extends ServiceImpl impl LambdaQueryWrapper wrapper = bo.toWrapper(); if (bo.getFatherCommentId() == null) { - wrapper.eq(Comment::getFatherCommentId, "0"); + wrapper.eq(Comment::getFatherCommentId, 0L); } // 手机号查视频 @@ -193,7 +193,7 @@ public class CommentServiceImpl extends ServiceImpl impl } List vlogIds = vlogList.stream().map(Vlog::getId).collect(Collectors.toList()); wrapper.in(Comment::getVlogId, vlogIds); - } else if (bo != null && org.springframework.util.StringUtils.hasText(bo.getVlogId())) { + } else if (bo != null && bo.getVlogId() != null) { wrapper.eq(Comment::getVlogId, bo.getVlogId()); } @@ -360,9 +360,9 @@ public class CommentServiceImpl extends ServiceImpl impl params.put("toUserId", comment.getId()); params.put("commentId", comment.getId()); params.put("commentContent", comment.getContent()); - params.put("action", MessageActionEnum.SYSTEM_REPORT.getAccount()); + params.put("account", MessageActionEnum.SYSTEM_REPORT.getAccount()); MQMessage mqMessage = new MQMessage(); - mqMessage.setTag(MessageActionEnum.SYSTEM_REPORT.getAccount()); + mqMessage.setTag(MessageActionEnum.SYSTEM_REPORT.name()); mqMessage.setData(params); return mqMessage; } @@ -374,11 +374,11 @@ public class CommentServiceImpl extends ServiceImpl impl if (loginUser == null) { throw new RuntimeException("未登录或登录已过期"); } - bo.setCommentUserId(String.valueOf(loginUser.getUserId())); + bo.setCommentUserId(loginUser.getUserId()); // 父评论为空时,按根评论处理(约定使用"0"作为无父评论标记) - if (bo.getFatherCommentId() == null || bo.getFatherCommentId().isEmpty()) { - bo.setFatherCommentId("0"); + if (bo.getFatherCommentId() == null ) { + bo.setFatherCommentId(0L); } // 1) 创建评论 @@ -391,25 +391,34 @@ public class CommentServiceImpl extends ServiceImpl impl // 3) 发送站内消息:根评论 -> 通知视频作者;回复评论 -> 通知被回复用户 + Vlog vlog=vlogMapper.selectById(bo.getVlogId()); // 给评论或者作者发送通知 - MqUtil.sendIMMessage(buildCommentMessage(bo)); + MqUtil.sendIMMessage(buildCommentMessage(bo,vlog)); //检查是否有@ } - private MQMessage buildCommentMessage(CommentBO bo) { + private MQMessage buildCommentMessage(CommentBO bo,Vlog vlog) { Map params = new HashMap<>(); LoginUser loginUser = LoginHelper.getLoginUser(); - if ("0".equals(bo.getFatherCommentId())) { + + MQMessage mqMessage = new MQMessage(); + mqMessage.setTag(MessageActionEnum.INTERACTION_COMMENT.name()); + mqMessage.setMessageType(MQMessageType.IM); + if (bo.getFatherCommentId() == 0L) { // 评论视频,通知视频作者 - if (bo.getVlogerId() != null && !bo.getVlogerId().isEmpty() - && !String.valueOf(loginUser.getUserId()).equals(bo.getVlogerId())) { - params.put("userId", loginUser.getUserId()); + if ( !String.valueOf(loginUser.getUserId()).equals(bo.getVlogerId())) { + params.put("userID", loginUser.getUserId()); params.put("nickName", loginUser.getNickname()); - params.put("toUserId", bo.getVlogerId()); - params.put("vlogId", bo.getVlogId()); - params.put("action", MessageActionEnum.INTERACTION_COMMENT.getAccount()); + params.put("commentID", bo.getId()); + params.put("faceUrl", loginUser.getAvatar()); + params.put("comment", bo.getContent()); + params.put("vlogID", bo.getVlogId()); + params.put("firstFrameImg", vlog.getFirstFrameImg()); + mqMessage.setToUserId(Long.valueOf(vlog.getMemberId())); + }else{ + return null; } } else { @@ -417,19 +426,19 @@ public class CommentServiceImpl extends ServiceImpl impl Comment father = baseMapper.selectById(bo.getFatherCommentId()); if (father != null && father.getCommentUserId() != null && !String.valueOf(loginUser.getUserId()).equals(father.getCommentUserId())) { - params.put("userId", loginUser.getUserId()); + params.put("userID", loginUser.getUserId()); params.put("nickName", loginUser.getNickname()); - params.put("toUserId", father.getCommentUserId()); + params.put("faceUrl", loginUser.getAvatar()); params.put("vlogId", bo.getVlogId()); - params.put("commentId", father.getId()); - params.put("commentContent", father.getContent()); - params.put("action", MessageActionEnum.INTERACTION_REPLY.getAccount()); - + params.put("commentID", father.getId()); + params.put("comment", father.getContent()); + params.put("vlogID", bo.getVlogId()); + params.put("firstFrameImg", vlog.getFirstFrameImg()); + mqMessage.setToUserId(Long.valueOf(father.getCommentUserId())); + }else{ + return null; } } - - MQMessage mqMessage = new MQMessage(); - mqMessage.setTag(MessageActionEnum.NEW_FOUCS.getAccount()); mqMessage.setData(params); return mqMessage; } diff --git a/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/service/impl/VlogPushServiceImpl.java b/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/service/impl/VlogPushServiceImpl.java index c72e5b569..2ed862704 100644 --- a/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/service/impl/VlogPushServiceImpl.java +++ b/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/service/impl/VlogPushServiceImpl.java @@ -11,6 +11,7 @@ import com.wzj.soopin.member.service.IMemberService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.dromara.common.mq.domain.MQMessage; +import org.dromara.common.mq.enums.MQMessageType; import org.dromara.common.mq.utils.MqUtil; import org.dromara.common.redis.redis.RedisCache; import org.springframework.stereotype.Service; @@ -75,7 +76,7 @@ public class VlogPushServiceImpl implements IVlogPushService { MQMessage message = MQMessage.builder() .topic("MEMBER_VLOG_MSG") .tag(HOT_VLOG_TAG) - .messageType("json") + .messageType(MQMessageType.VLOG) .data(vlogId) .source("vlog_service") .sendTime(LocalDateTime.now()) @@ -93,7 +94,7 @@ public class VlogPushServiceImpl implements IVlogPushService { MQMessage message = MQMessage.builder() .topic("MEMBER_VLOG_MSG") .tag(tag) - .messageType("json") + .messageType(MQMessageType.VLOG) .data(vlogId) .source("vlog_service") .sendTime(LocalDateTime.now()) diff --git a/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/service/impl/VlogServiceImpl.java b/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/service/impl/VlogServiceImpl.java index 92f9a4ad0..6abbdcd77 100644 --- a/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/service/impl/VlogServiceImpl.java +++ b/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/service/impl/VlogServiceImpl.java @@ -36,6 +36,7 @@ import org.dromara.common.core.domain.model.LoginUser; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.mq.config.RocketMQConfig; import org.dromara.common.mq.domain.MQMessage; +import org.dromara.common.mq.enums.MQMessageType; import org.dromara.common.mq.enums.MessageActionEnum; import org.dromara.common.mq.utils.MqUtil; import org.dromara.common.redis.redis.RedisCache; @@ -150,7 +151,7 @@ public class VlogServiceImpl extends ServiceImpl implements Vl //发出mq消息,异步处理上传 MQMessage message = MQMessage.builder() - .messageType("json") + .messageType(MQMessageType.VLOG) .data(vlog.getId()) .source("app") .topic("VLOG_UPLOAD_TOPIC") @@ -323,14 +324,15 @@ public class VlogServiceImpl extends ServiceImpl implements Vl Map params=new HashMap<>(); LoginUser loginUser=LoginHelper.getLoginUser(); - params.put("userId", loginUser.getUserId()); - params.put("nickname", loginUser.getNickname() == null ? "" : loginUser.getNickname()); + params.put("userID", loginUser.getUserId()); + params.put("nickName", loginUser.getNickname() == null ? "" : loginUser.getNickname()); params.put("faceUrl", loginUser.getAvatar() ); - params.put("action", MessageActionEnum.INTERACTION_LIKE.getAccount()); - params.put("toUserId",vlog.getMemberId()); - + params.put("vlogId",vlog.getId()); + params.put("firstFrameImg",vlog.getFirstFrameImg()); MQMessage mqMessage = new MQMessage(); - mqMessage.setTag(MessageActionEnum.INTERACTION_LIKE.getAccount()); + mqMessage.setMessageType(MQMessageType.IM); + mqMessage.setTag(MessageActionEnum.INTERACTION_LIKE.name()); + mqMessage.setToUserId(Long.valueOf(vlog.getMemberId())); mqMessage.setData(params); return mqMessage; } diff --git a/ruoyi-modules/ruoyi-im/src/main/java/com/wzj/soopin/im/consumer/MessageRocketMQConsumer.java b/ruoyi-modules/ruoyi-im/src/main/java/com/wzj/soopin/im/consumer/MessageRocketMQConsumer.java index d0e4644b9..2c628b830 100644 --- a/ruoyi-modules/ruoyi-im/src/main/java/com/wzj/soopin/im/consumer/MessageRocketMQConsumer.java +++ b/ruoyi-modules/ruoyi-im/src/main/java/com/wzj/soopin/im/consumer/MessageRocketMQConsumer.java @@ -22,7 +22,7 @@ import org.springframework.stereotype.Component; @RocketMQMessageListener( topic = RocketMQConfig.TOPIC_IM_MSG, // consumerGroup = RocketMQConfig.CONSUMER_GROUP_SYS_MSG, - consumerGroup = "cosumer", + consumerGroup = "cosumer1", selectorExpression = "*" // ackMode = AckMode.MANUAL ) diff --git a/ruoyi-modules/ruoyi-im/src/main/java/com/wzj/soopin/im/service/impl/MQMessageHandleServiceImpl.java b/ruoyi-modules/ruoyi-im/src/main/java/com/wzj/soopin/im/service/impl/MQMessageHandleServiceImpl.java index c7c713636..16c888fec 100644 --- a/ruoyi-modules/ruoyi-im/src/main/java/com/wzj/soopin/im/service/impl/MQMessageHandleServiceImpl.java +++ b/ruoyi-modules/ruoyi-im/src/main/java/com/wzj/soopin/im/service/impl/MQMessageHandleServiceImpl.java @@ -41,18 +41,20 @@ public class MQMessageHandleServiceImpl implements IMQMessageHandleService { //创建im消息 //根据消息类型获取消息模板 Map params = (Map) message.getData(); - String action = (String) params.get("action"); + //根据action获取消息模板 - MessageActionEnum actionEnum = MessageActionEnum.getByAccount(action); + MessageActionEnum actionEnum = MessageActionEnum.valueOf(message.getTag()); + params.put("action", actionEnum.getKey()); + params.put("account", actionEnum.getAccount()); if(actionEnum == null){ - log.error("根据action获取消息模板失败,action:{}", action); + log.error("根据action获取消息模板失败,action:{}", message.getTag()); return false; } SysMessageTemplate template = templateService.getTemplateByAction(actionEnum.getCode()); if (template == null) { - log.error("根据action获取消息模板失败,action:{}", action); + log.error("根据action获取消息模板失败,action:{}", message.getTag()); return true; } @@ -61,7 +63,7 @@ public class MQMessageHandleServiceImpl implements IMQMessageHandleService { try { // 消息发送者可能是系统或管理员,这里使用action对应的账号发送 String fromUserId = actionEnum.getAccount(); - String toUserId = ""; // 接收者是事件中的用户ID + String toUserId = message.getToUserId()+""; // 接收者是事件中的用户ID String content = template.getContent(); // 只取content字段 // 处理消息变量替换(如果有) @@ -76,7 +78,6 @@ public class MQMessageHandleServiceImpl implements IMQMessageHandleService { desc = processMessageVariables(desc, params); content = processMessageVariables(content, params); ext = processMessageVariables(ext, params); - toUserId = String.valueOf(params.get("toUserId")); } String pushType = null; diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/FansServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/FansServiceImpl.java index 8d817228a..496df2090 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/FansServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/FansServiceImpl.java @@ -20,6 +20,7 @@ import org.dromara.common.core.constant.GlobalConstants; import org.dromara.common.core.enums.YesOrNo; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mq.domain.MQMessage; +import org.dromara.common.mq.enums.MQMessageType; import org.dromara.common.mq.enums.MessageActionEnum; import org.dromara.common.mq.utils.MqUtil; import org.dromara.common.redis.redis.RedisCache; @@ -85,11 +86,11 @@ public class FansServiceImpl extends ServiceImpl implements IF params.put("userId", follower.getId()); params.put("nickname", follower.getNickname() == null ? "" : follower.getNickname()); params.put("faceUrl", vlogger.getAvatar() ); - params.put("action", MessageActionEnum.NEW_FOUCS.getAccount()); - params.put("toUserId", vlogger.getId()); MQMessage message = MQMessage.builder() - .messageType("follow") + .messageType(MQMessageType.IM) .data(params) + .tag(MessageActionEnum.NEW_FOUCS.name()) + .toUserId(vlogger.getId()) .source("member") .build(); return message; diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/FeedbackServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/FeedbackServiceImpl.java index b976ea359..b804f93a2 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/FeedbackServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/FeedbackServiceImpl.java @@ -22,6 +22,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.dromara.common.core.domain.model.LoginUser; import org.dromara.common.mq.domain.MQMessage; +import org.dromara.common.mq.enums.MQMessageType; import org.dromara.common.mq.enums.MessageActionEnum; import org.dromara.common.mq.utils.MqUtil; import org.dromara.common.redis.redis.RedisCache; @@ -112,11 +113,11 @@ public class FeedbackServiceImpl extends ServiceImpl i params.put("userId", loginUser.getUserId()); params.put("nickname", loginUser.getNickname() == null ? "" : loginUser.getNickname()); params.put("faceUrl", loginUser.getAvatar() ); - params.put("action", MessageActionEnum.INTERACTION_LIKE.getAccount()); - params.put("toUserId",aim.getMemberId()); MQMessage mqMessage = new MQMessage(); - mqMessage.setTag(MessageActionEnum.INTERACTION_LIKE.getAccount()); + mqMessage.setMessageType(MQMessageType.IM); + mqMessage.setTag(MessageActionEnum.INTERACTION_LIKE.name()); + mqMessage.setToUserId(aim.getMemberId()); mqMessage.setData(params); return mqMessage; } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/business/impl/OrderBusinessImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/business/impl/OrderBusinessImpl.java index dac8bd3c1..26a5d9ff7 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/business/impl/OrderBusinessImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/business/impl/OrderBusinessImpl.java @@ -16,6 +16,8 @@ import com.wzj.soopin.order.service.VerificationCodeService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.dromara.common.web.core.BusinessImpl; +import org.dromara.system.domain.vo.SysTenantVo; +import org.dromara.system.service.ISysTenantService; import org.springframework.stereotype.Service; import java.io.Serializable; @@ -30,10 +32,15 @@ public class OrderBusinessImpl extends BusinessImpl orderItemList = orderItemService.findByOrderId(vo.getId()); List itemVOList = orderItemList.stream().map(item -> { OrderItemVO itemVO=orderItemConvert.toVO(item); + if (itemVO.getTenantId() != null) { + SysTenantVo tenant = tenantService.queryByTenantId(vo.getTenantId()); + itemVO.setTenantName(tenant.getShopName()); + } //赋值 return itemVO; }).collect(Collectors.toList()); diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/entity/OrderItem.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/entity/OrderItem.java index 08163514d..69ccb25a0 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/entity/OrderItem.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/entity/OrderItem.java @@ -94,4 +94,5 @@ public class OrderItem extends BaseAudit { @Schema(description = "租户名称") @Excel(name = "租户名称") private String tenantName; + } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/vo/OrderVO.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/vo/OrderVO.java index d3ea5ef8a..ad3994979 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/vo/OrderVO.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/vo/OrderVO.java @@ -6,6 +6,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.dromara.common.core.domain.model.BaseAudit; import org.dromara.common.excel.annotation.Excel; +import org.dromara.system.domain.vo.SysTenantVo; import java.math.BigDecimal; import java.time.LocalDateTime; @@ -36,6 +37,8 @@ public class OrderVO extends BaseAudit { @Schema(description ="租户id") private String tenantId; + private SysTenantVo tenant; + @Schema(description ="用户帐号") @Excel(name = "用户帐号") private String memberUsername; diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/OrderService.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/OrderService.java index 47e5810ff..4a2b958ea 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/OrderService.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/OrderService.java @@ -48,5 +48,6 @@ public interface OrderService extends IService { void refund(RefundBO refundBO); + void sendMessage(Long orderId); } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/AftersaleServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/AftersaleServiceImpl.java index d55e9f5b4..7a48e4638 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/AftersaleServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/AftersaleServiceImpl.java @@ -32,6 +32,7 @@ import org.dromara.common.core.domain.event.Constants; import org.dromara.common.core.enums.AftersaleStatus; import org.dromara.common.core.enums.OrderRefundStatus; import org.dromara.common.mq.domain.MQMessage; +import org.dromara.common.mq.enums.MQMessageType; import org.dromara.common.mq.enums.MessageActionEnum; import org.dromara.common.mq.utils.MqUtil; import org.dromara.common.satoken.utils.LoginHelper; @@ -247,9 +248,10 @@ public class AftersaleServiceImpl extends ServiceImpl implements // 更新售后记录 Aftersale aftersale = aftersaleMapper.selectOne(Wrappers.lambdaQuery(Aftersale.class) .eq(Aftersale::getOrderId, orderId).last("limit 1")); - if(aftersale == null){ + if (aftersale == null) { aftersale = new Aftersale(); aftersale.setMemberId(order.getMemberId()); aftersale.setOrderId(orderId); @@ -300,7 +304,7 @@ public class OrderServiceImpl extends ServiceImpl implements aftersale.setReason(refundReason); aftersale.setAuthFlag(2); aftersaleMapper.insert(aftersale); - }else{ + } else { aftersale.setReturnAmount(refundBO.getTotalRefundAmount()); aftersale.setOrgTrace(refundBO.getOrgTrace()); aftersale.setStatus(AftersaleStatus.PAID.getCode()); @@ -415,13 +419,14 @@ public class OrderServiceImpl extends ServiceImpl implements /** * 商户所属订单列表 + * * @param query * @return */ @Override public IPage merchantOrderList(OrderBo query) { - Assert.isTrue(query.getCurrent() != null && query.getSize() != null, "分页参数不能为空"); - if(StrUtil.isBlank(query.getTenantId())){ + Assert.isTrue(query.getCurrent() != null && query.getSize() != null, "分页参数不能为空"); + if (StrUtil.isBlank(query.getTenantId())) { query.setTenantId(TenantHelper.getTenantId()); } IPage resultPage = TenantHelper.ignore(() -> orderMapper.getListByOrderItemTenant(Page.of(query.getCurrent(), query.getSize()), query)); @@ -431,13 +436,14 @@ public class OrderServiceImpl extends ServiceImpl implements /** * 团长所属订单列表 + * * @param query * @return */ @Override public IPage referenceMemberOrderList(OrderBo query) { - Assert.isTrue(query.getCurrent() != null && query.getSize() != null, "分页参数不能为空"); - if(StrUtil.isBlank(query.getTenantId())){ + Assert.isTrue(query.getCurrent() != null && query.getSize() != null, "分页参数不能为空"); + if (StrUtil.isBlank(query.getTenantId())) { query.setTenantId(TenantHelper.getTenantId()); } IPage resultPage = TenantHelper.ignore(() -> orderMapper.getListByOrderTenant(Page.of(query.getCurrent(), query.getSize()), query)); @@ -493,34 +499,36 @@ public class OrderServiceImpl extends ServiceImpl implements } - - @Override public Order getByNo(String orderNo) { return baseMapper.selectOne(new LambdaQueryWrapper().eq(Order::getOrderSn, orderNo)); } -// public void sendMessage(Order order) { -// Long memberId = order.getMemberId(); -// Long orderId = order.getId(); -// // 订单创建成功模板ID -// Long templateId =1940586928850100226L; -// // 查询模板信息 -// SysMessageTemplateVo template = templateService.selectTemplateById(templateId); -// log.info("模板信息为: {}", template); -// -// if (template != null) { -// Map params = new HashMap<>(); -// params.put("orderSn", order.getOrderSn()); -// params.put("productName", orderItemMapper.getName(orderId)); -// SysMessageBo messageBo = new SysMessageBo(); -// messageBo.setTemplateType(org.dromara.system.domain.MessageTemplateType.ORDER_NOTICE); -// messageBo.setTemplateParams(params); -// messageBo.setSenderId(memberId); -// messageBo.setTitle(template.getTitle()); -// sysMessageService.sendMessageToUser(messageBo, memberId); -// } -// } + public void sendMessage(Long orderId) { + Order order = this.getById(orderId); + if (order != null) { + Map params = new HashMap<>(); + params.put("orderID", order.getId()); + params.put("amount", order.getPayAmount()); + + //取订单的第一个商品 + List orderItems = orderItemMapper.findByOrderId(order.getId()); + if (CollectionUtil.isNotEmpty(orderItems)) { + params.put("name", orderItems.get(0).getProductName()); + params.put("pic", orderItems.get(0).getPic()); + params.put("price", orderItems.get(0).getSalePrice()); + params.put("amount", orderItems.get(0).getQuantity()); +// params.put("describe", orderItems.get(0).get()); + } + params.put("account", MessageActionEnum.ORDER_PAY.getAccount()); + MQMessage mqMessage = new MQMessage(); + mqMessage.setTag(MessageActionEnum.ORDER_PAY.name()); + mqMessage.setMessageType(MQMessageType.IM); + mqMessage.setToUserId(order.getMemberId()); + mqMessage.setData(params); + MqUtil.sendIMMessage(mqMessage); + } + } } diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/ChargeServiceImpl.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/ChargeServiceImpl.java index a9aa3a664..c4e748df7 100644 --- a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/ChargeServiceImpl.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/ChargeServiceImpl.java @@ -15,10 +15,18 @@ import com.wzj.soopin.transaction.service.IChargeService; import com.wzj.soopin.transaction.util.SnowFlake; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.domain.model.LoginUser; import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.mq.domain.MQMessage; +import org.dromara.common.mq.enums.MQMessageType; +import org.dromara.common.mq.enums.MessageActionEnum; +import org.dromara.common.mq.utils.MqUtil; +import org.dromara.common.satoken.utils.LoginHelper; import org.springframework.stereotype.Service; import java.math.BigDecimal; +import java.util.HashMap; +import java.util.Map; /** * 会员封禁 @@ -41,30 +49,35 @@ public class ChargeServiceImpl extends ServiceImpl impleme boolean chargeSuccess = true; //充值成功后更新会员账户余额 if (chargeSuccess) { - //更新会员账户余额 - MemberAccount memberAccount = memberAccountService.getById(charge.getMemberId()); - memberAccount.setWallet(memberAccount.getWallet().add(charge.getMoney())); - memberAccountService.updateById(memberAccount); - //生成充值记录 - AccountBill accountBill = AccountBill.builder() - .accountId(charge.getMemberId()) - .changeAmount(charge.getMoney()) - .changeType(AccountBillChangeTypeEnum.IN.getCode()) - .changeDesc("充值") - .source(AccountBillSourceEnum.RECHARGE.getCode()) - .build(); - accountBillService.save(accountBill); - return true; + accountBillService.addMoney(charge.getActualMoney(), charge.getMemberId(), AccountBillSourceEnum.RECHARGE, "充值"); } //生成充值记录 + //获取账号金额 + MemberAccount memberAccount = memberAccountService.getById(charge.getMemberId()); + MqUtil.sendIMMessage(buildMessage(charge,memberAccount)); return false; } + private MQMessage buildMessage(Charge charge,MemberAccount memberAccount) { + Map params = new HashMap<>(); + MQMessage mqMessage = new MQMessage(); + mqMessage.setTag(MessageActionEnum.ORDER_RECHARGE.name()); + mqMessage.setMessageType(MQMessageType.IM); + // 评论视频,通知视频作者 + params.put("orderID", charge.getId()); + params.put("amount", charge.getMoney()); + params.put("totalAmount", memberAccount.getWallet()); + mqMessage.setToUserId(Long.valueOf(charge.getMemberId())); + mqMessage.setData(params); + return mqMessage; + + } + @Override public boolean charge(Charge charge) { //判断充值金额不能为零 - if (charge.getMoney()==null||charge.getMoney().compareTo(BigDecimal.ZERO) == 0) { + if (charge.getMoney() == null || charge.getMoney().compareTo(BigDecimal.ZERO) == 0) { throw new ServiceException("充值金额不能为零"); } //状态为待充值 @@ -93,17 +106,22 @@ public class ChargeServiceImpl extends ServiceImpl impleme @Override public boolean paySuccess(String code, String payNo, Integer method) { Charge charge = getByCode(code); - if(charge==null){ - log.error("充值记录不存在,code:{}",code); + if (charge == null) { + log.error("充值记录不存在,code:{}", code); return false; } charge.setStatus(ChargeStatus.SUCCESS.getCode()); charge.setPayNo(payNo); charge.setMethod(method); - boolean result= updateById(charge); - if (result){ - accountBillService.addMoney(charge.getActualMoney(),charge.getMemberId(),AccountBillSourceEnum.RECHARGE,"充值"); + boolean result = updateById(charge); + if (result) { + accountBillService.addMoney(charge.getActualMoney(), charge.getMemberId(), AccountBillSourceEnum.RECHARGE, "充值"); + //生成充值记录 + //获取账号金额 + MemberAccount memberAccount = memberAccountService.getById(charge.getMemberId()); + MqUtil.sendIMMessage(buildMessage(charge,memberAccount)); } + return result; } } diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/EasypayServiceImpl.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/EasypayServiceImpl.java index fe9e5e91a..cf45efa3f 100644 --- a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/EasypayServiceImpl.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/EasypayServiceImpl.java @@ -3,6 +3,7 @@ package com.wzj.soopin.transaction.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.codec.Base64; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.lang.Assert; @@ -21,6 +22,7 @@ import com.wzj.soopin.order.domain.bo.RefundBO; import com.wzj.soopin.order.domain.entity.Aftersale; import com.wzj.soopin.order.domain.entity.Order; import com.wzj.soopin.order.domain.entity.OrderItem; +import com.wzj.soopin.order.domain.vo.OrderVO; import com.wzj.soopin.order.emum.OrderStatusEnum; import com.wzj.soopin.order.service.AftersaleService; import com.wzj.soopin.order.service.OrderItemService; @@ -77,6 +79,10 @@ import org.dromara.common.core.enums.TenantType; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.DateUtils; import org.dromara.common.core.utils.ServletUtils; +import org.dromara.common.mq.domain.MQMessage; +import org.dromara.common.mq.enums.MQMessageType; +import org.dromara.common.mq.enums.MessageActionEnum; +import org.dromara.common.mq.utils.MqUtil; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; @@ -90,6 +96,7 @@ import java.util.*; import java.util.stream.Collectors; import static com.wzj.soopin.transaction.constans.EasypayConstants.*; +import static net.sf.jsqlparser.parser.feature.Feature.comment; /** * 会员封禁 @@ -521,6 +528,29 @@ public class EasypayServiceImpl implements IEasypayService { .paymentTime(LocalDateTimeUtil.parse(StrBuilder.create(respOrderInfo.getDateEnd()).append(respOrderInfo.getTimeEnd()).toString(), "yyyyMMddHHmmss")) .payType(PayType.getByValue(payOrder.getPayType()).getChannel()) .build()); + + //发出消息 + MqUtil.sendIMMessage(buildMQMessage(order)); + } + private MQMessage buildMQMessage(Order order) { + Map params = new HashMap<>(); + params.put("orderID", order.getId()); + params.put("amount", order.getPayAmount()); + + //取订单的第一个商品 + List orderItems = orderItemService.findByOrderId(order.getId()); + if (CollectionUtil.isNotEmpty(orderItems)) { + params.put("name", orderItems.get(0).getProductName()); + params.put("pic", orderItems.get(0).getPic()); + params.put("price", orderItems.get(0).getSalePrice()); + params.put("amount", orderItems.get(0).getQuantity()); + } + MQMessage mqMessage = new MQMessage(); + mqMessage.setTag(MessageActionEnum.ORDER_PAY.name()); + mqMessage.setMessageType(MQMessageType.IM); + mqMessage.setToUserId(order.getMemberId()); + mqMessage.setData(params); + return mqMessage; } @Override diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/RedPacketServiceImpl.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/RedPacketServiceImpl.java index 811a6d18b..524ce08dd 100644 --- a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/RedPacketServiceImpl.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/RedPacketServiceImpl.java @@ -84,7 +84,7 @@ public class RedPacketServiceImpl extends ServiceImpl result = new HashMap<>(); diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/WithdrawServiceImpl.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/WithdrawServiceImpl.java index 289d9259f..5a80b951e 100644 --- a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/WithdrawServiceImpl.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/WithdrawServiceImpl.java @@ -104,9 +104,9 @@ public class WithdrawServiceImpl extends ServiceImpl i params.put("sender", sender); params.put("receiver", memberService.getMemberInfo(o.getMemberId())); params.put("object", o); - params.put("action", actionEnum.getAccount()); + params.put("account", actionEnum.getAccount()); MQMessage mqMessage = new MQMessage(); - mqMessage.setTag(actionEnum.getAccount()); + mqMessage.setTag(actionEnum.name()); mqMessage.setData(params); return mqMessage; }