浏览代码

Merge branch 'main' of http://47.98.207.247:3000/lsq/ship-ota-server into main

luofeiyun 1 天之前
父节点
当前提交
07751e9bea

+ 6 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/order/OrderTotalRespVO.java

@@ -38,6 +38,9 @@ public class OrderTotalRespVO {
     @Schema(description = "领队数")
     private Integer leaderTotalNum;
 
+    @Schema(description = "总人数")
+    private Integer totalNum;
+
     @Schema(description = "16免1人数")
     private Integer freeNum;
 
@@ -53,6 +56,9 @@ public class OrderTotalRespVO {
     @Schema(description = "实收款")
     private BigDecimal realPayAmount;
 
+    @Schema(description = "未付金额")
+    private BigDecimal unpaidAmount;
+
     @Schema(description = "其它费用")
     private BigDecimal otherMoney;
 

+ 9 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/order/TradeOrderPageReqVO.java

@@ -237,5 +237,14 @@ public class TradeOrderPageReqVO extends PageParam {
     private List<String> additiveIds;
     private String floor;
 
+    /**
+     * 排序字段
+     */
+    private String sortField;
+    /**
+     * 排序方式
+     */
+    private String sortOrder;
+
     private Integer isInsure;
 }

+ 1 - 1
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/mysql/order/TradeOrderMapper.java

@@ -265,7 +265,7 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
 
     List<Long> findOrderIdsByCondition(IPage<TradeOrderRespVO> page, @Param("vo")TradeOrderPageReqVO pageReqVO);
 
-    List<TradeOrderRespVO> findOrderDetailByIds(@Param("ids")List<Long> orderIds);
+    List<TradeOrderRespVO> findOrderDetailByIds(@Param("ids")List<Long> orderIds, @Param("vo")TradeOrderPageReqVO pageReqVO);
 
     @TenantIgnore
     List<TradeOrderDO> getCanContractOrder();

+ 1 - 1
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/impl/TradeOrderServiceImpl.java

@@ -172,7 +172,7 @@ public class TradeOrderServiceImpl implements TradeOrderService {
         List<Long> orderIds = tradeOrderMapper.findOrderIdsByCondition(page, pageReqVO);
         List<TradeOrderRespVO> records = new ArrayList<>();
         if(!orderIds.isEmpty()){
-            records = tradeOrderMapper.findOrderDetailByIds(orderIds);
+            records = tradeOrderMapper.findOrderDetailByIds(orderIds, pageReqVO);
         }
 
         IPage<TradeOrderRespVO> iPage = page.setRecords( records);

+ 2 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/impl/OtcTradeOrderServiceImpl.java

@@ -1323,6 +1323,8 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         totalMap.setDeposi(totalMap1.getDeposi());
         totalMap.setDamaged(totalMap1.getDamaged());
         totalMap.setSupplementAmount(totalMap1.getSupplementAmount());
+        totalMap.setUnpaidAmount(totalMap1.getUnpaidAmount());
+        totalMap.setTotalNum(totalMap2.getTotalNum());
         totalMap.setAdultTotalNum(totalMap2.getAdultTotalNum());
         totalMap.setChildTotalNum(totalMap2.getChildTotalNum());
         totalMap.setBabyTotalNum(totalMap2.getBabyTotalNum());

+ 56 - 4
ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/order/TradeOrderMapper.xml

@@ -686,7 +686,32 @@
             AND exists (select 1 from trade_refund tr  where tr.order_id=td.id and tr.refund_status = 6 and tr.refund_time BETWEEN #{vo.orderRefundDateStart} and #{vo.orderRefundDateEnd} )
         </if>
 
-        ORDER BY td.create_time DESC
+        ORDER BY
+        <choose>
+            <!-- 有前端排序:只使用前端多字段排序 -->
+            <when test="vo.sortField != null and vo.sortField != '' and vo.sortOrder != null and vo.sortOrder != ''">
+                <foreach collection="vo.sortField.split(',')" index="index" item="field" separator=",">
+                    <choose>
+                        <when test="field == 'orderSort'">td.order_sort</when>
+                        <when test="field == 'sourceName'">td.source_id</when>
+                        <when test="field == 'voyage.name'">
+                            (SELECT pv.name FROM product_voyage pv WHERE pv.id = td.voyage_id AND pv.deleted = 0)
+                        </when>
+                        <when test="field == 'totalPerson'">
+                            (SELECT COUNT(DISTINCT v1.id)
+                            FROM trade_visitor v1
+                            WHERE v1.order_id = td.id
+                            AND v1.deleted = 0)
+                        </when>
+                    </choose>
+                    ${vo.sortOrder.split(',')[index]}
+                </foreach>
+            </when>
+            <!-- 无前端排序:默认排序 -->
+            <otherwise>
+                td.create_time DESC
+            </otherwise>
+        </choose>
     </select>
 
     <select id="findOrderDetailByIds"
@@ -725,7 +750,32 @@
             #{id}
         </foreach>
         GROUP BY td.id
-        ORDER BY td.create_time DESC
+        ORDER BY
+        <choose>
+            <!-- 有前端排序:只使用前端多字段排序 -->
+            <when test="vo.sortField != null and vo.sortField != '' and vo.sortOrder != null and vo.sortOrder != ''">
+                <foreach collection="vo.sortField.split(',')" index="index" item="field" separator=",">
+                    <choose>
+                        <when test="field == 'orderSort'">td.order_sort</when>
+                        <when test="field == 'sourceName'">td.source_id</when>
+                        <when test="field == 'voyage.name'">
+                            (SELECT pv.name FROM product_voyage pv WHERE pv.id = td.voyage_id AND pv.deleted = 0)
+                        </when>
+                        <when test="field == 'totalPerson'">
+                            (SELECT COUNT(DISTINCT v1.id)
+                            FROM trade_visitor v1
+                            WHERE v1.order_id = td.id
+                            AND v1.deleted = 0)
+                        </when>
+                    </choose>
+                    ${vo.sortOrder.split(',')[index]}
+                </foreach>
+            </when>
+            <!-- 无前端排序:默认排序 -->
+            <otherwise>
+                td.create_time DESC
+            </otherwise>
+        </choose>
     </select>
 
     <select id="getTradeOrderUserPage"
@@ -2802,7 +2852,8 @@
     </select>
     <select id="selectTotal1ByOrderIds"
             resultType="com.yc.ship.module.trade.controller.admin.order.vo.order.OrderTotalRespVO">
-        select sum(deposi) deposi, sum(damaged) damaged, sum(supplement_amount) supplement_amount, sum(pay_amount) pay_amount, sum(real_pay_amount) real_pay_amount from trade_order
+        select sum(deposi) deposi, sum(damaged) damaged, sum(supplement_amount) supplement_amount,
+               sum(pay_amount) pay_amount, sum(real_pay_amount) real_pay_amount,sum(pay_amount - real_pay_amount) unpaid_amount from trade_order
         where 1=1 and id in
         <foreach collection="orderIds" item="item" separator=","  open="(" close=")">
             #{item}
@@ -2836,7 +2887,8 @@
         ifnull( sum( CASE WHEN type = 'childTake' OR type = 'childNonTake' OR type = 'childPlus' THEN num ELSE 0 END ), 0 ) AS childTotalNum,
         ifnull( sum( CASE WHEN type = 'babyTake' OR type = 'babyNonTake' OR type = 'babyPlus' THEN num ELSE 0 END ), 0 ) AS babyTotalNum,
         ifnull( sum( CASE WHEN type = 'leader' THEN num ELSE 0 END ), 0 ) AS leaderTotalNum,
-        ifnull( sum( CASE WHEN type = 'with' THEN num ELSE 0 END ), 0 ) AS withTotalNum
+        ifnull( sum( CASE WHEN type = 'with' THEN num ELSE 0 END ), 0 ) AS withTotalNum,
+        ifnull( sum( num ), 0 ) AS totalNum
         FROM
             ( SELECT type, count( 1 ) num FROM trade_visitor WHERE deleted = 0
                                                              and order_id in