wangming 4 hari lalu
induk
melakukan
f96188f885

+ 12 - 2
yami-shop-api/src/main/java/com/yami/shop/api/controller/OrderRefundController.java

@@ -92,7 +92,6 @@ public class OrderRefundController {
     @Autowired
     private SkuService skuService;
 
-
     @GetMapping("getIsDistribution")
     @ApiOperation(value = "获取是否在配送中")
     public ResponseEntity<Boolean> getIsDistribution( String orderNumber){
@@ -389,7 +388,18 @@ public class OrderRefundController {
         newOrderRefund.setApplyTime(new Date());
         newOrderRefund.setUpdateTime(new Date());
         newOrderRefund.setFreightAmount(orderRefundParam.getFreightAmount());
-        newOrderRefund.setOffsetPoints(order.getOffsetPoints()==null?0:order.getOffsetPoints());
+
+        long orderPoints = order.getOffsetPoints() == null ? 0 : order.getOffsetPoints();
+        if (orderPoints==0){
+            newOrderRefund.setOffsetPoints(orderPoints);
+        }else {
+            double refundTotalPoints = orderRefundParam.getOrderRefundSkuList().stream()
+                    .mapToDouble(item -> item.getSkuPrice() * item.getProductCount())
+                    .sum()*100;
+            long refundPoints = Math.round(refundTotalPoints);
+            newOrderRefund.setOffsetPoints(Math.min(refundPoints, orderPoints));
+        }
+
         OrderRefund orderRefund = orderRefundService.applyRefund(newOrderRefund);
         if (!orderRefundSkuList.isEmpty()){
             orderRefundSkuList.forEach(c->{

+ 9 - 3
yami-shop-bean/src/main/java/com/yami/shop/bean/app/dto/ApiOrderRefundDto.java

@@ -1,9 +1,6 @@
 package com.yami.shop.bean.app.dto;
 
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import com.yami.shop.bean.model.OrderItem;
-import com.yami.shop.bean.model.RefundAddr;
-import com.yami.shop.bean.model.RefundDelivery;
 import com.yami.shop.common.serializer.json.ImgJsonSerializer;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -112,6 +109,15 @@ public class ApiOrderRefundDto {
     @ApiModelProperty("卖家备注")
     private String sellerMsg;
 
+    @ApiModelProperty("运费")
+    private Double freightAmount;
+
+    @ApiModelProperty("积分")
+    private Long offsetPoints;
+
+    @ApiModelProperty("商品总额")
+    private Double goodsTotal;
+
     /*
 ac
     @ApiModelProperty("物流公司名称")

+ 5 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/dto/OrderRefundDto.java

@@ -12,6 +12,7 @@ package com.yami.shop.bean.dto;
 
 import com.yami.shop.bean.model.OrderItem;
 import com.yami.shop.bean.model.OrderRefund;
+import com.yami.shop.bean.model.OrderRefundRecord;
 import com.yami.shop.bean.model.RefundDelivery;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -74,6 +75,10 @@ public class OrderRefundDto extends OrderRefund implements Serializable {
      * 订单项
      */
     private List<OrderItem> orderItems = new ArrayList<>();
+    /**
+     * 退款流程
+     */
+    private List<OrderRefundRecord> records = new ArrayList<>();
     /**
      * 订单退款状态
      */

+ 4 - 0
yami-shop-service/src/main/java/com/yami/shop/service/impl/OrderRefundServiceImpl.java

@@ -75,6 +75,7 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
     private final OrderRefundSkuMapper orderRefundSkuMapper;
 
 
+
     /**
      * 获取分页对象
      */
@@ -119,6 +120,9 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
                 orderRefundDto.setIsCancel(false);
             }
         }
+        orderRefundDto.setRecords(orderRefundRecordMapper.selectList(new LambdaQueryWrapper<OrderRefundRecord>()
+                .eq(OrderRefundRecord::getOrderRefundId,orderRefundDto.getRefundId())
+                .orderByAsc(OrderRefundRecord::getSort)));
         return orderRefundDto;
     }
 

+ 3 - 0
yami-shop-service/src/main/resources/mapper/OrderRefundMapper.xml

@@ -137,6 +137,9 @@
         <result column="s_settlement_id" property="settlementId"/>
         <result column="o_pay_time" property="orderPayTime"/>
 
+        <result column="freight_amount" property="freightAmount"/>
+        <result column="offset_points" property="offsetPoints"/>
+
         <!-- 退货地址信息 -->
         <association property="refundDelivery" javaType="com.yami.shop.bean.model.RefundDelivery">
             <id column="refund_delivery_id" property="refundDeliveryId"/>