Selaa lähdekoodia

商家端系统通知

igl 1 vuosi sitten
vanhempi
commit
4c11ab5218
15 muutettua tiedostoa jossa 382 lisäystä ja 27 poistoa
  1. 21 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/NewMerchantInformDTO.java
  2. 98 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/OmsOrderReturnApplyDTO.java
  3. 24 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/OmsOrderReturnApplyIdsDTO.java
  4. 54 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/AddGoodsCommentParam.java
  5. 14 3
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/CommentService.java
  6. 8 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/IOmsOrderReturnApplyService.java
  7. 14 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/InformService.java
  8. 12 2
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/dao/CommentMapper.java
  9. 4 3
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/dao/OmsOrderReturnApplyMapper.java
  10. 7 8
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/entity/OmsOrderReturnApply.java
  11. 20 2
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/IOmsOrderReturnApplyService.java
  12. 30 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/CommentServiceImpl.java
  13. 16 5
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/InformServiceImpl.java
  14. 42 4
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/OmsOrderReturnApplyServiceImpl.java
  15. 18 0
      vehicle-server/src/main/resources/mapper/CommentMapper.xml

+ 21 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/NewMerchantInformDTO.java

@@ -0,0 +1,21 @@
+package com.chelvc.cloud.vehicle.api.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class NewMerchantInformDTO implements Serializable {
+
+    private static final long serialVersionUID = -6168480068452177194L;
+
+    /**
+     * 订单新通知数
+     */
+    private Integer orderNum;
+
+    /**
+     * 系统新通知数
+     */
+    private Integer systemNum;
+}

+ 98 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/OmsOrderReturnApplyDTO.java

@@ -0,0 +1,98 @@
+package com.chelvc.cloud.vehicle.api.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class OmsOrderReturnApplyDTO implements Serializable {
+
+    private static final long serialVersionUID = -7158413191077685950L;
+
+    private Long id;
+
+    /** 订单id */
+    private Long orderId;
+
+    /** 商户id */
+    private Long merchantId;
+
+    /** 收货地址表id */
+    private Long companyAddressId;
+
+    /** 退货商品id */
+    private Long productId;
+
+    /** 订单编号 */
+    private String orderSn;
+
+    /** 会员用户名 */
+    private String memberUsername;
+
+    /** 退款金额 */
+    private BigDecimal returnAmount;
+
+    /** 退货人姓名 */
+    private String returnName;
+
+    /** 退货人电话 */
+    private String returnPhone;
+
+    /** 申请状态:0->待处理;1->退货中;2->已完成;3->已拒绝 */
+    private Long status;
+
+    /** 处理时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+
+    private Date handleTime;
+
+    /** 商品图片 */
+
+    private String productPic;
+
+    /** 商品名称 */
+    private String productName;
+
+    /** 商品品牌 */
+    private String productBrand;
+
+    /** 商品销售属性:颜色:红色;尺码:xl; */
+    private String productAttr;
+
+    /** 退货数量 */
+    private Long productCount;
+
+    /** 商品单价 */
+    private BigDecimal productPrice;
+
+    /** 商品实际支付单价 */
+    private BigDecimal productRealPrice;
+
+    /** 原因 */
+    private String reason;
+
+    /** 描述 */
+    private String description;
+
+    /** 凭证图片,以逗号隔开 */
+    private String proofPics;
+
+    /** 处理备注 */
+    private String handleNote;
+
+    /** 处理人员 */
+    private String handleMan;
+
+    /** 收货人 */
+    private String receiveMan;
+
+    /** 收货时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date receiveTime;
+
+    /** 收货备注 */
+    private String receiveNote;
+}

+ 24 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/OmsOrderReturnApplyIdsDTO.java

@@ -0,0 +1,24 @@
+package com.chelvc.cloud.vehicle.api.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class OmsOrderReturnApplyIdsDTO implements Serializable {
+
+    private static final long serialVersionUID = -6400571350996131623L;
+
+    /**
+     * 退款订单标识
+     */
+    private Long id;
+
+    /**
+     * 申请时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date createTime;
+}

+ 54 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/AddGoodsCommentParam.java

@@ -0,0 +1,54 @@
+package com.chelvc.cloud.vehicle.api.param;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * 新增商品评价参数
+ */
+@Data
+public class AddGoodsCommentParam implements Serializable {
+
+    private static final long serialVersionUID = -3917954006275341904L;
+
+    /**
+     * 评价打分
+     */
+    private Double score;
+
+    /**
+     * 评价内容
+     */
+    private String content;
+
+    /**
+     * 上级评论标识
+     */
+    private Long parentId;
+
+    /**
+     * 附件列表(,隔开)
+     */
+    private String attachments;
+
+    /**
+     * 订单id
+     */
+    @NotNull(message = "订单信息不能为空")
+    private Long orderId;
+
+    /**
+     * 商品id
+     */
+    @NotNull(message = "商品信息不能为空")
+    private Long goodsId;
+
+    /**
+     * 商家id
+     */
+    @NotNull(message = "商家信息不能为空")
+    private Long merchantId;
+
+}

+ 14 - 3
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/CommentService.java

@@ -1,10 +1,11 @@
 package com.chelvc.cloud.vehicle.api.service;
 
-import java.util.List;
-
 import com.chelvc.cloud.vehicle.api.dto.CommentDTO;
+import com.chelvc.cloud.vehicle.api.param.AddGoodsCommentParam;
 import com.chelvc.cloud.vehicle.api.param.CommentQueryParam;
 
+import java.util.List;
+
 /**
  * 商家评论业务接口
  *
@@ -16,8 +17,18 @@ public interface CommentService {
      * 获取商品评价列表
      *
      * @param goodsId 商品ID
+     * @param parentId   父级评论id
+     * @param merchantId   商户id
      * @param param   查询参数
      * @return 评价列表
      */
-    List<CommentDTO> listGoodsComments(Long goodsId, CommentQueryParam param);
+    List<CommentDTO> listGoodsComments(Long goodsId, Long parentId, Long merchantId, CommentQueryParam param);
+
+    /**
+     * 新增商品评价
+     *
+     * @param param   新增参数
+     * @param userId  用户标识
+     */
+    void addGoodsComments(AddGoodsCommentParam param, Long userId);
 }

+ 8 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/IOmsOrderReturnApplyService.java

@@ -0,0 +1,8 @@
+package com.chelvc.cloud.vehicle.api.service;
+
+import com.chelvc.cloud.vehicle.api.dto.OmsOrderReturnApplyDTO;
+
+public interface IOmsOrderReturnApplyService {
+
+    OmsOrderReturnApplyDTO getOrderReturnApplyInfo(Long id);
+}

+ 14 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/InformService.java

@@ -27,6 +27,20 @@ public interface InformService {
      */
     NewInformDTO getNewInform(Long userId);
 
+    /**
+     * (商家端)查看是否有系统新消息
+     *
+     */
+    NewMerchantInformDTO getMerchantNewInform(Long userId);
+
+    /**
+     * (商家端)获取订单退款申请列表
+     *
+     * @param paging 分页信息
+     * @return 用户的订单通知列表
+     */
+    Pagination<OmsOrderReturnApplyIdsDTO> listOrderReturnApply(Long userId, Paging paging);
+
     /**
      * 获取用户的支付通知列表
      *

+ 12 - 2
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/dao/CommentMapper.java

@@ -1,7 +1,5 @@
 package com.chelvc.cloud.vehicle.server.dao;
 
-import java.util.List;
-
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.chelvc.cloud.vehicle.api.dto.CommentDTO;
 import com.chelvc.cloud.vehicle.api.param.CommentQueryParam;
@@ -9,6 +7,8 @@ import com.chelvc.cloud.vehicle.server.entity.Comment;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * 商家评价数据操作接口
  *
@@ -25,4 +25,14 @@ public interface CommentMapper extends BaseMapper<Comment> {
      * @return 评价列表
      */
     List<CommentDTO> listGoodsComments(@Param("goodsId") Long goodsId, @Param("param") CommentQueryParam param);
+
+    /**
+     * 获取商品评价列表
+     *
+     * @param goodsId 商品ID
+     * @param param   查询参数
+     * @return 评价列表
+     */
+    List<CommentDTO> getGoodsComments(@Param("goodsId") Long goodsId, @Param("parentId") Long parentId,
+                                       @Param("merchantId") Long merchantId, @Param("param") CommentQueryParam param);
 }

+ 4 - 3
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/dao/OmsOrderReturnApplyMapper.java

@@ -1,10 +1,11 @@
 package com.chelvc.cloud.vehicle.server.dao;
 
-import java.util.List;
-
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.chelvc.cloud.vehicle.server.entity.OmsOrderReturnApply;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.List;
+
 /**
  * 订单退货申请Mapper接口
  * 
@@ -12,7 +13,7 @@ import org.apache.ibatis.annotations.Mapper;
  * @date 2023-11-08
  */
 @Mapper
-public interface OmsOrderReturnApplyMapper 
+public interface OmsOrderReturnApplyMapper extends BaseMapper<OmsOrderReturnApply>
 {
     /**
      * 查询订单退货申请

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

@@ -1,20 +1,16 @@
 package com.chelvc.cloud.vehicle.server.entity;
 
-import java.math.BigDecimal;
-import java.util.Date;
-
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.chelvc.framework.database.entity.ModifyEntity;
 import com.fasterxml.jackson.annotation.JsonFormat;
-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.Date;
+
 /**
  * 订单退货申请对象 oms_order_return_apply
  * 
@@ -39,6 +35,9 @@ public class OmsOrderReturnApply extends ModifyEntity<Long>
     /** 订单id */
     private Long orderId;
 
+    /** 商户id */
+    private Long merchantId;
+
     /** 收货地址表id */
     private Long companyAddressId;
 

+ 20 - 2
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/IOmsOrderReturnApplyService.java

@@ -1,8 +1,11 @@
 package com.chelvc.cloud.vehicle.server.service;
 
-import java.util.List;
-
+import com.chelvc.cloud.vehicle.api.dto.OmsOrderReturnApplyIdsDTO;
 import com.chelvc.cloud.vehicle.server.entity.OmsOrderReturnApply;
+import com.chelvc.framework.common.model.Pagination;
+import com.chelvc.framework.common.model.Paging;
+
+import java.util.List;
 
 /**
  * 订单退货申请Service接口
@@ -59,4 +62,19 @@ public interface IOmsOrderReturnApplyService
      * @return 结果
      */
     public int deleteOmsOrderReturnApplyById(Long id);
+
+    /**
+     * 查看商家端申请退款订单
+     * @param merchantId
+     * @param paging
+     * @return
+     */
+    Pagination<OmsOrderReturnApplyIdsDTO> listOrderReturnApply(Long merchantId, Paging paging);
+
+    /**
+     * 查看退款订单数
+     * @param userId
+     * @return
+     */
+    Integer queryReturnOrderNum(Long userId);
 }

+ 30 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/CommentServiceImpl.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.chelvc.cloud.uc.api.dto.UserDTO;
 import com.chelvc.cloud.uc.api.service.UserService;
 import com.chelvc.cloud.vehicle.api.dto.CommentDTO;
+import com.chelvc.cloud.vehicle.api.param.AddGoodsCommentParam;
 import com.chelvc.cloud.vehicle.api.param.CommentQueryParam;
 import com.chelvc.cloud.vehicle.server.dao.CommentMapper;
 import com.chelvc.cloud.vehicle.server.entity.Comment;
@@ -52,6 +53,35 @@ public class CommentServiceImpl extends ServiceImpl<CommentMapper, Comment> impl
         return comments;
     }
 
+    @Override
+    public List<CommentDTO> listGoodsComments(Long goodsId, Long parentId, Long merchantId, @NonNull CommentQueryParam param) {
+        if(parentId == null){
+            parentId = 0L;
+        }
+        if(goodsId == null && merchantId == null){
+            return new ArrayList<>();
+        }
+        // 获取商品评价列表
+        List<CommentDTO> comments = this.baseMapper.getGoodsComments(goodsId, parentId, merchantId, param);
+
+        // 加载评价用户信息
+        Set<Long> userIds = CollectionUtils.isEmpty(comments) ? Collections.emptySet() :
+                comments.stream().map(CommentDTO::getUserId).filter(Objects::nonNull).collect(Collectors.toSet());
+        if (!CollectionUtils.isEmpty(userIds)) {
+            Map<Long, UserDTO> users = this.userService.listUsers(userIds).stream()
+                    .collect(Collectors.toMap(UserDTO::getId, user -> user));
+            comments.forEach(comment -> comment.setUser(users.get(comment.getUserId())));
+        }
+        return comments;
+    }
+
+    @Override
+    public void addGoodsComments(AddGoodsCommentParam param, Long userId) {
+        Comment comment = BeanCopyUtil.copy(param, Comment.class);
+        comment.setUserId(userId);
+        baseMapper.insert(comment);
+    }
+
     @Override
     public Integer queryNewInformNum(Long userId) {
         LambdaQueryWrapper<Comment> lwq = Wrappers.lambdaQuery();

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

@@ -3,11 +3,7 @@ package com.chelvc.cloud.vehicle.server.service.impl;
 import com.chelvc.cloud.vehicle.api.constant.SystemInformType;
 import com.chelvc.cloud.vehicle.api.dto.*;
 import com.chelvc.cloud.vehicle.api.service.InformService;
-import com.chelvc.cloud.vehicle.server.service.UserCouponService;
-import com.chelvc.cloud.vehicle.server.service.CommentService;
-import com.chelvc.cloud.vehicle.server.service.DynamicEvaluateRecordService;
-import com.chelvc.cloud.vehicle.server.service.IOmsOrderOperateHistoryService;
-import com.chelvc.cloud.vehicle.server.service.OmsOrderPayHistoryService;
+import com.chelvc.cloud.vehicle.server.service.*;
 import com.chelvc.framework.common.model.Pagination;
 import com.chelvc.framework.common.model.Paging;
 import lombok.RequiredArgsConstructor;
@@ -30,6 +26,8 @@ public class InformServiceImpl implements InformService {
 
     private final CommentService commentService;
 
+    private final IOmsOrderReturnApplyService omsOrderReturnApplyService;
+
     @Override
     public Pagination<OmsOrderOperateHistoryDTO> selectOmsOrderOperateHistoryListByUserId(Long userId, Paging paging) {
         return omsOrderOperateHistoryService.selectOmsOrderOperateHistoryListByUserId(userId, paging);
@@ -67,6 +65,19 @@ public class InformServiceImpl implements InformService {
         return newInformDTO;
     }
 
+    @Override
+    public NewMerchantInformDTO getMerchantNewInform(Long userId) {
+        NewMerchantInformDTO dto = new NewMerchantInformDTO();
+        Integer orderNum = omsOrderReturnApplyService.queryReturnOrderNum(userId);
+        dto.setOrderNum(orderNum);
+        return dto;
+    }
+
+    @Override
+    public Pagination<OmsOrderReturnApplyIdsDTO> listOrderReturnApply(Long userId, Paging paging) {
+        return omsOrderReturnApplyService.listOrderReturnApply(userId, paging);
+    }
+
     @Override
     public Pagination<OmsOrderDTO> selectOmsOrderPayHistoryListByUserId(Long userId, Paging paging) {
         return omsOrderPayHistoryService.selectOmsOrderPayHistoryListByUserId(userId, paging);

+ 42 - 4
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/OmsOrderReturnApplyServiceImpl.java

@@ -1,14 +1,24 @@
 package com.chelvc.cloud.vehicle.server.service.impl;
 
-import java.util.Date;
-import java.util.List;
-
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.vehicle.api.dto.OmsOrderReturnApplyDTO;
+import com.chelvc.cloud.vehicle.api.dto.OmsOrderReturnApplyIdsDTO;
 import com.chelvc.cloud.vehicle.server.dao.OmsOrderReturnApplyMapper;
 import com.chelvc.cloud.vehicle.server.entity.OmsOrderReturnApply;
 import com.chelvc.cloud.vehicle.server.service.IOmsOrderReturnApplyService;
+import com.chelvc.framework.common.model.Pagination;
+import com.chelvc.framework.common.model.Paging;
+import com.chelvc.framework.common.util.BeanCopyUtil;
+import com.chelvc.framework.database.util.PagingUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Date;
+import java.util.List;
+
 /**
  * 订单退货申请Service业务层处理
  * 
@@ -16,7 +26,8 @@ import org.springframework.stereotype.Service;
  * @date 2023-11-08
  */
 @Service
-public class OmsOrderReturnApplyServiceImpl implements IOmsOrderReturnApplyService
+public class OmsOrderReturnApplyServiceImpl extends ServiceImpl<OmsOrderReturnApplyMapper, OmsOrderReturnApply> implements
+        IOmsOrderReturnApplyService, com.chelvc.cloud.vehicle.api.service.IOmsOrderReturnApplyService
 {
     @Autowired
     private OmsOrderReturnApplyMapper omsOrderReturnApplyMapper;
@@ -93,4 +104,31 @@ public class OmsOrderReturnApplyServiceImpl implements IOmsOrderReturnApplyServi
     {
         return omsOrderReturnApplyMapper.deleteOmsOrderReturnApplyById(id);
     }
+
+    @Override
+    public Pagination<OmsOrderReturnApplyIdsDTO> listOrderReturnApply(Long merchantId, Paging paging) {
+        Page<OmsOrderReturnApply> page = this.lambdaQuery()
+                .eq(OmsOrderReturnApply::getMerchantId, merchantId)
+                .orderByAsc(OmsOrderReturnApply::getCreateTime).page(PagingUtils.convert(paging));
+        List<OmsOrderReturnApply> omsOrderReturnApplies = page.getRecords();
+        List<OmsOrderReturnApplyIdsDTO> copy = BeanCopyUtil.copy(omsOrderReturnApplies, OmsOrderReturnApplyIdsDTO.class);
+        return PagingUtils.convert(page, copy);
+    }
+
+    @Override
+    public Integer queryReturnOrderNum(Long merchantId) {
+        LambdaQueryWrapper<OmsOrderReturnApply> lwq = Wrappers.lambdaQuery();
+        lwq.eq(OmsOrderReturnApply::getMerchantId, merchantId);
+        lwq.eq(OmsOrderReturnApply::getStatus, 0);
+        return baseMapper.selectCount(lwq);
+    }
+
+    @Override
+    public OmsOrderReturnApplyDTO getOrderReturnApplyInfo(Long id) {
+        OmsOrderReturnApply omsOrderReturnApply = omsOrderReturnApplyMapper.selectOmsOrderReturnApplyById(id);
+        if (omsOrderReturnApply == null){
+            return null;
+        }
+        return BeanCopyUtil.copy(omsOrderReturnApply, OmsOrderReturnApplyDTO.class);
+    }
 }

+ 18 - 0
vehicle-server/src/main/resources/mapper/CommentMapper.xml

@@ -22,4 +22,22 @@
         </where>
         order by create_time desc limit #{param.size}
     </select>
+
+    <select id="getGoodsComments" resultMap="SIMPLE_COMMENT_RESULT_MAP">
+        select id, user_id, score, content, attachments, create_time
+        from `comment`
+        <where>
+            parent_id = #{parentId}
+            <if test="goodsId != null">
+                and goods_id = #{goodsId}
+            </if>
+            <if test="merchantId != null">
+                and merchant_id = #{merchantId}
+            </if>
+            <if test="param.offset != null">
+                and id > #{param.offset}
+            </if>
+        </where>
+        order by create_time desc limit #{param.size}
+    </select>
 </mapper>