Compare commits

..

No commits in common. "362d57869b208b20b62610efcd91bfd570e99da8" and "17cec188695b8506e013853b49b7ef2584d8dce8" have entirely different histories.

29 changed files with 146 additions and 257 deletions

View File

@ -5,7 +5,6 @@ import com.wzj.soopin.content.utils.RedisOperator;
import com.wzj.soopin.order.business.IOrderBusiness; import com.wzj.soopin.order.business.IOrderBusiness;
import com.wzj.soopin.order.domain.bo.OrderBo; import com.wzj.soopin.order.domain.bo.OrderBo;
import com.wzj.soopin.order.domain.bo.SaveOrderBO; 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.domain.vo.OrderVO;
import com.wzj.soopin.order.service.IMemberOrderService; import com.wzj.soopin.order.service.IMemberOrderService;
import com.wzj.soopin.order.service.OrderService; import com.wzj.soopin.order.service.OrderService;
@ -18,7 +17,6 @@ import org.dromara.common.core.domain.R;
import org.dromara.common.core.domain.model.LoginUser; import org.dromara.common.core.domain.model.LoginUser;
import org.dromara.common.log.annotation.Log; import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType; import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.mq.utils.MqUtil;
import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.satoken.utils.LoginHelper;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -72,13 +70,4 @@ public class AppOrderController {
return R.ok(); return R.ok();
} }
@Operation(summary = "发送消息")
@Log(title = "发送消息", businessType = BusinessType.UPDATE)
@PostMapping("/send/{orderId}")
public R<OrderVO> send(@PathVariable("orderId") Long orderId) {
orderService.sendMessage(orderId);
//发出消息
return R.ok();
}
} }

View File

@ -5,7 +5,6 @@ import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.dromara.common.mq.enums.MQMessageType;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -29,7 +28,7 @@ public class MQMessage {
/** /**
* 消息类型 * 消息类型
*/ */
private MQMessageType private String
messageType; messageType;
/** /**
* 消息内容 * 消息内容
@ -43,6 +42,4 @@ public class MQMessage {
* 发送时间 * 发送时间
*/ */
private LocalDateTime sendTime; private LocalDateTime sendTime;
private Long toUserId;
} }

View File

@ -3,36 +3,34 @@ package org.dromara.common.mq.enums;
public enum MessageActionEnum { public enum MessageActionEnum {
SYSTEM_NOTIFY(10, "system","systemNotify"), // 系统->通知 SYSTEM_NOTIFY(10, "system"), // 系统->通知
SYSTEM_REPORT(13, "system","systemReport"), // 系统->举报下架视频视频评论 视频评论 SYSTEM_REPORT(13, "system"), // 系统->举报下架视频视频评论 视频评论
SYSTEM_CHECK(14, "system","systemCheck"), // 系统->审核结果通过 SYSTEM_CHECK(14, "system"), // 系统->审核结果通过
SYSTEM_VLOG_REFUSE(17, "system","systemVlogRefuse"), // 系统->审核结果驳回 SYSTEM_VLOG_REFUSE(17, "system"), // 系统->审核结果驳回
SYSTEM_VLOG_RECHECK(18, "system","systemVlogRecheck"), // 系统->审核结果复审 SYSTEM_VLOG_RECHECK(18, "system"), // 系统->审核结果复审
SYSTEM_PUSH(15, "system","systemPush"), //系统->推广类的 SYSTEM_PUSH(15, "system"), //系统->推广类的
INTERACTION_COMMENT(25, "interaction","interactionComment"), //互动->评论 INTERACTION_COMMENT(21, "interaction"), //互动->评论
INTERACTION_AT(27, "interaction","interactionAt"), //互动->视频评论中的@ INTERACTION_AT(27, "interaction"), //互动->视频评论中的@
INTERACTION_LIKE(28, "interaction","interactionLike"), //互动->点赞 INTERACTION_LIKE(28, "interaction"), //互动->点赞
NEW_FOUCS(21,"newFocus","newFocus"), //新的关注 NEW_FOUCS(21,"newFocus"), //新的关注
INTERACTION_REPLY(29, "interaction","interactionReply"), //互动->评论回复 INTERACTION_REPLY(29, "interaction"), //互动->评论回复
ORDER_RECHARGE(30, "order","orderRecharge"), //订单->充值 online ORDER_RECHARGE(30, "order"), //订单->充值 online
ORDER_PAY(31, "order","orderPay"), //订单->订单交易成功通知 online ORDER_PAY(31, "order"), //订单->订单交易成功通知 online
ORDER_REFUND(32, "order","orderRefund"), //订单->退款结果通知 ORDER_REFUND(32, "order"), //订单->退款结果通知
ORDER_WITHDRAW_AUDIT(33, "order","orderWithdrawAudit"), //订单->提现审核结果通知 ORDER_WITHDRAW_AUDIT(33, "order"), //订单->提现审核结果通知
ORDER_WITHDRAW_REFUSE(34, "order","orderWithdrawRefuse"), //订单->提现审核结果通知拒绝 ORDER_WITHDRAW_REFUSE(34, "order"), //订单->提现审核结果通知拒绝
GROUP_NOTIFY_CHECK(43, "groupNotify","groupNotifyCheck"), //群通知->进群申请 online GROUP_NOTIFY_CHECK(43, "groupNotify"), //群通知->进群申请 online
GROUP_NOTIFY_ACCEPT(44, "groupNotify","groupNotifyAccept"), // 群通知->进群审核审核通过 online GROUP_NOTIFY_ACCEPT(44, "groupNotify"), // 群通知->进群审核审核通过 online
GROUP_NOTIFY_FAIL(45, "groupNotify","groupNotifyFail"), // 群通知->进群审核审核拒绝 online GROUP_NOTIFY_FAIL(45, "groupNotify"), // 群通知->进群审核审核拒绝 online
GROUP_NOTIFY_LEAVE_UP(46, "groupNotify","groupNotifyLeaveUp"), // 群通知->群升级为达人群通知 GROUP_NOTIFY_LEAVE_UP(46, "groupNotify"), // 群通知->群升级为达人群通知
GROUP_NOTIFY_LEAVE_DOWN(47, "groupNotify","groupNotifyLeaveDown"); // 群通知->群降级为普通群通知 GROUP_NOTIFY_LEAVE_DOWN(47, "groupNotify"); // 群通知->群降级为普通群通知
private int code; private int code;
private String account; private String account;
private String key;
MessageActionEnum(int code, String account,String key) { MessageActionEnum(int code, String account) {
this.code = code; this.code = code;
this.account = account; this.account = account;
this.key = key;
} }
public int getCode() { public int getCode() {
@ -52,14 +50,12 @@ public enum MessageActionEnum {
} }
public static MessageActionEnum getByAccount(String account) { public static MessageActionEnum getByAccount(String account) {
for (MessageActionEnum actionEnum : values()) { for (MessageActionEnum actionEnum : values()) {
if (actionEnum.name().equals(account)) { if (actionEnum.getAccount().equals(account)) {
return actionEnum; return actionEnum;
} }
} }
return null; return null;
} }
public String getKey() {
return key;
}
} }

View File

@ -78,10 +78,6 @@ public class MqUtil implements ApplicationContextAware {
log.error("RocketMQTemplate未初始化无法发送消息"); log.error("RocketMQTemplate未初始化无法发送消息");
return; return;
} }
if (message == null) {
log.error("消息为空,无法发送");
return;
}
try { try {
String jsonMessage = JsonUtils.toJsonString(message); String jsonMessage = JsonUtils.toJsonString(message);

View File

@ -17,16 +17,16 @@ public class CommentBO extends BaseBO<Comment> {
private Long id; private Long id;
@NotBlank(message = "留言信息不完整") @NotBlank(message = "留言信息不完整")
private Long vlogerId; private String vlogerId;
@NotBlank(message = "留言信息不完整") @NotBlank(message = "留言信息不完整")
private Long fatherCommentId; private String fatherCommentId;
@NotBlank(message = "留言信息不完整") @NotBlank(message = "留言信息不完整")
private String vlogId; private String vlogId;
@NotBlank(message = "当前用户信息不正确,请尝试重新登录") @NotBlank(message = "当前用户信息不正确,请尝试重新登录")
private Long commentUserId; private String commentUserId;
@NotBlank(message = "评论内容不能为空") @NotBlank(message = "评论内容不能为空")
@Length(max = 50, message = "评论内容长度不能超过50") @Length(max = 50, message = "评论内容长度不能超过50")

View File

@ -13,18 +13,18 @@ import java.time.LocalDateTime;
public class Comment { public class Comment {
@TableId(type = IdType.ASSIGN_ID) @TableId(type = IdType.ASSIGN_ID)
private Long id; private String id;
/** /**
* 评论的视频是哪个作者(member)的关联id * 评论的视频是哪个作者(member)的关联id
*/ */
@TableField("member_id") @TableField("member_id")
private Long vlogerId; private String vlogerId;
/** /**
* 如果是回复评论则本条为子评论需要关联查询 * 如果是回复评论则本条为子评论需要关联查询
*/ */
private Long fatherCommentId; private String fatherCommentId;
/** /**
* 回复的那个视频id * 回复的那个视频id
@ -34,7 +34,7 @@ public class Comment {
/** /**
* 发布评论的用户id * 发布评论的用户id
*/ */
private Long commentUserId; private String commentUserId;
/** /**
* 评论内容 * 评论内容

View File

@ -5,16 +5,16 @@ import java.time.LocalDateTime;
@Data @Data
public class ChildCommentVO { public class ChildCommentVO {
private Long id; private String id;
private Long commentId; private String commentId;
private String content; private String content;
private Integer status; private Integer status;
private String replyedUserNickname; // 被回复的昵称父评论用户昵称 private String replyedUserNickname; // 被回复的昵称父评论用户昵称
private String replyUserNickname; // 回复人昵称当前子评论用户昵称 private String replyUserNickname; // 回复人昵称当前子评论用户昵称
private String replyUserFace; // 回复人头像 private String replyUserFace; // 回复人头像
private Long fatherCommentId; private String fatherCommentId;
private String likeCounts; private String likeCounts;
private String vlogId; private String vlogId;
private Long commentUserId; private String commentUserId;
private LocalDateTime createTime; private LocalDateTime createTime;
} }

View File

@ -14,9 +14,9 @@ import java.util.Date;
@ToString @ToString
public class CommentVO { public class CommentVO {
private String id; private String id;
private Long commentId; private String commentId;
private Long vlogerId; private String vlogerId;
private Long fatherCommentId; private String fatherCommentId;
private String vlogId; private String vlogId;
private String commentUserId; private String commentUserId;
private String commentUserNickname; private String commentUserNickname;

View File

@ -21,7 +21,6 @@ import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.domain.model.LoginUser; import org.dromara.common.core.domain.model.LoginUser;
import org.dromara.common.mq.domain.MQMessage; 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.enums.MessageActionEnum;
import org.dromara.common.mq.utils.MqUtil; import org.dromara.common.mq.utils.MqUtil;
import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.PageQuery;
@ -150,7 +149,9 @@ public class CommentServiceImpl extends ServiceImpl<CommentMapper, Comment> impl
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void createComment(CommentBO commentBO) { public void createComment(CommentBO commentBO) {
String commentId = sid.nextShort();
Comment comment = new Comment(); Comment comment = new Comment();
comment.setId(commentId);
comment.setVlogId(commentBO.getVlogId()); comment.setVlogId(commentBO.getVlogId());
comment.setVlogerId(commentBO.getVlogerId()); comment.setVlogerId(commentBO.getVlogerId());
comment.setCommentUserId(commentBO.getCommentUserId()); comment.setCommentUserId(commentBO.getCommentUserId());
@ -159,7 +160,6 @@ public class CommentServiceImpl extends ServiceImpl<CommentMapper, Comment> impl
comment.setLikeCounts(0); comment.setLikeCounts(0);
comment.setCreateTime(LocalDateTime.now()); comment.setCreateTime(LocalDateTime.now());
commentMapper.insert(comment); commentMapper.insert(comment);
commentBO.setId(comment.getId());
} }
@Override @Override
@ -174,7 +174,7 @@ public class CommentServiceImpl extends ServiceImpl<CommentMapper, Comment> impl
LambdaQueryWrapper<Comment> wrapper = bo.toWrapper(); LambdaQueryWrapper<Comment> wrapper = bo.toWrapper();
if (bo.getFatherCommentId() == null) { if (bo.getFatherCommentId() == null) {
wrapper.eq(Comment::getFatherCommentId, 0L); wrapper.eq(Comment::getFatherCommentId, "0");
} }
// 手机号查视频 // 手机号查视频
@ -193,7 +193,7 @@ public class CommentServiceImpl extends ServiceImpl<CommentMapper, Comment> impl
} }
List<String> vlogIds = vlogList.stream().map(Vlog::getId).collect(Collectors.toList()); List<String> vlogIds = vlogList.stream().map(Vlog::getId).collect(Collectors.toList());
wrapper.in(Comment::getVlogId, vlogIds); wrapper.in(Comment::getVlogId, vlogIds);
} else if (bo != null && bo.getVlogId() != null) { } else if (bo != null && org.springframework.util.StringUtils.hasText(bo.getVlogId())) {
wrapper.eq(Comment::getVlogId, bo.getVlogId()); wrapper.eq(Comment::getVlogId, bo.getVlogId());
} }
@ -360,9 +360,9 @@ public class CommentServiceImpl extends ServiceImpl<CommentMapper, Comment> impl
params.put("toUserId", comment.getId()); params.put("toUserId", comment.getId());
params.put("commentId", comment.getId()); params.put("commentId", comment.getId());
params.put("commentContent", comment.getContent()); params.put("commentContent", comment.getContent());
params.put("account", MessageActionEnum.SYSTEM_REPORT.getAccount()); params.put("action", MessageActionEnum.SYSTEM_REPORT.getAccount());
MQMessage mqMessage = new MQMessage(); MQMessage mqMessage = new MQMessage();
mqMessage.setTag(MessageActionEnum.SYSTEM_REPORT.name()); mqMessage.setTag(MessageActionEnum.SYSTEM_REPORT.getAccount());
mqMessage.setData(params); mqMessage.setData(params);
return mqMessage; return mqMessage;
} }
@ -374,11 +374,11 @@ public class CommentServiceImpl extends ServiceImpl<CommentMapper, Comment> impl
if (loginUser == null) { if (loginUser == null) {
throw new RuntimeException("未登录或登录已过期"); throw new RuntimeException("未登录或登录已过期");
} }
bo.setCommentUserId(loginUser.getUserId()); bo.setCommentUserId(String.valueOf(loginUser.getUserId()));
// 父评论为空时按根评论处理约定使用"0"作为无父评论标记 // 父评论为空时按根评论处理约定使用"0"作为无父评论标记
if (bo.getFatherCommentId() == null ) { if (bo.getFatherCommentId() == null || bo.getFatherCommentId().isEmpty()) {
bo.setFatherCommentId(0L); bo.setFatherCommentId("0");
} }
// 1) 创建评论 // 1) 创建评论
@ -391,34 +391,25 @@ public class CommentServiceImpl extends ServiceImpl<CommentMapper, Comment> impl
// 3) 发送站内消息根评论 -> 通知视频作者回复评论 -> 通知被回复用户 // 3) 发送站内消息根评论 -> 通知视频作者回复评论 -> 通知被回复用户
Vlog vlog=vlogMapper.selectById(bo.getVlogId());
// 给评论或者作者发送通知 // 给评论或者作者发送通知
MqUtil.sendIMMessage(buildCommentMessage(bo,vlog)); MqUtil.sendIMMessage(buildCommentMessage(bo));
//检查是否有@ //检查是否有@
} }
private MQMessage buildCommentMessage(CommentBO bo,Vlog vlog) { private MQMessage buildCommentMessage(CommentBO bo) {
Map<String, Object> params = new HashMap<>(); Map<String, Object> params = new HashMap<>();
LoginUser loginUser = LoginHelper.getLoginUser(); 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 ( !String.valueOf(loginUser.getUserId()).equals(bo.getVlogerId())) { if (bo.getVlogerId() != null && !bo.getVlogerId().isEmpty()
params.put("userID", loginUser.getUserId()); && !String.valueOf(loginUser.getUserId()).equals(bo.getVlogerId())) {
params.put("userId", loginUser.getUserId());
params.put("nickName", loginUser.getNickname()); params.put("nickName", loginUser.getNickname());
params.put("commentID", bo.getId()); params.put("toUserId", bo.getVlogerId());
params.put("faceUrl", loginUser.getAvatar()); params.put("vlogId", bo.getVlogId());
params.put("comment", bo.getContent()); params.put("action", MessageActionEnum.INTERACTION_COMMENT.getAccount());
params.put("vlogID", bo.getVlogId());
params.put("firstFrameImg", vlog.getFirstFrameImg());
mqMessage.setToUserId(Long.valueOf(vlog.getMemberId()));
}else{
return null;
} }
} else { } else {
@ -426,19 +417,19 @@ public class CommentServiceImpl extends ServiceImpl<CommentMapper, Comment> impl
Comment father = baseMapper.selectById(bo.getFatherCommentId()); Comment father = baseMapper.selectById(bo.getFatherCommentId());
if (father != null && father.getCommentUserId() != null if (father != null && father.getCommentUserId() != null
&& !String.valueOf(loginUser.getUserId()).equals(father.getCommentUserId())) { && !String.valueOf(loginUser.getUserId()).equals(father.getCommentUserId())) {
params.put("userID", loginUser.getUserId()); params.put("userId", loginUser.getUserId());
params.put("nickName", loginUser.getNickname()); params.put("nickName", loginUser.getNickname());
params.put("faceUrl", loginUser.getAvatar()); params.put("toUserId", father.getCommentUserId());
params.put("vlogId", bo.getVlogId()); params.put("vlogId", bo.getVlogId());
params.put("commentID", father.getId()); params.put("commentId", father.getId());
params.put("comment", father.getContent()); params.put("commentContent", father.getContent());
params.put("vlogID", bo.getVlogId()); params.put("action", MessageActionEnum.INTERACTION_REPLY.getAccount());
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); mqMessage.setData(params);
return mqMessage; return mqMessage;
} }

View File

@ -11,7 +11,6 @@ import com.wzj.soopin.member.service.IMemberService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.common.mq.domain.MQMessage; 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.mq.utils.MqUtil;
import org.dromara.common.redis.redis.RedisCache; import org.dromara.common.redis.redis.RedisCache;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -76,7 +75,7 @@ public class VlogPushServiceImpl implements IVlogPushService {
MQMessage message = MQMessage.builder() MQMessage message = MQMessage.builder()
.topic("MEMBER_VLOG_MSG") .topic("MEMBER_VLOG_MSG")
.tag(HOT_VLOG_TAG) .tag(HOT_VLOG_TAG)
.messageType(MQMessageType.VLOG) .messageType("json")
.data(vlogId) .data(vlogId)
.source("vlog_service") .source("vlog_service")
.sendTime(LocalDateTime.now()) .sendTime(LocalDateTime.now())
@ -94,7 +93,7 @@ public class VlogPushServiceImpl implements IVlogPushService {
MQMessage message = MQMessage.builder() MQMessage message = MQMessage.builder()
.topic("MEMBER_VLOG_MSG") .topic("MEMBER_VLOG_MSG")
.tag(tag) .tag(tag)
.messageType(MQMessageType.VLOG) .messageType("json")
.data(vlogId) .data(vlogId)
.source("vlog_service") .source("vlog_service")
.sendTime(LocalDateTime.now()) .sendTime(LocalDateTime.now())

View File

@ -36,7 +36,6 @@ import org.dromara.common.core.domain.model.LoginUser;
import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.mq.config.RocketMQConfig; import org.dromara.common.mq.config.RocketMQConfig;
import org.dromara.common.mq.domain.MQMessage; 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.enums.MessageActionEnum;
import org.dromara.common.mq.utils.MqUtil; import org.dromara.common.mq.utils.MqUtil;
import org.dromara.common.redis.redis.RedisCache; import org.dromara.common.redis.redis.RedisCache;
@ -151,7 +150,7 @@ public class VlogServiceImpl extends ServiceImpl<VlogMapper, Vlog> implements Vl
//发出mq消息异步处理上传 //发出mq消息异步处理上传
MQMessage message = MQMessage.builder() MQMessage message = MQMessage.builder()
.messageType(MQMessageType.VLOG) .messageType("json")
.data(vlog.getId()) .data(vlog.getId())
.source("app") .source("app")
.topic("VLOG_UPLOAD_TOPIC") .topic("VLOG_UPLOAD_TOPIC")
@ -324,15 +323,14 @@ public class VlogServiceImpl extends ServiceImpl<VlogMapper, Vlog> implements Vl
Map<String,Object> params=new HashMap<>(); Map<String,Object> params=new HashMap<>();
LoginUser loginUser=LoginHelper.getLoginUser(); LoginUser loginUser=LoginHelper.getLoginUser();
params.put("userID", loginUser.getUserId()); params.put("userId", loginUser.getUserId());
params.put("nickName", loginUser.getNickname() == null ? "" : loginUser.getNickname()); params.put("nickname", loginUser.getNickname() == null ? "" : loginUser.getNickname());
params.put("faceUrl", loginUser.getAvatar() ); params.put("faceUrl", loginUser.getAvatar() );
params.put("vlogId",vlog.getId()); params.put("action", MessageActionEnum.INTERACTION_LIKE.getAccount());
params.put("firstFrameImg",vlog.getFirstFrameImg()); params.put("toUserId",vlog.getMemberId());
MQMessage mqMessage = new MQMessage(); MQMessage mqMessage = new MQMessage();
mqMessage.setMessageType(MQMessageType.IM); mqMessage.setTag(MessageActionEnum.INTERACTION_LIKE.getAccount());
mqMessage.setTag(MessageActionEnum.INTERACTION_LIKE.name());
mqMessage.setToUserId(Long.valueOf(vlog.getMemberId()));
mqMessage.setData(params); mqMessage.setData(params);
return mqMessage; return mqMessage;
} }

View File

@ -18,7 +18,7 @@ import java.math.BigDecimal;
@Data @Data
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@TableName(value = "pms_product_snapshot") @TableName(value = "wzj_soopin.pms_product_snapshot")
public class ProductSnapshot { public class ProductSnapshot {
/** /**
* 主键id * 主键id

View File

@ -18,7 +18,7 @@ import java.math.BigDecimal;
@Data @Data
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@TableName(value = "pms_sku_snapshot") @TableName(value = "wzj_soopin.pms_sku_snapshot")
public class SkuSnapshot { public class SkuSnapshot {
@TableId(value = "id") @TableId(value = "id")

View File

@ -22,7 +22,7 @@ import org.springframework.stereotype.Component;
@RocketMQMessageListener( @RocketMQMessageListener(
topic = RocketMQConfig.TOPIC_IM_MSG, topic = RocketMQConfig.TOPIC_IM_MSG,
// consumerGroup = RocketMQConfig.CONSUMER_GROUP_SYS_MSG, // consumerGroup = RocketMQConfig.CONSUMER_GROUP_SYS_MSG,
consumerGroup = "cosumer1", consumerGroup = "cosumer",
selectorExpression = "*" selectorExpression = "*"
// ackMode = AckMode.MANUAL // ackMode = AckMode.MANUAL
) )

View File

@ -41,20 +41,18 @@ public class MQMessageHandleServiceImpl implements IMQMessageHandleService {
//创建im消息 //创建im消息
//根据消息类型获取消息模板 //根据消息类型获取消息模板
Map<String, Object> params = (Map<String, Object>) message.getData(); Map<String, Object> params = (Map<String, Object>) message.getData();
String action = (String) params.get("action");
//根据action获取消息模板 //根据action获取消息模板
MessageActionEnum actionEnum = MessageActionEnum.valueOf(message.getTag()); MessageActionEnum actionEnum = MessageActionEnum.getByAccount(action);
params.put("action", actionEnum.getKey());
params.put("account", actionEnum.getAccount());
if(actionEnum == null){ if(actionEnum == null){
log.error("根据action获取消息模板失败action{}", message.getTag()); log.error("根据action获取消息模板失败action{}", action);
return false; return false;
} }
SysMessageTemplate template = templateService.getTemplateByAction(actionEnum.getCode()); SysMessageTemplate template = templateService.getTemplateByAction(actionEnum.getCode());
if (template == null) { if (template == null) {
log.error("根据action获取消息模板失败action{}", message.getTag()); log.error("根据action获取消息模板失败action{}", action);
return true; return true;
} }
@ -63,7 +61,7 @@ public class MQMessageHandleServiceImpl implements IMQMessageHandleService {
try { try {
// 消息发送者可能是系统或管理员这里使用action对应的账号发送 // 消息发送者可能是系统或管理员这里使用action对应的账号发送
String fromUserId = actionEnum.getAccount(); String fromUserId = actionEnum.getAccount();
String toUserId = message.getToUserId()+""; // 接收者是事件中的用户ID String toUserId = ""; // 接收者是事件中的用户ID
String content = template.getContent(); // 只取content字段 String content = template.getContent(); // 只取content字段
// 处理消息变量替换如果有 // 处理消息变量替换如果有
@ -78,6 +76,7 @@ public class MQMessageHandleServiceImpl implements IMQMessageHandleService {
desc = processMessageVariables(desc, params); desc = processMessageVariables(desc, params);
content = processMessageVariables(content, params); content = processMessageVariables(content, params);
ext = processMessageVariables(ext, params); ext = processMessageVariables(ext, params);
toUserId = String.valueOf(params.get("toUserId"));
} }
String pushType = null; String pushType = null;

View File

@ -20,7 +20,6 @@ import org.dromara.common.core.constant.GlobalConstants;
import org.dromara.common.core.enums.YesOrNo; import org.dromara.common.core.enums.YesOrNo;
import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mq.domain.MQMessage; 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.enums.MessageActionEnum;
import org.dromara.common.mq.utils.MqUtil; import org.dromara.common.mq.utils.MqUtil;
import org.dromara.common.redis.redis.RedisCache; import org.dromara.common.redis.redis.RedisCache;
@ -86,11 +85,11 @@ public class FansServiceImpl extends ServiceImpl<FansMapper, Fans> implements IF
params.put("userId", follower.getId()); params.put("userId", follower.getId());
params.put("nickname", follower.getNickname() == null ? "" : follower.getNickname()); params.put("nickname", follower.getNickname() == null ? "" : follower.getNickname());
params.put("faceUrl", vlogger.getAvatar() ); params.put("faceUrl", vlogger.getAvatar() );
params.put("action", MessageActionEnum.NEW_FOUCS.getAccount());
params.put("toUserId", vlogger.getId());
MQMessage message = MQMessage.builder() MQMessage message = MQMessage.builder()
.messageType(MQMessageType.IM) .messageType("follow")
.data(params) .data(params)
.tag(MessageActionEnum.NEW_FOUCS.name())
.toUserId(vlogger.getId())
.source("member") .source("member")
.build(); .build();
return message; return message;

View File

@ -22,7 +22,6 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.dromara.common.core.domain.model.LoginUser; import org.dromara.common.core.domain.model.LoginUser;
import org.dromara.common.mq.domain.MQMessage; 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.enums.MessageActionEnum;
import org.dromara.common.mq.utils.MqUtil; import org.dromara.common.mq.utils.MqUtil;
import org.dromara.common.redis.redis.RedisCache; import org.dromara.common.redis.redis.RedisCache;
@ -113,11 +112,11 @@ public class FeedbackServiceImpl extends ServiceImpl<FeedbackMapper, Feedback> i
params.put("userId", loginUser.getUserId()); params.put("userId", loginUser.getUserId());
params.put("nickname", loginUser.getNickname() == null ? "" : loginUser.getNickname()); params.put("nickname", loginUser.getNickname() == null ? "" : loginUser.getNickname());
params.put("faceUrl", loginUser.getAvatar() ); params.put("faceUrl", loginUser.getAvatar() );
params.put("action", MessageActionEnum.INTERACTION_LIKE.getAccount());
params.put("toUserId",aim.getMemberId());
MQMessage mqMessage = new MQMessage(); MQMessage mqMessage = new MQMessage();
mqMessage.setMessageType(MQMessageType.IM); mqMessage.setTag(MessageActionEnum.INTERACTION_LIKE.getAccount());
mqMessage.setTag(MessageActionEnum.INTERACTION_LIKE.name());
mqMessage.setToUserId(aim.getMemberId());
mqMessage.setData(params); mqMessage.setData(params);
return mqMessage; return mqMessage;
} }

View File

@ -16,8 +16,6 @@ import com.wzj.soopin.order.service.VerificationCodeService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.common.web.core.BusinessImpl; 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 org.springframework.stereotype.Service;
import java.io.Serializable; import java.io.Serializable;
@ -32,15 +30,10 @@ public class OrderBusinessImpl extends BusinessImpl<OrderService, OrderConvert,
private final OrderItemService orderItemService; private final OrderItemService orderItemService;
private final OrderItemConvert orderItemConvert; private final OrderItemConvert orderItemConvert;
private final VerificationCodeService verificationCodeService; private final VerificationCodeService verificationCodeService;
private final ISysTenantService tenantService;
@Override @Override
public OrderVO info(Serializable id) { public OrderVO info(Serializable id) {
OrderVO vo= super.info(id); OrderVO vo= super.info(id);
//设置租户信息
Member member = memberService.getById(vo.getMemberId()); Member member = memberService.getById(vo.getMemberId());
vo.setMemberNickname(member.getNickname()); vo.setMemberNickname(member.getNickname());
vo.setMemberPhoneEncrypted(member.getPhoneHidden()); vo.setMemberPhoneEncrypted(member.getPhoneHidden());
@ -49,10 +42,6 @@ public class OrderBusinessImpl extends BusinessImpl<OrderService, OrderConvert,
List<OrderItem> orderItemList = orderItemService.findByOrderId(vo.getId()); List<OrderItem> orderItemList = orderItemService.findByOrderId(vo.getId());
List<OrderItemVO> itemVOList = orderItemList.stream().map(item -> { List<OrderItemVO> itemVOList = orderItemList.stream().map(item -> {
OrderItemVO itemVO=orderItemConvert.toVO(item); OrderItemVO itemVO=orderItemConvert.toVO(item);
if (itemVO.getTenantId() != null) {
SysTenantVo tenant = tenantService.queryByTenantId(vo.getTenantId());
itemVO.setTenantName(tenant.getShopName());
}
//赋值 //赋值
return itemVO; return itemVO;
}).collect(Collectors.toList()); }).collect(Collectors.toList());

View File

@ -94,5 +94,4 @@ public class OrderItem extends BaseAudit {
@Schema(description = "租户名称") @Schema(description = "租户名称")
@Excel(name = "租户名称") @Excel(name = "租户名称")
private String tenantName; private String tenantName;
} }

View File

@ -34,7 +34,7 @@ public class RedPacket extends BaseAudit {
@TableField("group_id") @TableField("group_id")
@Schema(description = "群id") @Schema(description = "群id")
private String groupId; private Long groupId;
@TableField("packet_type") @TableField("packet_type")
@Schema(description = "红包类型(1:普通)") @Schema(description = "红包类型(1:普通)")

View File

@ -29,7 +29,7 @@ public class SendRedPacketRequest {
private Long receiverId; private Long receiverId;
@Schema(description = "群id(群聊时必填)") @Schema(description = "群id(群聊时必填)")
private String groupId; private Long groupId;
@NotNull(message = "红包类型不能为空") @NotNull(message = "红包类型不能为空")
@Range(min = 1, max = 2, message = "红包类型只能是1(普通)或2(拼手气)") @Range(min = 1, max = 2, message = "红包类型只能是1(普通)或2(拼手气)")

View File

@ -6,7 +6,6 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import org.dromara.common.core.domain.model.BaseAudit; import org.dromara.common.core.domain.model.BaseAudit;
import org.dromara.common.excel.annotation.Excel; import org.dromara.common.excel.annotation.Excel;
import org.dromara.system.domain.vo.SysTenantVo;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -37,8 +36,6 @@ public class OrderVO extends BaseAudit {
@Schema(description ="租户id") @Schema(description ="租户id")
private String tenantId; private String tenantId;
private SysTenantVo tenant;
@Schema(description ="用户帐号") @Schema(description ="用户帐号")
@Excel(name = "用户帐号") @Excel(name = "用户帐号")
private String memberUsername; private String memberUsername;

View File

@ -48,6 +48,5 @@ public interface OrderService extends IService<Order> {
void refund(RefundBO refundBO); void refund(RefundBO refundBO);
void sendMessage(Long orderId);
} }

View File

@ -32,7 +32,6 @@ import org.dromara.common.core.domain.event.Constants;
import org.dromara.common.core.enums.AftersaleStatus; import org.dromara.common.core.enums.AftersaleStatus;
import org.dromara.common.core.enums.OrderRefundStatus; import org.dromara.common.core.enums.OrderRefundStatus;
import org.dromara.common.mq.domain.MQMessage; 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.enums.MessageActionEnum;
import org.dromara.common.mq.utils.MqUtil; import org.dromara.common.mq.utils.MqUtil;
import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.satoken.utils.LoginHelper;
@ -248,10 +247,9 @@ public class AftersaleServiceImpl extends ServiceImpl<AftersaleMapper, Aftersale
// params.put("receiver", memberService.getMemberInfo(o.getMemberId())); // params.put("receiver", memberService.getMemberInfo(o.getMemberId()));
params.put("object", o); params.put("object", o);
params.put("action", actionEnum.getAccount());
MQMessage mqMessage = new MQMessage(); MQMessage mqMessage = new MQMessage();
mqMessage.setTag(actionEnum.name()); mqMessage.setTag(actionEnum.getAccount());
mqMessage.setMessageType(MQMessageType.IM);
mqMessage.setToUserId(o.getMemberId());
mqMessage.setData(params); mqMessage.setData(params);
return mqMessage; return mqMessage;
} }

View File

@ -40,10 +40,6 @@ import org.dromara.common.core.domain.R;
import org.dromara.common.core.domain.event.Constants; import org.dromara.common.core.domain.event.Constants;
import org.dromara.common.core.domain.model.LoginUser; import org.dromara.common.core.domain.model.LoginUser;
import org.dromara.common.core.exception.ServiceException; 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.dromara.common.satoken.utils.LoginHelper;
import org.dromara.common.tenant.helper.TenantHelper; import org.dromara.common.tenant.helper.TenantHelper;
import org.dromara.system.domain.SysTenant; import org.dromara.system.domain.SysTenant;
@ -292,7 +288,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
// 更新售后记录 // 更新售后记录
Aftersale aftersale = aftersaleMapper.selectOne(Wrappers.lambdaQuery(Aftersale.class) Aftersale aftersale = aftersaleMapper.selectOne(Wrappers.lambdaQuery(Aftersale.class)
.eq(Aftersale::getOrderId, orderId).last("limit 1")); .eq(Aftersale::getOrderId, orderId).last("limit 1"));
if (aftersale == null) { if(aftersale == null){
aftersale = new Aftersale(); aftersale = new Aftersale();
aftersale.setMemberId(order.getMemberId()); aftersale.setMemberId(order.getMemberId());
aftersale.setOrderId(orderId); aftersale.setOrderId(orderId);
@ -304,7 +300,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
aftersale.setReason(refundReason); aftersale.setReason(refundReason);
aftersale.setAuthFlag(2); aftersale.setAuthFlag(2);
aftersaleMapper.insert(aftersale); aftersaleMapper.insert(aftersale);
} else { }else{
aftersale.setReturnAmount(refundBO.getTotalRefundAmount()); aftersale.setReturnAmount(refundBO.getTotalRefundAmount());
aftersale.setOrgTrace(refundBO.getOrgTrace()); aftersale.setOrgTrace(refundBO.getOrgTrace());
aftersale.setStatus(AftersaleStatus.PAID.getCode()); aftersale.setStatus(AftersaleStatus.PAID.getCode());
@ -419,14 +415,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
/** /**
* 商户所属订单列表 * 商户所属订单列表
*
* @param query * @param query
* @return * @return
*/ */
@Override @Override
public IPage<OrderVO> merchantOrderList(OrderBo query) { public IPage<OrderVO> merchantOrderList(OrderBo query) {
Assert.isTrue(query.getCurrent() != null && query.getSize() != null, "分页参数不能为空"); Assert.isTrue(query.getCurrent() != null && query.getSize() != null, "分页参数不能为空");
if (StrUtil.isBlank(query.getTenantId())) { if(StrUtil.isBlank(query.getTenantId())){
query.setTenantId(TenantHelper.getTenantId()); query.setTenantId(TenantHelper.getTenantId());
} }
IPage<OrderVO> resultPage = TenantHelper.ignore(() -> orderMapper.getListByOrderItemTenant(Page.of(query.getCurrent(), query.getSize()), query)); IPage<OrderVO> resultPage = TenantHelper.ignore(() -> orderMapper.getListByOrderItemTenant(Page.of(query.getCurrent(), query.getSize()), query));
@ -436,14 +431,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
/** /**
* 团长所属订单列表 * 团长所属订单列表
*
* @param query * @param query
* @return * @return
*/ */
@Override @Override
public IPage<OrderVO> referenceMemberOrderList(OrderBo query) { public IPage<OrderVO> referenceMemberOrderList(OrderBo query) {
Assert.isTrue(query.getCurrent() != null && query.getSize() != null, "分页参数不能为空"); Assert.isTrue(query.getCurrent() != null && query.getSize() != null, "分页参数不能为空");
if (StrUtil.isBlank(query.getTenantId())) { if(StrUtil.isBlank(query.getTenantId())){
query.setTenantId(TenantHelper.getTenantId()); query.setTenantId(TenantHelper.getTenantId());
} }
IPage<OrderVO> resultPage = TenantHelper.ignore(() -> orderMapper.getListByOrderTenant(Page.of(query.getCurrent(), query.getSize()), query)); IPage<OrderVO> resultPage = TenantHelper.ignore(() -> orderMapper.getListByOrderTenant(Page.of(query.getCurrent(), query.getSize()), query));
@ -499,36 +493,34 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
} }
@Override @Override
public Order getByNo(String orderNo) { public Order getByNo(String orderNo) {
return baseMapper.selectOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderSn, orderNo)); return baseMapper.selectOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderSn, orderNo));
} }
public void sendMessage(Long orderId) { // public void sendMessage(Order order) {
Order order = this.getById(orderId); // Long memberId = order.getMemberId();
if (order != null) { // Long orderId = order.getId();
Map<String, Object> params = new HashMap<>(); // // 订单创建成功模板ID
params.put("orderID", order.getId()); // Long templateId =1940586928850100226L;
params.put("amount", order.getPayAmount()); // // 查询模板信息
// SysMessageTemplateVo template = templateService.selectTemplateById(templateId);
//取订单的第一个商品 // log.info("模板信息为: {}", template);
List<OrderItem> orderItems = orderItemMapper.findByOrderId(order.getId()); //
if (CollectionUtil.isNotEmpty(orderItems)) { // if (template != null) {
params.put("name", orderItems.get(0).getProductName()); // Map<String, Object> params = new HashMap<>();
params.put("pic", orderItems.get(0).getPic()); // params.put("orderSn", order.getOrderSn());
params.put("price", orderItems.get(0).getSalePrice()); // params.put("productName", orderItemMapper.getName(orderId));
params.put("amount", orderItems.get(0).getQuantity()); // SysMessageBo messageBo = new SysMessageBo();
// params.put("describe", orderItems.get(0).get()); // messageBo.setTemplateType(org.dromara.system.domain.MessageTemplateType.ORDER_NOTICE);
} // messageBo.setTemplateParams(params);
params.put("account", MessageActionEnum.ORDER_PAY.getAccount()); // messageBo.setSenderId(memberId);
MQMessage mqMessage = new MQMessage(); // messageBo.setTitle(template.getTitle());
mqMessage.setTag(MessageActionEnum.ORDER_PAY.name()); // sysMessageService.sendMessageToUser(messageBo, memberId);
mqMessage.setMessageType(MQMessageType.IM); // }
mqMessage.setToUserId(order.getMemberId()); // }
mqMessage.setData(params);
MqUtil.sendIMMessage(mqMessage);
}
}
} }

View File

@ -15,18 +15,10 @@ import com.wzj.soopin.transaction.service.IChargeService;
import com.wzj.soopin.transaction.util.SnowFlake; import com.wzj.soopin.transaction.util.SnowFlake;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.domain.model.LoginUser;
import org.dromara.common.core.exception.ServiceException; 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 org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;
/** /**
* 会员封禁 * 会员封禁
@ -49,35 +41,30 @@ public class ChargeServiceImpl extends ServiceImpl<ChargeMapper, Charge> impleme
boolean chargeSuccess = true; boolean chargeSuccess = true;
//充值成功后更新会员账户余额 //充值成功后更新会员账户余额
if (chargeSuccess) { if (chargeSuccess) {
accountBillService.addMoney(charge.getActualMoney(), charge.getMemberId(), AccountBillSourceEnum.RECHARGE, "充值"); //更新会员账户余额
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;
} }
//生成充值记录 //生成充值记录
//获取账号金额
MemberAccount memberAccount = memberAccountService.getById(charge.getMemberId());
MqUtil.sendIMMessage(buildMessage(charge,memberAccount));
return false; return false;
} }
private MQMessage buildMessage(Charge charge,MemberAccount memberAccount) {
Map<String, Object> 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 @Override
public boolean charge(Charge charge) { 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("充值金额不能为零"); throw new ServiceException("充值金额不能为零");
} }
//状态为待充值 //状态为待充值
@ -106,22 +93,17 @@ public class ChargeServiceImpl extends ServiceImpl<ChargeMapper, Charge> impleme
@Override @Override
public boolean paySuccess(String code, String payNo, Integer method) { public boolean paySuccess(String code, String payNo, Integer method) {
Charge charge = getByCode(code); Charge charge = getByCode(code);
if (charge == null) { if(charge==null){
log.error("充值记录不存在,code:{}", code); log.error("充值记录不存在,code:{}",code);
return false; return false;
} }
charge.setStatus(ChargeStatus.SUCCESS.getCode()); charge.setStatus(ChargeStatus.SUCCESS.getCode());
charge.setPayNo(payNo); charge.setPayNo(payNo);
charge.setMethod(method); charge.setMethod(method);
boolean result = updateById(charge); boolean result= updateById(charge);
if (result) { if (result){
accountBillService.addMoney(charge.getActualMoney(), charge.getMemberId(), AccountBillSourceEnum.RECHARGE, "充值"); accountBillService.addMoney(charge.getActualMoney(),charge.getMemberId(),AccountBillSourceEnum.RECHARGE,"充值");
//生成充值记录
//获取账号金额
MemberAccount memberAccount = memberAccountService.getById(charge.getMemberId());
MqUtil.sendIMMessage(buildMessage(charge,memberAccount));
} }
return result; return result;
} }
} }

View File

@ -3,7 +3,6 @@ package com.wzj.soopin.transaction.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.codec.Base64; import cn.hutool.core.codec.Base64;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Assert;
@ -22,7 +21,6 @@ import com.wzj.soopin.order.domain.bo.RefundBO;
import com.wzj.soopin.order.domain.entity.Aftersale; import com.wzj.soopin.order.domain.entity.Aftersale;
import com.wzj.soopin.order.domain.entity.Order; import com.wzj.soopin.order.domain.entity.Order;
import com.wzj.soopin.order.domain.entity.OrderItem; 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.emum.OrderStatusEnum;
import com.wzj.soopin.order.service.AftersaleService; import com.wzj.soopin.order.service.AftersaleService;
import com.wzj.soopin.order.service.OrderItemService; import com.wzj.soopin.order.service.OrderItemService;
@ -79,10 +77,6 @@ import org.dromara.common.core.enums.TenantType;
import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.DateUtils; import org.dromara.common.core.utils.DateUtils;
import org.dromara.common.core.utils.ServletUtils; 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.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@ -96,7 +90,6 @@ import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.wzj.soopin.transaction.constans.EasypayConstants.*; import static com.wzj.soopin.transaction.constans.EasypayConstants.*;
import static net.sf.jsqlparser.parser.feature.Feature.comment;
/** /**
* 会员封禁 * 会员封禁
@ -528,29 +521,6 @@ public class EasypayServiceImpl implements IEasypayService {
.paymentTime(LocalDateTimeUtil.parse(StrBuilder.create(respOrderInfo.getDateEnd()).append(respOrderInfo.getTimeEnd()).toString(), "yyyyMMddHHmmss")) .paymentTime(LocalDateTimeUtil.parse(StrBuilder.create(respOrderInfo.getDateEnd()).append(respOrderInfo.getTimeEnd()).toString(), "yyyyMMddHHmmss"))
.payType(PayType.getByValue(payOrder.getPayType()).getChannel()) .payType(PayType.getByValue(payOrder.getPayType()).getChannel())
.build()); .build());
//发出消息
MqUtil.sendIMMessage(buildMQMessage(order));
}
private MQMessage buildMQMessage(Order order) {
Map<String, Object> params = new HashMap<>();
params.put("orderID", order.getId());
params.put("amount", order.getPayAmount());
//取订单的第一个商品
List<OrderItem> 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 @Override

View File

@ -84,7 +84,7 @@ public class RedPacketServiceImpl extends ServiceImpl<RedPacketMapper, RedPacket
redPacketMapper.insert(redPacket); redPacketMapper.insert(redPacket);
Long packetId = redPacket.getId(); Long packetId = redPacket.getId();
// 扣减发送者余额并记录变动 // 扣减发送者余额并记录变动
accountBillService.reduceMoney(request.getTotalAmount(), memberId, AccountBillSourceEnum.RED_PACKAGE_SEND, "红包发放"); accountBillService.reduceMoney(balance, memberId, AccountBillSourceEnum.RED_PACKAGE_SEND, "红包发放");
// 返回结果 // 返回结果
Map<String, Object> result = new HashMap<>(); Map<String, Object> result = new HashMap<>();

View File

@ -104,9 +104,9 @@ public class WithdrawServiceImpl extends ServiceImpl<WithdrawMapper, Withdraw> i
params.put("sender", sender); params.put("sender", sender);
params.put("receiver", memberService.getMemberInfo(o.getMemberId())); params.put("receiver", memberService.getMemberInfo(o.getMemberId()));
params.put("object", o); params.put("object", o);
params.put("account", actionEnum.getAccount()); params.put("action", actionEnum.getAccount());
MQMessage mqMessage = new MQMessage(); MQMessage mqMessage = new MQMessage();
mqMessage.setTag(actionEnum.name()); mqMessage.setTag(actionEnum.getAccount());
mqMessage.setData(params); mqMessage.setData(params);
return mqMessage; return mqMessage;
} }