From b503bd98e6fecd4463906ee9317259d07ff9099c Mon Sep 17 00:00:00 2001 From: Vinjor Date: Fri, 6 Jun 2025 17:23:52 +0800 Subject: [PATCH] 1 --- .../service/impl/MemberUserServiceImpl.java | 45 ++++++++++++++++++- .../com/ruoyi/member/vo/MemberUserVO.java | 9 ++++ .../mapper/member/MemberUserMapper.xml | 4 ++ 3 files changed, 57 insertions(+), 1 deletion(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/member/service/impl/MemberUserServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/member/service/impl/MemberUserServiceImpl.java index 91ed438..38f508f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/member/service/impl/MemberUserServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/member/service/impl/MemberUserServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -25,11 +26,13 @@ import com.ruoyi.common.utils.StringUtils; import com.ruoyi.constant.DictConstants; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.member.domain.MemberCard; +import com.ruoyi.member.domain.MemberOrder; import com.ruoyi.member.domain.MemberUser; import com.ruoyi.member.mapper.MemberUserMapper; import com.ruoyi.member.service.*; import com.ruoyi.member.vo.MemberUserVO; import com.ruoyi.system.mapper.SysUserMapper; +import com.ruoyi.system.service.ISysRoleService; import com.ruoyi.system.service.ISysUserService; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -38,9 +41,11 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.math.BigDecimal; import java.math.BigInteger; import java.util.List; import java.util.Optional; +import java.util.Set; /** * 会员Service业务层处理 @@ -78,6 +83,10 @@ public class MemberUserServiceImpl extends ServiceImpl queryListPage(MemberUserVO pageReqVO, Page page) { - return memberUserMapper.queryListPage(pageReqVO, page); + LoginUser loginUser = SecurityUtils.getLoginUser(); + SysUser user = loginUser.getUser(); + // 管理员拥有所有权限 + if (!user.isAdmin()) { + Set strings = roleService.selectRolePermissionByUserId(user.getUserId()); + if (strings.contains("xsry")){ + pageReqVO.setUserId(user.getUserId()); + } + } + //当前日期--年月日 + String today= DateUtil.today(); + //截取年月 + String yearMonth = today.substring(0, Math.min(today.length(), 7)); + IPage rtnPage=memberUserMapper.queryListPage(pageReqVO, page); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(MemberOrder::getIsPay,1); + for (MemberUserVO item: rtnPage.getRecords()){ + BigDecimal monthMoney = BigDecimal.valueOf(0); + BigDecimal allMoney = BigDecimal.valueOf(0); + queryWrapper.eq(MemberOrder::getUserId,item.getUserId()); + List orderList = orderService.list(queryWrapper); + for (MemberOrder order:orderList){ + String payTimeStr =DateUtil.formatDate(order.getPayTime()); + //截取年月 + String orderYearMonth = payTimeStr.substring(0, Math.min(payTimeStr.length(), 7)); + if(orderYearMonth.equals(yearMonth)){ + //本月的订单 + monthMoney =monthMoney.add(order.getGoodsPrice()); + } + allMoney = allMoney.add(order.getGoodsPrice()); + } + item.setMonthMoney(monthMoney); + item.setAllMoney(allMoney); + } + return rtnPage; } /** diff --git a/ruoyi-admin/src/main/java/com/ruoyi/member/vo/MemberUserVO.java b/ruoyi-admin/src/main/java/com/ruoyi/member/vo/MemberUserVO.java index 2cdf721..52a1983 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/member/vo/MemberUserVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/member/vo/MemberUserVO.java @@ -10,6 +10,7 @@ import com.ruoyi.member.domain.MemberCard; import com.ruoyi.member.domain.MemberUser; import lombok.Data; +import java.math.BigDecimal; import java.util.List; @Data @@ -51,4 +52,12 @@ public class MemberUserVO extends MemberUser { /**会员名称*/ String cardName; + /**邀请人名称*/ + String inviteName; + + /**本月订单总额*/ + BigDecimal monthMoney; + /**所有订单总额*/ + BigDecimal allMoney; + } diff --git a/ruoyi-admin/src/main/resources/mapper/member/MemberUserMapper.xml b/ruoyi-admin/src/main/resources/mapper/member/MemberUserMapper.xml index 13ab601..04f1087 100644 --- a/ruoyi-admin/src/main/resources/mapper/member/MemberUserMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/member/MemberUserMapper.xml @@ -62,9 +62,11 @@ su.status AS status, su.avatar AS avatar, su.phonenumber AS phonenumber, + su_temp.nick_name AS inviteName, GROUP_CONCAT(mc.card_name SEPARATOR ', ') AS memberCardName from dl_member_user main LEFT JOIN sys_user su ON main.user_id = su.user_id AND su.del_flag = 0 + LEFT JOIN sys_user su_temp ON su.invite_id = su_temp.user_id AND su_temp.del_flag = 0 LEFT JOIN dl_member_card mc ON main.user_id = mc.user_id AND mc.start_date <= CURDATE() @@ -80,6 +82,8 @@ #{entity.identityType} and su.nack_name = #{entity.nickName} + and su.invite_id = #{entity.userId} + and main.tel like CONCAT('%',#{entity.tel},'%') GROUP BY main.user_id ORDER BY mc.create_time desc