抽奖次数

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 org.apache.ibatis.annotations.Mapper;
import java.util.List;
import java.util.Map;
@Mapper
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);

View File

@@ -134,7 +134,8 @@ public class UserSignRecordServiceImpl extends ServiceImpl<UserSignRecordDao, Us
@Override
public Map<Integer,Integer> 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<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

View File

@@ -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
</select>
@@ -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
</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">
<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
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
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
WHERE
sign.`DAY` = 7;
AND sign.user_id = #{userId}
and sign.create_time &gt; #{time}
sign.`DAY` = 7
AND sign.user_id = #{userId}
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
</select>