From 6ffa4d5bf8de89ead232a318064adc1afca948a0 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Tue, 24 Dec 2024 09:29:33 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E6=8A=BD=E5=A5=96=E6=AC=A1=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../userSign/dao/UserSignRecordDao.java | 4 ++- .../impl/UserSignRecordServiceImpl.java | 3 +- .../resources/mapper/orders/OrdersDao.xml | 4 +-- .../mapper/userSign/TaskCenterDto.xml | 31 +++++++++++++++---- 4 files changed, 32 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/sqx/modules/userSign/dao/UserSignRecordDao.java b/src/main/java/com/sqx/modules/userSign/dao/UserSignRecordDao.java index 878ec4f8..44ccb713 100644 --- a/src/main/java/com/sqx/modules/userSign/dao/UserSignRecordDao.java +++ b/src/main/java/com/sqx/modules/userSign/dao/UserSignRecordDao.java @@ -4,12 +4,14 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.sqx.modules.userSign.entity.UserSignRecord; import org.apache.ibatis.annotations.Mapper; +import java.util.List; import java.util.Map; @Mapper public interface UserSignRecordDao extends BaseMapper { //周 抽奖次数 - Map getTaskWCount(long userId, int wCount,String time); + Map getTaskWCount(long userId, int wCount,String time,List ids); + List getNoRecordTask(long userId, String time); //周 签到 次数 连续签到 Integer getWSignCount(long userId,String time); diff --git a/src/main/java/com/sqx/modules/userSign/service/impl/UserSignRecordServiceImpl.java b/src/main/java/com/sqx/modules/userSign/service/impl/UserSignRecordServiceImpl.java index a95af798..698bf03b 100644 --- a/src/main/java/com/sqx/modules/userSign/service/impl/UserSignRecordServiceImpl.java +++ b/src/main/java/com/sqx/modules/userSign/service/impl/UserSignRecordServiceImpl.java @@ -134,7 +134,8 @@ public class UserSignRecordServiceImpl extends ServiceImpl getTaskWCount(long userId,int wCount) { Date thirtyDaysAgo = DateUtil.offsetDay(new Date(), -30); - return baseMapper.getTaskWCount(userId,wCount,DateUtil.format(thirtyDaysAgo, "yyyy-MM-dd")+" 00:00:00"); + List noRecordTasks = baseMapper.getNoRecordTask(userId, DateUtil.format(thirtyDaysAgo, "yyyy-MM-dd") + " 00:00:00"); + return baseMapper.getTaskWCount(userId, wCount, DateUtil.format(thirtyDaysAgo, "yyyy-MM-dd") + " 00:00:00", noRecordTasks); } @Override diff --git a/src/main/resources/mapper/orders/OrdersDao.xml b/src/main/resources/mapper/orders/OrdersDao.xml index 5cd28465..79ba95f7 100644 --- a/src/main/resources/mapper/orders/OrdersDao.xml +++ b/src/main/resources/mapper/orders/OrdersDao.xml @@ -286,7 +286,7 @@ AND orders.`status` = 1 AND orders.`pay_way` = 9 AND orders.create_time > DATE_FORMAT(CURDATE(), '%Y-%m-%d 00:00:00') - AND record.order_id IS NULL + AND record.source_id IS NULL ORDER BY orders.create_time @@ -298,7 +298,7 @@ AND orders.`status` = 1 AND orders.`pay_way` = 9 AND orders.create_time > DATE_FORMAT(CURDATE(), '%Y-%m-%d 00:00:00') - AND record.order_id IS NULL + AND record.source_id IS NULL ORDER BY orders.create_time LIMIT 1 diff --git a/src/main/resources/mapper/userSign/TaskCenterDto.xml b/src/main/resources/mapper/userSign/TaskCenterDto.xml index 52489664..389a2cc3 100644 --- a/src/main/resources/mapper/userSign/TaskCenterDto.xml +++ b/src/main/resources/mapper/userSign/TaskCenterDto.xml @@ -2,19 +2,38 @@ + + From 8ffb5bb32928274011588d65767192646bb722b4 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Tue, 24 Dec 2024 10:39:11 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E6=8A=BD=E5=A5=96=E6=AC=A1=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../taskCenter/dao/TaskCenterRewardDao.java | 3 ++- .../service/impl/TaskCenterRewardServiceImpl.java | 12 +++++++++++- .../service/impl/TaskCenterServiceImpl.java | 15 ++++++++++----- .../modules/userSign/dao/UserSignRecordDao.java | 5 +++-- .../userSign/service/UserSignRecordService.java | 2 +- .../service/impl/UserSignRecordServiceImpl.java | 13 ++++++++++--- .../resources/mapper/userSign/TaskCenterDto.xml | 8 ++++---- 7 files changed, 41 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/sqx/modules/taskCenter/dao/TaskCenterRewardDao.java b/src/main/java/com/sqx/modules/taskCenter/dao/TaskCenterRewardDao.java index ac11f2e4..127187d0 100644 --- a/src/main/java/com/sqx/modules/taskCenter/dao/TaskCenterRewardDao.java +++ b/src/main/java/com/sqx/modules/taskCenter/dao/TaskCenterRewardDao.java @@ -5,13 +5,14 @@ import com.sqx.modules.taskCenter.entity.TaskCenterReward; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; +import java.util.List; import java.util.Map; @Mapper public interface TaskCenterRewardDao extends BaseMapper { @Select("SELECT type,number FROM `task_center_reward` where task_id = #{taskId}") - Map getRewardMap(Long taskId); + List getRewardMap(Long taskId); } diff --git a/src/main/java/com/sqx/modules/taskCenter/service/impl/TaskCenterRewardServiceImpl.java b/src/main/java/com/sqx/modules/taskCenter/service/impl/TaskCenterRewardServiceImpl.java index 624554a0..1a09030f 100644 --- a/src/main/java/com/sqx/modules/taskCenter/service/impl/TaskCenterRewardServiceImpl.java +++ b/src/main/java/com/sqx/modules/taskCenter/service/impl/TaskCenterRewardServiceImpl.java @@ -9,7 +9,10 @@ import org.apache.commons.lang3.StringUtils; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.springframework.beans.factory.annotation.Autowired; +import java.util.HashMap; +import java.util.List; import java.util.Map; +import java.util.stream.Collectors; @Service public class TaskCenterRewardServiceImpl extends ServiceImpl implements TaskCenterRewardService { @@ -17,7 +20,14 @@ public class TaskCenterRewardServiceImpl extends ServiceImpl getRewardMap(Long taskId) { - return baseMapper.getRewardMap(taskId); + List rewards = baseMapper.getRewardMap(taskId); + + Map map = rewards.stream() + .collect(Collectors.groupingBy( + TaskCenterReward::getType, + Collectors.summingInt(TaskCenterReward::getNumber) + )); + return map; } } 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 72d066ca..94b19e45 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 @@ -91,14 +91,19 @@ public class TaskCenterServiceImpl extends ServiceImpl 1 && s.getNumber() < 8) { if (rewardMap.containsKey(9)) { + boolean isBreak = false; //抽奖次数 - Map taskWCount = signRecordService.getTaskWCount(userId, rewardMap.get(9)); + Map taskWCount = signRecordService.getTaskWCount(userId, rewardMap.get(9)); if (CollectionUtil.isNotEmpty(taskWCount)) { for (Integer value : taskWCount.values()) { if (value > 0) { + isBreak=true; break; } } + if (isBreak){ + break; + } } } Integer wSignCount = signRecordService.getWSignCount(userId); @@ -264,14 +269,14 @@ public class TaskCenterServiceImpl extends ServiceImpl taskWRedisMap = new HashMap<>(); if ("2".equals(type)) { //抽奖次数 - Map taskWCount = signRecordService.getTaskWCount(userId, rewardMap.get(9)); + Map taskWCount = signRecordService.getTaskWCount(userId, rewardMap.get(9)); if (CollectionUtil.isNotEmpty(taskWCount)) { - for (Map.Entry entry : taskWCount.entrySet()) { - Integer key = entry.getKey(); + for (Map.Entry entry : taskWCount.entrySet()) { + Long key = entry.getKey(); Integer value = entry.getValue(); if (value > 0) { countTaskDisc = countTaskDisc + value; - taskWRedisMap.put(key, value); + taskWRedisMap.put(key.intValue(), value); } } } diff --git a/src/main/java/com/sqx/modules/userSign/dao/UserSignRecordDao.java b/src/main/java/com/sqx/modules/userSign/dao/UserSignRecordDao.java index 44ccb713..f99936eb 100644 --- a/src/main/java/com/sqx/modules/userSign/dao/UserSignRecordDao.java +++ b/src/main/java/com/sqx/modules/userSign/dao/UserSignRecordDao.java @@ -10,8 +10,9 @@ import java.util.Map; @Mapper public interface UserSignRecordDao extends BaseMapper { //周 抽奖次数 - Map getTaskWCount(long userId, int wCount,String time,List ids); - List getNoRecordTask(long userId, String time); + List getTaskWCount(long userId, int wCount,String time,List ids); + + List getNoRecordTask(long userId, String time); //周 签到 次数 连续签到 Integer getWSignCount(long userId,String time); diff --git a/src/main/java/com/sqx/modules/userSign/service/UserSignRecordService.java b/src/main/java/com/sqx/modules/userSign/service/UserSignRecordService.java index 086f50ff..5d3a1e96 100644 --- a/src/main/java/com/sqx/modules/userSign/service/UserSignRecordService.java +++ b/src/main/java/com/sqx/modules/userSign/service/UserSignRecordService.java @@ -13,7 +13,7 @@ public interface UserSignRecordService extends IService { //获取当月签到次数 int getUserSignCount(long userId); //周 剩余抽奖次数 - Map getTaskWCount(long userId, int wCount); + Map getTaskWCount(long userId, int wCount); //周 签到 次数 Integer getWSignCount(long userId); diff --git a/src/main/java/com/sqx/modules/userSign/service/impl/UserSignRecordServiceImpl.java b/src/main/java/com/sqx/modules/userSign/service/impl/UserSignRecordServiceImpl.java index 698bf03b..847e9f5f 100644 --- a/src/main/java/com/sqx/modules/userSign/service/impl/UserSignRecordServiceImpl.java +++ b/src/main/java/com/sqx/modules/userSign/service/impl/UserSignRecordServiceImpl.java @@ -12,6 +12,7 @@ import com.sqx.modules.app.dao.UserDao; import com.sqx.modules.app.entity.UserEntity; import com.sqx.modules.common.dao.CommonInfoDao; import com.sqx.modules.common.entity.CommonInfo; +import com.sqx.modules.taskCenter.entity.TaskCenterReward; import com.sqx.modules.userSign.dao.UserSignRecordDao; import com.sqx.modules.userSign.dto.UserSignDTO; import com.sqx.modules.userSign.dto.UserSignRecordDTO; @@ -132,10 +133,16 @@ public class UserSignRecordServiceImpl extends ServiceImpl getTaskWCount(long userId,int wCount) { + public Map getTaskWCount(long userId,int wCount) { Date thirtyDaysAgo = DateUtil.offsetDay(new Date(), -30); - List noRecordTasks = baseMapper.getNoRecordTask(userId, DateUtil.format(thirtyDaysAgo, "yyyy-MM-dd") + " 00:00:00"); - return baseMapper.getTaskWCount(userId, wCount, DateUtil.format(thirtyDaysAgo, "yyyy-MM-dd") + " 00:00:00", noRecordTasks); + List noRecordTasks = baseMapper.getNoRecordTask(userId, DateUtil.format(thirtyDaysAgo, "yyyy-MM-dd") + " 00:00:00"); + List taskWCount = baseMapper.getTaskWCount(userId, wCount, DateUtil.format(thirtyDaysAgo, "yyyy-MM-dd") + " 00:00:00", noRecordTasks); + Map map = taskWCount.stream() + .collect(Collectors.groupingBy( + UserSignRecord::getId, + Collectors.summingInt(UserSignRecord::getDay) + )); + return map; } @Override diff --git a/src/main/resources/mapper/userSign/TaskCenterDto.xml b/src/main/resources/mapper/userSign/TaskCenterDto.xml index 389a2cc3..f77487a2 100644 --- a/src/main/resources/mapper/userSign/TaskCenterDto.xml +++ b/src/main/resources/mapper/userSign/TaskCenterDto.xml @@ -2,7 +2,7 @@ - SELECT sign.id FROM @@ -16,10 +16,10 @@ order by sign.create_time asc - SELECT - sign.id, - #{wCount} - COUNT(CASE WHEN spRecord.source_id IS NOT NULL THEN 1 END) AS record_count + sign.id as id, + #{wCount} - COUNT(CASE WHEN spRecord.source_id IS NOT NULL THEN 1 END) AS `day` FROM user_sign_record sign LEFT JOIN disc_spinning_record spRecord ON sign.id = spRecord.source_id From 920d19f8a227ee10a27df14e3db2ebe067aeede5 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Tue, 24 Dec 2024 10:46:44 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=20=E6=9C=89=E6=AC=A1?= =?UTF-8?q?=E6=95=B0=E6=97=B6=20=E4=B8=8D=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/taskCenter/service/impl/TaskCenterServiceImpl.java | 2 ++ 1 file changed, 2 insertions(+) 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 94b19e45..c42ddfa1 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 @@ -102,6 +102,7 @@ public class TaskCenterServiceImpl extends ServiceImpl 0) { + s.setDiscNumber(null); break; } else { s.setButtonTitle("已领取"); From 062067d4c3071c7bb9cfd815ddbfb525f5e835ad Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Tue, 24 Dec 2024 10:52:46 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=20=E6=9C=89=E6=AC=A1?= =?UTF-8?q?=E6=95=B0=E6=97=B6=20=E4=B8=8D=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/taskCenter/service/impl/TaskCenterServiceImpl.java | 2 ++ 1 file changed, 2 insertions(+) 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 c42ddfa1..0093a154 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 @@ -103,6 +103,7 @@ public class TaskCenterServiceImpl extends ServiceImpl 0) { s.setDiscNumber(null); + s.setNumber(null); break; } else { s.setButtonTitle("已领取"); From 9e923b5d1c16b1b52b15946f7cb7b4d66c465909 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Tue, 24 Dec 2024 11:33:16 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E6=8A=BD=E5=A5=96=20=E7=B1=BB=E5=9E=8B?= =?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 | 6 +++--- 1 file changed, 3 insertions(+), 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 e78ea8a0..96171613 100644 --- a/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java +++ b/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java @@ -194,9 +194,9 @@ public class DiscSpinningController { }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()) { - Integer value = entry.getValue(); + 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); From 2c8721e2e8503d88d23dc0fd29139538c1e704d8 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Tue, 24 Dec 2024 11:44:57 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E6=8A=BD=E5=A5=96=20=E7=B1=BB=E5=9E=8B?= =?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 | 11 +++++++---- src/main/resources/mapper/orders/OrdersDao.xml | 2 +- 2 files changed, 8 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 96171613..a1233e60 100644 --- a/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java +++ b/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java @@ -194,24 +194,27 @@ public class DiscSpinningController { }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()) { + 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(entry.getKey().longValue()); + centerRecord.setTaskId(Long.valueOf(entry.getKey())); if(source.equals(2)){ - centerRecord.setSourceId(entry.getKey().longValue()); + sourceId = Long.valueOf(entry.getKey()); + centerRecord.setSourceId(Long.getLong(entry.getKey())); } 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; diff --git a/src/main/resources/mapper/orders/OrdersDao.xml b/src/main/resources/mapper/orders/OrdersDao.xml index 79ba95f7..eaae0119 100644 --- a/src/main/resources/mapper/orders/OrdersDao.xml +++ b/src/main/resources/mapper/orders/OrdersDao.xml @@ -281,7 +281,7 @@