Переглянути джерело

Merge remote-tracking branch 'origin/master'

wangming 5 днів тому
батько
коміт
14e33cb246
19 змінених файлів з 106 додано та 57 видалено
  1. 25 23
      yami-shop-api/src/main/java/com/yami/shop/api/controller/MyOrderController.java
  2. 10 6
      yami-shop-api/src/main/java/com/yami/shop/api/controller/OrderController.java
  3. 1 1
      yami-shop-api/src/main/java/com/yami/shop/api/controller/ProdController.java
  4. 6 5
      yami-shop-api/src/main/java/com/yami/shop/api/listener/SubmitOrderListener.java
  5. 4 0
      yami-shop-bean/src/main/java/com/yami/shop/bean/app/dto/CategoryDto.java
  6. 8 2
      yami-shop-bean/src/main/java/com/yami/shop/bean/app/dto/OrderShopDto.java
  7. 3 3
      yami-shop-bean/src/main/java/com/yami/shop/bean/app/dto/ShopCartOrderMergerDto.java
  8. 6 1
      yami-shop-bean/src/main/java/com/yami/shop/bean/dto/hb/ThirdPartyRefundRequest.java
  9. 1 1
      yami-shop-bean/src/main/java/com/yami/shop/bean/model/PointsRecord.java
  10. 1 1
      yami-shop-platform/src/main/java/com/yami/shop/platform/controller/ShopCategoryController.java
  11. 3 1
      yami-shop-service/src/main/java/com/yami/shop/service/hb/impl/HBOrderService.java
  12. 5 3
      yami-shop-service/src/main/java/com/yami/shop/service/impl/OrderRefundServiceImpl.java
  13. 2 1
      yami-shop-service/src/main/java/com/yami/shop/service/impl/OrderServiceImpl.java
  14. 6 0
      yami-shop-service/src/main/java/com/yami/shop/service/impl/PointsRechargeServiceImpl.java
  15. 3 1
      yami-shop-service/src/main/java/com/yami/shop/service/impl/QnhServiceImpl.java
  16. 0 1
      yami-shop-service/src/main/java/com/yami/shop/service/impl/SkuServiceImpl.java
  17. 11 2
      yami-shop-service/src/main/resources/mapper/OrderMapper.xml
  18. 3 3
      yami-shop-service/src/main/resources/mapper/SkuMapper.xml
  19. 8 2
      yami-shop-user/yami-shop-user-comment/src/main/java/com/yami/shop/user/comment/service/impl/UserScoreDetailServiceImpl.java

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

@@ -23,6 +23,7 @@ import com.yami.shop.common.exception.GlobalException;
 import com.yami.shop.common.util.Arith;
 import com.yami.shop.common.util.PageParam;
 import com.yami.shop.config.ShopConfig;
+import com.yami.shop.dao.PointsRecordMapper;
 import com.yami.shop.security.api.util.SecurityUtils;
 import com.yami.shop.service.*;
 import io.swagger.annotations.Api;
@@ -63,6 +64,7 @@ public class MyOrderController {
     private final OrderItemService orderItemService;
 
     private final OrderRefundService orderRefundService;
+    private final PointsRecordMapper pointsRecordMapper;
 
 
     /**
@@ -79,10 +81,10 @@ public class MyOrderController {
 
         Order order = orderService.getOrderByOrderNumberAndUserId(orderNumber, userId, true);
         ShopDetail shopDetail;
-        if(Objects.equals(order.getShopId(),Constant.PLATFORM_SHOP_ID)){
+        if (Objects.equals(order.getShopId(), Constant.PLATFORM_SHOP_ID)) {
             shopDetail = new ShopDetail();
             shopDetail.setShopName(Constant.PLATFORM_SHOP_NAME);
-        }else {
+        } else {
             shopDetail = shopDetailService.getShopDetailByShopId(order.getShopId());
         }
         UserAddrOrder userAddrOrder = userAddrOrderService.getById(order.getAddrOrderId());
@@ -92,7 +94,7 @@ public class MyOrderController {
 
         //计算订单使用积分
         Integer score = 0;
-        for (OrderItem orderItem:orderItems){
+        for (OrderItem orderItem : orderItems) {
             score += orderItem.getUseScore();
         }
 
@@ -107,7 +109,12 @@ public class MyOrderController {
         orderShopDto.setPayType(order.getPayType());
         orderShopDto.setTransfee(order.getFreightAmount());
 //        Math.abs
-        orderShopDto.setReduceAmount( Math.abs(order.getReduceAmount()));
+        Long l = pointsRecordMapper.statisticsPoint(userId, Math.toIntExact(order.getChannelId()));
+        orderShopDto.setTotalAvailableScore(l);
+        if (null != order.getOffsetPoints()) {
+            orderShopDto.setReduceAmount(Arith.div(Double.valueOf(order.getOffsetPoints()), 100));
+            orderShopDto.setTotalUsableScore(Double.valueOf(order.getOffsetPoints()));
+        }
         orderShopDto.setCreateTime(order.getCreateTime());
         orderShopDto.setRemarks(order.getRemarks());
         orderShopDto.setOrderType(order.getOrderType());
@@ -123,13 +130,10 @@ public class MyOrderController {
         // 更新时间
         orderShopDto.setUpdateTime(order.getUpdateTime());
 
-
-
-
         List<OrderRefund> orderRefunds = orderRefundService.getProcessingOrderRefundByOrderId(order.getOrderId());
 
         // 可以退款的状态,并在退款时间内
-        if (order.getHbOrderStatus() > OrderStatus.UNPAY.value() && order.getHbOrderStatus() < OrderStatus.CLOSE.value() && orderRefundService.checkRefundDate(order) ) {
+        if (order.getHbOrderStatus() > OrderStatus.UNPAY.value() && order.getHbOrderStatus() < OrderStatus.CLOSE.value() && orderRefundService.checkRefundDate(order)) {
             orderShopDto.setCanRefund(true);
             // 有没有正在退款中的订单
             if (CollectionUtil.isEmpty(orderRefunds)) {
@@ -140,7 +144,7 @@ public class MyOrderController {
         for (OrderRefund orderRefund : orderRefunds) {
 
             // 整单退款
-            if (Objects.equals(RefundType.ALL.value(),orderRefund.getRefundType())) {
+            if (Objects.equals(RefundType.ALL.value(), orderRefund.getRefundType())) {
                 orderShopDto.setCanRefund(false);
                 // 统一的退款单号
                 for (OrderItemDto orderItemDto : orderItemDtoList) {
@@ -179,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);
@@ -192,7 +196,7 @@ public class MyOrderController {
     public ResponseEntity<OrderItem> getOrderItem(@RequestParam(value = "orderItemId") Long orderItemId) {
         String imgDomainName = shopConfig.getDomain().getResourcesDomainName();
         OrderItem orderItem = orderItemService.getById(orderItemId);
-        orderItem.setPic(orderItem.getPic() !=null ? imgDomainName + "/" + orderItem.getPic() :null);
+        orderItem.setPic(orderItem.getPic() != null ? imgDomainName + "/" + orderItem.getPic() : null);
         return ResponseEntity.ok(orderItem);
     }
 
@@ -204,7 +208,7 @@ public class MyOrderController {
         String imgDomainName = shopConfig.getDomain().getResourcesDomainName();
         List<OrderItem> orderItems = orderItemService.list(new LambdaQueryWrapper<OrderItem>().eq(OrderItem::getOrderNumber, orderNumber));
         for (OrderItem orderItem : orderItems) {
-            orderItem.setPic(orderItem.getPic() !=null ? imgDomainName + "/" + orderItem.getPic() :null);
+            orderItem.setPic(orderItem.getPic() != null ? imgDomainName + "/" + orderItem.getPic() : null);
         }
         return ResponseEntity.ok(orderItems);
     }
@@ -217,9 +221,9 @@ public class MyOrderController {
     @ApiImplicitParams({
             @ApiImplicitParam(name = "commStatus", value = "订单状态 0:待评价 1已评价", required = false, dataType = "Integer")
     })
-    public ResponseEntity<IPage<MyOrderDto>> myOrderComment(@RequestParam(value = "commStatus") Integer commStatus,PageParam<MyOrderDto> page) {
+    public ResponseEntity<IPage<MyOrderDto>> myOrderComment(@RequestParam(value = "commStatus") Integer commStatus, PageParam<MyOrderDto> page) {
         String userId = SecurityUtils.getUser().getUserId();
-        IPage<MyOrderDto> myOrderDtoIpage = myOrderService.myOrderComment(page, userId,commStatus);
+        IPage<MyOrderDto> myOrderDtoIpage = myOrderService.myOrderComment(page, userId, commStatus);
         return ResponseEntity.ok(myOrderDtoIpage);
     }
 
@@ -233,7 +237,7 @@ public class MyOrderController {
     })
     public ResponseEntity<IPage<MyOrderItemDto>> myOrderItemsComment(@RequestParam(value = "commStatus") Integer commStatus, PageParam<MyOrderItemDto> page) {
         String userId = SecurityUtils.getUser().getUserId();
-        IPage<MyOrderItemDto> myOrderDtoIpage = myOrderService.myOrderItemsComment(page, userId,commStatus);
+        IPage<MyOrderItemDto> myOrderDtoIpage = myOrderService.myOrderItemsComment(page, userId, commStatus);
         return ResponseEntity.ok(myOrderDtoIpage);
     }
 
@@ -244,10 +248,10 @@ public class MyOrderController {
     @ApiOperation(value = "订单列表信息查询", notes = "根据订单编号或者订单中商品名称搜索")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "status", value = "订单状态 1:待付款 2:待发货 3:待收货 4:待评价 5:成功 6:失败", required = false, dataType = "Integer"),
-            @ApiImplicitParam(name = "orderName",value = "订单编号或者订单中商品名称", required = false,dataType = "String"),
-            @ApiImplicitParam(name = "orderTimeStatus",value = "0全部订单 1最近七天 2最近三个月 3三个月之前 订单", required = false,dataType = "Integer"),
-            @ApiImplicitParam(name = "orderType",value = "0全部订单 1拼团订单 2秒杀订单 3普通订单", required = false,dataType = "Integer"),
-            @ApiImplicitParam(name = "orderNumber",value = "订单编号", required = false,dataType = "String")
+            @ApiImplicitParam(name = "orderName", value = "订单编号或者订单中商品名称", required = false, dataType = "String"),
+            @ApiImplicitParam(name = "orderTimeStatus", value = "0全部订单 1最近七天 2最近三个月 3三个月之前 订单", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "orderType", value = "0全部订单 1拼团订单 2秒杀订单 3普通订单", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "orderNumber", value = "订单编号", required = false, dataType = "String")
     })
     public ResponseEntity<IPage<MyOrderDto>> myOrderSearch(@RequestParam(value = "status") Integer status,
                                                            @RequestParam(value = "orderName") String orderName,
@@ -256,7 +260,7 @@ public class MyOrderController {
                                                            @RequestParam(value = "orderNumber") String orderNumber,
                                                            PageParam<MyOrderDto> page) {
         String userId = SecurityUtils.getUser().getUserId();
-        IPage<MyOrderDto> myOrderDtoIpage = myOrderService.pageMyOrderByParams(page, userId, status,orderName,orderTimeStatus,orderType,orderNumber);
+        IPage<MyOrderDto> myOrderDtoIpage = myOrderService.pageMyOrderByParams(page, userId, status, orderName, orderTimeStatus, orderType, orderNumber);
         return ResponseEntity.ok(myOrderDtoIpage);
     }
 
@@ -325,7 +329,7 @@ public class MyOrderController {
 
         Order order = orderService.getOrderByOrderNumberAndUserId(orderNumber, userId, true);
 
-        if (!Objects.equals(order.getHbOrderStatus(), OrderStatus.SUCCESS.value()) && !Objects.equals(order.getHbOrderStatus(), OrderStatus.CLOSE.value()) ) {
+        if (!Objects.equals(order.getHbOrderStatus(), OrderStatus.SUCCESS.value()) && !Objects.equals(order.getHbOrderStatus(), OrderStatus.CLOSE.value())) {
             throw new GlobalException("订单未完成或未关闭,无法删除订单");
         }
 
@@ -336,8 +340,6 @@ public class MyOrderController {
     }
 
 
-
-
 //    /**
 //     * 获取我的订单订单数量
 //     */

+ 10 - 6
yami-shop-api/src/main/java/com/yami/shop/api/controller/OrderController.java

@@ -79,11 +79,11 @@ public class OrderController {
     public ResponseEntity<ShopCartOrderMergerDto> confirm(@Valid @RequestBody OrderParam orderParam) {
         String userId = SecurityUtils.getUser().getUserId();
         User user = userService.getById(userId);
-        if (user==null){
+        if (user == null) {
             throw new GlobalException("用户信息不存在...");
         }
-        CullenUtils.validateDataThrowException(user.getChannelId()==null,"不支持非企业用户购买...");
-        CullenUtils.validateDataThrowException(user.getStatus().equals(0),"不支持非企业用户购买...");
+        CullenUtils.validateDataThrowException(user.getChannelId() == null, "不支持非企业用户购买...");
+        CullenUtils.validateDataThrowException(user.getStatus().equals(0), "不支持非企业用户购买...");
 
         if (orderParam.getOrderItem() == null) {
             orderParam.getBasketIds().forEach(basketId -> {
@@ -91,7 +91,6 @@ public class OrderController {
                 Sku byIdss = skuService.getById(byId);
                 boolean skuStock = qnhService.getSkuStock(byIdss.getSkuCode(), byId.getProdId(), orderParam.getPlatform());
                 Product byId1 = productService.getById(byId.getProdId(), orderParam.getPlatform());
-//                byId1.setTotalStocks(byIdss.getStocks());
                 productService.updateById(byId1);
                 if (skuStock && byId1.getTotalStocks() < byId.getBasketCount()) {
                     throw new GlobalException("当前选择的规格库存不足!");
@@ -99,7 +98,7 @@ public class OrderController {
             });
         } else {
             Sku byId = skuService.getById(orderParam.getOrderItem().getSkuId());
-            boolean skuStock = qnhService.getSkuStock(byId.getSkuCode(), byId.getProdId(), orderParam.getPlatform());
+            boolean skuStock = qnhService.getSkuStock(byId.getSkuCode(), orderParam.getOrderItem().getProdId(), orderParam.getPlatform());
             Product byId1 = productService.getById(byId.getProdId(), orderParam.getPlatform());
             productService.updateById(byId1);
             if (skuStock && byId1.getTotalStocks() < orderParam.getOrderItem().getProdCount()) {
@@ -133,8 +132,9 @@ public class OrderController {
         if (null != point) {
             v = ((double) point / 100);
             //总的可用积分
-            shopCartOrderMergerDto.setTotalAvailableScore(point);
+//        shopCartOrderMergerDto.setTotalAvailableScore(point);
         }
+
         // 所有店铺的订单信息
         List<ShopCartOrderDto> shopCartOrders = new ArrayList<>();
 
@@ -205,6 +205,9 @@ public class OrderController {
         //v
         shopCartOrderMergerDto.setActualTotal(Arith.sub(actualTotal, v) < 0 ? 0 : Arith.sub(actualTotal, v));
         shopCartOrderMergerDto.setTotalUsableScore(Arith.sub(actualTotal, v) < 0 ? actualTotal : v);//总共消耗的积分
+//        shopCartOrderMergerDto.setTotalAvailableScore(point);
+
+        shopCartOrderMergerDto.setTotalAvailableScore((long)Arith.mul(shopCartOrderMergerDto.getTotalUsableScore(),100));//总共消耗的积分
         shopCartOrderMergerDto.setTotal(total);
         shopCartOrderMergerDto.setTotalCount(totalCount);
         shopCartOrderMergerDto.setOrderReduce(allOrderReduce);
@@ -253,6 +256,7 @@ public class OrderController {
         }
         shopCartOrderMergerDto.setActualTotal(Arith.sub(actualTotal, v) < 0 ? 0 : Arith.sub(actualTotal, v));
         shopCartOrderMergerDto.setTotalUsableScore(Arith.sub(actualTotal, v) < 0 ? actualTotal : v);//总共消耗的积分
+        shopCartOrderMergerDto.setTotalAvailableScore((long)Arith.mul(shopCartOrderMergerDto.getTotalUsableScore(),100));
         shopCartOrderMergerDto.setTotalTransfee(totalTransfee);
         shopCartOrderMergerDto.setOrderReduce(allOrderReduce);
 

+ 1 - 1
yami-shop-api/src/main/java/com/yami/shop/api/controller/ProdController.java

@@ -58,7 +58,7 @@ public class ProdController {
     @GetMapping("/prodInfo")
     @ApiOperation(value = "商品详情信息", notes = "根据商品ID(prodId)获取商品信息")
     @ApiImplicitParam(name = "prodId", value = "商品ID", required = true, dataType = "Long")
-    public ResponseEntity<ProductDto> prodInfo(Long prodId, Integer platform, Long shopId) {
+    public ResponseEntity<ProductDto> prodInfo(@RequestParam("prodId") Long prodId, @RequestParam("platform") Integer platform, @RequestParam("shopId") Long shopId) {
 
         Product product = prodService.getProductByProdId(prodId, platform);
         if (product == null || product.getStatus() != 1) {

+ 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;

+ 4 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/app/dto/CategoryDto.java

@@ -41,6 +41,10 @@ public class CategoryDto {
 	@JsonSerialize(using = ImgJsonSerializer.class)
 	private String icon;
 
+	@ApiModelProperty(value = "标签",required=true)
+	@JsonSerialize(using = ImgJsonSerializer.class)
+	private String label;
+
 	@ApiModelProperty(value = "子类分类列表",required=true)
 	private List<Category> categories;
 }

+ 8 - 2
yami-shop-bean/src/main/java/com/yami/shop/bean/app/dto/OrderShopDto.java

@@ -59,8 +59,14 @@ public class OrderShopDto implements Serializable {
     @ApiModelProperty(value = "运费", required = true)
     private Double transfee;
 
-    @ApiModelProperty(value = "优惠总额", required = true)
-    private Double reduceAmount;
+    @ApiModelProperty(value = "使用积分换算的钱", required = true)
+    private Double reduceAmount= 0.0;
+
+    @ApiModelProperty(value = "整个订单使用的积分数", required = true)
+    private Double totalUsableScore=0.0;
+
+    @ApiModelProperty(value = "所有可用积分")
+    private Long totalAvailableScore=0L;
 
     @ApiModelProperty(value = "促销活动优惠金额", required = true)
     private Double discountMoney;

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

@@ -36,19 +36,19 @@ public class ShopCartOrderMergerDto implements Serializable {
     private Double orderReduce = 0.0;
 
     @ApiModelProperty(value = "订单所需积分", required = true)
-    private Integer scorePrice;
+    private Integer scorePrice=0;
 
     @ApiModelProperty(value = "整个订单使用的积分数", required = true)
     private Double totalUsableScore = 0.0;
 
     @ApiModelProperty(value = "所有可用积分")
-    private Long totalAvailableScore;
+    private Long totalAvailableScore=0L;
 
     @ApiModelProperty(value = "整个订单最多可以使用的积分数", required = true)
     private Integer maxUsableScore = 0;
 
     @ApiModelProperty(value = "积分抵扣金额", required = true)
-    private Double totalScoreAmount;
+    private Double totalScoreAmount=0.0;
 
     @ApiModelProperty(value = "购物积分抵现比例", required = true)
     private Double shopUseScore;

+ 6 - 1
yami-shop-bean/src/main/java/com/yami/shop/bean/dto/hb/ThirdPartyRefundRequest.java

@@ -21,7 +21,12 @@ public class ThirdPartyRefundRequest {
     private Long pointDeduction; // 佣金,平台服务费
     private String rejectReason; // 驳回原因
     private Integer isAppeal; // 是否申诉单 0:否 1:是
-    private Integer applyDeal; // 退款类型
+    //退款类型
+    //10:仅退款
+    //40:退货退款
+    //30:直赔
+    //50:退差价
+    private Integer applyDeal;
     private Long packPay; // 包装费
     private Long freightPay; // 配送费原价
     private Long businessShippingFeeSubsidy; // 商家配送费补贴

+ 1 - 1
yami-shop-bean/src/main/java/com/yami/shop/bean/model/PointsRecord.java

@@ -94,7 +94,7 @@ public class PointsRecord implements Serializable {
     private String pointsTypeStr;
 
     @TableField(exist = false)
-    private Long totalAvailablePoints;
+    private Long totalAvailablePoints=0L;
 
     /**
      * 变动积分

+ 1 - 1
yami-shop-platform/src/main/java/com/yami/shop/platform/controller/ShopCategoryController.java

@@ -144,7 +144,7 @@ public class ShopCategoryController {
      */
     @PutMapping
     @ApiOperation(value = "修改门店前台类目", notes = "修改门店前台类目")
-    public R<Void> update(@Valid @RequestBody ShopCategory shopCategory) {
+    public R update(@Valid @RequestBody ShopCategory shopCategory) {
         if (shopCategory.getId() == null) {
             return R.FAIL("ID不能为空");
         }

+ 3 - 1
yami-shop-service/src/main/java/com/yami/shop/service/hb/impl/HBOrderService.java

@@ -454,7 +454,9 @@ public class HBOrderService implements IHBOrderService {
         //订单支付信息
         List<OrderPayment> orderPaymentList = new ArrayList<>();
         OrderPayment orderPayment = new OrderPayment();
-        if (order.getPayType() == 1) {
+        if (order.getPayType() == null) {
+            orderPayment.setPaymentType(9999);
+        }  else if (order.getPayType() == 1) {
             orderPayment.setPaymentType(1002);
         } else if (order.getPayType() == 2) {
             orderPayment.setPaymentType(1001);

+ 5 - 3
yami-shop-service/src/main/java/com/yami/shop/service/impl/OrderRefundServiceImpl.java

@@ -1010,17 +1010,19 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
             thirdPartyRefundRequest.setChannelOrderId(channelOrderId);
             thirdPartyRefundRequest.setOutStationNo(shopDetailByShopId.getHbStationNo());
             thirdPartyRefundRequest.setAfterSaleOrder(orderRefund.getRefundSn());
-            thirdPartyRefundRequest.setSaleType(2);
+            thirdPartyRefundRequest.setSaleType(1);//售前售后标 1:售前 2:售后
             thirdPartyRefundRequest.setReason(orderRefund.getBuyerReason());
             thirdPartyRefundRequest.setProblemDescription(orderRefund.getBuyerDesc());
             thirdPartyRefundRequest.setPictures(orderRefund.getPhotoFiles());
 
             thirdPartyRefundRequest.setRefundStatus(orderRefund.getReturnMoneySts());
             Integer applyType = orderRefund.getApplyType();
-            if (Objects.equals(applyType, 2)) {
+            if (Objects.equals(applyType, 1)) {
+                thirdPartyRefundRequest.setApplyDeal(10);
+            } else if (Objects.equals(applyType, 2)){
                 thirdPartyRefundRequest.setApplyDeal(40);
             } else {
-                thirdPartyRefundRequest.setApplyDeal(10);
+                thirdPartyRefundRequest.setApplyDeal(50);
             }
 
             thirdPartyRefundRequest.setPickAddress(orderRefund.getBuyerMobile());

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

@@ -905,6 +905,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
      */
     @Override
     public void returnRefund(String orderNumber) {
+        log.info("====================开始退货退款orderNumber:{}====================", orderNumber);
         OrderRefund orderRefund = orderRefundMapper.selectOne(new LambdaQueryWrapper<OrderRefund>()
                 .eq(OrderRefund::getOrderNumber, orderNumber)
                 .eq(OrderRefund::getReturnMoneySts, 70)
@@ -1046,7 +1047,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                     }
                     break;
             }
-
+            order.setHbOrderStatus(OrderStatus.CLOSE.value());
             orderMapper.updateById(order);
         }
     }

+ 6 - 0
yami-shop-service/src/main/java/com/yami/shop/service/impl/PointsRechargeServiceImpl.java

@@ -22,6 +22,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
+import java.math.BigDecimal;
 import java.net.URLEncoder;
 import java.util.ArrayList;
 import java.util.Date;
@@ -39,6 +40,7 @@ import java.util.List;
 public class PointsRechargeServiceImpl extends ServiceImpl<PointsRechargeMapper, PointsRecharge> implements PointsRechargeService {
 
     private final PointsRechargeMapper pointsRechargeMapper;
+    private final PointsRecordMapper pointsRecordMapper;
     private final PointsFailureRecordService pointsFailureRecordService;
     private final UserMapper userMapper;
     private final ChannelMapper channelMapper;
@@ -148,6 +150,10 @@ public class PointsRechargeServiceImpl extends ServiceImpl<PointsRechargeMapper,
                 pointsRecord.setPointsAudit(1);
                 pointsRecord.setCreationDate(new Date());
                 pointsRecord.setExpiryDate(pointsRecharge.getExpiryDate());
+
+                Long aLong = pointsRecordMapper.statisticsPoint(pointsRecord.getUserId(), Math.toIntExact(pointsRecord.getChannelId()));
+                pointsRecord.setCurrentlyAvailablePoints(pointsRecord.getPoints().add(BigDecimal.valueOf(aLong == null ? 0 : aLong )));
+
                 pointsRecordService.save(pointsRecord);
                 successCount++;
                 addImportRecord(1, "成功", templateDTO, code,userId);

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

@@ -189,7 +189,9 @@ public class QnhServiceImpl implements IQnhService {
 
     @Override
     public boolean getSkuStock(String skuCode, Long prodId, Integer platform) {
-        Sku one1 = skuService.getOne(Wrappers.<Sku>lambdaQuery().eq(Sku::getSkuCode, skuCode).eq(Sku::getProdId, prodId));
+        Sku one1 = skuService.getOne(Wrappers.<Sku>lambdaQuery()
+                .eq(Sku::getSkuCode, skuCode)
+                .eq(Sku::getProdId, prodId));
         Map<String, Object> body = bulidMap();
         if (null == one1) throw new GlobalException("请重新选择规格,该规格不存在!");
         Product byId = productService.getById(prodId, platform);

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

@@ -33,7 +33,6 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements SkuSe
     private SkuMapper skuMapper;
 
     @Override
-    @Cacheable(cacheNames = "skuList", key = "#prodId")
     public List<Sku> listByProdId(Long prodId) {
         return skuMapper.listByProdId(prodId);
     }

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

@@ -525,8 +525,17 @@
             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 != 0">
-            AND temp.hb_order_status = #{status}
+        <if test="status != null">
+            AND
+            <choose>
+                <when test="20 == status">
+                    temp.hb_order_status IN (20,30,40)
+                </when>
+                <otherwise>
+                    temp.hb_order_status = #{status}
+                </otherwise>
+            </choose>
+
         </if>
         ORDER BY temp.create_time DESC
         LIMIT #{adapter.begin} , #{adapter.size}

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

@@ -70,10 +70,10 @@
                ts.sku_code,
                ts.hb_spu_id,
                ts.hb_sku_id
-        FROM tz_sku AS ts
-                 LEFT JOIN tz_shop_sku AS tss ON ts.sku_id = tss.sku_id
+        FROM tz_shop_sku AS tss
+                 LEFT JOIN tz_sku AS ts ON ts.sku_id = tss.sku_id
                  LEFT JOIN tz_channel_prod AS tcp ON ts.sku_id = tcp.sku_id
-        WHERE ts.prod_id = #{prodId}
+        WHERE tss.spu_id = #{prodId}
           AND ts.is_delete = 0
           AND tcp.is_delete = 0
           AND ts.`status` = 1

+ 8 - 2
yami-shop-user/yami-shop-user-comment/src/main/java/com/yami/shop/user/comment/service/impl/UserScoreDetailServiceImpl.java

@@ -161,24 +161,30 @@ public class UserScoreDetailServiceImpl extends ServiceImpl<UserScoreDetailMappe
             if (isExpiredToday(pointsRecord.getExpiryDate())) {
                 pointsRecord.setPointsTypeStr("过期");
                 mark = "-";
+                pointsRecord.setVariablePointsStr(mark + (null!=pointsRecord.getVariablePoints()?pointsRecord.getVariablePoints():"0"));
             } else {
                 switch (pointsRecord.getPointsType()) {
                     case 1:
                         pointsRecord.setPointsTypeStr("充值");
                         mark = "+";
+                        pointsRecord.setVariablePointsStr(mark + (null!=pointsRecord.getVariablePoints()?pointsRecord.getVariablePoints():pointsRecord.getPoints()));
                         break;
                     case 2:
                         pointsRecord.setPointsTypeStr("购物");
                         mark = "-";
+                        pointsRecord.setVariablePointsStr(mark + (null!=pointsRecord.getVariablePoints()?pointsRecord.getVariablePoints():"0"));
                         break;
                     case 3:
                         pointsRecord.setPointsTypeStr("退款");
                         mark = "+";
+                        pointsRecord.setVariablePointsStr(mark + (null!=pointsRecord.getVariablePoints()?pointsRecord.getVariablePoints():"0"));
                         break;
                 }
             }
-            pointsRecord.setVariablePointsStr(mark + pointsRecord.getVariablePoints());
-            pointsRecord.setTotalAvailablePoints(pointsRecord.getCurrentlyAvailablePoints().longValue());
+            //此时当前可用
+            if(null!=pointsRecord.getCurrentlyAvailablePoints()){
+                pointsRecord.setTotalAvailablePoints(pointsRecord.getCurrentlyAvailablePoints().longValue());
+            }
         }).collect(Collectors.toList());
         pointsRecordIPage.setRecords(collect);
         return pointsRecordIPage;