From dacf3097317cebfb766dcfe66533a08fbe25d0e4 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Wed, 25 Dec 2024 14:09:18 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E5=AE=9E=E7=89=A9=E9=A2=86=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pay/controller/CashController.java | 5 ++ .../controller/TaskCenterController.java | 56 ++++++++++++++++++- .../taskCenter/entity/TaskCenterRecord.java | 15 ++--- .../taskCenter/entity/TaskCenterReward.java | 4 ++ .../service/impl/TaskCenterServiceImpl.java | 12 +++- 5 files changed, 77 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/sqx/modules/pay/controller/CashController.java b/src/main/java/com/sqx/modules/pay/controller/CashController.java index 9029252f..b81a4dea 100644 --- a/src/main/java/com/sqx/modules/pay/controller/CashController.java +++ b/src/main/java/com/sqx/modules/pay/controller/CashController.java @@ -10,6 +10,7 @@ import com.alipay.api.request.AlipayFundTransToaccountTransferRequest; import com.alipay.api.request.AlipayFundTransUniTransferRequest; import com.alipay.api.response.AlipayFundTransToaccountTransferResponse; import com.alipay.api.response.AlipayFundTransUniTransferResponse; +import com.sqx.common.annotation.Debounce; import com.sqx.common.utils.Result; import com.sqx.modules.app.annotation.Login; import com.sqx.modules.app.entity.UserEntity; @@ -265,6 +266,7 @@ public class CashController { @RequestMapping(value = "/alipay/{cashId}", method = RequestMethod.POST) @ApiOperation("管理平台确认提现") @ResponseBody + @Debounce(interval = 3000, value = "#cashId") public Result alipayPay(@PathVariable Long cashId) { reentrantReadWriteLock.writeLock().lock(); try { @@ -419,6 +421,7 @@ public class CashController { @RequestMapping(value = "/refund/{cashId}/{content}", method = RequestMethod.POST) @ApiOperation("管理平台退款") @ResponseBody + @Debounce(interval = 3000, value = "#cashId") public Result refund(@PathVariable("cashId") Long cashId, @PathVariable("content") String content) { CashOut one = cashOutService.selectById(cashId); if (one == null) { @@ -479,6 +482,7 @@ public class CashController { @GetMapping(value = "/cashMoney") @ApiOperation("发起提现") + @Debounce(interval = 3000, value = "#userId") public Result cashMoney(Long userId, Double money) { return cashOutService.sysCashMoney(userId, money); } @@ -491,6 +495,7 @@ public class CashController { @ApiImplicitParam(name = "money", value = "提现金额", dataTypeClass = Double.class, paramType = "param"), @ApiImplicitParam(name = "msg", value = "验证码", dataTypeClass = String.class, paramType = "param"), }) + @Debounce(interval = 3000, value = "#userId") public Result withdraw(Long userId, Double money, String msg) { if (StringUtils.isBlank(msg)) { return Result.error("请输入验证码"); diff --git a/src/main/java/com/sqx/modules/taskCenter/controller/TaskCenterController.java b/src/main/java/com/sqx/modules/taskCenter/controller/TaskCenterController.java index 343c3ad0..b9d563e7 100644 --- a/src/main/java/com/sqx/modules/taskCenter/controller/TaskCenterController.java +++ b/src/main/java/com/sqx/modules/taskCenter/controller/TaskCenterController.java @@ -8,7 +8,12 @@ import com.sqx.common.annotation.Debounce; import com.sqx.common.utils.Result; import com.sqx.modules.app.annotation.Login; import com.sqx.modules.taskCenter.entity.TaskCenter; +import com.sqx.modules.taskCenter.entity.TaskCenterRecord; +import com.sqx.modules.taskCenter.entity.TaskCenterReward; +import com.sqx.modules.taskCenter.service.TaskCenterRecordService; +import com.sqx.modules.taskCenter.service.TaskCenterRewardService; import com.sqx.modules.taskCenter.service.TaskCenterService; +import com.sqx.modules.userSign.entity.UserSignRecord; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -18,6 +23,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; +import java.util.Date; +import java.util.Objects; + @Slf4j @RestController @Api(value = "任务中心", tags = {"任务中心"}) @@ -29,6 +37,11 @@ public class TaskCenterController { @Autowired private TaskCenterService taskCenterService; + @Autowired + private TaskCenterRecordService recordService; + @Autowired + private TaskCenterRewardService taskRewardService; + @PostMapping("/taskCenter/insertTaskCenter") @ApiOperation("添加任务中心") public Result insertTaskCenter(@RequestBody TaskCenter taskCenter) { @@ -61,7 +74,7 @@ public class TaskCenterController { @GetMapping("/taskCenter/selectTaskCenter") @ApiOperation("查询任务中心") public Result selectTaskCenter(Integer page, Integer limit) { - return Result.success().put("data", taskCenterService.page(new Page<>(page, limit), new QueryWrapper().orderByAsc("sort","type"))); + return Result.success().put("data", taskCenterService.page(new Page<>(page, limit), new QueryWrapper().orderByAsc("sort", "type"))); } @@ -79,8 +92,45 @@ public class TaskCenterController { }) @ApiOperation("App 任务中心 领取") @Debounce(interval = 1000, value = "#userId") - public Result taskReceive(@ApiIgnore @RequestAttribute("userId") Long userId,Long id) { - return taskCenterService.taskReceive(userId,id); + public Result taskReceive(@ApiIgnore @RequestAttribute("userId") Long userId, Long id) { + return taskCenterService.taskReceive(userId, id); } + + @Login + @PostMapping("/app/taskCenter/receiveGoods") + @ApiOperation("App 实物领取") + @ApiImplicitParams({ + @ApiImplicitParam(name = "taskId", value = "任务id", dataTypeClass = Long.class, paramType = "body"), + @ApiImplicitParam(name = "sourceId", value = "实物(物品Id)", dataTypeClass = Long.class, paramType = "body") + }) + @Debounce(interval = 1000, value = "#userId") + public Result receiveGoods(@ApiIgnore @RequestAttribute("userId") Long userId, TaskCenterRecord record) { + TaskCenter task = taskCenterService.getById(record.getTaskId()); + if (Objects.isNull(task)) { + return Result.error("任务不存在。"); + } + if (recordService.countTaskNum(userId, record.getTaskId(), DateUtil.beginOfMonth(new Date()) + " 00:00:00") > 0) { + return Result.error("该奖励仅可领取一次。"); + } + TaskCenterReward reward = taskRewardService.getOne(new QueryWrapper() + .eq("task_id", record.getTaskId()) + .eq("type", 3) + .eq("id", record.getSourceId())); + if (Objects.isNull(reward)) { + return Result.error("该奖励不存在。"); + } + if (reward.getSurplusNumber() == null || reward.getSurplusNumber() < 1) { + return Result.error("暂无库存,请领取其它奖励。"); + } + record.setNumber(1); + record.setName(reward.getName()); + record.setUserId(userId); + record.setType(3); + record.setCreateTime(DateUtil.now()); + record.setUpdateTime(DateUtil.now()); + recordService.save(record); + return Result.success(); + } + } 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 77545b82..53e44daa 100644 --- a/src/main/java/com/sqx/modules/taskCenter/entity/TaskCenterRecord.java +++ b/src/main/java/com/sqx/modules/taskCenter/entity/TaskCenterRecord.java @@ -1,14 +1,9 @@ package com.sqx.modules.taskCenter.entity; -import java.util.Date; - -import com.baomidou.mybatisplus.extension.activerecord.Model; import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; - -import java.io.Serializable; - import lombok.Data; /** @@ -21,17 +16,17 @@ import lombok.Data; @TableName("task_center_record") @ApiModel(value = "任务领取记录 实体类") public class TaskCenterRecord extends Model { - @ApiModelProperty("id") + @ApiModelProperty(value = "id",hidden = true) private Long id; - @ApiModelProperty("用户id") + @ApiModelProperty(value = "用户id",hidden = true) private Long userId; @ApiModelProperty("任务Id 周任务转盘奖励时 该值为 user_sign_record的id") private Long taskId; - @ApiModelProperty("来源Id 目前仅周任务使用") + @ApiModelProperty("来源Id 周任务(签到的Id) 实物(物品Id)") private Long sourceId; @ApiModelProperty("奖励名称") private String name; - @ApiModelProperty("奖励类型 1 金币 2 现金 3 4 5 9转盘") + @ApiModelProperty("奖励类型 1 金币 2 现金 3 虚拟物品 4 5 9转盘") private Integer type; private Long targetId; @ApiModelProperty("数量") 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 42311d31..1cd308e6 100644 --- a/src/main/java/com/sqx/modules/taskCenter/entity/TaskCenterReward.java +++ b/src/main/java/com/sqx/modules/taskCenter/entity/TaskCenterReward.java @@ -29,6 +29,10 @@ public class TaskCenterReward extends Model { private Integer targetId; @ApiModelProperty("数量") private Integer number; + @ApiModelProperty("总数量") + private Integer totalNumber; + @ApiModelProperty("剩余数量") + private Integer surplusNumber; private String createTime; private String updateTime; 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 da13081d..3846b2a4 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 @@ -136,11 +136,19 @@ public class TaskCenterServiceImpl extends ServiceImpl 0) { + s.setButtonTitle("已领取"); + s.setDisabled(false); + s.setNumber(null); + s.setDiscNumber(null); + }else { + s.setDiscNumber(null); + s.setNumber(null); + } } } } From b3f206ac40bae2d582af382e0602898202f78c69 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Wed, 25 Dec 2024 14:14:36 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E5=BF=BD=E7=95=A5=E5=AE=9E=E4=BD=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sqx/modules/taskCenter/controller/TaskCenterController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/sqx/modules/taskCenter/controller/TaskCenterController.java b/src/main/java/com/sqx/modules/taskCenter/controller/TaskCenterController.java index b9d563e7..8c5bee0a 100644 --- a/src/main/java/com/sqx/modules/taskCenter/controller/TaskCenterController.java +++ b/src/main/java/com/sqx/modules/taskCenter/controller/TaskCenterController.java @@ -104,7 +104,7 @@ public class TaskCenterController { @ApiImplicitParam(name = "sourceId", value = "实物(物品Id)", dataTypeClass = Long.class, paramType = "body") }) @Debounce(interval = 1000, value = "#userId") - public Result receiveGoods(@ApiIgnore @RequestAttribute("userId") Long userId, TaskCenterRecord record) { + public Result receiveGoods(@ApiIgnore @RequestAttribute("userId") Long userId,@ApiIgnore TaskCenterRecord record) { TaskCenter task = taskCenterService.getById(record.getTaskId()); if (Objects.isNull(task)) { return Result.error("任务不存在。"); From 98c6959fe652f856dfd68e9461e48637905d3f35 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Wed, 25 Dec 2024 14:26:44 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E5=A5=96=E5=8A=B1?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=95=B0=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/TaskCenterRewardController.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/sqx/modules/taskCenter/controller/TaskCenterRewardController.java b/src/main/java/com/sqx/modules/taskCenter/controller/TaskCenterRewardController.java index 90bd8aac..d5258c93 100644 --- a/src/main/java/com/sqx/modules/taskCenter/controller/TaskCenterRewardController.java +++ b/src/main/java/com/sqx/modules/taskCenter/controller/TaskCenterRewardController.java @@ -30,6 +30,7 @@ public class TaskCenterRewardController { @ApiOperation("添加任务奖励") public Result insertTaskCenterReward(@RequestBody TaskCenterReward taskCenterReward) { taskCenterReward.setCreateTime(DateUtils.format(new Date())); + taskCenterReward.setSurplusNumber(taskCenterReward.getTotalNumber()); taskCenterRewardService.save(taskCenterReward); return Result.success(); } @@ -43,6 +44,15 @@ public class TaskCenterRewardController { @PostMapping("/updateTaskCenterReward") @ApiOperation("修改任务奖励") public Result updateTaskCenterReward(@RequestBody TaskCenterReward taskCenterReward) { + TaskCenterReward reward = taskCenterRewardService.getById(taskCenterReward.getId()); + if (taskCenterReward.getTotalNumber() != null && reward.getTotalNumber() != null && !taskCenterReward.getTotalNumber().equals(reward.getTotalNumber())) { + Integer surplusNumber = taskCenterReward.getTotalNumber() - reward.getTotalNumber(); + if (surplusNumber > 0) { + taskCenterReward.setSurplusNumber(taskCenterReward.getSurplusNumber() == null ? surplusNumber : taskCenterReward.getSurplusNumber() + surplusNumber); + } else { + taskCenterReward.setSurplusNumber(taskCenterReward.getTotalNumber()); + } + } taskCenterReward.setUpdateTime(DateUtils.format(new Date())); taskCenterRewardService.updateById(taskCenterReward); return Result.success(); @@ -57,7 +67,7 @@ public class TaskCenterRewardController { @GetMapping("/selectTaskCenterReward") @ApiOperation("查询任务奖励") - public Result selectTaskCenterReward(Integer page, Integer limit,TaskCenterReward taskCenterReward) { + public Result selectTaskCenterReward(Integer page, Integer limit, TaskCenterReward taskCenterReward) { return Result.success().put("data", taskCenterRewardService.page(new Page<>(page, limit), new QueryWrapper<>(taskCenterReward).orderByDesc("id"))); } } From cef4c4a17b9d0d6a9986cb7b5dbab8f4cb70d109 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Wed, 25 Dec 2024 15:00:00 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E5=A5=96=E5=8A=B1=20=20?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TaskCenterRewardController.java | 33 +++++++++++++++++++ .../taskCenter/entity/TaskCenterReward.java | 4 +++ 2 files changed, 37 insertions(+) diff --git a/src/main/java/com/sqx/modules/taskCenter/controller/TaskCenterRewardController.java b/src/main/java/com/sqx/modules/taskCenter/controller/TaskCenterRewardController.java index d5258c93..f77249f1 100644 --- a/src/main/java/com/sqx/modules/taskCenter/controller/TaskCenterRewardController.java +++ b/src/main/java/com/sqx/modules/taskCenter/controller/TaskCenterRewardController.java @@ -1,19 +1,27 @@ package com.sqx.modules.taskCenter.controller; +import cn.hutool.core.date.DateUtil; +import com.sqx.modules.app.annotation.Login; +import com.sqx.modules.taskCenter.entity.TaskCenterRecord; import com.sqx.modules.taskCenter.entity.TaskCenterReward; +import com.sqx.modules.taskCenter.service.TaskCenterRecordService; import com.sqx.modules.taskCenter.service.TaskCenterRewardService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.sqx.common.utils.DateUtils; import com.sqx.common.utils.Result; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import springfox.documentation.annotations.ApiIgnore; import java.util.Date; +import java.util.List; @Slf4j @RestController @@ -25,6 +33,8 @@ public class TaskCenterRewardController { */ @Autowired private TaskCenterRewardService taskCenterRewardService; + @Autowired + private TaskCenterRecordService recordService; @PostMapping("/insertTaskCenterReward") @ApiOperation("添加任务奖励") @@ -70,5 +80,28 @@ public class TaskCenterRewardController { public Result selectTaskCenterReward(Integer page, Integer limit, TaskCenterReward taskCenterReward) { return Result.success().put("data", taskCenterRewardService.page(new Page<>(page, limit), new QueryWrapper<>(taskCenterReward).orderByDesc("id"))); } + + @Login + @GetMapping("/selectTaskCenterUserReward") + @ApiOperation("查询用户任务奖励列表") + @ApiImplicitParams({ + @ApiImplicitParam(name = "taskId", value = "任务id", dataTypeClass = Long.class), + }) + public Result selectTaskCenterUserReward(@ApiIgnore @RequestAttribute("userId") Long userId, Long taskId) { + QueryWrapper rewards = new QueryWrapper().eq("task_id", taskId); + List list = taskCenterRewardService.list(rewards); + TaskCenterRecord record = recordService.getOne(new QueryWrapper() + .eq("user_id", userId) + .eq("task_id", taskId) + .gt("create_time", DateUtil.beginOfMonth(new Date()) + " 00:00:00")); + if (record != null) { + for (TaskCenterReward reward : list) { + if (record.getSourceId().equals(reward.getId())) { + reward.setReceive(true); + } + } + } + return Result.success().put("data", list); + } } 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 1cd308e6..6039c774 100644 --- a/src/main/java/com/sqx/modules/taskCenter/entity/TaskCenterReward.java +++ b/src/main/java/com/sqx/modules/taskCenter/entity/TaskCenterReward.java @@ -1,5 +1,6 @@ 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 io.swagger.annotations.ApiModel; @@ -33,6 +34,9 @@ public class TaskCenterReward extends Model { private Integer totalNumber; @ApiModelProperty("剩余数量") private Integer surplusNumber; + @TableField(exist = false) + @ApiModelProperty("是否已领取") + private boolean isReceive = false; private String createTime; private String updateTime; From f21972b14c1b6ea4291afd915eb16321a3de4686 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Wed, 25 Dec 2024 15:07:25 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E5=A5=96=E5=8A=B1=20=20?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/TaskCenterRewardController.java | 12 ++++++------ .../modules/taskCenter/entity/TaskCenterReward.java | 2 -- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/sqx/modules/taskCenter/controller/TaskCenterRewardController.java b/src/main/java/com/sqx/modules/taskCenter/controller/TaskCenterRewardController.java index f77249f1..6b537923 100644 --- a/src/main/java/com/sqx/modules/taskCenter/controller/TaskCenterRewardController.java +++ b/src/main/java/com/sqx/modules/taskCenter/controller/TaskCenterRewardController.java @@ -21,7 +21,9 @@ import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; @Slf4j @RestController @@ -88,6 +90,7 @@ public class TaskCenterRewardController { @ApiImplicitParam(name = "taskId", value = "任务id", dataTypeClass = Long.class), }) public Result selectTaskCenterUserReward(@ApiIgnore @RequestAttribute("userId") Long userId, Long taskId) { + Map map = new HashMap<>(); QueryWrapper rewards = new QueryWrapper().eq("task_id", taskId); List list = taskCenterRewardService.list(rewards); TaskCenterRecord record = recordService.getOne(new QueryWrapper() @@ -95,13 +98,10 @@ public class TaskCenterRewardController { .eq("task_id", taskId) .gt("create_time", DateUtil.beginOfMonth(new Date()) + " 00:00:00")); if (record != null) { - for (TaskCenterReward reward : list) { - if (record.getSourceId().equals(reward.getId())) { - reward.setReceive(true); - } - } + map.put("receive", record.getId()); } - return Result.success().put("data", list); + map.put("data", list); + return Result.success(map); } } 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 6039c774..a7386d9b 100644 --- a/src/main/java/com/sqx/modules/taskCenter/entity/TaskCenterReward.java +++ b/src/main/java/com/sqx/modules/taskCenter/entity/TaskCenterReward.java @@ -35,8 +35,6 @@ public class TaskCenterReward extends Model { @ApiModelProperty("剩余数量") private Integer surplusNumber; @TableField(exist = false) - @ApiModelProperty("是否已领取") - private boolean isReceive = false; private String createTime; private String updateTime;