Quellcode durchsuchen

订单,积分,分类,退货的功能优化

wang vor 5 Tagen
Ursprung
Commit
dd082fc836

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

@@ -111,7 +111,7 @@ public class MyOrderController {
 //        Math.abs
         Long l = pointsRecordMapper.statisticsPoint(userId, Math.toIntExact(order.getChannelId()));
         orderShopDto.setTotalAvailableScore(l);
-        if(null!=order.getOffsetPoints()){
+        if (null != order.getOffsetPoints()) {
             orderShopDto.setReduceAmount(Arith.div(Double.valueOf(order.getOffsetPoints()), 100));
             orderShopDto.setTotalUsableScore(Double.valueOf(order.getOffsetPoints()));
         }
@@ -183,7 +183,7 @@ public class MyOrderController {
     @ApiImplicitParams({
             @ApiImplicitParam(name = "status", value = "订单状态 1:待付款 2:待发货 3:待收货 4:待评价 5:成功 6:失败", required = false, dataType = "Integer"),
     })
-    public ResponseEntity<IPage<MyOrderDto>> myOrder(@RequestParam(value = "status") Integer status, PageParam<MyOrderDto> page) {
+    public ResponseEntity<IPage<MyOrderDto>> myOrder(@ModelAttribute PageParam<MyOrderDto> page, @RequestParam(value = "status", required = false) Integer status) {
         String userId = SecurityUtils.getUser().getUserId();
         IPage<MyOrderDto> myOrderDtoIpage = myOrderService.pageMyOrderByUserIdAndStatus(page, userId, status);
         return ResponseEntity.ok(myOrderDtoIpage);

+ 6 - 5
yami-shop-api/src/main/java/com/yami/shop/api/listener/SubmitOrderListener.java

@@ -202,7 +202,7 @@ public class SubmitOrderListener {
                                 isUseTransfee = Boolean.TRUE;
                             }
                             //把钱换算成积分
-                            actualItem = this.doGetOrderItemPoints(Arith.mul(useActualItem, 100), expiryQueue, orderNumber);
+                            actualItem = this.doGetOrderItemPoints(Arith.mul(useActualItem, 100), expiryQueue, orderNumber,userId,mergerOrder.getPlatform());
                             //把积分换算成钱
                             if (actualItem > 0) {
                                 actualItem = Arith.div(actualItem, 100);
@@ -398,10 +398,11 @@ public class SubmitOrderListener {
     }
 
 
-    private Double doGetOrderItemPoints(Double actualTotal, ArrayDeque<PointsRecord> expiryQueue, String orderNumber) {
+    private Double doGetOrderItemPoints(Double actualTotal, ArrayDeque<PointsRecord> expiryQueue, String orderNumber, String userId, Integer platform) {
         PointsRecord pointsRecord = expiryQueue.poll();
         PointsRecord pr = new PointsRecord();
         if (pointsRecord != null) {
+            Long point = pointsRecordMapper.statisticsPoint(userId, platform);
             //判定可用金额
             BigDecimal points = pointsRecord.getPoints() != null ? pointsRecord.getPoints() : BigDecimal.ZERO;
             BigDecimal variablePoints = pointsRecord.getVariablePoints() != null ? pointsRecord.getVariablePoints() : BigDecimal.ZERO;
@@ -432,18 +433,18 @@ public class SubmitOrderListener {
                 pr.setVariablePoints(BigDecimal.valueOf(actualTotal));
                 actualTotal = 0.0;
             }
-            pointsRecord.setCurrentlyAvailablePoints(pointsRecord.getPoints().subtract(pointsRecord.getVariablePoints()));
+            pointsRecord.setCurrentlyAvailablePoints(BigDecimal.valueOf(point).subtract(pointsRecord.getVariablePoints()));
             int update = pointsRecordMapper.updateById(pointsRecord);
             if (update > 0) {
                 pr.setId(null);
                 pr.setPointsType(2);
                 pr.setOrderNumber(orderNumber);
-                pr.setCurrentlyAvailablePoints(pr.getPoints().subtract(pr.getVariablePoints()));
+                pr.setCurrentlyAvailablePoints(BigDecimal.valueOf(point).subtract(pr.getVariablePoints()));
                 pointsRecordMapper.insert(pr);
             }
             //  插入数据库
             if (actualTotal > 0.0) {
-                actualTotal = this.doGetOrderItemPoints(actualTotal, expiryQueue, orderNumber);
+                actualTotal = this.doGetOrderItemPoints(actualTotal, expiryQueue, orderNumber, userId, platform);
             }
         }
         return actualTotal;

+ 1 - 1
yami-shop-service/src/main/java/com/yami/shop/service/impl/OrderServiceImpl.java

@@ -1047,7 +1047,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                     }
                     break;
             }
-
+            order.setHbOrderStatus(OrderStatus.CLOSE.value());
             orderMapper.updateById(order);
         }
     }

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

@@ -525,7 +525,7 @@
             temp.pay_time,
             temp.order_id, temp.create_time, temp.freight_amount,temp.order_number,temp.actual_total,temp.shop_id,temp.addr_order_id FROM tz_order temp
         WHERE temp.user_id = #{userId} and temp.delete_status = 0
-        <if test="status != null and '' != status">
+        <if test="status != null">
             AND
             <choose>
                 <when test="20 == status">