Эх сурвалжийг харах

Merge remote-tracking branch 'origin/master'

wangming 3 өдөр өмнө
parent
commit
57e8445fe3
19 өөрчлөгдсөн 121 нэмэгдсэн , 83 устгасан
  1. 6 4
      yami-shop-api/src/main/java/com/yami/shop/api/controller/MyOrderController.java
  2. 6 0
      yami-shop-api/src/main/java/com/yami/shop/api/controller/OrderRefundController.java
  3. 3 3
      yami-shop-api/src/main/java/com/yami/shop/api/controller/PayController.java
  4. 2 0
      yami-shop-bean/src/main/java/com/yami/shop/bean/app/dto/ApiOrderRefundDto.java
  5. 1 1
      yami-shop-bean/src/main/java/com/yami/shop/bean/app/dto/MyOrderDto.java
  6. 2 1
      yami-shop-bean/src/main/java/com/yami/shop/bean/dto/OrderRefundDto.java
  7. 2 0
      yami-shop-bean/src/main/java/com/yami/shop/bean/model/OrderRefund.java
  8. 2 0
      yami-shop-bean/src/main/java/com/yami/shop/bean/param/OrderRefundAmountDTO.java
  9. 1 0
      yami-shop-platform/src/main/resources/application.yml
  10. 2 1
      yami-shop-security/yami-shop-security-api/src/main/java/com/yami/shop/security/api/config/ResourceServerConfiguration.java
  11. 11 13
      yami-shop-service/src/main/java/com/yami/shop/service/hb/impl/HBFrontCategoryService.java
  12. 21 31
      yami-shop-service/src/main/java/com/yami/shop/service/hb/impl/HBGoodsService.java
  13. 1 11
      yami-shop-service/src/main/java/com/yami/shop/service/hb/impl/HBOrderService.java
  14. 2 2
      yami-shop-service/src/main/java/com/yami/shop/service/hb/impl/StoreManagementService.java
  15. 3 1
      yami-shop-service/src/main/java/com/yami/shop/service/impl/MyOrderServiceImpl.java
  16. 48 7
      yami-shop-service/src/main/java/com/yami/shop/service/impl/OrderServiceImpl.java
  17. 6 6
      yami-shop-service/src/main/resources/mapper/OrderMapper.xml
  18. 1 1
      yami-shop-service/src/main/resources/mapper/ProductMapper.xml
  19. 1 1
      yami-shop-wx/src/main/java/com/yami/shop/wx/po/RefundInfoPo.java

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

@@ -26,6 +26,7 @@ import com.yami.shop.config.ShopConfig;
 import com.yami.shop.dao.PointsRecordMapper;
 import com.yami.shop.security.api.util.SecurityUtils;
 import com.yami.shop.service.*;
+import com.yami.shop.service.hb.IHBOrderService;
 import com.yami.shop.utils.CullenUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -33,6 +34,7 @@ import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import ma.glasnost.orika.MapperFacade;
+import org.springframework.core.annotation.OrderUtils;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 
@@ -68,6 +70,7 @@ public class MyOrderController {
     private final ShopDetailService shopDetailService;
 
     private final OrderItemService orderItemService;
+    private final IHBOrderService ihbOrderService;
 
     private final OrderRefundService orderRefundService;
     private final PointsRecordMapper pointsRecordMapper;
@@ -341,10 +344,9 @@ public class MyOrderController {
         // 确认收货
         orderService.receiptOrder(Collections.singletonList(order));
 
-        for (OrderItem orderItem : orderItems) {
-            productService.removeProductCacheByProdId(orderItem.getProdId());
-            skuService.removeSkuCacheBySkuId(orderItem.getSkuId(), orderItem.getProdId());
-        }
+        //海博订单完成
+        ihbOrderService.changeOrderStatus(order.getOrderNumber(), OrderStatus.SUCCESS.value());
+
         return ResponseEntity.ok().build();
     }
 

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

@@ -538,6 +538,12 @@ public class OrderRefundController {
         orderRefund.setUpdateTime(new Date());
 
         orderRefundService.submitExpress(orderRefund, refundDelivery);
+
+
+        //海博退款单状态同步65
+        log.info("客户填写完成快递信息后海博退款单状态同步65");
+        orderRefundService.changeStatus(orderRefund.getRefundSn(), ReturnMoneyStsType.RECEIVE.value());
+
         return ResponseEntity.ok("提交成功");
     }
 

+ 3 - 3
yami-shop-api/src/main/java/com/yami/shop/api/controller/PayController.java

@@ -52,9 +52,9 @@ public class PayController {
     @ApiOperation(value = "测试退款")
     public ResponseEntity<?> refund() {
         RefundInfoPo po = new RefundInfoPo();
-        po.setOutTradeNo("");
-        po.setTotal(0);
-        po.setRefundMoney(0);
+        po.setOutTradeNo("1981204768344903680");
+        po.setTotal(310);
+        po.setRefundMoney(310);
         return ResponseEntity.ok(wxProviderService.refundOrder(po));
     }
 

+ 2 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/app/dto/ApiOrderRefundDto.java

@@ -121,6 +121,8 @@ public class ApiOrderRefundDto {
     @ApiModelProperty("商品总额")
     private Double goodsTotal;
 
+    @ApiModelProperty("过期的积分")
+    private Long refundExpiredScore;;
     /*
 ac
     @ApiModelProperty("物流公司名称")

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

@@ -31,7 +31,7 @@ public class MyOrderDto {
     private Double actualTotal;
 
     @ApiModelProperty(value = "使用积分", required = true)
-    private Integer userScore;
+    private Integer userScore=0;
 
     @ApiModelProperty(value = "订单状态", required = true)
     private Integer status;

+ 2 - 1
yami-shop-bean/src/main/java/com/yami/shop/bean/dto/OrderRefundDto.java

@@ -102,5 +102,6 @@ public class OrderRefundDto extends OrderRefund implements Serializable {
     private Long offsetPoints;
 
     private Double goodsTotal;
-
+    //过期的积分
+    private Long refundExpiredScore;
 }

+ 2 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/model/OrderRefund.java

@@ -163,6 +163,8 @@ public class OrderRefund implements Serializable{
     private Double freightAmount;
 
     private Long offsetPoints;
+    //过期的积分
+    private Long refundExpiredScore;
 
     @TableField(exist = false)
     @ApiModelProperty(value = "退款商品详情")

+ 2 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/param/OrderRefundAmountDTO.java

@@ -1,5 +1,6 @@
 package com.yami.shop.bean.param;
 
+import lombok.Builder;
 import lombok.Data;
 
 import java.math.BigDecimal;
@@ -12,6 +13,7 @@ import java.math.BigDecimal;
  * @since 2025-10-22
  */
 @Data
+@Builder
 public class OrderRefundAmountDTO {
     private BigDecimal orderRefundAmount = BigDecimal.ZERO;
     private Long offsetPoints = 0L;

+ 1 - 0
yami-shop-platform/src/main/resources/application.yml

@@ -9,6 +9,7 @@ spring:
     multipart:
       max-file-size: 100MB
       max-request-size: 100MB
+
       enabled: true
   jackson:
     date-format: yyyy-MM-dd HH:mm:ss

+ 2 - 1
yami-shop-security/yami-shop-security-api/src/main/java/com/yami/shop/security/api/config/ResourceServerConfiguration.java

@@ -47,7 +47,8 @@ public class ResourceServerConfiguration extends ResourceServerConfigurerAdapter
 
                 .authorizeRequests()
                 .antMatchers(
-                        "/p/delivery/getDeliveryList"
+                        "/p/delivery/getDeliveryList",
+                        "/p/order/refund"
                         ).permitAll()
                 .and()
 

+ 11 - 13
yami-shop-service/src/main/java/com/yami/shop/service/hb/impl/HBFrontCategoryService.java

@@ -75,18 +75,6 @@ public class HBFrontCategoryService implements IHBFrontCategoryService {
                 frontCategory.setPic(jsonObjectInfo.getString("https://zswl-shop.oss-cn-chengdu.aliyuncs.com/2025/09/fe56414a161b498b8f263d3e6afdab92.png"));
                 log.info("添加前台类目信息{}", frontCategory);
 
-//                if (ObjectUtils.isNotEmpty(jsonObjectInfo.getString("parentCode")) && !jsonObjectInfo.getString("parentCode").equals("0")) {
-//                    frontCategoryMapper.selectOne(new LambdaQueryWrapper<FrontCategory>().
-//                            eq(FrontCategory::getParentCode, frontCategory.getParentCode())
-//                            .eq(FrontCategory::getIsDelete, 0));
-//                    if (frontCategory.getParentCode() == null) {
-//                        FrontCategory frontCategory1 = new FrontCategory();
-//                        frontCategory1.setCode(jsonObjectInfo.getString("parentCode"));
-//                        frontCategory1.setName(jsonObjectInfo.getString("parentName"));
-//                        frontCategory1.setIsDelete(0);
-//                        frontCategoryMapper.insert(frontCategory1);
-//                    }
-//                }
                 FrontCategory frontCategory1 = frontCategoryMapper.selectOne(new LambdaQueryWrapper<FrontCategory>().
                         eq(FrontCategory::getCode, frontCategory.getCode())
                         .eq(FrontCategory::getIsDelete, 0));
@@ -95,6 +83,16 @@ public class HBFrontCategoryService implements IHBFrontCategoryService {
                 } else {
                     frontCategory.setId(frontCategory1.getId());
                     frontCategoryMapper.updateById(frontCategory);
+
+                    //修改门店分类里面对应的
+                    List<ShopCategory> shopCategory = shopCategoryMapper.selectList(new LambdaQueryWrapper<ShopCategory>().eq(ShopCategory::getCode, frontCategory.getCode())
+                    .eq(ShopCategory::getIsDelete, 0));
+                    for (ShopCategory shopCategory1 : shopCategory) {
+                        shopCategory1.setName(frontCategory.getName());
+                        shopCategoryMapper.updateById(shopCategory1);
+                    }
+
+
                 }
                 // 3. 保存门店信息
 //                frontCategoryMapper.insert(frontCategory);
@@ -129,7 +127,7 @@ public class HBFrontCategoryService implements IHBFrontCategoryService {
         for (Object code : codeList) {
 
             log.info("前台类目删除,body:{}", code.toString());
-            FrontCategory frontCategory = frontCategoryMapper.selectOne(new LambdaQueryWrapper<FrontCategory>().eq(FrontCategory::getCode, Long.getLong(code.toString())));
+            FrontCategory frontCategory = frontCategoryMapper.selectOne(new LambdaQueryWrapper<FrontCategory>().eq(FrontCategory::getCode, Long.valueOf(code.toString())));
             frontCategory.setIsDelete(1);
             frontCategoryMapper.updateById(frontCategory);
 

+ 21 - 31
yami-shop-service/src/main/java/com/yami/shop/service/hb/impl/HBGoodsService.java

@@ -306,38 +306,28 @@ public class HBGoodsService implements IHBGoodsService {
 
     @Override
     public void deleteGoods(JSONObject hbRequest) {
-        String bodyStr = hbRequest.getString("body");
-        log.info("商品删除,body:{}", bodyStr);
-
-        JSONObject bodyJson = JSON.parseObject(bodyStr);
-
-        String spuId = bodyJson.getString("spuId");
-        Product product;
-        if (ObjectUtil.isEmpty(spuId)) {
-            product = productMapper.selectOne(new LambdaQueryWrapper<Product>()
-                    .eq(Product::getChannelCode, bodyJson.getString("channelCode"))
-                    .eq(Product::getIsDelete, 0));
-        } else {
-            product = productMapper.selectByHbSpuId(spuId);
-        }
-        if (!ObjectUtil.isEmpty(product)) {
-            product.setIsDelete(1);
-            productMapper.updateById(product);
-            skuMapper.deleteByProdId(product.getProdId());
+        JSONObject body = hbRequest.getJSONObject("body");
+        log.info("商品删除,body:{}", body);
+
+        JSONArray productList = body.getJSONArray("productList");
+        for (Object hbProductObject : productList) {
+            JSONObject hbProduct = JSON.parseObject(hbProductObject.toString());
+
+            String spuId = hbProduct.getString("spuId");
+            String skuId = hbProduct.getString("skuId");
+            Product product;
+            if (ObjectUtil.isNotEmpty(spuId)) {
+                product = productMapper.selectByHbSpuId(spuId);
+            } else {
+                Sku sku = skuMapper.selectByHbSkuId(skuId);
+                product = productMapper.selectByHbSpuId(sku.getHbSpuId());
+            }
+            if (!ObjectUtil.isEmpty(product)) {
+                product.setIsDelete(1);
+                productMapper.updateById(product);
+                skuMapper.deleteByProdId(product.getProdId());
+            }
         }
-
-//        JSONArray requestList = bodyJson.getJSONArray("productList");
-//        for (Object request : requestList) {
-//            JSONObject jsonObject = JSON.parseObject(request.toString());
-//            String skuId = jsonObject.getString("skuId");
-//            Sku sku = skuMapper.selectByHbSkuId(skuId);
-//            if (ObjectUtil.isEmpty(sku)) {
-//                log.error("系统找不到删除对应商品(单品):{}", skuId);
-//                return;
-//            }
-//            sku.setIsDelete(1);
-//            skuMapper.updateById(sku);
-//        }
     }
 
     @Override

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

@@ -144,7 +144,6 @@ public class HBOrderService implements IHBOrderService {
 
     @Override
     public String changeOrderStatus(String channelOrderId, Integer type) {
-
         HBBaseReq<Object> build = HBBaseReq.create();
         build.setAppId(hbSignUtil.getAppId());
 
@@ -163,14 +162,6 @@ public class HBOrderService implements IHBOrderService {
         log.info("post 订单推送单号参数:{}", JSON.toJSONString(build));
         String post = post(hbSignUtil.getHBHost() + "/api/order/changeOrderStatus", build);
         log.info("post 订单推送结果:{}", post);
-
-
-        //TODO 具体看是退钱还是退积分
-        if (type == 70) {//退款
-
-        }
-
-
         return post;
     }
 
@@ -257,7 +248,6 @@ public class HBOrderService implements IHBOrderService {
         String channelOrderId = body.getString("channelOrderId");
         Long changeTime = body.getLong("changeTime");
         Integer logisticStatus = body.getInteger("logisticStatus");
-        String operator = body.getString("operator");
         Order order = orderMapper.getOrderAndOrderItemByOrderNumber(channelOrderId);
         order.setHbLogisticStatus(logisticStatus);
         order.setUpdateTime(new Date(changeTime));
@@ -292,7 +282,7 @@ public class HBOrderService implements IHBOrderService {
     @Override
     public void deliveryMsg(JSONObject hBRequest) {
         String bodyStr = hBRequest.getString("body");
-        log.info("订单息,body:{}", bodyStr);
+        log.info("订单-发货消息,body:{}", bodyStr);
         JSONObject bodyJson = JSON.parseObject(bodyStr);
         Order order = orderMapper.getOrderAndOrderItemByOrderNumber(bodyJson.getString("channelOrderId"));
 

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

@@ -137,8 +137,8 @@ public class StoreManagementService implements IStoreManagementService {
             shopDetailInfo.setCity(resultData.getString("city"));
             shopDetailInfo.setArea(resultData.getString("district"));
             shopDetailInfo.setShopOwner(resultData.getString("contacts"));
-            shopDetailInfo.setShopLat(resultData.getString("longitude"));
-            shopDetailInfo.setShopLng(resultData.getString("latitude"));
+            shopDetailInfo.setShopLat(resultData.getString("latitude"));
+            shopDetailInfo.setShopLng(resultData.getString("longitude"));
             shopDetailInfo.setThirdPartyCode(resultData.getString("stationId"));
             shopDetailInfo.setNotice(resultData.getString("notice"));
             shopDetailInfo.setTel(resultData.getString("phone"));

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

@@ -52,7 +52,9 @@ public class MyOrderServiceImpl extends ServiceImpl<OrderMapper, Order> implemen
             }
 //            List<MyOrderItemDto> orderItemDtos = myOrderDto.getOrderItemDtos();
 //            int score = orderItemDtos.stream().mapToInt(MyOrderItemDto::getUseScore).sum();
-            myOrderDto.setUserScore(Math.toIntExact(myOrderDto.getOffsetPoints()));
+            if(null!=myOrderDto.getOffsetPoints()){
+                myOrderDto.setUserScore(Math.toIntExact(myOrderDto.getOffsetPoints()));
+            }
             if (null != myOrderDto.getPayTime()) {
                 // 转换为 LocalDateTime 并增加 1 小时
                 LocalDateTime delayedTime = myOrderDto.getPayTime().toInstant()

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

@@ -878,12 +878,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 //            }
 
             // 待发货状态-最后一件商品进行退款,退款金额 =  商品金额 + 订单运费金额
-//            if (Objects.equals(order.getHbOrderStatus(), OrderStatus.PADYED.value()) && order.getFreightAmount() > 0) {
-//                int orderItenCount = orderItemService.count(new LambdaQueryWrapper<OrderItem>().eq(OrderItem::getOrderNumber, order.getOrderNumber()));
-//                if (Objects.equals(orderRefunds.size(), orderItenCount - 1)) {
-//                    newOrderRefund.setRefundAmount(Arith.add(newOrderRefund.getRefundAmount(), order.getFreightAmount()));
-//                }
-//            }
+            if ((Objects.equals(order.getHbOrderStatus(), OrderStatus.PADYED.value()) ||
+                    Objects.equals(order.getHbOrderStatus(), OrderStatus.CONSIGNMENT.value())) && order.getFreightAmount() > 0) {
+                int orderItenCount = orderItemService.count(new LambdaQueryWrapper<OrderItem>().eq(OrderItem::getOrderNumber, order.getOrderNumber()));
+                if (Objects.equals(orderRefunds.size(), orderItenCount - 1)) {
+                    newOrderRefund.setRefundAmount(Arith.add(newOrderRefund.getRefundAmount(), order.getFreightAmount()));
+                    newOrderRefund.setFreightAmount(order.getFreightAmount());
+                }
+            }
         }
 
         newOrderRefund.setShopId(order.getShopId());
@@ -908,8 +910,18 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         newOrderRefund.setReturnMoneySts(rReturnMoneySts);
         newOrderRefund.setApplyTime(new Date());
         newOrderRefund.setUpdateTime(new Date());
+
+        //TODO 待完善 积分
         log.info("生成退款单:{}", newOrderRefund);
 
+        List<OrderRefundAmountParam> sukList = Lists.newArrayList();
+        orderRefundParam.getOrderRefundSkuList().forEach(c -> {
+            OrderRefundAmountParam orderRefundAmountParam = new OrderRefundAmountParam();
+            orderRefundAmountParam.setSkuId(c.getSkuId());
+            orderRefundAmountParam.setProdCount(c.getProductCount());
+            sukList.add(orderRefundAmountParam);
+        });
+
         // 生成退款单
         orderRefundMapper.insert(newOrderRefund);
         // 更新订单状态
@@ -943,6 +955,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                 .eq(OrderRefund::getReturnMoneySts, 70)
         );
         if (ObjectUtils.isNotEmpty(orderRefund)) {
+            //退款的金额
+            BigDecimal refundActual = BigDecimal.ZERO;
+            //退款的积分
+            Long refundScore = 0L;
+            //过期的积分
+            Long refundExpiredScore = 0L;
+
             Order order = orderMapper.selectById(orderRefund.getOrderId());
             if (null == order) throw new GlobalException("该订单不支持退款");
             //判定已完成的时间
@@ -965,6 +984,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                             po.setRefundMoney((int) Arith.mul(Arith.add(order.getActualTotal(), order.getFreightAmount()), 100));
                             String s = wxProviderService.refundOrder(po);
                             System.out.println("微信退款结果:" + s);
+                            refundActual = BigDecimal.valueOf(Arith.add(order.getActualTotal(), order.getFreightAmount()));
                             //优先退未过期的积分,退积分
                             List<PointsRecord> pointsRecords = pointsRecordMapper.selectList(new LambdaQueryWrapper<PointsRecord>()
                                     .eq(PointsRecord::getOrderNumber, order.getOrderNumber()).eq(PointsRecord::getPointsType, 2)
@@ -974,6 +994,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                                             .isNull(PointsRecord::getExpiryDate)
                                     ).orderByDesc(PointsRecord::getExpiryDate));
                             for (PointsRecord pointsRecord : pointsRecords) {
+                                refundScore = (long) (refundScore + Arith.add(order.getActualTotal(), order.getFreightAmount()));
                                 PointsRecord npr = new PointsRecord();
                                 BeanUtils.copyProperties(pointsRecord, npr);
                                 npr.setId(null);
@@ -985,6 +1006,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                                 npr.setCreationDate(new Date());
                                 pointsRecordMapper.insert(npr);
                             }
+                            refundExpiredScore = order.getOffsetPoints() - refundScore;
                         } else {//仅微信支付
                             RefundInfoPo po = new RefundInfoPo();
                             po.setOutTradeNo(orderSettlement.getPayNo());
@@ -992,6 +1014,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                             po.setRefundMoney((int) Arith.mul(Arith.add(order.getTotal(), order.getFreightAmount()), 100));
                             String s = wxProviderService.refundOrder(po);
                             System.out.println("微信退款结果:" + s);
+                            refundActual = BigDecimal.valueOf(Arith.add(order.getTotal(), order.getFreightAmount()));
                         }
                     } else {
                         //退,积分【优先退未过期的积分】
@@ -1012,8 +1035,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                             Long l = pointsRecordMapper.statisticsPoint(pointsRecord.getUserId(), Math.toIntExact(pointsRecord.getChannelId()));
                             npr.setCurrentlyAvailablePoints(pointsRecord.getVariablePoints().add(BigDecimal.valueOf(l)));
                             npr.setCreationDate(new Date());
+                            refundScore = (long) (refundScore + Arith.add(order.getActualTotal(), order.getFreightAmount()));
                             pointsRecordMapper.insert(npr);
                         }
+                        refundExpiredScore = order.getOffsetPoints() - refundScore;
                     }
                     break;
                 case 2://2:单个物品退款
@@ -1041,8 +1066,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                             totalRefundActual = Arith.add(totalRefundActual, productCount * orderItem.getPrice());
                         }
                     }
+
                     //退积分
                     if (totalRefundScore > 0) {
+                        refundScore = (long) totalRefundScore;
+                        refundExpiredScore = order.getOffsetPoints() - refundScore;
                         for (PointsRecord pointsRecord : pointsRecords) {
                             //下单支付的金额
                             int variablePoints = pointsRecord.getVariablePoints().intValue();
@@ -1064,6 +1092,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                             pointsRecordMapper.insert(npr);
                             if (variablePoints >= totalRefundScore) return;
                         }
+
                     }
                     //退钱
                     if (totalRefundActual > 0) {
@@ -1076,12 +1105,18 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                         po.setRefundMoney((int) Arith.mul(totalRefundActual, 100));
                         String s = wxProviderService.refundOrder(po);
                         System.out.println("微信退款结果:" + s);
+                        refundActual = BigDecimal.valueOf(totalRefundActual);
                     }
                     break;
             }
             order.setHbOrderStatus(OrderStatus.CLOSE.value());
             orderMapper.updateById(order);
 
+            orderRefund.setRefundAmount(refundActual.doubleValue());
+            orderRefund.setOffsetPoints(refundScore);
+            orderRefund.setRefundExpiredScore(refundExpiredScore);
+            orderRefundMapper.updateById(orderRefund);
+
             //生成待商家审核记录
             OrderRefundRecord orderRefundRecord = new OrderRefundRecord();
             orderRefundRecord.setOrderRefundId(orderRefund.getRefundId());
@@ -1095,7 +1130,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 
     @Override
     public OrderRefundAmountDTO computeOrderRefundAmount(String orderNumber, List<OrderRefundAmountParam> suk) {
-        return null;
+        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

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

@@ -227,7 +227,7 @@
     </update>
 
     <update id="receiptOrder">
-        update tz_order set `hb_order_status`=80,finally_time = NOW(),update_time=NOW() where order_id in
+        update tz_order set `hb_order_status`= 80,finally_time = NOW(),update_time=NOW() where order_id in
         <foreach collection="orders" item="order" open="(" close=")" separator=",">
             #{order.orderId}
         </foreach>
@@ -251,7 +251,7 @@
 
 
     <select id="listOrdersDetialByOrder" resultMap="orderAndOrderItemAndUserAddrMap">
-        select o.*,oi.*,oi.prod_name as item_prod_name,o.prod_name as order_prod_name,uao.* ,oi.hb_order_status as oi_status
+        select o.*,oi.*,oi.prod_name as item_prod_name,o.prod_name as order_prod_name,uao.* ,o.hb_order_status as oi_status
         from tz_order o
         left join tz_order_item oi on o.order_number = oi.order_number
         left join tz_user_addr_order uao on o.addr_order_id = uao.addr_order_id
@@ -374,7 +374,7 @@
 
     <select id="listOrdersDetialByOrderParam" resultMap="orderAndOrderItemAndUserAddrMap">
         SELECT *,oi.prod_name as item_prod_name,oi.actual_total as oi_actual_total,IF(r.refund_type = 2,r.return_money_sts,IF(ar.refund_type = 1,ar.return_money_sts,NULL)) AS oi_return_money_sts,
-        temp.prod_name as order_prod_name,oi.hb_order_status as oi_status, IF(os.pay_score IS NULL,0,os.pay_score) as pay_score
+        temp.prod_name as order_prod_name,temp.hb_order_status as oi_status, IF(os.pay_score IS NULL,0,os.pay_score) as pay_score
         FROM
         (
         SELECT o.*,sd.shop_name,uao.receiver,uao.mobile,u.user_mobile,u.nick_name FROM tz_order o
@@ -594,7 +594,7 @@
             temp.pay_time,
             temp.dvy_type,
             temp.order_id, temp.create_time, temp.freight_amount,temp.order_number,temp.actual_total,temp.shop_id,temp.addr_order_id FROM tz_order temp
-        WHERE temp.user_id = #{userId} and temp.delete_status = 0
+        WHERE temp.user_id = #{userId}
         <if test="status != null">
             AND
             <choose>
@@ -773,7 +773,7 @@
         ) AS temp
     </select>
     <select id="listOrdersDetialByOrderInfo" resultMap="orderAndOrderItemAndUserAddrMap">
-        SELECT *,oi.prod_name,uao.address,uao.address_name,uao.addr_detail as item_prod_name,oi.actual_total as oi_actual_total,temp.prod_name as order_prod_name,oi.hb_order_status as oi_status
+        SELECT *,oi.prod_name,uao.address,uao.address_name,uao.addr_detail as item_prod_name,oi.actual_total as oi_actual_total,temp.prod_name as order_prod_name,temp.hb_order_status as oi_status
         FROM
         (
         SELECT o.*,sd.shop_name FROM tz_order o
@@ -843,7 +843,7 @@
         </foreach>
     </select>
     <select id="getOrderDetailByOrderNumberAndShopId" resultMap="orderAndOrderItemAndUserAddrMap">
-        SELECT o.*,oi.prod_name as item_prod_name,oi.*,uao.*,u.`nick_name`,u.user_mobile,oi.hb_order_status as oi_status, IF(o.refund_type = 1,
+        SELECT o.*,oi.prod_name as item_prod_name,oi.*,uao.*,u.`nick_name`,u.user_mobile,o.hb_order_status as oi_status, IF(o.refund_type = 1,
             o.rms,r.return_money_sts) AS oi_return_money_sts
         FROM (
             SELECT temp.*,tr.refund_type,tr.return_money_sts rms

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

@@ -165,7 +165,7 @@
                  LEFT JOIN tz_shop_sku AS tss ON tp.prod_id = tss.spu_id
                  LEFT JOIN tz_channel_shop AS tcs ON tss.shop_id = tcs.shop_id
         WHERE tp.prod_id = #{prodId}
-          AND tcs.channel_id = #{platform} and p.`is_delete`=0
+          AND tcs.channel_id = #{platform} and tp.`is_delete`=0
         GROUP BY
             tp.prod_id,
             tcs.shop_id

+ 1 - 1
yami-shop-wx/src/main/java/com/yami/shop/wx/po/RefundInfoPo.java

@@ -17,7 +17,7 @@ import javax.validation.constraints.NotNull;
 @NoArgsConstructor
 public class RefundInfoPo {
 
-    @ApiModelProperty(value = "订单号")
+    @ApiModelProperty(value = "订单结算表pay_no支付单号")
     @NotNull(message = "订单号不能为空...")
     private String outTradeNo;