Sfoglia il codice sorgente

Merge branch 'master' of http://1.14.104.71:10880/root/ylrz_his_scrm_java

caoliqin 4 giorni fa
parent
commit
9d4c68748e
25 ha cambiato i file con 703 aggiunte e 14 eliminazioni
  1. 55 0
      fs-admin/src/main/java/com/fs/hisStore/controller/FsStoreAfterSalesScrmController.java
  2. 44 0
      fs-admin/src/main/java/com/fs/hisStore/controller/FsStoreHealthOrderScrmController.java
  3. 45 0
      fs-admin/src/main/java/com/fs/hisStore/controller/FsStoreOrderScrmController.java
  4. 51 0
      fs-admin/src/main/java/com/fs/live/controller/LiveAfterSalesController.java
  5. 29 1
      fs-admin/src/main/java/com/fs/live/controller/LiveOrderController.java
  6. 4 1
      fs-service/src/main/java/com/fs/hisStore/mapper/FsStoreAfterSalesScrmMapper.java
  7. 10 4
      fs-service/src/main/java/com/fs/hisStore/mapper/FsStoreOrderItemScrmMapper.java
  8. 4 0
      fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreAfterSalesScrmServiceImpl.java
  9. 13 0
      fs-service/src/main/java/com/fs/hisStore/vo/FsStoreAfterSalesVO.java
  10. 133 0
      fs-service/src/main/java/com/fs/hisStore/vo/FsStoreOrderItemExportRefundZMVO.java
  11. 3 0
      fs-service/src/main/java/com/fs/hisStore/vo/FsStoreOrderItemExportVO.java
  12. 124 0
      fs-service/src/main/java/com/fs/hisStore/vo/FsStoreOrderItemExportZMVO.java
  13. 7 0
      fs-service/src/main/java/com/fs/hisStore/vo/FsStoreOrderItemVO.java
  14. 3 0
      fs-service/src/main/java/com/fs/live/mapper/LiveOrderMapper.java
  15. 3 0
      fs-service/src/main/java/com/fs/live/service/ILiveOrderService.java
  16. 2 0
      fs-service/src/main/java/com/fs/live/service/impl/LiveAfterSalesServiceImpl.java
  17. 10 0
      fs-service/src/main/java/com/fs/live/service/impl/LiveOrderServiceImpl.java
  18. 12 0
      fs-service/src/main/java/com/fs/live/vo/LiveAfterSalesVo.java
  19. 4 1
      fs-service/src/main/java/com/fs/live/vo/LiveOrderItemListUVO.java
  20. 10 2
      fs-service/src/main/java/com/fs/live/vo/LiveOrderVoZm.java
  21. 10 1
      fs-service/src/main/resources/mapper/hisStore/FsStoreOrderItemScrmMapper.xml
  22. 1 1
      fs-service/src/main/resources/mapper/hisStore/FsStoreOrderScrmMapper.xml
  23. 3 1
      fs-service/src/main/resources/mapper/live/LiveAfterSalesMapper.xml
  24. 13 2
      fs-service/src/main/resources/mapper/live/LiveOrderItemMapper.xml
  25. 110 0
      fs-service/src/main/resources/mapper/live/LiveOrderMapper.xml

+ 55 - 0
fs-admin/src/main/java/com/fs/hisStore/controller/FsStoreAfterSalesScrmController.java

@@ -1,5 +1,6 @@
 package com.fs.hisStore.controller;
 
+import cn.hutool.core.bean.BeanUtil;
 import com.fs.common.annotation.Log;
 import com.fs.common.core.controller.BaseController;
 import com.fs.common.core.domain.AjaxResult;
@@ -27,13 +28,18 @@ import com.fs.hisStore.service.IFsStoreAfterSalesScrmService;
 import com.fs.hisStore.service.IFsStoreAfterSalesStatusScrmService;
 import com.fs.hisStore.service.IFsStoreOrderScrmService;
 import com.fs.hisStore.vo.FsStoreAfterSalesVO;
+import com.fs.hisStore.vo.FsStoreOrderItemExportRefundZMVO;
+import com.fs.hisStore.vo.FsStoreOrderItemExportZMVO;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
+import java.math.BigDecimal;
 import java.text.ParseException;
 import java.util.List;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 /**
  * 售后记录Controller
@@ -58,6 +64,10 @@ public class FsStoreAfterSalesScrmController extends BaseController
 
     @Autowired
     private TokenService tokenService;
+
+    @Value("${cloud_host.company_name}")
+    private String signProjectName;
+
     /**
      * 查询售后记录列表
      */
@@ -91,6 +101,51 @@ public class FsStoreAfterSalesScrmController extends BaseController
         }
 
         List<FsStoreAfterSalesVO> list = fsStoreAfterSalesService.selectFsStoreAfterSalesListVO(fsStoreAfterSales);
+        if("北京卓美".equals(signProjectName)){
+            List<FsStoreOrderItemExportRefundZMVO> zmvoList = list.stream()
+                    .map(vo -> {
+                        FsStoreOrderItemExportRefundZMVO zmvo = new FsStoreOrderItemExportRefundZMVO();
+                        try {
+                            zmvo.setOrderCode(vo.getOrderCode());
+                            zmvo.setStatus(vo.getOrderStatus().toString());
+                            zmvo.setUserId(vo.getUserId());
+                            zmvo.setProductName(vo.getProductName());
+                            zmvo.setBarCode(vo.getProductBarCode());
+                            zmvo.setSku(vo.getSku());
+                            zmvo.setNum(vo.getNum());
+                            zmvo.setPrice(vo.getPrice());
+                            zmvo.setCost(vo.getCost());
+//                            zmvo.setFPrice("");
+                            zmvo.setPayMoney(vo.getPayMoney());
+                            zmvo.setPayPostage(vo.getTotalPostage());
+                            zmvo.setCateName(vo.getCateName());
+                            zmvo.setRealName(vo.getUserName());
+                            zmvo.setUserPhone(vo.getUserPhone());
+                            zmvo.setUserAddress(vo.getUserAddress());
+                            zmvo.setCreateTime(vo.getCreateTime());
+                            zmvo.setPayTime(vo.getOrderPayTime());
+                            zmvo.setDeliverySn(vo.getOrderDeliverySn());
+                            zmvo.setDeliveryName(vo.getOrderDeliveryName());
+                            zmvo.setDeliveryId(vo.getOrderDeliveryId());
+                            zmvo.setCompanyName(vo.getCompanyName());
+                            zmvo.setCompanyUserNickName(vo.getCompanyUserNickName());
+                            zmvo.setRefundTime(vo.getCreateTime());
+//                            zmvo.setAfterSalesNumber
+                            zmvo.setRefundMoney(vo.getRefundAmount());
+                            zmvo.setBankTransactionId(vo.getBankTransactionId());
+                        } catch (Exception e) {
+                            // 处理异常
+                            e.printStackTrace();
+                        }
+                        return zmvo;
+                    })
+                    .collect(Collectors.toList());
+            for (FsStoreOrderItemExportRefundZMVO vo : zmvoList){
+                vo.setUserPhone(ParseUtils.parsePhone(vo.getUserPhone()));
+            }
+            ExcelUtil<FsStoreOrderItemExportRefundZMVO> util = new ExcelUtil<FsStoreOrderItemExportRefundZMVO>(FsStoreOrderItemExportRefundZMVO.class);
+            return util.exportExcel(zmvoList, "退款订单导出");
+        }
         for (FsStoreAfterSalesVO vo : list){
             vo.setUserPhone(ParseUtils.parsePhone(vo.getUserPhone()));
         }

+ 44 - 0
fs-admin/src/main/java/com/fs/hisStore/controller/FsStoreHealthOrderScrmController.java

@@ -28,6 +28,7 @@ import com.fs.hisStore.service.*;
 import com.fs.hisStore.vo.*;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
@@ -35,6 +36,7 @@ import org.springframework.web.multipart.MultipartFile;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.stream.Collectors;
 
 @RestController
 @RequestMapping("/store/store/storeOrder")
@@ -71,6 +73,9 @@ public class FsStoreHealthOrderScrmController extends BaseController {
     // 最大文件大小(5MB)
     private static final long MAX_FILE_SIZE = 5 * 1024 * 1024; // 5MB
 
+    @Value("${cloud_host.company_name}")
+    private String signProjectName;
+
     /**
      * 查询健康商城订单列表
      */
@@ -342,6 +347,45 @@ public class FsStoreHealthOrderScrmController extends BaseController {
         }
         param.setIsHealth("1");
         List<FsStoreOrderItemExportVO> list = orderItemService.selectFsStoreOrderItemListExportVO(param);
+        if("北京卓美".equals(signProjectName)){
+            List<FsStoreOrderItemExportZMVO> zmvoList = list.stream()
+                    .map(vo -> {
+                        FsStoreOrderItemExportZMVO zmvo = new FsStoreOrderItemExportZMVO();
+                        try {
+                            BeanUtil.copyProperties( vo,zmvo);
+                        } catch (Exception e) {
+                            // 处理异常
+                            e.printStackTrace();
+                        }
+                        return zmvo;
+                    })
+                    .collect(Collectors.toList());
+            //对手机号脱敏
+            if (zmvoList != null) {
+                    LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+                    for (FsStoreOrderItemExportZMVO vo : zmvoList) {
+                        if (!StringUtils.isEmpty(vo.getJsonInfo())) {
+                            try {
+                                StoreOrderProductDTO orderProductDTO = JSONObject.parseObject(vo.getJsonInfo(), StoreOrderProductDTO.class);
+                                BeanUtil.copyProperties(orderProductDTO, vo);
+                            } catch (Exception e) {
+                            }
+                        }
+                        if (loginUser.getPermissions().contains("his:storeAfterSales:finance") || loginUser.getPermissions().contains("*:*:*")) {
+                            vo.setFPrice(vo.getCost().multiply(BigDecimal.valueOf(vo.getTotalNum())));
+                        } else {
+                            vo.setPayPostage(BigDecimal.ZERO);
+                            vo.setCost(BigDecimal.ZERO);
+                            vo.setFPrice(BigDecimal.ZERO);
+                            vo.setBarCode("");
+                            vo.setCateName("");
+                            vo.setBankTransactionId("");
+                        }
+                    }
+                }
+                ExcelUtil<FsStoreOrderItemExportZMVO> util = new ExcelUtil<FsStoreOrderItemExportZMVO>(FsStoreOrderItemExportZMVO.class);
+                return util.exportExcel(zmvoList, "订单明细数据");
+        }
         //对手机号脱敏
         if (list != null) {
             LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());

+ 45 - 0
fs-admin/src/main/java/com/fs/hisStore/controller/FsStoreOrderScrmController.java

@@ -58,6 +58,7 @@ import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -137,6 +138,9 @@ public class FsStoreOrderScrmController extends BaseController {
     @Autowired
     private IFsStoreOrderLogsScrmService fsStoreOrderLogsService;
 
+    @Value("${cloud_host.company_name}")
+    private String signProjectName;
+
     private IErpOrderService getErpService(){
         //判断是否开启erp
         IErpOrderService erpOrderService = null;
@@ -511,6 +515,47 @@ public class FsStoreOrderScrmController extends BaseController {
         }
         param.setNotHealth(1);
         List<FsStoreOrderItemExportVO> list = orderItemService.selectFsStoreOrderItemListExportVO(param);
+        if("北京卓美".equals(signProjectName)){
+            List<FsStoreOrderItemExportZMVO> zmvoList = list.stream()
+                    .map(vo -> {
+                        FsStoreOrderItemExportZMVO zmvo = new FsStoreOrderItemExportZMVO();
+                        try {
+                            BeanUtil.copyProperties( vo,zmvo);
+                        } catch (Exception e) {
+                            // 处理异常
+                            e.printStackTrace();
+                        }
+                        return zmvo;
+                    })
+                    .collect(Collectors.toList());
+            //对手机号脱敏
+            if (zmvoList != null) {
+                LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+                for (FsStoreOrderItemExportZMVO vo : zmvoList) {
+                    if (!StringUtils.isEmpty(vo.getJsonInfo())) {
+                        try {
+                            StoreOrderProductDTO orderProductDTO = JSONObject.parseObject(vo.getJsonInfo(), StoreOrderProductDTO.class);
+                            BeanUtil.copyProperties(orderProductDTO, vo);
+                        } catch (Exception e) {
+                        }
+                    }
+                    //
+                    if (loginUser.getPermissions().contains("his:storeAfterSales:finance") || loginUser.getPermissions().contains("*:*:*")) {
+                        vo.setFPrice(vo.getCost().multiply(BigDecimal.valueOf(vo.getTotalNum())));
+                    } else {
+                        vo.setPayPostage(BigDecimal.ZERO);
+                        vo.setCost(BigDecimal.ZERO);
+                        vo.setFPrice(BigDecimal.ZERO);
+                        vo.setBarCode("");
+                        vo.setCateName("");
+                        vo.setBankTransactionId("");
+                    }
+                }
+            }
+            ExcelUtil<FsStoreOrderItemExportZMVO> util = new ExcelUtil<FsStoreOrderItemExportZMVO>(FsStoreOrderItemExportZMVO.class);
+            return util.exportExcel(zmvoList, "订单明细数据");
+        }
+
         //对手机号脱敏
         if (list != null) {
             LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());

+ 51 - 0
fs-admin/src/main/java/com/fs/live/controller/LiveAfterSalesController.java

@@ -16,6 +16,7 @@ import com.fs.his.domain.FsStoreAfterSalesLogs;
 import com.fs.his.domain.FsUser;
 import com.fs.his.enums.FsStoreAfterSalesStatusEnum;
 import com.fs.his.service.IFsUserService;
+import com.fs.hisStore.vo.FsStoreOrderItemExportRefundZMVO;
 import com.fs.live.domain.LiveAfterSales;
 import com.fs.live.domain.LiveAfterSalesItem;
 import com.fs.live.domain.LiveAfterSalesLogs;
@@ -31,11 +32,13 @@ import com.fs.live.service.ILiveOrderService;
 import com.fs.live.vo.LiveAfterSalesVo;
 import com.github.pagehelper.PageHelper;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import java.text.ParseException;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 售后记录Controller
@@ -60,6 +63,9 @@ public class LiveAfterSalesController extends BaseController
     private IFsUserService userService;
     @Autowired
     private ILiveOrderService orderService;
+    @Value("${cloud_host.company_name}")
+    private String signProjectName;
+
 
     /**
      * 获取售后记录详细信息
@@ -105,6 +111,51 @@ public class LiveAfterSalesController extends BaseController
         PageHelper.clearPage();
         PageHelper.startPage(1, 10000, "");
         List<LiveAfterSalesVo> list = liveAfterSalesService.selectLiveAfterSalesVoList(liveAfterSales);
+        if("北京卓美".equals(signProjectName)){
+            List<FsStoreOrderItemExportRefundZMVO> zmvoList = list.stream()
+                    .map(vo -> {
+                        FsStoreOrderItemExportRefundZMVO zmvo = new FsStoreOrderItemExportRefundZMVO();
+                        try {
+                            zmvo.setOrderCode(vo.getOrderCode());
+                            zmvo.setStatus(vo.getOrderStatus().toString());
+                            zmvo.setUserId(vo.getUserId());
+                            zmvo.setProductName(vo.getProductName());
+                            zmvo.setBarCode(vo.getProductBarCode());
+                            zmvo.setSku(vo.getSku());
+                            zmvo.setNum(vo.getNum());
+                            zmvo.setPrice(vo.getPrice());
+                            zmvo.setCost(vo.getCost());
+//                            zmvo.setFPrice("");
+                            zmvo.setPayMoney(vo.getPayMoney());
+                            zmvo.setPayPostage(vo.getTotalPostage());
+                            zmvo.setCateName(vo.getCateName());
+                            zmvo.setRealName(vo.getUserName());
+                            zmvo.setUserPhone(vo.getUserPhone());
+                            zmvo.setUserAddress(vo.getUserAddress());
+                            zmvo.setCreateTime(vo.getCreateTime());
+                            zmvo.setPayTime(vo.getOrderPayTime());
+                            zmvo.setDeliverySn(vo.getOrderDeliverySn());
+                            zmvo.setDeliveryName(vo.getOrderDeliveryName());
+                            zmvo.setDeliveryId(vo.getOrderDeliveryId());
+                            zmvo.setCompanyName(vo.getCompanyName());
+                            zmvo.setCompanyUserNickName(vo.getCompanyUserNickName());
+                            zmvo.setRefundTime(vo.getCreateTime());
+//                            zmvo.setAfterSalesNumber
+                            zmvo.setRefundMoney(vo.getRefundAmount());
+                            zmvo.setBankTransactionId(vo.getBankTransactionId());
+                        } catch (Exception e) {
+                            // 处理异常
+                            e.printStackTrace();
+                        }
+                        return zmvo;
+                    })
+                    .collect(Collectors.toList());
+            for (FsStoreOrderItemExportRefundZMVO vo : zmvoList){
+                vo.setUserPhone(ParseUtils.parsePhone(vo.getUserPhone()));
+            }
+            ExcelUtil<FsStoreOrderItemExportRefundZMVO> util = new ExcelUtil<FsStoreOrderItemExportRefundZMVO>(FsStoreOrderItemExportRefundZMVO.class);
+            return util.exportExcel(zmvoList, "退款订单导出");
+        }
         for (LiveAfterSalesVo liveAfterSalesVo : list) {
             liveAfterSalesVo.setUserPhone(liveAfterSalesVo.getUserPhone() == null ? "" : liveAfterSalesVo.getUserPhone().replaceAll("(\\d{3})\\d*(\\d{4})", "$1****$2"));
             liveAfterSalesVo.setPhoneNumber(liveAfterSalesVo.getPhoneNumber() == null ? "" : liveAfterSalesVo.getPhoneNumber().replaceAll("(\\d{3})\\d*(\\d{4})", "$1****$2"));

+ 29 - 1
fs-admin/src/main/java/com/fs/live/controller/LiveOrderController.java

@@ -38,6 +38,7 @@ import com.fs.hisStore.param.*;
 import com.fs.hisStore.service.IFsExpressScrmService;
 import com.fs.hisStore.task.ExpressTask;
 import com.fs.hisStore.task.LiveTask;
+import com.fs.hisStore.vo.FsStoreOrderItemExportZMVO;
 import com.fs.hisStore.vo.FsStoreOrderVO;
 import com.fs.live.domain.*;
 import com.fs.live.dto.LiveOrderCustomerExportDTO;
@@ -242,7 +243,34 @@ public class LiveOrderController extends BaseController
         return util.exportExcel(list, "订单数据");
     }
 
-
+    /**
+     * 导出订单列表
+     */
+    @PreAuthorize("@ss.hasPermi('live:liveOrder:export')")
+    @Log(title = "订单", businessType = BusinessType.EXPORT)
+    @GetMapping("/exportZmNew")
+    public AjaxResult exportZmNew(LiveOrder liveOrder){
+        List<FsStoreOrderItemExportZMVO> list = liveOrderService.selectLiveOrderListZmNew(liveOrder);
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        for (FsStoreOrderItemExportZMVO vo : list){
+            vo.setUserPhone(ParseUtils.parsePhone(vo.getUserPhone()));
+//            vo.setCompanyUserPhone(ParseUtils.parsePhone(vo.getCompanyUserPhone()));
+//            vo.setUserBindPhone(ParseUtils.parsePhone(vo.getUserBindPhone()));
+            vo.setUserAddress(ParseUtils.parseAddress(vo.getUserAddress()));
+            // 财务独特字段
+            if (loginUser.getPermissions().contains("live:liveOrder:finance") || loginUser.getPermissions().contains("*:*:*")) {
+//                vo.setCostPrice(vo.getCost());
+                vo.setFPrice(vo.getCost().multiply(BigDecimal.valueOf(vo.getNum())));
+            } else {
+                vo.setCost(BigDecimal.ZERO);
+                vo.setFPrice(BigDecimal.ZERO);
+                vo.setBankTransactionId("");
+            }
+//            vo.setCost(vo.getCostPrice());
+        }
+        ExcelUtil<FsStoreOrderItemExportZMVO> util = new ExcelUtil<FsStoreOrderItemExportZMVO>(FsStoreOrderItemExportZMVO.class);
+        return util.exportExcel(list, "订单数据");
+    }
     /**
      * 获取订单详细信息
      */

+ 4 - 1
fs-service/src/main/java/com/fs/hisStore/mapper/FsStoreAfterSalesScrmMapper.java

@@ -88,7 +88,10 @@ public interface FsStoreAfterSalesScrmMapper
 
     @Select({"<script> " +
             "select s.*,o.delivery_status,o.delivery_id,u.phone as user_phone,c.company_name ,cu.nick_name as company_user_nick_name ," +
-            "cu.phonenumber as company_usere_phonenumber,o.id as orderId,o.real_name as userName,o.item_json,o.user_address,o.pay_time as orderPayTime,o.pay_price,o.total_postage,fsps.bank_serial_no  " +
+            "cu.phonenumber as company_usere_phonenumber,o.pay_money,o.id as orderId,o.create_time as orderCreateTime,o.user_phone," +
+            "o.real_name as userName,o.item_json,o.user_address,o.pay_time as orderPayTime,o.pay_price,o.total_postage," +
+            "fsps.bank_serial_no,fsps.bank_transaction_id,o.delivery_id as orderDeliveryId,o.delivery_name as orderDeliveryName,o.delivery_sn as orderDeliverySn," +
+            "o.status as orderStatus " +
             " from fs_store_after_sales_scrm s " +
             " INNER join fs_store_order_scrm o on o.order_code=s.order_code " +
             " left join fs_user u on s.user_id=u.user_id " +

+ 10 - 4
fs-service/src/main/java/com/fs/hisStore/mapper/FsStoreOrderItemScrmMapper.java

@@ -76,12 +76,18 @@ public interface FsStoreOrderItemScrmMapper
 
     @Select({"<script> " +
             "select i.*,o.user_id,psps.cost,o.pay_postage,o.total_num,o.status,fspcs.cate_name, o.real_name,o.user_phone,o.user_address,o.create_time,o.pay_time,o.delivery_sn,o.delivery_name,o.delivery_id, c.company_name ,cu.nick_name as company_user_nick_name ,cu.phonenumber as company_usere_phonenumber,o.upload_time ,CASE WHEN o.certificates IS NULL OR o.certificates = '' THEN 0 ELSE 1 END AS is_upload   " +
-            " ,p.title as package_name,cts.name as scheduleName, os.bank_transaction_id as bankTransactionId from fs_store_order_item_scrm i left join fs_store_order_scrm o on o.id=i.order_id" +
+            " ,p.title as package_name,cts.name as scheduleName,os.pay_money, os.bank_transaction_id as bankTransactionId " +
+            " from fs_store_order_item_scrm i " +
+            " left join fs_store_order_scrm o on o.id=i.order_id" +
             " left join fs_store_payment_scrm os on os.business_order_id = o.id " +
             " left join fs_user u on o.user_id=u.user_id  " +
-            " left join fs_store_product_package_scrm p on o.package_id=p.package_id left join company c on c.company_id=o.company_id left join company_user cu on cu.user_id=o.company_user_id left join company_tcm_schedule cts on cts.id = o.schedule_id " +
-            " left join fs_store_product_scrm psps on i.product_id=psps.product_id left join fs_store_product_category_scrm fspcs on fspcs.cate_id=psps.cate_id " +
-            "where 1=1 " +
+            " left join fs_store_product_package_scrm p on o.package_id=p.package_id " +
+            " left join company c on c.company_id=o.company_id " +
+            " left join company_user cu on cu.user_id=o.company_user_id " +
+            " left join company_tcm_schedule cts on cts.id = o.schedule_id " +
+            " left join fs_store_product_scrm psps on i.product_id=psps.product_id " +
+            " left join fs_store_product_category_scrm fspcs on fspcs.cate_id=psps.cate_id " +
+            " where 1=1 " +
             "<if test = 'maps.orderCode != null and  maps.orderCode !=\"\"    '> " +
             "and o.order_code like CONCAT('%',#{maps.orderCode},'%') " +
             "</if>" +

+ 4 - 0
fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreAfterSalesScrmServiceImpl.java

@@ -580,6 +580,10 @@ public class FsStoreAfterSalesScrmServiceImpl implements IFsStoreAfterSalesScrmS
                             item.setSku(StringUtils.isNotBlank(item.getSku()) ? item.getSku() + "," + jsO.getString("sku") : jsO.getString("sku"));
                             item.setNum(StringUtils.isNotBlank(item.getNum()) ? item.getNum() + "," + jsO.getString("num") : jsO.getString("num"));
                             item.setPrice(StringUtils.isNotBlank(item.getPrice()) ? item.getPrice() + "," + jsO.getString("price") : jsO.getString("price"));
+                            item.setBarCode(StringUtils.isNotBlank(item.getBarCode()) ? item.getBarCode() + "," + jsO.getString("barCode") : jsO.getString("barCode"));
+                            item.setCost(StringUtils.isNotBlank(item.getCost()) ? item.getCost() + "," + orderItem.getCost() : orderItem.getCost());
+                            item.setCateName(StringUtils.isNotBlank(item.getCateName()) ? item.getCateName() + "," + orderItem.getCateName() : orderItem.getCateName());
+
                         } catch (Exception ex) {
                             logger.error("售后订单商品信息转换异常",ex);
                         }

+ 13 - 0
fs-service/src/main/java/com/fs/hisStore/vo/FsStoreAfterSalesVO.java

@@ -114,6 +114,8 @@ public class FsStoreAfterSalesVO implements Serializable
     private String num;
     @Excel(name ="产品价格")
     private String price;
+    @Excel(name ="产品编码")
+    private String barCode;
     @Excel(name="额外运费")
     private BigDecimal totalPostage;
     @Excel(name="实付金额")
@@ -127,7 +129,18 @@ public class FsStoreAfterSalesVO implements Serializable
     @Excel(name ="银行交易流水号")
     private String bankSerialNo;
 
+    private String bankTransactionId;
+
     private Long orderId;
 
+    private String cost;
+
+    private BigDecimal payMoney;
+
+    private String cateName;
+    private Date orderCreateTime;
 
+    private String orderDeliverySn;
+    private String orderDeliveryName;
+    private String orderDeliveryId;
 }

+ 133 - 0
fs-service/src/main/java/com/fs/hisStore/vo/FsStoreOrderItemExportRefundZMVO.java

@@ -0,0 +1,133 @@
+package com.fs.hisStore.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fs.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author MixLiu
+ * @date 2025/12/4 上午11:43)
+ */
+
+@Data
+public class FsStoreOrderItemExportRefundZMVO implements Serializable  {
+
+
+    private Long itemId;
+
+    /** 订单号 */
+    @Excel(name = "订单号",sort = 1)
+    private String orderCode;
+
+    @Excel(name = "订单状态", dictType = "store_order_status",sort = 10)
+    private String status;
+
+    @Excel(name = "会员ID" ,sort = 20)
+    private Long userId;
+
+    @Excel(name = "产品名称",sort = 30)
+    private String productName;
+
+    @Excel(name = "产品编码",sort =40)
+    private String barCode;
+
+
+    @Excel(name = "规格",sort =50)
+    private String sku;
+
+    @Excel(name = "产品数量",sort =60)
+    private String num;
+
+
+    @Excel(name = "产品价格",sort =70)
+    private String price;
+
+    @Excel(name = "成本价",sort =80)
+    private String cost;
+    @Excel(name = "结算价",sort =90)
+    private BigDecimal FPrice;
+
+    @Excel(name = "实付金额",sort =91)
+    private BigDecimal payMoney;
+
+    @Excel(name = "额外运费",sort =100)
+    private BigDecimal payPostage;
+    private Integer totalNum;
+    @Excel(name = "商品分类",sort =100)
+    private String cateName;
+
+
+    private String jsonInfo;
+
+    /** 用户姓名 */
+    @Excel(name = "收货人姓名",sort =110)
+    private String realName;
+
+    /** 用户电话 */
+    @Excel(name = "收货人电话",sort =120)
+    private String userPhone;
+
+    /** 详细地址 */
+    @Excel(name = "详细地址",sort =130)
+    private String userAddress;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "下单时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss",sort = 140)
+    private Date createTime;
+    /** 支付时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss",sort = 150)
+    private Date payTime;
+
+    /** 快递公司编号 */
+    @Excel(name = "快递公司编号",sort = 160)
+    private String deliverySn;
+
+    /** 快递名称/送货人姓名 */
+    @Excel(name = "快递公司",sort = 170)
+    private String deliveryName;
+
+    /** 快递单号/手机号 */
+    @Excel(name = "快递单号",sort = 180)
+    private String deliveryId;
+
+    @Excel(name = "所属公司",sort = 190)
+    private String companyName;
+    @Excel(name = "所属销售",sort = 200)
+    private String companyUserNickName;
+
+    @Excel(name = "套餐名称",sort = 210)
+    private String packageName;
+
+    @Excel(name = "组合码",sort = 210)
+    private String groupBarCode;
+
+    @Excel(name = "是否上传凭证 0:未上传 1:已上传",sort = 210)
+    private Integer isUpload;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "上传时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss",sort = 220)
+    private Date uploadTime;
+
+    @Excel(name = "归属档期",sort = 230)
+    private String scheduleName;
+
+    //银行交易流水号
+    @Excel(name = "银行交易流水号",sort = 240)
+    private String bankTransactionId;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "退款时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss",sort = 220)
+    private Date refundTime;
+
+    @Excel(name = "退款数量" ,sort = 230)
+    private Integer afterSalesNumber;
+
+    @Excel(name = "退款金额" ,sort = 240)
+    private BigDecimal refundMoney;
+
+}

+ 3 - 0
fs-service/src/main/java/com/fs/hisStore/vo/FsStoreOrderItemExportVO.java

@@ -45,6 +45,9 @@ public class FsStoreOrderItemExportVO implements Serializable
     private BigDecimal cost;
     @Excel(name = "结算价")
     private BigDecimal FPrice;
+
+    private BigDecimal payMoney;
+
     @Excel(name = "额外运费")
     private BigDecimal payPostage;
     private Integer totalNum;

+ 124 - 0
fs-service/src/main/java/com/fs/hisStore/vo/FsStoreOrderItemExportZMVO.java

@@ -0,0 +1,124 @@
+package com.fs.hisStore.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fs.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author MixLiu
+ * @date 2025/12/4 上午11:43)
+ */
+
+@Data
+public class FsStoreOrderItemExportZMVO implements Serializable  {
+
+
+    private Long itemId;
+
+    /** 订单号 */
+    @Excel(name = "订单号",sort = 1)
+    private String orderCode;
+
+    @Excel(name = "订单状态", dictType = "store_order_status",sort = 10)
+    private String status;
+
+    @Excel(name = "会员ID" ,sort = 20)
+    private Long userId;
+
+    @Excel(name = "产品名称",sort = 30)
+    private String productName;
+
+    @Excel(name = "产品编码",sort =40)
+    private String barCode;
+
+
+    @Excel(name = "规格",sort =50)
+    private String sku;
+
+    @Excel(name = "产品数量",sort =60)
+    private Integer num;
+
+
+    @Excel(name = "产品价格",sort =70)
+    private BigDecimal price;
+
+    @Excel(name = "成本价",sort =80)
+    private BigDecimal cost;
+    @Excel(name = "结算价",sort =90)
+    private BigDecimal FPrice;
+
+    @Excel(name = "实付金额",sort =91)
+    private BigDecimal payMoney;
+
+    @Excel(name = "额外运费",sort =100)
+    private BigDecimal payPostage;
+    private Integer totalNum;
+    @Excel(name = "商品分类",sort =100)
+    private String cateName;
+
+
+    private String jsonInfo;
+
+    /** 用户姓名 */
+    @Excel(name = "收货人姓名",sort =110)
+    private String realName;
+
+    /** 用户电话 */
+    @Excel(name = "收货人电话",sort =120)
+    private String userPhone;
+
+    /** 详细地址 */
+    @Excel(name = "详细地址",sort =130)
+    private String userAddress;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "下单时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss",sort = 140)
+    private Date createTime;
+    /** 支付时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss",sort = 150)
+    private Date payTime;
+
+    /** 快递公司编号 */
+    @Excel(name = "快递公司编号",sort = 160)
+    private String deliverySn;
+
+    /** 快递名称/送货人姓名 */
+    @Excel(name = "快递公司",sort = 170)
+    private String deliveryName;
+
+    /** 快递单号/手机号 */
+    @Excel(name = "快递单号",sort = 180)
+    private String deliveryId;
+
+    @Excel(name = "所属公司",sort = 190)
+    private String companyName;
+    @Excel(name = "所属销售",sort = 200)
+    private String companyUserNickName;
+
+    @Excel(name = "套餐名称",sort = 210)
+    private String packageName;
+
+    @Excel(name = "组合码",sort = 210)
+    private String groupBarCode;
+
+    @Excel(name = "是否上传凭证 0:未上传 1:已上传",sort = 210)
+    private Integer isUpload;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "上传时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss",sort = 220)
+    private Date uploadTime;
+
+    @Excel(name = "归属档期",sort = 230)
+    private String scheduleName;
+
+    //银行交易流水号
+    @Excel(name = "银行交易流水号",sort = 240)
+    private String bankTransactionId;
+
+
+}

+ 7 - 0
fs-service/src/main/java/com/fs/hisStore/vo/FsStoreOrderItemVO.java

@@ -4,6 +4,7 @@ import com.fs.common.annotation.Excel;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 
 @Data
 public class FsStoreOrderItemVO  implements Serializable
@@ -47,5 +48,11 @@ public class FsStoreOrderItemVO  implements Serializable
     private Integer isPrescribe;
 
     private Integer isDrug; //是否为药品
+    //成本
+    private String cost;
+    //商品分类
+    private String cateName;
+
+
 
 }

+ 3 - 0
fs-service/src/main/java/com/fs/live/mapper/LiveOrderMapper.java

@@ -1,6 +1,7 @@
 package com.fs.live.mapper;
 
 
+import com.fs.hisStore.vo.FsStoreOrderItemExportZMVO;
 import com.fs.live.domain.LiveOrder;
 import com.fs.live.dto.LiveOrderDeliveryNoteDTO;
 import com.fs.live.param.FsMyLiveOrderQueryParam;
@@ -418,6 +419,8 @@ public interface LiveOrderMapper {
 
     List<LiveOrderVoZm> selectLiveOrderListZm(LiveOrder liveOrder);
 
+    List<FsStoreOrderItemExportZMVO> selectLiveOrderListZmNew(LiveOrder liveOrder);
+
     @Select(" SELECT * from live_order WHERE item_json is NULL ORDER BY create_time DESC  LIMIT 30")
     List<LiveOrder> selectLiveOrderItemJson();
 

+ 3 - 0
fs-service/src/main/java/com/fs/live/service/ILiveOrderService.java

@@ -5,6 +5,7 @@ import com.fs.erp.domain.ErpOrder;
 import com.fs.hisStore.domain.FsStoreOrderScrm;
 import com.fs.hisStore.param.FsStoreOrderAddTuiMoneyParam;
 import com.fs.hisStore.param.FsStoreOrderScrmSetErpPhoneParam;
+import com.fs.hisStore.vo.FsStoreOrderItemExportZMVO;
 import com.fs.hisStore.vo.FsStoreOrderVO;
 import com.fs.live.domain.LiveAfterSales;
 import com.fs.live.domain.LiveOrder;
@@ -237,6 +238,8 @@ public interface ILiveOrderService {
 
     List<LiveOrderVoZm> selectLiveOrderListZm(LiveOrder liveOrder);
 
+    List<FsStoreOrderItemExportZMVO> selectLiveOrderListZmNew(LiveOrder liveOrder);
+
     R handleLiveOrderPay(LiveOrderPayParam param);
 
     List<LiveOrder> selectLiveOrderItemJson();

+ 2 - 0
fs-service/src/main/java/com/fs/live/service/impl/LiveAfterSalesServiceImpl.java

@@ -237,6 +237,8 @@ public class LiveAfterSalesServiceImpl implements ILiveAfterSalesService {
                         item.setSku(StringUtils.isNotBlank(item.getSku()) ? item.getSku() + "," + jsO.getString("sku") : jsO.getString("sku"));
                         item.setNum(StringUtils.isNotBlank(item.getNum()) ? item.getNum() + "," + jsO.getString("num") : jsO.getString("num"));
                         item.setPrice(StringUtils.isNotBlank(item.getPrice()) ? item.getPrice() + "," + jsO.getString("price") : jsO.getString("price"));
+                        item.setCost(StringUtils.isNotBlank(item.getCost()) ? item.getCost() + "," + liveOrderItemListUVO.getCost() : liveOrderItemListUVO.getCost());
+                        item.setCateName(StringUtils.isNotBlank(item.getCateName()) ? item.getCateName() + "," + liveOrderItemListUVO.getCateName() : liveOrderItemListUVO.getCateName());
                     } catch (Exception ex) {
                         log.error("售后订单商品信息转换异常",ex);
                     }

+ 10 - 0
fs-service/src/main/java/com/fs/live/service/impl/LiveOrderServiceImpl.java

@@ -2944,6 +2944,16 @@ public class LiveOrderServiceImpl implements ILiveOrderService {
         return baseMapper.selectLiveOrderListZm(liveOrder);
     }
 
+    /**
+     * 导出新模板改动
+     * @param liveOrder
+     * @return
+     */
+    @Override
+    public List<FsStoreOrderItemExportZMVO> selectLiveOrderListZmNew(LiveOrder liveOrder){
+        return baseMapper.selectLiveOrderListZmNew(liveOrder);
+    }
+
     @Override
     @Transactional(rollbackFor = Throwable.class,propagation = Propagation.REQUIRED)
     public R handleLiveOrderPay(LiveOrderPayParam param) {

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

@@ -172,7 +172,19 @@ public class LiveAfterSalesVo {
     @Excel(name ="银行交易流水号")
     private String bankSerialNo;
 
+    private String bankTransactionId;
 
 
+    private String cost;
+
+    private BigDecimal payMoney;
+
+    private String cateName;
+    private Date orderCreateTime;
+
+    private String orderDeliverySn;
+    private String orderDeliveryName;
+    private String orderDeliveryId;
+
 
 }

+ 4 - 1
fs-service/src/main/java/com/fs/live/vo/LiveOrderItemListUVO.java

@@ -19,5 +19,8 @@ public class LiveOrderItemListUVO implements Serializable {
     /** 数量 */
     private Long num;
 
-
+    //成本
+    private String cost;
+    //商品分类
+    private String cateName;
 }

+ 10 - 2
fs-service/src/main/java/com/fs/live/vo/LiveOrderVoZm.java

@@ -479,6 +479,14 @@ public class LiveOrderVoZm{
     /** 银行交易流水号 */
     @Excel(name = "银行交易流水号")
     private String bankTransactionId;
-
-
+    //统一导出模板内容新增字段
+    private Integer num;
+    private String sku;
+//    private BigDecimal FPrice;
+    private String deliveryId;
+    private String packageName;
+    private String groupBarCode;
+    private Integer isUpload;
+    private Date uploadTime;
+    private String scheduleName;
 }

+ 10 - 1
fs-service/src/main/resources/mapper/hisStore/FsStoreOrderItemScrmMapper.xml

@@ -96,7 +96,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </delete>
 
     <select id="selectFsStoreOrderItemListByOrderIds" resultType="com.fs.hisStore.vo.FsStoreOrderItemVO" parameterType="java.util.List" >
-        select * from fs_store_order_item_scrm where order_id in
+        select
+        t1.order_id,
+        t1.order_code,
+        t1.json_info,
+        t2.cost,
+        t3.cate_name
+        from fs_store_order_item_scrm t1
+        left join fs_store_product_scrm t2 on t1.product_id = t2.product_id
+        left join fs_store_product_category_scrm t3 on t3.cate_id = t2.cate_id
+        where t1.order_id in
         <foreach item="itemId" collection="orderIds" open="(" separator="," close=")">
             #{itemId}
         </foreach>

+ 1 - 1
fs-service/src/main/resources/mapper/hisStore/FsStoreOrderScrmMapper.xml

@@ -1610,7 +1610,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         ROW_NUMBER() OVER (PARTITION BY sp.business_code ORDER BY sp.create_time DESC) as rn
         FROM fs_store_payment_scrm sp
         WHERE sp.business_code IS NOT NULL
-        ) sp_latest ON sp_latest.business_code = o.order_code AND sp_latest.rn = 1
+        ) sp_latest ON sp_latest.business_order_id = o.id AND sp_latest.rn = 1
         LEFT JOIN fs_course_play_source_config csc ON csc.appid = sp_latest.app_id
         <where>
             <if test="maps.appId != null and maps.appId != ''">

+ 3 - 1
fs-service/src/main/resources/mapper/live/LiveAfterSalesMapper.xml

@@ -66,7 +66,9 @@ 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_id,lo.order_code,lo.user_phone,las.user_id,lo.item_json,lo.pay_time as orderPayTime,lo.user_address,lo.user_name,lo.pay_price,lo.total_postage,lop.bank_serial_no
+        cu.nick_name as company_user_nick_name, c.company_name,lo.order_id,lo.order_code,lo.user_phone,las.user_id,lo.item_json,lo.pay_time as orderPayTime,
+        lo.user_address,lo.user_name,lo.pay_price,lo.total_postage,lop.bank_serial_no,lo.delivery_sn as orderDeliveryId,lo.delivery_name as orderDeliveryName,
+        lo.delivery_code as orderDeliverySn,lo.status as orderStatus,lop.bank_transaction_id,lo.pay_money
         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

+ 13 - 2
fs-service/src/main/resources/mapper/live/LiveOrderItemMapper.xml

@@ -150,8 +150,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </delete>
 
     <select id="selectLiveOrderItemListUVOByOrderIds" resultType="com.fs.live.vo.LiveOrderItemListUVO"  parameterType="java.util.List">
-        select product_id,json_info,order_code,item_id,num,order_id from live_order_item
-        where order_id in
+        select
+        t1.product_id,
+        t1.json_info,
+        t1.order_code,
+        t1.item_id,
+        t1.num,
+        t1.order_id,
+        t2.cost,
+        t3.cate_name
+        from live_order_item t1
+        left join fs_store_product_scrm t2 on t1.product_id = t2.product_id
+        left join fs_store_product_category_scrm t3 on t3.cate_id = t2.cate_id
+        where t1.order_id in
         <foreach item="itemId" collection="orderIds" open="(" separator="," close=")">
             #{itemId}
         </foreach>

+ 110 - 0
fs-service/src/main/resources/mapper/live/LiveOrderMapper.xml

@@ -1098,6 +1098,116 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         ORDER BY o.create_time DESC
     </select>
 
+    <select id="selectLiveOrderListZmNew" parameterType="LiveOrder" resultType="com.fs.hisStore.vo.FsStoreOrderItemExportZMVO">
+        select
+            t1.order_code as orderCode,
+            t1.status,
+            t1.user_id as userId,
+            if(JSON_VALID(t2.json_info),t2.json_info->>'$.productName','') as productName,
+            if(JSON_VALID(t2.json_info),t2.json_info->>'$.barCode','') as barCode,
+            if(JSON_VALID(t2.json_info),t2.json_info->>'$.sku','') as sku,
+            if(JSON_VALID(t2.json_info),t2.json_info->>'$.price','') as price,
+            t2.num,
+            fsps.cost,
+            fspcs.cate_name as cateName,
+            t1.user_name as realName,
+            t1.user_phone as userPhone,
+            t1.user_address as userAddress,
+            t1.create_time as createTime,
+            t1.pay_time as payTime,
+            t1.delivery_sn as deliveryId,
+            t1.delivery_name as deliveryName,
+            t1.delivery_code as deliverySn,
+            t3.company_name as companyName,
+            t4.nick_name as companyUserNickName,
+            lop.bank_transaction_id as  bankTransactionId
+        from
+            live_order t1
+                left join live_order_item t2 on t1.order_id = t2.order_id
+                left join fs_store_product_scrm fsps on fsps.product_id = t2.product_id
+                left join fs_store_product_category_scrm fspcs on fspcs.cate_id = fsps.cate_id
+                left join company t3 on t1.company_id = t3.company_id
+                left join company_user  t4 on t4.user_id = t1.company_user_id
+                LEFT JOIN (
+                SELECT
+                    t5.*,
+                    ROW_NUMBER() OVER (PARTITION BY t5.business_code ORDER BY t5.status desc,t5.create_time DESC) as rn
+                FROM live_order_payment t5
+                WHERE t5.business_id IS NOT NULL
+            ) lop ON lop.business_id = t1.order_id AND lop.rn = 1
+        <where>
+            t1.is_del = 0 and fsps.product_id IS NOT NULL
+            <if test="orderId != null">
+                AND t1.order_id = #{orderId}
+            </if>
+            <if test="liveId != null">
+                AND t1.live_id = #{liveId}
+            </if>
+            <if test="storeId != null">
+                AND t1.store_id = #{storeId}
+            </if>
+            <if test="orderCode != null and orderCode != ''">
+                AND t1.order_code LIKE CONCAT('%', #{orderCode}, '%')
+            </if>
+            <if test="userId != null and userId != ''">
+                AND t1.user_id = #{userId}
+            </if>
+            <if test="status != null">
+                AND t1.status = #{status}
+            </if>
+            <if test="companyId != null">
+                AND t1.company_id = #{companyId}
+            </if>
+            <if test="totalNum != null">
+                AND t1.total_num = #{totalNum}
+            </if>
+            <if test="price != null">
+                AND fsps.price = #{price}
+            </if>
+            <if test="cost != null">
+                AND fsps.cost = #{cost}
+            </if>
+            <if test="companyUserId != null">
+                AND t1.company_user_id = #{companyUserId}
+            </if>
+            <if test="productId != null">
+                AND t1.product_id = #{productId}
+            </if>
+            <!-- 新增筛选条件 -->
+            <if test="productName != null and productName != ''">
+                AND fsps.product_name LIKE CONCAT('%', #{productName}, '%')
+            </if>
+            <if test="productSpec != null and productSpec != ''">
+                AND fsps.prescribe_spec LIKE CONCAT('%', #{productSpec}, '%')
+            </if>
+            <if test="storeId != null and storeId != ''">
+                AND fsps.store_id = #{storeId}
+            </if>
+            <if test="userAddress != null and userAddress != ''">
+                AND t1.user_address LIKE CONCAT('%', #{userAddress}, '%')
+            </if>
+            <if test="userName != null and userName != ''">
+                AND t1.user_name LIKE CONCAT('%', #{userName}, '%')
+            </if>
+            <if test="createTimeStart != null ">
+                AND t1.create_time &gt;= #{createTimeStart}
+            </if>
+            <if test="createTimeEnd != null ">
+                AND t1.create_time &lt;= #{createTimeEnd}
+            </if>
+            <if test="payStartTime != null ">
+                AND t1.pay_time &gt;= #{payStartTime}
+            </if>
+            <if test="payEndTime != null ">
+                AND t1.pay_time &lt;= #{payEndTime}
+            </if>
+            <if test="userPhone != null and userPhone != ''">
+                AND t1.user_phone = #{userPhone}
+            </if>
+        </where>
+        GROUP BY t1.order_id
+    </select>
+
     <select id="getUnsettledOrder" resultType="com.fs.live.domain.LiveOrder">
         SELECT
             sos.*,