From f45341c550ef70498f5ed290b5fb16f5b2fa8f33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Mon, 6 Jan 2025 10:15:29 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=88=97=E8=A1=A8=E6=8A=A5?= =?UTF-8?q?=E9=94=99=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/controller/UserController.java | 1 + .../app/service/impl/UserServiceImpl.java | 40 ++++++++++++++++--- 2 files changed, 35 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/sqx/modules/app/controller/UserController.java b/src/main/java/com/sqx/modules/app/controller/UserController.java index b1def84d..00ccf736 100644 --- a/src/main/java/com/sqx/modules/app/controller/UserController.java +++ b/src/main/java/com/sqx/modules/app/controller/UserController.java @@ -292,6 +292,7 @@ public class UserController { int dyCount = userService.queryUserCount(type, date, "抖音", qdCode); int giveMemberCount = userService.userMessage(date, type, qdCode, 1); int moneyMemberCount = userService.userMessage(date, type, qdCode, 2); +// int memberCount = userVipService.userMessage(date, type, qdCode, null); int memberCount = userService.userMessage(date, type, qdCode, null); int userCount = sumUserCount - memberCount; Map result = new HashMap<>(); diff --git a/src/main/java/com/sqx/modules/app/service/impl/UserServiceImpl.java b/src/main/java/com/sqx/modules/app/service/impl/UserServiceImpl.java index 332bd8ae..7bff4a41 100644 --- a/src/main/java/com/sqx/modules/app/service/impl/UserServiceImpl.java +++ b/src/main/java/com/sqx/modules/app/service/impl/UserServiceImpl.java @@ -44,6 +44,7 @@ import com.sqx.common.utils.Result; import com.sqx.modules.app.dao.AuthCertNoDTO; import com.sqx.modules.app.dao.MsgDao; import com.sqx.modules.app.dao.UserDao; +import com.sqx.modules.app.dao.UserVipDao; import com.sqx.modules.app.entity.*; import com.sqx.modules.app.service.*; import com.sqx.modules.app.utils.JwtUtils; @@ -82,11 +83,9 @@ import weixin.popular.util.JsonUtil; import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.concurrent.locks.ReentrantReadWriteLock; +import java.util.stream.Collectors; /** * 用户 @@ -124,15 +123,17 @@ public class UserServiceImpl extends ServiceImpl implements private SysUserService sysUserService; private final AliService aliService; private final UserInfoService userInfoService; + private final UserVipDao userVipDao; @Value("${spring.profiles.active}") private String profiles; private ReentrantReadWriteLock reentrantReadWriteLock = new ReentrantReadWriteLock(true); - public UserServiceImpl(@Lazy AliService aliService, UserInfoService userInfoService) { + public UserServiceImpl(@Lazy AliService aliService, UserInfoService userInfoService, UserVipDao userVipDao) { this.aliService = aliService; this.userInfoService = userInfoService; + this.userVipDao = userVipDao; } @Override @@ -1419,7 +1420,34 @@ public class UserServiceImpl extends ServiceImpl implements @Override public int userMessage(String date, int type, String qdCode, Integer vipType) { - return baseMapper.userMessage(date, type, qdCode, vipType); + DateTime dateTime; + if (type == 0) { + dateTime = DateUtil.beginOfDay(DateUtil.parseDate(date)); + + }else if (type == 1) { + dateTime = DateUtil.beginOfMonth(DateUtil.parseDate(date)); + }else { + dateTime = DateUtil.beginOfYear(DateUtil.parseDate(date)); + } + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() + .ge(UserEntity::getCreateTime, dateTime); + if (StrUtil.isNotBlank(qdCode)) { + queryWrapper.eq(UserEntity::getQdCode, qdCode); + } + + Set useridList = baseMapper.selectList(queryWrapper.select(UserEntity::getUserId)) + .stream().map(UserEntity::getUserId).collect(Collectors.toSet()); + if (useridList.isEmpty()) { + return 0; + } + + LambdaQueryWrapper vipLambdaQueryWrapper = new LambdaQueryWrapper().in(UserVip::getUserId, useridList) + .eq(UserVip::getIsVip, 2); + if (vipType != null) { + vipLambdaQueryWrapper.eq(UserVip::getVipType, vipType); + } + return userVipDao.selectCount(vipLambdaQueryWrapper); }