浏览代码

Merge remote-tracking branch 'origin/master_exclusive_shop_20250718' into master_exclusive_shop_20250718

yuhongqi 1 周之前
父节点
当前提交
a15f4af03b

+ 5 - 0
fs-service-system/src/main/java/com/fs/erp/domain/FsJstAftersalePush.java

@@ -81,4 +81,9 @@ public class FsJstAftersalePush {
      * 错误信息(记录失败原因)
      */
     private String errorMessage;
+
+    /**
+     * 0商城订单1直播订单 默认0
+     */
+    private Integer orderType;
 }

+ 1 - 0
fs-service-system/src/main/java/com/fs/erp/dto/ErpRefundUpdateRequest.java

@@ -15,4 +15,5 @@ public class ErpRefundUpdateRequest implements Serializable {
      */
     private Integer orderStatus;
 
+    private Long storeAfterSalesId;//售后id
 }

+ 86 - 13
fs-service-system/src/main/java/com/fs/erp/mapper/FsJstAftersalePushMapper.java

@@ -14,44 +14,117 @@ public interface FsJstAftersalePushMapper {
     /**
      * 根据ID查询
      */
-    @Select("SELECT * FROM fs_jst_aftersale_push WHERE id = #{id}")
+    @Select("<script>" +
+            "SELECT * FROM fs_jst_aftersale_push " +
+            "<where>" +
+            "   <if test='id != null'>" +
+            "       id = #{id}" +
+            "   </if>" +
+            "</where>" +
+            "</script>")
     FsJstAftersalePush selectById(Long id);
 
     /**
      * 根据订单ID查询
      */
-    @Select("SELECT * FROM fs_jst_aftersale_push WHERE order_id = #{orderId}")
+    @Select("<script>" +
+            "SELECT * FROM fs_jst_aftersale_push " +
+            "<where>" +
+            "   <if test='orderId != null and orderId != \"\"'>" +
+            "       order_id = #{orderId}" +
+            "   </if>" +
+            "</where>" +
+            "</script>")
     FsJstAftersalePush selectByOrderId(String orderId);
 
     /**
      * 查询待处理的任务
      */
-    @Select("SELECT * FROM fs_jst_aftersale_push WHERE task_status = #{status} AND retry_count < #{maxRetry} LIMIT #{limit}")
+    @Select("<script>" +
+            "SELECT * FROM fs_jst_aftersale_push " +
+            "<where>" +
+            "   <if test='status != null'>" +
+            "       task_status = #{status}" +
+            "   </if>" +
+            "   <if test='maxRetry != null'>" +
+            "       AND retry_count &lt; #{maxRetry}" +
+            "   </if>" +
+            "</where>" +
+            "<if test='limit != null and limit > 0'>" +
+            "   LIMIT #{limit}" +
+            "</if>" +
+            "</script>")
     List<FsJstAftersalePush> selectByStatusAndRetry(Byte status, Integer maxRetry, Integer limit);
 
     /**
      * 插入记录
      */
-    @Insert("INSERT INTO fs_jst_aftersale_push(order_id,after_sale_id, type, task_status, retry_count, last_execute_time, params) " +
-            "VALUES(#{orderId},#{afterSaleId}, #{type}, #{taskStatus}, #{retryCount}, #{lastExecuteTime}, #{params})")
+    @Insert("<script>" +
+            "<if test='orderId != null and orderId != \"\"'>" +
+            "INSERT INTO fs_jst_aftersale_push(" +
+            "   <trim suffixOverrides=','>" +
+            "       order_id," +
+            "       <if test='afterSaleId != null and afterSaleId != \"\"'>after_sale_id,</if>" +
+            "       <if test='type != null'>type,</if>" +
+            "       <if test='taskStatus != null'>task_status,</if>" +
+            "       <if test='retryCount != null'>retry_count,</if>" +
+            "       <if test='lastExecuteTime != null'>last_execute_time,</if>" +
+            "       <if test='params != null and params != \"\"'>params,</if>" +
+            "       <if test='orderType != null and orderType != \"\"'>order_type</if>" +
+            "   </trim>" +
+            ") VALUES(" +
+            "   <trim suffixOverrides=','>" +
+            "       #{orderId}," +
+            "       <if test='afterSaleId != null and afterSaleId != \"\"'>#{afterSaleId},</if>" +
+            "       <if test='type != null'>#{type},</if>" +
+            "       <if test='taskStatus != null'>#{taskStatus},</if>" +
+            "       <if test='retryCount != null'>#{retryCount},</if>" +
+            "       <if test='lastExecuteTime != null'>#{lastExecuteTime},</if>" +
+            "       <if test='params != null and params != \"\"'>#{params},</if>" +
+            "       <if test='orderType != null and orderType != \"\"'>#{orderType}</if>" +
+            "   </trim>" +
+            ")" +
+            "</if>" +
+            "</script>")
     @Options(useGeneratedKeys = true, keyProperty = "id")
     int insert(FsJstAftersalePush push);
 
     /**
      * 更新记录
      */
-    @Update("UPDATE fs_jst_aftersale_push SET params=#{params},task_status = #{taskStatus}, retry_count = #{retryCount}, " +
-            "last_execute_time = #{lastExecuteTime}, result = #{result}, error_message = #{errorMessage} " +
-            "WHERE id = #{id}")
+    @Update("<script>" +
+            "<if test='id != null'>" +
+            "UPDATE fs_jst_aftersale_push " +
+            "<set>" +
+            "   <if test='params != null'>params = #{params},</if>" +
+            "   <if test='taskStatus != null'>task_status = #{taskStatus},</if>" +
+            "   <if test='retryCount != null'>retry_count = #{retryCount},</if>" +
+            "   <if test='lastExecuteTime != null'>last_execute_time = #{lastExecuteTime},</if>" +
+            "   <if test='result != null'>result = #{result},</if>" +
+            "   <if test='errorMessage != null'>error_message = #{errorMessage},</if>" +
+        "       <if test='orderType != null and orderType != \"\"'>#{orderType}</if>" +
+            "</set>" +
+            "WHERE id = #{id}" +
+            "</if>" +
+            "</script>")
     int update(FsJstAftersalePush push);
 
     /**
      * 更新任务状态
      */
-    @Update("UPDATE fs_jst_aftersale_push SET task_status = #{taskStatus}, " +
-            "last_execute_time = now() WHERE id = #{id}")
+    @Update("<script>" +
+            "<if test='id != null and taskStatus != null'>" +
+            "UPDATE fs_jst_aftersale_push SET " +
+            "   task_status = #{taskStatus}, " +
+            "   last_execute_time = now() " +
+            "WHERE id = #{id}" +
+            "</if>" +
+            "</script>")
     int updateStatus(@Param("id") Long id, @Param("taskStatus") Byte taskStatus);
 
+    /**
+     * 查询待处理数据 - 复杂查询保持原样,因为这是内部调用的复杂业务逻辑
+     */
     @Select("WITH OrderWithNextTaskType AS (\n" +
             "    SELECT \n" +
             "        id,\n" +
@@ -60,7 +133,7 @@ public interface FsJstAftersalePushMapper {
             "        type,\n" +
             "        task_status,\n" +
             "        retry_count,\n" +
-            "        ROW_NUMBER() OVER(PARTITION BY order_id ORDER BY CAST(type AS UNSIGNED)) AS task_seq\n" +
+            "        ROW_NUMBER() OVER(PARTITION BY order_id ORDER BY CAST(type AS UNSIGNED)) AS task_seq,order_type" +
             "    FROM \n" +
             "        fs_jst_aftersale_push\n" +
             "),\n" +
@@ -85,7 +158,7 @@ public interface FsJstAftersalePushMapper {
             "            WHERE p.order_id = o.order_id\n" +
             "              AND p.task_seq < o.task_seq\n" +
             "              AND p.task_status != 1\n" +
-            "        ) AS has_pending_prev_task\n" +
+            "        ) AS has_pending_prev_task,order_type" +
             "    FROM \n" +
             "        OrderWithNextTaskType o\n" +
             "    WHERE \n" +
@@ -97,7 +170,7 @@ public interface FsJstAftersalePushMapper {
             "    after_sale_id,\n" +
             "    type,\n" +
             "    task_status,\n" +
-            "    retry_count\n" +
+            "    retry_count,order_type" +
             "FROM \n" +
             "    PendingTasks\n" +
             "WHERE \n" +

+ 72 - 12
fs-service-system/src/main/java/com/fs/erp/service/impl/FsJstAftersalePushServiceImpl.java

@@ -12,6 +12,10 @@ import com.fs.erp.http.JstErpHttpService;
 import com.fs.erp.mapper.FsJstAftersalePushMapper;
 import com.fs.erp.service.FsJstAftersalePushService;
 import com.fs.express.enums.TaskStatusEnum;
+import com.fs.live.domain.LiveOrder;
+import com.fs.live.domain.LiveOrderItem;
+import com.fs.live.mapper.LiveOrderItemMapper;
+import com.fs.live.mapper.LiveOrderMapper;
 import com.fs.store.domain.FsStoreAfterSales;
 import com.fs.store.domain.FsStoreOrder;
 import com.fs.store.domain.FsStoreOrderItem;
@@ -20,6 +24,7 @@ import com.fs.store.mapper.FsStoreAfterSalesMapper;
 import com.fs.store.mapper.FsStoreOrderMapper;
 import com.fs.store.service.IFsStoreOrderItemService;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.ObjectUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.http.util.Asserts;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -46,7 +51,10 @@ public class FsJstAftersalePushServiceImpl implements FsJstAftersalePushService
 
     @Autowired
     private IFsStoreOrderItemService storeOrderItemService;
-
+    @Autowired
+    private LiveOrderMapper liveOrderMapper;
+    @Autowired
+    private LiveOrderItemMapper liveOrderItemMapper;
     @Autowired
     private FsStoreAfterSalesMapper fsStoreAfterSalesMapper;
 
@@ -63,21 +71,37 @@ public class FsJstAftersalePushServiceImpl implements FsJstAftersalePushService
                 log.info("获取记录{} 锁失败!",item.getId());
                 continue;
             }
+            RefundOrderDTO dto;
+            if(ObjectUtils.equals(item.getOrderType(),0)) {
+                FsStoreOrder fsStoreOrder = fsStoreOrderMapper.selectFsStoreOrderByOrderCode(item.getOrderId());
 
-            FsStoreOrder fsStoreOrder = fsStoreOrderMapper.selectFsStoreOrderByOrderCode(item.getOrderId());
+                item.setRetryCount(item.getRetryCount()+1);
 
-            item.setRetryCount(item.getRetryCount()+1);
+                if(fsStoreOrder == null){
+                    item.setErrorMessage("该订单未找到!");
+                    item.setTaskStatus(TaskStatusEnum.FAILED.getCode());
+                    log.info("该订单未找到!");
+                    fsJstAftersalePushMapper.update(item);
+                    continue;
+                }
+                Asserts.notNull(fsStoreOrder,"该订单未找到!");
+                dto = getAfterSaleDTO(item, fsStoreOrder);
+            } else {
+                LiveOrder liveOrder = liveOrderMapper.selectFsUserVipOrderByOrderCode(item.getOrderId());
 
-            if(fsStoreOrder == null){
-                item.setErrorMessage("该订单未找到!");
-                item.setTaskStatus(TaskStatusEnum.FAILED.getCode());
-                log.info("该订单未找到!");
-                fsJstAftersalePushMapper.update(item);
-                continue;
+                item.setRetryCount(item.getRetryCount()+1);
+
+                if(liveOrder == null){
+                    item.setErrorMessage("该订单未找到!");
+                    item.setTaskStatus(TaskStatusEnum.FAILED.getCode());
+                    log.info("该订单未找到!");
+                    fsJstAftersalePushMapper.update(item);
+                    continue;
+                }
+                Asserts.notNull(liveOrder,"该订单未找到!");
+                dto = getAfterSaleDTOLive(item, liveOrder);
             }
-            Asserts.notNull(fsStoreOrder,"该订单未找到!");
-            RefundOrderDTO dto;
-            dto = getAfterSaleDTO(item, fsStoreOrder);
+
             // 买家已经申请,等待卖家同意
             if(StringUtils.equals(AfterSalesOrderStatusEnum.WAIT_SELLER_AGREE.getIndex().toString()
                     ,item.getType())){
@@ -168,4 +192,40 @@ public class FsJstAftersalePushServiceImpl implements FsJstAftersalePushService
         dto.setItems(refundItemDTOS);
         return dto;
     }
+
+    private RefundOrderDTO getAfterSaleDTOLive(FsJstAftersalePush item, LiveOrder liveOrder) {
+        RefundOrderDTO dto = new RefundOrderDTO();
+        AfterSalesOrderStatusEnum statusEnum = AfterSalesOrderStatusEnum.getByIndex(Integer.valueOf(item.getType()));
+
+        dto.setShopStatus(statusEnum.getCode());
+        dto.setQuestionType("可更新");
+        dto.setOuterAsId(item.getAfterSaleId());
+        dto.setRemark("用户退款");
+        dto.setType("仅退款");
+
+        dto.setShopId(Long.parseLong(shopId));
+        dto.setTotalAmount(liveOrder.getTotalPrice());
+        dto.setSoId(item.getOrderId());
+        dto.setRefund(liveOrder.getPayMoney());
+
+
+        LiveOrderItem itemMap=new LiveOrderItem();
+        itemMap.setOrderId(liveOrder.getOrderId());
+        List<LiveOrderItem> orderItems = liveOrderItemMapper.selectLiveOrderItemList(itemMap);
+
+        List<RefundItemDTO> refundItemDTOS=new ArrayList<>();
+
+        for(LiveOrderItem orderItem: orderItems) {
+            FsStoreCartDTO cartDTO = JSONUtil.toBean(orderItem.getJsonInfo(), FsStoreCartDTO.class);
+
+            RefundItemDTO itemDTO = new RefundItemDTO();
+            itemDTO.setSkuId(cartDTO.getBarCode());
+            itemDTO.setQty(cartDTO.getNum());
+            itemDTO.setAmount(cartDTO.getPrice());
+            itemDTO.setType("退货");
+            refundItemDTOS.add(itemDTO);
+        }
+        dto.setItems(refundItemDTOS);
+        return dto;
+    }
 }

+ 8 - 1
fs-service-system/src/main/java/com/fs/erp/service/impl/JSTErpOrderServiceImpl.java

@@ -461,7 +461,14 @@ public class JSTErpOrderServiceImpl implements IErpOrderService {
 
         // 如果不是待发货
         if(ObjectUtil.notEqual(param.getOrderStatus(), 2)){
-
+            FsJstAftersalePush fsJstAftersalePush = new FsJstAftersalePush();
+            fsJstAftersalePush.setOrderId(fsStoreOrder.getOrderCode());
+            fsJstAftersalePush.setTaskStatus(0);
+            fsJstAftersalePush.setType(String.valueOf(AfterSalesOrderStatusEnum.WAIT_SELLER_AGREE.getIndex()));
+            fsJstAftersalePush.setRetryCount(0);
+            fsJstAftersalePush.setAfterSaleId(String.valueOf(param.getStoreAfterSalesId()));
+            fsJstAftersalePush.setOrderType(1);
+            fsJstAftersalePushMapper.insert(fsJstAftersalePush);
         } else {
             // 如果是发货前退款,直接走取消订单流程
             // 如果是发货后退款,走售后流程

+ 19 - 1
fs-service-system/src/main/java/com/fs/live/service/impl/LiveAfterSalesServiceImpl.java

@@ -34,6 +34,7 @@ import com.fs.live.service.ILiveOrderItemService;
 import com.fs.live.service.ILiveOrderService;
 import com.fs.live.vo.LiveAfterSalesListUVO;
 import com.fs.live.vo.LiveAfterSalesVo;
+import com.fs.store.cache.IFsUserCacheService;
 import com.fs.store.cache.IFsWarehousesCacheService;
 import com.fs.store.config.StoreConfig;
 import com.fs.store.domain.*;
@@ -140,6 +141,8 @@ public class LiveAfterSalesServiceImpl implements ILiveAfterSalesService {
         return baseMapper.selectLiveAfterSalesList(liveAfterSales);
     }
 
+    @Autowired
+    private IFsUserCacheService fsUserCacheService;
     /**
      * 查询售后记录列表
      *
@@ -149,7 +152,16 @@ public class LiveAfterSalesServiceImpl implements ILiveAfterSalesService {
     @Override
     public List<LiveAfterSalesVo> selectLiveAfterSalesVoList(LiveAfterSalesVo liveAfterSales)
     {
-        return baseMapper.selectLiveAfterSalesVoList(liveAfterSales);
+        List<LiveAfterSalesVo> liveAfterSalesVos = baseMapper.selectLiveAfterSalesVoList(liveAfterSales);
+        for (LiveAfterSalesVo item : liveAfterSalesVos) {
+            if(ObjectUtil.isNotNull(item.getUserId())) {
+                FsUser fsUser = fsUserCacheService.selectFsUserById(item.getUserId());
+                if(ObjectUtil.isNotNull(fsUser)) {
+                    item.setUserName(String.format("%s_%s",fsUser.getUserId(),fsUser.getNickname()));
+                }
+            }
+        }
+        return liveAfterSalesVos;
     }
 
     @Override
@@ -190,6 +202,7 @@ public class LiveAfterSalesServiceImpl implements ILiveAfterSalesService {
                     fsJstAftersalePush.setType(String.valueOf(AfterSalesOrderStatusEnum.CLOSED.getIndex()));
                     fsJstAftersalePush.setRetryCount(0);
                     fsJstAftersalePush.setAfterSaleId(String.valueOf(storeAfterSales.getId()));
+                    fsJstAftersalePush.setOrderType(1);
                     fsJstAftersalePushMapper.insert(fsJstAftersalePush);
                 }
             }
@@ -347,6 +360,10 @@ public class LiveAfterSalesServiceImpl implements ILiveAfterSalesService {
             else if(liveAfterSales.getOrderStatus().equals(OrderInfoEnum.STATUS_2.getValue())){
                 liveAfterSales.setStatus(2);
                 baseMapper.updateLiveAfterSales(liveAfterSales);
+
+            } else if(liveAfterSales.getOrderStatus().equals(3)) {
+                liveAfterSales.setStatus(1);
+                baseMapper.updateLiveAfterSales(liveAfterSales);
             }
             LiveAfterSalesLogs salesLogs = new LiveAfterSalesLogs();
             salesLogs.setStoreAfterSalesId(liveAfterSales.getId());
@@ -553,6 +570,7 @@ public class LiveAfterSalesServiceImpl implements ILiveAfterSalesService {
                 fsJstAftersalePush.setTaskStatus(TaskStatusEnum.PENDING.getCode());
                 fsJstAftersalePush.setRetryCount(0);
                 fsJstAftersalePush.setAfterSaleId(String.valueOf(storeAfterSales.getId()));
+                fsJstAftersalePush.setOrderType(1);
                 fsJstAftersalePushMapper.insert(fsJstAftersalePush);
             }
             ErpContextHolder.setErpType(erp);

+ 3 - 2
fs-service-system/src/main/java/com/fs/live/service/impl/LiveOrderServiceImpl.java

@@ -951,13 +951,14 @@ public class LiveOrderServiceImpl implements ILiveOrderService {
         if(order.getStatus()==-2){
             return R.error("已退款");
         }
+        log.info("准备退款 订单: {}",JSON.toJSONString(order));
         if(StringUtils.isNotEmpty(order.getExtendOrderId())){
             ErpRefundUpdateRequest request=new ErpRefundUpdateRequest();
             request.setTid(order.getOrderCode());
             request.setOid(order.getOrderCode());
             request.setRefund_state(1);
-            request.setOrderStatus(order.getStatus());
-
+            request.setOrderStatus(liveAfterSales.getOrderStatus());
+            request.setStoreAfterSalesId(liveAfterSales.getId());
             // 根据仓库code找erp
             if(StringUtils.isNotBlank(order.getStoreHouseCode())){
                 String erp = fsWarehousesMapper.selectErpByCode(order.getStoreHouseCode());

+ 1 - 0
fs-service-system/src/main/java/com/fs/live/vo/LiveAfterSalesVo.java

@@ -81,6 +81,7 @@ public class LiveAfterSalesVo {
     /** 用户id */
     @Excel(name = "用户id")
     private Long userId;
+    private String userName;
 
     /** 商家收货人 */
     @Excel(name = "商家收货人")

+ 6 - 0
fs-service-system/src/main/java/com/fs/store/service/impl/FsStoreAfterSalesServiceImpl.java

@@ -342,6 +342,7 @@ public class FsStoreAfterSalesServiceImpl implements IFsStoreAfterSalesService
                 fsJstAftersalePush.setTaskStatus(TaskStatusEnum.PENDING.getCode());
                 fsJstAftersalePush.setRetryCount(0);
                 fsJstAftersalePush.setAfterSaleId(String.valueOf(fsStoreAfterSales.getId()));
+                fsJstAftersalePush.setOrderType(0);
                 fsJstAftersalePushMapper.insert(fsJstAftersalePush);
             }
             ErpContextHolder.setErpType(erp);
@@ -392,6 +393,7 @@ public class FsStoreAfterSalesServiceImpl implements IFsStoreAfterSalesService
                 fsJstAftersalePush.setType(String.valueOf(AfterSalesOrderStatusEnum.CLOSED.getIndex()));
                 fsJstAftersalePush.setRetryCount(0);
                 fsJstAftersalePush.setAfterSaleId(String.valueOf(fsStoreAfterSales.getId()));
+                fsJstAftersalePush.setOrderType(0);
                 fsJstAftersalePushMapper.insert(fsJstAftersalePush);
             }
         }
@@ -481,6 +483,7 @@ public class FsStoreAfterSalesServiceImpl implements IFsStoreAfterSalesService
                 fsJstAftersalePush.setType(String.valueOf(AfterSalesOrderStatusEnum.WAIT_SELLER_CONFIRM_GOODS.getIndex()));
                 fsJstAftersalePush.setAfterSaleId(String.valueOf(fsStoreAfterSales.getId()));
                 fsJstAftersalePush.setRetryCount(0);
+                fsJstAftersalePush.setOrderType(0);
                 fsJstAftersalePushMapper.insert(fsJstAftersalePush);
             }
         }
@@ -628,6 +631,7 @@ public class FsStoreAfterSalesServiceImpl implements IFsStoreAfterSalesService
                 fsJstAftersalePush.setType(String.valueOf(AfterSalesOrderStatusEnum.SUCCESS.getIndex()));
                 fsJstAftersalePush.setRetryCount(0);
                 fsJstAftersalePush.setAfterSaleId(String.valueOf(fsStoreAfterSales.getId()));
+                fsJstAftersalePush.setOrderType(0);
                 fsJstAftersalePushMapper.insert(fsJstAftersalePush);
 
                 // 售后单改成已确认
@@ -637,6 +641,7 @@ public class FsStoreAfterSalesServiceImpl implements IFsStoreAfterSalesService
                 aftersaleConfirm.setType(String.valueOf(AfterSalesOrderStatusEnum.CONFIRM.getIndex()));
                 aftersaleConfirm.setRetryCount(0);
                 aftersaleConfirm.setAfterSaleId(String.valueOf(fsStoreAfterSales.getId()));
+                aftersaleConfirm.setOrderType(0);
                 fsJstAftersalePushMapper.insert(aftersaleConfirm);
             }
         }
@@ -807,6 +812,7 @@ public class FsStoreAfterSalesServiceImpl implements IFsStoreAfterSalesService
                     fsJstAftersalePush.setType(String.valueOf(AfterSalesOrderStatusEnum.CLOSED.getIndex()));
                     fsJstAftersalePush.setRetryCount(0);
                     fsJstAftersalePush.setAfterSaleId(String.valueOf(fsStoreAfterSales.getId()));
+                    fsJstAftersalePush.setOrderType(0);
                     fsJstAftersalePushMapper.insert(fsJstAftersalePush);
                 }
             }

+ 4 - 4
fs-service-system/src/main/resources/mapper/live/LiveAfterSalesMapper.xml

@@ -66,16 +66,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         select las.id, las.live_id, las.store_id, las.order_id, las.refund_amount,
         las.refund_type, las.reasons, las.explains, las.explain_img, las.delivery_code, las.delivery_sn, las.delivery_name, las.status, las.sales_status,
         las.order_status, las.create_time, las.is_del, las.user_id, las.consignee, las.phone_number, las.address, las.company_id, las.company_user_id, las.dept_id,
-        cu.nick_name as company_user_nick_name, c.company_name,lo.order_code,lo.user_phone
+        cu.nick_name as company_user_nick_name, c.company_name,lo.order_code,lo.user_phone,las.user_id
         from live_after_sales las
         left join live_order lo on lo.order_id = las.order_id
         left join company_user cu on cu.user_id = las.company_user_id
         left join company c on c.company_id = cu.company_id
 
         <where>
-            <if test="liveId != null "> and las.live_id = #{liveId}</if>
-            <if test="storeId != null "> and las.store_id = #{storeId}</if>
-            <if test="orderId != null "> and las.order_id = #{orderId}</if>
+            <if test="liveId != null and liveId != ''"> and las.live_id = #{liveId}</if>
+            <if test="storeId != null and storeId != ''"> and las.store_id = #{storeId}</if>
+            <if test="orderCode != null and orderCode != ''"> and las.order_code = #{orderCode}</if>
             <if test="refundAmount != null "> and las.refund_amount = #{refundAmount}</if>
             <if test="refundType != null "> and las.refund_type = #{refundType}</if>
             <if test="reasons != null  and reasons != ''"> and las.reasons = #{reasons}</if>