From f3c2f16009a3afe438d7118e64f7daed48807e61 Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Mon, 25 Aug 2025 17:34:49 +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 | 17 ++- .../api/data/dao/vv/VvCommentDetailDao.java | 13 +++ .../heyu/api/data/dto/vv/VvCommentDTO.java | 51 +++++++++ .../api/data/entity/vv/VvCommentEntity.java | 52 ++++++--- .../request/mm/enums/CommentStatusEnums.java | 37 +++++++ .../request/mm/order/VVCommentRequest.java | 50 +++++++++ .../api/controller/mm/CommentController.java | 103 ++++++++++++++++++ 7 files changed, 305 insertions(+), 18 deletions(-) create mode 100644 api-mapper/src/main/java/com/heyu/api/data/dto/vv/VvCommentDTO.java create mode 100644 api-third/src/main/java/com/heyu/api/alibaba/request/mm/enums/CommentStatusEnums.java create mode 100644 api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VVCommentRequest.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/mm/CommentController.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 65b4a09..695be8a 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 @@ -7,10 +7,17 @@ package com.heyu.api.data.dao.vv; * @author quyixiao * @since 2025-08-25 */ +import com.baomidou.mybatisplus.core.metadata.IPage; import com.heyu.api.data.entity.vv.VvCommentEntity; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.lz.mybatis.plugin.annotations.IF; +import com.lz.mybatis.plugin.annotations.LIKE; +import com.lz.mybatis.plugin.annotations.OrderBy; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; + +import java.util.List; + @Mapper public interface VvCommentDao extends BaseMapper { @@ -30,7 +37,15 @@ public interface VvCommentDao extends BaseMapper { int updateCoverVvCommentById(VvCommentEntity vvComment); - int deleteVvCommentById(@Param("id")Long id); + int deleteVvCommentById(@Param("id") Long id); + @OrderBy(VvCommentEntity.id_) + List selectVvCommentByCondition(IPage page, + @IF Long productId, + @IF @LIKE Long productName, + @IF Long skuId, + @IF Long tradeOrderId, + @IF 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 6d76b67..1e42b22 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 @@ -9,8 +9,13 @@ 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.Realy; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; + +import java.util.List; + @Mapper public interface VvCommentDetailDao extends BaseMapper { @@ -30,7 +35,15 @@ public interface VvCommentDetailDao extends BaseMapper { int updateCoverVvCommentDetailById(VvCommentDetailEntity vvCommentDetail); + @Realy int deleteVvCommentDetailById(@Param("id")Long id); + /** + * + * @param commentId + * @return + */ + @OrderBy(VvCommentDetailEntity.id_) + List selectVvCommentDetailByCommentId(Long commentId); } \ No newline at end of file diff --git a/api-mapper/src/main/java/com/heyu/api/data/dto/vv/VvCommentDTO.java b/api-mapper/src/main/java/com/heyu/api/data/dto/vv/VvCommentDTO.java new file mode 100644 index 0000000..161e83f --- /dev/null +++ b/api-mapper/src/main/java/com/heyu/api/data/dto/vv/VvCommentDTO.java @@ -0,0 +1,51 @@ +package com.heyu.api.data.dto.vv; + +import com.alibaba.fastjson.JSON; +import com.heyu.api.data.entity.vv.VvCommentDetailEntity; +import com.heyu.api.data.entity.vv.VvCommentEntity; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +@Data +public class VvCommentDTO extends VvCommentEntity { + + private List vvCommentDetailEntities; + + + public static void main(String[] args) { + VvCommentDTO vvCommentDTO = new VvCommentDTO(); + + vvCommentDTO.setContent("testn"); + + vvCommentDTO.setTradeOrderId(10L); + + vvCommentDTO.setSkuId(20L); + + vvCommentDTO.setProductId(4L); + + vvCommentDTO.setProductTitle("test"); + + vvCommentDTO.setSkuInfo("3w893"); + + vvCommentDTO.setStatus("wait_approval"); + + vvCommentDTO.setCreateTimestamp(System.currentTimeMillis()); + + List vvCommentDetailEntities = new ArrayList<>(); + + + + VvCommentDetailEntity vvCommentDetailEntity = new VvCommentDetailEntity(); + + vvCommentDetailEntity.setCommentUrl("ewieow"); + vvCommentDetailEntity.setType("image"); + + vvCommentDetailEntities.add(vvCommentDetailEntity); + + vvCommentDTO.setVvCommentDetailEntities(vvCommentDetailEntities); + + System.out.println(JSON.toJSONString(vvCommentDTO)); + } +} diff --git a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvCommentEntity.java b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvCommentEntity.java index b6f3f5c..ad954a1 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvCommentEntity.java +++ b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvCommentEntity.java @@ -1,12 +1,11 @@ package com.heyu.api.data.entity.vv; + import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; -import com.lz.mybatis.plugin.annotations.AS; -import java.math.BigDecimal; -import java.util.Date;import java.util.Date; +import java.util.Date; /** *评论表 * @author quyixiao @@ -21,17 +20,18 @@ private static final long serialVersionUID = 1L; public final static String CLASS_NAME ="com.heyu.api.data.entity.vv.VvCommentEntity:"; public final static String all = CLASS_NAME + "*"; - public final static String id_ = CLASS_NAME + "id"; // - public final static String is_delete = CLASS_NAME + "is_delete"; // 是否删除:0 否 1 删除 - public final static String create_time = CLASS_NAME + "create_time"; // 创建时间 - public final static String modify_time = CLASS_NAME + "modify_time"; // 修改时间 - public final static String content_ = CLASS_NAME + "content"; // 评论的内容 - public final static String trade_order_id = CLASS_NAME + "trade_order_id"; // 订单id - public final static String sku_id = CLASS_NAME + "sku_id"; // sku_id - public final static String product_id = CLASS_NAME + "product_id"; // 商品id - public final static String product_title = CLASS_NAME + "product_title"; // 商品标题 - public final static String sku_info = CLASS_NAME + "sku_info"; // sku信息 - public final static String status_ = CLASS_NAME + "status"; // 待审批 wait_approval 待审批, approval_pass,审批通过 , approval_not_pass 审批未通过 + public final static String id_ = CLASS_NAME + "id"; // + public final static String is_delete = CLASS_NAME + "is_delete"; // 是否删除:0 否 1 删除 + public final static String create_time = CLASS_NAME + "create_time"; // 创建时间 + public final static String modify_time = CLASS_NAME + "modify_time"; // 修改时间 + public final static String content_ = CLASS_NAME + "content"; // 评论的内容 + public final static String trade_order_id = CLASS_NAME + "trade_order_id"; // 订单id + public final static String sku_id = CLASS_NAME + "sku_id"; // sku_id + public final static String product_id = CLASS_NAME + "product_id"; // 商品id + public final static String product_title = CLASS_NAME + "product_title"; // 商品标题 + public final static String sku_info = CLASS_NAME + "sku_info"; // sku信息 + public final static String status_ = CLASS_NAME + "status"; // 待审批 wait_approval 待审批, approval_pass,审批通过 , approval_not_pass 审批未通过,如果审批未通过,即自己可见,但别人不可见 。 + public final static String create_timestamp = CLASS_NAME + "create_timestamp"; // 创建时间 // @TableId(value = "id", type = IdType.AUTO) private Long id; @@ -53,8 +53,10 @@ private static final long serialVersionUID = 1L; private String productTitle; //sku信息 private String skuInfo; - //待审批 wait_approval 待审批, approval_pass,审批通过 , approval_not_pass 审批未通过 + //待审批 wait_approval 待审批, approval_pass,审批通过 , approval_not_pass 审批未通过,如果审批未通过,即自己可见,但别人不可见 。 private String status; + //创建时间 + private Long createTimestamp; /** * * @return @@ -206,20 +208,35 @@ private static final long serialVersionUID = 1L; } /** - * 待审批 wait_approval 待审批, approval_pass,审批通过 , approval_not_pass 审批未通过 + * 待审批 wait_approval 待审批, approval_pass,审批通过 , approval_not_pass 审批未通过,如果审批未通过,即自己可见,但别人不可见 。 * @return */ public String getStatus() { return status; } /** - * 待审批 wait_approval 待审批, approval_pass,审批通过 , approval_not_pass 审批未通过 + * 待审批 wait_approval 待审批, approval_pass,审批通过 , approval_not_pass 审批未通过,如果审批未通过,即自己可见,但别人不可见 。 * @param status */ public void setStatus(String status) { this.status = status; } + /** + * 创建时间 + * @return + */ + public Long getCreateTimestamp() { + return createTimestamp; + } + /** + * 创建时间 + * @param createTimestamp + */ + public void setCreateTimestamp(Long createTimestamp) { + this.createTimestamp = createTimestamp; + } + @Override public String toString() { return "VvCommentEntity{" + @@ -234,6 +251,7 @@ private static final long serialVersionUID = 1L; ",productTitle=" + productTitle + ",skuInfo=" + skuInfo + ",status=" + status + + ",createTimestamp=" + createTimestamp + "}"; } } \ No newline at end of file diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/enums/CommentStatusEnums.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/enums/CommentStatusEnums.java new file mode 100644 index 0000000..8e3e95a --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/enums/CommentStatusEnums.java @@ -0,0 +1,37 @@ +package com.heyu.api.alibaba.request.mm.enums; + +public enum CommentStatusEnums { + // 状态 待审批 wait_approval 待审批, approval_pass,审批通过 , approval_not_pass 审批未通过,如果审批未通过,即自己可见,但别人不可见 + + + approval_not_pass("approval_not_pass","审批未通过,如果审批未通过,即自己可见,但别人不可见"), + approval_pass("approval_pass","审批通过"), + wait_approval("wait_approval","待审批"), + + ; + + private String status; + + private String desc; + + CommentStatusEnums(String status, String desc) { + this.status = status; + this.desc = desc; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } +} diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VVCommentRequest.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VVCommentRequest.java new file mode 100644 index 0000000..46ee155 --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VVCommentRequest.java @@ -0,0 +1,50 @@ +package com.heyu.api.alibaba.request.mm.order; + + +import lombok.Data; + +@Data +public class VVCommentRequest { + + + + private Integer pageNum = 1 ; + + + private Integer pageSize = 10 ; + + + /*** + * 订单id + */ + private Long productId; + + /*** + * 订单id + */ + private Long tradeOrderId; + + /*** + * skuid + */ + private Long skuId; + + + /*** + * 订单id + */ + private Long productName; + + /*** + * 状态 待审批 wait_approval 待审批, approval_pass,审批通过 , approval_not_pass 审批未通过,如果审批未通过,即自己可见,但别人不可见 + */ + private String status; + + /*** + * 排序 + */ + private String createTimestampSort; + +} + + 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 new file mode 100644 index 0000000..1053f21 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/CommentController.java @@ -0,0 +1,103 @@ +package com.heyu.api.controller.mm; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.heyu.api.alibaba.request.mm.order.VVCommentRequest; +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.apache.commons.collections.CollectionUtils; +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.List; + +@Slf4j +@RestController +@RequestMapping("/mm/comment") +public class CommentController { + + + @Autowired + private VvCommentDao vvCommentDao; + + @Autowired + private VvCommentDetailDao vvCommentDetailDao; + + /*** + * 列表 + */ + @RequestMapping("/list") + public R list(@RequestBody VVCommentRequest vvCommentRequest) { + PPageUtils pageUtils = PPageUtils.startPage(vvCommentRequest.getPageNum(), vvCommentRequest.getPageSize()) + .doSelect(new ISelect() { + @Override + public List doSelect(IPage page) { + return vvCommentDao.selectVvCommentByCondition(page, + vvCommentRequest.getProductId(), + vvCommentRequest.getProductName(), + vvCommentRequest.getSkuId(), + vvCommentRequest.getTradeOrderId(), + vvCommentRequest.getStatus(), + vvCommentRequest.getCreateTimestampSort() + ); + } + }); + List vvCommentEntities = pageUtils.getRows(); + List commentDTOS = new ArrayList<>(); + for (VvCommentEntity vvCommentEntity : vvCommentEntities) { + VvCommentDTO vvCommentDTO = new VvCommentDTO(); + BeanUtils.copyProperties(vvCommentEntity, vvCommentDTO); + List vvCommentDetailEntities = vvCommentDetailDao.selectVvCommentDetailByCommentId(vvCommentDTO.getId()); + vvCommentDTO.setVvCommentDetailEntities(vvCommentDetailEntities); + commentDTOS.add(vvCommentDTO); + } + pageUtils.setRows(commentDTOS); + + return R.ok().setData(pageUtils); + } + + /*** + * 列表 + */ + @RequestMapping("/insertOrUpdate") + public R insert(@RequestBody VvCommentDTO vvCommentDTO) { + Long commentId = vvCommentDTO.getId(); + VvCommentEntity vvCommentEntity = new VvCommentEntity(); + BeanUtils.copyProperties(vvCommentDTO, vvCommentEntity); + vvCommentDao.insertOrUpdateVvComment(vvCommentEntity); + if (commentId != null) { + List vvCommentDetailDB = vvCommentDetailDao.selectVvCommentDetailByCommentId(commentId); + if (vvCommentDTO.getVvCommentDetailEntities() != null) { + for (VvCommentDetailEntity commentDetailEntity : vvCommentDetailDB) { + boolean flag = true; + for (VvCommentDetailEntity vvCommentDetailEntity : vvCommentDTO.getVvCommentDetailEntities()) { + if (commentDetailEntity.getId().equals(vvCommentDetailEntity.getId())) { + flag = false; + } + } + if (flag) { + vvCommentDetailDao.deleteVvCommentDetailById(commentDetailEntity.getId()); + } + } + } + } + if (CollectionUtils.isNotEmpty(vvCommentDTO.getVvCommentDetailEntities())) { + for (VvCommentDetailEntity vvCommentDetailEntity : vvCommentDTO.getVvCommentDetailEntities()) { + vvCommentDetailEntity.setCommentId(vvCommentEntity.getId()); + vvCommentDetailDao.insertOrUpdateVvCommentDetail(vvCommentDetailEntity); + } + } + return R.ok(); + } +}