提交修改

This commit is contained in:
quyixiao 2025-08-25 18:36:46 +08:00
parent 02a31b224f
commit 5644fd8fe1
12 changed files with 292 additions and 3 deletions

View File

@ -67,4 +67,22 @@ public interface VvCommentDao extends BaseMapper<VvCommentEntity> {
@IF @OrderBy(VvCommentEntity.create_timestamp) String createTimestampSort);
@OrderBy(VvCommentEntity.id_)
List<VvCommentEntity> selectNotLogin(IPage page,
@IF Long productId,
@IF String status,
@IF @OrderBy(VvCommentEntity.create_timestamp) String createTimestampSort);
@OrderBy(VvCommentEntity.id_)
List<VvCommentEntity> selectLogin(IPage page,
@IF Long productId,
@LBracket Long buyerId,
@OR @RBracket String status,
@IF @OrderBy(VvCommentEntity.create_timestamp) String createTimestampSort);
}

View File

@ -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<VvCommentDetailEntity> {
*/
@OrderBy(VvCommentDetailEntity.id_)
List<VvCommentDetailEntity> selectVvCommentDetailByCommentId(Long commentId);
@OrderBy(value={VvCommentDetailEntity.id_} , type={OrderType.ASC})
List<VvCommentDetailEntity> selectVvCommentDetailByProductId(Long productId);
}

View File

@ -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 +
"}";
}
}

View File

@ -49,7 +49,7 @@ public class MysqlMain_update {
List<TablesBean> list = new ArrayList<TablesBean>();
String a = "vv_comment";
String a = "vv_comment_detail";
for (String s : a.split(",")) {
list.add(new TablesBean(s));
}

View File

@ -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<Boolean, String> tuple = TestParseUtils.testSql(VvBuyerAddressDao::updateVvBuyerAddressStatusById).getData();
Tuple2<Boolean, String> tuple = TestParseUtils.testSql(VvCommentDao::selectLogin).getData();

View File

@ -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<AppCommentDetail> commentDetailList;
}

View File

@ -0,0 +1,4 @@
package com.heyu.api.alibaba.request.vv;
public class AppCommentDelete {
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -0,0 +1,4 @@
package com.heyu.api.alibaba.request.vv;
public class AppCommentUseful {
}

View File

@ -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);
}
}

View File

@ -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<VvCommentEntity> vvCommentEntities = pageUtils.getRows();
List<VvCommentDTO> vvCommentDTOS = new ArrayList<>();
List<VvCommentDetailEntity> vvCommentDetailEntities = vvCommentDetailDao.selectVvCommentDetailByProductId(appCommentRequest.getProductId());
Map<Long, List<VvCommentDetailEntity>> vvDetailMap = new HashMap<>();
for (VvCommentDetailEntity vvCommentDetailEntity : vvCommentDetailEntities) {
List<VvCommentDetailEntity> 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<VvCommentDetailEntity> 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();
}
}