diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml
index 856d09f85..af1350aa2 100644
--- a/ruoyi-admin/src/main/resources/application-dev.yml
+++ b/ruoyi-admin/src/main/resources/application-dev.yml
@@ -303,3 +303,12 @@ tencent:
secret-key: "311b5309d714a20f7f5b54360ee21b1e24ec208ebcd25ce8f47d24753bccc091" # 你的密钥
administrator: "administrator" # 管理员账号
expire-time: 604800 # UserSig 过期时间(7天,单位:秒)
+ # mongodb
+ data:
+ mongodb:
+ uri: 82.156.121.2:37017
+ database: wzj-shop
+ username: admin
+ password: A1969bf8
+ authentication-database: admin
+ # replica-set-name: mongoreplset
diff --git a/ruoyi-modules/ruoyi-im/pom.xml b/ruoyi-modules/ruoyi-im/pom.xml
index 83297edf7..8ebfe72b0 100644
--- a/ruoyi-modules/ruoyi-im/pom.xml
+++ b/ruoyi-modules/ruoyi-im/pom.xml
@@ -105,6 +105,12 @@
org.dromara
ruoyi-system
+
+ org.apache.commons
+ commons-text
+ 1.10.0
+ compile
+
diff --git a/ruoyi-modules/ruoyi-im/src/main/java/org/dromara/system/domain/MessageTemplateType.java b/ruoyi-modules/ruoyi-im/src/main/java/org/dromara/system/domain/MessageTemplateType.java
new file mode 100644
index 000000000..613d30d8a
--- /dev/null
+++ b/ruoyi-modules/ruoyi-im/src/main/java/org/dromara/system/domain/MessageTemplateType.java
@@ -0,0 +1,16 @@
+package org.dromara.system.domain;
+
+/**
+ * 消息模板类型编号常量
+ */
+public class MessageTemplateType {
+ public static final String FOLLOW = "1"; // 关注
+ public static final String UNFOLLOW = "2"; // 取消关注
+ public static final String LIKE = "3"; // 点赞
+ public static final String MERCHANT_APPROVED = "5";// 商家通过审核通知
+ public static final String VIDEO_APPROVED = "6"; // 视频审核通过
+ public static final String VIDEO_REJECTED = "7"; // 视频审核不通过
+ public static final String ORDER_NOTICE = "8"; // 订单通知
+ public static final String VERIFY_SUCCESS = "9"; // 核销成功
+ public static final String VERIFY_FAIL = "10"; // 核销失败
+}
\ No newline at end of file
diff --git a/ruoyi-modules/ruoyi-im/src/main/java/org/dromara/system/domain/SysMessage.java b/ruoyi-modules/ruoyi-im/src/main/java/org/dromara/system/domain/SysMessage.java
index 2166e66c6..34627cf97 100644
--- a/ruoyi-modules/ruoyi-im/src/main/java/org/dromara/system/domain/SysMessage.java
+++ b/ruoyi-modules/ruoyi-im/src/main/java/org/dromara/system/domain/SysMessage.java
@@ -54,4 +54,12 @@ public class SysMessage extends BaseAudit {
/** 扩展参数 */
@TableField(exist = false)
private Map params = new HashMap<>();
+
+ /** 模板类型编号(如1=关注,2=取消关注等) */
+ @TableField(exist = false)
+ private String templateType;
+
+ /** 模板参数 */
+ @TableField(exist = false)
+ private Map templateParams;
}
diff --git a/ruoyi-modules/ruoyi-im/src/main/java/org/dromara/system/domain/bo/SysMessageBo.java b/ruoyi-modules/ruoyi-im/src/main/java/org/dromara/system/domain/bo/SysMessageBo.java
index 575165f4f..66b40aa5f 100644
--- a/ruoyi-modules/ruoyi-im/src/main/java/org/dromara/system/domain/bo/SysMessageBo.java
+++ b/ruoyi-modules/ruoyi-im/src/main/java/org/dromara/system/domain/bo/SysMessageBo.java
@@ -19,6 +19,7 @@ import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
+import com.baomidou.mybatisplus.annotation.TableField;
/**
* 消息业务对象
@@ -95,6 +96,27 @@ public class SysMessageBo extends BaseAudit {
@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", timezone = "UTC")
private LocalDateTime sendTime;
+ /** 模板类型编号(如1=关注,2=取消关注等) */
+ @TableField(exist = false)
+ private String templateType;
+
+ /** 模板参数 */
+ @TableField(exist = false)
+ private java.util.Map templateParams;
+
+ public String getTemplateType() {
+ return templateType;
+ }
+ public void setTemplateType(String templateType) {
+ this.templateType = templateType;
+ }
+ public java.util.Map getTemplateParams() {
+ return templateParams;
+ }
+ public void setTemplateParams(java.util.Map templateParams) {
+ this.templateParams = templateParams;
+ }
+
/**
* 转换为查询条件
*/
diff --git a/ruoyi-modules/ruoyi-im/src/main/java/org/dromara/system/mapper/SysMessageTemplateMapper.java b/ruoyi-modules/ruoyi-im/src/main/java/org/dromara/system/mapper/SysMessageTemplateMapper.java
index 7220814e7..19c70f7c3 100644
--- a/ruoyi-modules/ruoyi-im/src/main/java/org/dromara/system/mapper/SysMessageTemplateMapper.java
+++ b/ruoyi-modules/ruoyi-im/src/main/java/org/dromara/system/mapper/SysMessageTemplateMapper.java
@@ -11,4 +11,8 @@ import org.dromara.system.domain.vo.SysMessageTemplateVo;
*/
public interface SysMessageTemplateMapper extends BaseMapperPlus {
+ /**
+ * 根据模板类型编号查找模板
+ */
+ SysMessageTemplate selectByTemplateType(String templateType);
}
\ No newline at end of file
diff --git a/ruoyi-modules/ruoyi-im/src/main/java/org/dromara/system/service/impl/SysMessageServiceImpl.java b/ruoyi-modules/ruoyi-im/src/main/java/org/dromara/system/service/impl/SysMessageServiceImpl.java
index 1b4cf9b47..bf8390bae 100644
--- a/ruoyi-modules/ruoyi-im/src/main/java/org/dromara/system/service/impl/SysMessageServiceImpl.java
+++ b/ruoyi-modules/ruoyi-im/src/main/java/org/dromara/system/service/impl/SysMessageServiceImpl.java
@@ -3,18 +3,21 @@ package org.dromara.system.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
+
+import org.apache.commons.text.StringSubstitutor;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.system.domain.SysMessage;
+import org.dromara.system.domain.SysMessageTemplate;
import org.dromara.system.domain.SysMessageUser;
import org.dromara.system.domain.bo.SysMessageBo;
import org.dromara.system.domain.event.MessageEvent;
import org.dromara.system.domain.vo.SysMessageVo;
-//import org.dromara.system.job.SnailJobApiUtil;
import org.dromara.system.mapper.SysMessageMapper;
import org.dromara.system.mapper.SysMessageUserMapper;
import org.dromara.system.service.ISysMessageService;
@@ -22,12 +25,7 @@ import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
import java.util.stream.Collectors;
/**
@@ -43,6 +41,8 @@ public class SysMessageServiceImpl extends ServiceImpl selectPageMessageList(SysMessageBo bo, PageQuery pageQuery) {
@@ -87,6 +87,16 @@ public class SysMessageServiceImpl extends ServiceImpl params = message.getTemplateParams();
+ String content = StringSubstitutor.replace(template.getTemplateContent(), params == null ? new java.util.HashMap<>() : params);
+ message.setContent(content);
+ }
//加一个约定
diff --git a/ruoyi-modules/ruoyi-im/src/main/java/org/dromara/system/service/impl/SysMessageTemplateServiceImpl.java b/ruoyi-modules/ruoyi-im/src/main/java/org/dromara/system/service/impl/SysMessageTemplateServiceImpl.java
index fa8495ced..5b0007d34 100644
--- a/ruoyi-modules/ruoyi-im/src/main/java/org/dromara/system/service/impl/SysMessageTemplateServiceImpl.java
+++ b/ruoyi-modules/ruoyi-im/src/main/java/org/dromara/system/service/impl/SysMessageTemplateServiceImpl.java
@@ -90,4 +90,13 @@ public class SysMessageTemplateServiceImpl extends ServiceImpl lqw = new LambdaQueryWrapper<>();
+ lqw.eq(SysMessageTemplate::getTemplateType, templateType).eq(SysMessageTemplate::getStatus, 0);
+ return templateMapper.selectOne(lqw);
+ }
}
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/FansController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/FansController.java
index 04cc828b7..5344962f0 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/FansController.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/FansController.java
@@ -301,24 +301,14 @@ public class FansController {
* @return
*/
@PostMapping("block")
- public R block(@RequestParam Long myId,
- @RequestParam Long vloggerId) {
- // 先执行cancel
+ public R block(@RequestParam Long myId, @RequestParam Long vloggerId) {
// 判断两个id不能为空
- if (myId == null || vloggerId==null) {
+ if (myId == null || vloggerId == null) {
return R.ok("id不能为空");
}
- // 是否已经存在关系
- boolean flow = service.queryDoIFollowVloger(myId, vloggerId);
- if (flow) {
- // 删除业务的执行
- service.doCancel(myId, vloggerId);
- // 博主的粉丝-1,我的关注-1
- RedisUtils.decrAtomicValue(CacheConstants.MEMBER_FANS + ":" + vloggerId);
- RedisUtils.decrAtomicValue(CacheConstants.MEMBER_FOLLOW + ":" + myId);
- }
- // 拉黑
+ // 拉黑前只删除“我关注对方”的关系
+ service.removeFansRelationship(myId, vloggerId);
//检查是否已在黑名单中
boolean hasblock = memberBlockService.hasBlocked(myId, vloggerId);
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberAccountController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberAccountController.java
index 9612de2c3..22c521017 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberAccountController.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberAccountController.java
@@ -34,9 +34,12 @@ public class MemberAccountController {
@Tag(name ="查询会员账户表列表")
@PostMapping("/list")
- public R> list(@RequestBody MemberAccountBO query, @RequestBody Page page) {
- Page list = service.page(page,query.toWrapper() );
- return R.ok(convert.toVO(list));
+ public R> list(@RequestBody MemberAccountBO bo,
+ @RequestParam(defaultValue = "1") int pageNum,
+ @RequestParam(defaultValue = "10") int pageSize) {
+ Page page = new Page<>(pageNum, pageSize);
+ IPage result = service.pageWithMember(page, bo);
+ return R.ok(result);
}
@Tag(name ="导出会员账户表列表")
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberAddressController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberAddressController.java
index 2290df955..97ab3fc0f 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberAddressController.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberAddressController.java
@@ -1,13 +1,13 @@
package com.wzj.soopin.member.controller;
-import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wzj.soopin.member.annotation.MemberFillMethod;
import com.wzj.soopin.member.convert.MemberAddressConvert;
import com.wzj.soopin.member.domain.bo.MemberAddressBO;
import com.wzj.soopin.member.domain.po.MemberAddress;
import com.wzj.soopin.member.domain.vo.MemberAddressVO;
+import org.dromara.system.mapper.AddressMapper;
import com.wzj.soopin.member.service.IMemberAddressService;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
@@ -15,10 +15,10 @@ import org.dromara.common.core.domain.R;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType;
-import org.springframework.http.ResponseEntity;
+import org.dromara.common.redis.redis.RedisService;
import org.springframework.web.bind.annotation.*;
-import java.util.List;
+import java.util.*;
/**
* 会员收货地址Controller
@@ -36,6 +36,8 @@ public class MemberAddressController {
private final MemberAddressConvert convert;
+
+
@Tag(name ="查询会员收货地址列表")
@PostMapping("/list")
@MemberFillMethod
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberAccountBO.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberAccountBO.java
index e05cdfd58..f6c42710b 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberAccountBO.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberAccountBO.java
@@ -41,18 +41,34 @@ public class MemberAccountBO extends BaseBO {
@Schema(description ="营收")
private BigDecimal revenue;
-
+ private String nickname;
private String phone;
- private String name;
-
@Schema(description ="余额")
private BigDecimal moneyBalance;
public LambdaQueryWrapper toWrapper() {
- return new LambdaQueryWrapper()
- .eq(MemberAccount::getId, id)
- .eq(MemberAccount::getType, type)
- .eq(MemberAccount::getMemberId, id);
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ if (id != null) {
+ wrapper.eq(MemberAccount::getId, id);
+ }
+ if (type != null) {
+ wrapper.eq(MemberAccount::getType, type);
+ }
+ if (memberId != null) {
+ wrapper.eq(MemberAccount::getMemberId, memberId);
+ }
+ if (integral != null) {
+ wrapper.eq(MemberAccount::getIntegral, integral);
+ }
+ if (wallet != null) {
+ wrapper.eq(MemberAccount::getWallet, wallet);
+ }
+ if (revenue != null) {
+ wrapper.eq(MemberAccount::getRevenue, revenue);
+ }
+
+
+ return wrapper;
}
}
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/MemberAccountVO.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/MemberAccountVO.java
index 1b3f93954..cbd157841 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/MemberAccountVO.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/MemberAccountVO.java
@@ -32,8 +32,6 @@ public class MemberAccountVO {
private Long id;
@Schema(description ="name")
- private String name;
-
- @Schema(description ="phone")
- private String phone;
+ private String nickname; // 会员姓名
+ private String phone; // 会员手机号
}
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/mapper/MemberAccountMapper.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/mapper/MemberAccountMapper.java
index e30381a3e..d994f7f47 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/mapper/MemberAccountMapper.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/mapper/MemberAccountMapper.java
@@ -1,7 +1,11 @@
package com.wzj.soopin.member.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.wzj.soopin.member.domain.bo.MemberAccountBO;
import com.wzj.soopin.member.domain.po.MemberAccount;
+import com.wzj.soopin.member.domain.vo.MemberAccountVO;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
@@ -13,5 +17,6 @@ import java.util.List;
* @author zcc
*/
public interface MemberAccountMapper extends BaseMapper {
+ IPage selectAccountWithMember(Page> page, @Param("bo") MemberAccountBO bo);
}
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IFansService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IFansService.java
index 5efc90a65..eccac0f63 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IFansService.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IFansService.java
@@ -34,4 +34,7 @@ public interface IFansService extends IService {
Long countFansByVloggerId(Long vloggerId);
+
+ // 拉黑前只删除“我关注对方”的关系
+ void removeFansRelationship(Long myId, Long vloggerId);
}
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IMemberAccountService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IMemberAccountService.java
index 8c3a8aeff..a7596d1ce 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IMemberAccountService.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IMemberAccountService.java
@@ -1,10 +1,15 @@
package com.wzj.soopin.member.service;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.wzj.soopin.member.domain.bo.MemberAccountBO;
import com.wzj.soopin.member.domain.po.MemberAccount;
import com.wzj.soopin.member.domain.vo.MemberAccountVO;
public interface IMemberAccountService extends IService {
MemberAccount getMemberAccount(Long memberId);
+
+ IPage pageWithMember(Page> page, MemberAccountBO bo);
}
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 2431abb5d..3abbfeecf 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
@@ -45,6 +45,11 @@ public class FansServiceImpl extends ServiceImpl implements IF
@Transactional(rollbackFor = Exception.class)
@Override
public void doFollow(Long myId, Long vloggerId) {
+ // 幂等性校验:已存在则不再插入
+ Fans existing = queryFansRelationship(myId, vloggerId);
+ if (existing != null) {
+ return;
+ }
Fans fans = new Fans();
fans.setFanId(myId);
@@ -66,18 +71,18 @@ public class FansServiceImpl extends ServiceImpl implements IF
Member follower = memberService.getById(myId);
Member vlogger = memberService.getById(vloggerId);
if (follower != null && vlogger != null && !myId.equals(vloggerId)) {
- Long templateId = 1938489429145284609L;
- SysMessageTemplateVo template = templateService.selectTemplateById(templateId);
- if (template != null) {
- String content = template.getTemplateContent()
- .replace("${followerNickname}", follower.getNickname() == null ? "" : follower.getNickname())
- .replace("${vloggerNickname}", vlogger.getNickname() == null ? "" : vlogger.getNickname());
- SysMessageBo messageBo = new SysMessageBo();
- messageBo.setTitle(template.getTitle());
- messageBo.setContent(content);
- messageBo.setSenderId(myId);
- sysMessageService.sendMessageToUser(messageBo, vloggerId);
- }
+ // 新版:使用模板类型编号和参数
+ Map params = new HashMap<>();
+ params.put("followerNickname", follower.getNickname() == null ? "" : follower.getNickname());
+ params.put("vloggerNickname", vlogger.getNickname() == null ? "" : vlogger.getNickname());
+ SysMessageBo messageBo = new SysMessageBo();
+ // 关注类型编号
+ messageBo.setTemplateType(org.dromara.system.domain.MessageTemplateType.FOLLOW);
+ messageBo.setTemplateParams(params);
+ messageBo.setSenderId(myId);
+ // 补充:设置消息标题,防止title为null
+ messageBo.setTitle("关注通知");
+ sysMessageService.sendMessageToUser(messageBo, vloggerId);
}
}
@@ -116,18 +121,17 @@ public class FansServiceImpl extends ServiceImpl implements IF
Member follower = memberService.getById(myId);
Member vlogger = memberService.getById(vloggerId);
if (follower != null && vlogger != null && !myId.equals(vloggerId)) {
- Long templateId = 1938491158159028226L;
- SysMessageTemplateVo template = templateService.selectTemplateById(templateId);
- if (template != null) {
- String content = template.getTemplateContent()
- .replace("${followerNickname}", follower.getNickname() == null ? "" : follower.getNickname())
- .replace("${vloggerNickname}", vlogger.getNickname() == null ? "" : vlogger.getNickname());
- SysMessageBo messageBo = new SysMessageBo();
- messageBo.setTitle(template.getTitle());
- messageBo.setContent(content);
- messageBo.setSenderId(myId);
- sysMessageService.sendMessageToUser(messageBo, vloggerId);
- }
+ // 新版:使用模板类型编号和参数
+ Map params = new HashMap<>();
+ params.put("followerNickname", follower.getNickname() == null ? "" : follower.getNickname());
+ params.put("vloggerNickname", vlogger.getNickname() == null ? "" : vlogger.getNickname());
+ SysMessageBo messageBo = new SysMessageBo();
+ messageBo.setTemplateType(org.dromara.system.domain.MessageTemplateType.UNFOLLOW); // 取关类型编号
+ messageBo.setTemplateParams(params);
+ messageBo.setSenderId(myId);
+ // 补充:设置消息标题,防止title为null
+ messageBo.setTitle("取消关注通知");
+ sysMessageService.sendMessageToUser(messageBo, vloggerId);
}
}
@@ -166,4 +170,13 @@ public class FansServiceImpl extends ServiceImpl implements IF
public Long countFansByVloggerId(Long vloggerId) {
return baseMapper.selectCount(new LambdaQueryWrapper().eq(Fans::getVloggerId, vloggerId));
}
+
+ // 拉黑前只删除“我关注对方”的关系
+ @Override
+ public void removeFansRelationship(Long myId, Long vloggerId) {
+ Fans fan = queryFansRelationship(myId, vloggerId);
+ if (fan != null) {
+ baseMapper.deleteById(fan.getId());
+ }
+ }
}
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/MemberAccountServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/MemberAccountServiceImpl.java
index 6841134e5..62be25558 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/MemberAccountServiceImpl.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/MemberAccountServiceImpl.java
@@ -2,6 +2,7 @@ package com.wzj.soopin.member.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wzj.soopin.member.domain.po.MemberAccount;
import com.wzj.soopin.member.domain.bo.MemberAccountBO;
@@ -38,6 +39,10 @@ public class MemberAccountServiceImpl extends ServiceImpl pageWithMember(Page> page, MemberAccountBO bo) {
+ return baseMapper.selectAccountWithMember(page, bo);
+ }
}
diff --git a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/MemberAccountMapper.xml b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/MemberAccountMapper.xml
new file mode 100644
index 000000000..c1e1b2ba4
--- /dev/null
+++ b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/MemberAccountMapper.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/vo/AftersaleVO.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/vo/AftersaleVO.java
index ae89b67a2..1d65916f1 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/vo/AftersaleVO.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/vo/AftersaleVO.java
@@ -34,6 +34,8 @@ public class AftersaleVO extends BaseAudit {
@Schema(description = "订单编号")
private Long orderSn;
+ private String nickname; // 会员昵称
+ private String phone; // 会员手机号
/** 退款金额 */
@Schema(description = "退款金额")
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/OrderServiceImpl.java
index 8ed8c8434..39af08049 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/OrderServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/OrderServiceImpl.java
@@ -533,14 +533,14 @@ public class OrderServiceImpl extends ServiceImpl implements
log.info("模板信息为: {}", template);
if (template != null) {
- String content = template.getTemplateContent()
- .replace("${orderSn}", order.getOrderSn())
- .replace("${productName}", orderItemMapper.getName(orderId));
- log.info("模板内容为: {}", content);
+ Map params = new HashMap<>();
+ params.put("orderSn", order.getOrderSn());
+ params.put("productName", orderItemMapper.getName(orderId));
SysMessageBo messageBo = new SysMessageBo();
- messageBo.setTitle(template.getTitle());
- messageBo.setContent(content);
+ messageBo.setTemplateType(org.dromara.system.domain.MessageTemplateType.ORDER_NOTICE);
+ messageBo.setTemplateParams(params);
messageBo.setSenderId(memberId);
+ messageBo.setTitle(template.getTitle());
sysMessageService.sendMessageToUser(messageBo, memberId);
}
}
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/VerificationCodeServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/VerificationCodeServiceImpl.java
index ef024ba0f..b004f9ebd 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/VerificationCodeServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/VerificationCodeServiceImpl.java
@@ -220,61 +220,42 @@ public class VerificationCodeServiceImpl extends ServiceImpl resultMap = codeMapper.getProduvtNameAndMemberId(code);
String productName = (String) resultMap.get("productName");
Long memberId = (Long) resultMap.get("memberId");
-
LocalDateTime verificationTime = codeMapper.verificationTime(code);
String formattedTime = verificationTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
-
-
// 核销成功模板ID
- Long templateId = 1940678210012340225L;
- // 查询模板信息
- SysMessageTemplateVo template = templateService.selectTemplateById(templateId);
- log.info("模板信息为: {}", template);
-
- if (template != null) {
- String content = template.getTemplateContent()
- .replace("${productName}", productName)
- .replace("${verificationTime}",formattedTime);
- log.info("模板内容为: {}", content);
- SysMessageBo messageBo = new SysMessageBo();
- messageBo.setTitle(template.getTitle());
- messageBo.setContent(content);
- messageBo.setSenderId(memberId);
- sysMessageService.sendMessageToUser(messageBo, memberId);
- }
+ // 改为新版模板类型调用
+ Map params = new HashMap<>();
+ params.put("productName", productName);
+ params.put("verificationTime", formattedTime);
+ SysMessageBo messageBo = new SysMessageBo();
+ messageBo.setTemplateType(org.dromara.system.domain.MessageTemplateType.VERIFY_SUCCESS); // 核销成功类型编号
+ messageBo.setTemplateParams(params);
+ messageBo.setSenderId(memberId);
+ messageBo.setTitle("核销成功通知"); // 补充:设置消息标题
+ sysMessageService.sendMessageToUser(messageBo, memberId);
}
@Override
public void sendMessageNo(CodeVerificationDto codeVerificationDto) {
String code = codeVerificationDto.getCodeValue();
-
Map resultMap = codeMapper.getProduvtNameAndMemberId(code);
String productName = (String) resultMap.get("productName");
Long memberId = (Long) resultMap.get("memberId");
-
String reason = codeMapper.getReason(code);
-
- // 核销成功模板ID
- Long templateId = 1940687666448195586L;
- // 查询模板信息
- SysMessageTemplateVo template = templateService.selectTemplateById(templateId);
- log.info("模板信息为: {}", template);
-
- if (template != null) {
- String content = template.getTemplateContent()
- .replace("${productName}", productName)
- .replace("${reason}",reason);
- log.info("模板内容为: {}", content);
- SysMessageBo messageBo = new SysMessageBo();
- messageBo.setTitle(template.getTitle());
- messageBo.setContent(content);
- messageBo.setSenderId(memberId);
- sysMessageService.sendMessageToUser(messageBo, memberId);
- }
+ // 核销失败模板ID
+ // 改为新版模板类型调用
+ Map params = new HashMap<>();
+ params.put("productName", productName);
+ params.put("reason", reason);
+ SysMessageBo messageBo = new SysMessageBo();
+ messageBo.setTemplateType(org.dromara.system.domain.MessageTemplateType.VERIFY_FAIL); // 核销失败类型编号
+ messageBo.setTemplateParams(params);
+ messageBo.setSenderId(memberId);
+ messageBo.setTitle("核销失败通知"); // 补充:设置消息标题
+ sysMessageService.sendMessageToUser(messageBo, memberId);
}
}
diff --git a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/AftersaleMapper.xml b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/AftersaleMapper.xml
index c17cfe7ea..af1f6b544 100644
--- a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/AftersaleMapper.xml
+++ b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/AftersaleMapper.xml
@@ -109,11 +109,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"