diff --git a/ruoyi-mall-api/src/main/java/org/dromara/web/controller/ApiProdController.java b/ruoyi-mall-api/src/main/java/org/dromara/web/controller/ApiProdController.java index 2585b03..bdd2e69 100644 --- a/ruoyi-mall-api/src/main/java/org/dromara/web/controller/ApiProdController.java +++ b/ruoyi-mall-api/src/main/java/org/dromara/web/controller/ApiProdController.java @@ -263,6 +263,12 @@ public class ApiProdController { return ServerResponseEntity.success(prodService.getSearchProdPageByProdName(pageQuery, categoryId, prodName, envLevel, fireLevel, trialScenario,floor, sort, orderBy)); } + @GetMapping("/prodCommPage") + @Operation(summary = "商品评论列表", description = "查询商品评论列表") + public ServerResponseEntity> getMyWithdrawList(TzProdCommBo bo, PageQuery pageQuery) { + return ServerResponseEntity.success(prodCommService.selectPageList(bo, pageQuery)); + } + @PostMapping("/prodCommByProdId") @Operation(summary = "商品评论列表", description = "根据商品ID(prodId)查询商品评论列表") @Parameter(name = "prodId", description = "商品ID", required = true) diff --git a/ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/domain/TzProdComm.java b/ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/domain/TzProdComm.java index 970d158..d3364ef 100644 --- a/ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/domain/TzProdComm.java +++ b/ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/domain/TzProdComm.java @@ -33,6 +33,11 @@ public class TzProdComm extends TenantEntity { */ private Long prodId; + /** + * 商品名称 + */ + private String prodName; + /** * 订单 ID */ @@ -83,5 +88,10 @@ public class TzProdComm extends TenantEntity { */ private Long delFlag; + /** + * 浏览量 + */ + private Long num; + } diff --git a/ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/domain/bo/TzProdCommBo.java b/ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/domain/bo/TzProdCommBo.java index 36a0da9..2239331 100644 --- a/ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/domain/bo/TzProdCommBo.java +++ b/ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/domain/bo/TzProdCommBo.java @@ -32,6 +32,11 @@ public class TzProdCommBo extends BaseEntity { @NotNull(message = "商品ID不能为空", groups = { AddGroup.class, EditGroup.class }) private Long prodId; + /** + * 商品名称 + */ + private String prodName; + /** * 订单 ID */ @@ -82,5 +87,15 @@ public class TzProdCommBo extends BaseEntity { */ private Integer delFlag; + /** + * 浏览量 + */ + private Long num; + + /** + * 排序 1-最新,2-最热 + */ + private Integer sort; + } diff --git a/ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/domain/vo/HyOrderItemVo.java b/ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/domain/vo/HyOrderItemVo.java index 1333e56..02aa3e7 100644 --- a/ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/domain/vo/HyOrderItemVo.java +++ b/ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/domain/vo/HyOrderItemVo.java @@ -153,6 +153,12 @@ public class HyOrderItemVo implements Serializable { @ExcelProperty(value = "付款金额") private BigDecimal payPrice; + /** + * 指导价 + */ + @ExcelProperty(value = "指导价") + private BigDecimal guidingPrice; + /** * 支付状态 1:待支付 2:未付清 3:已付清 */ diff --git a/ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/domain/vo/TzProdCommVo.java b/ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/domain/vo/TzProdCommVo.java index cd0bc9a..203951e 100644 --- a/ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/domain/vo/TzProdCommVo.java +++ b/ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/domain/vo/TzProdCommVo.java @@ -109,5 +109,11 @@ public class TzProdCommVo implements Serializable { @ExcelProperty(value = "评论时间") private Date createTime; + /** + * 浏览量 + */ + @ExcelProperty(value = "浏览量") + private Long num; + } diff --git a/ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/service/ITzProdCommService.java b/ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/service/ITzProdCommService.java index 2368330..a859805 100644 --- a/ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/service/ITzProdCommService.java +++ b/ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/service/ITzProdCommService.java @@ -91,4 +91,12 @@ public interface ITzProdCommService { * @return 商品评论分页列表 */ IPage queryPageListByUser(TzProdCommBo bo, PageQuery pageQuery); + + /** + * 查询商品评论列表 + * + * @param bo 查询条件 + * @return 商品评论列表 + */ + IPage selectPageList(TzProdCommBo bo, PageQuery pageQuery); } diff --git a/ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/service/impl/HyOrderItemServiceImpl.java b/ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/service/impl/HyOrderItemServiceImpl.java index fc77dc0..59dab85 100644 --- a/ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/service/impl/HyOrderItemServiceImpl.java +++ b/ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/service/impl/HyOrderItemServiceImpl.java @@ -147,7 +147,7 @@ public class HyOrderItemServiceImpl extends MPJBaseServiceImpl wrapper = buildQueryWrapper(bo) .selectAll(HyOrderItem.class) .select(TzProd::getProdName, TzProd::getPic,TzProd::getUnit) - .select(TzSku::getSkuName, TzSku::getPrice) + .select(TzSku::getSkuName, TzSku::getPrice,TzSku::getGuidingPrice) .leftJoin(TzProd.class, TzProd::getProdId, HyOrderItem::getProdId) .leftJoin(TzSku.class, TzSku::getSkuId, HyOrderItem::getSkuId) .orderByDesc(HyOrderItem::getCreateTime); @@ -382,7 +382,7 @@ public class HyOrderItemServiceImpl extends MPJBaseServiceImpl wrapper = new MPJLambdaWrapper() .selectAll(HyOrderItem.class) .select(TzProd::getProdName, TzProd::getPic,TzProd::getUnit) - .select(TzSku::getSkuName, TzSku::getPrice) + .select(TzSku::getSkuName, TzSku::getPrice, TzSku::getGuidingPrice) .leftJoin(TzProd.class, TzProd::getProdId, HyOrderItem::getProdId) .leftJoin(TzSku.class, TzSku::getSkuId, HyOrderItem::getSkuId) .eq(HyOrderItem::getId, orderId) @@ -526,7 +526,7 @@ public class HyOrderItemServiceImpl extends MPJBaseServiceImpl wrapper = new MPJLambdaWrapper() .selectAll(HyOrderItem.class) .select(TzProd::getProdName, TzProd::getPic,TzProd::getUnit) - .select(TzSku::getSkuName) + .select(TzSku::getSkuName, TzSku::getGuidingPrice) .leftJoin(TzProd.class, TzProd::getProdId, HyOrderItem::getProdId) .leftJoin(TzSku.class, TzSku::getSkuId, HyOrderItem::getSkuId) .eq(HyOrderItem::getOrderId, orderId) diff --git a/ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/service/impl/TzProdCommServiceImpl.java b/ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/service/impl/TzProdCommServiceImpl.java index c39cd79..9912900 100644 --- a/ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/service/impl/TzProdCommServiceImpl.java +++ b/ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/service/impl/TzProdCommServiceImpl.java @@ -1,6 +1,7 @@ package org.dromara.mall.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -41,7 +42,6 @@ public class TzProdCommServiceImpl implements ITzProdCommService { private final HyOrderMapper orderMapper; - /** * 查询商品评论 * @@ -50,7 +50,16 @@ public class TzProdCommServiceImpl implements ITzProdCommService { */ @Override public TzProdCommVo queryById(Long id){ - return baseMapper.selectVoById(id); + TzProdCommVo tzProdCommVo = baseMapper.selectVoById(id); + + TzUser user = userMapper.selectById(tzProdCommVo.getUserId()); + if(user != null) { + tzProdCommVo.setUserAvatar(user.getPic()); + tzProdCommVo.setUserName(user.getRealName()); + } + //设置浏览量+1 + baseMapper.update(new LambdaUpdateWrapper().eq(TzProdComm::getId, id).setIncrBy(TzProdComm::getNum, 1)); + return tzProdCommVo; } /** @@ -68,6 +77,31 @@ public class TzProdCommServiceImpl implements ITzProdCommService { return TableDataInfo.build(result); } + /** + * 查询商品评论列表 + * + * @param bo 查询条件 + * @param pageQuery + * @return 商品评论列表 + */ + @Override + public IPage selectPageList(TzProdCommBo bo, PageQuery pageQuery) { + bo.setDelFlag(1); + bo.setStatus(1); + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + IPage page = baseMapper.selectVoPage(pageQuery.build(), lqw); + + // 获取评论用户头像 + for(TzProdCommVo vo : page.getRecords()) { + TzUser user = userMapper.selectById(vo.getUserId()); + if(user != null) { + vo.setUserAvatar(user.getPic()); + vo.setUserName(user.getRealName()); + } + } + return page; + } + /** * 查询符合条件的商品评论列表 * @@ -111,6 +145,7 @@ public class TzProdCommServiceImpl implements ITzProdCommService { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.eq(bo.getProdId() != null, TzProdComm::getProdId, bo.getProdId()); + lqw.like(StringUtils.isNotBlank(bo.getProdName()), TzProdComm::getProdName, bo.getProdName()); lqw.eq(bo.getOrderId() != null, TzProdComm::getOrderId, bo.getOrderId()); lqw.eq(bo.getOrderItemId() != null, TzProdComm::getOrderItemId, bo.getOrderItemId()); lqw.eq(bo.getUserId() != null, TzProdComm::getUserId, bo.getUserId()); @@ -121,7 +156,13 @@ public class TzProdCommServiceImpl implements ITzProdCommService { lqw.eq(bo.getIsAnonymous() != null, TzProdComm::getIsAnonymous, bo.getIsAnonymous()); lqw.eq(bo.getStatus() != null, TzProdComm::getStatus, bo.getStatus()); lqw.eq(bo.getDelFlag() != null, TzProdComm::getDelFlag, bo.getDelFlag()); - lqw.orderByDesc(TzProdComm::getId); + if(bo.getSort() != null){ + if(bo.getSort() == 1){ + lqw.orderByDesc(TzProdComm::getCreateTime); + }else if (bo.getSort() == 2){ + lqw.orderByDesc(TzProdComm::getNum); + } + } return lqw; } @@ -145,6 +186,9 @@ public class TzProdCommServiceImpl implements ITzProdCommService { order.setStatus(5); orderMapper.updateById(order); } + // 根据商品ID查询商品信息 + TzProd prod = prodMapper.selectById(bo.getProdId()); + bo.setProdName(prod.getProdName()); TzProdComm add = MapstructUtils.convert(bo, TzProdComm.class); boolean flag = baseMapper.insert(add) > 0; if (flag) { @@ -189,14 +233,13 @@ public class TzProdCommServiceImpl implements ITzProdCommService { IPage page = baseMapper.selectVoPage(pageQuery.build(), lqw); // 获取评论列表中的商品信息 - page.getRecords().forEach(comment -> { + /*page.getRecords().forEach(comment -> { // 根据商品ID查询商品信息 TzProd prod = prodMapper.selectById(comment.getProdId()); if (prod != null) { comment.setProdName(prod.getProdName()); } - }); - + });*/ return page; } }