From 84102b8a1e4e716ffb8041e3a20a11e9e0b2651a Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Fri, 06 Jan 2023 15:00:00 +0800 Subject: [PATCH] 20221227 充值归集 --- src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java | 2 + src/main/resources/mapper/modules/MallMemberMapper.xml | 47 +++++++++++++---------- src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java | 16 +++++++- 3 files changed, 43 insertions(+), 22 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java index b9d27a0..5631fd9 100644 --- a/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java +++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java @@ -102,4 +102,6 @@ void updateLevelStatusById(@Param("levelStatus")int i, @Param("id")Long memberId); IPage<MemberCoinChargeEntity> selectMemberChargeListInPage(Page<MemberCoinChargeEntity> page, @Param("record")MemberCoinChargeEntity memberCoinChargeEntity); + + BigDecimal getSumAmountByMemberId(@Param("memberId")Long memberId); } diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java index 61152cf..09a2aaf 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java @@ -224,6 +224,7 @@ if(CollUtil.isNotEmpty(records)){ for(AdminAgentVo adminAgentVo : records){ String inviteId = adminAgentVo.getInviteId(); + //直接下级 List<MallMember> mallMembers = mallMemberMapper.selectChildAgentListByInviteId(inviteId); adminAgentVo.setMemberNum(CollUtil.isEmpty(mallMembers) ? 0 : mallMembers.size()); @@ -231,6 +232,17 @@ //获取总数 List<MallMember> allMallMembers =mallMemberMapper.selectAllChildAgentListByInviteId(inviteId); adminAgentVo.setAllMemberNum(CollUtil.isEmpty(allMallMembers) ? 0 : allMallMembers.size()); + + //团队业绩 + BigDecimal amount = BigDecimal.ZERO; + if(CollUtil.isNotEmpty(allMallMembers)){ + for(MallMember teamMember : allMallMembers){ + Long memberId = teamMember.getId(); + BigDecimal sumAmount = mallMemberMapper.getSumAmountByMemberId(memberId); + amount = amount.add(sumAmount); + } + } + adminAgentVo.setAmount(amount); } } return adminAgentVos; @@ -277,8 +289,8 @@ List<AdminAgentMemberVo> records = adminAgentMemberVos.getRecords(); if(CollUtil.isNotEmpty(records)){ for(AdminAgentMemberVo agentMemberVo : records){ - String inviteId = agentMemberVo.getInviteId(); - BigDecimal amount = mallMemberMapper.getAgentTeamAmountByInviteId(inviteId); + Long agentMemberVoId = agentMemberVo.getId(); + BigDecimal amount = mallMemberMapper.getSumAmountByMemberId(agentMemberVoId); agentMemberVo.setAmount(amount); } } diff --git a/src/main/resources/mapper/modules/MallMemberMapper.xml b/src/main/resources/mapper/modules/MallMemberMapper.xml index ba901e6..c320725 100644 --- a/src/main/resources/mapper/modules/MallMemberMapper.xml +++ b/src/main/resources/mapper/modules/MallMemberMapper.xml @@ -135,22 +135,11 @@ <select id="getAgentListInPage" resultType="cc.mrbird.febs.mall.vo.AdminAgentVo"> - SELECT m.*,a.description levelName, - ifnull(( - SELECT - sum(b.amount) - FROM - mall_member e - INNER JOIN mall_order_info b ON e.id = b.member_id - AND b.STATUS = 4 and b.comment_state = 2 - WHERE - e.invite_id = m.invite_id - OR e.referrer_id = m.invite_id - or find_in_set(m.invite_id, e.referrer_ids) - ),0) amount + SELECT m.*,a.description levelName FROM mall_member m left join data_dictionary_custom a on a.description = m.level <where> + 1= 1 and m.level != 'VIP' <if test="record != null" > <if test="record.name!=null and record.name!=''"> @@ -213,13 +202,11 @@ SELECT ifnull(sum(b.amount),0) FROM - mall_member e - INNER JOIN mall_order_info b ON e.id = b.member_id - AND b.STATUS = 4 + mall_order_info b + INNER JOIN mall_member e ON e.id = b.member_id and b.comment_state = 2 WHERE e.invite_id = #{inviteId} - OR e.referrer_id = #{inviteId} or find_in_set(#{inviteId}, e.referrer_ids) </select> @@ -356,15 +343,24 @@ <select id="selectAchieveByMemberId" 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 1=1 - and a.status = 4 and a.comment_state = 2 <if test="type == 1"> and b.invite_id=#{inviteId} </if> <if test="type == 2"> - and (find_in_set(#{inviteId}, b.referrer_ids) or b.invite_id=#{inviteId}) + AND a.member_id IN ( + SELECT + id + FROM + mall_member + WHERE + 1 = 1 + AND ( + find_in_set(#{inviteId}, referrer_ids) + OR invite_id = #{inviteId} + ) + ) </if> </select> @@ -465,4 +461,15 @@ </where> order by a.CREATED_TIME desc </select> + + <select id="getSumAmountByMemberId" resultType="java.math.BigDecimal"> + SELECT + IFNULL(sum(IFNULL(a.amount, 0)), 0) + FROM + mall_order_info a + WHERE + 1 = 1 + AND a.comment_state = 2 + and a.member_id = #{memberId} + </select> </mapper> \ No newline at end of file -- Gitblit v1.9.1