From 6cfc2e4258089c953b67054229170c1178585590 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期一, 23 三月 2026 14:19:33 +0800
Subject: [PATCH] 小程序 接口开发
---
server/dmmall_service/src/main/java/com/doumee/service/business/impl/CommentServiceImpl.java | 276 +++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 217 insertions(+), 59 deletions(-)
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/CommentServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/CommentServiceImpl.java
index a77b6a2..c1cba43 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/CommentServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/CommentServiceImpl.java
@@ -1,6 +1,12 @@
package com.doumee.service.business.impl;
-import com.doumee.config.listener.event.IntegralEvent;
+import cn.binarywang.wx.miniapp.bean.security.WxMaMsgSecCheckCheckRequest;
+import cn.binarywang.wx.miniapp.bean.security.WxMaMsgSecCheckCheckResponse;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.LoginUserInfo;
@@ -8,23 +14,18 @@
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Utils;
-import com.doumee.dao.business.CommentJoinMapper;
-import com.doumee.dao.business.CommentMapper;
-import com.doumee.dao.business.model.Activity;
-import com.doumee.dao.business.model.Comment;
-import com.doumee.dao.business.model.Member;
+import com.doumee.core.wx.WxMiniConfig;
+import com.doumee.dao.business.*;
+import com.doumee.dao.business.model.*;
import com.doumee.dao.web.dto.CommentDTO;
import com.doumee.dao.web.dto.ZanDTO;
import com.doumee.dao.web.dto.activity.ActivityCommentDTO;
import com.doumee.dao.web.dto.activity.ActivityReplyCommentDTO;
+import com.doumee.dao.web.request.CommentApplyRequest;
import com.doumee.service.business.CommentService;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.doumee.service.business.MemberService;
import com.doumee.service.business.ZanService;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import me.chanjar.weixin.common.error.WxErrorException;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
@@ -51,36 +52,82 @@
private CommentJoinMapper commentJoinMapper;
@Autowired
- private MemberService memberService;
+ private MemberMapper memberMapper;
+
+ @Autowired
+ private NoticeMapper noticeMapper;
@Autowired
private ZanService zanService;
@Autowired
private ApplicationEventPublisher applicationEventPublisher;
- @Override
- public Integer create(Comment comment,Integer memberId) {
- LoginUserInfo loginUserInfo = (LoginUserInfo)SecurityUtils.getSubject().getPrincipal();
- Comment target = new Comment();
- target.setCreator(loginUserInfo.getId());
- target.setCreateDate(new Date());
- target.setEditor(loginUserInfo.getId());
- target.setEditDate(new Date());
- target.setRemark(comment.getRemark());
- target.setMemberId(loginUserInfo.getMemberId());
- target.setActivityId(comment.getActivityId());
- target.setContent(comment.getContent());
- target.setAnonymous(comment.getAnonymous());
- if (comment.getReplyId() != null){
- Comment reply = commentMapper.selectById(comment.getReplyId());
- reply = Optional.ofNullable(reply).orElseThrow(() -> new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍥炲鐩爣涓嶅瓨鍦�"));
- target.setReplyId(reply.getId());
- target.setReplyMemberId(reply.getMemberId());
- target.setType(Constants.ONE);
+ @Autowired
+ private MultifileMapper multifileMapper;
+
+ @Autowired
+ private SystemDictDataBiz systemDictDataBiz;
+
+ @Override
+ public Comment apply(CommentApplyRequest comment, Integer memberId) {
+ if (StringUtils.isNotBlank(comment.getContent())) {
+ try {
+ WxMaMsgSecCheckCheckRequest checkRequest = WxMaMsgSecCheckCheckRequest.builder()
+ .version("2")
+ .scene(3)
+ .openid(getMemberOpenId(memberId))
+ .content(comment.getContent())
+ .build();
+ WxMaMsgSecCheckCheckResponse checkResponse = WxMiniConfig.wxMaService.getSecurityService().checkMessage(checkRequest);
+ if (checkResponse.getResult() != null && checkResponse.getResult().getSuggest() != null) {
+ String suggest = checkResponse.getResult().getSuggest();
+ if ("risky".equalsIgnoreCase(suggest)) {
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "璇勮鍐呭鍖呭惈杩濊淇℃伅锛岃淇敼鍚庨噸鏂板彂甯�");
+ }
+ }
+ } catch (WxErrorException e) {
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鍐呭瀹夊叏妫�娴嬪け璐ワ紝璇风◢鍚庨噸璇�");
+ }
}
- if (comment.getCommentId() != null ){
+ Comment target = new Comment();
+ target.setCreateDate(new Date());
+ target.setEditDate(new Date());
+ target.setRemark(comment.getRemark());
+ target.setMemberId(memberId);
+ target.setActivityId(comment.getActivityId());
+ target.setContent(comment.getContent());
+ target.setAnonymous(Constants.ONE);
+ target.setStatus(Constants.ZERO);
+ target.setType(Constants.ZERO);
+
+ if (comment.getReplyId() != null){
+ Comment reply = commentMapper.selectJoinOne(Comment.class,new MPJLambdaWrapper<Comment>()
+ .selectAll(Comment.class)
+ .selectAs(Member::getNickname,Comment::getReplyMemberNikeName)
+ .leftJoin(Member.class,Member::getId,Comment::getMemberId)
+ .eq(Comment::getId,comment.getReplyId())
+ );
+ reply = Optional.ofNullable(reply).orElseThrow(() -> new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍥炲鐩爣涓嶅瓨鍦�"));
+ target.setReplyId(reply.getId());
+ target.setCommentId(Objects.isNull(reply.getCommentId())?reply.getId():reply.getCommentId());
+ target.setType(Constants.ONE);
+ target.setCommentMemberId(reply.getMemberId());
+
+ if(!Constants.equalsInteger(memberId,reply.getMemberId())){
+ Member member = memberMapper.selectById(memberId);
+ //璇勮鍙戦�佺敤鎴锋秷鎭�
+ //鍙戦�佹牳閿�閫氱煡
+ Notice notice = Notice.getNotice(
+ Constants.NoticeType.COMMENT,
+ reply.getMemberId(),
+ reply.getActivityId()
+ );
+ notice.setContent(notice.getContent().replace("{param}",member.getNickname()));
+ noticeMapper.insert(notice);
+ }
+ }else if(comment.getCommentId() != null ){
Comment reply = commentMapper.selectById(comment.getCommentId());
reply = Optional.ofNullable(reply).orElseThrow(() -> new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "涓�绾ц瘎璁虹洰鏍囦笉瀛樺湪"));
target.setCommentId(reply.getCommentId());
@@ -89,15 +136,50 @@
target.setRecIntegral(new BigDecimal("0"));
commentMapper.insert(target);
- IntegralEvent<Comment> integralEvent = new IntegralEvent(this,target, Constants.CoffeeBeanTask.POST_COMMENTS,memberId);
- applicationEventPublisher.publishEvent(integralEvent);
+ String path = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() ;
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(comment.getMultifileList())){
+ String commentFile = path + systemDictDataBiz.queryByCode(Constants.OSS, Constants.COMMENT_FILE).getCode();
+ for (Multifile multifile:comment.getMultifileList()) {
+ multifile.setCreateDate(new Date());
+ multifile.setEditDate(new Date());
+ multifile.setObjId(target.getId());
+ multifile.setObjType(Constants.MultiFile.COMMENT_FILE.getKey());
+ multifile.setFileFullUrl(commentFile + multifile.getFileurl());
+ }
+ multifileMapper.insert(comment.getMultifileList());
+ target.setMultifileList(comment.getMultifileList());
+ }
- return comment.getId();
+ Member member = memberMapper.selectById(memberId);
+ if(Objects.nonNull(member)){
+ target.setNikeName(member.getNickname());
+ if(StringUtils.isNotBlank(member.getImgurl())){
+ String memberFile = path + systemDictDataBiz.queryByCode(Constants.OSS, Constants.MEMBER_FILE).getCode();
+ target.setMemberImgUrl(memberFile + member.getImgurl());
+ }
+ }
+ target.setZanCount(Constants.ZERO);
+ target.setZanStatus(Constants.ZERO);
+ return target;
}
+
+
+
+
@Override
- public void deleteById(Integer id) {
- commentMapper.deleteById(id);
+ public void deleteById(Integer id,Integer memberId) {
+ Comment comment = commentMapper.selectById(id);
+ if(Objects.isNull(comment)){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "璇勮涓嶅瓨鍦�");
+ }
+ if(!Constants.equalsInteger(memberId,comment.getMemberId())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "闈炴偍鐨勮瘎璁烘棤鏉冮檺鍒犻櫎");
+ }
+ commentMapper.update(new UpdateWrapper<Comment>().lambda()
+ .set(Comment::getIsdeleted,Constants.ONE)
+ .eq(Comment::getId,id)
+ );
}
@Override
@@ -149,7 +231,7 @@
QueryWrapper<Comment> wrapper = new QueryWrapper<>(comment);
return commentMapper.selectList(wrapper);
}
-
+
@Override
public PageData<Comment> findPage(PageWrap<Comment> pageWrap) {
IPage<Comment> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
@@ -172,13 +254,13 @@
}
@Override
- public Integer count(Comment comment) {
+ public Long count(Comment comment) {
QueryWrapper<Comment> wrapper = new QueryWrapper<>(comment);
return commentMapper.selectCount(wrapper);
}
@Override
- public Integer count(Date start, Date end, Integer memberId) {
+ public Long count(Date start, Date end, Integer memberId) {
QueryWrapper<Comment> wrapper = new QueryWrapper<>();
wrapper.lambda().eq(Comment::getMemberId,memberId)
@@ -193,13 +275,19 @@
MPJLambdaWrapper<Comment> queryWrapper = new MPJLambdaWrapper<>();
Utils.MP.blankToNull(pageWrap.getModel());
queryWrapper.selectAll(Comment.class);
+ if(Objects.isNull(pageWrap.getModel().getMemberId())){
+ queryWrapper.select(" 0 ",ActivityCommentDTO::getZanStatus);
+ }else{
+ queryWrapper.select(" (select count(1) from zan z where z.OBJ_ID = t.id and z.MEMBER_ID = "+pageWrap.getModel().getMemberId()+" and z.ISDELETED = 0 and z.OBJ_TYPE = 1) ",ActivityCommentDTO::getZanStatus);
+ }
+ queryWrapper.select(" (select count(1) from zan z where z.OBJ_ID = t.id and z.ISDELETED = 0 and z.OBJ_TYPE = 0) ",ActivityCommentDTO::getZanCount);
queryWrapper.selectAs(Member::getNickname,ActivityCommentDTO::getNikeName);
- queryWrapper.selectAs(Member::getImgurl,ActivityCommentDTO::getMemberImgUrl);
queryWrapper.selectAs(Member::getImgurl,ActivityCommentDTO::getMemberImgUrl);
queryWrapper.leftJoin(Member.class,Member::getId,Comment::getMemberId);
queryWrapper.eq(Comment::getType, Constants.ZERO);
queryWrapper.eq(Comment::getStatus, Constants.ZERO);
queryWrapper.eq(Comment::getActivityId,pageWrap.getModel().getActivityId());
+ queryWrapper.orderByAsc(Comment::getId);
IPage<ActivityCommentDTO> result = commentJoinMapper.selectJoinPage(page, ActivityCommentDTO.class, queryWrapper);
if (CollectionUtils.isEmpty(result.getRecords())){
@@ -207,43 +295,81 @@
}
// 鏌ヨ鍚勪釜璇勮 鐨勯鏉″洖澶� 鍜屽洖澶嶆�绘潯鏁�
List<Integer> commentIds = result.getRecords().stream().map(s -> s.getId()).collect(Collectors.toList());
-
MPJLambdaWrapper<Comment> replyWrapper = new MPJLambdaWrapper<>();
Utils.MP.blankToNull(pageWrap.getModel());
replyWrapper.selectAs(Comment::getId,ActivityReplyCommentDTO::getId);
+ replyWrapper.selectAs(Comment::getReplyId,ActivityReplyCommentDTO::getReplyId);
+ replyWrapper.selectAs(Comment::getIsdeleted,ActivityReplyCommentDTO::getIsdeleted);
+ if(Objects.isNull(pageWrap.getModel().getMemberId())){
+ replyWrapper.select(" 0 ",ActivityReplyCommentDTO::getZanStatus);
+ }else{
+ replyWrapper.select(" (select count(1) from zan z where z.OBJ_ID = t.id and z.MEMBER_ID = "+pageWrap.getModel().getMemberId()+" and z.ISDELETED = 0 and z.OBJ_TYPE = 1) ",ActivityReplyCommentDTO::getZanStatus);
+ }
+ replyWrapper.select(" (select count(1) from zan z where z.OBJ_ID = t.id and z.ISDELETED = 0 and z.OBJ_TYPE = 0) ",ActivityReplyCommentDTO::getZanCount);
replyWrapper.selectAs(Comment::getCommentId,ActivityReplyCommentDTO::getCommentId);
replyWrapper.selectAs(Comment::getMemberId,ActivityReplyCommentDTO::getMemberId);
replyWrapper.selectAs(Comment::getContent,ActivityReplyCommentDTO::getContent);
- replyWrapper.selectAs(Member::getNickname,ActivityReplyCommentDTO::getMemberNikeName);
+ replyWrapper.selectAs(Member::getNickname,ActivityReplyCommentDTO::getNikeName);
replyWrapper.selectAs(Member::getImgurl,ActivityReplyCommentDTO::getMemberImgUrl);
replyWrapper.selectCount(Comment::getId,ActivityReplyCommentDTO::getReplyCount);
replyWrapper.selectMin(Comment::getCreateDate,ActivityReplyCommentDTO::getCreateDate);
+ replyWrapper.select("reply.NICKNAME",ActivityReplyCommentDTO::getReplyMemberNikeName);
replyWrapper.leftJoin(Member.class,Member::getId,Comment::getMemberId);
+ replyWrapper.leftJoin("member reply on reply.id = t.REPLY_MEMBER_ID");
replyWrapper.eq(Comment::getType, Constants.ONE);
replyWrapper.eq(Comment::getStatus, Constants.ZERO);
replyWrapper.in(Comment::getCommentId,commentIds);
replyWrapper.groupBy(Comment::getCommentId);
- List<ActivityReplyCommentDTO> activityCommentDTOS = commentJoinMapper.selectJoinList(ActivityReplyCommentDTO.class, queryWrapper);
-
+ List<ActivityReplyCommentDTO> activityCommentDTOS = commentJoinMapper.selectJoinList(ActivityReplyCommentDTO.class, replyWrapper);
List<Integer> integerStream = activityCommentDTOS.stream().map(s -> s.getId()).collect(Collectors.toList());
commentIds.addAll(integerStream);
-
Map<Integer, ZanDTO> count = zanService.count(commentIds);
-
Map<Integer, ActivityReplyCommentDTO> collect = activityCommentDTOS.stream().collect(Collectors.toMap(s -> s.getCommentId(), s -> s));
+ String path = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode();
+ String memberFile = path + systemDictDataBiz.queryByCode(Constants.OSS, Constants.MEMBER_FILE).getCode();
+ String commentFile = path + systemDictDataBiz.queryByCode(Constants.OSS, Constants.COMMENT_FILE).getCode();
+
+ List<Multifile> multifileList = multifileMapper.selectList(new QueryWrapper<Multifile>()
+ .lambda()
+ .eq(Multifile::getIsdeleted,Constants.ZERO)
+ .in(Multifile::getObjId,commentIds)
+ .eq(Multifile::getObjType,Constants.MultiFile.COMMENT_FILE.getKey())
+ .orderByDesc(Multifile::getId)
+ );
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){
+ for (Multifile multifile:multifileList) {
+ multifile.setFileFullUrl(commentFile + multifile.getFileurl());
+ }
+ }
result.getRecords().forEach(s->{
-
+ if(Constants.equalsInteger(s.getIsdeleted(),Constants.ONE)){
+ s.setContent("璇ヨ瘎璁哄凡琚師浣滆�呭垹闄�");
+ }else{
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){
+ s.setMultifileList(multifileList.stream().filter(t -> t.getObjId().equals(s.getId())).collect(Collectors.toList()));
+ }
+ }
+ s.setMemberImgUrl(StringUtils.isNotBlank(s.getMemberImgUrl())?memberFile+s.getMemberImgUrl():null);
ZanDTO object = MapUtils.getObject(count, s.getId());
-
ActivityReplyCommentDTO replyCommentDTO = collect.get(s.getId());
- ZanDTO replyZan = MapUtils.getObject(count, replyCommentDTO.getId());
- replyCommentDTO.setZanCount(replyZan != null ? replyZan.getCount() : 0);
- s.setActivityReplyCommentDTO(replyCommentDTO);
- s.setReplyCount(replyCommentDTO.getReplyCount());
+ if(Objects.nonNull(replyCommentDTO)){
+ ZanDTO replyZan = MapUtils.getObject(count, replyCommentDTO.getId());
+ replyCommentDTO.setZanCount(replyZan != null ? replyZan.getCount() : 0);
+ if(Constants.equalsInteger(replyCommentDTO.getIsdeleted(),Constants.ONE)){
+ replyCommentDTO.setContent("璇ヨ瘎璁哄凡琚師浣滆�呭垹闄�");
+ }else{
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){
+ replyCommentDTO.setMultifileList(multifileList.stream().filter(t -> t.getObjId().equals(replyCommentDTO.getId())).collect(Collectors.toList()));
+ }
+ }
+ replyCommentDTO.setMemberImgUrl(StringUtils.isNotBlank(replyCommentDTO.getMemberImgUrl())?memberFile+replyCommentDTO.getMemberImgUrl():null);
+ s.setActivityReplyCommentDTO(replyCommentDTO);
+ s.setReplyCount(replyCommentDTO.getReplyCount());
+ }
s.setZanCount(object != null ? object.getCount() : 0);
- });
+ });
return PageData.from(result);
}
@@ -253,30 +379,62 @@
MPJLambdaWrapper<Comment> queryWrapper = new MPJLambdaWrapper<>();
Utils.MP.blankToNull(pageWrap.getModel());
queryWrapper.selectAll(Comment.class);
- queryWrapper.selectAs(Member::getNickname,ActivityReplyCommentDTO::getMemberNikeName);
+ queryWrapper.selectAs(Member::getNickname,ActivityReplyCommentDTO::getNikeName);
queryWrapper.selectAs(Member::getImgurl,ActivityReplyCommentDTO::getMemberImgUrl);
+ if(Objects.isNull(pageWrap.getModel().getMemberId())){
+ queryWrapper.select(" 0 ",ActivityReplyCommentDTO::getZanStatus);
+ }else{
+ queryWrapper.select(" (select count(1) from zan z where z.OBJ_ID = t.id and z.MEMBER_ID = "+pageWrap.getModel().getMemberId()+" and z.ISDELETED = 0 and z.OBJ_TYPE = 1) ",ActivityReplyCommentDTO::getZanStatus);
+ }
+ queryWrapper.select(" (select count(1) from zan z where z.OBJ_ID = t.id and z.ISDELETED = 0 and z.OBJ_TYPE = 0) ",ActivityReplyCommentDTO::getZanCount);
queryWrapper.select("reply.NICKNAME as replyMemberNikeName");
queryWrapper.leftJoin(Member.class,Member::getId,Comment::getMemberId);
- queryWrapper.leftJoin("member reply on reply.id = t.REPLY_MEMBER_ID");
+ queryWrapper.leftJoin("member reply on reply.id = t.COMMENT_MEMBER_ID");
queryWrapper.eq(Comment::getType, Constants.ONE);
queryWrapper.eq(Comment::getStatus, Constants.ZERO);
queryWrapper.eq(Comment::getCommentId,pageWrap.getModel().getCommentId());
+ queryWrapper.orderByAsc(Comment::getId);
IPage<ActivityReplyCommentDTO> result = commentJoinMapper.selectJoinPage(page, ActivityReplyCommentDTO.class, queryWrapper);
if (CollectionUtils.isEmpty(result.getRecords())){
return PageData.from(result);
}
-
+ String path = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode();
+ String memberFile = path + systemDictDataBiz.queryByCode(Constants.OSS, Constants.MEMBER_FILE).getCode();
+ String commentFile = path + systemDictDataBiz.queryByCode(Constants.OSS, Constants.COMMENT_FILE).getCode();
+ List<Multifile> multifileList = multifileMapper.selectList(new QueryWrapper<Multifile>()
+ .lambda()
+ .eq(Multifile::getIsdeleted,Constants.ZERO)
+ .eq(Multifile::getObjId,pageWrap.getModel().getCommentId())
+ .eq(Multifile::getObjType,Constants.MultiFile.COMMENT_FILE.getKey())
+ .orderByDesc(Multifile::getId)
+ );
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){
+ for (Multifile multifile:multifileList) {
+ multifile.setFileFullUrl(commentFile + multifile.getFileurl());
+ }
+ }
List<Integer> integerStream = result.getRecords().stream().map(s -> s.getId()).collect(Collectors.toList());
-
Map<Integer, ZanDTO> count = zanService.count(integerStream);
result.getRecords().forEach(s->{
+ if(Constants.equalsInteger(s.getIsdeleted(),Constants.ONE)){
+ s.setContent("璇ヨ瘎璁哄凡琚師浣滆�呭垹闄�");
+ }else{
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){
+ s.setMultifileList(multifileList.stream().filter(t -> t.getObjId().equals(s.getId())).collect(Collectors.toList()));
+ }
+ }
+ s.setMemberImgUrl(StringUtils.isNotBlank(s.getMemberImgUrl())?memberFile+s.getMemberImgUrl():null);
ZanDTO replyZan = MapUtils.getObject(count, s.getId());
s.setZanCount(replyZan != null ? replyZan.getCount() : 0);
if (pageWrap.getModel().getCommentId().equals(s.getReplyId())){
s.setReplyMemberNikeName(null);
}
});
-
return PageData.from(result);
}
+
+ private String getMemberOpenId(Integer memberId) {
+ Member member = memberMapper.selectById(memberId);
+ return member != null ? member.getOpenId() : null;
+ }
}
--
Gitblit v1.9.3