From 7c6f033b8754b07bf5c75ae8745a982d76f9abb4 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Fri, 23 Sep 2022 19:28:14 +0800
Subject: [PATCH] Merge branch 'group_buy' of http://120.27.238.55:7000/r/xc-mall into group_buy

---
 src/main/resources/mapper/modules/MallOrderInfoMapper.xml |  265 +++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 226 insertions(+), 39 deletions(-)

diff --git a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
index 4a1e626..9babf59 100644
--- a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
+++ b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
@@ -15,9 +15,18 @@
             b.sku_image,
             b.cnt,
             b.price,
-            b.amount
+            b.amount,
+            c.name leader_name,
+            c.phone leader_phone,
+            c.address_pic,
+            c.address_area,
+            c.province,
+            c.city,
+            c.township,
+            c.detail_address
         from mall_order_info a
         inner join mall_order_item b on a.id=b.order_id
+        inner join mall_team_leader c on a.take_unique_code=c.unique_code
         <where>
             a.del_flag=2
             <if test="record.status == 4 and record.status != 0">
@@ -35,23 +44,33 @@
             <if test="record.orderType != null">
                 and a.order_type=#{record.orderType}
             </if>
+            <if test="record.deliveryType != null">
+                and a.delivery_type=#{record.deliveryType}
+            </if>
+            <if test="record.takeUniqueCode != null">
+                and a.take_unique_code=#{record.takeUniqueCode}
+            </if>
         </where>
         order by a.created_time desc
     </select>
 
-    <select id="selectOrderByMemberIdAndId" resultType="cc.mrbird.febs.mall.entity.MallOrderInfo">
-        select * from mall_order_info where member_id=#{memberId} and id=#{id}
+    <select id="selectOrderByMemberIdAndId" resultMap="OrderInfoMap">
+        select
+            a.*,
+            b.goods_name from mall_order_info a
+                          inner join mall_order_item b on a.id=b.order_id where a.member_id=#{memberId} and a.id=#{id}
     </select>
 
     <select id="selectOrderListInPage" resultType="cc.mrbird.febs.mall.vo.AdminMallOrderInfoVo">
-        select *,
+        select a.*,
                b.name memberName,
                b.bind_phone memberBindPhone,
-               b.phone memberPhone
+               b.phone memberPhone,
+               c.name leaderName
         from mall_order_info a
         left join mall_member b on a.member_id = b.id
+        left join mall_team_leader c on a.take_unique_code = c.unique_code
         <where>
-            a.del_flag=2
             <if test="record != null">
                 <if test="record.payResult != null and record.payResult != ''">
                     and a.pay_result = #{record.payResult}
@@ -62,15 +81,30 @@
                 <if test="record.status != null and record.status != ''">
                     and a.status = #{record.status}
                 </if>
+                <if test="record.deliveryType != null and record.deliveryType != ''">
+                    and a.delivery_type = #{record.deliveryType}
+                </if>
+                <if test="record.isHome != null and record.isHome != ''">
+                    and a.is_home = #{record.isHome}
+                </if>
                 <if test="record.orderNo != null and record.orderNo != ''">
                     and a.order_no like CONCAT('%', CONCAT(#{record.orderNo}, '%'))
                 </if>
                 <if test="record.name != null and record.name != ''">
                     and b.name like CONCAT('%', CONCAT(#{record.name}, '%'))
                 </if>
+                <if test="record.uniqueCode != null and record.uniqueCode != ''">
+                    and a.take_unique_code = #{record.uniqueCode}
+                </if>
+                <if test="record.startTime != null and record.startTime != ''">
+                    and a.order_time &gt;= #{record.startTime}
+                </if>
+                <if test="record.endTime != null and record.endTime != ''">
+                    and a.order_time &lt;= #{record.endTime}
+                </if>
             </if>
         </where>
-        order by a.created_time desc
+        GROUP BY a.id  order by a.created_time desc
     </select>
 
     <select id="getMallOrderInfoById" resultType="cc.mrbird.febs.mall.vo.AdminMallOrderVo">
@@ -96,8 +130,25 @@
         <result column="longitude" property="longitude" />
         <result column="latitude" property="latitude" />
         <result column="order_type" property="orderType" />
+        <result column="comment_state" property="commentState" />
+        <result column="carriage" property="carriage" />
         <result column="remark" property="remark" />
+        <result column="take_code" property="takeCode" />
+        <result column="take_unique_code" property="takeUniqueCode" />
+        <result column="delivery_state" property="deliveryState" />
+        <result column="is_home" property="isHome" />
         <result column="del_flag" property="delFlag" />
+        <result column="leader_name" property="leaderName" />
+        <result column="leader_phone" property="leaderPhone" />
+        <result column="address_pic" property="addressPic" />
+        <result column="address_area" property="addressArea" />
+        <result column="province" property="province" />
+        <result column="leaderLongitude" property="leaderLongitude" />
+        <result column="leaderLatitude" property="leaderLatitude" />
+        <result column="province" property="province" />
+        <result column="city" property="city" />
+        <result column="township" property="township" />
+        <result column="detail_address" property="detailAddress" />
         <collection property="items" ofType="cc.mrbird.febs.mall.entity.MallOrderItem">
             <id property="id" column="item_id" />
             <result property="orderId" column="order_id" />
@@ -110,41 +161,41 @@
             <result property="cnt" column="cnt" />
             <result property="price" column="price" />
             <result property="amount" column="amount" />
+            <result property="isNormal" column="is_normal" />
+            <result property="state" column="state" />
         </collection>
     </resultMap>
 
-    <select id="selectApiOrderListInPage" resultMap="OrderInfoMap">
+    <select id="selectApiOrderListInPage" resultType="cc.mrbird.febs.mall.entity.MallOrderInfo">
         select
                a.*,
-               b.id item_id,
-               b.order_id,
-               b.goods_id,
-               b.sku_id,
-               b.goods_name,
-               b.style_name,
-               b.sku_name,
-               b.sku_image,
-               b.cnt,
-               b.price,
-               b.amount
+               c.name leaderName,
+               c.phone leaderPhone,
+               c.address_pic addressPic,
+               c.address_area addressArea,
+               c.province,
+               c.city,
+               c.township,
+               c.detail_address detailAddress
         from mall_order_info a
-         inner join mall_order_item b on a.id=b.order_id
+        inner join mall_order_item b on a.id=b.order_id
+        inner join mall_team_leader c on a.take_unique_code=c.unique_code
         <where>
             a.del_flag=2
-            <if test="record.query != null and record.query != ''">
-                and (b.goods_name like CONCAT('%', CONCAT(#{record.query}, '%')) or b.style_name like CONCAT('%', CONCAT(#{record.query}, '%')) or b.sku_name like CONCAT('%', CONCAT(#{record.query}, '%')))
+            <if test="record.memberId != null">
+                and a.member_id=#{record.memberId}
             </if>
             <if test="record.status == 4 and record.status != 0">
-                and a.status in (5,6)
+                and a.status = 4
             </if>
             <if test="record.status != 4 and record.status != 0 and record.status != 5">
                 and a.status = #{record.status}
             </if>
             <if test="record.status == 5">
-                and a.status = 7
+                and a.status = 7 or b.state in (2,3)
             </if>
-            <if test="record.memberId != null">
-                and a.member_id=#{record.memberId}
+            <if test="record.query != null and record.query != ''">
+                and (b.goods_name like CONCAT('%', CONCAT(#{record.query}, '%')) or b.style_name like CONCAT('%', CONCAT(#{record.query}, '%')) or b.sku_name like CONCAT('%', CONCAT(#{record.query}, '%')))
             </if>
             <if test="record.orderType != null">
                 and a.order_type=#{record.orderType}
@@ -164,21 +215,35 @@
             b.style_name,
             b.sku_name,
             b.sku_image,
+            b.state,
             b.cnt,
             b.price,
-            b.amount
+            b.amount,
+            b.is_normal,
+            c.name leader_name,
+            c.phone leader_phone,
+            c.address_pic,
+            c.address_area,
+            c.province,
+            c.city,
+            c.township,
+            c.longitude leaderLongitude,
+            c.latitude leaderLatitude,
+            c.detail_address
         from mall_order_info a
              inner join mall_order_item b on a.id=b.order_id
+             inner join mall_team_leader c on a.take_unique_code=c.unique_code
         where a.id=#{id}
     </select>
 
     <select id="selectMemberOrderStatusCnt" resultType="java.util.Map">
         select
-            status,
+            a.status,
             count(1) cnt
-        from mall_order_info
-        where del_flag=2 and member_id=#{memberId}
-        group by status
+        from mall_order_info a
+                 inner join mall_team_leader c on a.take_unique_code=c.unique_code
+        where a.del_flag=2 and a.member_id=#{memberId}
+        group by a.status
     </select>
 
     <select id="getMallOrderDetailById" resultType="cc.mrbird.febs.mall.vo.AdminOrderDetailVo">
@@ -191,6 +256,10 @@
 
     <select id="selectOrderInfoByStatus" resultType="cc.mrbird.febs.mall.entity.MallOrderInfo">
         select * from mall_order_info where status=#{status}
+    </select>
+
+    <select id="selectOrderInfoUpTime" resultType="cc.mrbird.febs.mall.entity.MallOrderInfo">
+        select * from mall_order_info where status=#{status} and now() > date_add(order_time,interval 15 minute)
     </select>
 
     <select id="selectCntDirectOrTeam" resultType="java.lang.Integer">
@@ -229,7 +298,7 @@
             and member_id=#{memberId}
         </if>
         <if test="date != null">
-            and date_format(a.receving_time, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d')
+            and date_format(a.receiving_time, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d')
         </if>
     </select>
 
@@ -237,22 +306,140 @@
         select IFNULL(sum(IFNULL(b.amount,0) - IFNULL(b.cost_price*b.cnt, 0)),0)
         from mall_order_info a
         inner join mall_order_item b on a.id=b.order_id
-        where a.status in (2, 3, 4) and a.is_normal = 2 and a.order_type=1
+        where a.order_type=1
+        <if test="isNormal == 2">
+            and a.status in (2, 3, 4) and b.is_normal = 2 and b.has_settle=1
+        </if>
+        <if test="isNormal == 1">
+            and a.status=4 and b.is_normal = 1 and b.has_settle=1
+        </if>
         <if test="member != null">
             and member_id=#{memberId}
         </if>
-        <if test="date != null and type == 'D'">
-            and date_format(a.receving_time, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d')
+        <if test='date != null and dateType == "D"'>
+            and date_format(a.pay_time, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d')
         </if>
-        <if test="date != null and type == 'M'">
-            and date_format(a.receving_time, '%Y-%m') = date_format(#{date}, '%Y-%m')
+        <if test='date != null and dateType == "M"'>
+            and date_format(a.pay_time, '%Y-%m') = date_format(#{date}, '%Y-%m')
         </if>
-        <if test="date != null and type == 'Y'">
-            and date_format(a.receving_time, '%Y') = date_format(#{date}, '%Y')
+        <if test='date != null and dateType == "Y"'>
+            and date_format(a.pay_time, '%Y') = date_format(#{date}, '%Y')
         </if>
     </select>
 
     <select id="selectByOrderNo" resultType="cc.mrbird.febs.mall.entity.MallOrderInfo">
         select * from mall_order_info where order_no=#{orderNo}
     </select>
+
+    <update id="updateOrderConfirmStatus">
+        update mall_order_info
+        set status=4,
+            receiving_time=#{updateTime}
+        where status=3 and date_format(pay_time, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d')
+    </update>
+
+    <select id="selectOrderInfoWithNormalGoods" resultMap="OrderInfoMap">
+        select * from mall_order_info a
+        inner join mall_order_item b on a.id=b.order_id and b.is_normal=1
+        where date_format(pay_time, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d')
+    </select>
+
+    <select id="selectSumAmountByPayMethodAndStatue" resultType="java.math.BigDecimal">
+        select IFNULL(sum(IFNULL(amount,0)),0) from mall_order_info
+        where pay_method = #{payMethod} and status = #{statue}
+    </select>
+
+    <update id="updateOrderStateAndDeliveryState">
+        update mall_order_info
+        set status = #{orderState},
+            delivery_state = #{deliveryState}
+        where id = #{orderId}
+    </update>
+
+    <select id="selectMemberOrderStatusCntByUniquecode" resultType="java.util.Map">
+        select
+            status,
+            count(1) cnt
+        from mall_order_info
+        where del_flag = 2 and take_unique_code = #{uniqueCode}
+        group by status
+    </select>
+
+    <select id="selectOrderByStatusAndPayTime" resultType="cc.mrbird.febs.mall.entity.MallOrderInfo">
+        select * from mall_order_info where status=#{status}
+         and date_format(pay_time, '%Y-%m-%d') = date_format(#{paytime}, '%Y-%m-%d')
+    </select>
+
+    <resultMap id="NewOrderInfoMap" type="cc.mrbird.febs.mall.entity.MallOrderInfo">
+        <id column="id" property="id" />
+        <result column="order_no" property="orderNo" />
+        <result column="member_id" property="memberId" />
+        <result column="order_time" property="orderTime" />
+        <result column="pay_time" property="payTime" />
+        <result column="amount" property="amount" />
+        <result column="pay_method" property="payMethod" />
+        <result column="pay_order_no" property="payOrderNo" />
+        <result column="pay_result" property="payResult" />
+        <result column="status" property="status" />
+        <result column="cancel_type" property="cancelType" />
+        <result column="name" property="name" />
+        <result column="phone" property="phone" />
+        <result column="address" property="address" />
+        <result column="longitude" property="longitude" />
+        <result column="latitude" property="latitude" />
+        <result column="order_type" property="orderType" />
+        <result column="comment_state" property="commentState" />
+        <result column="carriage" property="carriage" />
+        <result column="remark" property="remark" />
+        <result column="take_code" property="takeCode" />
+        <result column="take_unique_code" property="takeUniqueCode" />
+        <result column="delivery_state" property="deliveryState" />
+        <result column="is_home" property="isHome" />
+        <result column="del_flag" property="delFlag" />
+        <result column="leader_name" property="leaderName" />
+        <result column="leader_phone" property="leaderPhone" />
+        <result column="address_pic" property="addressPic" />
+        <result column="address_area" property="addressArea" />
+        <result column="province" property="province" />
+        <result column="leaderLongitude" property="leaderLongitude" />
+        <result column="leaderLatitude" property="leaderLatitude" />
+        <result column="province" property="province" />
+        <result column="city" property="city" />
+        <result column="township" property="township" />
+        <result column="detail_address" property="detailAddress" />
+    </resultMap>
+
+    <select id="selectNewApiOrderListInPage" resultMap="NewOrderInfoMap">
+        select
+        a.*,
+        c.name leader_name,
+        c.phone leader_phone,
+        c.address_pic,
+        c.address_area,
+        c.province,
+        c.city,
+        c.township,
+        c.detail_address
+        from mall_order_info a
+        inner join mall_team_leader c on a.take_unique_code=c.unique_code
+        <where>
+            a.del_flag=2
+            <if test="record.memberId != null">
+                and a.member_id=#{record.memberId}
+            </if>
+            <if test="record.status == 4 and record.status != 0">
+                and a.status = 4
+            </if>
+            <if test="record.status != 4 and record.status != 0 and record.status != 5">
+                and a.status = #{record.status}
+            </if>
+            <if test="record.status == 5">
+                and a.status = 7 or b.state in (2,3)
+            </if>
+            <if test="record.orderType != null">
+                and a.order_type=#{record.orderType}
+            </if>
+        </where>
+        order by a.created_time desc
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1