From 9b51a95fa8bc9b3a86108c6900e17fc55f8db467 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Mon, 19 May 2025 17:02:07 +0800 Subject: [PATCH] refactor(vip): 优化积分和返佣计算逻辑 --- src/main/resources/mapper/modules/MallSalesmanMapper.xml | 210 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 210 insertions(+), 0 deletions(-) diff --git a/src/main/resources/mapper/modules/MallSalesmanMapper.xml b/src/main/resources/mapper/modules/MallSalesmanMapper.xml index dbe601e..994a14b 100644 --- a/src/main/resources/mapper/modules/MallSalesmanMapper.xml +++ b/src/main/resources/mapper/modules/MallSalesmanMapper.xml @@ -26,4 +26,214 @@ where a.id = #{memberId} </select> + <select id="selectAddressAmountListInPage" resultType="cc.mrbird.febs.mall.vo.AdminMallAddressInfoVo"> + SELECT + a.province, + a.city + FROM mall_address_info a + <where> + <if test="record != null" > + <if test="record.province != null and record.province != ''"> + and a.province = #{record.province} + </if> + <if test="record.city != null and record.city != ''"> + and a.city = #{record.city} + </if> + </if> + </where> + group by a.city + </select> + + <select id="selectSumOrderAmountByProvinceAndCity" resultType="java.math.BigDecimal"> + select + IFNULL(sum(IFNULL(amount,0)),0) + from + mall_order_info + where + status in (2, 3, 4) + and order_type = 1 + and address_id in ( + select + a.id + from mall_address_info a + <where> + <if test="province != null and province != ''"> + and a.province = #{province} + </if> + <if test="city != null and city != ''"> + and a.city = #{city} + </if> + </where> + ) + </select> + + <select id="selectSumOrderCntByProvinceAndCity" resultType="java.lang.Integer"> + select + count(id) + from + mall_order_info + where + status in (2, 3, 4) + and order_type = 1 + and address_id in ( + select + a.id + from mall_address_info a + <where> + <if test="province != null and province != ''"> + and a.province = #{province} + </if> + <if test="city != null and city != ''"> + and a.city = #{city} + </if> + </where> + ) + </select> + + <select id="selectProvince" resultType="cc.mrbird.febs.mall.vo.AdminMallAddressInfoVo"> + SELECT + a.province + FROM mall_address_info a + group by a.province + </select> + + <select id="selectSalesmanAchieveListInPage" resultType="cc.mrbird.febs.mall.vo.AdminSalesmanAchieveVo"> + SELECT + a.province, + a.city, + a.name salesmanName, + a.id salesmanId, + (select count(b.id) from mall_member b where b.salesmans_id = a.id) memberCnt + FROM mall_salesman a + <where> + <if test="record != null" > + <if test="record.province != null and record.province != ''"> + and a.province = #{record.province} + </if> + <if test="record.city != null and record.city != ''"> + and a.city = #{record.city} + </if> + <if test="record.name != null and record.name != ''"> + and a.name like concat('%', #{record.name},'%') + </if> + </if> + </where> + ORDER BY + memberCnt DESC, a.province ASC + </select> + + <select id="selectSalesmanAchieveProvince" resultType="cc.mrbird.febs.mall.vo.AdminSalesmanAchieveVo"> + SELECT + a.province + FROM mall_salesman a + group by a.province + </select> + + <select id="selectAdminMemberOrderVoBySalesmanId" resultType="cc.mrbird.febs.mall.vo.AdminMemberOrderVo"> + select + c.name memberName, + c.phone memberPhone, + a.address memberAddress, + a.id orderId, + a.order_no orderNo, + a.CREATED_TIME createdTime, + a.amount orderAmount + from + mall_order_info a + left join mall_member c on a.member_id = c.id + where + a.status in (2, 3, 4) + and a.order_type = 1 + and a.member_id in ( + select + b.id + from mall_member b + where + b.salesmans_id = #{salesmanId} + ) + </select> + + <select id="selectAgentAchieveListInPage" resultType="cc.mrbird.febs.mall.vo.AdminMallAgentRecordVo"> + SELECT + a.province, + a.city, + a.name, + a.phone, + d.name nickname, + ( + select ifnull(sum(e.amount),0) + from mall_money_flow e + where e.flow_type = 1 + and e.type = 20 + and e.member_id = a.member_id + ) rechargeSendAmount, + ( + select count(b.id) + from mall_order_info b + <where> + b.member_id = a.member_id + and (b.status = 4) + <if test="record != null" > + <if test="record.startTime != null and record.startTime != ''"> + and b.order_time >= #{record.startTime} + </if> + <if test="record.endTime != null and record.endTime != ''"> + and b.order_time <= #{record.endTime} + </if> + </if> + </where> + ) orderCnt, + ( + select ifnull(sum(c.amount),0) + from mall_order_info c + + <where> + c.member_id = a.member_id + and (c.status = 4) + <if test="record != null" > + <if test="record.startTime != null and record.startTime != ''"> + and c.order_time >= #{record.startTime} + </if> + <if test="record.endTime != null and record.endTime != ''"> + and c.order_time <= #{record.endTime} + </if> + </if> + </where> + ) orderAmount + FROM mall_agent_record a + inner join mall_member d on a.member_id = d.id + <where> + <if test="record != null" > + <if test="record.province != null and record.province != ''"> + and a.province = #{record.province} + </if> + <if test="record.city != null and record.city != ''"> + and a.city = #{record.city} + </if> + <if test="record.name != null and record.name != ''"> + and a.name like concat('%', #{record.name},'%') + </if> + <if test="record.nickname != null and record.nickname != ''"> + and d.name like concat('%', #{record.nickname},'%') + </if> + </if> + </where> + ORDER BY orderAmount desc + </select> + + <select id="selectAgentAddressProvince" resultType="cc.mrbird.febs.mall.vo.AdminMallAgentRecordVo"> + SELECT + a.province + FROM mall_agent_record a + group by a.province + </select> + + <select id="selectAgentAddressCity" resultType="java.lang.String"> + SELECT + a.city + FROM mall_agent_record a + where a.province = #{province} + group by a.city + </select> + </mapper> \ No newline at end of file -- Gitblit v1.9.1