licailing 5 years ago
parent
commit
f3af1d9cd4

+ 42 - 0
src/main/java/com/izouma/dingdong/dto/AppraisalMerDTO.java

@@ -0,0 +1,42 @@
+package com.izouma.dingdong.dto;
+
+import com.izouma.dingdong.annotations.Searchable;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.time.LocalDateTime;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+public class AppraisalMerDTO {
+    @Searchable
+    private String nickname;
+
+    private String avatar;
+
+    @ApiModelProperty(value = "商家回复评价", name = "merchantReply")
+    private String merchantReply;
+
+    @ApiModelProperty(value = "商品评价", name = "goodsAppraise")
+    private String goodsAppraise;
+
+
+    @ApiModelProperty(value = "商品名称", name = "goodsName")
+    private String goodsName;
+
+    @ApiModelProperty(value = "评价日期", name = "appreiseTime")
+    private LocalDateTime appraiseTime;
+
+    @ApiModelProperty(value = "商品评分", name = "goodsScore")
+    private Boolean goodsLike;
+
+    @ApiModelProperty(value = "商品评分", name = "goodsScore")
+    private Boolean goodsBad;
+
+
+}

+ 28 - 6
src/main/java/com/izouma/dingdong/service/AppraisalService.java

@@ -5,6 +5,9 @@ import cn.hutool.core.util.ObjectUtil;
 import com.izouma.dingdong.domain.Appraisal;
 import com.izouma.dingdong.domain.OrderGoodsSpec;
 import com.izouma.dingdong.domain.OrderInfo;
+import com.izouma.dingdong.domain.User;
+import com.izouma.dingdong.domain.merchant.Goods;
+import com.izouma.dingdong.dto.AppraisalMerDTO;
 import com.izouma.dingdong.enums.OrderStatus;
 import com.izouma.dingdong.exception.BusinessException;
 import com.izouma.dingdong.repo.AppraisalRepo;
@@ -16,6 +19,7 @@ import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
+import java.util.stream.Collectors;
 
 @Service
 @AllArgsConstructor
@@ -45,8 +49,7 @@ public class AppraisalService {
             //更新销量数据
             salesService.addLike(save.getId());
             return save;
-        }
-        else {
+        } else {
             throw new BusinessException("订单未完成");
         }
     }
@@ -54,20 +57,39 @@ public class AppraisalService {
     /*
     按商品查找评价
      */
-    public List<Appraisal> goodsAppraisals(Long goodsId) {
+    public List<AppraisalMerDTO> goodsAppraisals(Long goodsId) {
         List<OrderGoodsSpec> specs = orderGoodsSpecRepo.findAllByGoodsId(goodsId);
-        if (ObjectUtil.isNull(specs)){
+        if (ObjectUtil.isNull(specs)) {
             return null;
         }
-        List<Appraisal> appraisals = CollUtil.newArrayList();
+//        List<Appraisal> appraisals = CollUtil.newArrayList();
+        List<AppraisalMerDTO> appraisals = CollUtil.newArrayList();
         specs.forEach(s -> {
             Appraisal appraisal = appraisalRepo.findByOrderId(s.getOrderId()).orElseThrow(new BusinessException("无订单"));
             if (ObjectUtil.isNotNull(appraisal)) {
-                appraisals.add(appraisal);
+                appraisals.add(this.toDTO(appraisal));
+//                appraisals.add(appraisal);
             }
         });
         return appraisals;
     }
 
 
+    public AppraisalMerDTO toDTO(Appraisal appraisal) {
+        List<Goods> collect = appraisal.getOrder().getOrderGoodsSpecs().stream().map(OrderGoodsSpec::getGoods).collect(Collectors.toList());
+        String goodsName = collect.stream().map(Goods::getName).collect(Collectors.joining(","));
+        User user = appraisal.getOrder().getUser();
+        return AppraisalMerDTO.builder()
+                .appraiseTime(appraisal.getAppraiseTime())
+                .avatar(user.getAvatar())
+                .goodsAppraise(appraisal.getGoodsAppraise())
+                .goodsBad(appraisal.getGoodsBad())
+                .goodsLike(appraisal.getGoodsLike())
+                .goodsName(goodsName)
+                .merchantReply(appraisal.getMerchantReply())
+                .nickname(user.getNickname())
+                .build();
+    }
+
+
 }

+ 8 - 4
src/main/java/com/izouma/dingdong/web/AppraisalController.java

@@ -1,6 +1,7 @@
 package com.izouma.dingdong.web;
 
 import com.izouma.dingdong.domain.Appraisal;
+import com.izouma.dingdong.dto.AppraisalMerDTO;
 import com.izouma.dingdong.service.AppraisalService;
 import com.izouma.dingdong.dto.PageQuery;
 import com.izouma.dingdong.exception.BusinessException;
@@ -19,6 +20,7 @@ import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.security.Security;
 import java.util.List;
+import java.util.stream.Collectors;
 
 @RestController
 @RequestMapping("/appraisal")
@@ -79,19 +81,21 @@ public class AppraisalController extends BaseController {
 
     @GetMapping("/my")
     @ApiOperation("显示商户的所有评价")
-    public List<Appraisal> my() {
-        return appraisalRepo.findAllByMerchantId(merchantService.findMerchantId(SecurityUtils.getAuthenticatedUser().getId()));
+    public List<AppraisalMerDTO> my() {
+        List<Appraisal> allByMerchantId = appraisalRepo.findAllByMerchantId(merchantService.findMerchantId(SecurityUtils.getAuthenticatedUser().getId()));
+        return allByMerchantId.stream().map(appraisalService::toDTO).collect(Collectors.toList());
+
     }
 
     @GetMapping("/order")
     @ApiOperation("订单评价")
-    public Appraisal order(Long orderId){
+    public Appraisal order(Long orderId) {
         return appraisalRepo.findByOrderId(orderId).orElseThrow(new BusinessException("无评价"));
     }
 
     @GetMapping("/goods")
     @ApiOperation("商品评价")
-    public List<Appraisal> goods(Long goodsId){
+    public List<AppraisalMerDTO> goods(Long goodsId) {
         return appraisalService.goodsAppraisals(goodsId);
     }