Sfoglia il codice sorgente

海博订单模块

fubojin 1 settimana fa
parent
commit
0a6810d46e

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

@@ -261,6 +261,7 @@ public class OrderRefundController {
         newOrderRefund.setShopId(order.getShopId());
         newOrderRefund.setUserId(order.getUserId());
         newOrderRefund.setOrderId(order.getOrderId());
+        newOrderRefund.setOrderNumber(order.getOrderNumber());
         newOrderRefund.setRefundSn(String.valueOf(snowflake.nextId()));
         newOrderRefund.setRefundType(orderRefundParam.getRefundType());
 

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

@@ -47,6 +47,11 @@ public class OrderRefund implements Serializable{
      * 订单ID
      */
     private Long orderId;
+    /**
+     * 订单编号
+     */
+    private String orderNumber;
+
     /**
      * 退款单类型(1:整单退款,2:单个物品退款)
      */

+ 44 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/model/OrderRefundSku.java

@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2018-2999 广州亚米信息科技有限公司 All rights reserved.
+ *
+ * https://www.gz-yami.com/
+ *
+ */
+
+package com.yami.shop.bean.model;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ *
+ *
+ * @author fbj
+ * @date 2025-10-11 09:55:01
+ */
+@Data
+@TableName("tz_order_refund_sku")
+public class OrderRefundSku implements Serializable{
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 记录ID
+     */
+    @TableId
+    private Long id;
+    /**
+     * 退款编号
+     */
+    private String skuId;
+    /**
+     * 退款商品数量
+     */
+    private String productCount;
+
+
+}

+ 1 - 0
yami-shop-multishop/src/main/java/com/yami/shop/multishop/controller/OrderController.java

@@ -340,6 +340,7 @@ public class OrderController {
         newOrderRefund.setShopId(order.getShopId());
         newOrderRefund.setUserId(order.getUserId());
         newOrderRefund.setOrderId(order.getOrderId());
+        newOrderRefund.setOrderNumber(order.getOrderNumber());
         newOrderRefund.setRefundSn(String.valueOf(snowflake.nextId()));
         newOrderRefund.setRefundType(orderRefundParam.getRefundType());
 

+ 2 - 3
yami-shop-platform/src/main/java/com/yami/shop/platform/controller/PointsRechargeController.java

@@ -119,10 +119,9 @@ public class PointsRechargeController {
     @ApiOperation(value = "导入积分充值数据", notes = "导入积分充值数据")
     public R<String> importPointsRecharge(@RequestParam("file") MultipartFile file) {
         //需要填写操作人
-        YamiSysUser sysUser = SecurityUtils.getSysUser();
-        Long userId = sysUser.getUserId();
+        Long sysUserId = SecurityUtils.getSysUser().getUserId();
         try {
-            String result = pointsRechargeService.importPointsRecharge(file,userId);
+            String result = pointsRechargeService.importPointsRecharge(file,sysUserId);
             return R.SUCCESS(result);
         } catch (Exception e) {
             log.error("导入积分充值数据失败:", e);

+ 27 - 0
yami-shop-service/src/main/java/com/yami/shop/dao/OrderRefundSkuMapper.java

@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2018-2999 广州亚米信息科技有限公司 All rights reserved.
+ *
+ * https://www.gz-yami.com/
+ *
+ * 未经允许,不可做商业用途!
+ *
+ * 版权所有,侵权必究!
+ */
+
+package com.yami.shop.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yami.shop.bean.dto.OrderRefundDto;
+import com.yami.shop.bean.model.OrderRefund;
+import com.yami.shop.bean.model.OrderRefundSku;
+import com.yami.shop.bean.param.StatisticsRefundParam;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+
+public interface OrderRefundSkuMapper extends BaseMapper<OrderRefundSku> {
+
+}

+ 11 - 9
yami-shop-service/src/main/java/com/yami/shop/service/hb/impl/HBGoodsService.java

@@ -94,15 +94,16 @@ public class HBGoodsService implements IHBGoodsService {
 
 
                     Sku skuId = skuMapper.selectByHbSkuId(productInfo.getString("skuId"));
+                    // 创建并填充Sku对象
+                    Sku sku = createSkuFromProductInfo(productInfo);
+                    sku.setProdId(prodId);
+                    sku.setHbSpuId(hbSpuId);
+                    sku.setProdName(productAdd.getProdName());
                     if (ObjectUtil.isNotEmpty(skuId) && skuId.getIsDelete() == 0) {
-                        skuId.setSkuId(skuId.getSkuId());
-                        skuMapper.updateById(skuId);
+                        sku.setSkuId(skuId.getSkuId());
+                        skuMapper.updateById(sku);
                         log.info("商品skuId={},skuName={}已经存在,修改数据", productInfo.getString("skuId"), productInfo.getString("skuName"));
                     } else {
-                        // 创建并填充Sku对象
-                        Sku sku = createSkuFromProductInfo(productInfo);
-                        sku.setProdId(prodId);
-                        sku.setHbSpuId(hbSpuId);
                         skuMapper.insert(sku);
                         log.info("SKU创建成功: skuId={}, skuName={}", sku.getSkuId(), sku.getSkuName());
                     }
@@ -143,11 +144,12 @@ public class HBGoodsService implements IHBGoodsService {
                         Sku sku = createSkuFromProductInfo(jsonObjectSku);
                         sku.setProdId(prodId);
                         sku.setHbSpuId(hbSpuId);
+                        sku.setProdName(productAdd.getProdName());
                         Sku skuId = skuMapper.selectByHbSkuId(jsonObjectSku.getString("skuId"));
                         if (ObjectUtil.isNotEmpty(skuId) && skuId.getIsDelete() == 0) {
-                            skuId.setSkuId(skuId.getSkuId());
-                            skuMapper.updateById(skuId);
-                            log.info("商品skuId={},skuName={}已经存在无需添加", productInfo.getLong("skuId"), productInfo.getString("skuName"));
+                            sku.setSkuId(skuId.getSkuId());
+                            skuMapper.updateById(sku);
+                            log.info("商品skuId={},skuName={}已经存在无需添加,修改", productInfo.getLong("skuId"), productInfo.getString("skuName"));
                         } else {
                             skuMapper.insert(sku);
                         }

+ 83 - 8
yami-shop-service/src/main/java/com/yami/shop/service/impl/OrderRefundServiceImpl.java

@@ -6,6 +6,7 @@ import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -31,10 +32,7 @@ import com.yami.shop.common.exception.GlobalException;
 import com.yami.shop.common.exception.YamiShopBindException;
 import com.yami.shop.common.util.Arith;
 import com.yami.shop.common.util.hb.HBR;
-import com.yami.shop.dao.OrderMapper;
-import com.yami.shop.dao.OrderRefundMapper;
-import com.yami.shop.dao.OrderSettlementMapper;
-import com.yami.shop.dao.ShopWalletMapper;
+import com.yami.shop.dao.*;
 import com.yami.shop.service.*;
 import com.yami.shop.utils.HBSignUtil;
 import lombok.AllArgsConstructor;
@@ -69,7 +67,6 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
     private final OrderSettlementMapper orderSettlementMapper;
 
     private final ShopDetailService shopDetailService;
-    private final RefundAddrService refundAddrService;
 
     private final ShopWalletMapper shopWalletMapper;
     private final OrderMapper orderMapper;
@@ -80,6 +77,7 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
     private final PayManagerService payManagerService;
     private final Snowflake snowflake;
     private final HBSignUtil hbSignUtil;
+    private final OrderRefundSkuMapper orderRefundSkuMapper;
 
 
     /**
@@ -1059,7 +1057,41 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
         try {
             JSONObject bodyStr = hBRequest.getJSONObject("body");
             log.info("售后审核接口-回调接口,body:{}", bodyStr);
-            OrderRefund orderRefund = orderRefundMapper.selectOne(new LambdaQueryWrapper<OrderRefund>().eq(OrderRefund::getRefundSn, bodyStr.getString("afterSaleOrder")));
+            String afterSaleOrder = bodyStr.getString("afterSaleOrder");
+            String channelOrderId = bodyStr.getString("channelOrderId");
+            Integer auditType = bodyStr.getInteger("auditType");
+            Integer applyDeal = bodyStr.getInteger("applyDeal");
+
+            if (ObjectUtil.isNotEmpty(applyDeal)){
+                if (applyDeal == 40){
+                    applyDeal = 2;
+                } else {
+                    applyDeal = 1;
+                }
+            }
+
+            OrderRefund orderRefund = orderRefundMapper.selectOne(new LambdaQueryWrapper<OrderRefund>().eq(OrderRefund::getRefundSn,afterSaleOrder));
+
+            if (auditType == 2){
+                orderRefund.setApplyType(applyDeal);
+                orderRefund.setReturnMoneySts(2);
+            }else if (auditType == 4){
+                orderRefund.setApplyType(applyDeal);
+                orderRefund.setReturnMoneySts(2);
+            } else {
+                orderRefund.setReturnMoneySts(7);
+                orderRefund.setRejectMessage(bodyStr.getString("reason"));
+            }
+            orderRefundMapper.updateById(orderRefund);
+
+
+            //3:驳回
+           if (auditType == 3) {
+               Order orderByOrderNumber = orderService.getOrderByOrderNumber(channelOrderId);
+               orderByOrderNumber.setRefundStatus(4);
+               orderService.updateById(orderByOrderNumber);
+           }
+
         } catch (Exception e) {
             log.error("海博退款订单查询异常:{}", e);
             HBR.error("未知异常");
@@ -1073,7 +1105,31 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
         try {
             JSONObject bodyStr = hBRequest.getJSONObject("body");
             log.info("售后确认接口-回调接口,body:{}", bodyStr);
-            OrderRefund orderRefund = orderRefundMapper.selectOne(new LambdaQueryWrapper<OrderRefund>().eq(OrderRefund::getRefundSn, bodyStr.getString("afterSaleOrder")));
+            String afterSaleOrder = bodyStr.getString("afterSaleOrder");
+            String channelOrderId = bodyStr.getString("channelOrderId");
+            Integer auditType = bodyStr.getInteger("auditType");
+
+            OrderRefund orderRefund = orderRefundMapper.selectOne(new LambdaQueryWrapper<OrderRefund>().eq(OrderRefund::getRefundSn,afterSaleOrder));
+
+            if (auditType == 2){
+                orderRefund.setReturnMoneySts(2);
+                orderRefund.setIsReceiver(true);
+            }else if (auditType == 4){
+                orderRefund.setIsReceiver(true);
+                orderRefund.setReturnMoneySts(2);
+            } else {
+                orderRefund.setReturnMoneySts(7);
+                orderRefund.setRejectMessage(bodyStr.getString("reason"));
+            }
+            orderRefundMapper.updateById(orderRefund);
+
+
+            //3:驳回
+            if (auditType == 3) {
+                Order orderByOrderNumber = orderService.getOrderByOrderNumber(channelOrderId);
+                orderByOrderNumber.setRefundStatus(4);
+                orderService.updateById(orderByOrderNumber);
+            }
         } catch (Exception e) {
             log.error("海博退款订单查询异常:{}", e);
             HBR.error("未知异常");
@@ -1087,7 +1143,26 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
         try {
             JSONObject bodyStr = hBRequest.getJSONObject("body");
             log.info("部分退款接口-回调接口,body:{}", bodyStr);
-            OrderRefund orderRefund = orderRefundMapper.selectOne(new LambdaQueryWrapper<OrderRefund>().eq(OrderRefund::getRefundSn, bodyStr.getString("afterSaleOrder")));
+            String afterSaleOrder = bodyStr.getString("afterSaleOrder");
+            String channelOrderId = bodyStr.getString("channelOrderId");
+            Integer auditType = bodyStr.getInteger("auditType");
+            OrderRefund orderRefund = orderRefundMapper.selectOne(new LambdaQueryWrapper<OrderRefund>().eq(OrderRefund::getRefundSn, bodyStr.getString("channelOrderId")));
+
+            if (auditType == 2){
+                orderRefund.setReturnMoneySts(2);
+                orderRefund.setIsReceiver(true);
+            }else if (auditType == 4){
+                orderRefund.setIsReceiver(true);
+                orderRefund.setReturnMoneySts(2);
+            } else {
+                orderRefund.setReturnMoneySts(7);
+                orderRefund.setRejectMessage(bodyStr.getString("reason"));
+            }
+
+
+            OrderRefundSku orderRefundSku = new OrderRefundSku();
+            orderRefundSkuMapper.insert(orderRefundSku);
+
         } catch (Exception e) {
             log.error("海博退款订单查询异常:{}", e);
             HBR.error("未知异常");

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

@@ -113,7 +113,8 @@ public class PointsRechargeServiceImpl extends ServiceImpl<PointsRechargeMapper,
                 CommonUtils.validateCondition(!userName.equals(user.getRealName()),"员工姓名不正确!");
                 CommonUtils.validateCondition(user.getPlatform() == null,"员工未绑定企业,不能导入积分!");
                 //小程序注册未绑定企业没有绑定企业可以正常添加,绑定了必须相同
-                CommonUtils.validateCondition(!channel.getId().equals(user.getPlatform()),"该员工属于企业("+channel.getChannelName()+"),所属企业不匹配!");
+                // 更安全的写法
+                CommonUtils.validateCondition(user.getPlatform() == null || !channel.getId().equals(user.getPlatform().longValue()), "该员工属于企业("+channel.getChannelName()+"),所属企业不匹配!");
 
 
                 pointsRecharge.setChannelId(channel.getId());
@@ -147,8 +148,7 @@ public class PointsRechargeServiceImpl extends ServiceImpl<PointsRechargeMapper,
                 pointsRecord.setPointsAudit(1);
                 pointsRecord.setCreationDate(new Date());
                 pointsRecord.setExpiryDate(pointsRecharge.getExpiryDate());
-                pointsRecordService. save(pointsRecord);
-
+                pointsRecordService.save(pointsRecord);
                 successCount++;
                 addImportRecord(1, "成功", templateDTO, code,userId);
             } catch (GlobalException e) {

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

@@ -21,6 +21,6 @@
         <where>
             <if test="channelId != null">p.channel_id = #{channelId}</if>
         </where>
-        GROUP BY p.code
+        GROUP BY p.code, p.create_by, p.channel_name, u.username, r.role_name
     </select>
 </mapper>

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

@@ -12,6 +12,6 @@
         <where>
               <if test="channelId != null"> channel_id = #{channelId}</if>
         </where>
-        GROUP BY channel_id
+        GROUP BY channel_id, channel_name
     </select>
 </mapper>