大转盘 领取奖励修改
提现 修改 任务中心 记录 领取记录 是否可领取
This commit is contained in:
@@ -4,8 +4,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.sqx.modules.taskCenter.entity.TaskCenter;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
public interface TaskCenterDao extends BaseMapper<TaskCenter> {
|
||||
|
||||
//大转盘任务
|
||||
List<TaskCenter> queryTaskDiscCenter(Long userId);
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
package com.sqx.modules.taskCenter.dao;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.sqx.modules.taskCenter.entity.TaskCenterRecord;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
@Mapper
|
||||
public interface TaskCenterRecordDao extends BaseMapper<TaskCenterRecord> {
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
package com.sqx.modules.taskCenter.entity;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 任务领取记录(TaskCenterRecord)表实体类
|
||||
*
|
||||
* @author ww
|
||||
* @since 2024-12-07 17:40:56
|
||||
*/
|
||||
@Data
|
||||
@TableName("task_center_record")
|
||||
@ApiModel(value = "任务领取记录 实体类")
|
||||
public class TaskCenterRecord extends Model<TaskCenterRecord> {
|
||||
@ApiModelProperty("id")
|
||||
private Long id;
|
||||
@ApiModelProperty("用户id")
|
||||
private Long userId;
|
||||
@ApiModelProperty("任务Id")
|
||||
private Long taskId;
|
||||
@ApiModelProperty("奖励名称")
|
||||
private String name;
|
||||
@ApiModelProperty("奖励类型 1 金豆 2 现金 3 4 5")
|
||||
private Integer type;
|
||||
@ApiModelProperty("${column.comment}")
|
||||
private Long targetId;
|
||||
@ApiModelProperty("数量")
|
||||
private Integer number;
|
||||
@ApiModelProperty("${column.comment}")
|
||||
private Date createTime;
|
||||
@ApiModelProperty("${column.comment}")
|
||||
private Date updateTime;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.sqx.modules.taskCenter.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.sqx.modules.taskCenter.entity.TaskCenterRecord;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public interface TaskCenterRecordService extends IService<TaskCenterRecord> {
|
||||
|
||||
/**
|
||||
* 统计 用户领取过的任务
|
||||
* @param userId
|
||||
* @param taskId
|
||||
* @param time 时间条件 不传为全部订单 格式 yyyy-MM-dd HH:mm:ss
|
||||
* @return
|
||||
*/
|
||||
Integer countTaskNum(Long userId,Long taskId,String time);
|
||||
}
|
||||
|
||||
@@ -10,8 +10,10 @@ import java.util.Map;
|
||||
|
||||
public interface TaskCenterService extends IService<TaskCenter> {
|
||||
|
||||
Result queryTaskCenter(Integer page, Integer limit, Long userId);
|
||||
Result taskReceive(Long userId,Long id);
|
||||
Result queryTaskCenter(Integer page, Integer limit, Long userId);
|
||||
|
||||
Result taskReceive(Long userId, Long id);
|
||||
|
||||
int countTaskDisc(Long userId);
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.sqx.modules.taskCenter.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.sqx.modules.taskCenter.dao.TaskCenterRecordDao;
|
||||
import com.sqx.modules.taskCenter.entity.TaskCenterRecord;
|
||||
import com.sqx.modules.taskCenter.service.TaskCenterRecordService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Service
|
||||
public class TaskCenterRecordServiceImpl extends ServiceImpl<TaskCenterRecordDao, TaskCenterRecord> implements TaskCenterRecordService {
|
||||
|
||||
|
||||
@Override
|
||||
public Integer countTaskNum(Long userId, Long taskId, String time) {
|
||||
return baseMapper.selectCount(new QueryWrapper<TaskCenterRecord>().eq("user_id", userId).eq("task_id", taskId).lt("create_time", time));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.sqx.modules.taskCenter.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
@@ -8,25 +9,24 @@ import com.sqx.common.utils.Result;
|
||||
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.course.entity.CourseUser;
|
||||
import com.sqx.modules.orders.service.OrdersService;
|
||||
import com.sqx.modules.taskCenter.dao.TaskCenterDao;
|
||||
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 com.sqx.modules.userSign.service.UserSignRecordService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Service
|
||||
public class TaskCenterServiceImpl extends ServiceImpl<TaskCenterDao, TaskCenter> implements TaskCenterService {
|
||||
@@ -38,13 +38,16 @@ public class TaskCenterServiceImpl extends ServiceImpl<TaskCenterDao, TaskCenter
|
||||
@Autowired
|
||||
private TaskCenterRewardService taskCenterRewardService;
|
||||
@Autowired
|
||||
private TaskCenterRecordService recordService;
|
||||
@Autowired
|
||||
private UserMoneyService userMoneyService;
|
||||
@Autowired
|
||||
private UserMoneyDetailsService userMoneyDetailsService;
|
||||
|
||||
@Override
|
||||
public Result queryTaskCenter(Integer page, Integer limit, Long userId) {
|
||||
//任务
|
||||
IPage<TaskCenter> taskPage = baseMapper.selectPage(new Page<>(page, limit), new QueryWrapper<TaskCenter>().orderByDesc("sort"));
|
||||
IPage<TaskCenter> taskPage = baseMapper.selectPage(new Page<>(page, limit), new QueryWrapper<TaskCenter>().eq("show", 1).orderByDesc("sort"));
|
||||
boolean todaySign = true;
|
||||
//月 签到记录
|
||||
QueryWrapper<UserSignRecord> signWrapper = new QueryWrapper<>();
|
||||
@@ -57,17 +60,17 @@ public class TaskCenterServiceImpl extends ServiceImpl<TaskCenterDao, TaskCenter
|
||||
if (s.getType() == 2) {
|
||||
if (s.getNumber().equals(1)) {
|
||||
Integer dayOrderNum = ordersService.countOrderNum(userId, DateUtil.today() + " 00:00:00");
|
||||
if (dayOrderNum < 3) {
|
||||
if (dayOrderNum < 3 || recordService.countTaskNum(userId, s.getId(), DateUtil.today() + " 00:00:00") > 0) {
|
||||
s.setDisabled(false);
|
||||
todaySign = false;
|
||||
}
|
||||
} else {
|
||||
if (todaySign) {
|
||||
if (signRecordList.size() < (s.getNumber().intValue() - 1)) {
|
||||
if ((signRecordList.size() < (s.getNumber().intValue() - 1)) || recordService.countTaskNum(userId, s.getId(), DateUtil.beginOfMonth(new Date()).toString()) > 0) {
|
||||
s.setDisabled(false);
|
||||
}
|
||||
} else {
|
||||
if (signRecordList.size() < s.getNumber().intValue()) {
|
||||
if ((signRecordList.size() < s.getNumber().intValue()) || recordService.countTaskNum(userId, s.getId(), DateUtil.beginOfMonth(new Date()).toString()) > 0) {
|
||||
s.setDisabled(false);
|
||||
}
|
||||
}
|
||||
@@ -90,54 +93,101 @@ public class TaskCenterServiceImpl extends ServiceImpl<TaskCenterDao, TaskCenter
|
||||
List<UserSignRecord> signRecordList = signRecordService.list(signWrapper);
|
||||
|
||||
if (taskCenter.getType().equals(2)) {
|
||||
if (taskCenter.getType() == 2) {
|
||||
Integer dayOrderNum = ordersService.countOrderNum(userId, DateUtil.today() + " 00:00:00");
|
||||
if (taskCenter.getNumber().equals(1)) {
|
||||
if (dayOrderNum < 3) {
|
||||
Integer dayOrderNum = ordersService.countOrderNum(userId, DateUtil.today() + " 00:00:00");
|
||||
if (taskCenter.getNumber().equals(1)) {
|
||||
UserSignRecord yesterday = signRecordService.getOne(new QueryWrapper<UserSignRecord>().eq("user_id", userId).eq("sign_day",
|
||||
DateUtil.format(DateUtil.yesterday(), "yyyy-MM-dd")));
|
||||
UserSignRecord signRecord = new UserSignRecord();
|
||||
if (yesterday != null && yesterday.getDay() != null) {
|
||||
signRecord.setDay(yesterday.getDay() + 1);
|
||||
} else {
|
||||
signRecord.setDay(1);
|
||||
}
|
||||
signRecord.setUserId(userId);
|
||||
signRecord.setSignDay(DateUtil.today());
|
||||
signRecord.setCreateTime(new Date());
|
||||
if (dayOrderNum < 3) {
|
||||
return Result.error("领取失败,未达成领取条件");
|
||||
}
|
||||
if (recordService.countTaskNum(userId, taskCenter.getId(), DateUtil.today() + " 00:00:00") > 0) {
|
||||
return Result.error("不可重复领取");
|
||||
}
|
||||
signRecordService.save(signRecord);
|
||||
} else {
|
||||
if (dayOrderNum > 2) {
|
||||
if (signRecordList.size() < (taskCenter.getNumber().intValue() - 1)) {
|
||||
return Result.error("领取失败,未达成领取条件");
|
||||
}
|
||||
} else {
|
||||
if (dayOrderNum > 2) {
|
||||
if (signRecordList.size() < (taskCenter.getNumber().intValue() - 1)) {
|
||||
return Result.error("领取失败,未达成领取条件");
|
||||
}
|
||||
} else {
|
||||
if (signRecordList.size() < taskCenter.getNumber().intValue()) {
|
||||
return Result.error("领取失败,未达成领取条件");
|
||||
}
|
||||
if (recordService.countTaskNum(userId, taskCenter.getId(), DateUtil.today() + " 00:00:00") > 0) {
|
||||
return Result.error("不可重复领取");
|
||||
}
|
||||
} else {
|
||||
if (signRecordList.size() < taskCenter.getNumber().intValue()) {
|
||||
return Result.error("领取失败,未达成领取条件");
|
||||
}
|
||||
if (recordService.countTaskNum(userId, taskCenter.getId(), DateUtil.today() + " 00:00:00") > 0) {
|
||||
return Result.error("不可重复领取");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
List<TaskCenterRecord> records = new ArrayList<>();
|
||||
Long targetId = null;
|
||||
QueryWrapper<TaskCenterReward> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("task_id",id);
|
||||
queryWrapper.eq("task_id", id);
|
||||
List<TaskCenterReward> list = taskCenterRewardService.list(queryWrapper);
|
||||
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
||||
userMoneyDetails.setClassify(8);
|
||||
userMoneyDetails.setUserId(userId);
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date()));
|
||||
userMoneyDetails.setTitle("任务中心");
|
||||
userMoneyDetails.setState(2);
|
||||
userMoneyDetails.setType(1);
|
||||
for (TaskCenterReward reward : list) {
|
||||
userMoneyDetails.setMoney(new BigDecimal(reward.getNumber()));
|
||||
switch (reward.getType()){
|
||||
switch (reward.getType()) {
|
||||
case 1:
|
||||
userMoneyDetails.setContent(taskCenter.getTitle()+"任务完成,金豆奖励" + reward.getNumber());
|
||||
UserMoneyDetails userMoneyDetails1 = new UserMoneyDetails();
|
||||
userMoneyDetails1.setClassify(8);
|
||||
userMoneyDetails1.setUserId(userId);
|
||||
userMoneyDetails1.setCreateTime(DateUtil.now());
|
||||
userMoneyDetails1.setTitle("任务中心");
|
||||
userMoneyDetails1.setState(2);
|
||||
userMoneyDetails1.setType(1);
|
||||
userMoneyDetails1.setMoney(new BigDecimal(reward.getNumber()));
|
||||
userMoneyDetails1.setContent(taskCenter.getTitle() + "任务完成,金豆奖励" + reward.getNumber());
|
||||
userMoneyService.updateMoney(1, userId, reward.getNumber());
|
||||
userMoneyDetailsService.save(userMoneyDetails1);
|
||||
targetId = userMoneyDetails1.getId();
|
||||
break;
|
||||
case 2:
|
||||
userMoneyDetails.setContent(taskCenter.getTitle()+"任务完成,现金奖励" + reward.getNumber());
|
||||
UserMoneyDetails userMoneyDetails2 = new UserMoneyDetails();
|
||||
userMoneyDetails2.setClassify(8);
|
||||
userMoneyDetails2.setUserId(userId);
|
||||
userMoneyDetails2.setCreateTime(DateUtil.now());
|
||||
userMoneyDetails2.setTitle("任务中心");
|
||||
userMoneyDetails2.setState(2);
|
||||
userMoneyDetails2.setType(1);
|
||||
userMoneyDetails2.setMoney(new BigDecimal(reward.getNumber()));
|
||||
userMoneyDetails2.setContent(taskCenter.getTitle() + "任务完成,现金奖励" + reward.getNumber());
|
||||
userMoneyService.updateAmount(1, userId, reward.getNumber());
|
||||
userMoneyDetailsService.save(userMoneyDetails2);
|
||||
targetId = userMoneyDetails2.getId();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
TaskCenterRecord record = new TaskCenterRecord();
|
||||
record.setUserId(userId);
|
||||
record.setTaskId(id);
|
||||
record.setType(reward.getType());
|
||||
record.setNumber(reward.getNumber());
|
||||
record.setName(taskCenter.getTitle() + ":" + record.getName());
|
||||
record.setTargetId(targetId);
|
||||
records.add(record);
|
||||
}
|
||||
userMoneyDetailsService.save(userMoneyDetails);
|
||||
recordService.saveBatch(records);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int countTaskDisc(Long userId) {
|
||||
//TaskCenter的number为大转盘次数
|
||||
List<TaskCenter> taskCenters = baseMapper.queryTaskDiscCenter(userId);
|
||||
//大转盘任务 校验 次数
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user