igl преди 1 година
родител
ревизия
69bb0f8e1a

+ 3 - 10
vehicle-client/src/main/java/com/chelvc/cloud/vehicle/client/InformClient.java

@@ -1,14 +1,7 @@
 package com.chelvc.cloud.vehicle.client;
 
 import com.chelvc.cloud.vehicle.client.constant.SystemInformType;
-import com.chelvc.cloud.vehicle.client.dto.CommentDTO;
-import com.chelvc.cloud.vehicle.client.dto.EvaluateDTO;
-import com.chelvc.cloud.vehicle.client.dto.NewInformDTO;
-import com.chelvc.cloud.vehicle.client.dto.NewMerchantInformDTO;
-import com.chelvc.cloud.vehicle.client.dto.OmsOrderDTO;
-import com.chelvc.cloud.vehicle.client.dto.OmsOrderOperateHistoryDTO;
-import com.chelvc.cloud.vehicle.client.dto.OmsOrderReturnApplyIdsDTO;
-import com.chelvc.cloud.vehicle.client.dto.UserCouponDTO;
+import com.chelvc.cloud.vehicle.client.dto.*;
 import com.chelvc.framework.common.model.Pagination;
 import com.chelvc.framework.common.model.Paging;
 import org.springframework.cloud.openfeign.FeignClient;
@@ -83,8 +76,8 @@ public interface InformClient {
      * @return 用户的评价通知列表
      */
     @GetMapping("/inform/selectCommentListByUserId")
-    Pagination<CommentDTO> selectCommentListByUserId(@RequestParam("userId") Long userId,
-                                                     @RequestParam("paging") Paging paging);
+    Pagination<GoodsAssessDto> selectCommentListByUserId(@RequestParam("userId") Long userId,
+                                                         @RequestParam("paging") Paging paging);
 
     /**
      * 取用户的优惠券通知列表

+ 6 - 1
vehicle-client/src/main/java/com/chelvc/cloud/vehicle/client/dto/OmsOrderItemDTO.java

@@ -10,7 +10,7 @@ import java.math.BigDecimal;
 
 /**
  * 订单中所包含的商品对象 oms_order_item
- * 
+ *
  * @author liude
  * @date 2023-11-08
  */
@@ -81,4 +81,9 @@ public class OmsOrderItemDTO implements Serializable
     private Integer giftGrowth;
 
     private String goodsAttr;
+
+    /**
+     * 是否评论  0-未评论;1-已评论
+     */
+    private Integer assessStatus;
 }

+ 3 - 10
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/controller/InformController.java

@@ -1,14 +1,7 @@
 package com.chelvc.cloud.vehicle.server.controller;
 
 import com.chelvc.cloud.vehicle.client.constant.SystemInformType;
-import com.chelvc.cloud.vehicle.client.dto.CommentDTO;
-import com.chelvc.cloud.vehicle.client.dto.EvaluateDTO;
-import com.chelvc.cloud.vehicle.client.dto.NewInformDTO;
-import com.chelvc.cloud.vehicle.client.dto.NewMerchantInformDTO;
-import com.chelvc.cloud.vehicle.client.dto.OmsOrderDTO;
-import com.chelvc.cloud.vehicle.client.dto.OmsOrderOperateHistoryDTO;
-import com.chelvc.cloud.vehicle.client.dto.OmsOrderReturnApplyIdsDTO;
-import com.chelvc.cloud.vehicle.client.dto.UserCouponDTO;
+import com.chelvc.cloud.vehicle.client.dto.*;
 import com.chelvc.cloud.vehicle.server.service.InformService;
 import com.chelvc.framework.common.model.Pagination;
 import com.chelvc.framework.common.model.Paging;
@@ -105,8 +98,8 @@ public class InformController {
      * @return 用户的评价通知列表
      */
     @GetMapping("/inform/selectCommentListByUserId")
-    public Pagination<CommentDTO> selectCommentListByUserId(@RequestParam("userId") Long userId,
-                                                            @RequestParam("paging") Paging paging) {
+    public Pagination<GoodsAssessDto> selectCommentListByUserId(@RequestParam("userId") Long userId,
+                                                                @RequestParam("paging") Paging paging) {
         return informService.selectCommentListByUserId(userId, paging);
     }
 

+ 8 - 8
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/entity/GoodsAssess.java

@@ -1,20 +1,16 @@
 package com.chelvc.cloud.vehicle.server.entity;
 
-import java.math.BigDecimal;
-import java.util.List;
-
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.chelvc.framework.common.model.File;
 import com.chelvc.framework.database.entity.ModifyEntity;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.NoArgsConstructor;
-import lombok.ToString;
+import lombok.*;
 import lombok.experimental.SuperBuilder;
 
+import java.math.BigDecimal;
+import java.util.List;
+
 /**
  * @author valley
  * @date 2024/02/02 00:29
@@ -72,4 +68,8 @@ public class GoodsAssess extends ModifyEntity<Long> {
      */
     private Integer isRecover;
 
+    /**
+     * 标识:0-新消息;1-已查看
+     */
+    private Integer flag;
 }

+ 20 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/AssessService.java

@@ -6,6 +6,8 @@ import com.chelvc.cloud.vehicle.client.param.AssessModifyParam;
 import com.chelvc.cloud.vehicle.client.param.AssessQueryParam;
 import com.chelvc.cloud.vehicle.client.param.AssessRecoverModifyParam;
 import com.chelvc.cloud.vehicle.server.entity.GoodsAssess;
+import com.chelvc.framework.common.model.Pagination;
+import com.chelvc.framework.common.model.Paging;
 
 import java.math.BigDecimal;
 import java.util.List;
@@ -25,4 +27,22 @@ public interface AssessService extends IService<GoodsAssess> {
     void computeAvgScore();
 
     Map<String, BigDecimal> getGoodsScore(Long goodsId);
+
+    /**
+     * 将评价通知标识更改
+     *
+     * @param userId 用户id
+     */
+    void changeCommentInformFlag(Long userId);
+
+    /**
+     * 查询商品评价新消息数
+     * @param userId
+     * @return
+     */
+    Integer queryNewInformNum(Long userId);
+
+    Pagination<GoodsAssessDto> selectCommentListByUserId(Long userId, Paging paging);
+
+    Integer queryAssessStatus(Long orderId, Long goodsId, Long userId);
 }

+ 1 - 1
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/InformService.java

@@ -63,7 +63,7 @@ public interface InformService {
      * @param paging 分页信息
      * @return 用户的评价通知列表
      */
-    Pagination<CommentDTO> selectCommentListByUserId(Long userId, Paging paging);
+    Pagination<GoodsAssessDto> selectCommentListByUserId(Long userId, Paging paging);
 
     /**
      * 取用户的优惠券通知列表

+ 57 - 1
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/AssessServiceImpl.java

@@ -1,6 +1,10 @@
 package com.chelvc.cloud.vehicle.server.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.chelvc.cloud.user.client.UserClient;
 import com.chelvc.cloud.user.client.dto.UserDTO;
@@ -20,7 +24,10 @@ import com.chelvc.cloud.vehicle.server.entity.GoodsAssess;
 import com.chelvc.cloud.vehicle.server.service.AssessService;
 import com.chelvc.framework.base.context.Session;
 import com.chelvc.framework.base.context.SessionContextHolder;
+import com.chelvc.framework.common.model.Pagination;
+import com.chelvc.framework.common.model.Paging;
 import com.chelvc.framework.common.util.AssertUtils;
+import com.chelvc.framework.database.context.DatabaseContextHolder;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -57,7 +64,6 @@ public class AssessServiceImpl extends ServiceImpl<GoodsAssessMapper, GoodsAsses
         Session user = SessionContextHolder.getSession();
         AssertUtils.available(this.getOne(new QueryWrapper<GoodsAssess>().eq("order_id", param.getOrderId()).eq(
                 "creator", user.getId())) == null, "该订单已评价");
-
         GoodsAssess goodsAssess = GoodsAssessCopier.INSTANCE.copying(param);
         goodsAssess.setHits(0L);
         goodsAssess.setIsRecover(0);
@@ -216,4 +222,54 @@ public class AssessServiceImpl extends ServiceImpl<GoodsAssessMapper, GoodsAsses
         data.put("weekScore", assessScore.getWeekScore());
         return data;
     }
+
+    @Override
+    public void changeCommentInformFlag(Long userId) {
+        LambdaUpdateWrapper<GoodsAssess> lwq = Wrappers.lambdaUpdate();
+        lwq.eq(GoodsAssess::getCreator, userId);
+        lwq.eq(GoodsAssess::getFlag, 0);
+        lwq.set(GoodsAssess::getFlag, 1);
+        baseMapper.update(null, lwq);
+    }
+
+    @Override
+    public Integer queryNewInformNum(Long userId) {
+        LambdaQueryWrapper<GoodsAssess> lwq = Wrappers.lambdaQuery();
+        lwq.eq(GoodsAssess::getCreator, userId);
+        lwq.eq(GoodsAssess::getFlag, 0);
+        return baseMapper.selectCount(lwq);
+    }
+
+    @Override
+    public Pagination<GoodsAssessDto> selectCommentListByUserId(Long userId, Paging paging) {
+        Page<GoodsAssess> page = this.lambdaQuery()
+                .eq(GoodsAssess::getCreator, userId)
+                .orderByDesc(GoodsAssess::getCreateTime).page(DatabaseContextHolder.page(paging));
+        List<GoodsAssess> goodsAssesses = page.getRecords();
+        List<GoodsAssessDto> goodsAssesseDtos = GoodsAssessCopier.INSTANCE.copying(goodsAssesses);
+        //个人信息获取
+        UserDTO user = userService.getUser(userId);
+        List<GoodsAssessDto> result = goodsAssesseDtos.stream().peek(item -> {
+            item.setCreatorAvatar(user.getAvatar());
+            item.setCreatorNickName(user.getNickname());
+            item.setCreatorTimeFormat(SDF.format(item.getCreateTime()));
+            AssessRecover assessRecover = assessRecoverMapper.selectOne(new QueryWrapper<AssessRecover>().eq(
+                    "assess_id", item.getId()));
+            if (assessRecover != null) {
+                AssessRecoverDto assessRecoverDto = AssessRecoverCopier.INSTANCE.copying(assessRecover);
+                assessRecoverDto.setRecoverTimeFormat(SDF.format(assessRecoverDto.getRecoverTime()));
+                item.setAssessRecoverDto(assessRecoverDto);
+            }
+        }).collect(Collectors.toList());
+        return DatabaseContextHolder.pagination(page, result);
+    }
+
+    @Override
+    public Integer queryAssessStatus(Long orderId, Long goodsId, Long userId) {
+        LambdaQueryWrapper<GoodsAssess> wrapper = Wrappers.lambdaQuery();
+        wrapper.eq(GoodsAssess::getOrderId, orderId);
+        wrapper.eq(GoodsAssess::getGoodsId, goodsId);
+        wrapper.eq(GoodsAssess::getCreator, userId);
+        return baseMapper.selectCount(wrapper) > 0 ? 1 : 0;
+    }
 }

+ 3 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/DynamicCommentServiceImpl.java

@@ -38,6 +38,7 @@ import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 
 import java.time.LocalDateTime;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
@@ -161,6 +162,8 @@ public class DynamicCommentServiceImpl implements DynamicCommentService {
     public void insertByBo(AddDynamicCommentParam param, Long userId) {
         DynamicComment add = ObjectUtils.copying(param, DynamicComment.class);
         add.setUserId(userId);
+        add.setCreateTime(new Date());
+        add.setUpdateTime(new Date());
         boolean b = baseMapper.insert(add) > 0;
         if (!b) {
             throw new ResourceUnavailableException("新增评论失败");

+ 3 - 2
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/DynamicContentServiceImpl.java

@@ -130,8 +130,7 @@ public class DynamicContentServiceImpl implements DynamicContentService{
       log.info("远程查询用户信息成功:{}", longUserBaseInfoMap);
       if(selfUserId != null){
         records.forEach(e -> {
-          e.setUserDTO(longUserBaseInfoMap == null ? new UserDTO() :
-              longUserBaseInfoMap.get(e.getUserId()));
+          e.setUserDTO(longUserBaseInfoMap.get(e.getUserId()));
           if(b){
             DynamicEvaluateRecordDTO dto = service.queryOperaterType(e.getId(),
                     selfUserId, RecordType.DYNAMIC.getValue());
@@ -267,6 +266,8 @@ public class DynamicContentServiceImpl implements DynamicContentService{
     contentDynamic.setTextContent(textContent);
     contentDynamic.setType(type.getValue());
     contentDynamic.setLocation(param.getLocation());
+    contentDynamic.setCreateTime(LocalDateTime.now());
+    contentDynamic.setUpdateTime(LocalDateTime.now());
     DatabaseContextHolder.transactional((Executor) () -> {
       baseMapper.insert(contentDynamic);
       log.info("用户[{}]:发送动态信息{}", userId, contentDynamic);

+ 5 - 5
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/InformServiceImpl.java

@@ -15,9 +15,9 @@ public class InformServiceImpl implements InformService {
     private final OmsOrderOperateHistoryService omsOrderOperateHistoryService;
     private final UserCouponService userCouponService;
     private final OmsOrderPayHistoryService omsOrderPayHistoryService;
-    private final CommentService commentService;
     private final OmsOrderReturnApplyService omsOrderReturnApplyService;
     private final DynamicCommentService dynamicCommentService;
+    private final AssessService assessService;
 
     @Override
     public Pagination<OmsOrderOperateHistoryDTO> selectOmsOrderOperateHistoryListByUserId(Long userId, Paging paging) {
@@ -37,7 +37,7 @@ public class InformServiceImpl implements InformService {
                 userCouponService.changeUserCouponInformFlag(userId);
                 break;
             case COMMENT:
-                commentService.changeCommentInformFlag(userId);
+                assessService.changeCommentInformFlag(userId);
                 break;
             case EVALUATE:
                 dynamicCommentService.changeEvaluateInformFlag(userId);
@@ -56,7 +56,7 @@ public class InformServiceImpl implements InformService {
         newInformDTO.setCoupon(coupon);
         Integer pay = omsOrderPayHistoryService.queryNewInformNum(userId);
         newInformDTO.setPay(pay);
-        Integer comment = commentService.queryNewInformNum(userId);
+        Integer comment = assessService.queryNewInformNum(userId);
         newInformDTO.setComment(comment);
         return newInformDTO;
     }
@@ -85,8 +85,8 @@ public class InformServiceImpl implements InformService {
     }
 
     @Override
-    public Pagination<CommentDTO> selectCommentListByUserId(Long userId, Paging paging) {
-        return commentService.selectCommentListByUserId(userId, paging);
+    public Pagination<GoodsAssessDto> selectCommentListByUserId(Long userId, Paging paging) {
+        return assessService.selectCommentListByUserId(userId, paging);
     }
 
     @Override

+ 14 - 2
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/OmsOrderServiceImpl.java

@@ -55,6 +55,8 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper, OmsOrder> i
     private final OrderHandleService orderHandleService;
     private final OmsOrderOperateHistoryService omsOrderOperateHistoryService;
 
+    private final AssessService assessService;
+
     @Override
     public ConfirmOrderResultDTO generateConfirmOrder(OmsOrderModifyParam orderParam) {
         ConfirmOrderResultDTO result = new ConfirmOrderResultDTO();
@@ -370,13 +372,23 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper, OmsOrder> i
     @Override
     public Pagination<OmsOrderDTO> getOrderPaging(OrderPagingParam param) {
         Long userId = SessionContextHolder.getId();
+        Integer status = param.getStatus();
         Page<OmsOrder> page = this.lambdaQuery()
-                .eq(OmsOrder::getStatus, param.getStatus())
+                .eq(OmsOrder::getUserId, userId)
+                .eq(OmsOrder::getStatus, status)
                 .orderByDesc(OmsOrder::getCreateTime)
                 .page(DatabaseContextHolder.page(param.getPaging()));
         Pagination<OmsOrderDTO> pagination = DatabaseContextHolder.pagination(page, OrderCopier.INSTANCE::copying);
         pagination.getRecords().forEach(item -> {
-            item.setGoodsInfo(this.omsOrderItemService.getOrderItemByOrderId(item.getId()));
+            List<OmsOrderItemDTO> goodsInfos = this.omsOrderItemService.getOrderItemByOrderId(item.getId());
+            if(status == 4){
+                if(org.apache.commons.collections4.CollectionUtils.isNotEmpty(goodsInfos)){
+                    goodsInfos.forEach(e ->
+                            e.setAssessStatus(assessService.queryAssessStatus(e.getOrderId(), e.getGoodsId(), userId))
+                    );
+                }
+            }
+            item.setGoodsInfo(goodsInfos);
         });
         return pagination;
     }