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