From 5644fd8fe1a9acc38d849460d16be7dc259506b4 Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Mon, 25 Aug 2025 18:36:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../heyu/api/data/dao/vv/VvCommentDao.java | 18 +++ .../api/data/dao/vv/VvCommentDetailDao.java | 7 + .../data/entity/vv/VvCommentDetailEntity.java | 19 +++ .../java/com/test/xxx/MysqlMain_update.java | 2 +- .../com/test/xxx/mysql/SqlParseUtilsTest.java | 4 +- .../api/alibaba/request/vv/AppCommentAdd.java | 46 ++++++ .../alibaba/request/vv/AppCommentDelete.java | 4 + .../alibaba/request/vv/AppCommentDetail.java | 22 +++ .../alibaba/request/vv/AppCommentRequest.java | 30 ++++ .../alibaba/request/vv/AppCommentUseful.java | 4 + .../api/controller/mm/CommentController.java | 1 + .../controller/vv/AppCommentController.java | 138 ++++++++++++++++++ 12 files changed, 292 insertions(+), 3 deletions(-) create mode 100644 api-third/src/main/java/com/heyu/api/alibaba/request/vv/AppCommentAdd.java create mode 100644 api-third/src/main/java/com/heyu/api/alibaba/request/vv/AppCommentDelete.java create mode 100644 api-third/src/main/java/com/heyu/api/alibaba/request/vv/AppCommentDetail.java create mode 100644 api-third/src/main/java/com/heyu/api/alibaba/request/vv/AppCommentRequest.java create mode 100644 api-third/src/main/java/com/heyu/api/alibaba/request/vv/AppCommentUseful.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppCommentController.java diff --git a/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvCommentDao.java b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvCommentDao.java index 94ae9bb..f569da8 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvCommentDao.java +++ b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvCommentDao.java @@ -67,4 +67,22 @@ public interface VvCommentDao extends BaseMapper { @IF @OrderBy(VvCommentEntity.create_timestamp) String createTimestampSort); + + + @OrderBy(VvCommentEntity.id_) + List selectNotLogin(IPage page, + @IF Long productId, + @IF String status, + @IF @OrderBy(VvCommentEntity.create_timestamp) String createTimestampSort); + + + + + + @OrderBy(VvCommentEntity.id_) + List selectLogin(IPage page, + @IF Long productId, + @LBracket Long buyerId, + @OR @RBracket String status, + @IF @OrderBy(VvCommentEntity.create_timestamp) String createTimestampSort); } \ No newline at end of file diff --git a/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvCommentDetailDao.java b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvCommentDetailDao.java index 1e42b22..42c5ddd 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvCommentDetailDao.java +++ b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvCommentDetailDao.java @@ -10,6 +10,7 @@ package com.heyu.api.data.dao.vv; import com.heyu.api.data.entity.vv.VvCommentDetailEntity; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.lz.mybatis.plugin.annotations.OrderBy; +import com.lz.mybatis.plugin.annotations.OrderType; import com.lz.mybatis.plugin.annotations.Realy; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -46,4 +47,10 @@ public interface VvCommentDetailDao extends BaseMapper { */ @OrderBy(VvCommentDetailEntity.id_) List selectVvCommentDetailByCommentId(Long commentId); + + + + + @OrderBy(value={VvCommentDetailEntity.id_} , type={OrderType.ASC}) + List selectVvCommentDetailByProductId(Long productId); } \ No newline at end of file diff --git a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvCommentDetailEntity.java b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvCommentDetailEntity.java index 234b623..ae9d5ba 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvCommentDetailEntity.java +++ b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvCommentDetailEntity.java @@ -28,6 +28,7 @@ private static final long serialVersionUID = 1L; public final static String comment_url = CLASS_NAME + "comment_url"; // 评论url public final static String comment_id = CLASS_NAME + "comment_id"; // 评论id public final static String type_ = CLASS_NAME + "type"; // image or video + public final static String product_id = CLASS_NAME + "product_id"; // 商品id // @TableId(value = "id", type = IdType.AUTO) private Long id; @@ -43,6 +44,8 @@ private static final long serialVersionUID = 1L; private Long commentId; //image or video private String type; + //商品id + private Long productId; /** * * @return @@ -148,6 +151,21 @@ private static final long serialVersionUID = 1L; this.type = type; } + /** + * 商品id + * @return + */ + public Long getProductId() { + return productId; + } + /** + * 商品id + * @param productId + */ + public void setProductId(Long productId) { + this.productId = productId; + } + @Override public String toString() { return "VvCommentDetailEntity{" + @@ -158,6 +176,7 @@ private static final long serialVersionUID = 1L; ",commentUrl=" + commentUrl + ",commentId=" + commentId + ",type=" + type + + ",productId=" + productId + "}"; } } \ No newline at end of file diff --git a/api-mapper/src/test/java/com/test/xxx/MysqlMain_update.java b/api-mapper/src/test/java/com/test/xxx/MysqlMain_update.java index b194512..07bebdf 100644 --- a/api-mapper/src/test/java/com/test/xxx/MysqlMain_update.java +++ b/api-mapper/src/test/java/com/test/xxx/MysqlMain_update.java @@ -49,7 +49,7 @@ public class MysqlMain_update { List list = new ArrayList(); - String a = "vv_comment"; + String a = "vv_comment_detail"; for (String s : a.split(",")) { list.add(new TablesBean(s)); } diff --git a/api-mapper/src/test/java/com/test/xxx/mysql/SqlParseUtilsTest.java b/api-mapper/src/test/java/com/test/xxx/mysql/SqlParseUtilsTest.java index 8d539e5..6fa5289 100644 --- a/api-mapper/src/test/java/com/test/xxx/mysql/SqlParseUtilsTest.java +++ b/api-mapper/src/test/java/com/test/xxx/mysql/SqlParseUtilsTest.java @@ -1,6 +1,6 @@ package com.test.xxx.mysql; -import com.heyu.api.data.dao.vv.VvBuyerAddressDao; +import com.heyu.api.data.dao.vv.VvCommentDao; import com.lz.mybatis.plugin.utils.TestParseUtils; import com.lz.mybatis.plugin.utils.t.Tuple2; import org.junit.Test; @@ -12,7 +12,7 @@ SqlParseUtilsTest { public void test1() { - Tuple2 tuple = TestParseUtils.testSql(VvBuyerAddressDao::updateVvBuyerAddressStatusById).getData(); + Tuple2 tuple = TestParseUtils.testSql(VvCommentDao::selectLogin).getData(); diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/vv/AppCommentAdd.java b/api-third/src/main/java/com/heyu/api/alibaba/request/vv/AppCommentAdd.java new file mode 100644 index 0000000..05257f9 --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/vv/AppCommentAdd.java @@ -0,0 +1,46 @@ +package com.heyu.api.alibaba.request.vv; + + +import lombok.Data; + +import java.util.List; + +@Data +public class AppCommentAdd { + + /*** + * sku id + */ + private Long skuId; + + + //买家id + private Long buyerId; + + /*** + * 订单id + */ + private Long tradeOrderId; + + + //商品评论的内容 + private String productComment; + + + //服务评论内容 + private String serviceComment; + + //描述相符 + private Integer descMatch; + //卖家服务 + private Integer sellerService; + //物流服务 + private Integer logisticsService; + + /*** + * 评论具体的值 + */ + private List commentDetailList; + + +} diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/vv/AppCommentDelete.java b/api-third/src/main/java/com/heyu/api/alibaba/request/vv/AppCommentDelete.java new file mode 100644 index 0000000..bc0ae98 --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/vv/AppCommentDelete.java @@ -0,0 +1,4 @@ +package com.heyu.api.alibaba.request.vv; + +public class AppCommentDelete { +} diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/vv/AppCommentDetail.java b/api-third/src/main/java/com/heyu/api/alibaba/request/vv/AppCommentDetail.java new file mode 100644 index 0000000..98c1dd2 --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/vv/AppCommentDetail.java @@ -0,0 +1,22 @@ +package com.heyu.api.alibaba.request.vv; + + +import lombok.Data; + +@Data +public class AppCommentDetail { + + + /*** + * image or video + */ + private String type; + + + /*** + * 具体的值 , video 的具体值 + */ + private String commentUrl; + + +} diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/vv/AppCommentRequest.java b/api-third/src/main/java/com/heyu/api/alibaba/request/vv/AppCommentRequest.java new file mode 100644 index 0000000..e30c705 --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/vv/AppCommentRequest.java @@ -0,0 +1,30 @@ +package com.heyu.api.alibaba.request.vv; + + +import lombok.Data; + +@Data +public class AppCommentRequest { + + private int pageNum = 1; + + + private int pageSize = 10; + + /*** + * 订单id + */ + private Long productId; + + + + + //买家id + private Long buyerId; + + /*** + * 排序 + */ + private String createTimestampSort; + +} diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/vv/AppCommentUseful.java b/api-third/src/main/java/com/heyu/api/alibaba/request/vv/AppCommentUseful.java new file mode 100644 index 0000000..a2d4aa0 --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/vv/AppCommentUseful.java @@ -0,0 +1,4 @@ +package com.heyu.api.alibaba.request.vv; + +public class AppCommentUseful { +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/CommentController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/CommentController.java index 3913972..ec75ff6 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/CommentController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/CommentController.java @@ -109,6 +109,7 @@ public class CommentController { if (CollectionUtils.isNotEmpty(vvCommentDTO.getVvCommentDetailEntities())) { for (VvCommentDetailEntity vvCommentDetailEntity : vvCommentDTO.getVvCommentDetailEntities()) { vvCommentDetailEntity.setCommentId(vvCommentEntity.getId()); + vvCommentDetailEntity.setProductId(vvCommentEntity.getProductId()); vvCommentDetailDao.insertOrUpdateVvCommentDetail(vvCommentDetailEntity); } } diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppCommentController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppCommentController.java new file mode 100644 index 0000000..6257fdc --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppCommentController.java @@ -0,0 +1,138 @@ +package com.heyu.api.controller.vv; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.heyu.api.alibaba.request.mm.enums.CommentStatusEnums; +import com.heyu.api.alibaba.request.vv.AppCommentAdd; +import com.heyu.api.alibaba.request.vv.AppCommentDelete; +import com.heyu.api.alibaba.request.vv.AppCommentRequest; +import com.heyu.api.alibaba.request.vv.AppCommentUseful; +import com.heyu.api.data.dao.vv.VvCommentDao; +import com.heyu.api.data.dao.vv.VvCommentDetailDao; +import com.heyu.api.data.dto.vv.VvCommentDTO; +import com.heyu.api.data.entity.vv.VvCommentDetailEntity; +import com.heyu.api.data.entity.vv.VvCommentEntity; +import com.heyu.api.data.utils.R; +import com.heyu.api.utils.ISelect; +import com.heyu.api.utils.PPageUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Slf4j +@RestController +@RequestMapping("/app/comment") +public class AppCommentController { + + @Autowired + private VvCommentDao vvCommentDao; + + @Autowired + private VvCommentDetailDao vvCommentDetailDao; + + /*** + * 列表 + */ + @RequestMapping("/page/list") + public R list(@RequestBody AppCommentRequest appCommentRequest) { + + PPageUtils pageUtils = null; + + // /*** + // * 状态 待审批 wait_approval 待审批, approval_pass,审批通过 , approval_not_pass 审批未通过,如果审批未通过,即自己可见,但别人不可见 + // */ + // private String status; + + if (appCommentRequest.getBuyerId() != null) { + pageUtils = PPageUtils.startPage(appCommentRequest.getPageNum(), appCommentRequest.getPageSize()) + .doSelect(new ISelect() { + @Override + public List doSelect(IPage page) { + return vvCommentDao.selectLogin(page, + appCommentRequest.getProductId(), + appCommentRequest.getBuyerId(), + CommentStatusEnums.approval_pass.getStatus(), + appCommentRequest.getCreateTimestampSort() + ); + } + }); + } else { + pageUtils = PPageUtils.startPage(appCommentRequest.getPageNum(), appCommentRequest.getPageSize()) + .doSelect(new ISelect() { + @Override + public List doSelect(IPage page) { + return vvCommentDao.selectNotLogin(page, + appCommentRequest.getProductId(), + CommentStatusEnums.approval_pass.getStatus(), + appCommentRequest.getCreateTimestampSort() + ); + } + }); + } + List vvCommentEntities = pageUtils.getRows(); + + List vvCommentDTOS = new ArrayList<>(); + + List vvCommentDetailEntities = vvCommentDetailDao.selectVvCommentDetailByProductId(appCommentRequest.getProductId()); + Map> vvDetailMap = new HashMap<>(); + for (VvCommentDetailEntity vvCommentDetailEntity : vvCommentDetailEntities) { + + List commentDetailEntities = vvDetailMap.get(vvCommentDetailEntity.getCommentId()); + if (commentDetailEntities == null) { + commentDetailEntities = new ArrayList<>(); + } + commentDetailEntities.add(vvCommentDetailEntity); + vvDetailMap.put(vvCommentDetailEntity.getCommentId(), commentDetailEntities); + + } + for (VvCommentEntity vvCommentEntity : vvCommentEntities) { + + VvCommentDTO vvCommentDTO = new VvCommentDTO(); + BeanUtils.copyProperties(vvCommentEntity, vvCommentDTO); + + List list = vvDetailMap.get(vvCommentEntity.getId()); + vvCommentDTO.setVvCommentDetailEntities(list); + vvCommentDTOS.add(vvCommentDTO); + } + + + return R.ok().setData(vvCommentDTOS); + } + + /*** + * + */ + @RequestMapping("/add") + public R add(@RequestBody AppCommentAdd appCommentRequest) { + + return R.ok(); + } + + /*** + * + */ + @RequestMapping("/useful") + public R useful(@RequestBody AppCommentUseful appCommentRequest) { + + return R.ok(); + } + + /*** + * 删除 + */ + @RequestMapping("/delete") + public R list(@RequestBody AppCommentDelete appCommentRequest) { + + return R.ok(); + } + + +}