zhangxin 2 viikkoa sitten
vanhempi
commit
899c1d439e
56 muutettua tiedostoa jossa 694 lisäystä ja 604 poistoa
  1. 0 9
      yami-shop-api/src/main/java/com/yami/shop/api/config/SwaggerConfiguration.java
  2. 0 9
      yami-shop-api/src/main/java/com/yami/shop/api/controller/AddrController.java
  3. 0 9
      yami-shop-api/src/main/java/com/yami/shop/api/controller/AreaController.java
  4. 0 9
      yami-shop-api/src/main/java/com/yami/shop/api/controller/CategoryController.java
  5. 0 9
      yami-shop-api/src/main/java/com/yami/shop/api/controller/DeliveryController.java
  6. 1 1
      yami-shop-api/src/main/java/com/yami/shop/api/controller/MyOrderController.java
  7. 4 5
      yami-shop-api/src/main/java/com/yami/shop/api/controller/OrderController.java
  8. 8 1
      yami-shop-api/src/main/java/com/yami/shop/api/controller/OrderRefundController.java
  9. 5 2
      yami-shop-api/src/main/java/com/yami/shop/api/controller/ProdController.java
  10. 6 6
      yami-shop-api/src/main/java/com/yami/shop/api/controller/QnhController.java
  11. 2 2
      yami-shop-api/src/main/java/com/yami/shop/api/controller/ShopCartController.java
  12. 1 1
      yami-shop-api/src/main/java/com/yami/shop/api/listener/ConfirmOrderListener.java
  13. 11 11
      yami-shop-api/src/main/java/com/yami/shop/api/listener/SubmitOrderListener.java
  14. 1 1
      yami-shop-bean/src/main/java/com/yami/shop/bean/app/dto/ShopCartOrderMergerDto.java
  15. 1 1
      yami-shop-bean/src/main/java/com/yami/shop/bean/app/param/ChangeShopCartParam.java
  16. 1 1
      yami-shop-bean/src/main/java/com/yami/shop/bean/app/param/OrderItemParam.java
  17. 1 1
      yami-shop-bean/src/main/java/com/yami/shop/bean/app/param/OrderParam.java
  18. 1 1
      yami-shop-bean/src/main/java/com/yami/shop/bean/app/param/SubmitOrderParam.java
  19. 9 0
      yami-shop-bean/src/main/java/com/yami/shop/bean/vo/SimilarProdListVo.java
  20. 1 1
      yami-shop-delivery/yami-shop-delivery-comment/src/main/java/com/yami/shop/delivery/comment/dao/Transport2Mapper.java
  21. 1 1
      yami-shop-delivery/yami-shop-delivery-comment/src/main/java/com/yami/shop/delivery/comment/service/Transport2Service.java
  22. 1 1
      yami-shop-delivery/yami-shop-delivery-comment/src/main/java/com/yami/shop/delivery/comment/service/TransportManagerService.java
  23. 2 2
      yami-shop-delivery/yami-shop-delivery-comment/src/main/java/com/yami/shop/delivery/comment/service/impl/Transport2ServiceImpl.java
  24. 2 2
      yami-shop-delivery/yami-shop-delivery-comment/src/main/java/com/yami/shop/delivery/comment/service/impl/TransportManagerServiceImpl.java
  25. 1 1
      yami-shop-delivery/yami-shop-delivery-comment/src/main/resources/mapper/Transport2Mapper.xml
  26. 2 2
      yami-shop-groupbuy/yami-shop-groupbuy-comment/src/main/java/com/yami/shop/groupbuy/comment/service/impl/GroupOrderServiceImpl.java
  27. 0 9
      yami-shop-mp/yami-shop-mp-comment/src/main/java/com/yami/shop/mp/comment/model/WeixinSubscribe.java
  28. 1 1
      yami-shop-service/src/main/java/com/yami/shop/dao/BasketMapper.java
  29. 5 4
      yami-shop-service/src/main/java/com/yami/shop/dao/OrderRefundMapper.java
  30. 3 3
      yami-shop-service/src/main/java/com/yami/shop/dao/PointsRecordMapper.java
  31. 3 1
      yami-shop-service/src/main/java/com/yami/shop/dao/ProductMapper.java
  32. 3 3
      yami-shop-service/src/main/java/com/yami/shop/dao/SkuMapper.java
  33. 1 1
      yami-shop-service/src/main/java/com/yami/shop/service/BasketService.java
  34. 2 2
      yami-shop-service/src/main/java/com/yami/shop/service/IQnhService.java
  35. 4 0
      yami-shop-service/src/main/java/com/yami/shop/service/OrderRefundService.java
  36. 3 2
      yami-shop-service/src/main/java/com/yami/shop/service/ProductService.java
  37. 3 3
      yami-shop-service/src/main/java/com/yami/shop/service/SkuService.java
  38. 2 2
      yami-shop-service/src/main/java/com/yami/shop/service/impl/BasketServiceImpl.java
  39. 5 0
      yami-shop-service/src/main/java/com/yami/shop/service/impl/OrderRefundServiceImpl.java
  40. 392 372
      yami-shop-service/src/main/java/com/yami/shop/service/impl/OrderServiceImpl.java
  41. 1 1
      yami-shop-service/src/main/java/com/yami/shop/service/impl/PointsRechargeServiceImpl.java
  42. 1 1
      yami-shop-service/src/main/java/com/yami/shop/service/impl/PointsRecordServiceImpl.java
  43. 16 7
      yami-shop-service/src/main/java/com/yami/shop/service/impl/ProductServiceImpl.java
  44. 56 57
      yami-shop-service/src/main/java/com/yami/shop/service/impl/QnhServiceImpl.java
  45. 6 6
      yami-shop-service/src/main/java/com/yami/shop/service/impl/SkuServiceImpl.java
  46. 1 1
      yami-shop-service/src/main/resources/mapper/BasketMapper.xml
  47. 7 0
      yami-shop-service/src/main/resources/mapper/OrderRefundMapper.xml
  48. 8 8
      yami-shop-service/src/main/resources/mapper/PointsFailureRecordMapper.xml
  49. 4 4
      yami-shop-service/src/main/resources/mapper/PointsRecordMapper.xml
  50. 84 6
      yami-shop-service/src/main/resources/mapper/ProductMapper.xml
  51. 5 5
      yami-shop-service/src/main/resources/mapper/ShopSkuMapper.xml
  52. 3 3
      yami-shop-service/src/main/resources/mapper/SkuMapper.xml
  53. 2 2
      yami-shop-user/yami-shop-user-api/src/main/java/com/yami/shop/user/api/controller/UserScoreController.java
  54. 2 2
      yami-shop-user/yami-shop-user-comment/src/main/java/com/yami/shop/user/comment/service/UserScoreDetailService.java
  55. 4 4
      yami-shop-user/yami-shop-user-comment/src/main/java/com/yami/shop/user/comment/service/impl/ScoreOrderServiceImpl.java
  56. 5 5
      yami-shop-user/yami-shop-user-comment/src/main/java/com/yami/shop/user/comment/service/impl/UserScoreDetailServiceImpl.java

+ 0 - 9
yami-shop-api/src/main/java/com/yami/shop/api/config/SwaggerConfiguration.java

@@ -1,12 +1,3 @@
-/*
- * Copyright (c) 2018-2999 广州亚米信息科技有限公司 All rights reserved.
- *
- * https://www.gz-yami.com/
- *
- * 未经允许,不可做商业用途!
- *
- * 版权所有,侵权必究!
- */
 
 package com.yami.shop.api.config;
 

+ 0 - 9
yami-shop-api/src/main/java/com/yami/shop/api/controller/AddrController.java

@@ -1,12 +1,3 @@
-/*
- * Copyright (c) 2018-2999 广州亚米信息科技有限公司 All rights reserved.
- *
- * https://www.gz-yami.com/
- *
- * 未经允许,不可做商业用途!
- *
- * 版权所有,侵权必究!
- */
 
 package com.yami.shop.api.controller;
 

+ 0 - 9
yami-shop-api/src/main/java/com/yami/shop/api/controller/AreaController.java

@@ -1,12 +1,3 @@
-/*
- * Copyright (c) 2018-2999 广州亚米信息科技有限公司 All rights reserved.
- *
- * https://www.gz-yami.com/
- *
- * 未经允许,不可做商业用途!
- *
- * 版权所有,侵权必究!
- */
 
 package com.yami.shop.api.controller;
 

+ 0 - 9
yami-shop-api/src/main/java/com/yami/shop/api/controller/CategoryController.java

@@ -1,12 +1,3 @@
-/*
- * Copyright (c) 2018-2999 广州亚米信息科技有限公司 All rights reserved.
- *
- * https://www.gz-yami.com/
- *
- * 未经允许,不可做商业用途!
- *
- * 版权所有,侵权必究!
- */
 
 package com.yami.shop.api.controller;
 

+ 0 - 9
yami-shop-api/src/main/java/com/yami/shop/api/controller/DeliveryController.java

@@ -1,12 +1,3 @@
-/*
- * Copyright (c) 2018-2999 广州亚米信息科技有限公司 All rights reserved.
- *
- * https://www.gz-yami.com/
- *
- * 未经允许,不可做商业用途!
- *
- * 版权所有,侵权必究!
- */
 
 package com.yami.shop.api.controller;
 

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

@@ -167,7 +167,7 @@ public class MyOrderController {
         orderShopDto.setPayType(order.getPayType());
         orderShopDto.setTransfee(order.getFreightAmount());
 //        Math.abs
-        Long l = pointsRecordMapper.statisticsPoint(userId, Math.toIntExact(order.getChannelId()));
+        Long l = pointsRecordMapper.statisticsPoint(userId, order.getChannelId());
         //当前剩余总可用的积分
         orderShopDto.setTotalAvailableScore(l);
         if (null != order.getOffsetPoints()) {

+ 4 - 5
yami-shop-api/src/main/java/com/yami/shop/api/controller/OrderController.java

@@ -89,10 +89,10 @@ public class OrderController {
                 Sku byIdss = skuService.getById(byId);
                 ShopSku shopSku = shopSkuMapper.selectByShopAndSku(byIdss.getSkuId(), orderParam.getShopId());
                 if (shopSku.getShopSkuStocks()==null || shopSku.getShopSkuStocks()==0){
-                    throw new GlobalException("当前选择的商品库存为空!请重新选择商品!");
+                    throw new GlobalException("当前选择的商品["+byIdss.getSkuName()+"]库存为空!请重新选择商品!");
                 }
                 if (shopSku.getShopSkuStocks() <  byId.getBasketCount()) {
-                    throw new GlobalException("当前选择的商品库存不足!");
+                    throw new GlobalException("当前选择的商品["+byIdss.getSkuName()+"]库存不足!");
                 }
 
 //                boolean skuStock = qnhService.getSkuStock(byIdss.getSkuCode(), byId.getProdId(), orderParam.getPlatform());
@@ -111,10 +111,10 @@ public class OrderController {
 
             ShopSku shopSku = shopSkuMapper.selectByShopAndSku(orderParam.getOrderItem().getSkuId(), orderParam.getShopId());
             if (shopSku.getShopSkuStocks()==null || shopSku.getShopSkuStocks()==0){
-                throw new GlobalException("当前选择的商品库存为空!请重新选择商品!");
+                throw new GlobalException("商品:["+shopSku.getSkuName()+"]库存为空!请重新选择商品!");
             }
             if (shopSku.getShopSkuStocks() < orderParam.getOrderItem().getProdCount()) {
-                throw new GlobalException("当前选择的商品库存不足!");
+                throw new GlobalException("商品:["+shopSku.getSkuName()+"]库存不足!");
             }
 
 //            Sku byId = skuService.getById(orderParam.getOrderItem().getSkuId());
@@ -301,7 +301,6 @@ public class OrderController {
         if (mergerOrder == null) {
             throw new GlobalException("订单已过期,请重新下单");
         }
-
         // 校验商品是否删除
 
 

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

@@ -381,7 +381,14 @@ public class OrderRefundController {
         newOrderRefund.setReturnMoneySts(ReturnMoneyStsType.APPLY.value());
         newOrderRefund.setApplyTime(new Date());
         newOrderRefund.setUpdateTime(new Date());
-        newOrderRefund.setFreightAmount(orderRefundParam.getFreightAmount());
+        //剩余的
+        Integer remainGoodsNumber = orderRefundService.queryRemainGoodsNumber(orderRefundParam.getOrderNumber());
+        Integer refundGoodsNumber = orderRefundSkuList.stream().map(OrderRefundSku::getProductCount).reduce(0, Integer::sum);
+        if (remainGoodsNumber>refundGoodsNumber){
+            newOrderRefund.setFreightAmount(0.0);
+        }else {
+            newOrderRefund.setFreightAmount(orderRefundParam.getFreightAmount());
+        }
 
         long orderPoints = order.getOffsetPoints() == null ? 0 : order.getOffsetPoints();
         if (orderPoints == 0) {

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

@@ -81,7 +81,7 @@ public class ProdController {
     @GetMapping("/prodInfo")
     @ApiOperation(value = "商品详情信息", notes = "根据商品ID(prodId)获取商品信息")
     @ApiImplicitParam(name = "prodId", value = "商品ID", required = true, dataType = "Long")
-    public ResponseEntity<ProductDto> prodInfo(@RequestParam("prodId") Long prodId, @RequestParam("platform") Integer platform, @RequestParam("shopId") Long shopId) {
+    public ResponseEntity<ProductDto> prodInfo(@RequestParam("prodId") Long prodId, @RequestParam("platform") Long platform, @RequestParam("shopId") Long shopId) {
 
         YamiUser user = null;
         try {
@@ -125,7 +125,7 @@ public class ProdController {
             }
         }
 
-        Product product = prodService.getProductByProdId(prodId, platform);
+        Product product = prodService.getProductByProdId(prodId, platform, shopId);
         if (product == null || product.getStatus() != 1) {
             throw new GlobalException("商品已下线");
         }
@@ -262,6 +262,9 @@ public class ProdController {
     @GetMapping("/similarProdList")
     @ApiOperation(value = "相似商品", notes = "传入商品id")
     public R<IPage<SimilarProdListVo>> similarProdList(PageParam<Product> page, Long prodId, Long shopId, Long channelId,String userId) {
+        if (channelId == null){
+            channelId = 1L;
+        }
         return R.SUCCESS(prodService.similarProdList(page, prodId , shopId, channelId, userId));
     }
 

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

@@ -34,12 +34,12 @@ public class QnhController {
     public void synchronizedInfo() {
          qnhService.synchronizedInfo();
     }
-    @ApiOperation("更新库存")
-    @GetMapping("/getSkuStock")
-    public ResponseEntity<Boolean> getSkuStock(@RequestParam String skuCode,@RequestParam Long prodId) {
-        qnhService.getSkuStock(skuCode,prodId);
-        return ResponseEntity.ok(true);
-    }
+//    @ApiOperation("更新库存")
+//    @GetMapping("/getSkuStock")
+//    public ResponseEntity<Boolean> getSkuStock(@RequestParam String skuCode,@RequestParam Long prodId) {
+//        qnhService.getSkuStock(skuCode,prodId);
+//        return ResponseEntity.ok(true);
+//    }
     @ApiOperation("被动接受库存商品信息")
     @PostMapping("/data/noticeProductInfo")
     public ResponseEntity<String> noticeProductInfo(@RequestBody Object object) {

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

@@ -90,7 +90,7 @@ public class ShopCartController {
      */
     @PostMapping("/info/{platform}")
     @ApiOperation(value = "获取用户购物车信息", notes = "获取用户购物车信息,参数为用户选中的活动项数组")
-    public ResponseEntity<List<ShopCartDto>> infoByPlatform(@RequestBody List<ShopCartParam> shopCartParams, @PathVariable("platform") Integer platform) {
+    public ResponseEntity<List<ShopCartDto>> infoByPlatform(@RequestBody List<ShopCartParam> shopCartParams, @PathVariable("platform") Long platform) {
         String userId = SecurityUtils.getUser().getUserId();
 //        String userId = "5e31932043984353beb4c1a2622f5182";
 
@@ -183,7 +183,7 @@ public class ShopCartController {
 
     @GetMapping("/prodCount")
     @ApiOperation(value = "获取购物车商品数量", notes = "获取所有购物车商品数量")
-    public ResponseEntity<Integer> prodCount(@RequestParam("platform") Integer platform) {
+    public ResponseEntity<Integer> prodCount(@RequestParam("platform") Long platform) {
         String userId = SecurityUtils.getUser().getUserId();
         List<ShopCartItemDto> shopCartItems = basketService.getShopCartItems(userId, platform);
         if (CollectionUtil.isEmpty(shopCartItems)) {

+ 1 - 1
yami-shop-api/src/main/java/com/yami/shop/api/listener/ConfirmOrderListener.java

@@ -99,7 +99,7 @@ public class ConfirmOrderListener {
             // 根据配送范围计算配送费,没超出就
             TzTransportDto transport2 = transportManagerService.calculateTransfeeSecondTransport2(shopCartItems.get(0).getShopId(), userAddr, orderParam.getPlatform());
             if (ObjectUtils.isEmpty(transport2)) throw new GlobalException("该渠道下的门店尚未配置可用运费模板");
-            switch (orderParam.getPlatform()) {
+            switch (orderParam.getPlatform().byteValue()) {
                 case 1://企业用户,计算分单规则
                     if (transport2.getTargetDistance() > transport2.getDistance()) {
                         //超出配送范围使用快递

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

@@ -179,7 +179,7 @@ public class SubmitOrderListener {
                     List<ShopCartItemDto> shopCartItems = shopCartItemDiscount.getShopCartItems();
                     for (ShopCartItemDto shopCartItem : shopCartItems) {
                         Sku sku = checkAndGetSku(shopCartItem.getSkuId(), mergerOrder.getPlatform(), shopCartItem, skuStocksMap);
-                        Product product = checkAndGetProd(shopCartItem.getProdId(), shopCartItem, prodStocksMap);
+                        Product product = checkAndGetProd(shopCartItem.getProdId(), shopCartItem, prodStocksMap,shopId);
                         OrderItem orderItem = new OrderItem();
                         orderItem.setShopId(shopId);
                         orderItem.setOrderNumber(orderNumber);
@@ -291,8 +291,8 @@ public class SubmitOrderListener {
     }
 
     @SuppressWarnings({"Duplicates"})
-    private Product checkAndGetProd(Long prodId, ShopCartItemDto shopCartItem, Map<Long, Product> prodStocksMap) {
-        Product product = productService.getProductByProdId(prodId);
+    private Product checkAndGetProd(Long prodId, ShopCartItemDto shopCartItem, Map<Long, Product> prodStocksMap,Long shopId) {
+        Product product = productService.getProductByProdIdAndShopId(prodId, shopId);
         if (product == null) {
             throw new GlobalException("购物车包含无法识别的商品");
         }
@@ -319,7 +319,7 @@ public class SubmitOrderListener {
 
         // -1为无限库存
         if (product.getTotalStocks() != -1 && mapProduct.getTotalStocks() > product.getTotalStocks()) {
-            throw new GlobalException("商品:[" + product.getProdName() + "]库存不足");
+            throw new GlobalException("商品:[" + product.getProdName() + "]库存不足5");
         }
 
         return product;
@@ -338,7 +338,7 @@ public class SubmitOrderListener {
         }
         // -1为无限库存
         if (sku.getActualStocks() != -1 && shopCartItem.getProdCount() > sku.getActualStocks()) {
-            throw new GlobalException("商品:[" + sku.getProdName() + "]库存不足");
+            throw new GlobalException("商品:[" + sku.getProdName() + "]库存不足6");
         }
 
         if (sku.getActualStocks() != -1) {
@@ -354,9 +354,9 @@ public class SubmitOrderListener {
     }
 
     @SuppressWarnings({"Duplicates"})
-    private Sku checkAndGetSku(Long skuId, Integer platform, ShopCartItemDto shopCartItem, Map<Long, Sku> skuStocksMap) {
+    private Sku checkAndGetSku(Long skuId, Long channelId, ShopCartItemDto shopCartItem, Map<Long, Sku> skuStocksMap) {
         // 获取sku信息
-        Sku sku = skuService.getSkuBySkuId(skuId, platform, shopCartItem.getShopId());
+        Sku sku = skuService.getSkuBySkuId(skuId, channelId, shopCartItem.getShopId());
         if (sku == null) {
             throw new GlobalException("购物车包含无法识别的商品");
         }
@@ -366,7 +366,7 @@ public class SubmitOrderListener {
         }
         // -1为无限库存
         if (sku.getActualStocks() != -1 && shopCartItem.getProdCount() > sku.getActualStocks()) {
-            throw new GlobalException("商品:[" + sku.getProdName() + "]库存不足");
+            throw new GlobalException("商品:[" + sku.getProdName() + "]库存不足7");
         }
 
         if (sku.getActualStocks() != -1) {
@@ -382,11 +382,11 @@ public class SubmitOrderListener {
     }
 
 
-    private Double doGetOrderItemPoints(Double actualTotal, ArrayDeque<PointsRecord> expiryQueue, String orderNumber, String userId, Integer platform) {
+    private Double doGetOrderItemPoints(Double actualTotal, ArrayDeque<PointsRecord> expiryQueue, String orderNumber, String userId, Long channelId) {
         PointsRecord pointsRecord = expiryQueue.poll();
         PointsRecord pr = new PointsRecord();
         if (pointsRecord != null) {
-            Long point = pointsRecordMapper.statisticsPoint(userId, platform);
+            Long point = pointsRecordMapper.statisticsPoint(userId, channelId);
             //判定可用金额
             BigDecimal points = pointsRecord.getPoints() != null ? pointsRecord.getPoints() : BigDecimal.ZERO;
             BigDecimal variablePoints = pointsRecord.getVariablePoints() != null ? pointsRecord.getVariablePoints() : BigDecimal.ZERO;
@@ -428,7 +428,7 @@ public class SubmitOrderListener {
             }
             //  插入数据库
             if (actualTotal > 0.0) {
-                actualTotal = this.doGetOrderItemPoints(actualTotal, expiryQueue, orderNumber, userId, platform);
+                actualTotal = this.doGetOrderItemPoints(actualTotal, expiryQueue, orderNumber, userId, channelId);
             }
         }
         return actualTotal;

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

@@ -80,7 +80,7 @@ public class ShopCartOrderMergerDto implements Serializable {
     @ApiModelProperty(value = "配送类型 1:快递 2:自提 3:无需快递")
     private Integer dvyType;
 
-    private Integer platform;
+    private Long platform;
 
     private Double weight;
 

+ 1 - 1
yami-shop-bean/src/main/java/com/yami/shop/bean/app/param/ChangeShopCartParam.java

@@ -44,5 +44,5 @@ public class ChangeShopCartParam {
     private String distributionCardNo;
 
     @ApiModelProperty(value = "渠道id")
-    private Integer platform;
+    private Long platform;
 }

+ 1 - 1
yami-shop-bean/src/main/java/com/yami/shop/bean/app/param/OrderItemParam.java

@@ -41,5 +41,5 @@ public class OrderItemParam {
 	@ApiModelProperty(value = "推广员使用的推销卡号")
 	private String distributionCardNo;
 
-	private Integer platform;
+	private Long platform;
 }

+ 1 - 1
yami-shop-bean/src/main/java/com/yami/shop/bean/app/param/OrderParam.java

@@ -52,7 +52,7 @@ public class OrderParam {
 	private Integer userUseScore;
 
 	@ApiModelProperty(value = "渠道标识")
-	private Integer platform;
+	private Long platform;
 
     @ApiModelProperty(value = "门店ID")
     private Long shopId;

+ 1 - 1
yami-shop-bean/src/main/java/com/yami/shop/bean/app/param/SubmitOrderParam.java

@@ -24,7 +24,7 @@ public class SubmitOrderParam {
     @ApiModelProperty(value = "每次订单提交时的uuid")
     private String uuid;
     @ApiModelProperty(value = "渠道id")
-    private Integer platform;
+    private Long platform;
     @ApiModelProperty(value = "门店id")
     private Long shopId;
 

+ 9 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/vo/SimilarProdListVo.java

@@ -10,9 +10,12 @@
 
 package com.yami.shop.bean.vo;
 
+import com.yami.shop.bean.model.Sku;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.List;
+
 @Data
 public class SimilarProdListVo {
 
@@ -20,6 +23,8 @@ public class SimilarProdListVo {
     private Long shopId;
     @ApiModelProperty("商品spuID")
     private Long prodId;
+    @ApiModelProperty("商品skuID")
+    private Long skuId;
     @ApiModelProperty("商品购物车数量")
     private Integer prodCount;
     @ApiModelProperty("商品名")
@@ -30,4 +35,8 @@ public class SimilarProdListVo {
     private String channelProdPrice;
     @ApiModelProperty("库存")
     private String shopSkuStocks;
+
+    @ApiModelProperty("商品SKU")
+    private List<Sku> skuList;
+
 }

+ 1 - 1
yami-shop-delivery/yami-shop-delivery-comment/src/main/java/com/yami/shop/delivery/comment/dao/Transport2Mapper.java

@@ -32,7 +32,7 @@ public interface Transport2Mapper extends BaseMapper<Transport2> {
 
     ShopTransport findShopTransports(@Param("shopId") Long shopId);
 
-    Transport2 findByPlatform(Long platform);
+    Transport2 findByPlatform(Long channelId);
 
     IPage<Transport2> transport2List(@Param("page") PageParam<Transport2> page);
 

+ 1 - 1
yami-shop-delivery/yami-shop-delivery-comment/src/main/java/com/yami/shop/delivery/comment/service/Transport2Service.java

@@ -35,7 +35,7 @@ public interface Transport2Service extends IService<Transport2> {
 
     Transport2 findByDistance(Long shopId, Integer platform);
 
-    Transport2 findByPlatform(Long platform);
+    Transport2 findByPlatform(Long channelId);
 
     Transport2 findByDistance(Long shopId, Double distance, Double weight);
 

+ 1 - 1
yami-shop-delivery/yami-shop-delivery-comment/src/main/java/com/yami/shop/delivery/comment/service/TransportManagerService.java

@@ -30,7 +30,7 @@ public interface TransportManagerService {
 
     Double calculateTransfeeSecond2(Long shopId, UserAddr userAddr);
 
-    TzTransportDto calculateTransfeeSecondTransport2(Long shopId, UserAddr userAddr, Integer platform);
+    TzTransportDto calculateTransfeeSecondTransport2(Long shopId, UserAddr userAddr, Long channelId);
 
     Double calculateTransfeeSecond2(Long shopId, UserAddr userAddr, Double weight);
 

+ 2 - 2
yami-shop-delivery/yami-shop-delivery-comment/src/main/java/com/yami/shop/delivery/comment/service/impl/Transport2ServiceImpl.java

@@ -82,8 +82,8 @@ public class Transport2ServiceImpl extends ServiceImpl<Transport2Mapper, Transpo
     }
 
     @Override
-    public Transport2 findByPlatform(Long platform) {
-        return transportMapper.findByPlatform(platform);
+    public Transport2 findByPlatform(Long channelId) {
+        return transportMapper.findByPlatform(channelId);
     }
 
     @Override

+ 2 - 2
yami-shop-delivery/yami-shop-delivery-comment/src/main/java/com/yami/shop/delivery/comment/service/impl/TransportManagerServiceImpl.java

@@ -218,7 +218,7 @@ public class TransportManagerServiceImpl implements TransportManagerService {
     }
 
     @Override
-    public TzTransportDto calculateTransfeeSecondTransport2(Long shopId, UserAddr userAddr, Integer platform) {
+    public TzTransportDto calculateTransfeeSecondTransport2(Long shopId, UserAddr userAddr, Long channelId) {
         Double longitude = userAddr.getLongitude();
         Double latitude = userAddr.getLatitude();
         System.out.println("用户经度"+latitude);
@@ -234,7 +234,7 @@ public class TransportManagerServiceImpl implements TransportManagerService {
         double v = calculateDistance(latitude, longitude,
                 Double.parseDouble(shopDetailByShopId.getShopLat()), Double.parseDouble(shopDetailByShopId.getShopLng()));
         //Transport2 byDistance = transport2Service.findByDistance(shopId, platform);
-        Transport2 byDistance = transport2Service.findByPlatform(Long.valueOf(platform));
+        Transport2 byDistance = transport2Service.findByPlatform(channelId);
         System.out.println("byDistance"+byDistance);
 
         TzTransportDto tzTransportDto = new TzTransportDto();

+ 1 - 1
yami-shop-delivery/yami-shop-delivery-comment/src/main/resources/mapper/Transport2Mapper.xml

@@ -84,7 +84,7 @@
     <select id="findByPlatform" resultMap="BaseResultMap">
         SELECT *
         FROM tz_transport2 p
-        WHERE  p.channel_id = #{platform}
+        WHERE  p.channel_id = #{channelId}
         ORDER BY p.distance LIMIT 1
     </select>
 

+ 2 - 2
yami-shop-groupbuy/yami-shop-groupbuy-comment/src/main/java/com/yami/shop/groupbuy/comment/service/impl/GroupOrderServiceImpl.java

@@ -119,7 +119,7 @@ public class GroupOrderServiceImpl extends ServiceImpl<GroupOrderMapper, GroupOr
         calProd.setProdId(product.getProdId());
         calProd.setTotalStocks(hadConfirmOrder.getProdTotalCount());
         if (productMapper.updateStocks(calProd) == 0) {
-            throw new GlobalException("商品:[" + product.getProdName() + "]库存不足");
+            throw new GlobalException("商品:[" + product.getProdName() + "]库存不足8");
         }
 
         // 检验并更新商品规格
@@ -135,7 +135,7 @@ public class GroupOrderServiceImpl extends ServiceImpl<GroupOrderMapper, GroupOr
         sku.setStocks(hadConfirmOrder.getProdTotalCount());
         if (apiGroupSkuInfoDto.getStocks() != -1) {
             if (skuMapper.updateStocks(sku) <= 0) {
-                throw new GlobalException("商品:[" + apiGroupSkuInfoDto.getProdName() + "]库存不足");
+                throw new GlobalException("商品:[" + apiGroupSkuInfoDto.getProdName() + "]库存不足9");
             }
         }
         // 插入订单

+ 0 - 9
yami-shop-mp/yami-shop-mp-comment/src/main/java/com/yami/shop/mp/comment/model/WeixinSubscribe.java

@@ -1,12 +1,3 @@
-/*
- * Copyright (c) 2018-2999 广州亚米信息科技有限公司 All rights reserved.
- *
- * https://www.gz-yami.com/
- *
- * 未经允许,不可做商业用途!
- *
- * 版权所有,侵权必究!
- */
 
 package com.yami.shop.mp.comment.model;
 

+ 1 - 1
yami-shop-service/src/main/java/com/yami/shop/dao/BasketMapper.java

@@ -22,7 +22,7 @@ public interface BasketMapper extends BaseMapper<Basket> {
 
     List<ShopCartItemDto> getShopCartItems(@Param("userId") String userId);
 
-    List<ShopCartItemDto> getShopCartItemsByPlatform(@Param("userId") String userId, @Param("platform") Integer platform);
+    List<ShopCartItemDto> getShopCartItemsByPlatform(@Param("userId") String userId, @Param("channelId") Long channelId);
 
     void deleteShopCartItemsByBasketIds(@Param("userId") String userId, @Param("basketIds") List<Long> basketIds);
 

+ 5 - 4
yami-shop-service/src/main/java/com/yami/shop/dao/OrderRefundMapper.java

@@ -10,14 +10,11 @@
 
 package com.yami.shop.dao;
 
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yami.shop.bean.dto.OrderRefundDto;
 import com.yami.shop.bean.model.OrderRefund;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.yami.shop.bean.param.OrderRefundCountParam;
 import com.yami.shop.bean.param.OrderRefundStaisticsParam;
 import com.yami.shop.bean.param.StatisticsRefundParam;
@@ -107,5 +104,9 @@ public interface OrderRefundMapper extends BaseMapper<OrderRefund> {
 
     List<OrderRefund> findByOrderNumber(@Param("orderNumber")String orderNumber, @Param("returnMoneySts")Integer returnMoneySts);
 
+
     List<OrderRefundVo> findOrderRefund( @Param("orderRefund") OrderRefundStaisticsParam orderRefund);
+
+    Integer queryRemainGoodsNumber(String orderNumber);
+
 }

+ 3 - 3
yami-shop-service/src/main/java/com/yami/shop/dao/PointsRecordMapper.java

@@ -18,12 +18,12 @@ import java.util.List;
  * @since 2025-09-XX
  */
 public interface PointsRecordMapper extends BaseMapper<PointsRecord> {
-    Long statisticsPoint(@Param("userId") String userId, @Param("platform") Integer platform);
-    ScoreDataDto statisticsAllScorePoint(@Param("userId") String userId, @Param("platform") Integer platform);
+    Long statisticsPoint(@Param("userId") String userId, @Param("channelId") Long channelId);
+    ScoreDataDto statisticsAllScorePoint(@Param("userId") String userId, @Param("channelId") Long channelId);
 
     List<PointsRecord> findByOrderNumber(@Param("orderNumber")String orderNumber,@Param("pointsType") Integer pointsType);
 
-    IPage<PointsRecord> findPage(PageParam<PointsRecord> page,@Param("userId") String userId,@Param("platform") Integer platform);
+    IPage<PointsRecord> findPage(PageParam<PointsRecord> page,@Param("userId") String userId,@Param("channelId") Long channelId);
 
     List<PointsRecord> findByExpiredPoints(@Param("today")Date today,@Param("yesterday") Date yesterday);
 

+ 3 - 1
yami-shop-service/src/main/java/com/yami/shop/dao/ProductMapper.java

@@ -43,7 +43,9 @@ public interface ProductMapper extends BaseMapper<Product> {
 
     Product getProductByProdNameAndShopId(@Param("prodName") String prodName, @Param("shopId") Long shopId);
 
-    Product doGetById(@Param("prodId") Long prodId, @Param("platform") Integer platform);
+    Product doGetById(@Param("prodId") Long prodId, @Param("channelId") Long channelId, @Param("shopId") Long shopId);
+
+    Product doGetByShopId(@Param("prodId") Long prodId, @Param("shopId") Long shopId);
 
     void returnStock(@Param("prodCollect") Map<Long, Integer> prodCollect);
 

+ 3 - 3
yami-shop-service/src/main/java/com/yami/shop/dao/SkuMapper.java

@@ -32,11 +32,11 @@ public interface SkuMapper extends BaseMapper<Sku> {
 
     List<Sku> listByProdId(@Param("prodId") Long prodId);
 
-    List<Sku> listByProdIdAndPlatform(@Param("prodId") Long prodId, @Param("platform") Integer platform, @Param("shopId") Long shopId);
+    List<Sku> listByProdIdAndPlatform(@Param("prodId") Long prodId, @Param("channelId") Long channelId, @Param("shopId") Long shopId);
 
-    Sku listBySukIdAndPlatformShop(@Param("skuId") Long skuId, @Param("platform") Integer platform, @Param("shopId") Long shopId);
+    Sku listBySukIdAndPlatformShop(@Param("skuId") Long skuId, @Param("channelId") Long channelId, @Param("shopId") Long shopId);
 
-    Sku listBySukIdAndPlatform(@Param("skuId") Long skuId, @Param("platform") Integer platform);
+    Sku listBySukIdAndPlatform(@Param("skuId") Long skuId, @Param("channelId") Long channelId);
 
     int updateStocks(@Param("sku") Sku sku);
 

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

@@ -35,7 +35,7 @@ public interface BasketService extends IService<Basket> {
 
     List<ShopCartItemDto> getShopCartItems(String userId);
 
-    List<ShopCartItemDto> getShopCartItems(String userId, Integer platform);
+    List<ShopCartItemDto> getShopCartItems(String userId, Long channelId);
 
     List<ShopCartItemDto> getShopCartExpiryItems(String userId);
 

+ 2 - 2
yami-shop-service/src/main/java/com/yami/shop/service/IQnhService.java

@@ -37,9 +37,9 @@ public interface IQnhService {
 
     void synchronizedInfo();
 
-    boolean getSkuStock(String skuCode,Long prodId);
+//    boolean getSkuStock(String skuCode,Long prodId);
 
-    boolean getSkuStock(String skuCode,Long prodId,Integer platform);
+//    boolean getSkuStock(String skuCode,Long prodId,Integer platform);
 
     void noticeProductInfo(Object object);
 }

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

@@ -220,5 +220,9 @@ public interface OrderRefundService extends IService<OrderRefund> {
      */
     OrderRefundVo selectInfoById(Long refundId);
 
+
     void export(OrderRefundStaisticsParam orderRefund, HttpServletResponse response);
+
+    Integer queryRemainGoodsNumber(String orderNumber);
+
 }

+ 3 - 2
yami-shop-service/src/main/java/com/yami/shop/service/ProductService.java

@@ -34,7 +34,7 @@ import java.util.List;
  */
 public interface ProductService extends IService<Product> {
 
-    Product getById(Long prodId, Integer platform);
+//    Product getById(Long prodId, Integer platform);
 
     /**
      * 保存商品
@@ -57,7 +57,8 @@ public interface ProductService extends IService<Product> {
      * @return
      */
     Product getProductByProdId(Long prodId);
-    Product getProductByProdId(Long prodId,Integer platform);
+    Product getProductByProdIdAndShopId(Long prodId, Long shopId);
+    Product getProductByProdId(Long prodId,Long channelId,Long shopId);
 
 
     void removeProductByProdId(Long prodId);

+ 3 - 3
yami-shop-service/src/main/java/com/yami/shop/service/SkuService.java

@@ -29,7 +29,7 @@ public interface SkuService extends IService<Sku> {
      * @param prodId 商品id
      * @return sku列表
      */
-    List<Sku> listByProdId(Long prodId, Integer platform, Long shopId);
+    List<Sku> listByProdId(Long prodId, Long channelId, Long shopId);
 
     /**
      * 根据商品id获取商品中的sku列表(将会被缓存起来)
@@ -53,7 +53,7 @@ public interface SkuService extends IService<Sku> {
      * @param skuId
      * @return
      */
-    Sku getSkuBySkuId(Long skuId, Integer platform, Long shopId);
+    Sku getSkuBySkuId(Long skuId, Long channelId, Long shopId);
 
     /**
      * 根据skuId获取sku信息(将会被缓存起来)
@@ -61,7 +61,7 @@ public interface SkuService extends IService<Sku> {
      * @param skuId
      * @return
      */
-    Sku getSkuBySkuId(Long skuId, Integer platform);
+    Sku getSkuBySkuId(Long skuId, Long channelId);
 
     void removeSkuCacheBySkuId(Long skuId, Long prodId);
 

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

@@ -111,14 +111,14 @@ public class BasketServiceImpl extends ServiceImpl<BasketMapper, Basket> impleme
     }
 
     @Override
-    public List<ShopCartItemDto> getShopCartItems(String userId, Integer platform) {
+    public List<ShopCartItemDto> getShopCartItems(String userId, Long channelId) {
         // 在这个类里面要调用这里的缓存信息,并没有使用aop,所以不使用注解
 //        List<ShopCartItemDto> shopCartItemDtoList = cacheManagerUtil.getCache("ShopCartItems", userId);
 //        List<ShopCartItemDto> shopCartItemDtoList = Lists.newArrayList();
 //        if (ObjectUtils.isNotEmpty(shopCartItemDtoList)) {
 //            return shopCartItemDtoList;
 //        }
-        List<ShopCartItemDto> shopCartItemDtoList = basketMapper.getShopCartItemsByPlatform(userId, platform);
+        List<ShopCartItemDto> shopCartItemDtoList = basketMapper.getShopCartItemsByPlatform(userId, channelId);
         for (ShopCartItemDto shopCartItemDto : shopCartItemDtoList) {
             shopCartItemDto.setProductTotalAmount(Arith.mul(shopCartItemDto.getProdCount(), shopCartItemDto.getPrice()));
             shopCartItemDto.setWeight(shopCartItemDto.getWeight());

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

@@ -1540,5 +1540,10 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
         }
     }
 
+    @Override
+    public Integer queryRemainGoodsNumber(String orderNumber) {
+        return orderRefundMapper.queryRemainGoodsNumber(orderNumber);
+    }
+
 
 }

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

@@ -223,10 +223,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         // 提交订单
         eventPublisher.publishEvent(new SubmitOrderEvent(mergerOrder, orderList));
         // 插入订单
-        orderList.forEach(c->{
-            if (c.getDvyType().equals(1) && c.getHbOrderStatus()!=0) {
+        orderList.forEach(c -> {
+            if (c.getDvyType().equals(1) && c.getHbOrderStatus() != 0) {
                 c.setHbOrderStatus(1);
             }
+            c.setProdName("");
             orderMapper.insert(c);
         });
         List<OrderItem> orderItems = orderList.stream()
@@ -266,6 +267,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
     public List<Order> listUnRefundOrderAndOrderItems(Integer orderStatus, DateTime lessThanUpdateTime) {
         return orderMapper.listUnRefundOrderAndOrderItems(orderStatus, lessThanUpdateTime);
     }
+
     @Override
     public List<Order> selectCancelOrders(Integer orderStatus, DateTime lessThanUpdateTime) {
         return orderMapper.selectCancelOrders(orderStatus, lessThanUpdateTime);
@@ -277,7 +279,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         if (CollectionUtil.isEmpty(orders)) {
             return;
         }
-        orderMapper.cancelOrders(orders,cancelReason);
+        orderMapper.cancelOrders(orders, cancelReason);
         List<OrderItem> allOrderItems = new ArrayList<>();
         for (Order order : orders) {
             List<OrderItem> orderItems = order.getOrderItems();
@@ -294,7 +296,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                                 .isNull(PointsRecord::getExpiryDate)
                         ));
                 for (PointsRecord pointsRecord : pointsRecords) {
-                    Long l = pointsRecordMapper.statisticsPoint(pointsRecord.getUserId(), Math.toIntExact(pointsRecord.getChannelId()));
+                    Long l = pointsRecordMapper.statisticsPoint(pointsRecord.getUserId(), pointsRecord.getChannelId());
                     pointsRecord.setId(null);
                     pointsRecord.setCreationDate(new Date());
                     pointsRecord.setPoints(pointsRecord.getVariablePoints());
@@ -328,7 +330,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void receiptOrder(List<Order> orders) {
-        orderMapper.cancelOrders(orders,"用户主动取消");
+        orderMapper.cancelOrders(orders, "用户主动取消");
         for (Order order : orders) {
             eventPublisher.publishEvent(new ReceiptOrderEvent(order));
         }
@@ -959,7 +961,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
     }
 
 
-
     /**
      * 退货退款
      */
@@ -1028,7 +1029,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                                     npr.setPointsAudit(1);
                                     npr.setPoints(pointsRecord.getVariablePoints());
                                     npr.setVariablePoints(BigDecimal.valueOf(0));
-                                    Long l = pointsRecordMapper.statisticsPoint(pointsRecord.getUserId(), Math.toIntExact(pointsRecord.getChannelId()));
+                                    Long l = pointsRecordMapper.statisticsPoint(pointsRecord.getUserId(),pointsRecord.getChannelId());
                                     if (null == l) {
                                         l = 0L;
                                     }
@@ -1072,7 +1073,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                                 npr.setPointsAudit(1);
                                 npr.setPoints(pointsRecord.getVariablePoints());
                                 npr.setVariablePoints(BigDecimal.valueOf(0));
-                                Long l = pointsRecordMapper.statisticsPoint(pointsRecord.getUserId(), Math.toIntExact(pointsRecord.getChannelId()));
+                                Long l = pointsRecordMapper.statisticsPoint(pointsRecord.getUserId(), pointsRecord.getChannelId());
                                 if (null == l) {
                                     l = 0L;
                                 }
@@ -1092,7 +1093,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                                 npr.setCreationDate(new Date());
                                 pointsRecordMapper.insert(npr);
                             }
-//                        refundExpiredScore = order.getOffsetPoints() - refundScore;
+//                            refundExpiredScore = order.getOffsetPoints() - refundScore;
                         }
                         break;
                     case 2://2:单个物品退款
@@ -1136,150 +1137,151 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                             }
                         }
                         log.info("退款积分:refundOffsetPoints:" + refundOffsetPoints + ";shoppingScore:" + shoppingScore + ";totalRefundScore:" + totalRefundScore);
-                        //退积分
-                        if (totalRefundScore > 0) {
-                            refundScore = (long) totalRefundScore;
-                            for (PointsRecord pointsRecord : pointsRecords) {
-                                //下单支付的金额
-                                int variablePoints = pointsRecord.getVariablePoints().intValue();//574
-                                PointsRecord npr = new PointsRecord();
-                                BeanUtils.copyProperties(pointsRecord, npr);
-                                npr.setId(null);
-                                npr.setPointsType(3);
-                                Long l = pointsRecordMapper.statisticsPoint(pointsRecord.getUserId(), Math.toIntExact(pointsRecord.getChannelId()));
-                                if (null == l) {
-                                    l = 0L;
-                                }
-                                npr.setCreationDate(new Date());
-                                //574>188
-                                if (variablePoints < totalRefundScore) {//下单金额全退
-                                    npr.setPoints(pointsRecord.getVariablePoints());
-                                    npr.setVariablePoints(BigDecimal.valueOf(0));
-                                    npr.setPointsAudit(1);
-                                    if (pointsRecord.getExpiryStatus() == 1) {//当过期状态等于1时才进行变更可用金额 否则不变更
-                                        if (null != pointsRecord.getVariablePoints()) {
-                                            npr.setCurrentlyAvailablePoints(pointsRecord.getVariablePoints().add(BigDecimal.valueOf(l)));
+                            //退积分
+                            if (totalRefundScore > 0) {
+                                refundScore = (long) totalRefundScore;
+                                for (PointsRecord pointsRecord : pointsRecords) {
+                                    //下单支付的金额
+                                    int variablePoints = pointsRecord.getVariablePoints().intValue();//574
+                                    PointsRecord npr = new PointsRecord();
+                                    BeanUtils.copyProperties(pointsRecord, npr);
+                                    npr.setId(null);
+                                    npr.setPointsType(3);
+                                    Long l = pointsRecordMapper.statisticsPoint(pointsRecord.getUserId(),pointsRecord.getChannelId());
+                                    if (null == l) {
+                                        l = 0L;
+                                    }
+                                    npr.setCreationDate(new Date());
+                                    //574>188
+                                    if (variablePoints < totalRefundScore) {//下单金额全退
+                                        npr.setPoints(pointsRecord.getVariablePoints());
+                                        npr.setVariablePoints(BigDecimal.valueOf(0));
+                                        npr.setPointsAudit(1);
+                                        if (pointsRecord.getExpiryStatus() == 1) {//当过期状态等于1时才进行变更可用金额 否则不变更
+                                            if (null != pointsRecord.getVariablePoints()) {
+                                                npr.setCurrentlyAvailablePoints(pointsRecord.getVariablePoints().add(BigDecimal.valueOf(l)));
+                                            } else {
+                                                npr.setCurrentlyAvailablePoints(BigDecimal.valueOf(0.0).add(BigDecimal.valueOf(l)));
+                                            }
                                         } else {
                                             npr.setCurrentlyAvailablePoints(BigDecimal.valueOf(0.0).add(BigDecimal.valueOf(l)));
                                         }
-                                    } else {
-                                        npr.setCurrentlyAvailablePoints(BigDecimal.valueOf(0.0).add(BigDecimal.valueOf(l)));
+                                        if (pointsRecord.getExpiryStatus() == 2) {
+                                            refundExpiredScore += variablePoints;
+                                        }
+                                        totalRefundScore -= variablePoints;
+                                        pointsRecordMapper.insert(npr);
+                                    } else if (totalRefundScore > 0) {//574>188,应退188
+                                        npr.setPoints(BigDecimal.valueOf(totalRefundScore));
+                                        npr.setVariablePoints(BigDecimal.valueOf(0));
+                                        npr.setPointsAudit(1);
+                                        if (pointsRecord.getExpiryStatus() == 1) {//当过期状态等于1时才进行变更可用金额 否则不变更
+                                            BigDecimal bigDecimal = BigDecimal.valueOf(totalRefundScore);
+                                            npr.setCurrentlyAvailablePoints(bigDecimal.add(BigDecimal.valueOf(l)));
+                                        } else {
+                                            npr.setCurrentlyAvailablePoints(BigDecimal.valueOf(0.0).add(BigDecimal.valueOf(l)));
+                                        }
+                                        if (pointsRecord.getExpiryStatus() == 2) {
+                                            refundExpiredScore += totalRefundScore;
+                                        }
+                                        totalRefundScore = 0;
+                                        pointsRecordMapper.insert(npr);
                                     }
-                                    if (pointsRecord.getExpiryStatus() == 2) {
-                                        refundExpiredScore += variablePoints;
+                                    log.info("退积分:当前退款金额为:totalRefundScore:" + totalRefundScore);
+                                    if (totalRefundScore == 0 && shoppingScore >= refundOffsetPoints) {
+                                        orderRefund.setRefundAmount(refundActual.doubleValue());
+                                        orderRefund.setOffsetPoints(refundScore);
+                                        orderRefund.setHandler(Boolean.TRUE);
+                                        orderRefund.setRefundExpiredScore(refundExpiredScore);
+                                        log.info("仅退积分-退款单修改状态和积分{}", orderRefund);
+                                        orderRefundMapper.updateById(orderRefund);
+                                        return;
                                     }
-                                    totalRefundScore -= variablePoints;
-                                    pointsRecordMapper.insert(npr);
-                                } else if (totalRefundScore > 0) {//574>188,应退188
-                                    npr.setPoints(BigDecimal.valueOf(totalRefundScore));
-                                    npr.setVariablePoints(BigDecimal.valueOf(0));
-                                    npr.setPointsAudit(1);
-                                    if (pointsRecord.getExpiryStatus() == 1) {//当过期状态等于1时才进行变更可用金额 否则不变更
-                                        BigDecimal bigDecimal = BigDecimal.valueOf(totalRefundScore);
-                                        npr.setCurrentlyAvailablePoints(bigDecimal.add(BigDecimal.valueOf(l)));
+                                }
+                            }
+                            //退钱
+                            if (totalRefundActual > 0) {
+                                int refundMoney = 0;//需要退款的金额
+                                if (totalRefundScore > 0) {
+                                    if (totalRefundActual >= totalRefundScore) {
+                                        refundMoney = totalRefundScore;
                                     } else {
-                                        npr.setCurrentlyAvailablePoints(BigDecimal.valueOf(0.0).add(BigDecimal.valueOf(l)));
-                                    }
-                                    if (pointsRecord.getExpiryStatus() == 2) {
-                                        refundExpiredScore += totalRefundScore;
+                                        System.out.println("退款金额大于支付金额");
                                     }
-                                    totalRefundScore = 0;
-                                    pointsRecordMapper.insert(npr);
+                                } else if (totalRefundScore == 0) {
+                                    refundMoney = (int) Arith.mul(totalRefundActual, 100);
+                                } else {
+                                    System.out.println("单笔退款未知状态");
+                                    break;
                                 }
-                                log.info("退积分:当前退款金额为:totalRefundScore:" + totalRefundScore);
-                                if (totalRefundScore == 0 && shoppingScore >= refundOffsetPoints) {
-                                    orderRefund.setRefundAmount(refundActual.doubleValue());
-                                    orderRefund.setOffsetPoints(refundScore);
-                                    orderRefund.setHandler(Boolean.TRUE);
-                                    orderRefund.setRefundExpiredScore(refundExpiredScore);
-                                    log.info("仅退积分-退款单修改状态和积分{}", orderRefund);
-                                    orderRefundMapper.updateById(orderRefund);
-                                    return;
+                                OrderSettlement orderSettlement = orderSettlementMapper.selectOne(new LambdaQueryWrapper<OrderSettlement>()
+                                        .eq(OrderSettlement::getOrderNumber, order.getOrderNumber())
+                                        .eq(OrderSettlement::getPayType, 1));
+                                RefundInfoPo po = new RefundInfoPo();
+                                po.setOutTradeNo(orderSettlement.getPayNo());
+                                po.setTotal((int) Arith.mul(order.getActualTotal(), 100));
+                                po.setRefundMoney(refundMoney);
+                                if (refundMoney != 0) {
+                                    String s = wxProviderService.refundOrder(po);
+                                    System.out.println("微信退款结果:" + s);
                                 }
+                                refundActual = BigDecimal.valueOf(refundMoney);
                             }
+                            break;
                         }
-                        //退钱
-                        if (totalRefundActual > 0) {
-                            int refundMoney = 0;//需要退款的金额
-                            if (totalRefundScore > 0) {
-                                if (totalRefundActual >= totalRefundScore) {
-                                    refundMoney = totalRefundScore;
-                                } else {
-                                    System.out.println("退款金额大于支付金额");
-                                }
-                            } else if (totalRefundScore == 0) {
-                                refundMoney = (int) Arith.mul(totalRefundActual, 100);
-                            } else {
-                                System.out.println("单笔退款未知状态");
-                                break;
-                            }
-                            OrderSettlement orderSettlement = orderSettlementMapper.selectOne(new LambdaQueryWrapper<OrderSettlement>()
-                                    .eq(OrderSettlement::getOrderNumber, order.getOrderNumber())
-                                    .eq(OrderSettlement::getPayType, 1));
-                            RefundInfoPo po = new RefundInfoPo();
-                            po.setOutTradeNo(orderSettlement.getPayNo());
-                            po.setTotal((int) Arith.mul(order.getActualTotal(), 100));
-                            po.setRefundMoney(refundMoney);
-                            if (refundMoney != 0) {
-                                String s = wxProviderService.refundOrder(po);
-                                System.out.println("微信退款结果:" + s);
+                        if (1 == orderRefund.getRefundType()) {
+                            order.setHbOrderStatus(OrderStatus.CLOSE.value());
+                        } else {
+                            List<OrderRefund> orderRefundList = orderRefundMapper.selectList(new LambdaQueryWrapper<OrderRefund>()
+                                    .eq(OrderRefund::getOrderNumber, orderNumber)
+                                    .eq(OrderRefund::getReturnMoneySts, 70)
+                            );
+                            //统计全部退货商品数量(goodsNum)
+                            int goodsNum = orderRefundList.stream().mapToInt(OrderRefund::getGoodsNum).sum();
+                            if (goodsNum == order.getProductNums()) {
+                                order.setHbOrderStatus(OrderStatus.CLOSE.value());
                             }
-                            refundActual = BigDecimal.valueOf(refundMoney);
                         }
-                        break;
-                }
-                if (1 == orderRefund.getRefundType()) {
-                    order.setHbOrderStatus(OrderStatus.CLOSE.value());
-                } else {
-                    List<OrderRefund> orderRefundList = orderRefundMapper.selectList(new LambdaQueryWrapper<OrderRefund>()
-                            .eq(OrderRefund::getOrderNumber, orderNumber)
-                            .eq(OrderRefund::getReturnMoneySts, 70)
-                    );
-                    //统计全部退货商品数量(goodsNum)
-                    int goodsNum = orderRefundList.stream().mapToInt(OrderRefund::getGoodsNum).sum();
-                    if (goodsNum == order.getProductNums()) {
-                        order.setHbOrderStatus(OrderStatus.CLOSE.value());
-                    }
-                }
-                orderMapper.updateById(order);
+                        orderMapper.updateById(order);
 
-                orderRefund.setRefundAmount(refundActual.doubleValue());
-                orderRefund.setOffsetPoints(refundScore);
-                orderRefund.setHandler(Boolean.TRUE);
-                orderRefund.setRefundExpiredScore(refundExpiredScore);
-                log.info("退款单修改状态和积分{}", orderRefund);
-                orderRefundMapper.updateById(orderRefund);
+                        orderRefund.setRefundAmount(refundActual.doubleValue());
+                        orderRefund.setOffsetPoints(refundScore);
+                        orderRefund.setHandler(Boolean.TRUE);
+                        orderRefund.setRefundExpiredScore(refundExpiredScore);
+                        log.info("退款单修改状态和积分{}", orderRefund);
+                        orderRefundMapper.updateById(orderRefund);
 
+                }
             }
         }
-    }
 
-    /**
-     * 退款成功后,修改订单状态
-     * @param order 订单
-     *              退款单
-     */
-    private void  updateOrderStatus(Order order) {
-        //定义变量是否需要通知海博改变订单状态
-        boolean status = true;
-        for (OrderItem orderItem : orderItemMapper.getListByOrderNumber(order.getOrderNumber())) {
-            List<OrderRefundSku> orderRefundSkus = orderRefundSkuMapper.selectByOrderItemList(orderItem.getOrderItemId());
-            if (ObjectUtils.isEmpty(orderRefundSkus)){
-                status = false;
-                break;
-            }
-            //统计orderRefundSkus里面商品数量
-            int refundCount = orderRefundSkus.stream().mapToInt(OrderRefundSku::getProductCount).sum();
-            if (!orderItem.getProdCount().equals(refundCount)) {
-                status = false;
-                break;
+        /**
+         * 退款成功后,修改订单状态
+         *
+         * @param order 订单
+         *              退款单
+         */
+        private void updateOrderStatus (Order order){
+            //定义变量是否需要通知海博改变订单状态
+            boolean status = true;
+            for (OrderItem orderItem : orderItemMapper.getListByOrderNumber(order.getOrderNumber())) {
+                List<OrderRefundSku> orderRefundSkus = orderRefundSkuMapper.selectByOrderItemList(orderItem.getOrderItemId());
+                if (ObjectUtils.isEmpty(orderRefundSkus)) {
+                    status = false;
+                    break;
+                }
+                //统计orderRefundSkus里面商品数量
+                int refundCount = orderRefundSkus.stream().mapToInt(OrderRefundSku::getProductCount).sum();
+                if (!orderItem.getProdCount().equals(refundCount)) {
+                    status = false;
+                    break;
+                }
             }
-        }
 
-        if (status){
-            order.setHbOrderStatus(OrderStatus.CLOSE.value());
-            orderMapper.updateById(order);
-            //通知海博改变订单状态
+            if (status) {
+                order.setHbOrderStatus(OrderStatus.CLOSE.value());
+                orderMapper.updateById(order);
+                //通知海博改变订单状态
                 HBBaseReq<Object> build = HBBaseReq.create();
                 build.setAppId(hbSignUtil.getAppId());
 
@@ -1298,295 +1300,313 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                 log.info("post 订单推送单号参数:{}", JSON.toJSONString(build));
                 String post = post(hbSignUtil.getHBHost() + "/api/order/changeOrderStatus", build);
                 log.info("post 订单推送结果:{}", post);
+            }
         }
-    }
-
-    private void addOrderRefundRecord(Long refundId, Integer auditStatus, Integer sort, String instructions) {
-        OrderRefundRecord orderRefundRecord = new OrderRefundRecord();
-        orderRefundRecord.setOrderRefundId(refundId);
-        orderRefundRecord.setInstructions(instructions);
-        Date date = new Date();
-        orderRefundRecord.setCreateTime(date);
-        orderRefundRecord.setUpdateTime(date);
-        orderRefundRecord.setAuditStatus(auditStatus);
-        orderRefundRecord.setSort(sort);
-        orderRefundRecordMapper.insert(orderRefundRecord);
-    }
-
-    @Override
-    public OrderRefundAmountDTO computeOrderRefundAmount(String orderNumber, List<OrderRefundAmountParam> suk) {
-        BigDecimal orderRefundAmount = BigDecimal.ZERO;
-        Long offsetPoints = 0L;
-        Order order = orderMapper.selectOne(new LambdaQueryWrapper<Order>()
-                .eq(Order::getOrderNumber, orderNumber)
-                .eq(Order::getDeleteStatus, 0));
-        List<OrderItem> orderItems = orderItemMapper.selectList(new LambdaQueryWrapper<OrderItem>().eq(OrderItem::getOrderNumber, orderNumber));
-        return OrderRefundAmountDTO.builder().orderRefundAmount(orderRefundAmount).offsetPoints(offsetPoints).build();
-    }
 
-    @Override
-    public Map<String, Integer> deliverListStatusNum() {
-        Map<String, Integer> map = new LinkedTreeMap<>();
-        map.put("all", orderMapper.statusCount(Lists.newArrayList(0, 1, 20, 30, 40, 50, 60, 70, 80)));
-        map.put("paddingPay", orderMapper.statusCount(Lists.newArrayList(0)));
-        map.put("paddingShipped", orderMapper.statusCount(Lists.newArrayList(1)));
-        map.put("paddingReceived", orderMapper.statusCount(Lists.newArrayList(20, 30, 40, 70)));
-        map.put("completed", orderMapper.statusCount(Lists.newArrayList(80)));
-        map.put("cancel", orderMapper.statusCount(Lists.newArrayList(60,50)));
-        return map;
-    }
+        private void addOrderRefundRecord (Long refundId, Integer auditStatus, Integer sort, String instructions){
+            OrderRefundRecord orderRefundRecord = new OrderRefundRecord();
+            orderRefundRecord.setOrderRefundId(refundId);
+            orderRefundRecord.setInstructions(instructions);
+            Date date = new Date();
+            orderRefundRecord.setCreateTime(date);
+            orderRefundRecord.setUpdateTime(date);
+            orderRefundRecord.setAuditStatus(auditStatus);
+            orderRefundRecord.setSort(sort);
+            orderRefundRecordMapper.insert(orderRefundRecord);
+        }
 
-    @Override
-    public OrderCountParam selectOrderCount(OrderParam orderParam) {
-        return orderMapper.selectOrderCount(orderParam);
-    }
+        @Override
+        public OrderRefundAmountDTO computeOrderRefundAmount (String orderNumber, List < OrderRefundAmountParam > suk){
+            BigDecimal orderRefundAmount = BigDecimal.ZERO;
+            Long offsetPoints = 0L;
+            Order order = orderMapper.selectOne(new LambdaQueryWrapper<Order>()
+                    .eq(Order::getOrderNumber, orderNumber)
+                    .eq(Order::getDeleteStatus, 0));
+            List<OrderItem> orderItems = orderItemMapper.selectList(new LambdaQueryWrapper<OrderItem>().eq(OrderItem::getOrderNumber, orderNumber));
+            return OrderRefundAmountDTO.builder().orderRefundAmount(orderRefundAmount).offsetPoints(offsetPoints).build();
+        }
 
-    @Override
-    public IPage<Order> deliveryOrder(PageParam<Order> page, OrderStatisticsParam orderParam) {
-        IPage<Order> orderIPage = orderMapper.deliveryOrder(page, orderParam);
-        orderIPage.getRecords().forEach(order -> {
-            order.setOrderItems(orderItemService.getOrderItemsByOrderNumber(order.getOrderNumber()));
-        });
-        return orderIPage;
-    }
+        @Override
+        public Map<String, Integer> deliverListStatusNum () {
+            Map<String, Integer> map = new LinkedTreeMap<>();
+            map.put("all", orderMapper.statusCount(Lists.newArrayList(0, 1, 20, 30, 40, 50, 60, 70, 80)));
+            map.put("paddingPay", orderMapper.statusCount(Lists.newArrayList(0)));
+            map.put("paddingShipped", orderMapper.statusCount(Lists.newArrayList(1)));
+            map.put("paddingReceived", orderMapper.statusCount(Lists.newArrayList(20, 30, 40, 70)));
+            map.put("completed", orderMapper.statusCount(Lists.newArrayList(80)));
+            map.put("cancel", orderMapper.statusCount(Lists.newArrayList(60, 50)));
+            return map;
+        }
 
-    private boolean isPaymentOver7Days(Date paymentDate) {
-        // 1. 将支付时间转换为 Instant
-        Instant paymentInstant = paymentDate.toInstant();
-        // 2. 增加 7 天(精确到毫秒,考虑时区)
-        Instant expirationInstant = paymentInstant.plus(7, java.time.temporal.ChronoUnit.DAYS);
-        // 3. 获取当前时间
-        Instant nowInstant = Instant.now();
-        // 4. 比较时间
-        return nowInstant.isAfter(expirationInstant) || nowInstant.equals(expirationInstant);
-    }
+        @Override
+        public OrderCountParam selectOrderCount (OrderParam orderParam){
+            return orderMapper.selectOrderCount(orderParam);
+        }
 
-    /**
-     * 导出正常订单
-     * @param orderParam
-     * @param response
-     */
-    @Override
-    public void export(BackendOrderParam orderParam, HttpServletResponse response) {
-        List<Order> orderList = orderMapper.findList(orderParam);
-        if (!orderList.isEmpty()) {
-            orderList.forEach(c -> {
-                List<OrderItem> orderItems = orderItemMapper.getListByOrderNumber(c.getOrderNumber());
-                c.setOrderItems(orderItems);
-                c.setGoodsTotalCount(orderItems.stream().map(OrderItem::getProdCount).reduce(0, Integer::sum));
+        @Override
+        public IPage<Order> deliveryOrder (PageParam < Order > page, OrderStatisticsParam orderParam){
+            IPage<Order> orderIPage = orderMapper.deliveryOrder(page, orderParam);
+            orderIPage.getRecords().forEach(order -> {
+                order.setOrderItems(orderItemService.getOrderItemsByOrderNumber(order.getOrderNumber()));
             });
+            return orderIPage;
         }
-        if (orderList.isEmpty()){
-            throw new GlobalException("该次导出未查询到数据,不允许导出");
+
+        private boolean isPaymentOver7Days (Date paymentDate){
+            // 1. 将支付时间转换为 Instant
+            Instant paymentInstant = paymentDate.toInstant();
+            // 2. 增加 7 天(精确到毫秒,考虑时区)
+            Instant expirationInstant = paymentInstant.plus(7, java.time.temporal.ChronoUnit.DAYS);
+            // 3. 获取当前时间
+            Instant nowInstant = Instant.now();
+            // 4. 比较时间
+            return nowInstant.isAfter(expirationInstant) || nowInstant.equals(expirationInstant);
         }
-        exportNormalOrders(orderList,response,"正常订单");
-    }
 
-    /**
-     * 导出正常订单数据到Excel(直接输出到HttpServletResponse)
-     */
-    public void exportNormalOrders(List<Order> orderList,
-                                   HttpServletResponse response,
-                                   String fileName) {
-        // 设置响应头
-        ExportUtils.setupResponse(response, fileName);
+        /**
+         * 导出正常订单
+         *
+         * @param orderParam
+         * @param response
+         */
+        @Override
+        public void export (BackendOrderParam orderParam, HttpServletResponse response){
+            List<Order> orderList = orderMapper.findList(orderParam);
+            if (!orderList.isEmpty()) {
+                orderList.forEach(c -> {
+                    List<OrderItem> orderItems = orderItemMapper.getListByOrderNumber(c.getOrderNumber());
+                    c.setOrderItems(orderItems);
+                    c.setGoodsTotalCount(orderItems.stream().map(OrderItem::getProdCount).reduce(0, Integer::sum));
+                });
+            }
+            if (orderList.isEmpty()) {
+                throw new GlobalException("该次导出未查询到数据,不允许导出");
+            }
+            exportNormalOrders(orderList, response, "正常订单");
+        }
+
+        /**
+         * 导出正常订单数据到Excel(直接输出到HttpServletResponse)
+         */
+        public void exportNormalOrders (List < Order > orderList,
+                HttpServletResponse response,
+                String fileName){
+            // 设置响应头
+            ExportUtils.setupResponse(response, fileName);
 
-        try (Workbook workbook = new XSSFWorkbook()) {
-            // 创建Sheet
-            Sheet sheet = workbook.createSheet("正常订单");
+            try (Workbook workbook = new XSSFWorkbook()) {
+                // 创建Sheet
+                Sheet sheet = workbook.createSheet("正常订单");
 
-            // 设置列宽
-            setupColumnWidth(sheet);
+                // 设置列宽
+                setupColumnWidth(sheet);
 
-            // 创建表头样式
-            CellStyle headerStyle = ExportUtils.createHeaderStyle(workbook);
+                // 创建表头样式
+                CellStyle headerStyle = ExportUtils.createHeaderStyle(workbook);
 
-            // 创建数据样式
-            CellStyle dataStyle = ExportUtils.createDataStyle(workbook);
-            CellStyle numberStyle = ExportUtils.createNumberStyle(workbook);
-            CellStyle dateStyle = ExportUtils.createDateStyle(workbook);
+                // 创建数据样式
+                CellStyle dataStyle = ExportUtils.createDataStyle(workbook);
+                CellStyle numberStyle = ExportUtils.createNumberStyle(workbook);
+                CellStyle dateStyle = ExportUtils.createDateStyle(workbook);
 
 
-            String[] headers = {
-                "序号","订单编号", "下单时间", "付款时间", "订单状态", "订单类型",
-                "商品名称", "规格", "单价(元)", "数量", "小计(元)",
-                "商品总数量", "商品总额(元)", "运费(元)", "积分抵扣(元)",
-                "实付金额", "所属企业", "买家姓名", "买家电话"
-            };
-            // 创建合并单元格的表头
-            ExportUtils.createMergedHeader(sheet, headerStyle,"正常订单");
+                String[] headers = {
+                        "序号", "订单编号", "下单时间", "付款时间", "订单状态", "订单类型",
+                        "商品名称", "规格", "单价(元)", "数量", "小计(元)",
+                        "商品总数量", "商品总额(元)", "运费(元)", "积分抵扣(元)",
+                        "实付金额", "所属企业", "买家姓名", "买家电话"
+                };
+                // 创建合并单元格的表头
+                ExportUtils.createMergedHeader(sheet, headerStyle, "正常订单");
 
-            // 创建列标题行
-            ExportUtils.createColumnHeaders(sheet, headerStyle,headers);
+                // 创建列标题行
+                ExportUtils.createColumnHeaders(sheet, headerStyle, headers);
 
-            // 填充数据
-            fillOrderData(sheet, orderList, dataStyle, numberStyle, dateStyle);
+                // 填充数据
+                fillOrderData(sheet, orderList, dataStyle, numberStyle, dateStyle);
 
-            // 写入响应流
-            workbook.write(response.getOutputStream());
-            response.getOutputStream().flush();
+                // 写入响应流
+                workbook.write(response.getOutputStream());
+                response.getOutputStream().flush();
 
-            log.info("订单导出成功,文件:{},记录数:{}", fileName, orderList.size());
+                log.info("订单导出成功,文件:{},记录数:{}", fileName, orderList.size());
 
-        } catch (Exception e) {
-            log.error("订单导出失败", e);
-            throw new RuntimeException("导出失败:" + e.getMessage());
+            } catch (Exception e) {
+                log.error("订单导出失败", e);
+                throw new RuntimeException("导出失败:" + e.getMessage());
+            }
         }
-    }
 
-    /**
-     * 设置列宽
-     */
-    private void setupColumnWidth(Sheet sheet) {
-        // 根据模板设置列宽(单位:1/256字符宽度)
-        sheet.setColumnWidth(0, 12 * 256);   // 序号
-        sheet.setColumnWidth(1, 12 * 256);   // 订单编号
-        sheet.setColumnWidth(2, 18 * 256);   // 下单时间
-        sheet.setColumnWidth(3, 18 * 256);   // 付款时间
-        sheet.setColumnWidth(4, 10 * 256);   // 订单状态
-        sheet.setColumnWidth(5, 8 * 256);    // 订单类型
-        sheet.setColumnWidth(6, 25 * 256);   // 商品名称
-        sheet.setColumnWidth(7, 20 * 256);   // 规格
-        sheet.setColumnWidth(8, 10 * 256);   // 单价
-        sheet.setColumnWidth(9, 8 * 256);    // 数量
-        sheet.setColumnWidth(10, 10 * 256);   // 小计
-        sheet.setColumnWidth(11, 12 * 256);  // 商品总数量
-        sheet.setColumnWidth(12, 12 * 256);  // 商品总额
-        sheet.setColumnWidth(13, 8 * 256);   // 运费
-        sheet.setColumnWidth(14, 12 * 256);  // 积分抵扣
-        sheet.setColumnWidth(15, 10 * 256);  // 实付金额
-        sheet.setColumnWidth(16, 15 * 256);  // 所属企业
-        sheet.setColumnWidth(17, 10 * 256);  // 买家姓名
-        sheet.setColumnWidth(18, 15 * 256);  // 买家电话
-    }
+        /**
+         * 设置列宽
+         */
+        private void setupColumnWidth (Sheet sheet){
+            // 根据模板设置列宽(单位:1/256字符宽度)
+            sheet.setColumnWidth(0, 12 * 256);   // 序号
+            sheet.setColumnWidth(1, 12 * 256);   // 订单编号
+            sheet.setColumnWidth(2, 18 * 256);   // 下单时间
+            sheet.setColumnWidth(3, 18 * 256);   // 付款时间
+            sheet.setColumnWidth(4, 10 * 256);   // 订单状态
+            sheet.setColumnWidth(5, 8 * 256);    // 订单类型
+            sheet.setColumnWidth(6, 25 * 256);   // 商品名称
+            sheet.setColumnWidth(7, 20 * 256);   // 规格
+            sheet.setColumnWidth(8, 10 * 256);   // 单价
+            sheet.setColumnWidth(9, 8 * 256);    // 数量
+            sheet.setColumnWidth(10, 10 * 256);   // 小计
+            sheet.setColumnWidth(11, 12 * 256);  // 商品总数量
+            sheet.setColumnWidth(12, 12 * 256);  // 商品总额
+            sheet.setColumnWidth(13, 8 * 256);   // 运费
+            sheet.setColumnWidth(14, 12 * 256);  // 积分抵扣
+            sheet.setColumnWidth(15, 10 * 256);  // 实付金额
+            sheet.setColumnWidth(16, 15 * 256);  // 所属企业
+            sheet.setColumnWidth(17, 10 * 256);  // 买家姓名
+            sheet.setColumnWidth(18, 15 * 256);  // 买家电话
+        }
+
+        /**
+         * 填充订单数据
+         */
+        private void fillOrderData (Sheet sheet, List < Order > orderList,
+                CellStyle dataStyle, CellStyle numberStyle, CellStyle dateStyle){
+            int rowNum = 2; // 从第3行开始(0-based索引)
+            int indexNum = 1; //序号
+            for (Order order : orderList) {
+                Row row = sheet.createRow(rowNum++);
+                row.setHeightInPoints(18);
+                // 订单编号
+                ExportUtils.createCell(sheet, row, 0, order.getOrderItems().size(), rowNum, indexNum, dataStyle);
+                fillOrderRowData(sheet, rowNum, row, order, dataStyle, numberStyle, dateStyle);
+                rowNum += order.getOrderItems().size() - 1;
+                indexNum++;
+            }
 
-    /**
-     * 填充订单数据
-     */
-    private void fillOrderData(Sheet sheet, List<Order> orderList,
-                               CellStyle dataStyle, CellStyle numberStyle, CellStyle dateStyle) {
-        int rowNum = 2; // 从第3行开始(0-based索引)
-        int indexNum= 1; //序号
-        for (Order order : orderList) {
-            Row row = sheet.createRow(rowNum++);
-            row.setHeightInPoints(18);
-            // 订单编号
-            ExportUtils.createCell(sheet,row, 0,order.getOrderItems().size(),rowNum, indexNum, dataStyle);
-            fillOrderRowData(sheet,rowNum,row, order, dataStyle, numberStyle, dateStyle);
-            rowNum+=order.getOrderItems().size()-1;
-            indexNum++;
         }
 
-    }
+        /**
+         * 填充单行订单数据
+         */
+        private void fillOrderRowData (Sheet sheet,int rowNum, Row row, Order order,
+                CellStyle dataStyle, CellStyle numberStyle, CellStyle dateStyle){
 
-    /**
-     * 填充单行订单数据
-     */
-    private void fillOrderRowData(Sheet sheet,int rowNum,Row row, Order order,
-                                  CellStyle dataStyle, CellStyle numberStyle, CellStyle dateStyle) {
+            // 订单编号
+            ExportUtils.createCell(sheet, row, 1, order.getOrderItems().size(), rowNum, order.getOrderNumber(), dataStyle);
 
-        // 订单编号
-        ExportUtils.createCell(sheet,row, 1,order.getOrderItems().size(),rowNum, order.getOrderNumber(), dataStyle);
+            // 下单时间
+            ExportUtils.createCell(sheet, row, 2, order.getOrderItems().size(), rowNum, ExportUtils.formatDate(order.getCreateTime()), dateStyle);
 
-        // 下单时间
-        ExportUtils.createCell(sheet,row, 2,order.getOrderItems().size(),rowNum,  ExportUtils.formatDate(order.getCreateTime()), dateStyle);
+            // 付款时间
+            ExportUtils.createCell(sheet, row, 3, order.getOrderItems().size(), rowNum, ExportUtils.formatDate(order.getPayTime()), dateStyle);
 
-        // 付款时间
-        ExportUtils.createCell(sheet,row, 3,order.getOrderItems().size(),rowNum,  ExportUtils.formatDate(order.getPayTime()), dateStyle);
+            // 订单状态
+            ExportUtils.createCell(sheet, row, 4, order.getOrderItems().size(), rowNum, getHbOrderStatus(order.getHbOrderStatus()), dataStyle);
 
-        // 订单状态
-        ExportUtils.createCell(sheet,row, 4,order.getOrderItems().size(),rowNum,getHbOrderStatus(order.getHbOrderStatus()), dataStyle);
+            // 订单类型
+            ExportUtils.createCell(sheet, row, 5, order.getOrderItems().size(), rowNum, getDvyType(order.getDvyType()), dataStyle);
+            // 商品明细行(每个订单项一行)
+            fillOrderItems(sheet, rowNum, row, order, dataStyle, numberStyle);
 
-        // 订单类型
-        ExportUtils.createCell(sheet,row, 5,order.getOrderItems().size(),rowNum, getDvyType(order.getDvyType()), dataStyle);
-        // 商品明细行(每个订单项一行)
-        fillOrderItems(sheet, rowNum, row, order, dataStyle, numberStyle);
+            // 商品总数量
+            ExportUtils.createCell(sheet, row, 11, order.getOrderItems().size(), rowNum, order.getProductNums(), dataStyle);
 
-        // 商品总数量
-        ExportUtils.createCell(sheet,row, 11,order.getOrderItems().size(),rowNum, order.getProductNums(), dataStyle);
+            // 商品总额(元)
+            ExportUtils.createCell(sheet, row, 12, order.getOrderItems().size(), rowNum, order.getTotal(), numberStyle);
 
-        // 商品总额(元)
-        ExportUtils.createCell(sheet,row, 12,order.getOrderItems().size(),rowNum, order.getTotal(), numberStyle);
+            // 运费(元)
+            ExportUtils.createCell(sheet, row, 13, order.getOrderItems().size(), rowNum, order.getFreightAmount(), numberStyle);
 
-        // 运费(元)
-        ExportUtils.createCell(sheet,row, 13,order.getOrderItems().size(),rowNum, order.getFreightAmount(), numberStyle);
+            // 积分抵扣(元) - 显示为负数
+            ExportUtils.createCell(sheet, row, 14, order.getOrderItems().size(), rowNum, "-" + (order.getOffsetPoints() == null ? 0 : Arith.div(Double.valueOf(order.getOffsetPoints()), 100)), numberStyle);
 
-        // 积分抵扣(元) - 显示为负数
-        ExportUtils.createCell(sheet,row,14,order.getOrderItems().size(),rowNum,"-"+(order.getOffsetPoints()==null?0:Arith.div(Double.valueOf(order.getOffsetPoints()), 100)), numberStyle);
+            // 实付金额
+            ExportUtils.createCell(sheet, row, 15, order.getOrderItems().size(), rowNum, order.getActualTotal(), numberStyle);
 
-        // 实付金额
-        ExportUtils.createCell(sheet,row, 15,order.getOrderItems().size(),rowNum, order.getActualTotal(), numberStyle);
+            // 所属企业
+            ExportUtils.createCell(sheet, row, 16, order.getOrderItems().size(), rowNum, order.getChannelName(), dataStyle);
 
-        // 所属企业
-        ExportUtils.createCell(sheet,row, 16,order.getOrderItems().size(),rowNum, order.getChannelName(), dataStyle);
+            // 买家姓名
+            ExportUtils.createCell(sheet, row, 17, order.getOrderItems().size(), rowNum, order.getReceiver(), dataStyle);
 
-        // 买家姓名
-        ExportUtils.createCell(sheet,row, 17,order.getOrderItems().size(),rowNum, order.getReceiver(), dataStyle);
+            // 买家电话
+            ExportUtils.createCell(sheet, row, 18, order.getOrderItems().size(), rowNum, order.getUserMobile(), dataStyle);
+        }
 
-        // 买家电话
-        ExportUtils.createCell(sheet,row, 18,order.getOrderItems().size(),rowNum, order.getUserMobile(), dataStyle);
-    }
-    /**
-     * 填充订单项明细
-     */
-    private void fillOrderItems(Sheet sheet, int rowNum, Row row, Order order,
-                                CellStyle dataStyle, CellStyle numberStyle) {
-        int itemSize = order.getOrderItems().size();
+        /**
+         * 填充订单项明细
+         */
+        private void fillOrderItems (Sheet sheet,int rowNum, Row row, Order order,
+                CellStyle dataStyle, CellStyle numberStyle){
+            int itemSize = order.getOrderItems().size();
 
-        for (int i = 0; i < itemSize; i++) {
-            Row currentRow = (i < 1) ? row : sheet.createRow(rowNum + (i-1));
-            OrderItem item = order.getOrderItems().get(i);
+            for (int i = 0; i < itemSize; i++) {
+                Row currentRow = (i < 1) ? row : sheet.createRow(rowNum + (i - 1));
+                OrderItem item = order.getOrderItems().get(i);
 
-            // 商品名称
-            ExportUtils.createCell(sheet, currentRow, 6, 0, rowNum, item.getProdName(), dataStyle);
+                // 商品名称
+                ExportUtils.createCell(sheet, currentRow, 6, 0, rowNum, item.getProdName(), dataStyle);
 
-            // 规格
-            ExportUtils.createCell(sheet, currentRow, 7, 0, rowNum, item.getSpec(), dataStyle);
+                // 规格
+                ExportUtils.createCell(sheet, currentRow, 7, 0, rowNum, item.getSpec(), dataStyle);
 
-            // 单价(元)
-            ExportUtils.createCell(sheet, currentRow, 8, 0, rowNum, item.getPrice(), numberStyle);
+                // 单价(元)
+                ExportUtils.createCell(sheet, currentRow, 8, 0, rowNum, item.getPrice(), numberStyle);
 
-            // 数量
-            ExportUtils.createCell(sheet, currentRow, 9, 0, rowNum, item.getProdCount(), dataStyle);
+                // 数量
+                ExportUtils.createCell(sheet, currentRow, 9, 0, rowNum, item.getProdCount(), dataStyle);
 
-            // 小计(元)
-            ExportUtils.createCell(sheet, currentRow, 10, 0, rowNum, item.getProductTotalAmount(), numberStyle);
+                // 小计(元)
+                ExportUtils.createCell(sheet, currentRow, 10, 0, rowNum, item.getProductTotalAmount(), numberStyle);
 
+            }
         }
-    }
 
-    /**
-     *海博订单状态
-     * @param status
-     * @return
-     */
-    private String getHbOrderStatus(Integer status) {
-        switch (status) {
-            case 0: return "待支付";
-            case 1: return "待发货";
-            case 20: return "待收货";
-            case 30: return "待收货";
-            case 40: return "待收货";
-            case 50: return "订单取消待审核";
-            case 60: return "订单取消";
-            case 70: return "待收货";
-            case 80: return "订单完成";
-            default: return "未知状态";
+        /**
+         * 海博订单状态
+         *
+         * @param status
+         * @return
+         */
+        private String getHbOrderStatus (Integer status){
+            switch (status) {
+                case 0:
+                    return "待支付";
+                case 1:
+                    return "待发货";
+                case 20:
+                    return "待收货";
+                case 30:
+                    return "待收货";
+                case 40:
+                    return "待收货";
+                case 50:
+                    return "订单取消待审核";
+                case 60:
+                    return "订单取消";
+                case 70:
+                    return "待收货";
+                case 80:
+                    return "订单完成";
+                default:
+                    return "未知状态";
+            }
         }
-    }
 
-    /**
-     * 订单类型
-     * @param dvyType
-     * @return
-     */
-    private String getDvyType(Integer dvyType) {
-        switch (dvyType) {
-            case 1: return "快递";
-            case 2: return "自提";
-            case 3: return "及时配送";
-            default: return "未知类型";
+        /**
+         * 订单类型
+         *
+         * @param dvyType
+         * @return
+         */
+        private String getDvyType (Integer dvyType){
+            switch (dvyType) {
+                case 1:
+                    return "快递";
+                case 2:
+                    return "自提";
+                case 3:
+                    return "及时配送";
+                default:
+                    return "未知类型";
+            }
         }
-    }
 
-}
+    }

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

@@ -160,7 +160,7 @@ public class PointsRechargeServiceImpl extends ServiceImpl<PointsRechargeMapper,
                 pointsRecord.setCreationDate(new Date());
                 pointsRecord.setExpiryDate(pointsRecharge.getExpiryDate());
 
-                Long aLong = pointsRecordMapper.statisticsPoint(pointsRecord.getUserId(), Math.toIntExact(pointsRecord.getChannelId()));
+                Long aLong = pointsRecordMapper.statisticsPoint(pointsRecord.getUserId(), pointsRecord.getChannelId());
                 pointsRecord.setCurrentlyAvailablePoints(pointsRecord.getPoints().add(BigDecimal.valueOf(aLong == null ? 0 : aLong )));
 
                 pointsRecordService.save(pointsRecord);

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

@@ -50,7 +50,7 @@ public class PointsRecordServiceImpl extends ServiceImpl<PointsRecordMapper, Poi
         System.out.println("处理数据长度"+pointsRecords.size());
         for (PointsRecord pointsRecord : pointsRecords) {
             pointsRecord.setId(null);
-            Long l = pointsRecordMapper.statisticsPoint(pointsRecord.getUserId(), pointsRecord.getChannelId().intValue());
+            Long l = pointsRecordMapper.statisticsPoint(pointsRecord.getUserId(), pointsRecord.getChannelId());
             if (l==null){
                 pointsRecord.setCurrentlyAvailablePoints(BigDecimal.ZERO);
             }else {

+ 16 - 7
yami-shop-service/src/main/java/com/yami/shop/service/impl/ProductServiceImpl.java

@@ -76,10 +76,10 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
     private final OfflineHandleEventService offlineHandleEventService;
 
 
-    @Override
-    public Product getById(Long prodId, Integer platform) {
-        return productMapper.doGetById(prodId, platform);
-    }
+//    @Override
+//    public Product getById(Long prodId, Integer platform) {
+//        return productMapper.doGetById(prodId, platform);
+//    }
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -150,8 +150,12 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
     }
 
     @Override
-    public Product getProductByProdId(Long prodId, Integer platform) {
-        return productMapper.doGetById(prodId, platform);
+    public Product getProductByProdId(Long prodId, Long channelId, Long shopId) {
+        return productMapper.doGetById(prodId, channelId, shopId);
+    }
+    @Override
+    public Product getProductByProdIdAndShopId(Long prodId, Long shopId) {
+        return productMapper.doGetByShopId(prodId, shopId);
     }
 
     @Override
@@ -752,7 +756,12 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
 
     @Override
     public IPage<SimilarProdListVo> similarProdList(Page<Product> page, Long prodId, Long shopId, Long channelId,String userId) {
-        return productMapper.similarProdList(page, prodId, shopId, channelId, userId);
+        IPage<SimilarProdListVo> similarProdListVoIPage = productMapper.similarProdList(page, prodId, shopId, channelId, userId);
+        similarProdListVoIPage.getRecords().forEach(similarProdListVo -> {
+            List<Sku> skuList = skuMapper.listByProdIdAndPlatform(similarProdListVo.getProdId(),channelId,shopId);
+            similarProdListVo.setSkuList(skuList);
+        });
+        return similarProdListVoIPage;
     }
 
     /**

+ 56 - 57
yami-shop-service/src/main/java/com/yami/shop/service/impl/QnhServiceImpl.java

@@ -155,62 +155,20 @@ public class QnhServiceImpl implements IQnhService {
         }
     }
 
-    @Override
-    public boolean getSkuStock(String skuCode, Long 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, 1);
-        ShopDetail shopDetail = shopDetailMapper.selectById(byId.getShopId());
-        JSONObject jsonObject = new JSONObject();
-        jsonObject.put("page_no", 1);
-        if (ObjectUtils.isNotEmpty(shopDetail)) {
-            jsonObject.put("poi_code", shopDetail.getThirdPartyCode());
-        }
-        jsonObject.put("sku_code", skuCode);
-        jsonObject.put("page_size", 50);
-        HttpResponse execute = getExecute(body, jsonObject, GET_SKU_STOCK);
-        JSONObject result = JSONObject.parseObject(execute.body());
-        requestLogService.addLog(RequestLog.builder()
-                .resource("qnh")
-                .requestMethod("getSkuStock")
-                .requestParam(JSON.toJSONString(body))
-                .result(result.toJSONString())
-                .createTime(LocalDateTime.now()).build());
-        if (result.get("data") != null) {
-            JSONArray resultList = result.getJSONArray("data");
-            resultList.forEach(rowData -> {
-                JSONObject jsonObject1 = JSONObject.parseObject(rowData.toString());
-                one1.setStocks(jsonObject1.getBigDecimal("available_stock").intValue());
-                one1.setActualStocks(jsonObject1.getBigDecimal("available_stock").intValue());
-                skuService.updateById(one1);
-            });
-            return true;
-        } else {
-            throw new GlobalException(result.getString("msg"));
-        }
-    }
-
-    @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));
-        Map<String, Object> body = bulidMap();
-        if (null == one1) throw new GlobalException("请重新选择规格,该规格不存在!");
-        Product byId = productService.getById(prodId, platform);
-        ShopDetail shopDetail = shopDetailMapper.selectById(byId.getShopId());
-        JSONObject jsonObject = new JSONObject();
-        jsonObject.put("page_no", 1);
-        if (ObjectUtils.isNotEmpty(shopDetail)) {
-            jsonObject.put("poi_code", shopDetail.getThirdPartyCode());
-        }
-        ShopSku shopSku = shopSkuMapper.selectByShopAndSku(one1.getSkuId(), byId.getShopId());
-        jsonObject.put("sku_code", skuCode);
-        jsonObject.put("page_size", 50);
-        one1.setStocks(shopSku.getShopSkuStocks());
-        one1.setActualStocks(shopSku.getShopSkuStocks());
-        return Boolean.TRUE;
+//    @Override
+//    public boolean getSkuStock(String skuCode, Long 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, 1);
+//        ShopDetail shopDetail = shopDetailMapper.selectById(byId.getShopId());
+//        JSONObject jsonObject = new JSONObject();
+//        jsonObject.put("page_no", 1);
+//        if (ObjectUtils.isNotEmpty(shopDetail)) {
+//            jsonObject.put("poi_code", shopDetail.getThirdPartyCode());
+//        }
+//        jsonObject.put("sku_code", skuCode);
+//        jsonObject.put("page_size", 50);
 //        HttpResponse execute = getExecute(body, jsonObject, GET_SKU_STOCK);
 //        JSONObject result = JSONObject.parseObject(execute.body());
 //        requestLogService.addLog(RequestLog.builder()
@@ -231,7 +189,48 @@ public class QnhServiceImpl implements IQnhService {
 //        } else {
 //            throw new GlobalException(result.getString("msg"));
 //        }
-    }
+//    }
+
+//    @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));
+//        if (null == one1) throw new GlobalException("请重新选择规格,该规格不存在!");
+//        Product byId = productService.getById(prodId, platform);
+//        ShopDetail shopDetail = shopDetailMapper.selectById(byId.getShopId());
+//        JSONObject jsonObject = new JSONObject();
+//        jsonObject.put("page_no", 1);
+//        if (ObjectUtils.isNotEmpty(shopDetail)) {
+//            jsonObject.put("poi_code", shopDetail.getThirdPartyCode());
+//        }
+//        ShopSku shopSku = shopSkuMapper.selectByShopAndSku(one1.getSkuId(), byId.getShopId());
+//        jsonObject.put("sku_code", skuCode);
+//        jsonObject.put("page_size", 50);
+//        one1.setStocks(shopSku.getShopSkuStocks());
+//        one1.setActualStocks(shopSku.getShopSkuStocks());
+//        return Boolean.TRUE;
+//        HttpResponse execute = getExecute(body, jsonObject, GET_SKU_STOCK);
+//        JSONObject result = JSONObject.parseObject(execute.body());
+//        requestLogService.addLog(RequestLog.builder()
+//                .resource("qnh")
+//                .requestMethod("getSkuStock")
+//                .requestParam(JSON.toJSONString(body))
+//                .result(result.toJSONString())
+//                .createTime(LocalDateTime.now()).build());
+//        if (result.get("data") != null) {
+//            JSONArray resultList = result.getJSONArray("data");
+//            resultList.forEach(rowData -> {
+//                JSONObject jsonObject1 = JSONObject.parseObject(rowData.toString());
+//                one1.setStocks(jsonObject1.getBigDecimal("available_stock").intValue());
+//                one1.setActualStocks(jsonObject1.getBigDecimal("available_stock").intValue());
+//                skuService.updateById(one1);
+//            });
+//            return true;
+//        } else {
+//            throw new GlobalException(result.getString("msg"));
+//        }
+//    }
 
     private HttpResponse getExecute(Map<String, Object> body, JSONObject jsonObject, String url) {
         body.put("data", jsonObject);

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

@@ -39,8 +39,8 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements SkuSe
     }
 
     @Override
-    public List<Sku> listByProdId(Long prodId, Integer platform, Long shopId) {
-        return skuMapper.listByProdIdAndPlatform(prodId, platform, shopId);
+    public List<Sku> listByProdId(Long prodId, Long channelId, Long shopId) {
+        return skuMapper.listByProdIdAndPlatform(prodId, channelId, shopId);
     }
 
     @Override
@@ -49,13 +49,13 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements SkuSe
     }
 
     @Override
-    public Sku getSkuBySkuId(Long skuId, Integer platform, Long shopId) {
-        return skuMapper.listBySukIdAndPlatformShop(skuId, platform, shopId);
+    public Sku getSkuBySkuId(Long skuId, Long channelId, Long shopId) {
+        return skuMapper.listBySukIdAndPlatformShop(skuId, channelId, shopId);
     }
 
     @Override
-    public Sku getSkuBySkuId(Long skuId, Integer platform) {
-        return skuMapper.listBySukIdAndPlatform(skuId, platform);
+    public Sku getSkuBySkuId(Long skuId, Long channelId) {
+        return skuMapper.listBySukIdAndPlatform(skuId, channelId);
     }
 
     @Override

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

@@ -61,7 +61,7 @@
             tp.STATUS = 1
           AND ts.STATUS = 1
           AND tb.user_id = #{userId}
-          AND tcp.channel_id=#{platform}
+          AND tcp.channel_id=#{channelId}
           AND tcp.is_delete=0
         ORDER BY
             tb.`basket_id` DESC

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

@@ -569,4 +569,11 @@
         order by refund.apply_time desc
     </select>
 
+    <select id="queryRemainGoodsNumber" resultType="integer">
+        SELECT (SELECT IFNULL(SUM(prod_count), 0) FROM tz_order_item WHERE order_number = #{orderNumber}) -
+               (SELECT COALESCE(SUM(product_count), 0)FROM tz_order_refund_sku a
+                LEFT JOIN tz_order_refund b ON a.order_refund_id = b.refund_id
+                WHERE b.order_number = #{orderNumber} AND b.return_money_sts NOT IN (30, 40)) AS result
+    </select>
+
 </mapper>

+ 8 - 8
yami-shop-service/src/main/resources/mapper/PointsFailureRecordMapper.xml

@@ -7,21 +7,21 @@
         SELECT
         '导入积分' AS name,
         p.code,
-        max(p.create_time) AS createTime,
+        MAX(p.create_time) AS createTime,
         p.create_by AS createBy,
         p.channel_name AS channelName,
-        COUNT(IF(p.recharge_status = 1, 1, NULL)) AS successStatus,
-        COUNT(IF(p.recharge_status = 0, 1, NULL)) AS failureStatus,
+        COUNT(CASE WHEN p.recharge_status = 1 THEN 1 ELSE NULL END) AS successStatus,
+        COUNT(CASE WHEN p.recharge_status = 0 THEN 1 ELSE NULL END) AS failureStatus,
         u.username AS createByName,
         r.role_name AS createByRole
-        from tz_points_failure_record p
-        left join tz_sys_user u on p.create_by = u.user_id
-        left join tz_sys_user_role ur on u.user_id = ur.user_id
-        left join tz_sys_role r on ur.role_id = r.role_id
+        FROM tz_points_failure_record p
+        LEFT JOIN tz_sys_user u ON p.create_by = u.user_id
+        LEFT JOIN tz_sys_user_role ur ON u.user_id = ur.user_id
+        LEFT JOIN tz_sys_role r ON ur.role_id = r.role_id
         <where>
             <if test="channelId != null">p.channel_id = #{channelId}</if>
         </where>
-        order by p.create_time DESC
         GROUP BY p.code, p.create_by, p.channel_name, u.username, r.role_name
+        ORDER BY createTime DESC
     </select>
 </mapper>

+ 4 - 4
yami-shop-service/src/main/resources/mapper/PointsRecordMapper.xml

@@ -11,7 +11,7 @@
                ) AS total_available_points
         FROM tz_points_record
         WHERE user_id = #{userId}
-          AND channel_id = #{platform}
+          AND channel_id = #{channelId}
           AND points_type IN (1, 3)
           AND points_audit IN (1, 2)
           AND (expiry_date > NOW() OR expiry_date IS NULL)
@@ -55,7 +55,7 @@
               tz_points_record
           WHERE
           user_id = #{userId}
-          AND channel_id = #{platform}
+          AND channel_id = #{channelId}
           AND points_type IN (1, 2, 3)
       </select>
     <select id="findByOrderNumber" resultType="com.yami.shop.bean.model.PointsRecord">
@@ -68,9 +68,9 @@
     </select>
     <select id="findPage" resultType="com.yami.shop.bean.model.PointsRecord">
         select * from (
-        select id,user_id,channel_id,order_number,points_id,`code`,parent_code,points,variable_points,points_type,points_audit,expiry_date,creation_date,currently_available_points from tz_points_record where channel_id = #{platform}  and user_id = #{userId}
+        select id,user_id,channel_id,order_number,points_id,`code`,parent_code,points,variable_points,points_type,points_audit,expiry_date,creation_date,currently_available_points from tz_points_record where channel_id = #{channelId}  and user_id = #{userId}
         UNION ALL
-        SELECT id,user_id,channel_id,order_number,points_id,`code`,parent_code,points,variable_points, 4 as points_type,points_audit,expiry_date,creation_date,currently_available_points from tz_points_record where channel_id = #{platform}  and user_id = #{userId} and expiry_date &lt;=creation_date and points>0 and points_type =3
+        SELECT id,user_id,channel_id,order_number,points_id,`code`,parent_code,points,variable_points, 4 as points_type,points_audit,expiry_date,creation_date,currently_available_points from tz_points_record where channel_id = #{channelId}  and user_id = #{userId} and expiry_date &lt;=creation_date and points>0 and points_type =3
         ) a
         order by a.creation_date DESC,a.order_number
 

+ 84 - 6
yami-shop-service/src/main/resources/mapper/ProductMapper.xml

@@ -130,19 +130,96 @@
 
     <select id="doGetById" resultType="com.yami.shop.bean.model.Product">
         SELECT
-            tp.*,
+            tp.prod_id,
+            tp.prod_name,
+            tp.shop_id,
+            tp.brand_id,
+            tp.brand_name,
+            tp.ori_price,
+            tp.price,
+            tp.score_price,
+            tp.brief,
+            tp.video,
+            tp.pic,
+            tp.content,
+            tp.imgs,
+            tp.status,
+            tp.is_delete,
+            tp.shop_category_id,
+            tp.category_id,
+            tp.hb_front_category_id,
+            tp.sold_num,
+            tp.delivery_mode,
+            tp.delivery_template_id,
+            tp.create_time,
+            tp.update_time,
+            tp.putaway_time,
+            tp.version,
+            tp.prod_type,
+            tp.activity_id,
+            tp.sup_id,
+            tp.hb_spu_id,
+            tp.hb_status,
+            tp.channel_code,
+            tp.half_title,
             SUM(tss.shop_sku_stocks) AS total_stocks
         FROM tz_prod tp
                  INNER JOIN tz_shop_sku tss ON tp.prod_id = tss.spu_id
-                 INNER JOIN tz_channel_shop tcs ON tss.shop_id = tcs.shop_id AND tcs.channel_id = #{platform}
+                 INNER JOIN tz_channel_shop tcs ON tss.shop_id = tcs.shop_id AND tcs.channel_id = #{channelId}
         WHERE tp.prod_id = #{prodId}
           AND tp.is_delete = 0
+          AND tss.shop_id = #{shopId}
           AND tss.is_delete = 0
-        GROUP BY tp.prod_id, tcs.shop_id
+        GROUP BY tp.prod_id, tss.shop_id
             LIMIT 1
 
     </select>
 
+    <select id="doGetByShopId" resultType="com.yami.shop.bean.model.Product">
+        SELECT
+            tp.prod_id,
+            tp.prod_name,
+            tp.shop_id,
+            tp.brand_id,
+            tp.brand_name,
+            tp.ori_price,
+            tp.price,
+            tp.score_price,
+            tp.brief,
+            tp.video,
+            tp.pic,
+            tp.content,
+            tp.imgs,
+            tp.status,
+            tp.is_delete,
+            tp.shop_category_id,
+            tp.category_id,
+            tp.hb_front_category_id,
+            tp.sold_num,
+            tp.delivery_mode,
+            tp.delivery_template_id,
+            tp.create_time,
+            tp.update_time,
+            tp.putaway_time,
+            tp.version,
+            tp.prod_type,
+            tp.activity_id,
+            tp.sup_id,
+            tp.hb_spu_id,
+            tp.hb_status,
+            tp.channel_code,
+            tp.half_title,
+            SUM(tss.shop_sku_stocks) AS total_stocks
+        FROM tz_prod tp
+                 INNER JOIN tz_shop_sku tss ON tp.prod_id = tss.spu_id
+        WHERE tp.prod_id = #{prodId}
+          AND tp.is_delete = 0
+          AND tss.shop_id = #{shopId}
+          AND tss.is_delete = 0
+        GROUP BY tp.prod_id, tss.shop_id
+            LIMIT 1
+    </select>
+
 
     <update id="returnStock">
         <foreach collection="prodCollect" item="changeStocks" index="prodId" separator=";">
@@ -937,6 +1014,7 @@
         p.pic,
         min(cha.channel_prod_price) AS channelProdPrice,
         sum(ss.shop_sku_stocks) shopSkuStocks,
+        min(ss.sku_id) skuId,
         max(b.basket_count ) as prodCount
         FROM tz_category_prod cp
         INNER JOIN tz_prod p on p.prod_id = cp.prod_id
@@ -946,8 +1024,8 @@
         where p.is_delete = 0 and
         <if test="channelId == null">cha.channel_id = 1</if>
         <if test="channelId != null">cha.channel_id = #{channelId}</if>
-        and
-        cp.code in (select sc.code
+
+        and(cp.code in (select sc.code
         FROM tz_category_prod cp
         LEFT JOIN tz_shop_category sc on cp.code = sc.code
         WHERE sc.level = 2
@@ -969,7 +1047,7 @@
         AND cha.channel_prod_price BETWEEN
         base_cha.channel_prod_price * 0.9
         AND base_cha.channel_prod_price * 1.1)
-        )
+        ))
         AND p.prod_id != #{prodId}
         GROUP BY p.prod_id
     </select>

+ 5 - 5
yami-shop-service/src/main/resources/mapper/ShopSkuMapper.xml

@@ -22,11 +22,11 @@
     </update>
 
     <select id="selectByShopAndSku" resultType="com.yami.shop.bean.model.ShopSku">
-        SELECT *
-        FROM tz_shop_sku
-        WHERE shop_id = #{shopId}
-          AND sku_id = #{skuId}
-          AND is_delete = 0
+        SELECT s.*, sku.sku_name AS skuName
+        FROM tz_shop_sku s join tz_sku sku on sku.sku_id = s.sku_id and sku.is_delete = 0
+        WHERE s.shop_id = #{shopId}
+          AND s.sku_id = #{skuId}
+          AND s.is_delete = 0
     </select>
 
 

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

@@ -78,7 +78,7 @@
           AND tcp.is_delete = 0
           AND ts.`status` = 1
           AND tss.shop_id = #{shopId}
-          AND tcp.channel_id = #{platform}
+          AND tcp.channel_id = #{channelId}
     </select>
 
     <select id="listBySukIdAndPlatformShop" resultType="com.yami.shop.bean.model.Sku">
@@ -114,7 +114,7 @@
           AND tcp.is_delete = 0
           AND ts.`status` = 1
           AND tss.shop_id = #{shopId}
-          AND tcp.channel_id = #{platform}
+          AND tcp.channel_id = #{channelId}
         LIMIT 1
     </select>
     <select id="listBySukIdAndPlatform" resultType="com.yami.shop.bean.model.Sku">
@@ -149,7 +149,7 @@
           AND ts.is_delete = 0
           AND tcp.is_delete = 0
           AND ts.`status` = 1
-          AND tcp.channel_id = #{platform} LIMIT 1
+          AND tcp.channel_id = #{channelId} LIMIT 1
     </select>
     <select id="selectByHbSkuId" resultType="com.yami.shop.bean.model.Sku">
         select *

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

@@ -63,7 +63,7 @@ public class UserScoreController {
 
     @GetMapping("/scoreInfo")
     @ApiOperation(value = "查看积分中心信息", notes = "查看积分中心信息")
-    public ResponseEntity<ScoreDataDto> scoreInfo(@RequestParam Integer platform) {
+    public ResponseEntity<ScoreDataDto> scoreInfo(@RequestParam Long platform) {
         String userId = SecurityUtils.getUser().getUserId();
         return ResponseEntity.ok(userScoreDetailService.doGetUserScore(userId, platform));
     }
@@ -77,7 +77,7 @@ public class UserScoreController {
      */
     @GetMapping("/page")
     @ApiOperation(value = "查询积分明细", notes = "查询积分明细")
-    public ResponseEntity<IPage<PointsRecord>> getScoreLogPage(@ModelAttribute PageParam<PointsRecord> page, @RequestParam Integer platform) {
+    public ResponseEntity<IPage<PointsRecord>> getScoreLogPage(@ModelAttribute PageParam<PointsRecord> page, @RequestParam Long platform) {
         String userId = SecurityUtils.getUser().getUserId();
         return ResponseEntity.ok(userScoreDetailService.doGetScorePage(page, userId,platform));
     }

+ 2 - 2
yami-shop-user/yami-shop-user-comment/src/main/java/com/yami/shop/user/comment/service/UserScoreDetailService.java

@@ -27,7 +27,7 @@ public interface UserScoreDetailService extends IService<UserScoreDetail> {
 
     void updateLogAndDetail(Long orderId, String userId);
 
-    ScoreDataDto doGetUserScore(String userId, Integer platform);
+    ScoreDataDto doGetUserScore(String userId, Long channelId);
 
-    IPage<PointsRecord> doGetScorePage(PageParam<PointsRecord> page, String userId, Integer platform);
+    IPage<PointsRecord> doGetScorePage(PageParam<PointsRecord> page, String userId, Long channelId);
 }

+ 4 - 4
yami-shop-user/yami-shop-user-comment/src/main/java/com/yami/shop/user/comment/service/impl/ScoreOrderServiceImpl.java

@@ -240,12 +240,12 @@ public class ScoreOrderServiceImpl extends ServiceImpl<OrderMapper, Order> imple
         if (skuMapper.updateStocks(updateSku) == 0) {
             skuService.removeSkuCacheBySkuId(sku.getSkuId(), sku.getProdId());
             productService.removeProductCacheByProdId(sku.getProdId());
-            throw new GlobalException("商品:[" + sku.getProdName() + "]库存不足");
+            throw new GlobalException("商品:[" + sku.getProdName() + "]库存不足1");
         }
         // 更新商品库存
         if (productMapper.updateStocks(updateProd) == 0) {
             productService.removeProductCacheByProdId(product.getProdId());
-            throw new GlobalException("商品:[" + product.getProdName() + "]库存不足");
+            throw new GlobalException("商品:[" + product.getProdName() + "]库存不足2");
         }
 //        // 更新sku库存
 //        if (skuMapper.updateStocks(sku) == 0) {
@@ -276,7 +276,7 @@ public class ScoreOrderServiceImpl extends ServiceImpl<OrderMapper, Order> imple
         }
         // -1为无限库存
         if (sku.getStocks() != -1 && shopCartItem.getProdCount() > sku.getStocks()) {
-            throw new GlobalException("商品:[" + sku.getProdName() + "]库存不足");
+            throw new GlobalException("商品:[" + sku.getProdName() + "]库存不足3");
         }
 
         if (sku.getStocks() != -1) {
@@ -302,7 +302,7 @@ public class ScoreOrderServiceImpl extends ServiceImpl<OrderMapper, Order> imple
         }
         // -1为无限库存
         if (totalStocks != -1 && product.getTotalStocks() > totalStocks) {
-            throw new GlobalException("商品:[" + product.getProdName() + "]库存不足");
+            throw new GlobalException("商品:[" + product.getProdName() + "]库存不足4");
         }
         return product;
     }

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

@@ -145,14 +145,14 @@ public class UserScoreDetailServiceImpl extends ServiceImpl<UserScoreDetailMappe
     }
 
     @Override
-    public ScoreDataDto doGetUserScore(String userId, Integer platform) {
-        return pointsRecordMapper.statisticsAllScorePoint(userId, platform);
+    public ScoreDataDto doGetUserScore(String userId, Long channelId) {
+        return pointsRecordMapper.statisticsAllScorePoint(userId, channelId);
     }
 
     @Override
-    public IPage<PointsRecord> doGetScorePage(PageParam<PointsRecord> page, String userId, Integer platform) {
-        IPage<PointsRecord> pointsRecordIPage = pointsRecordMapper.findPage(page,userId,platform);
-        Long l = pointsRecordMapper.statisticsPoint(userId, platform);
+    public IPage<PointsRecord> doGetScorePage(PageParam<PointsRecord> page, String userId, Long channelId) {
+        IPage<PointsRecord> pointsRecordIPage = pointsRecordMapper.findPage(page,userId,channelId);
+        Long l = pointsRecordMapper.statisticsPoint(userId, channelId);
         SimpleDateFormat sdf = new SimpleDateFormat("MM月dd日 HH:mm");
         List<PointsRecord> collect = pointsRecordIPage.getRecords().stream().flatMap((pointsRecord) -> {
             pointsRecord.setCreationDateStr(sdf.format(pointsRecord.getCreationDate()));