From db7fa6a91b9534ac90e219b6f554c54c43c83a5a Mon Sep 17 00:00:00 2001
From: liujie <liujie>
Date: 星期三, 16 八月 2023 09:28:15 +0800
Subject: [PATCH] update

---
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/OrderMapper.xml |  112 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 106 insertions(+), 6 deletions(-)

diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/OrderMapper.xml b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/OrderMapper.xml
index f465499..ed8b623 100644
--- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/OrderMapper.xml
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/OrderMapper.xml
@@ -59,6 +59,7 @@
         <result column="oldState" property="oldState"/>
         <result column="status" property="status" />
         <result column="createTime" property="createTime" />
+        <result column="routeRecord" property="routeRecord"/>
     </resultMap>
 
 
@@ -69,8 +70,8 @@
         b.avatar,
         a.userName,
         a.userPhone,
-        (select count(1) from t_order where userPhone = a.userPhone and state in (107, 108)) as orderTimes,
-        (select count(1) from t_order where userPhone = a.userPhone and state in (301)) as cancelTimes,
+        (select count(1) from t_order where userId = a.userId and state in (107, 108, 109)) as orderTimes,
+        (select count(1) from t_order where userId = a.userId and state in (301)) as cancelTimes,
         a.source,
         UNIX_TIMESTAMP(a.createTime) * 1000 as createTime,
         a.startAddress,
@@ -84,7 +85,7 @@
         a.startPrice
         from t_order a
         left join t_app_user b on (a.userId = b.id)
-        where a.`status` = 1 and a.hallOrder = 1 order by a.createTime desc
+        where a.`status` = 1 and a.hallOrder = 1 and a.state in (101, 201) order by a.createTime desc
     </select>
 
 
@@ -92,11 +93,12 @@
     <select id="queryOrderInfo" resultType="com.supersavedriving.driver.modular.system.warpper.OrderInfoWarpper">
         select
         a.id,
+        b.id as userId,
         b.avatar,
         a.userName,
         a.userPhone,
-        (select count(1) from t_order where userPhone = a.userPhone and state in (107, 108)) as orderTimes,
-        (select count(1) from t_order where userPhone = a.userPhone and state in (301)) as cancelTimes,
+        (select count(1) from t_order where userId = a.userId and state in (107, 108, 109)) as orderTimes,
+        (select count(1) from t_order where userId = a.userId and state in (301)) as cancelTimes,
         a.source,
         UNIX_TIMESTAMP(a.createTime) * 1000 as createTime,
         a.startAddress,
@@ -107,8 +109,9 @@
         a.endLng,
         a.estimatedPrice,
         a.estimatedMileage,
+        a.estimatedTime,
         a.startPrice,
-        a.waitTime,
+        a.waitTime + a.outWaitTime as waitTime,
         a.actualMileage,
         a.state,
         (UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(a.startTime)) / 60 as travelTime
@@ -116,4 +119,101 @@
         left join t_app_user b on (a.userId = b.id)
         where a.id = #{orderId}
     </select>
+
+
+    <select id="queryDriverOrderList" resultType="com.supersavedriving.driver.modular.system.warpper.DriverOrderListWarpper">
+        select
+        id,
+        '超省新代驾订单' as title,
+        UNIX_TIMESTAMP(createTime) * 1000 as createTime,
+        startAddress,
+        endAddress,
+        state,
+        source
+        from t_order where status = 1 and driverId = #{driverId}
+        <if test="null != state and 107 == state">
+            and state = #{state}
+        </if>
+        <if test="null != state and 109 == state">
+            and state in (108, 109)
+        </if>
+        <if test="null != state and 301 == state">
+            and state = #{state}
+        </if>
+        order by createTime desc limit #{pageNum}, #{pageSize}
+    </select>
+
+
+    <select id="queryInviteList" resultType="com.supersavedriving.driver.modular.system.warpper.InviteListWarpper">
+        select * from (
+        select
+        a.id,
+        a.nickname,
+        min(UNIX_TIMESTAMP(b.createTime) * 1000) as time,
+        1 as type
+        from t_app_user a
+        left join t_order b on (a.id = b.userId)
+        where a.`status` = 1 and a.inviterType = 2 and a.inviterId = #{driverId}
+        <if test="null != time and '' != time">
+            and DATE_FORMAT(b.createTime, '%Y年%m月') = #{time}
+        </if>
+        group by a.id, a.nickname
+
+        union all
+
+        select
+        a.id,
+        a.`name`,
+        min(UNIX_TIMESTAMP(b.createTime) * 1000) as time,
+        2 as type
+        from t_driver a
+        left join t_order b on (a.id = b.driverId)
+        where a.`status` = 1 and a.approvalStatus = 2 and a.inviterType = 2 and a.inviterId = #{driverId}
+        <if test="null != time and '' != time">
+            and DATE_FORMAT(b.createTime, '%Y年%m月') = #{time}
+        </if>
+        group by a.id, a.`name`
+        ) as aa where aa.time is not null order by aa.time desc limit #{pageNum}, #{pageSize}
+    </select>
+
+
+    <select id="queryDriverRank" resultType="com.supersavedriving.driver.modular.system.warpper.PerformanceRankingWarpper">
+        select
+        aa.driverId,
+        @ROW :=@ROW + 1 as rank,
+        aa.name,
+        UNIX_TIMESTAMP(aa.createTime) * 1000 as createTime,
+        aa.number as amountOfData
+        from (
+            select
+            a.driverId,
+            b.`name`,
+            MAX(a.createTime) as createTime,
+            count(1) as number
+            from t_order a
+            left join t_driver b on (a.driverId = b.id)
+            where a.state in (107, 108, 109) and a.`status` = 1
+            <if test="null != dayType and 1 == dayType"><!--天-->
+                <if test="null != time and '' != time">
+                    and DATE_FORMAT(a.createTime, '%Y年%m月%d日') = #{time}
+                </if>
+            </if>
+            <if test="null != dayType and 2 == dayType"><!--月-->
+                <if test="null != time and '' != time">
+                    and DATE_FORMAT(a.createTime, '%Y年%m月') = #{time}
+                </if>
+            </if>
+            <if test="null != dayType and 3 == dayType"><!--年-->
+                <if test="null != time and '' != time">
+                    and DATE_FORMAT(a.createTime, '%Y年') = #{time}
+                </if>
+            </if>
+            group by a.driverId,b.`name`
+        ) as aa,( SELECT @ROW := 0 ) AS itable order by aa.number desc
+    </select>
+
+
+    <update id="completeCollection">
+        update t_order set state = 108 where state = 107 and status = 1 and payType = 3
+    </update>
 </mapper>
\ No newline at end of file

--
Gitblit v1.7.1