From 9e70bfd42e7c24e1e689fdbfed245b74468203a4 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, 13 Jan 2025 15:13:52 +0800 Subject: [PATCH 01/22] =?UTF-8?q?=E6=8B=89=E6=96=B0=E5=A5=96=E5=8A=B1bug?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/sqx/modules/job/task/TempOrdersTask.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/sqx/modules/job/task/TempOrdersTask.java b/src/main/java/com/sqx/modules/job/task/TempOrdersTask.java index 84bd22da..a23e08bb 100644 --- a/src/main/java/com/sqx/modules/job/task/TempOrdersTask.java +++ b/src/main/java/com/sqx/modules/job/task/TempOrdersTask.java @@ -262,11 +262,11 @@ public class TempOrdersTask { // .eq(InviteAchievement::getState, 1)); Set byUserIdList = inviteAchievementService.list(new LambdaQueryWrapper().eq(InviteAchievement::getUserId, sourceUser.getUserId()) .eq(InviteAchievement::getState, 1).select(InviteAchievement::getTargetUserId)).stream().map(InviteAchievement::getTargetUserId).collect(Collectors.toSet()); - int count = 0; + int count; if (!byUserIdList.isEmpty()) { List list = userInfoService.list(new LambdaQueryWrapper().in(UserInfo::getUserId, byUserIdList).isNotNull(UserInfo::getAccountNo).select(UserInfo::getCertNo)); logger.info("邀请用户实名信息: {}", list.stream().map(UserInfo::getCertNo).collect(Collectors.toSet())); - UserInfo userInfo = userInfoService.getOne(new LambdaQueryWrapper().eq(UserInfo::getUserId, user.getUserId()).select(UserInfo::getCertNo)); + UserInfo userInfo = userInfoService.getOne(new LambdaQueryWrapper().eq(UserInfo::getUserId, sourceUser.getUserId()).select(UserInfo::getCertNo)); Set collect = userInfoService.list(new LambdaQueryWrapper().in(UserInfo::getUserId, byUserIdList).isNotNull(UserInfo::getAccountNo).select(UserInfo::getCertNo)) .stream().map(UserInfo::getCertNo).collect(Collectors.toSet()); // 去除与本人身份信息相同的用户 From 84089405d17c512432789058b4d15d342cfdcc1d Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Mon, 13 Jan 2025 15:39:52 +0800 Subject: [PATCH 02/22] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../discSpinning/controller/DiscSpinningController.java | 3 +++ 1 file changed, 3 insertions(+) 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 cbdd5fdd..2784e3f3 100644 --- a/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java +++ b/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java @@ -233,6 +233,9 @@ public class DiscSpinningController { if (source == 1 && sourceId == null) { throw new CzgException("异常请求"); } + if(sourceId == null){ + return Result.error("请求失败,请联系管理员"); + } if (DataLimitUtil.isAllowed(RedisKeys.getDateKey("spinning:draw:") + sourceId, 120)) { DiscSpinningRecord draws = discSpinningService.draws(i == null ? 1 : i + 1, amount, sourceId, userId, source); executor.schedule(() -> discSpinningService.receive1(draws), 4, TimeUnit.SECONDS); From 1e86dd82926564cd385e87b20d41d22b4e13a584 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E5=87=AF=E5=87=AF?= Date: Mon, 13 Jan 2025 15:46:45 +0800 Subject: [PATCH 03/22] =?UTF-8?q?=E6=9D=A1=E6=AC=BE=E3=80=81=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E5=8D=8F=E8=AE=AE=E3=80=81=E9=9A=90=E7=A7=81=E6=94=BF?= =?UTF-8?q?=E7=AD=96=20=E8=BF=99=E4=BA=9B=E9=95=BFtext=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=EF=BC=8C=E4=B8=BA=E5=87=8F=E7=BC=93=E5=AE=BD=E5=B8=A6=E6=B6=88?= =?UTF-8?q?=E8=80=97=EF=BC=8C=E6=94=BE=E5=88=B0oss=E4=B8=AD=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/CommonInfoServiceImpl.java | 18 ++++++++++++++++-- .../controller/DiscSpinningController.java | 4 +++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/sqx/modules/common/service/impl/CommonInfoServiceImpl.java b/src/main/java/com/sqx/modules/common/service/impl/CommonInfoServiceImpl.java index 0c9fc7ce..c874766e 100644 --- a/src/main/java/com/sqx/modules/common/service/impl/CommonInfoServiceImpl.java +++ b/src/main/java/com/sqx/modules/common/service/impl/CommonInfoServiceImpl.java @@ -2,6 +2,7 @@ package com.sqx.modules.common.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -66,6 +67,7 @@ public class CommonInfoServiceImpl extends ServiceImpl list = commonInfoDao.selectList(Wrappers.lambdaQuery() .eq(CommonInfo::getIsAppUse, 1) - .in(CommonInfo::getType, 154, 155, 246)); + .in(CommonInfo::getType, PUT_OSS_KEYS)); if (CollUtil.isEmpty(list)) { return ""; } 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 cbdd5fdd..3feb9978 100644 --- a/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java +++ b/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java @@ -180,7 +180,9 @@ public class DiscSpinningController { 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(!auth) { + return Result.error("剩余抽奖活动需要实名认证后进行"); + } } if (source == null || source.equals(1)) { source = 1; From f2ffe61809691703b2fff029e2d6b309af327f70 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Mon, 13 Jan 2025 15:58:37 +0800 Subject: [PATCH 04/22] =?UTF-8?q?=E6=8A=BD=E5=A5=96=E9=87=91=E9=A2=9D?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DiscSpinningAmountController.java | 5 ++--- .../controller/DiscSpinningController.java | 2 +- .../discSpinning/entity/DiscSpinningAmount.java | 2 ++ .../service/impl/DiscSpinningServiceImpl.java | 13 ++----------- 4 files changed, 7 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningAmountController.java b/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningAmountController.java index 92065e9a..6ac8a69e 100644 --- a/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningAmountController.java +++ b/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningAmountController.java @@ -1,7 +1,6 @@ package com.sqx.modules.discSpinning.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.sqx.common.utils.PageUtils; @@ -35,7 +34,7 @@ public class DiscSpinningAmountController { @ApiOperation("添加现金红包 抽奖配置") public Result insertDiscSpinningAmount(@RequestBody DiscSpinningAmount discSpinningAmount) { discSpinningAmountService.save(discSpinningAmount); - redisUtils.delete(RedisKeys.getDateKey("spinning:amount")); + redisUtils.delete(RedisKeys.getDateKey("spinning:amount:"+discSpinningAmount.getType())); return Result.success(); } @@ -49,7 +48,7 @@ public class DiscSpinningAmountController { @ApiOperation("修改现金红包 抽奖配置") public Result updateDiscSpinningAmount(@RequestBody DiscSpinningAmount discSpinningAmount) { discSpinningAmountService.updateById(discSpinningAmount); - redisUtils.delete(RedisKeys.getDateKey("spinning:amount")); + redisUtils.delete(RedisKeys.getDateKey("spinning:amount:"+discSpinningAmount.getType())); return Result.success(); } 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 fc40cd9c..bc6162c0 100644 --- a/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java +++ b/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java @@ -173,7 +173,7 @@ public class DiscSpinningController { @ApiImplicitParam(name = "source", value = "1 普通转盘 2 周任务转盘 3 月任务转盘", dataTypeClass = Integer.class), }) @ApiOperation("抽取大转盘") - @Debounce(interval = 3000, value = "#userId") + @Debounce(value = "#userId") public Result draw(@ApiIgnore @RequestAttribute("userId") Long userId, @RequestParam(required = false, defaultValue = "1") Integer source) throws CzgException { double amount = 0; Long sourceId = null; diff --git a/src/main/java/com/sqx/modules/discSpinning/entity/DiscSpinningAmount.java b/src/main/java/com/sqx/modules/discSpinning/entity/DiscSpinningAmount.java index 985ceaeb..558a5242 100644 --- a/src/main/java/com/sqx/modules/discSpinning/entity/DiscSpinningAmount.java +++ b/src/main/java/com/sqx/modules/discSpinning/entity/DiscSpinningAmount.java @@ -20,6 +20,8 @@ import lombok.Data; public class DiscSpinningAmount extends Model { @ApiModelProperty("主键id") private Long id; + @ApiModelProperty("1 订单 2 周任务转盘 3 月任务转盘") + private Integer type; @ApiModelProperty("从第几次开始变化") @TableField(updateStrategy = FieldStrategy.IGNORED) private Integer num; diff --git a/src/main/java/com/sqx/modules/discSpinning/service/impl/DiscSpinningServiceImpl.java b/src/main/java/com/sqx/modules/discSpinning/service/impl/DiscSpinningServiceImpl.java index b69b5193..b3f389e8 100644 --- a/src/main/java/com/sqx/modules/discSpinning/service/impl/DiscSpinningServiceImpl.java +++ b/src/main/java/com/sqx/modules/discSpinning/service/impl/DiscSpinningServiceImpl.java @@ -7,13 +7,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.sqx.common.utils.DateUtils; import com.sqx.common.utils.RedisKeys; import com.sqx.common.utils.RedisUtils; -import com.sqx.common.utils.Result; import com.sqx.modules.app.entity.UserEntity; import com.sqx.modules.app.entity.UserMoneyDetails; 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.common.entity.CommonInfo; import com.sqx.modules.common.service.CommonInfoService; import com.sqx.modules.discSpinning.dao.DiscSpinningDao; import com.sqx.modules.discSpinning.entity.DiscSpinning; @@ -21,20 +19,13 @@ import com.sqx.modules.discSpinning.entity.DiscSpinningAmount; import com.sqx.modules.discSpinning.entity.DiscSpinningRecord; import com.sqx.modules.discSpinning.service.DiscSpinningRecordService; import com.sqx.modules.discSpinning.service.DiscSpinningService; -import com.sqx.modules.pay.entity.CashOut; -import com.sqx.modules.pay.entity.WithdrawTypeEnum; import com.sqx.modules.pay.service.CashOutService; -import com.sqx.modules.pay.wuyou.BaseResp; import com.sqx.modules.pay.wuyou.WuyouPay; -import com.sqx.modules.utils.AliPayOrderUtil; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.PlatformTransactionManager; -import org.springframework.transaction.TransactionStatus; import org.springframework.transaction.annotation.Transactional; -import org.springframework.transaction.support.DefaultTransactionDefinition; import java.math.BigDecimal; import java.math.RoundingMode; @@ -90,7 +81,7 @@ public class DiscSpinningServiceImpl extends ServiceImpl amounts = new ArrayList<>(); - Map> amountMaps = redisUtils.getMapData(RedisKeys.getDateKey("spinning:amount"), "setDiscSpinningAmounts", DiscSpinningAmount.class); + Map> amountMaps = redisUtils.getMapData(RedisKeys.getDateKey("spinning:amount:") + source, "setDiscSpinningAmounts", DiscSpinningAmount.class); for (int i = drawCount; i >= 0; i--) { if (amountMaps.containsKey(i + "")) { amounts = amountMaps.get(i + ""); From e9807855b56f13b04e50ffdd589b870b4a283391 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Mon, 13 Jan 2025 16:05:47 +0800 Subject: [PATCH 05/22] =?UTF-8?q?=E9=BB=98=E8=AE=A4=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DiscSpinningAmountController.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningAmountController.java b/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningAmountController.java index 6ac8a69e..3c782208 100644 --- a/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningAmountController.java +++ b/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningAmountController.java @@ -62,9 +62,12 @@ public class DiscSpinningAmountController { @GetMapping("/selectDiscSpinningAmount") @ApiOperation("查询现金红包 抽奖配置") - public Result selectDiscSpinningAmount(Integer page, Integer limit) { + public Result selectDiscSpinningAmount(@RequestParam(required = false, defaultValue = "1")Integer page, + @RequestParam(required = false, defaultValue = "10")Integer limit, + @RequestParam(required = false, defaultValue = "1")Integer type) { PageHelper.startPage(page, limit); - List list = discSpinningAmountService.list(new QueryWrapper().orderByDesc("status").orderByAsc("num", "random", "max_amount")); + List list = discSpinningAmountService.list(new QueryWrapper() + .eq("type",type).orderByDesc("status").orderByAsc("num", "random", "max_amount")); PageInfo pageInfo = new PageInfo<>(list); return Result.success().put("data", PageUtils.page(pageInfo, true)); } From 53c5bd3fb8ca242975aeccec054a744982207db7 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Mon, 13 Jan 2025 16:29:16 +0800 Subject: [PATCH 06/22] =?UTF-8?q?=E5=91=A8=E4=BB=BB=E5=8A=A1=E6=8A=BD?= =?UTF-8?q?=E5=A5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/sqx/modules/app/controller/app/AppController.java | 1 + .../discSpinning/controller/DiscSpinningController.java | 2 +- .../taskCenter/service/impl/TaskCenterServiceImpl.java | 6 +++--- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/sqx/modules/app/controller/app/AppController.java b/src/main/java/com/sqx/modules/app/controller/app/AppController.java index 6eb8324d..4735bb84 100644 --- a/src/main/java/com/sqx/modules/app/controller/app/AppController.java +++ b/src/main/java/com/sqx/modules/app/controller/app/AppController.java @@ -268,6 +268,7 @@ public class AppController { } Map map = BeanUtil.beanToMap(user); map.putAll(BeanUtil.beanToMap(userInfo)); + map.put("userId",map.get("userId").toString()); if (StrUtil.isBlank(user.getZhiFuBaoName()) && StrUtil.isNotBlank(userInfo.getCertName())) { map.put("zhiFuBaoName", userInfo.getCertName()); } 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 bc6162c0..7c0de016 100644 --- a/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java +++ b/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java @@ -218,7 +218,7 @@ public class DiscSpinningController { centerRecord.setTaskId(Long.valueOf(entry.getKey())); if (source.equals(2)) { sourceId = Long.valueOf(entry.getKey()); - centerRecord.setSourceId(Long.getLong(entry.getKey())); + centerRecord.setSourceId(sourceId); } centerRecord.setName(source.equals(2) ? "周任务奖励" : "月任务奖励"); centerRecord.setType(9); 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 25ac15e4..488f032d 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 @@ -348,7 +348,7 @@ public class TaskCenterServiceImpl extends ServiceImpl taskWRedisMap = new HashMap<>(); + Map taskWRedisMap = new HashMap<>(); if ("2".equals(type)) { //抽奖次数 Map taskWCount = signRecordService.getTaskWCount(userId, rewardMap.get(9)); @@ -358,7 +358,7 @@ public class TaskCenterServiceImpl extends ServiceImpl 0) { countTaskDisc = countTaskDisc + value; - taskWRedisMap.put(key.intValue(), value); + taskWRedisMap.put(key, value); } } } @@ -374,7 +374,7 @@ public class TaskCenterServiceImpl extends ServiceImpl 0) { - taskWRedisMap.put(taskCenter.getId().intValue(), countTaskDisc); + taskWRedisMap.put(taskCenter.getId(), countTaskDisc); } } } From 4498c12409489ef9e39239e222dde26b503cf7cd Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Mon, 13 Jan 2025 16:52:10 +0800 Subject: [PATCH 07/22] =?UTF-8?q?=E8=BD=AC=E7=9B=98=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DiscSpinningController.java | 21 +++++++++++++------ .../discSpinning/entity/DiscSpinning.java | 3 +++ 2 files changed, 18 insertions(+), 6 deletions(-) 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 7c0de016..f4fe083a 100644 --- a/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java +++ b/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java @@ -54,7 +54,7 @@ public class DiscSpinningController { public DiscSpinningController(CommonInfoService commonRepository, DiscSpinningService discSpinningService, OrdersService ordersService, DiscSpinningRecordService recordService, TaskCenterService taskCenterService, UserService userService, RedisUtils redisUtils, - TaskCenterRecordService taskRecordService,UserInfoService userInfoService) { + TaskCenterRecordService taskRecordService, UserInfoService userInfoService) { this.commonRepository = commonRepository; this.discSpinningService = discSpinningService; this.ordersService = ordersService; @@ -100,14 +100,23 @@ public class DiscSpinningController { @PostMapping("/discSpinning/updateDiscSpinning") @ApiOperation("修改大转盘") public Result updateDiscSpinning(@RequestBody DiscSpinning discSpinning) { - discSpinningService.updateById(discSpinning); - +// DiscSpinning current = discSpinningService.getById(discSpinning.getId()); List prizes = discSpinningService.list(new QueryWrapper().eq("disc_type", discSpinning.getDiscType()).orderByAsc("type", "id")); + List upPrizes = new ArrayList<>(); BigDecimal number = BigDecimal.ZERO; + boolean isUp = false; for (DiscSpinning prize : prizes) { + //当前 + if (discSpinning.getId().equals(prize.getId())) { + isUp = true; + } number = number.add(prize.getOdds()); prize.setNumber(number); + if (isUp) { + upPrizes.add(prize); + } } + BigDecimal totalOdds = prizes.stream() .map(DiscSpinning::getOdds) .filter(Objects::nonNull) @@ -115,7 +124,7 @@ public class DiscSpinningController { if (totalOdds.compareTo(new BigDecimal(100)) > 0) { return Result.error("中奖概率总和 不可超过100"); } - discSpinningService.updateBatchById(prizes); + discSpinningService.updateBatchById(upPrizes); return Result.success(); } @@ -180,7 +189,7 @@ public class DiscSpinningController { Integer i = recordService.countDraw(userId); if ((i != null && i.equals(2)) || !source.equals(1)) { boolean auth = userInfoService.isAuth(userId); - if(!auth) { + if (!auth) { return Result.error("剩余抽奖活动需要实名认证后进行"); } } @@ -235,7 +244,7 @@ public class DiscSpinningController { if (source == 1 && sourceId == null) { throw new CzgException("异常请求"); } - if(sourceId == null){ + if (sourceId == null) { return Result.error("请求失败,请联系管理员"); } if (DataLimitUtil.isAllowed(RedisKeys.getDateKey("spinning:draw:") + sourceId, 120)) { diff --git a/src/main/java/com/sqx/modules/discSpinning/entity/DiscSpinning.java b/src/main/java/com/sqx/modules/discSpinning/entity/DiscSpinning.java index 53d217e7..56cdf00e 100644 --- a/src/main/java/com/sqx/modules/discSpinning/entity/DiscSpinning.java +++ b/src/main/java/com/sqx/modules/discSpinning/entity/DiscSpinning.java @@ -2,6 +2,8 @@ package com.sqx.modules.discSpinning.entity; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import lombok.Data; import java.math.BigDecimal; @@ -16,6 +18,7 @@ import java.math.BigDecimal; @TableName("disc_spinning") public class DiscSpinning extends Model { //主键 + @JsonSerialize(using = ToStringSerializer.class) private Long id; //图标 private String url; From 381d40d6995e49591de4d8ddb8c30c240b1217ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E5=87=AF=E5=87=AF?= Date: Mon, 13 Jan 2025 16:57:43 +0800 Subject: [PATCH 08/22] =?UTF-8?q?=E6=8A=BD=E5=A5=96=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=8A=A0=E9=94=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DiscSpinningController.java | 159 ++++++++++-------- 1 file changed, 92 insertions(+), 67 deletions(-) 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 7c0de016..7f0d2a59 100644 --- a/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java +++ b/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java @@ -1,11 +1,13 @@ package com.sqx.modules.discSpinning.controller; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.sqx.common.annotation.Debounce; import com.sqx.common.exception.CzgException; +import com.sqx.common.exception.SqxException; import com.sqx.common.utils.*; import com.sqx.modules.app.annotation.Login; import com.sqx.modules.app.service.UserInfoService; @@ -54,7 +56,7 @@ public class DiscSpinningController { public DiscSpinningController(CommonInfoService commonRepository, DiscSpinningService discSpinningService, OrdersService ordersService, DiscSpinningRecordService recordService, TaskCenterService taskCenterService, UserService userService, RedisUtils redisUtils, - TaskCenterRecordService taskRecordService,UserInfoService userInfoService) { + TaskCenterRecordService taskRecordService, UserInfoService userInfoService) { this.commonRepository = commonRepository; this.discSpinningService = discSpinningService; this.ordersService = ordersService; @@ -175,76 +177,99 @@ public class DiscSpinningController { @ApiOperation("抽取大转盘") @Debounce(value = "#userId") public Result draw(@ApiIgnore @RequestAttribute("userId") Long userId, @RequestParam(required = false, defaultValue = "1") Integer source) throws CzgException { - 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("剩余抽奖活动需要实名认证后进行"); - } + String lockKey = StrUtil.format("user:disc-spinning:limit:user:lock:{}", userId); + if (redisUtils.hasKey(lockKey)) { + return Result.error("抽奖进行中,请等待!"); } - if (source == null || source.equals(1)) { - source = 1; - //订单抽奖 - int drawCount = Integer.parseInt(commonRepository.findOne(901).getValue()); - if (i != null && i >= drawCount) { - throw new CzgException("当日可抽奖次数已超限"); - } - Orders orders = ordersService.selectOrdersByDay(userId); - if (orders == null) { - throw new CzgException("无可抽奖机会"); - } - amount = orders.getPayMoney().doubleValue(); - sourceId = orders.getOrdersId(); - } else { - String redisKey = ""; - if (source.equals(2)) { - redisKey = RedisKeys.getDateKey("spinning:amount:taskW") + userId; - } else if (source.equals(3)) { - redisKey = RedisKeys.getDateKey("spinning:amount:taskM") + userId; - } - Map week = redisUtils.get(redisKey, Map.class); - for (Map.Entry entry : week.entrySet()) { - int value = new BigDecimal(entry.getValue().toString()).intValue(); - if (value > 1) { - value = value - 1; - week.put(entry.getKey(), value); - sourceId = Long.valueOf(entry.getKey()); - break; - } else { - TaskCenterRecord centerRecord = new TaskCenterRecord(); - centerRecord.setUserId(userId); - centerRecord.setTaskId(Long.valueOf(entry.getKey())); - if (source.equals(2)) { - sourceId = Long.valueOf(entry.getKey()); - centerRecord.setSourceId(sourceId); - } - centerRecord.setName(source.equals(2) ? "周任务奖励" : "月任务奖励"); - centerRecord.setType(9); - centerRecord.setNumber(1); - centerRecord.setCreateTime(DateUtil.now()); - centerRecord.setUpdateTime(DateUtil.now()); - taskRecordService.save(centerRecord); - week.remove(entry.getKey()); - break; + String intervalKey = StrUtil.format("user:disc-spinning:interval:limit:user:{}", userId); + if (redisUtils.hasKey(intervalKey)) { + return Result.error("抽奖请求过于频繁,请稍后再试!"); + } + redisUtils.set(lockKey, true, 30); + Result ret = Result.error(); + try { + 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("剩余抽奖活动需要实名认证后进行"); } } - redisUtils.set(redisKey, week, DateUtils.todayAfterSecond()); - } - if (source == 1 && sourceId == null) { - throw new CzgException("异常请求"); - } - if(sourceId == null){ - return Result.error("请求失败,请联系管理员"); - } - if (DataLimitUtil.isAllowed(RedisKeys.getDateKey("spinning:draw:") + sourceId, 120)) { - DiscSpinningRecord draws = discSpinningService.draws(i == null ? 1 : i + 1, amount, sourceId, userId, source); - executor.schedule(() -> discSpinningService.receive1(draws), 4, TimeUnit.SECONDS); - return new Result().put("data", draws); - } else { - throw new CzgException("异常请求"); + if (source == null || source.equals(1)) { + source = 1; + //订单抽奖 + int drawCount = Integer.parseInt(commonRepository.findOne(901).getValue()); + if (i != null && i >= drawCount) { + throw new CzgException("当日可抽奖次数已超限"); + } + Orders orders = ordersService.selectOrdersByDay(userId); + if (orders == null) { + throw new CzgException("无可抽奖机会"); + } + amount = orders.getPayMoney().doubleValue(); + sourceId = orders.getOrdersId(); + } else { + String redisKey = ""; + if (source.equals(2)) { + redisKey = RedisKeys.getDateKey("spinning:amount:taskW") + userId; + } else if (source.equals(3)) { + redisKey = RedisKeys.getDateKey("spinning:amount:taskM") + userId; + } + Map week = redisUtils.get(redisKey, Map.class); + for (Map.Entry entry : week.entrySet()) { + int value = new BigDecimal(entry.getValue().toString()).intValue(); + if (value > 1) { + value = value - 1; + week.put(entry.getKey(), value); + sourceId = Long.valueOf(entry.getKey()); + break; + } else { + TaskCenterRecord centerRecord = new TaskCenterRecord(); + centerRecord.setUserId(userId); + centerRecord.setTaskId(Long.valueOf(entry.getKey())); + if (source.equals(2)) { + sourceId = Long.valueOf(entry.getKey()); + centerRecord.setSourceId(sourceId); + } + centerRecord.setName(source.equals(2) ? "周任务奖励" : "月任务奖励"); + centerRecord.setType(9); + centerRecord.setNumber(1); + centerRecord.setCreateTime(DateUtil.now()); + centerRecord.setUpdateTime(DateUtil.now()); + taskRecordService.save(centerRecord); + week.remove(entry.getKey()); + break; + } + } + redisUtils.set(redisKey, week, DateUtils.todayAfterSecond()); + } + if (source == 1 && sourceId == null) { + throw new CzgException("异常请求"); + } + if (sourceId == null) { + return Result.error("请求失败,请联系管理员"); + } + if (DataLimitUtil.isAllowed(RedisKeys.getDateKey("spinning:draw:") + sourceId, 120)) { + DiscSpinningRecord draws = discSpinningService.draws(i == null ? 1 : i + 1, amount, sourceId, userId, source); + executor.schedule(() -> discSpinningService.receive1(draws), 4, TimeUnit.SECONDS); + redisUtils.set(intervalKey, true, 5); + return new Result().put("data", draws); + } else { + throw new CzgException("异常请求"); + } + } catch (CzgException e) { + throw e; + } catch (SqxException e) { + ret.put("msg", e.getMsg()); + } catch (Exception e) { + log.error("抽奖异常", e); + ret.put("msg", "请求失败,请联系管理员"); + } finally { + redisUtils.delete(lockKey); } + return ret; } @ApiOperation("大转盘奖项领取") From b593c7804a0c4fea505d40953e63f6f613eb0044 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Mon, 13 Jan 2025 16:57:52 +0800 Subject: [PATCH 09/22] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=BD=AC=E7=9B=98?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DiscSpinningController.java | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) 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 f4fe083a..bb0029ec 100644 --- a/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java +++ b/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java @@ -70,24 +70,19 @@ public class DiscSpinningController { @ApiOperation("添加大转盘") @Transactional public Result insertDiscSpinning(@RequestBody DiscSpinning discSpinning) { - discSpinning.setCreateTime(DateUtils.format(new Date())); - discSpinning.setNumber(discSpinning.getOdds()); - discSpinningService.save(discSpinning); - List prizes = discSpinningService.list(new QueryWrapper().eq("disc_type", discSpinning.getDiscType()).orderByAsc("type", "id")); BigDecimal number = BigDecimal.ZERO; for (DiscSpinning prize : prizes) { number = number.add(prize.getOdds()); prize.setNumber(number); } - BigDecimal totalOdds = prizes.stream() - .map(DiscSpinning::getOdds) - .filter(Objects::nonNull) - .reduce(BigDecimal.ZERO, BigDecimal::add); - if (totalOdds.compareTo(new BigDecimal(100)) > 0) { + discSpinning.setNumber(number.add(discSpinning.getOdds())); + if (discSpinning.getNumber().compareTo(new BigDecimal(100)) > 0) { return Result.error("中奖概率总和 不可超过100"); } - discSpinningService.updateBatchById(prizes); + discSpinning.setCreateTime(DateUtils.format(new Date())); + discSpinning.setNumber(discSpinning.getOdds()); + discSpinningService.save(discSpinning); return Result.success(); } @@ -100,7 +95,6 @@ public class DiscSpinningController { @PostMapping("/discSpinning/updateDiscSpinning") @ApiOperation("修改大转盘") public Result updateDiscSpinning(@RequestBody DiscSpinning discSpinning) { -// DiscSpinning current = discSpinningService.getById(discSpinning.getId()); List prizes = discSpinningService.list(new QueryWrapper().eq("disc_type", discSpinning.getDiscType()).orderByAsc("type", "id")); List upPrizes = new ArrayList<>(); BigDecimal number = BigDecimal.ZERO; From b1670d7d1a955c8a3f590db771b3fcec0951fe66 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Mon, 13 Jan 2025 16:58:50 +0800 Subject: [PATCH 10/22] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=BD=AC=E7=9B=98?= =?UTF-8?q?=E9=97=AE=E9=A2=98=20=E4=BF=AE=E6=94=B9=E8=BD=AC=E7=9B=98?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../discSpinning/controller/DiscSpinningController.java | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) 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 bb0029ec..e602f6fe 100644 --- a/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java +++ b/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java @@ -68,7 +68,6 @@ public class DiscSpinningController { @PostMapping("/discSpinning/insertDiscSpinning") @ApiOperation("添加大转盘") - @Transactional public Result insertDiscSpinning(@RequestBody DiscSpinning discSpinning) { List prizes = discSpinningService.list(new QueryWrapper().eq("disc_type", discSpinning.getDiscType()).orderByAsc("type", "id")); BigDecimal number = BigDecimal.ZERO; @@ -110,12 +109,7 @@ public class DiscSpinningController { upPrizes.add(prize); } } - - BigDecimal totalOdds = prizes.stream() - .map(DiscSpinning::getOdds) - .filter(Objects::nonNull) - .reduce(BigDecimal.ZERO, BigDecimal::add); - if (totalOdds.compareTo(new BigDecimal(100)) > 0) { + if (number.compareTo(new BigDecimal(100)) > 0) { return Result.error("中奖概率总和 不可超过100"); } discSpinningService.updateBatchById(upPrizes); From f0184aad135e64c6bbe5039bba2a6a7b9dbc0a24 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Mon, 13 Jan 2025 17:02:41 +0800 Subject: [PATCH 11/22] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=BD=AC=E7=9B=98?= =?UTF-8?q?=E9=97=AE=E9=A2=98=20=E4=BF=AE=E6=94=B9=E8=BD=AC=E7=9B=98?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../discSpinning/controller/DiscSpinningController.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) 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 7eacd8b2..4d7f4ad1 100644 --- a/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java +++ b/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java @@ -83,6 +83,7 @@ public class DiscSpinningController { } discSpinning.setCreateTime(DateUtils.format(new Date())); discSpinning.setNumber(discSpinning.getOdds()); + discSpinningService.updateBatchById(prizes); discSpinningService.save(discSpinning); return Result.success(); } @@ -99,17 +100,14 @@ public class DiscSpinningController { List prizes = discSpinningService.list(new QueryWrapper().eq("disc_type", discSpinning.getDiscType()).orderByAsc("type", "id")); List upPrizes = new ArrayList<>(); BigDecimal number = BigDecimal.ZERO; - boolean isUp = false; for (DiscSpinning prize : prizes) { //当前 if (discSpinning.getId().equals(prize.getId())) { - isUp = true; + prize = discSpinning; } number = number.add(prize.getOdds()); prize.setNumber(number); - if (isUp) { - upPrizes.add(prize); - } + upPrizes.add(prize); } if (number.compareTo(new BigDecimal(100)) > 0) { return Result.error("中奖概率总和 不可超过100"); From dfef0e536b1136b0f88b547e65253be35c01b09d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E5=87=AF=E5=87=AF?= Date: Mon, 13 Jan 2025 17:13:21 +0800 Subject: [PATCH 12/22] =?UTF-8?q?=E6=8A=BD=E5=A5=96=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=8A=A0=E9=94=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../discSpinning/controller/DiscSpinningController.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) 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 4d7f4ad1..5f75513e 100644 --- a/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java +++ b/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java @@ -5,7 +5,6 @@ import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; -import com.sqx.common.annotation.Debounce; import com.sqx.common.exception.CzgException; import com.sqx.common.exception.SqxException; import com.sqx.common.utils.*; @@ -25,7 +24,6 @@ import com.sqx.modules.taskCenter.service.TaskCenterService; import io.swagger.annotations.*; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; @@ -170,7 +168,7 @@ public class DiscSpinningController { @ApiImplicitParam(name = "source", value = "1 普通转盘 2 周任务转盘 3 月任务转盘", dataTypeClass = Integer.class), }) @ApiOperation("抽取大转盘") - @Debounce(value = "#userId") + //@Debounce(value = "#userId") public Result draw(@ApiIgnore @RequestAttribute("userId") Long userId, @RequestParam(required = false, defaultValue = "1") Integer source) throws CzgException { String lockKey = StrUtil.format("user:disc-spinning:limit:user:lock:{}", userId); if (redisUtils.hasKey(lockKey)) { From 4a8c03cb4750a506d9371b4cd26f0322fd39e0a3 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Mon, 13 Jan 2025 17:16:48 +0800 Subject: [PATCH 13/22] =?UTF-8?q?=E8=84=B1=E6=95=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sqx/modules/discSpinning/entity/DiscSpinningAmount.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/com/sqx/modules/discSpinning/entity/DiscSpinningAmount.java b/src/main/java/com/sqx/modules/discSpinning/entity/DiscSpinningAmount.java index 558a5242..b58f7016 100644 --- a/src/main/java/com/sqx/modules/discSpinning/entity/DiscSpinningAmount.java +++ b/src/main/java/com/sqx/modules/discSpinning/entity/DiscSpinningAmount.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.FieldStrategy; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.extension.activerecord.Model; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -19,6 +21,7 @@ import lombok.Data; @ApiModel(value = "现金红包 抽奖配置 实体类") public class DiscSpinningAmount extends Model { @ApiModelProperty("主键id") + @JsonSerialize(using = ToStringSerializer.class) private Long id; @ApiModelProperty("1 订单 2 周任务转盘 3 月任务转盘") private Integer type; From 87dff599b48c2c0b79195de0ba3f87678813d491 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Mon, 13 Jan 2025 17:18:38 +0800 Subject: [PATCH 14/22] =?UTF-8?q?long=E7=B1=BB=E5=9E=8B=E4=B8=A2=E5=A4=B1?= =?UTF-8?q?=E7=B2=BE=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/sqx/modules/taskCenter/entity/TaskCenter.java | 3 +++ .../sqx/modules/taskCenter/entity/TaskCenterRecord.java | 7 +++++++ .../sqx/modules/taskCenter/entity/TaskCenterReward.java | 5 +++++ .../com/sqx/modules/userSign/entity/UserSignRecord.java | 4 ++++ 4 files changed, 19 insertions(+) diff --git a/src/main/java/com/sqx/modules/taskCenter/entity/TaskCenter.java b/src/main/java/com/sqx/modules/taskCenter/entity/TaskCenter.java index 204d26dc..66814269 100644 --- a/src/main/java/com/sqx/modules/taskCenter/entity/TaskCenter.java +++ b/src/main/java/com/sqx/modules/taskCenter/entity/TaskCenter.java @@ -3,6 +3,8 @@ package com.sqx.modules.taskCenter.entity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -18,6 +20,7 @@ import lombok.Data; @ApiModel(value = "任务中心 实体类") public class TaskCenter extends Model { @ApiModelProperty("id") + @JsonSerialize(using = ToStringSerializer.class) private Long id; @ApiModelProperty("标题") private String title; diff --git a/src/main/java/com/sqx/modules/taskCenter/entity/TaskCenterRecord.java b/src/main/java/com/sqx/modules/taskCenter/entity/TaskCenterRecord.java index 2fd7b24f..a179d469 100644 --- a/src/main/java/com/sqx/modules/taskCenter/entity/TaskCenterRecord.java +++ b/src/main/java/com/sqx/modules/taskCenter/entity/TaskCenterRecord.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -20,17 +22,22 @@ import lombok.Data; public class TaskCenterRecord extends Model { @TableId(type = IdType.ID_WORKER) @ApiModelProperty(value = "id",hidden = true) + @JsonSerialize(using = ToStringSerializer.class) private Long id; @ApiModelProperty(value = "用户id",hidden = true) + @JsonSerialize(using = ToStringSerializer.class) private Long userId; @ApiModelProperty("任务Id 周任务转盘奖励时 该值为 user_sign_record的id") + @JsonSerialize(using = ToStringSerializer.class) private Long taskId; @ApiModelProperty("来源Id 周任务(签到的Id) 实物(物品Id)") + @JsonSerialize(using = ToStringSerializer.class) private Long sourceId; @ApiModelProperty("奖励名称") private String name; @ApiModelProperty("奖励类型 1 金币 2 现金 3 虚拟物品 4 5 9转盘") private Integer type; + @JsonSerialize(using = ToStringSerializer.class) private Long targetId; @ApiModelProperty("数量") private Integer number; diff --git a/src/main/java/com/sqx/modules/taskCenter/entity/TaskCenterReward.java b/src/main/java/com/sqx/modules/taskCenter/entity/TaskCenterReward.java index a0caf07e..c6bff50a 100644 --- a/src/main/java/com/sqx/modules/taskCenter/entity/TaskCenterReward.java +++ b/src/main/java/com/sqx/modules/taskCenter/entity/TaskCenterReward.java @@ -3,6 +3,8 @@ package com.sqx.modules.taskCenter.entity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -18,8 +20,10 @@ import lombok.Data; @ApiModel(value = "任务奖励 实体类") public class TaskCenterReward extends Model { @ApiModelProperty("id") + @JsonSerialize(using = ToStringSerializer.class) private Long id; @ApiModelProperty("任务Id") + @JsonSerialize(using = ToStringSerializer.class) private Long taskId; @ApiModelProperty("图片") private String img; @@ -28,6 +32,7 @@ public class TaskCenterReward extends Model { @ApiModelProperty("奖励类型 1 金币 2 现金红包 3 4 5 9 大转盘抽奖次数") private Integer type; @TableField(exist = false) + @JsonSerialize(using = ToStringSerializer.class) private Long targetId; @ApiModelProperty("数量") private Integer number; diff --git a/src/main/java/com/sqx/modules/userSign/entity/UserSignRecord.java b/src/main/java/com/sqx/modules/userSign/entity/UserSignRecord.java index f1f1b7f8..9c751db8 100644 --- a/src/main/java/com/sqx/modules/userSign/entity/UserSignRecord.java +++ b/src/main/java/com/sqx/modules/userSign/entity/UserSignRecord.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -22,8 +24,10 @@ import java.util.Date; public class UserSignRecord extends Model { @TableId(type = IdType.ID_WORKER) @ApiModelProperty("id") + @JsonSerialize(using = ToStringSerializer.class) private Long id; @ApiModelProperty("用户id") + @JsonSerialize(using = ToStringSerializer.class) private Long userId; @ApiModelProperty("累计签到") private Integer day; From 5783f33e2f6f4a5794652fc70fee92b29492a33a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E5=87=AF=E5=87=AF?= Date: Mon, 13 Jan 2025 17:20:05 +0800 Subject: [PATCH 15/22] =?UTF-8?q?=E6=8A=BD=E5=A5=96=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=8A=A0=E9=94=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../discSpinning/controller/DiscSpinningController.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 5f75513e..1220a3f1 100644 --- a/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java +++ b/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java @@ -5,6 +5,7 @@ import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.sqx.common.annotation.Debounce; import com.sqx.common.exception.CzgException; import com.sqx.common.exception.SqxException; import com.sqx.common.utils.*; @@ -168,7 +169,7 @@ public class DiscSpinningController { @ApiImplicitParam(name = "source", value = "1 普通转盘 2 周任务转盘 3 月任务转盘", dataTypeClass = Integer.class), }) @ApiOperation("抽取大转盘") - //@Debounce(value = "#userId") + @Debounce(value = "#userId") public Result draw(@ApiIgnore @RequestAttribute("userId") Long userId, @RequestParam(required = false, defaultValue = "1") Integer source) throws CzgException { String lockKey = StrUtil.format("user:disc-spinning:limit:user:lock:{}", userId); if (redisUtils.hasKey(lockKey)) { From 19db286c012a6ff637f5d67cafdad80e7543ee3d Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Mon, 13 Jan 2025 17:51:26 +0800 Subject: [PATCH 16/22] =?UTF-8?q?=E6=8A=BD=E5=A5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DiscSpinningServiceImpl.java | 10 +++++----- .../modules/redisService/impl/RedisServiceImpl.java | 6 +++++- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/sqx/modules/discSpinning/service/impl/DiscSpinningServiceImpl.java b/src/main/java/com/sqx/modules/discSpinning/service/impl/DiscSpinningServiceImpl.java index b3f389e8..b4433557 100644 --- a/src/main/java/com/sqx/modules/discSpinning/service/impl/DiscSpinningServiceImpl.java +++ b/src/main/java/com/sqx/modules/discSpinning/service/impl/DiscSpinningServiceImpl.java @@ -2,6 +2,7 @@ package com.sqx.modules.discSpinning.service.impl; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.RandomUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.sqx.common.utils.DateUtils; @@ -104,13 +105,12 @@ public class DiscSpinningServiceImpl extends ServiceImpl amounts = new ArrayList<>(); Map> amountMaps = redisUtils.getMapData(RedisKeys.getDateKey("spinning:amount:") + source, "setDiscSpinningAmounts", DiscSpinningAmount.class); for (int i = drawCount; i >= 0; i--) { @@ -125,11 +125,11 @@ public class DiscSpinningServiceImpl extends ServiceImpl amounts = amountService.list(new QueryWrapper().eq("status", 1).orderByAsc("max_amount")); + List amounts = amountService.list(new QueryWrapper() + .eq("status", 1) + .eq("type",key.split(":")[2]) + .orderByAsc("max_amount")); Map> map = amounts.stream().collect(Collectors.groupingBy( disc -> disc.getNum() == null ? 0 : disc.getNum() From 1715e5e79919abab94e331f36eb00b6491dd0bb4 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Mon, 13 Jan 2025 18:01:33 +0800 Subject: [PATCH 17/22] =?UTF-8?q?=E6=8A=BD=E5=A5=96=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../discSpinning/controller/DiscSpinningController.java | 4 ++-- .../discSpinning/service/impl/DiscSpinningServiceImpl.java | 2 +- .../taskCenter/service/impl/TaskCenterServiceImpl.java | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) 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 1220a3f1..54310c8d 100644 --- a/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java +++ b/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java @@ -207,9 +207,9 @@ public class DiscSpinningController { } else { String redisKey = ""; if (source.equals(2)) { - redisKey = RedisKeys.getDateKey("spinning:amount:taskW") + userId; + redisKey = RedisKeys.getDateKey("spinning:draw:taskW") + userId; } else if (source.equals(3)) { - redisKey = RedisKeys.getDateKey("spinning:amount:taskM") + userId; + redisKey = RedisKeys.getDateKey("spinning:draw:taskM") + userId; } Map week = redisUtils.get(redisKey, Map.class); for (Map.Entry entry : week.entrySet()) { diff --git a/src/main/java/com/sqx/modules/discSpinning/service/impl/DiscSpinningServiceImpl.java b/src/main/java/com/sqx/modules/discSpinning/service/impl/DiscSpinningServiceImpl.java index b4433557..284baf9f 100644 --- a/src/main/java/com/sqx/modules/discSpinning/service/impl/DiscSpinningServiceImpl.java +++ b/src/main/java/com/sqx/modules/discSpinning/service/impl/DiscSpinningServiceImpl.java @@ -98,7 +98,7 @@ public class DiscSpinningServiceImpl extends ServiceImpl prizes = baseMapper.selectList(new QueryWrapper().eq("disc_type", source).orderByAsc("odds")); + List prizes = baseMapper.selectList(new QueryWrapper().eq("disc_type", source).orderByAsc("number")); if (CollectionUtil.isEmpty(prizes)) { DiscSpinningRecord record = new DiscSpinningRecord(result.getName(), sourceId, userId, result.getUrl(), result.getType(), result.getNumber(), DateUtils.formatYMD(new Date()), DateUtils.format(new Date()), source); 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 488f032d..b00fc440 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 @@ -363,7 +363,7 @@ public class TaskCenterServiceImpl extends ServiceImpl Date: Mon, 13 Jan 2025 18:02:26 +0800 Subject: [PATCH 18/22] =?UTF-8?q?=E6=9D=A1=E6=AC=BE=E3=80=81=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E5=8D=8F=E8=AE=AE=E3=80=81=E9=9A=90=E7=A7=81=E6=94=BF?= =?UTF-8?q?=E7=AD=96=20=E8=BF=99=E4=BA=9B=E9=95=BFtext=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=EF=BC=8C=E4=B8=BA=E5=87=8F=E7=BC=93=E5=AE=BD=E5=B8=A6=E6=B6=88?= =?UTF-8?q?=E8=80=97=EF=BC=8C=E6=94=BE=E5=88=B0oss=E4=B8=AD=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/service/impl/CommonInfoServiceImpl.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/sqx/modules/common/service/impl/CommonInfoServiceImpl.java b/src/main/java/com/sqx/modules/common/service/impl/CommonInfoServiceImpl.java index c874766e..965940de 100644 --- a/src/main/java/com/sqx/modules/common/service/impl/CommonInfoServiceImpl.java +++ b/src/main/java/com/sqx/modules/common/service/impl/CommonInfoServiceImpl.java @@ -67,7 +67,7 @@ public class CommonInfoServiceImpl extends ServiceImpl(0); } Map data = list.stream().collect(Collectors.toMap(CommonInfo::getType, CommonInfo::getValue)); - String url = putOss(); + //String url = putOss(); // 移除 条款、服务协议、隐私政策 这些长text字段,为减缓宽带消耗,放到oss中加载 - data.put(154, url); - data.put(155, url); - data.put(246, url); + //data.put(154, url); + //data.put(155, url); + //data.put(246, url); return data; } From d650d3b44e51172a73f05a3ecf4f04918b0c449f Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Mon, 13 Jan 2025 18:19:48 +0800 Subject: [PATCH 19/22] =?UTF-8?q?=E6=8A=BD=E5=A5=96=20=E7=BB=88=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/sqx/config/ShiroConfig.java | 1 + .../controller/DiscSpinningController.java | 6 ++++++ .../service/impl/DiscSpinningServiceImpl.java | 11 +++++++---- .../modules/redisService/impl/RedisServiceImpl.java | 2 +- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/sqx/config/ShiroConfig.java b/src/main/java/com/sqx/config/ShiroConfig.java index d535d4c4..74a17164 100644 --- a/src/main/java/com/sqx/config/ShiroConfig.java +++ b/src/main/java/com/sqx/config/ShiroConfig.java @@ -53,6 +53,7 @@ public class ShiroConfig { filterMap.put("/captcha.jpg", "anon"); filterMap.put("/search/**", "anon"); filterMap.put("/cashOutAudit/batchCashOutOrder", "anon"); + filterMap.put("/app/discSpinning/receive1", "anon"); filterMap.put("/**", "oauth2"); shiroFilter.setFilterChainDefinitionMap(filterMap); 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 54310c8d..780b050c 100644 --- a/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java +++ b/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java @@ -274,6 +274,12 @@ public class DiscSpinningController { return Result.success().put("data", 1); } + @ApiOperation("大转盘奖项领取") + @RequestMapping("/app/discSpinning/receive1") + public Result receive1() { + DiscSpinningRecord draws = discSpinningService.draws(1, 0, 1876099750242897979L, 1073589141326935825L, 2); + return Result.success().put("data", draws); + } } diff --git a/src/main/java/com/sqx/modules/discSpinning/service/impl/DiscSpinningServiceImpl.java b/src/main/java/com/sqx/modules/discSpinning/service/impl/DiscSpinningServiceImpl.java index 284baf9f..3a6769a8 100644 --- a/src/main/java/com/sqx/modules/discSpinning/service/impl/DiscSpinningServiceImpl.java +++ b/src/main/java/com/sqx/modules/discSpinning/service/impl/DiscSpinningServiceImpl.java @@ -113,10 +113,12 @@ public class DiscSpinningServiceImpl extends ServiceImpl amounts = new ArrayList<>(); Map> amountMaps = redisUtils.getMapData(RedisKeys.getDateKey("spinning:amount:") + source, "setDiscSpinningAmounts", DiscSpinningAmount.class); - for (int i = drawCount; i >= 0; i--) { - if (amountMaps.containsKey(i + "")) { - amounts = amountMaps.get(i + ""); - break; + if(CollectionUtil.isNotEmpty(amountMaps)){ + for (int i = drawCount; i >= 0; i--) { + if (amountMaps.containsKey(i + "")) { + amounts = amountMaps.get(i + ""); + break; + } } } for (DiscSpinning prize : prizes) { @@ -149,6 +151,7 @@ public class DiscSpinningServiceImpl extends ServiceImpl amounts = amountService.list(new QueryWrapper() .eq("status", 1) - .eq("type",key.split(":")[2]) + .eq("type",key.split(":")[3]) .orderByAsc("max_amount")); Map> map = amounts.stream().collect(Collectors.groupingBy( From eea862961b8b73721921fdfb0ab7626e42e1bbf7 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Mon, 13 Jan 2025 18:34:32 +0800 Subject: [PATCH 20/22] =?UTF-8?q?=E6=8A=BD=E5=A5=96=20=E7=BB=88=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DiscSpinningController.java | 8 -------- .../service/impl/DiscSpinningServiceImpl.java | 13 ++++++++++--- 2 files changed, 10 insertions(+), 11 deletions(-) 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 780b050c..420f1615 100644 --- a/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java +++ b/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java @@ -273,13 +273,5 @@ public class DiscSpinningController { // userService.addBlackUser(userId, "转盘奖项领取"); return Result.success().put("data", 1); } - - @ApiOperation("大转盘奖项领取") - @RequestMapping("/app/discSpinning/receive1") - public Result receive1() { - DiscSpinningRecord draws = discSpinningService.draws(1, 0, 1876099750242897979L, 1073589141326935825L, 2); - return Result.success().put("data", draws); - } - } diff --git a/src/main/java/com/sqx/modules/discSpinning/service/impl/DiscSpinningServiceImpl.java b/src/main/java/com/sqx/modules/discSpinning/service/impl/DiscSpinningServiceImpl.java index 3a6769a8..a666495e 100644 --- a/src/main/java/com/sqx/modules/discSpinning/service/impl/DiscSpinningServiceImpl.java +++ b/src/main/java/com/sqx/modules/discSpinning/service/impl/DiscSpinningServiceImpl.java @@ -109,11 +109,18 @@ public class DiscSpinningServiceImpl extends ServiceImpl amounts = new ArrayList<>(); Map> amountMaps = redisUtils.getMapData(RedisKeys.getDateKey("spinning:amount:") + source, "setDiscSpinningAmounts", DiscSpinningAmount.class); - if(CollectionUtil.isNotEmpty(amountMaps)){ + if (CollectionUtil.isNotEmpty(amountMaps)) { for (int i = drawCount; i >= 0; i--) { if (amountMaps.containsKey(i + "")) { amounts = amountMaps.get(i + ""); From 3ac47228d17f937fd0e17fa445af5f7eab83079b 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, 13 Jan 2025 18:40:50 +0800 Subject: [PATCH 21/22] =?UTF-8?q?=E5=90=8E=E5=8F=B0=E5=AE=9E=E5=90=8D?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/sqx/modules/app/entity/UserInfo.java | 52 +++---------------- .../modules/app/service/UserInfoService.java | 2 + .../app/service/impl/UserInfoServiceImpl.java | 44 +++++++++++++++- .../controller/UserInfoController.java | 43 +++++++++++++++ .../sqx/modules/userinfo/dao/UserInfoDAO.java | 43 +++++++++++++++ 5 files changed, 137 insertions(+), 47 deletions(-) create mode 100644 src/main/java/com/sqx/modules/userinfo/controller/UserInfoController.java create mode 100644 src/main/java/com/sqx/modules/userinfo/dao/UserInfoDAO.java diff --git a/src/main/java/com/sqx/modules/app/entity/UserInfo.java b/src/main/java/com/sqx/modules/app/entity/UserInfo.java index a2a1b434..ec6769b8 100644 --- a/src/main/java/com/sqx/modules/app/entity/UserInfo.java +++ b/src/main/java/com/sqx/modules/app/entity/UserInfo.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import lombok.Data; +import lombok.EqualsAndHashCode; import java.io.Serializable; import java.util.Date; @@ -14,6 +15,7 @@ import java.util.Date; */ @TableName(value ="user_info") @Data +@EqualsAndHashCode public class UserInfo implements Serializable { /** * @@ -64,53 +66,13 @@ public class UserInfo implements Serializable { */ private Date updateTime; + @TableField(exist = false) + private String name; + @TableField(exist = false) + private String phone; + @TableField(exist = false) private static final long serialVersionUID = 1L; - @Override - public boolean equals(Object that) { - if (this == that) { - return true; - } - if (that == null) { - return false; - } - if (getClass() != that.getClass()) { - return false; - } - UserInfo other = (UserInfo) that; - return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId())) - && (this.getUserId() == null ? other.getUserId() == null : this.getUserId().equals(other.getUserId())) - && (this.getCertName() == null ? other.getCertName() == null : this.getCertName().equals(other.getCertName())) - && (this.getCertNo() == null ? other.getCertNo() == null : this.getCertNo().equals(other.getCertNo())) - && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime())); - } - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((getId() == null) ? 0 : getId().hashCode()); - result = prime * result + ((getUserId() == null) ? 0 : getUserId().hashCode()); - result = prime * result + ((getCertName() == null) ? 0 : getCertName().hashCode()); - result = prime * result + ((getCertNo() == null) ? 0 : getCertNo().hashCode()); - result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode()); - return result; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", userId=").append(userId); - sb.append(", certName=").append(certName); - sb.append(", certNo=").append(certNo); - sb.append(", updateTime=").append(updateTime); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } } 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 3b8c73f9..b5afef35 100644 --- a/src/main/java/com/sqx/modules/app/service/UserInfoService.java +++ b/src/main/java/com/sqx/modules/app/service/UserInfoService.java @@ -30,4 +30,6 @@ public interface UserInfoService extends IService { Integer countCertCount(String name, String idNum, String accountNo, String mobile); int getAuthUserTag(long userId); + + Object getList(Integer page, Integer size, String phone, String name); } 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 4605443b..ff9e10cb 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 @@ -4,13 +4,18 @@ import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.sqx.common.utils.PageUtils; +import com.sqx.modules.app.dao.UserDao; +import com.sqx.modules.app.entity.UserEntity; import com.sqx.modules.app.entity.UserInfo; import com.sqx.modules.app.mapper.UserInfoMapper; import com.sqx.modules.app.service.UserInfoService; import org.springframework.stereotype.Service; -import java.util.Comparator; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; /** * @author Administrator @@ -21,6 +26,13 @@ import java.util.List; public class UserInfoServiceImpl extends ServiceImpl implements UserInfoService { + private final UserDao userDao; + + public UserInfoServiceImpl(UserDao userDao) { + this.userDao = userDao; + } + + @Override public UserInfo getByUserIdOrSave(long userId) { UserInfo userInfo = getOne(new LambdaQueryWrapper() @@ -114,6 +126,34 @@ public class UserInfoServiceImpl extends ServiceImpl // 老用户 return 2; } + + @Override + public Object getList(Integer page, Integer size, String phone, String name) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + if (StrUtil.isNotBlank(phone)) { + UserEntity userEntity = userDao.selectOne(new LambdaQueryWrapper().eq(UserEntity::getPhone, phone)); + lambdaQueryWrapper.eq(UserInfo::getUserId, userEntity == null ? -99999 : userEntity.getUserId()); + } + + if (StrUtil.isNotBlank(name)) { + lambdaQueryWrapper.like(UserInfo::getCertName, name); + } + PageHelper.startPage(page, size); + List userInfoList = list(lambdaQueryWrapper); + PageInfo userInfoPageInfo = new PageInfo<>(userInfoList); + + Set userIdList = userInfoList.stream().map(UserInfo::getUserId).collect(Collectors.toSet()); + Map userMap = userIdList.isEmpty() ? new HashMap<>() : userDao.selectList(new LambdaQueryWrapper().in(UserEntity::getUserId, userIdList)) + .stream().collect(Collectors.toMap(UserEntity::getUserId, item -> item)); + + userInfoList.forEach(item -> { + UserEntity userEntity = userMap.get(item.getUserId()); + if (userEntity == null) return; + item.setName(userEntity.getUserName()); + item.setPhone(userEntity.getPhone()); + }); + return PageUtils.page(userInfoPageInfo); + } } diff --git a/src/main/java/com/sqx/modules/userinfo/controller/UserInfoController.java b/src/main/java/com/sqx/modules/userinfo/controller/UserInfoController.java new file mode 100644 index 00000000..b940e590 --- /dev/null +++ b/src/main/java/com/sqx/modules/userinfo/controller/UserInfoController.java @@ -0,0 +1,43 @@ +package com.sqx.modules.userinfo.controller; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.sqx.common.utils.Result; +import com.sqx.modules.app.entity.UserInfo; +import com.sqx.modules.app.service.UserInfoService; +import com.sqx.modules.userinfo.dao.UserInfoDAO; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/userInfo") +public class UserInfoController { + + private final UserInfoService userInfoService; + + public UserInfoController(UserInfoService userInfoService) { + this.userInfoService = userInfoService; + } + + @GetMapping("/list") + public Result getList(@RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "10") Integer size, + @RequestParam(required = false) String phone, @RequestParam(required = false) String name) { + + return Result.success().put("data", userInfoService.getList(page, size, phone, name)); + } + + + @PutMapping + public Result update(@RequestBody @Validated UserInfoDAO userInfoDAO) { + UserInfo info = new UserInfo(); + BeanUtil.copyProperties(userInfoDAO, info); + info.setUpdateTime(DateUtil.date()); + return Result.success().put("data", userInfoService.update(info, new LambdaQueryWrapper().eq(UserInfo::getUserId, userInfoDAO.getUserId()))); + } + + @DeleteMapping + public Result delete(@RequestBody @Validated UserInfoDAO userInfoDAO) { + return Result.success().put("data", userInfoService.remove(new LambdaQueryWrapper().eq(UserInfo::getUserId, userInfoDAO.getUserId()))); + } +} diff --git a/src/main/java/com/sqx/modules/userinfo/dao/UserInfoDAO.java b/src/main/java/com/sqx/modules/userinfo/dao/UserInfoDAO.java new file mode 100644 index 00000000..622f3e16 --- /dev/null +++ b/src/main/java/com/sqx/modules/userinfo/dao/UserInfoDAO.java @@ -0,0 +1,43 @@ +package com.sqx.modules.userinfo.dao; + +import com.baomidou.mybatisplus.annotation.FieldStrategy; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Data +public class UserInfoDAO { + /** + * 用户id + */ + @NotNull + private Long userId; + + /** + * 姓名 + */ + private String certName; + + /** + * 身份证号码 + */ + private String certNo; + + /** + * 银行账号 + */ + private String accountNo; + + /** + * 银行预留手机号 + */ + private String mobile; + + /** + * 银行预留手机号 + */ + private String bankName; +} From 322074b4e051a229156f4b046c3d02c4254ebb17 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Mon, 13 Jan 2025 18:42:09 +0800 Subject: [PATCH 22/22] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=BE=88=E5=B0=8F?= =?UTF-8?q?=E7=9A=84=20=E9=9A=8F=E6=9C=BA=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../discSpinning/service/impl/DiscSpinningServiceImpl.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/java/com/sqx/modules/discSpinning/service/impl/DiscSpinningServiceImpl.java b/src/main/java/com/sqx/modules/discSpinning/service/impl/DiscSpinningServiceImpl.java index a666495e..c01a41a8 100644 --- a/src/main/java/com/sqx/modules/discSpinning/service/impl/DiscSpinningServiceImpl.java +++ b/src/main/java/com/sqx/modules/discSpinning/service/impl/DiscSpinningServiceImpl.java @@ -183,5 +183,12 @@ public class DiscSpinningServiceImpl extends ServiceImpl