From e3f3e7d654f4a098efba564f6e86c01d6ba44fdd Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Fri, 10 Jan 2025 14:58:02 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E4=B8=AD=E5=BF=83=20?= =?UTF-8?q?=E5=A4=84=E7=90=86=E4=B8=80=E6=AC=A1=E6=80=A7=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=20=E5=A4=A7=E8=BD=AC=E7=9B=98=E6=8A=BD=E5=A5=96=20=E7=AC=AC?= =?UTF-8?q?=E4=B8=89=E6=AC=A1=E9=9C=80=E8=A6=81=E5=AE=9E=E5=90=8D=E5=90=8E?= =?UTF-8?q?=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/app/service/UserInfoService.java | 12 +++++ .../app/service/impl/UserInfoServiceImpl.java | 35 ++++++++++++-- .../controller/DiscSpinningController.java | 15 ++++-- .../taskCenter/dao/TaskCenterRecordDao.java | 4 ++ .../service/TaskCenterRecordService.java | 3 +- .../impl/TaskCenterRecordServiceImpl.java | 11 +++-- .../service/impl/TaskCenterServiceImpl.java | 46 +++++++++++-------- .../mapper/tashCenter/TaskCenterRecordDto.xml | 18 ++++++++ 8 files changed, 111 insertions(+), 33 deletions(-) diff --git a/src/main/java/com/sqx/modules/app/service/UserInfoService.java b/src/main/java/com/sqx/modules/app/service/UserInfoService.java index 2cc21c64..9d0c67a8 100644 --- a/src/main/java/com/sqx/modules/app/service/UserInfoService.java +++ b/src/main/java/com/sqx/modules/app/service/UserInfoService.java @@ -3,6 +3,8 @@ package com.sqx.modules.app.service; import com.baomidou.mybatisplus.extension.service.IService; import com.sqx.modules.app.entity.UserInfo; +import java.util.List; + /** * @author Administrator * @description 针对表【user_info】的数据库操作Service @@ -12,6 +14,16 @@ public interface UserInfoService extends IService { UserInfo getByUserId(long userId); + /** + * 查询用户是否实名 + */ + boolean isAuth(long userId); + + /** + * 通过查询用户实名信息 绑定的用户ID列表 + */ + List getUsersByNameAndCertNo(String certName,String certNo); + Integer countCertCount(String name, String idNum); Integer countCertCount(String name, String idNum, String accountNo, String mobile); diff --git a/src/main/java/com/sqx/modules/app/service/impl/UserInfoServiceImpl.java b/src/main/java/com/sqx/modules/app/service/impl/UserInfoServiceImpl.java index d58478fa..2c79f391 100644 --- a/src/main/java/com/sqx/modules/app/service/impl/UserInfoServiceImpl.java +++ b/src/main/java/com/sqx/modules/app/service/impl/UserInfoServiceImpl.java @@ -7,14 +7,16 @@ import com.sqx.modules.app.mapper.UserInfoMapper; import com.sqx.modules.app.service.UserInfoService; import org.springframework.stereotype.Service; +import java.util.List; + /** -* @author Administrator -* @description 针对表【user_info】的数据库操作Service实现 -* @createDate 2025-01-02 14:15:08 -*/ + * @author Administrator + * @description 针对表【user_info】的数据库操作Service实现 + * @createDate 2025-01-02 14:15:08 + */ @Service public class UserInfoServiceImpl extends ServiceImpl - implements UserInfoService{ + implements UserInfoService { @Override public UserInfo getByUserId(long userId) { @@ -28,6 +30,29 @@ public class UserInfoServiceImpl extends ServiceImpl return userInfo; } + @Override + public boolean isAuth(long userId) { + UserInfo userInfo = getOne(new LambdaQueryWrapper() + .eq(UserInfo::getUserId, userId) + .isNotNull(UserInfo::getCertName) + .isNotNull(UserInfo::getCertNo) + ); + if (userInfo != null) { + return true; + } + return false; + } + + @Override + public List getUsersByNameAndCertNo(String certName, String certNo) { + List userIds = baseMapper.selectList(new LambdaQueryWrapper() + .eq(UserInfo::getCertName,certName) + .eq(UserInfo::getCertNo,certNo) + .select(UserInfo::getUserId) + ); + return userIds; + } + @Override public Integer countCertCount(String name, String idNum) { return count(new LambdaQueryWrapper() diff --git a/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java b/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java index 30478e9e..cbf4ad90 100644 --- a/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java +++ b/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java @@ -8,6 +8,7 @@ import com.sqx.common.annotation.Debounce; import com.sqx.common.exception.CzgException; import com.sqx.common.utils.*; import com.sqx.modules.app.annotation.Login; +import com.sqx.modules.app.service.UserInfoService; import com.sqx.modules.app.service.UserService; import com.sqx.modules.common.service.CommonInfoService; import com.sqx.modules.discSpinning.entity.DiscSpinning; @@ -45,6 +46,7 @@ public class DiscSpinningController { private final TaskCenterService taskCenterService; private final TaskCenterRecordService taskRecordService; private final UserService userService; + private final UserInfoService userInfoService; private final RedisUtils redisUtils; ScheduledExecutorService executor = Executors.newScheduledThreadPool(10); @@ -52,7 +54,7 @@ public class DiscSpinningController { public DiscSpinningController(CommonInfoService commonRepository, DiscSpinningService discSpinningService, OrdersService ordersService, DiscSpinningRecordService recordService, TaskCenterService taskCenterService, UserService userService, RedisUtils redisUtils, - TaskCenterRecordService taskRecordService) { + TaskCenterRecordService taskRecordService,UserInfoService userInfoService) { this.commonRepository = commonRepository; this.discSpinningService = discSpinningService; this.ordersService = ordersService; @@ -61,6 +63,7 @@ public class DiscSpinningController { this.userService = userService; this.redisUtils = redisUtils; this.taskRecordService = taskRecordService; + this.userInfoService = userInfoService; } @PostMapping("/discSpinning/insertDiscSpinning") @@ -129,9 +132,9 @@ public class DiscSpinningController { }) @ApiOperation("查询大转盘") public Result selectDiscSpinning(@RequestParam(required = false, defaultValue = "1") Integer source) { - PageHelper.startPage(1,20); + PageHelper.startPage(1, 20); return Result.success().put("data", PageUtils.page(new PageInfo<>(discSpinningService.list( - new QueryWrapper().eq("disc_type", source).orderByAsc("disc_type", "odds"))),true) + new QueryWrapper().eq("disc_type", source).orderByAsc("disc_type", "odds"))), true) ); } @@ -175,6 +178,10 @@ public class DiscSpinningController { double amount = 0; Long sourceId = null; Integer i = recordService.countDraw(userId); + if ((i != null && i.equals(2)) || !source.equals(1)) { + boolean auth = userInfoService.isAuth(userId); + if(!auth) return Result.error("剩余抽奖活动需要实名认证后进行"); + } if (source == null || source.equals(1)) { source = 1; //订单抽奖 @@ -239,7 +246,7 @@ public class DiscSpinningController { @RequestMapping("/app/discSpinning/receive") @Login public Result receive(@RequestAttribute("userId") Long userId) { - userService.addBlackUser(userId,"转盘奖项领取"); + userService.addBlackUser(userId, "转盘奖项领取"); return Result.success().put("data", 1); } diff --git a/src/main/java/com/sqx/modules/taskCenter/dao/TaskCenterRecordDao.java b/src/main/java/com/sqx/modules/taskCenter/dao/TaskCenterRecordDao.java index 2c18a24e..d6942367 100644 --- a/src/main/java/com/sqx/modules/taskCenter/dao/TaskCenterRecordDao.java +++ b/src/main/java/com/sqx/modules/taskCenter/dao/TaskCenterRecordDao.java @@ -4,8 +4,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.sqx.modules.taskCenter.entity.TaskCenterRecord; import org.apache.ibatis.annotations.Mapper; +import java.util.Set; + @Mapper public interface TaskCenterRecordDao extends BaseMapper { Integer countTaskNum(Long userId, Long taskId, String time); + + TaskCenterRecord countTaskNumByUserIds(Set userId, Long taskId, String time); } diff --git a/src/main/java/com/sqx/modules/taskCenter/service/TaskCenterRecordService.java b/src/main/java/com/sqx/modules/taskCenter/service/TaskCenterRecordService.java index 05fe66a1..669d7ee6 100644 --- a/src/main/java/com/sqx/modules/taskCenter/service/TaskCenterRecordService.java +++ b/src/main/java/com/sqx/modules/taskCenter/service/TaskCenterRecordService.java @@ -3,7 +3,7 @@ package com.sqx.modules.taskCenter.service; import com.baomidou.mybatisplus.extension.service.IService; import com.sqx.modules.taskCenter.entity.TaskCenterRecord; -import java.util.Map; +import java.util.Set; public interface TaskCenterRecordService extends IService { @@ -15,5 +15,6 @@ public interface TaskCenterRecordService extends IService { * @return */ Integer countTaskNum(Long userId,Long taskId,String time); + Integer countTaskNum(Set userId, Long taskId, String time); } diff --git a/src/main/java/com/sqx/modules/taskCenter/service/impl/TaskCenterRecordServiceImpl.java b/src/main/java/com/sqx/modules/taskCenter/service/impl/TaskCenterRecordServiceImpl.java index 2e2a12fd..52ee2fa1 100644 --- a/src/main/java/com/sqx/modules/taskCenter/service/impl/TaskCenterRecordServiceImpl.java +++ b/src/main/java/com/sqx/modules/taskCenter/service/impl/TaskCenterRecordServiceImpl.java @@ -5,11 +5,8 @@ import com.sqx.modules.taskCenter.dao.TaskCenterRecordDao; import com.sqx.modules.taskCenter.entity.TaskCenterRecord; import com.sqx.modules.taskCenter.service.TaskCenterRecordService; import org.springframework.stereotype.Service; -import org.apache.commons.lang3.StringUtils; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import org.springframework.beans.factory.annotation.Autowired; -import java.util.Map; +import java.util.Set; @Service public class TaskCenterRecordServiceImpl extends ServiceImpl implements TaskCenterRecordService { @@ -19,5 +16,11 @@ public class TaskCenterRecordServiceImpl extends ServiceImpl userId, Long taskId, String time) { + TaskCenterRecord record = baseMapper.countTaskNumByUserIds(userId, taskId, time); + return record == null ? 0 : 1; + } } diff --git a/src/main/java/com/sqx/modules/taskCenter/service/impl/TaskCenterServiceImpl.java b/src/main/java/com/sqx/modules/taskCenter/service/impl/TaskCenterServiceImpl.java index 5d45b46a..72417894 100644 --- a/src/main/java/com/sqx/modules/taskCenter/service/impl/TaskCenterServiceImpl.java +++ b/src/main/java/com/sqx/modules/taskCenter/service/impl/TaskCenterServiceImpl.java @@ -9,12 +9,9 @@ import com.sqx.common.utils.RedisKeys; import com.sqx.common.utils.RedisUtils; import com.sqx.common.utils.Result; import com.sqx.modules.app.entity.InviteAchievement; -import com.sqx.modules.app.entity.UserEntity; +import com.sqx.modules.app.entity.UserInfo; import com.sqx.modules.app.entity.UserMoneyDetails; -import com.sqx.modules.app.service.InviteAchievementService; -import com.sqx.modules.app.service.UserMoneyDetailsService; -import com.sqx.modules.app.service.UserMoneyService; -import com.sqx.modules.app.service.UserService; +import com.sqx.modules.app.service.*; import com.sqx.modules.discSpinning.service.DiscSpinningRecordService; import com.sqx.modules.orders.service.OrdersService; import com.sqx.modules.taskCenter.dao.TaskCenterDao; @@ -33,6 +30,7 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.*; +import java.util.stream.Collectors; @Service public class TaskCenterServiceImpl extends ServiceImpl implements TaskCenterService { @@ -52,6 +50,8 @@ public class TaskCenterServiceImpl extends ServiceImpl 0) { - continue; } else { - s.setDiscNumber(0); - s.setNumber(null); - s.setJumpType(0); - } - } else if (s.getDetail().contains("绑定支付宝")) { - UserEntity userInfo = userService.queryByUserId(userId); - if (StringUtils.isNotBlank(userInfo.getZhiFuBao()) && StringUtils.isNotBlank(userInfo.getZhiFuBaoName())) { - continue; + UserInfo userInfo = userInfoService.getByUserId(userId); + if (userInfo != null || StringUtils.isNotBlank(userInfo.getCertNo()) || StringUtils.isNotBlank(userInfo.getCertName())) { + List users = userInfoService.getUsersByNameAndCertNo(userInfo.getCertName(), userInfo.getCertNo()); + Set courseIds = users.stream().map(UserInfo::getUserId).collect(Collectors.toSet()); + if (recordService.countTaskNum(courseIds, s.getId(), null) > 0){ + continue; + } + }else if (recordService.countTaskNum(userId, s.getId(), null) > 0){ + s.setDiscNumber(0); + s.setNumber(null); + s.setJumpType(0); + } } } break; @@ -234,8 +236,14 @@ public class TaskCenterServiceImpl extends ServiceImpl 0) { - return Result.error("不可重复领取"); + } else { + UserInfo userInfo = userInfoService.getByUserId(userId); + if (userInfo == null || StringUtils.isBlank(userInfo.getCertNo()) || StringUtils.isBlank(userInfo.getCertName())) { + return Result.error("请实名后领取"); + } + List users = userInfoService.getUsersByNameAndCertNo(userInfo.getCertName(), userInfo.getCertNo()); + Set courseIds = users.stream().map(UserInfo::getUserId).collect(Collectors.toSet()); + if (recordService.countTaskNum(courseIds, taskCenter.getId(), null) > 0) return Result.error("同一实名算一个新用户,不可重复领取"); } } List records = new ArrayList<>(); @@ -271,7 +279,7 @@ public class TaskCenterServiceImpl extends ServiceImpl + + + \ No newline at end of file