From 834759802e2653d990a5fee9ac55c93b7a5e306b Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Thu, 23 Oct 2025 14:37:33 +0800 Subject: [PATCH] =?UTF-8?q?vip=E5=BC=80=E9=80=9A=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E5=B0=86=E5=B7=B2=E5=A4=B1=E6=95=88=E8=AF=A6=E6=83=85=E5=90=88?= =?UTF-8?q?=E5=B9=B6=E5=88=B0=E6=9C=89=E6=95=88=E8=AF=A6=E6=83=85=E9=87=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../master/controller/UserVipController.java | 30 +++++++++++++++---- 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/peanut/modules/master/controller/UserVipController.java b/src/main/java/com/peanut/modules/master/controller/UserVipController.java index e45a8634..767b0fd2 100644 --- a/src/main/java/com/peanut/modules/master/controller/UserVipController.java +++ b/src/main/java/com/peanut/modules/master/controller/UserVipController.java @@ -68,9 +68,13 @@ public class UserVipController { Long.parseLong(params.get("current").toString()), Long.parseLong(params.get("limit").toString())), wrapper); List users = page.getRecords(); for (MyUserEntity user : users) { - List userVips = userVipService.list(new LambdaQueryWrapper() + List userVips = userVipService.list(new MPJLambdaWrapper() + .rightJoin("(select max(end_time) endTime,type from user_vip where del_flag =0 and user_id = "+user.getId()+" group by type)" + + " t1 on t1.endTime = t.end_time and t1.type = t.type") + .selectAll(UserVip.class) .eq(UserVip::getUserId, user.getId()) - .eq(StringUtils.isNotEmpty(params.get("state").toString()),UserVip::getState, params.get("state").toString())); + .eq(StringUtils.isNotEmpty(params.get("state").toString()),UserVip::getState, params.get("state").toString()) + .orderByAsc(UserVip::getEndTime,UserVip::getType)); user.setUserVips(userVips); for(UserVip userVip : userVips){ userVip.setUserVipLogs(userVipLogService.list(new LambdaQueryWrapper() @@ -169,12 +173,26 @@ public class UserVipController { public R getUserVipInfoByUserId(@RequestBody Map params) { List userVips = userVipService.list(new LambdaQueryWrapper() .eq(UserVip::getUserId,params.get("userId").toString()) - .eq("0".equals(params.get("state").toString()),UserVip::getState,params.get("state").toString())); + .eq("0".equals(params.get("state").toString()),UserVip::getState,params.get("state").toString()) + .orderByDesc(UserVip::getEndTime)); + Map map = new HashMap<>(); + List resUserVips = new ArrayList<>(); + //将失效详情添加到有效条目里 for (UserVip userVip : userVips) { - userVip.setUserVipLogs(userVipLogService.list(new LambdaQueryWrapper() - .eq(UserVipLog::getUserVipId,userVip.getId()))); + if (!map.containsKey(userVip.getType()+"")){ + userVip.setUserVipLogs(userVipLogService.list(new LambdaQueryWrapper() + .eq(UserVipLog::getUserVipId,userVip.getId()))); + map.put(userVip.getType()+"",userVip); + resUserVips.add(userVip); + }else { + UserVip uv = (UserVip) map.get(userVip.getType()+""); + List list = uv.getUserVipLogs(); + list.addAll(userVipLogService.list(new LambdaQueryWrapper() + .eq(UserVipLog::getUserVipId,userVip.getId()))); + uv.setUserVipLogs(list); + } } - return R.ok().put("userVips", userVips); + return R.ok().put("userVips", resUserVips); } @RequestMapping("/addUserVipLog")