增加剧集周支付次数

This commit is contained in:
张松 2025-01-02 20:51:21 +08:00
parent eac53e57b0
commit 71ff32998e
6 changed files with 55 additions and 6 deletions

View File

@ -333,6 +333,7 @@ public class Course implements Serializable {
@TableField(exist = false)
private Integer isCollect;
private Integer weekView;
private Integer weekPay;
public Course() {}
}

View File

@ -63,4 +63,8 @@ public interface CourseService extends IService<Course> {
Result getRedEnvelopeTips(Long userId);
/**
* 增加短剧周支付次数
*/
void incrWeekPayCount(Long courseId);
}

View File

@ -9,16 +9,15 @@ import cn.hutool.crypto.SecureUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.sqx.common.utils.DateUtils;
import com.sqx.common.utils.PageUtils;
import com.sqx.common.utils.RedisUtils;
import com.sqx.common.utils.Result;
import com.sqx.common.utils.*;
import com.sqx.modules.app.entity.InviteAchievement;
import com.sqx.modules.app.service.InviteAchievementService;
import com.sqx.modules.app.utils.JwtUtils;
@ -34,6 +33,7 @@ import com.sqx.modules.course.service.CourseService;
import com.sqx.modules.course.service.CourseUserService;
import com.sqx.modules.course.vo.CourseIn;
import com.sqx.modules.orders.service.OrdersService;
import com.sqx.modules.redisService.RedisService;
import com.sqx.modules.search.service.AppSearchService;
import com.sqx.modules.utils.EasyPoi.ExcelUtils;
import com.sqx.modules.utils.HttpClientUtil;
@ -74,13 +74,15 @@ public class CourseServiceImpl extends ServiceImpl<CourseDao, Course> implements
private JwtUtils jwtUtils;
@Autowired
private CourseUserService courseUserService;
private final RedisService redisService;
private final InviteAchievementService inviteAchievementService;
@Resource
private RedisUtils redisUtils;
public CourseServiceImpl(InviteAchievementService inviteAchievementService) {
public CourseServiceImpl(RedisService redisService, InviteAchievementService inviteAchievementService) {
this.redisService = redisService;
this.inviteAchievementService = inviteAchievementService;
}
@ -1288,4 +1290,14 @@ public class CourseServiceImpl extends ServiceImpl<CourseDao, Course> implements
return Result.success().put("data", data);
}
@Override
public void incrWeekPayCount(Long courseId) {
if (ApiAccessLimitUtil.isAccessAllowed("setWeekPayCount", courseId.toString(), 1, 600)) {
int count = redisService.getCourseWeekPayCount(courseId);
update(null, new LambdaUpdateWrapper<Course>()
.eq(Course::getCourseId, courseId)
.set(Course::getWeekPay, count));
}
}
}

View File

@ -19,6 +19,7 @@ import com.sqx.modules.app.service.UserService;
import com.sqx.modules.common.service.CommonInfoService;
import com.sqx.modules.complet.entity.CompletAward;
import com.sqx.modules.complet.service.CompletAwardService;
import com.sqx.modules.course.service.CourseService;
import com.sqx.modules.invite.dao.InviteDao;
import com.sqx.modules.invite.entity.Invite;
import com.sqx.modules.invite.service.InviteService;
@ -75,11 +76,13 @@ public class TempOrdersTask {
@Value("${spring.profiles.active}")
private String profiles;
private final InviteAchievementService inviteAchievementService;
private final CourseService courseService;
private Logger logger = LoggerFactory.getLogger(getClass());
public TempOrdersTask(InviteAchievementService inviteAchievementService) {
public TempOrdersTask(InviteAchievementService inviteAchievementService, CourseService courseService) {
this.inviteAchievementService = inviteAchievementService;
this.courseService = courseService;
}
@ -170,9 +173,15 @@ public class TempOrdersTask {
ThreadUtil.sleep(1000);
activities(user, byUser);
});
ThreadUtil.execAsync(() -> {
inviteService.updateInvite(byUser, DateUtil.now(), user.getUserId(), order.getPayMoney());
});
//增加剧集支付次数
ThreadUtil.execAsync(() -> {
courseService.incrWeekPayCount(order.getCourseId());
});
//Map<String, Object> map = inviteService.updateInvite(byUser, DateUtil.now(), user.getUserId(), order.getPayMoney());
// Object oneUserId = map.get("oneUserId");
// if (oneUserId != null) {

View File

@ -23,4 +23,8 @@ public interface RedisService {
boolean isSetUserState(long userId);
int getCourseWeekViewCount(long courseId);
int getCourseWeekPayCount(long courseId);
}

View File

@ -310,4 +310,23 @@ public class RedisServiceImpl implements RedisService {
redisUtils.set(key, i, -1);
return i;
}
@Override
public int getCourseWeekPayCount(long courseId) {
String key = "course:payCount:" + courseId;
String info = redisUtils.get(key);
if (StrUtil.isBlank(info)) {
// 获取当前时间
DateTime now = DateUtil.date();
// 获取下周一的日期
DateTime nextMonday = DateUtil.nextWeek();
// 计算距离下周一还有多少秒
long seconds = nextMonday.getTime() - now.getTime();
redisUtils.set(key, 1, seconds);
return 1;
}
int i = Integer.parseInt(info) + 1;
redisUtils.set(key, i, -1);
return i;
}
}