This commit is contained in:
Vinjor 2025-06-06 17:23:52 +08:00
parent 2d682f75da
commit b503bd98e6
3 changed files with 57 additions and 1 deletions

View File

@ -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<MemberUserMapper, MemberU
private IMemberCardService memberCardService;
@Autowired
private IBaseConfigService baseConfigService;
@Autowired
private ISysRoleService roleService;
@Autowired
private IMemberOrderService orderService;
/**
* 分页列表查询
@ -90,7 +99,41 @@ public class MemberUserServiceImpl extends ServiceImpl<MemberUserMapper, MemberU
**/
@Override
public IPage<MemberUserVO> queryListPage(MemberUserVO pageReqVO, Page<MemberUserVO> page) {
return memberUserMapper.queryListPage(pageReqVO, page);
LoginUser loginUser = SecurityUtils.getLoginUser();
SysUser user = loginUser.getUser();
// 管理员拥有所有权限
if (!user.isAdmin()) {
Set<String> 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<MemberUserVO> rtnPage=memberUserMapper.queryListPage(pageReqVO, page);
LambdaQueryWrapper<MemberOrder> 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<MemberOrder> 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;
}
/**

View File

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

View File

@ -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 &lt;= CURDATE()
@ -80,6 +82,8 @@
#{entity.identityType}
</if>
<if test="entity.nickName != null and entity.nickName != '' ">and su.nack_name = #{entity.nickName}</if>
<if test="entity.userId != null "> and su.invite_id = #{entity.userId}</if>
<if test="entity.tel != null AND entity.tel !='' "> and main.tel like CONCAT('%',#{entity.tel},'%') </if>
</where>
GROUP BY main.user_id
ORDER BY mc.create_time desc