wangming 4 veckor sedan
förälder
incheckning
75d397f70b

+ 8 - 2
yami-shop-api/src/main/java/com/yami/shop/api/controller/ProdCommController.java

@@ -19,6 +19,7 @@ import com.yami.shop.bean.model.Order;
 import com.yami.shop.bean.model.ProdComm;
 import com.yami.shop.common.exception.GlobalException;
 import com.yami.shop.common.util.PageParam;
+import com.yami.shop.security.api.util.SecurityUtils;
 import com.yami.shop.service.OrderService;
 import com.yami.shop.service.ProdCommService;
 import io.swagger.annotations.Api;
@@ -33,8 +34,8 @@ import java.util.Map;
 import java.util.Objects;
 
 @RestController
-//@RequestMapping("/p/prodComm")
-@RequestMapping("/prodComm")
+@RequestMapping("/p/prodComm")
+//@RequestMapping("/prodComm")
 @Api(tags = "评论接口")
 @AllArgsConstructor
 public class ProdCommController {
@@ -74,6 +75,11 @@ public class ProdCommController {
         return ResponseEntity.ok(prodCommService.commentCount(skuId,shopId));
     }
 
+    @GetMapping("/myCommList")
+    @ApiOperation(value = "小程序-我的评价")
+    public ResponseEntity<IPage<ProdComm>> myCommList(PageParam<ProdComm> page) {
+        return ResponseEntity.ok(prodCommService.myCommList(page, SecurityUtils.getUser().getUserId()));
+    }
 
 
 }

+ 3 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/model/ProdComm.java

@@ -133,6 +133,9 @@ public class ProdComm implements Serializable{
     @TableField(exist = false)
     private List<OrderItem> orderItems;
 
+    @TableField(exist = false)
+    private String shopName;
+
     @TableField(exist = false)
     private String nickName;
 

+ 4 - 0
yami-shop-service/src/main/java/com/yami/shop/dao/ProdCommMapper.java

@@ -37,4 +37,8 @@ public interface ProdCommMapper extends BaseMapper<ProdComm> {
     Integer picCount(@Param("skuId") Long skuId, @Param("shopId") Long shopId);
 
     String goodRate(@Param("skuId") Long skuId, @Param("shopId") Long shopId);
+
+    IPage<ProdComm> myCommList(@Param("page") PageParam<ProdComm> page, @Param("userId") String userId);
+
+    String getShopName(String orderNumber);
 }

+ 1 - 0
yami-shop-service/src/main/java/com/yami/shop/service/ProdCommService.java

@@ -35,4 +35,5 @@ public interface ProdCommService extends IService<ProdComm> {
 
     Map<String, Object> commentCount(Long skuId, Long shopId);
 
+    IPage<ProdComm> myCommList(PageParam<ProdComm> page, String userId);
 }

+ 14 - 0
yami-shop-service/src/main/java/com/yami/shop/service/impl/ProdCommServiceImpl.java

@@ -151,4 +151,18 @@ public class ProdCommServiceImpl extends ServiceImpl<ProdCommMapper, ProdComm> i
         map.put("goodRate", prodCommMapper.goodRate(skuId, shopId));
         return map;
     }
+
+    @Override
+    public IPage<ProdComm> myCommList(PageParam<ProdComm> page, String userId) {
+        IPage<ProdComm> commList = prodCommMapper.myCommList(page, userId);
+        List<ProdComm> records = commList.getRecords();
+        if (!records.isEmpty()){
+            records.forEach(c->{
+                c.setOrderItems(orderItemMapper.selectList(
+                        new LambdaQueryWrapper<OrderItem>().eq(OrderItem::getOrderNumber, c.getOrderNumber())));
+                c.setShopName(prodCommMapper.getShopName(c.getOrderNumber()));
+            });
+        }
+        return commList;
+    }
 }

+ 11 - 1
yami-shop-service/src/main/resources/mapper/ProdCommMapper.xml

@@ -189,12 +189,22 @@
     </select>
 
     <select id="goodRate" resultType="string">
-        SELECT CONCAT(CAST(SUM(CASE WHEN pc.evaluate = 0 THEN 1 ELSE 0 END) * 100.0 / COUNT(*) AS DECIMAL(5,2)),'%') AS rate
+        SELECT IFNULL(CONCAT(CAST(SUM(CASE WHEN pc.evaluate = 0 THEN 1 ELSE 0 END) * 100.0 / COUNT(*) AS DECIMAL(5,2)),'%'),'100%') AS rate
         FROM tz_prod_comm pc
                  JOIN tz_order_item oi ON pc.order_number = oi.order_number
         WHERE oi.sku_id = #{skuId} and oi.shop_id = #{shopId} AND pc.`status` = 1
     </select>
 
+    <select id="myCommList" resultMap="BaseResultMap">
+        SELECT b.nick_name,b.pic avatar,a.*
+        FROM tz_prod_comm a
+                 LEFT JOIN tz_user b on a.user_id=b.user_id
+        WHERE a.user_id=#{userId}
+        ORDER BY a.rec_time desc,prod_comm_id desc
+    </select>
 
+    <select id="getShopName" resultType="string">
+        SELECT shop_name FROM tz_shop_detail WHERE shop_id =(SELECT shop_id FROM tz_order WHERE order_number=#{orderNumber})
+    </select>
 
 </mapper>