From 46c292cfb644ad7849ca31a07ec3d68616a365b0 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Fri, 16 May 2025 16:26:32 +0800
Subject: [PATCH] feat(mall): 添加会员等级和分销等级字段
---
src/main/resources/mapper/modules/MallOrderInfoMapper.xml | 340 +++++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 298 insertions(+), 42 deletions(-)
diff --git a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
index 449790c..c310823 100644
--- a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
+++ b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
@@ -35,23 +35,32 @@
<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,
+ (select member.name from mall_member member where member.invite_id = b.referrer_id) refererName
from mall_order_info a
- left join mall_member b on a.member_id = b.id
+ inner join mall_member b on a.member_id = b.id
<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 +71,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 >= #{record.startTime}
+ </if>
+ <if test="record.endTime != null and record.endTime != ''">
+ and a.order_time <= #{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">
@@ -84,6 +108,7 @@
<result column="member_id" property="memberId" />
<result column="order_time" property="orderTime" />
<result column="pay_time" property="payTime" />
+ <result column="score_amount" property="scoreAmount" />
<result column="amount" property="amount" />
<result column="pay_method" property="payMethod" />
<result column="pay_order_no" property="payOrderNo" />
@@ -96,9 +121,26 @@
<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="is_free" property="isFree" />
<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" />
@@ -111,41 +153,37 @@
<result property="cnt" column="cnt" />
<result property="price" column="price" />
<result property="amount" column="amount" />
+ <result property="isNormal" column="is_normal" />
+ <result property="memberInviteId" column="member_invite_id" />
+ <result property="memberCouponId" column="member_coupon_id" />
+ <result property="state" column="state" />
+ <result property="itemScoreAmount" column="item_score_amount" />
+ <result property="itemAmount" column="item_amount" />
+ <result property="itemScorePrice" column="item_score_price" />
</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
+ a.*
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
<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}
@@ -165,25 +203,36 @@
b.style_name,
b.sku_name,
b.sku_image,
+ b.state,
b.cnt,
b.price,
- b.amount
+ b.amount,
+ b.amount as item_amount ,
+ b.score_amount as item_score_amount ,
+ FLOOR((c.original_price * d.static_prop)/100) as item_score_price ,
+ b.member_invite_id,
+ b.member_coupon_id,
+ b.is_normal
from mall_order_info a
- inner join mall_order_item b on a.id=b.order_id
+ left join mall_order_item b on a.id=b.order_id
+ left join mall_goods_sku c on c.id=b.sku_id
+ left join mall_goods d on d.id=b.goods_id
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
+ where a.del_flag=2 and a.member_id=#{memberId} and order_type = 1
+ group by a.status
</select>
<select id="getMallOrderDetailById" resultType="cc.mrbird.febs.mall.vo.AdminOrderDetailVo">
- select * from mall_order_info a where a.id = #{id}
+ select a.*,b.area addressArea,b.address addressInfo from mall_order_info a
+ left join mall_address_info b on a.address_id = b.id
+ where a.id = #{id}
</select>
<select id="getMallOrderItemByOrderId" resultType="cc.mrbird.febs.mall.entity.MallOrderItem">
@@ -192,6 +241,14 @@
<select id="selectOrderInfoByStatus" resultType="cc.mrbird.febs.mall.entity.MallOrderInfo">
select * from mall_order_info where status=#{status}
+ </select>
+
+ <select id="selectOrderInfoByStatusAndIsInvoice" resultType="cc.mrbird.febs.mall.entity.MallOrderInfo">
+ select * from mall_order_info where status = #{status} and is_invoice = #{isInvoice}
+ </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 1440 minute)
</select>
<select id="selectCntDirectOrTeam" resultType="java.lang.Integer">
@@ -230,7 +287,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>
@@ -238,22 +295,221 @@
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="score_amount" property="scoreAmount" />
+ <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="is_free" property="isFree" />
+ <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" />
+ <result column="express_no" property="expressNo" />
+ <collection property="items" ofType="cc.mrbird.febs.mall.entity.MallOrderItem">
+ <id property="id" column="item_id" />
+ <result property="orderId" column="order_id" />
+ <result property="goodsId" column="goods_id" />
+ <result property="skuId" column="sku_id" />
+ <result property="goodsName" column="goods_name" />
+ <result property="itemScoreAmount" column="item_score_amount" />
+ <result property="itemAmount" column="item_amount" />
+ <result property="itemScorePrice" column="item_score_price" />
+ <result property="goodsName" column="goods_name" />
+ <result property="styleName" column="style_name" />
+ <result property="skuName" column="sku_name" />
+ <result property="skuImage" column="sku_image" />
+ <result property="cnt" column="cnt" />
+ <result property="price" column="price" />
+ <result property="amount" column="amount" />
+ <result property="isNormal" column="is_normal" />
+ <result property="memberInviteId" column="member_invite_id" />
+ <result property="memberCouponId" column="member_coupon_id" />
+ <result property="state" column="state" />
+ </collection>
+ </resultMap>
+
+ <select id="selectNewApiOrderListInPage" resultMap="NewOrderInfoMap">
+ select
+ a.* ,
+ b.* ,
+ b.amount as item_amount ,
+ b.score_amount as item_score_amount ,
+ FLOOR((c.original_price * d.static_prop)/100) as item_score_price ,
+ express.express_no
+ from mall_order_info a
+ left join mall_express_info express on a.id=express.order_id
+ left join mall_order_item b on a.id=b.order_id
+ left join mall_goods_sku c on c.id=b.sku_id
+ left join mall_goods d on d.id=b.goods_id
+ <where>
+ a.del_flag=2
+ <if test="record.memberId != null">
+ and a.member_id=#{record.memberId}
+ </if>
+ <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.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>
+
+ <select id="selectByIdAndTakeUniqueCode" resultType="cc.mrbird.febs.mall.entity.MallOrderInfo">
+ select * from mall_order_info where id = #{orderId} and take_unique_code = #{takeUniqueCode}
+ </select>
+
+ <select id="selectAllOrderInfoByIdAndTakeUniqueCode" resultMap="OrderInfoMap">
+ select
+ a.*,
+ b.goods_name,
+ b.sku_name,
+ b.cnt,
+ b.price,
+ b.amount
+ from mall_order_info a
+ inner join mall_order_item b on a.id=b.order_id
+ where a.del_flag=2 and a.id = #{orderId}
+ order by a.created_time desc
+ </select>
+
+ <select id="getGoodsStatisticsInPage" resultType="cc.mrbird.febs.mall.vo.AdminGoodsStatisticsVo">
+ select
+ goods_name goodsName,
+ SUM(cnt) goodsCnt
+ from mall_order_item
+ <where>
+ 1=1
+ <if test="record.orderIdsStr != null">
+ and order_id in
+ <foreach collection="record.orderIdsStr" item="id" index="index" open="(" close=")" separator=",">
+ #{id}
+ </foreach>
+ </if>
+ </where>
+ GROUP BY goods_id
+ ORDER BY goods_id desc
+ </select>
+
+ <select id="selectAmountOrTeamAmount" resultType="java.math.BigDecimal">
+ select IFNULL(sum(IFNULL(a.amount,0)),0) from mall_order_info a
+ inner join mall_member b on a.member_id=b.ID
+ <where>
+ a.status in (2,3,4)
+ <if test="type == 1">
+ and b.invite_id=#{inviteId}
+ </if>
+ <if test="type == 2">
+ and FIND_IN_SET(#{inviteId},b.referrer_ids)
+ </if>
+ </where>
+ </select>
+
+ <select id="selectBypayOrderNo" resultType="cc.mrbird.febs.mall.entity.MallOrderInfo">
+ select * from mall_order_info where pay_order_no = #{payOrderNo}
+ </select>
</mapper>
\ No newline at end of file
--
Gitblit v1.9.1