Bläddra i källkod

海博退款单模块

fubojin 5 dagar sedan
förälder
incheckning
9350d04468

+ 22 - 4
yami-shop-api/src/main/java/com/yami/shop/api/controller/OrderRefundController.java

@@ -9,16 +9,14 @@ import com.yami.shop.bean.app.dto.ApiOrderRefundDto;
 import com.yami.shop.bean.app.param.OrderRefundExpressParam;
 import com.yami.shop.bean.app.param.OrderRefundParam;
 import com.yami.shop.bean.dto.OrderRefundDto;
-import com.yami.shop.bean.enums.OrderStatus;
-import com.yami.shop.bean.enums.RefundStatusEnum;
-import com.yami.shop.bean.enums.RefundType;
-import com.yami.shop.bean.enums.ReturnMoneyStsType;
+import com.yami.shop.bean.enums.*;
 import com.yami.shop.bean.model.*;
 import com.yami.shop.bean.param.OrderDto;
 import com.yami.shop.common.config.Constant;
 import com.yami.shop.common.exception.GlobalException;
 import com.yami.shop.common.util.Arith;
 import com.yami.shop.common.util.PageParam;
+import com.yami.shop.dao.OrderRefundRecordMapper;
 import com.yami.shop.dao.OrderRefundSkuMapper;
 import com.yami.shop.delivery.comment.api.paotui.PaoTuiApi;
 import com.yami.shop.delivery.comment.api.paotui.model.request.AddWithoutShopRequest;
@@ -58,6 +56,8 @@ public class OrderRefundController {
 
     private final OrderRefundService orderRefundService;
 
+    private final OrderRefundRecordMapper orderRefundRecordMapper;
+
     private final OrderRefundSkuMapper orderRefundSkuMapper;
 
     private final OrderService orderService;
@@ -451,6 +451,24 @@ public class OrderRefundController {
             });
         }
 
+        //生成退款记录
+        //生成申请退款记录
+        OrderRefundRecord orderRefundRecord = new OrderRefundRecord();
+        orderRefundRecord.setOrderRefundId(orderRefund.getRefundId());
+        orderRefundRecord.setInstructions(newOrderRefund.getBuyerReason());
+        orderRefundRecord.setUpdateTime(new Date());
+        orderRefundRecord.setAuditStatus(1);
+        orderRefundRecord.setSort(1);
+        orderRefundRecordMapper.insert(orderRefundRecord);
+
+        //生成待商家审核记录
+        OrderRefundRecord orderRefundRecord1 = new OrderRefundRecord();
+        orderRefundRecord1.setOrderRefundId(orderRefund.getRefundId());
+        orderRefundRecord1.setInstructions("你的服务单已申请成功,待商家审核");
+        orderRefundRecord1.setUpdateTime(new Date());
+        orderRefundRecord1.setAuditStatus(2);
+        orderRefundRecord1.setSort(2);
+        orderRefundRecordMapper.insert(orderRefundRecord1);
 
         //创建海博退款单
         log.info( "创建海博退款单,生成海博退款单信息{}", orderRefund);

+ 33 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/model/OrderRefundRecord.java

@@ -0,0 +1,33 @@
+package com.yami.shop.bean.model;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@TableName("tz_order_refund_record")
+public class OrderRefundRecord {
+
+    @TableId
+    @ApiModelProperty(value = "退款记录ID")
+    private Long id;
+
+    @ApiModelProperty(value = "退款单ID")
+    private Long orderRefundId;
+
+    @ApiModelProperty(value = "说明")
+    private String instructions;
+
+    @ApiModelProperty(value = "修改时间")
+    private Date updateTime;
+
+    @ApiModelProperty(value = "审核状态(1-申请原因,2-商家待审核,3-审核通过,4-驳回,5-退款成功)")
+    private Integer auditStatus;
+
+    @ApiModelProperty(value = "排序")
+    private Integer sort;
+
+}

+ 11 - 0
yami-shop-service/src/main/java/com/yami/shop/dao/OrderRefundRecordMapper.java

@@ -0,0 +1,11 @@
+package com.yami.shop.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yami.shop.bean.model.AdvertInfo;
+import com.yami.shop.bean.model.OrderRefundRecord;
+
+/**
+ * @author fbj
+ */
+public interface OrderRefundRecordMapper extends BaseMapper<OrderRefundRecord> {
+}

+ 23 - 12
yami-shop-service/src/main/java/com/yami/shop/service/hb/impl/HBGoodsService.java

@@ -236,6 +236,7 @@ public class HBGoodsService implements IHBGoodsService {
                     shopSkuMapper.insert(shopSkuInfo);
                     log.info("门店对应商品系统不存在直接添加");
                 } else {
+                    shopSku.setSpuId(sku.getProdId());
                     shopSku.setShopSkuPrice(currentPrice == null ? 0.0 : currentPrice);
                     shopSku.setUpdateTime(new Date());
                     shopSkuMapper.updateById(shopSku);
@@ -282,13 +283,14 @@ public class HBGoodsService implements IHBGoodsService {
                     shopSkuInfo.setShopId(shopDetail.getShopId());
                     shopSkuInfo.setShopSkuStocks(currentStock);
                     shopSkuInfo.setSkuId(sku.getSkuId());
-                    shopSkuInfo.setSpuId(sku.getProdId());
+
                     shopSkuInfo.setIsDelete(0);
                     shopSkuInfo.setRecTime(new Date());
                     shopSkuInfo.setUpdateTime(new Date());
                     shopSkuMapper.insert(shopSkuInfo);
                     log.info("库存添加成功");
                 } else {
+                    shopSku.setSpuId(sku.getProdId());
                     shopSku.setShopSkuStocks(currentStock);
                     shopSku.setUpdateTime(new Date());
                     shopSkuMapper.updateById(shopSku);
@@ -309,18 +311,27 @@ public class HBGoodsService implements IHBGoodsService {
         log.info("商品删除,body:{}", bodyStr);
 
         JSONObject bodyJson = JSON.parseObject(bodyStr);
-        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);
+
+        String spuId = bodyJson.getString("spuId");
+        Product product = productMapper.selectByHbSpuId(spuId);
+        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

+ 53 - 26
yami-shop-service/src/main/java/com/yami/shop/service/impl/OrderRefundServiceImpl.java

@@ -52,6 +52,9 @@ import static com.yami.shop.common.util.HttpUtil.post;
 public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, OrderRefund> implements OrderRefundService {
 
     private final OrderRefundMapper orderRefundMapper;
+
+    private final OrderRefundRecordMapper orderRefundRecordMapper;
+
     private final OrderService orderService;
     private final ProductService productService;
     private final SkuService skuService;
@@ -1004,6 +1007,7 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
             JSONObject bodyStr = hBRequest.getJSONObject("body");
             log.info("退款订单信息,body:{}", bodyStr);
             String channelOrderId = bodyStr.getString("channelOrderId");
+            Order order = orderMapper.getOrderByOrderNumber(channelOrderId);
             OrderRefund orderRefund = orderRefundMapper.selectOne(new LambdaQueryWrapper<OrderRefund>().eq(OrderRefund::getRefundSn, bodyStr.getString("afterSaleOrder")));
             ShopDetail shopDetailByShopId = shopDetailService.getShopDetailByShopId(orderRefund.getShopId());
 
@@ -1011,6 +1015,9 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
             thirdPartyRefundRequest.setOutStationNo(shopDetailByShopId.getHbStationNo());
             thirdPartyRefundRequest.setAfterSaleOrder(orderRefund.getRefundSn());
             thirdPartyRefundRequest.setSaleType(1);//售前售后标 1:售前 2:售后
+            if (order.getHbOrderStatus().equals(OrderStatus.SUCCESS.value())){
+                thirdPartyRefundRequest.setSaleType(2);
+            }
             thirdPartyRefundRequest.setReason(orderRefund.getBuyerReason());
             thirdPartyRefundRequest.setProblemDescription(orderRefund.getBuyerDesc());
             thirdPartyRefundRequest.setPictures(orderRefund.getPhotoFiles());
@@ -1058,14 +1065,15 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
             log.info("退款订单信息,参数:{}", thirdPartyRefundRequest);
 
 
-            orderRefund.setReturnMoneySts(orderRefund.getReturnMoneySts());
-            orderRefundMapper.updateById(orderRefund);
+//            orderRefund.setReturnMoneySts(orderRefund.getReturnMoneySts());
+//            orderRefundMapper.updateById(orderRefund);
 
 //            changeStatus(orderRefund.getRefundSn(), orderRefund.getReturnMoneySts());
 
             // 返回退款单信息
+            log.info("退款订单状态:{}", orderRefund.getReturnMoneySts());
             //TODO 退款单完成处理积分
-            if (orderRefund.getReturnMoneySts() == 70) {
+            if (orderRefund.getReturnMoneySts().equals(70)) {
                 orderService.returnRefund(orderRefund.getOrderNumber());
             }
         } catch (Exception e) {
@@ -1098,21 +1106,42 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
             OrderRefund orderRefund = orderRefundMapper.selectOne(new LambdaQueryWrapper<OrderRefund>().eq(OrderRefund::getRefundSn, afterSaleOrder));
 
             if (auditType == 3) {
+                //3:驳回
+                String reason = bodyStr.getString("reason");
                 orderRefund.setReturnMoneySts(ReturnMoneyStsType.REJECT.value());
-                orderRefund.setRejectMessage(bodyStr.getString("reason"));
+                orderRefund.setRejectMessage(reason);
+                orderRefundMapper.updateById(orderRefund);
+
+                Order orderByOrderNumber = orderService.getOrderByOrderNumber(channelOrderId);
+                orderByOrderNumber.setRefundStatus(4);
+                orderService.updateById(orderByOrderNumber);
+
+                //生成待商家审核记录
+                OrderRefundRecord orderRefundRecord1 = new OrderRefundRecord();
+                orderRefundRecord1.setOrderRefundId(orderRefund.getRefundId());
+                orderRefundRecord1.setInstructions(reason);
+                orderRefundRecord1.setUpdateTime(new Date());
+                orderRefundRecord1.setAuditStatus(4);
+                orderRefundRecord1.setSort(3);
+                orderRefundRecordMapper.insert(orderRefundRecord1);
             } else {
+                //审核通过
                 orderRefund.setApplyType(applyDeal);
                 orderRefund.setReturnMoneySts(ReturnMoneyStsType.SUCCESS.value());
+                orderRefundMapper.updateById(orderRefund);
+
+                //生成待商家审核记录
+                OrderRefundRecord orderRefundRecord1 = new OrderRefundRecord();
+                orderRefundRecord1.setOrderRefundId(orderRefund.getRefundId());
+                orderRefundRecord1.setInstructions("你的申请已通过,退款处理中");
+                orderRefundRecord1.setUpdateTime(new Date());
+                orderRefundRecord1.setAuditStatus(3);
+                orderRefundRecord1.setSort(3);
+                orderRefundRecordMapper.insert(orderRefundRecord1);
             }
-            orderRefundMapper.updateById(orderRefund);
 
 
-            //3:驳回
-            if (auditType == 3) {
-                Order orderByOrderNumber = orderService.getOrderByOrderNumber(channelOrderId);
-                orderByOrderNumber.setRefundStatus(4);
-                orderService.updateById(orderByOrderNumber);
-            }
+
 
             //推送商家审核状态后 同步退款单状态
             changeStatus(orderRefund.getRefundSn(), orderRefund.getReturnMoneySts());
@@ -1241,22 +1270,20 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
 
     @Override
     public HBR createResult(JSONObject hBRequest) {
-        try {
-            JSONObject bodyStr = hBRequest.getJSONObject("body");
-            log.info("创建退款结果接口-回调接口,body:{}", bodyStr);
-            String afterSaleOrder = bodyStr.getString("afterSaleOrder");
-
-            OrderRefund orderRefund = orderRefundMapper.selectOne(new LambdaQueryWrapper<OrderRefund>().eq(OrderRefund::getRefundSn, afterSaleOrder));
-            orderRefund.setReturnMoneySts(ReturnMoneyStsType.SUCCESS.value());
-            orderRefundMapper.updateById(orderRefund);
-
-            Order orderByOrderNumber = orderService.getById(orderRefund.getOrderId());
+//        try {
+//            JSONObject bodyStr = hBRequest.getJSONObject("body");
+//            log.info("创建退款结果接口-回调接口,body:{}", bodyStr);
+//            String afterSaleO
+//            OrderRefund orderRefund = orderRefundMapper.selectOne(new LambdaQueryWrapper<OrderRefund>().eq(OrderRefund::getRefundSn, afterSaleOrder));
+//            orderRefund.setReturnMoneySts(ReturnMoneyStsType.SUCCESS.value());
+//            orderRefundMapper.updateById(orderRefund);
+//            Order orderByOrderNumber = orderService.getById(orderRefund.getOrderId());
 //            orderByOrderNumber.setRefundStatus(2);
-            orderService.updateById(orderByOrderNumber);
-        } catch (Exception e) {
-            log.error("海博退款订单查询异常:{}", e);
-            HBR.error("未知异常");
-        }
+//            orderService.updateById(orderByOrderNumber);
+//        } catch (Exception e) {
+//            log.error("海博退款订单查询异常:{}", e);
+//            HBR.error("未知异常");
+//        }
 
         return HBR.success();
     }

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

@@ -82,6 +82,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 
     private final OrderMapper orderMapper;
 
+    private final OrderRefundRecordMapper orderRefundRecordMapper;
+
     private final SkuMapper skuMapper;
     private final OrderItemMapper orderItemMapper;
     private final OrderItemService orderItemService;
@@ -1049,6 +1051,15 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             }
             order.setHbOrderStatus(OrderStatus.CLOSE.value());
             orderMapper.updateById(order);
+
+            //生成待商家审核记录
+            OrderRefundRecord orderRefundRecord = new OrderRefundRecord();
+            orderRefundRecord.setOrderRefundId(orderRefund.getRefundId());
+            orderRefundRecord.setInstructions("已完成退款,具体到账时间请查询支付账户");
+            orderRefundRecord.setUpdateTime(new Date());
+            orderRefundRecord.setAuditStatus(5);
+            orderRefundRecord.setSort(4);
+            orderRefundRecordMapper.insert(orderRefundRecord);
         }
     }
 

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

@@ -173,6 +173,7 @@
         where prod_id = #{prodId}
     </update>
 
+
     <update id="returnStock">
         <foreach collection="skuCollect" item="changeStocks" index="skuId" separator=";">
             update tz_sku set stocks = stocks + #{changeStocks} where sku_id = #{skuId}