抽奖次数

This commit is contained in:
2024-12-24 09:29:33 +08:00
parent a1f1e9a2de
commit 6ffa4d5bf8
4 changed files with 32 additions and 10 deletions

View File

@@ -4,12 +4,14 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sqx.modules.userSign.entity.UserSignRecord; import com.sqx.modules.userSign.entity.UserSignRecord;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import java.util.Map; import java.util.Map;
@Mapper @Mapper
public interface UserSignRecordDao extends BaseMapper<UserSignRecord> { public interface UserSignRecordDao extends BaseMapper<UserSignRecord> {
//周 抽奖次数 //周 抽奖次数
Map<Integer,Integer> getTaskWCount(long userId, int wCount,String time); Map<Integer,Integer> getTaskWCount(long userId, int wCount,String time,List<Integer> ids);
List getNoRecordTask(long userId, String time);
//周 签到 次数 连续签到 //周 签到 次数 连续签到
Integer getWSignCount(long userId,String time); Integer getWSignCount(long userId,String time);

View File

@@ -134,7 +134,8 @@ public class UserSignRecordServiceImpl extends ServiceImpl<UserSignRecordDao, Us
@Override @Override
public Map<Integer,Integer> getTaskWCount(long userId,int wCount) { public Map<Integer,Integer> getTaskWCount(long userId,int wCount) {
Date thirtyDaysAgo = DateUtil.offsetDay(new Date(), -30); Date thirtyDaysAgo = DateUtil.offsetDay(new Date(), -30);
return baseMapper.getTaskWCount(userId,wCount,DateUtil.format(thirtyDaysAgo, "yyyy-MM-dd")+" 00:00:00"); List<Integer> 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 @Override

View File

@@ -286,7 +286,7 @@
AND orders.`status` = 1 AND orders.`status` = 1
AND orders.`pay_way` = 9 AND orders.`pay_way` = 9
AND orders.create_time > DATE_FORMAT(CURDATE(), '%Y-%m-%d 00:00:00') 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 ORDER BY orders.create_time
</select> </select>
@@ -298,7 +298,7 @@
AND orders.`status` = 1 AND orders.`status` = 1
AND orders.`pay_way` = 9 AND orders.`pay_way` = 9
AND orders.create_time > DATE_FORMAT(CURDATE(), '%Y-%m-%d 00:00:00') 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 ORDER BY orders.create_time LIMIT 1
</select> </select>

View File

@@ -2,19 +2,38 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.sqx.modules.userSign.dao.UserSignRecordDao"> <mapper namespace="com.sqx.modules.userSign.dao.UserSignRecordDao">
<select id="getNoRecordTask" resultType="List">
SELECT
sign.id
FROM
user_sign_record sign
LEFT JOIN task_center_record cenRecord ON sign.id = cenRecord.source_id
WHERE
sign.`DAY` = 7
AND sign.user_id = #{userId}
and sign.create_time &gt; #{time}
AND cenRecord.id IS NULL
order by sign.create_time asc
</select>
<select id="getTaskWCount" resultType="Map"> <select id="getTaskWCount" resultType="Map">
SELECT SELECT
sign.id, sign.id,
#{wCount} - COUNT(CASE WHEN cenRecord.id IS NULL and record.source_id IS NOT NULL THEN 1 END) AS record_count #{wCount} - COUNT(CASE WHEN spRecord.source_id IS NOT NULL THEN 1 END) AS record_count
FROM FROM
user_sign_record sign user_sign_record sign
LEFT JOIN task_center_record cenRecord on sign.id = cenRecord.source_id
LEFT JOIN disc_spinning_record spRecord ON sign.id = spRecord.source_id LEFT JOIN disc_spinning_record spRecord ON sign.id = spRecord.source_id
WHERE WHERE
sign.`DAY` = 7; sign.`DAY` = 7
AND sign.user_id = #{userId} AND sign.user_id = #{userId}
and sign.create_time &gt; #{time} AND sign.create_time &gt; #{time}
<if test="ids!= null and ids.size() > 0">
AND sign.id in
<foreach collection="ids" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</if>
GROUP BY sign.id
order by sign.create_time asc order by sign.create_time asc
</select> </select>