红包任务
This commit is contained in:
@@ -47,7 +47,7 @@ public class AppApiMethodAspect {
|
|||||||
|
|
||||||
//请求的参数
|
//请求的参数
|
||||||
String resultJson = new Gson().toJson(result);
|
String resultJson = new Gson().toJson(result);
|
||||||
|
try{
|
||||||
HttpServletRequest request = HttpContextUtils.getHttpServletRequest();
|
HttpServletRequest request = HttpContextUtils.getHttpServletRequest();
|
||||||
long end = System.currentTimeMillis();
|
long end = System.currentTimeMillis();
|
||||||
if(StringUtils.isNotBlank(resultJson) && !"null".equals(resultJson)){
|
if(StringUtils.isNotBlank(resultJson) && !"null".equals(resultJson)){
|
||||||
@@ -57,6 +57,9 @@ public class AppApiMethodAspect {
|
|||||||
resultJson
|
resultJson
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
}catch (Exception e){
|
||||||
|
log.error("Request 为空"+e.getMessage());
|
||||||
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ import com.sqx.common.utils.RedisKeys;
|
|||||||
import com.sqx.common.utils.RedisUtils;
|
import com.sqx.common.utils.RedisUtils;
|
||||||
import com.sqx.common.utils.Result;
|
import com.sqx.common.utils.Result;
|
||||||
import com.sqx.modules.app.annotation.Login;
|
import com.sqx.modules.app.annotation.Login;
|
||||||
import com.sqx.modules.app.entity.UserEntity;
|
|
||||||
import com.sqx.modules.app.service.UserService;
|
import com.sqx.modules.app.service.UserService;
|
||||||
import com.sqx.modules.common.service.CommonInfoService;
|
import com.sqx.modules.common.service.CommonInfoService;
|
||||||
import com.sqx.modules.discSpinning.entity.DiscSpinning;
|
import com.sqx.modules.discSpinning.entity.DiscSpinning;
|
||||||
@@ -23,7 +22,6 @@ import com.sqx.modules.taskCenter.service.TaskCenterRecordService;
|
|||||||
import com.sqx.modules.taskCenter.service.TaskCenterService;
|
import com.sqx.modules.taskCenter.service.TaskCenterService;
|
||||||
import io.swagger.annotations.*;
|
import io.swagger.annotations.*;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
@@ -223,7 +221,7 @@ public class DiscSpinningController {
|
|||||||
}
|
}
|
||||||
DiscSpinningRecord draws = discSpinningService.draws(i == null ? 1 : i + 1, amount, sourceId, userId, source);
|
DiscSpinningRecord draws = discSpinningService.draws(i == null ? 1 : i + 1, amount, sourceId, userId, source);
|
||||||
|
|
||||||
executor.schedule(() -> receive1(draws), 4, TimeUnit.SECONDS);
|
executor.schedule(() -> discSpinningService.receive1(draws), 4, TimeUnit.SECONDS);
|
||||||
|
|
||||||
return new Result().put("data", draws);
|
return new Result().put("data", draws);
|
||||||
}
|
}
|
||||||
@@ -236,23 +234,6 @@ public class DiscSpinningController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public Result receive1(@RequestBody DiscSpinningRecord receive) {
|
|
||||||
DiscSpinningRecord record = recordService.getById(receive.getId());
|
|
||||||
if (record.getTargetId() != null) {
|
|
||||||
return Result.error("不可重复领取");
|
|
||||||
}
|
|
||||||
CompletableFuture.runAsync(() -> {
|
|
||||||
discSpinningService.receiveAsync(record);
|
|
||||||
});
|
|
||||||
UserEntity userInfo = userService.queryByUserId(record.getUserId());
|
|
||||||
int res = 1;
|
|
||||||
if (receive.getType().equals(2)) {
|
|
||||||
if (StringUtils.isBlank(userInfo.getZhiFuBao()) && StringUtils.isBlank(userInfo.getZhiFuBaoName())) {
|
|
||||||
res = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return Result.success().put("data", res);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.sqx.modules.discSpinning.service;
|
package com.sqx.modules.discSpinning.service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.sqx.common.utils.Result;
|
||||||
import com.sqx.modules.app.entity.UserEntity;
|
import com.sqx.modules.app.entity.UserEntity;
|
||||||
import com.sqx.modules.discSpinning.entity.DiscSpinning;
|
import com.sqx.modules.discSpinning.entity.DiscSpinning;
|
||||||
import com.sqx.modules.discSpinning.entity.DiscSpinningRecord;
|
import com.sqx.modules.discSpinning.entity.DiscSpinningRecord;
|
||||||
@@ -22,5 +23,7 @@ public interface DiscSpinningService extends IService<DiscSpinning> {
|
|||||||
//提现
|
//提现
|
||||||
void withdrawAsync(UserEntity userInfo, Double money, String title);
|
void withdrawAsync(UserEntity userInfo, Double money, String title);
|
||||||
|
|
||||||
|
Result receive1(DiscSpinningRecord receive);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|||||||
import com.sqx.common.utils.DateUtils;
|
import com.sqx.common.utils.DateUtils;
|
||||||
import com.sqx.common.utils.RedisKeys;
|
import com.sqx.common.utils.RedisKeys;
|
||||||
import com.sqx.common.utils.RedisUtils;
|
import com.sqx.common.utils.RedisUtils;
|
||||||
|
import com.sqx.common.utils.Result;
|
||||||
import com.sqx.modules.app.entity.UserEntity;
|
import com.sqx.modules.app.entity.UserEntity;
|
||||||
import com.sqx.modules.app.entity.UserMoneyDetails;
|
import com.sqx.modules.app.entity.UserMoneyDetails;
|
||||||
import com.sqx.modules.app.service.UserMoneyDetailsService;
|
import com.sqx.modules.app.service.UserMoneyDetailsService;
|
||||||
@@ -38,6 +39,7 @@ import org.springframework.transaction.support.DefaultTransactionDefinition;
|
|||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.concurrent.CompletableFuture;
|
||||||
import java.util.concurrent.ThreadLocalRandom;
|
import java.util.concurrent.ThreadLocalRandom;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@@ -251,5 +253,23 @@ public class DiscSpinningServiceImpl extends ServiceImpl<DiscSpinningDao, DiscSp
|
|||||||
recordService.save(record);
|
recordService.save(record);
|
||||||
return record;
|
return record;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Result receive1(DiscSpinningRecord receive) {
|
||||||
|
DiscSpinningRecord record = recordService.getById(receive.getId());
|
||||||
|
if (record.getTargetId() != null) {
|
||||||
|
return Result.error("不可重复领取");
|
||||||
|
}
|
||||||
|
CompletableFuture.runAsync(() -> {
|
||||||
|
receiveAsync(record);
|
||||||
|
});
|
||||||
|
UserEntity userInfo = userService.queryByUserId(record.getUserId());
|
||||||
|
int res = 1;
|
||||||
|
if (receive.getType().equals(2)) {
|
||||||
|
if (StringUtils.isBlank(userInfo.getZhiFuBao()) && StringUtils.isBlank(userInfo.getZhiFuBaoName())) {
|
||||||
|
res = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return Result.success().put("data", res);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
package com.sqx.modules.job.task;
|
package com.sqx.modules.job.task;
|
||||||
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.thread.ThreadUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.sqx.modules.discSpinning.controller.DiscSpinningController;
|
|
||||||
import com.sqx.modules.discSpinning.entity.DiscSpinning;
|
|
||||||
import com.sqx.modules.discSpinning.entity.DiscSpinningRecord;
|
import com.sqx.modules.discSpinning.entity.DiscSpinningRecord;
|
||||||
import com.sqx.modules.discSpinning.service.DiscSpinningRecordService;
|
import com.sqx.modules.discSpinning.service.DiscSpinningRecordService;
|
||||||
|
import com.sqx.modules.discSpinning.service.DiscSpinningService;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
@@ -18,7 +19,7 @@ import java.util.List;
|
|||||||
public class SpinningTask3 implements ITask {
|
public class SpinningTask3 implements ITask {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private DiscSpinningController spinningController;
|
private DiscSpinningService spinningController;
|
||||||
@Resource
|
@Resource
|
||||||
private DiscSpinningRecordService recordService;
|
private DiscSpinningRecordService recordService;
|
||||||
|
|
||||||
@@ -29,9 +30,12 @@ public class SpinningTask3 implements ITask {
|
|||||||
logger.info("大转盘到账补偿机制");
|
logger.info("大转盘到账补偿机制");
|
||||||
// 获取当前时间
|
// 获取当前时间
|
||||||
Date now = DateUtil.date();
|
Date now = DateUtil.date();
|
||||||
|
if (StringUtils.isBlank(params)) {
|
||||||
|
params = "1";
|
||||||
|
}
|
||||||
// 获取五分钟前的时间
|
// 获取五分钟前的时间
|
||||||
Date fiveMinutesAgo = DateUtil.offsetMinute(now, -5);
|
Date fiveMinutesAgo = DateUtil.offsetMinute(now, Integer.valueOf(params) * -5);
|
||||||
Date tenMinutesAgo = DateUtil.offsetMinute(now, -10);
|
Date tenMinutesAgo = DateUtil.offsetMinute(now, (Integer.valueOf(params) * -5) - 5);
|
||||||
// 将五分钟前的时间转换为指定格式的时间字符串,这里采用常见的"yyyy-MM-dd HH:mm:ss"格式
|
// 将五分钟前的时间转换为指定格式的时间字符串,这里采用常见的"yyyy-MM-dd HH:mm:ss"格式
|
||||||
String fiveMinutesAgoStr = DateUtil.format(fiveMinutesAgo, "yyyy-MM-dd HH:mm:ss");
|
String fiveMinutesAgoStr = DateUtil.format(fiveMinutesAgo, "yyyy-MM-dd HH:mm:ss");
|
||||||
String tenMinutesAgoStr = DateUtil.format(tenMinutesAgo, "yyyy-MM-dd HH:mm:ss");
|
String tenMinutesAgoStr = DateUtil.format(tenMinutesAgo, "yyyy-MM-dd HH:mm:ss");
|
||||||
@@ -45,9 +49,12 @@ public class SpinningTask3 implements ITask {
|
|||||||
//小于
|
//小于
|
||||||
recordQueryWrapper.gt("create_time", tenMinutesAgoStr);
|
recordQueryWrapper.gt("create_time", tenMinutesAgoStr);
|
||||||
List<DiscSpinningRecord> list = recordService.list(recordQueryWrapper);
|
List<DiscSpinningRecord> list = recordService.list(recordQueryWrapper);
|
||||||
|
ThreadUtil.execAsync(() -> {
|
||||||
for (DiscSpinningRecord record : list) {
|
for (DiscSpinningRecord record : list) {
|
||||||
spinningController.receive1(record);
|
spinningController.receive1(record);
|
||||||
}
|
}
|
||||||
logger.info("大转盘到账补偿机制");
|
});
|
||||||
|
|
||||||
|
logger.info("大转盘到账补偿机制结束");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.sqx.modules.pay.controller.app;
|
package com.sqx.modules.pay.controller.app;
|
||||||
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.thread.ThreadUtil;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.sqx.common.annotation.Debounce;
|
import com.sqx.common.annotation.Debounce;
|
||||||
@@ -240,7 +241,9 @@ public class WuyouController {
|
|||||||
@Transactional
|
@Transactional
|
||||||
public void activities(UserEntity user, UserEntity sourceUser) {
|
public void activities(UserEntity user, UserEntity sourceUser) {
|
||||||
//分享达标
|
//分享达标
|
||||||
if (sourceUser != null && sourceUser.getUserId() != 1) {
|
if (sourceUser == null || sourceUser.getUserId() == 1) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
QueryWrapper<UserMoneyDetails> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<UserMoneyDetails> queryWrapper = new QueryWrapper<>();
|
||||||
queryWrapper.eq("classify", 6);
|
queryWrapper.eq("classify", 6);
|
||||||
queryWrapper.eq("user_id", sourceUser.getUserId());
|
queryWrapper.eq("user_id", sourceUser.getUserId());
|
||||||
@@ -309,7 +312,7 @@ public class WuyouController {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateOrderStatus(PayDetails payDetails, Orders order) {
|
private void updateOrderStatus(PayDetails payDetails, Orders order) {
|
||||||
@@ -344,13 +347,16 @@ public class WuyouController {
|
|||||||
}
|
}
|
||||||
ordersService.updateById(order);
|
ordersService.updateById(order);
|
||||||
ordersService.insertOrders(order);
|
ordersService.insertOrders(order);
|
||||||
CompletableFuture.runAsync(() -> {
|
ThreadUtil.execAsync(() -> {
|
||||||
ApiAccessLimitUtil.runFunAndCheckKey(() -> {
|
activities(user, byUser);
|
||||||
WuyouController proxy = applicationContext.getBean(WuyouController.class);
|
|
||||||
proxy.activities(user, byUser);
|
|
||||||
return null;
|
|
||||||
}, RedisKeys.getLockKey("activaties", user.getUserId(), byUser.getUserId()), 15);
|
|
||||||
});
|
});
|
||||||
|
// CompletableFuture.runAsync(() -> {
|
||||||
|
// ApiAccessLimitUtil.runFunAndCheckKey(() -> {
|
||||||
|
// WuyouController proxy = applicationContext.getBean(WuyouController.class);
|
||||||
|
// proxy.activities(user, byUser);
|
||||||
|
// return null;
|
||||||
|
// }, RedisKeys.getLockKey("activaties", user.getUserId(), byUser.getUserId()), 15);
|
||||||
|
// });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user