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); } 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); } } 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>