From 6b9774009b899e4759a4d59aeea93aed49d9c6ee Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Tue, 10 Dec 2024 10:06:17 +0800 Subject: [PATCH] refactor(mall): 优化会员最后登录时间更新逻辑 --- src/main/resources/mapper/modules/MallMemberMapper.xml | 150 +++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 117 insertions(+), 33 deletions(-) diff --git a/src/main/resources/mapper/modules/MallMemberMapper.xml b/src/main/resources/mapper/modules/MallMemberMapper.xml index 104fa59..878390e 100644 --- a/src/main/resources/mapper/modules/MallMemberMapper.xml +++ b/src/main/resources/mapper/modules/MallMemberMapper.xml @@ -3,14 +3,17 @@ <mapper namespace="cc.mrbird.febs.mall.mapper.MallMemberMapper"> <select id="selectMallMemberListInPage" resultType="cc.mrbird.febs.mall.entity.MallMember"> - SELECT m.*,a.name referrerName,IFNULL(c.balance,0) balance,IFNULL(c.score,0) score,IFNULL(c.prize_score,0) prizeScore - ,d.description levelName + SELECT m.*,a.name referrerName,IFNULL(c.balance,0) balance,IFNULL(c.score,0) score,IFNULL(c.prize_score,0) prizeScore,IFNULL(c.commission,0) commission + ,vipConfig.name levelName FROM mall_member m left join mall_member a on m.referrer_id = a.invite_id LEFT JOIN mall_member_wallet c on c.member_id = m.id - LEFT JOIN data_dictionary_custom d on d.code = m.level and type='AGENT_LEVEL' + left join mall_vip_config vipConfig on m.level = vipConfig.code <where> <if test="record != null" > + <if test="record.birthdayQuery!=null"> + and date_format(m.birthday, '%m-%d') = date_format(#{record.birthdayQuery}, '%m-%d') + </if> <if test="record.name!=null and record.name!=''"> and m.name like concat('%', #{record.name},'%') </if> @@ -28,8 +31,16 @@ <if test="record.accountType != null" > and m.account_type = #{record.accountType} </if> + <if test="record.level!=null and record.level!=''"> + and m.level=#{record.level} + </if> + <if test="record.isSale!=null and record.isSale!=''"> + and m.is_sale=#{record.isSale} + </if> </if> </where> + GROUP BY + m.id, a.NAME, c.balance, c.score, c.prize_score, c.commission, vipConfig.NAME order by m.CREATED_TIME desc </select> @@ -56,6 +67,17 @@ GROUP BY a.id </select> + <select id="getMallMemberWalletById" resultType="cc.mrbird.febs.mall.vo.MallMemberVo"> + SELECT a.id, + a.name, + IFNULL(c.balance,0) balance, + IFNULL(c.score,0) score, + IFNULL(c.prize_score,0) prizeScore + FROM mall_member a + LEFT JOIN mall_member_wallet c on c.member_id = a.id + where a.id = #{id} + </select> + <select id="selectInfoByAccount" resultType="cc.mrbird.febs.mall.entity.MallMember"> select * from mall_member where phone=#{account} or email=#{account} or invite_id=#{account} </select> @@ -76,18 +98,18 @@ a.invite_id, 2 isCurrent, a.created_time, - p.prize_score, + a.avatar, + (select count(1) from mall_order_info orderInfo + where orderInfo.status in (2, 3, 4) and orderInfo.member_id=a.id) selfOrderCnt, (select sum(e.amount) from mall_order_info e inner join mall_member b on e.member_id=b.ID - inner join mall_order_item c on e.id = c.order_id and c.is_normal=2 where e.status in (2, 3, 4) and e.order_type=1 and (b.invite_id=a.invite_id or b.referrer_id=a.invite_id)) amount, (select count(1) from mall_member e inner join mall_order_info b on e.id=b.member_id and b.status in (2, 3, 4) - where e.invite_id=a.invite_id or e.referrer_id=a.invite_id) orderCnt, - (select count(1) from mall_member x where x.referrer_id=a.invite_id) cnt + where find_in_set(a.invite_id, e.referrer_ids) or a.invite_id=e.invite_id) orderCnt, + (select count(1) from mall_member x where find_in_set(a.invite_id, x.referrer_ids)) cnt from mall_member a - inner join mall_member_wallet p on a.id=p.member_id where a.referrer_id=#{inviteId} </select> @@ -316,35 +338,34 @@ </select> <!-- <select id="selectRankListInPage" resultType="cc.mrbird.febs.mall.entity.MallMember">--> -<!-- select * from (--> -<!-- select a.id, a.name, a.invite_id, a.avatar, sum(b.amount) amount,max(order_time) orderTime from mall_member a, mall_order_info b--> -<!-- where a.id=b.member_id and b.status = 4--> -<!-- <!– 日 –>--> -<!-- <if test="record.query == '1'">--> - -<!-- </if>--> -<!-- <!– 月 –>--> -<!-- <if test="record.query == '2'">--> -<!-- and date_format(#{record.createdTime},'%Y-%m') = date_format(b.order_time,'%Y-%m')--> -<!-- </if>--> -<!-- <if test="record.amount != null">--> -<!-- and amount = #{record.amount}--> -<!-- </if>--> -<!-- group by a.id--> -<!-- ) a order by amount desc, a.orderTime desc--> +<!-- select a.*, b.*--> +<!-- from mall_member a--> +<!-- inner join (--> +<!-- select b.referrer_id refererId, sum(a.amount) amount, max(a.order_time) orderTime--> +<!-- from mall_order_info a--> +<!-- inner join mall_member b on a.member_id=b.ID--> +<!-- inner join mall_order_item c on a.id = c.order_id and c.is_normal=2--> +<!-- where a.status in (2, 3, 4) and a.order_type=1--> +<!-- <!– 月 –>--> +<!-- <if test="record.query == '2'">--> +<!-- and date_format(#{record.createdTime},'%Y-%m') = date_format(b.order_time,'%Y-%m')--> +<!-- </if>--> +<!-- group by b.referrer_id--> +<!-- ) b on a.invite_id=b.refererId--> +<!-- order by b.amount desc, b.orderTime desc--> <!-- </select>--> + <select id="selectRankListInPage" resultType="cc.mrbird.febs.mall.entity.MallMember"> select a.*, b.* from mall_member a inner join ( - select b.referrer_id refererId, sum(a.amount) amount, max(a.order_time) orderTime - from mall_order_info a + select b.referrer_id refererId, sum(a.amount) amount, max(a.pay_time) orderTime + from mall_achieve_record a inner join mall_member b on a.member_id=b.ID - inner join mall_order_item c on a.id = c.order_id and c.is_normal=2 - where a.status in (2, 3, 4) and a.order_type=1 + where 1=1 <!-- 月 --> <if test="record.query == '2'"> - and date_format(#{record.createdTime},'%Y-%m') = date_format(b.order_time,'%Y-%m') + and date_format(#{record.createdTime},'%Y-%m') = date_format(a.achieve_time,'%Y-%m') </if> group by b.referrer_id ) b on a.invite_id=b.refererId @@ -353,15 +374,14 @@ <select id="selectAchieveByMemberId" resultType="java.math.BigDecimal"> select IFNULL(sum(IFNULL(a.amount, 0)), 0) - from mall_order_info a + from mall_achieve_record a inner join mall_member b on a.member_id=b.ID - inner join mall_order_item c on a.id = c.order_id and c.is_normal=2 - where a.status in (2, 3, 4) and a.order_type=1 + where 1=1 <if test="type == 1"> and b.invite_id=#{inviteId} </if> <if test="type == 2"> - and b.referrer_id=#{inviteId} + and find_in_set(#{inviteId}, b.referrer_ids) </if> </select> @@ -379,4 +399,68 @@ select * from mall_member where referrer_id=#{inviteId} and level != 'ZERO_LEVEL' </select> + + <select id="selectDirectorsOrStoreMaster" resultType="cc.mrbird.febs.mall.entity.MallMember"> + select * from mall_member + <where> + 1=1 + <if test="type == 1"> + and director = 1 + </if> + <if test="type == 2"> + and store_master = 1 + </if> + </where> + </select> + + <select id="selectMemberWithLevel" resultType="cc.mrbird.febs.mall.entity.MallMember"> + select * from mall_member + where level=#{level} + </select> + + <select id="selectMemberByOpenId" resultType="cc.mrbird.febs.mall.entity.MallMember"> + SELECT a.* + FROM mall_member a + where a.open_id = #{openId} limit 1 + </select> + + <select id="getsalemanRuleList" resultType="cc.mrbird.febs.mall.entity.MallMember"> + SELECT m.*, + b.name couponName + FROM mall_member m + LEFT Join saleman_coupon a on m.id = a.member_id + LEFT Join mall_goods_coupon b on b.id = a.coupon_id and b.state = 2 + <where> + <if test="record != null" > + <if test="record.name!=null and record.name!=''"> + and m.name like concat('%', #{record.name},'%') + </if> + <if test="record.account!=null and record.account!=''"> + and m.phone like concat('%', #{record.account},'%') + </if> + <if test="record.isSale!=null and record.isSale!=''"> + and m.is_sale=#{record.isSale} + </if> + </if> + </where> + order by m.CREATED_TIME desc + </select> + + + + <update id="updateReferrerId"> + update mall_member + set referrer_id = '', + referrer_ids = '' + where id = #{id} + </update> + + + + <update id="updateLastLogin"> + update mall_member + set last_login_time = #{lastLogin} + where id = #{id} + </update> + </mapper> \ No newline at end of file -- Gitblit v1.9.1