Commit 450d20f6 by xunj

正是上线发布版本

1 parent 23764a4e
...@@ -22,10 +22,15 @@ public enum CommonTypeEnum { ...@@ -22,10 +22,15 @@ public enum CommonTypeEnum {
RED_ISENBLE_YES("1","已结算"), RED_ISENBLE_YES("1","已结算"),
//红包雨活动状态 //红包雨活动状态
ACTIVITY_STATUS1("1","未开始"), ACTIVITY_STATUS1("1","未开始"),
ACTIVITY_STATUS2("2","进行中"),
ACTIVITY_STATUS3("3","已结束"), ACTIVITY_STATUS3("3","已结束"),
LINK_SHARE_YES("1","牛牌已被分享"); LINK_SHARE_YES("1","牛牌已被分享"),
COMPOSE_CATTLE_YES("1","已合成牛牌"),
COMPOSE_CATTLE_NO("0","已合成牛牌"),
CATTLE_OPSEN_NO("0","福牛未打开"),
CATTLE_OPSEN_YES("1","福牛已打开");
//编码 //编码
private String code; private String code;
//描述 //描述
......
...@@ -4,9 +4,13 @@ public enum MsgCodeEnum { ...@@ -4,9 +4,13 @@ public enum MsgCodeEnum {
BALANCE_NO("1001","余额不足"), BALANCE_NO("1001","余额不足"),
OPEN_CATTLE1("2001","该用户不存在"), OPEN_CATTLE1("2001","该用户不存在"),
OPEN_CATTLE2("2002","福牛红包已被领取"), OPEN_CATTLE2("2002","福牛红包已被领取"),
OPEN_CATTLE3("2003","开奖时间2020-02-17 20:21:00,少侠请耐心等待"), OPEN_CATTLE3("2003","开奖时间2021-02-17 20:21:00,少侠请耐心等待"),
// //
RED_PACK_RECHAGE_NO("3001","红包雨未结算完成"); RED_PACK_RECHAGE_NO("3001","红包雨未结算完成"),
CATTLE_OPEN__NO("4001","牛牌合成未打开,请打开牛牌之后提现"),
ACTIVITY_ALL_NO("4002","活动未全部结束"),
ACTIVITY_ALL_YES("4003","非常遗憾,提现时效已过,拜拜……");
private String code; private String code;
private String msg; private String msg;
......
...@@ -27,11 +27,13 @@ public class WishController { ...@@ -27,11 +27,13 @@ public class WishController {
@PostMapping("/addWish" ) @PostMapping("/addWish" )
@ResponseBody @ResponseBody
public ApiResult addWish(@Validated AddWishParam param) { public ApiResult addWish(@Validated AddWishParam param) {
return wishService.addWish(param); return wishService.addWish(param);
} }
@PostMapping("/queryWishList" ) @PostMapping("/queryWishList" )
@ResponseBody @ResponseBody
public ApiResult queryWishList(@RequestBody QueryWishParam param) { public ApiResult queryWishList(@RequestBody QueryWishParam param) {
return wishService.queryWishList(param); return wishService.queryWishList(param);
} }
@GetMapping("/queryPrizeUser" ) @GetMapping("/queryPrizeUser" )
......
...@@ -18,7 +18,7 @@ import java.util.Map; ...@@ -18,7 +18,7 @@ import java.util.Map;
@Mapper @Mapper
public interface CattleBrandMapper extends BaseMapper<CattleBrandDto> { public interface CattleBrandMapper extends BaseMapper<CattleBrandDto> {
List<CattleBrandVO> queryCattleBrandList(@Param("brandType") String brandType); List<CattleBrandVO> queryCattleBrandList(@Param("brandType") String brandType,@Param("isNotBrandType") String isNotBrandType);
CattleBrandFroUserVO queryCattleBrandByUserId(@Param("userId")Long userId); CattleBrandFroUserVO queryCattleBrandByUserId(@Param("userId")Long userId);
CattleBrandConfVO queryCattleBrandConf(@Param("signDate") String signDate); CattleBrandConfVO queryCattleBrandConf(@Param("signDate") String signDate);
List<UserCattleVO> getComposeCattleBrand(@Param("userId") Long userId); List<UserCattleVO> getComposeCattleBrand(@Param("userId") Long userId);
...@@ -28,7 +28,7 @@ public interface CattleBrandMapper extends BaseMapper<CattleBrandDto> { ...@@ -28,7 +28,7 @@ public interface CattleBrandMapper extends BaseMapper<CattleBrandDto> {
TaskStatusVO getTaskStatus(@Param("userId") Long userId,@Param("today") String today); TaskStatusVO getTaskStatus(@Param("userId") Long userId,@Param("today") String today);
int saveShareForCattle(ShareDto dto); int saveShareForCattle(ShareDto dto);
int deleteUsetCattleById(@Param("id") Long id); int deleteUsetCattleById(@Param("id") Long id);
List<RankVO> getRedSourceType4Rank(); List<RankVO> getRedSourceType4Rank(@Param("userId") Long userId);
UserCattleVO getUserCattleVOById(@Param("id") Long id,@Param("status") String status ); UserCattleVO getUserCattleVOById(@Param("id") Long id,@Param("status") String status );
int updateUserCattleStatus(@Param("id") Long id ,@Param("status") String status); int updateUserCattleStatus(@Param("id") Long id ,@Param("status") String status);
......
...@@ -5,7 +5,7 @@ import com.polysoft.activity.utils.ApiResult; ...@@ -5,7 +5,7 @@ import com.polysoft.activity.utils.ApiResult;
public interface CattleBrandService { public interface CattleBrandService {
ApiResult queryCattleBrandList(String brandType); ApiResult queryCattleBrandList(String brandType,String isNotBrandType);
ApiResult queryCattleBrandByUserId(Long userId); ApiResult queryCattleBrandByUserId(Long userId);
ApiResult queryCattleBrandByUserId2(Long userId); ApiResult queryCattleBrandByUserId2(Long userId);
ApiResult saveComposeCattleBrand(ComposeCattleBrandParam param); ApiResult saveComposeCattleBrand(ComposeCattleBrandParam param);
......
...@@ -51,13 +51,13 @@ public class CattleBrandServiceImpl implements CattleBrandService { ...@@ -51,13 +51,13 @@ public class CattleBrandServiceImpl implements CattleBrandService {
private ActivityMapper activityMapper; private ActivityMapper activityMapper;
@Override @Override
public ApiResult queryCattleBrandList(String brandType) { public ApiResult queryCattleBrandList(String brandType,String isNotBrandType) {
return ApiResult.ok(cattleBrandMapper.queryCattleBrandList(brandType)); return ApiResult.ok(cattleBrandMapper.queryCattleBrandList(brandType,isNotBrandType));
} }
@Override @Override
public ApiResult queryCattleBrandByUserId(Long userId) { public ApiResult queryCattleBrandByUserId(Long userId) {
List<CattleBrandVO> list = cattleBrandMapper.queryCattleBrandList(null); List<CattleBrandVO> list = cattleBrandMapper.queryCattleBrandList(null,null);
CattleBrandFroUserVO cattleBrand = cattleBrandMapper.queryCattleBrandByUserId(userId); CattleBrandFroUserVO cattleBrand = cattleBrandMapper.queryCattleBrandByUserId(userId);
Map<String,Object> map = new HashMap<>(); Map<String,Object> map = new HashMap<>();
map.put("cattleList",list); map.put("cattleList",list);
...@@ -103,10 +103,10 @@ public class CattleBrandServiceImpl implements CattleBrandService { ...@@ -103,10 +103,10 @@ public class CattleBrandServiceImpl implements CattleBrandService {
try { try {
List<UserCattleVO> list = cattleBrandMapper.getComposeCattleBrand(param.getUserId()); List<UserCattleVO> list = cattleBrandMapper.getComposeCattleBrand(param.getUserId());
if(list !=null && list.size() == 5){ if(list !=null && list.size() == 5){
int k1 = cattleBrandMapper.updateComposeCattleStatus(param.getUserId(),"1", DateUtil.format(new Date(),"yyyy-MM-dd HH:mm:ss")); int k1 = cattleBrandMapper.updateComposeCattleStatus(param.getUserId(),CommonTypeEnum.COMPOSE_CATTLE_YES.getCode(), DateUtil.format(new Date(),"yyyy-MM-dd HH:mm:ss"));
if(k1 < 1){ if(k1 < 1){
log.error("更新合成牛牌状态是失败"); log.error("更新合成牛牌状态是失败");
throw new BusinessException("更新合成牛牌状态是异常"); throw new BusinessException("合成牛牌异常");
} }
int k2 = cattleBrandMapper.deleteUserCalltle(list); int k2 = cattleBrandMapper.deleteUserCalltle(list);
if(k2 < 1){ if(k2 < 1){
...@@ -161,7 +161,7 @@ public class CattleBrandServiceImpl implements CattleBrandService { ...@@ -161,7 +161,7 @@ public class CattleBrandServiceImpl implements CattleBrandService {
//更新0 牛牌合成未打开 1 已打开 //更新0 牛牌合成未打开 1 已打开
UpdateUserStatesDto dto = new UpdateUserStatesDto(); UpdateUserStatesDto dto = new UpdateUserStatesDto();
dto.setUserId(param.getUserId()); dto.setUserId(param.getUserId());
dto.setCattleOpenStatus("1"); dto.setCattleOpenStatus(CommonTypeEnum.CATTLE_OPSEN_YES.getCode());
int k1 = userInfoMapper.updateUserStates(dto); int k1 = userInfoMapper.updateUserStates(dto);
if(k1 < 1){ if(k1 < 1){
log.info("ID@@"+param.getUserId()+"@@更新牛一牛状态异常"); log.info("ID@@"+param.getUserId()+"@@更新牛一牛状态异常");
...@@ -186,7 +186,7 @@ public class CattleBrandServiceImpl implements CattleBrandService { ...@@ -186,7 +186,7 @@ public class CattleBrandServiceImpl implements CattleBrandService {
throw new BusinessException("打开牛牌更新t_red_rain表异常"); throw new BusinessException("打开牛牌更新t_red_rain表异常");
} }
//查询排名 //查询排名
List<RankVO> rankVOList = cattleBrandMapper.getRedSourceType4Rank(); List<RankVO> rankVOList = cattleBrandMapper.getRedSourceType4Rank(param.getUserId());
int total = rankVOList.size(); int total = rankVOList.size();
Map<Long, Integer> map = rankVOList.stream().collect(Collectors.toMap(RankVO::getUserId, RankVO::getRanking)); Map<Long, Integer> map = rankVOList.stream().collect(Collectors.toMap(RankVO::getUserId, RankVO::getRanking));
int rank = map.get(param.getUserId()); int rank = map.get(param.getUserId());
...@@ -207,12 +207,14 @@ public class CattleBrandServiceImpl implements CattleBrandService { ...@@ -207,12 +207,14 @@ public class CattleBrandServiceImpl implements CattleBrandService {
public ApiResult getOpenCattleBrandResult(ComposeCattleBrandParam param) { public ApiResult getOpenCattleBrandResult(ComposeCattleBrandParam param) {
OpenCattleVO openCattleVO = new OpenCattleVO(); OpenCattleVO openCattleVO = new OpenCattleVO();
//查询排名 //查询排名
List<RankVO> rankVOList = cattleBrandMapper.getRedSourceType4Rank(); List<RankVO> rankVOList = cattleBrandMapper.getRedSourceType4Rank(null);
RankVO rankVO = cattleBrandMapper.getRedSourceType4Rank(param.getUserId()).get(0);
int total = rankVOList.size(); int total = rankVOList.size();
Map<Long, Integer> map = rankVOList.stream().collect(Collectors.toMap(RankVO::getUserId, RankVO::getRanking)); Map<Long, Integer> map = rankVOList.stream().collect(Collectors.toMap(RankVO::getUserId, RankVO::getRanking));
int rank = map.get(param.getUserId()); int rank = map.get(param.getUserId());
DecimalFormat df = new DecimalFormat("######0%"); DecimalFormat df = new DecimalFormat("######0%");
String percent = df.format(Double.valueOf(total-rank)/total); String percent = df.format(Double.valueOf(total-rank)/total);
openCattleVO.setRedAmount(rankVO.getRedAmount());
openCattleVO.setTotalPerson(total); openCattleVO.setTotalPerson(total);
openCattleVO.setPercent(percent); openCattleVO.setPercent(percent);
return ApiResult.ok(openCattleVO); return ApiResult.ok(openCattleVO);
......
...@@ -231,7 +231,7 @@ public class UserInfoServiceImpl implements UserInfoService { ...@@ -231,7 +231,7 @@ public class UserInfoServiceImpl implements UserInfoService {
dto.setId(SnowFlakeUtil.nextId()); dto.setId(SnowFlakeUtil.nextId());
dto.setUserId(param.getUserId()); dto.setUserId(param.getUserId());
String barandType = random.PercentageRandom() + ""; String barandType = random.PercentageRandom() + "";
cattleBrandVO = cattleBrandMapper.queryCattleBrandList(barandType).get(0); cattleBrandVO = cattleBrandMapper.queryCattleBrandList(barandType,null).get(0);
dto.setCattleBrandId(cattleBrandVO.getCattleId()); dto.setCattleBrandId(cattleBrandVO.getCattleId());
list.add(dto); list.add(dto);
int k5 = mapper.saveCattleBrand(list); int k5 = mapper.saveCattleBrand(list);
...@@ -298,12 +298,38 @@ public class UserInfoServiceImpl implements UserInfoService { ...@@ -298,12 +298,38 @@ public class UserInfoServiceImpl implements UserInfoService {
@Override @Override
public ApiResult saveZapenTixian(IdQueryParam param) { public ApiResult saveZapenTixian(IdQueryParam param) {
Long currentTime = System.currentTimeMillis()/1000;
Long guiDingTime = DateUtil.parse("2021-02-17 20:21:00","yyyy-MM-dd HH:mm:ss").getTime()/1000;
Long guiDingLastTime = DateUtil.parse("2021-02-18 00:00:00","yyyy-MM-dd HH:mm:ss").getTime()/1000;
if(currentTime < guiDingTime){
return ApiResult.error(MsgCodeEnum.ACTIVITY_ALL_NO.getCode(),MsgCodeEnum.ACTIVITY_ALL_NO.getMsg());
}
if(currentTime > guiDingLastTime){
return ApiResult.error(MsgCodeEnum.ACTIVITY_ALL_YES.getCode(),MsgCodeEnum.ACTIVITY_ALL_YES.getMsg());
}
UserInfoParam userInfoParam = new UserInfoParam();
userInfoParam.setUserId(param.getId());
UserInfoVO infoVO = mapper.queryAuthUser(userInfoParam);
//判断是否合成福牛 未合成直接提现
if(CommonTypeEnum.COMPOSE_CATTLE_NO.getCode().equals(infoVO.getComposeCattleStatus())){
UpdateUserStatesDto dto = new UpdateUserStatesDto(); UpdateUserStatesDto dto = new UpdateUserStatesDto();
dto.setUserId(param.getId()); dto.setUserId(param.getId());
dto.setHammerStatus("1"); dto.setHammerStatus("1");
return ApiResult.ok(mapper.updateUserStates(dto)); mapper.updateUserStates(dto);
return ApiResult.ok();
}
//判断合成福牛后,未打开提示打开
if(CommonTypeEnum.CATTLE_OPSEN_NO.getCode().equals(infoVO.getCattleOpenStatus())){
return ApiResult.ok(MsgCodeEnum.CATTLE_OPEN__NO.getCode(),MsgCodeEnum.CATTLE_OPEN__NO.getMsg());
}
UpdateUserStatesDto dto = new UpdateUserStatesDto();
dto.setUserId(param.getId());
dto.setHammerStatus(CommonTypeEnum.CATTLE_OPSEN_YES.getCode());
mapper.updateUserStates(dto);
return ApiResult.ok();
} }
@Transactional(rollbackFor = Exception.class)
@Override @Override
public ApiResult saveFirstIntoCattle(UserInfoParam param) { public ApiResult saveFirstIntoCattle(UserInfoParam param) {
CattleBrandVO cattleBrandVO = null; CattleBrandVO cattleBrandVO = null;
...@@ -318,7 +344,7 @@ public class UserInfoServiceImpl implements UserInfoService { ...@@ -318,7 +344,7 @@ public class UserInfoServiceImpl implements UserInfoService {
cattleDto.setId(SnowFlakeUtil.nextId()); cattleDto.setId(SnowFlakeUtil.nextId());
cattleDto.setUserId(param.getUserId()); cattleDto.setUserId(param.getUserId());
String barandType = random.PercentageRandom() + ""; String barandType = random.PercentageRandom() + "";
cattleBrandVO = cattleBrandMapper.queryCattleBrandList(barandType).get(0); cattleBrandVO = cattleBrandMapper.queryCattleBrandList(barandType,null).get(0);
cattleDto.setCattleBrandId(cattleBrandVO.getCattleId()); cattleDto.setCattleBrandId(cattleBrandVO.getCattleId());
list.add(cattleDto); list.add(cattleDto);
int k2 = mapper.saveCattleBrand(list); int k2 = mapper.saveCattleBrand(list);
...@@ -358,7 +384,7 @@ public class UserInfoServiceImpl implements UserInfoService { ...@@ -358,7 +384,7 @@ public class UserInfoServiceImpl implements UserInfoService {
cattleDto.setId(SnowFlakeUtil.nextId()); cattleDto.setId(SnowFlakeUtil.nextId());
cattleDto.setUserId(param.getUserId()); cattleDto.setUserId(param.getUserId());
String barandType = random.PercentageRandom() + ""; String barandType = random.PercentageRandom() + "";
cattleBrandVO = cattleBrandMapper.queryCattleBrandList(barandType).get(0); cattleBrandVO = cattleBrandMapper.queryCattleBrandList(barandType,null).get(0);
cattleDto.setCattleBrandId(cattleBrandVO.getCattleId()); cattleDto.setCattleBrandId(cattleBrandVO.getCattleId());
list.add(cattleDto); list.add(cattleDto);
int k5 = mapper.saveCattleBrand(list); int k5 = mapper.saveCattleBrand(list);
......
...@@ -79,8 +79,11 @@ public class WishServiceImpl implements WishService { ...@@ -79,8 +79,11 @@ public class WishServiceImpl implements WishService {
dto.setCreateTime(date); dto.setCreateTime(date);
dto.setPushDate(date); dto.setPushDate(date);
int i = mapper.insert(dto); int i = mapper.insert(dto);
if(i < 1){
throw new BusinessException("ID@@"+param.getUserId()+"@@发送心愿异常");
}
//发放牛牌 //发放牛牌
if(i > 0 && firstPushNum < 2){ if(firstPushNum < 1){
CattleBrandConfVO confVO = cattleBrandMapper.queryCattleBrandConf(DateUtil.format(new Date(),"yyyy-MM-dd")); CattleBrandConfVO confVO = cattleBrandMapper.queryCattleBrandConf(DateUtil.format(new Date(),"yyyy-MM-dd"));
MathRandom random = new MathRandom(confVO.getRate1(),confVO.getRate2(),confVO.getRate3(),confVO.getRate4(),confVO.getRate5()); MathRandom random = new MathRandom(confVO.getRate1(),confVO.getRate2(),confVO.getRate3(),confVO.getRate4(),confVO.getRate5());
List<SaveUserCattleDto> list = new ArrayList<>(); List<SaveUserCattleDto> list = new ArrayList<>();
...@@ -88,7 +91,7 @@ public class WishServiceImpl implements WishService { ...@@ -88,7 +91,7 @@ public class WishServiceImpl implements WishService {
saveUserCattleDto.setId(SnowFlakeUtil.nextId()); saveUserCattleDto.setId(SnowFlakeUtil.nextId());
saveUserCattleDto.setUserId(param.getUserId()); saveUserCattleDto.setUserId(param.getUserId());
String barandType = random.PercentageRandom()+""; String barandType = random.PercentageRandom()+"";
cattleBrandVO = cattleBrandMapper.queryCattleBrandList(barandType).get(0); cattleBrandVO = cattleBrandMapper.queryCattleBrandList(barandType,null).get(0);
if(cattleBrandVO == null) { if(cattleBrandVO == null) {
throw new BusinessException("ID@@"+param.getUserId()+"@@发送心愿发放牛牌异常"); throw new BusinessException("ID@@"+param.getUserId()+"@@发送心愿发放牛牌异常");
} }
......
...@@ -36,7 +36,7 @@ public class CattleBrandCarveUpTask { ...@@ -36,7 +36,7 @@ public class CattleBrandCarveUpTask {
// @Scheduled( cron = "0 20 20 * * ? ") // @Scheduled( cron = "0 20 20 * * ? ")
// @Scheduled(initialDelay = 5000, fixedRate = 1*15*60*1000) // @Scheduled(initialDelay = 5000, fixedRate = 1*15*60*1000)
@Scheduled( cron = "0 1 20 17 2 ? ") // 2021年2月17号 20时0分1秒 执行 @Scheduled( cron = "1 0 20 17 2 ? ") // 2021年2月17号 20时0分1秒 执行
public void execute() { public void execute() {
try { try {
sendWechat(); sendWechat();
......
...@@ -45,7 +45,7 @@ public class InitRedPackageTask1 { ...@@ -45,7 +45,7 @@ public class InitRedPackageTask1 {
@Resource @Resource
private CattleBrandMapper cattleBrandMapper; private CattleBrandMapper cattleBrandMapper;
// @Scheduled(initialDelay = 10000, fixedRate = 1*15*60*1000) // @Scheduled(initialDelay = 1000, fixedRate = 1*15*60*1000)
// @Scheduled( cron = "40 10 17 * * ? ") // @Scheduled( cron = "40 10 17 * * ? ")
@Scheduled( cron = "45 0 20 11 2 ? ") // 2月11日 20点0分45秒执行 @Scheduled( cron = "45 0 20 11 2 ? ") // 2月11日 20点0分45秒执行
public void execute() { public void execute() {
...@@ -63,20 +63,41 @@ public class InitRedPackageTask1 { ...@@ -63,20 +63,41 @@ public class InitRedPackageTask1 {
//查询出没有初始化的红包 //查询出没有初始化的红包
final int batchNum = 1; final int batchNum = 1;
final double totalMoney = 5000.00; final double totalMoney = 5000.00;
if(4==4){
List<AddRedRainDto> batchList4 = new ArrayList<>();
QueryRedRainDto dto4_1 = new QueryRedRainDto();
dto4_1.setIsEnble(CommonTypeEnum.RED_ISENBLE_NO.getCode());
dto4_1.setBatchNum(batchNum);
List<RedRainVO> list4_1 = activityMapper.queryRedRainList(dto4_1);
int redNum = 28;
HashSet<Integer> set = getLuckUser(redNum,list4_1.size());
List<CattleBrandVO> cattleList = (List<CattleBrandVO>) cattleBrandService.queryCattleBrandList(null,"5").get("data");
for (Integer s : set) {
AddRedRainDto addRedRainDto = BeanTransferUtils.transfer(list4_1.get(s),AddRedRainDto.class);
int k = new Random().nextInt(4);
addRedRainDto.setCattleBrandId(cattleList.get(k).getCattleId());
addRedRainDto.setRedType(CommonTypeEnum.REDPACK_TYPE2.getCode());
addRedRainDto.setIsEnble(CommonTypeEnum.RED_ISENBLE_YES.getCode());
addRedRainDto.setSourceType(CommonTypeEnum.REDPACK_SOURCE_TYPE1.getCode());
batchList4.add(addRedRainDto);
}
activityMapper.updateRedPackageForCattle(batchList4);
}
//11%红包
if(1==1){ if(1==1){
QueryRedRainDto dto1 = new QueryRedRainDto(); QueryRedRainDto dto1 = new QueryRedRainDto();
List<AddRedRainDto> batchList = new ArrayList<>(); List<AddRedRainDto> batchList = new ArrayList<>();
dto1.setIsEnble(CommonTypeEnum.RED_ISENBLE_NO.getCode()); dto1.setIsEnble(CommonTypeEnum.RED_ISENBLE_NO.getCode());
dto1.setBatchNum(batchNum); dto1.setBatchNum(batchNum);
List<RedRainVO> list = activityMapper.queryRedRainList(dto1); List<RedRainVO> list1_1 = activityMapper.queryRedRainList(dto1);
//前10%红包 //前10%红包
int redNum = (int)(list.size()*0.1); int redNum = (int)(list1_1.size()*0.11);
RedPacketUtil redpack = new RedPacketUtil(); RedPacketUtil redpack = new RedPacketUtil();
List<Double> redAmount= redpack.getMoney(totalMoney*0.25,redNum,0.01,200,2.1); List<Double> redAmount= redpack.getMoney(totalMoney*0.25,redNum,0.01,200,2.1);
HashSet<Integer> set = getLuckUser(redNum,list.size()); HashSet<Integer> set = getLuckUser(redNum,list1_1.size());
int i = 0; int i = 0;
for (Integer s : set) { for (Integer s : set) {
AddRedRainDto addRedRainDto = BeanTransferUtils.transfer(list.get(s),AddRedRainDto.class); AddRedRainDto addRedRainDto = BeanTransferUtils.transfer(list1_1.get(s),AddRedRainDto.class);
addRedRainDto.setRedAmount(BigDecimal.valueOf(redAmount.get(i))); addRedRainDto.setRedAmount(BigDecimal.valueOf(redAmount.get(i)));
addRedRainDto.setRedType(CommonTypeEnum.REDPACK_TYPE1.getCode()); addRedRainDto.setRedType(CommonTypeEnum.REDPACK_TYPE1.getCode());
addRedRainDto.setIsEnble(CommonTypeEnum.RED_ISENBLE_YES.getCode()); addRedRainDto.setIsEnble(CommonTypeEnum.RED_ISENBLE_YES.getCode());
...@@ -86,7 +107,7 @@ public class InitRedPackageTask1 { ...@@ -86,7 +107,7 @@ public class InitRedPackageTask1 {
} }
activityMapper.updateRedPackage(batchList); activityMapper.updateRedPackage(batchList);
} }
//20%红包 //22%红包
if(2==2){ if(2==2){
//获取红包总数 //获取红包总数
QueryRedRainDto dto2 = new QueryRedRainDto(); QueryRedRainDto dto2 = new QueryRedRainDto();
...@@ -97,16 +118,15 @@ public class InitRedPackageTask1 { ...@@ -97,16 +118,15 @@ public class InitRedPackageTask1 {
QueryRedRainDto dto2_1 = new QueryRedRainDto(); QueryRedRainDto dto2_1 = new QueryRedRainDto();
dto2_1.setIsEnble(CommonTypeEnum.RED_ISENBLE_NO.getCode()); dto2_1.setIsEnble(CommonTypeEnum.RED_ISENBLE_NO.getCode());
dto2_1.setBatchNum(batchNum); dto2_1.setBatchNum(batchNum);
List<RedRainVO> list2 = activityMapper.queryRedRainList(dto2_1); List<RedRainVO> list2_1 = activityMapper.queryRedRainList(dto2_1);
//前20%红包 //前20%红包
int redNum = (int)(list.size()*0.2); int redNum = (int)(list.size()*0.22);
RedPacketUtil redpack = new RedPacketUtil(); RedPacketUtil redpack = new RedPacketUtil();
List<Double> redAmount= redpack.getMoney(totalMoney*0.25,redNum,0.01,200,2.1); List<Double> redAmount= redpack.getMoney(totalMoney*0.25,redNum,0.01,200,2.1);
HashSet<Integer> set = getLuckUser(redNum,list2.size()); HashSet<Integer> set = getLuckUser(redNum,list2_1.size());
int i = 0; int i = 0;
for (Integer s : set) { for (Integer s : set) {
AddRedRainDto addRedRainDto = BeanTransferUtils.transfer(list2.get(s),AddRedRainDto.class); AddRedRainDto addRedRainDto = BeanTransferUtils.transfer(list2_1.get(s),AddRedRainDto.class);
addRedRainDto.setRedAmount(BigDecimal.valueOf(redAmount.get(i))); addRedRainDto.setRedAmount(BigDecimal.valueOf(redAmount.get(i)));
addRedRainDto.setRedType(CommonTypeEnum.REDPACK_TYPE1.getCode()); addRedRainDto.setRedType(CommonTypeEnum.REDPACK_TYPE1.getCode());
addRedRainDto.setIsEnble(CommonTypeEnum.RED_ISENBLE_YES.getCode()); addRedRainDto.setIsEnble(CommonTypeEnum.RED_ISENBLE_YES.getCode());
...@@ -116,25 +136,25 @@ public class InitRedPackageTask1 { ...@@ -116,25 +136,25 @@ public class InitRedPackageTask1 {
} }
activityMapper.updateRedPackage(batchList2); activityMapper.updateRedPackage(batchList2);
} }
//67%红包
if(3==3){ if(3==3){
//获取红包总数 //获取红包总数
QueryRedRainDto dto3 = new QueryRedRainDto(); QueryRedRainDto dto3 = new QueryRedRainDto();
dto3.setBatchNum(batchNum); dto3.setBatchNum(batchNum);
List<RedRainVO> list = activityMapper.queryRedRainList(dto3);
List<AddRedRainDto> batchList2 = new ArrayList<>(); List<AddRedRainDto> batchList2 = new ArrayList<>();
//获取未结算的红包数 //获取未结算的红包数
QueryRedRainDto dto3_1 = new QueryRedRainDto(); QueryRedRainDto dto3_1 = new QueryRedRainDto();
dto3_1.setIsEnble(CommonTypeEnum.RED_ISENBLE_NO.getCode()); dto3_1.setIsEnble(CommonTypeEnum.RED_ISENBLE_NO.getCode());
dto3_1.setBatchNum(batchNum); dto3_1.setBatchNum(batchNum);
List<RedRainVO> list2 = activityMapper.queryRedRainList(dto3_1); List<RedRainVO> list3_1 = activityMapper.queryRedRainList(dto3_1);
//前65%红包 //前65%红包
int redNum = (int)(list.size()*0.65); int redNum = list3_1.size();
RedPacketUtil redpack = new RedPacketUtil(); RedPacketUtil redpack = new RedPacketUtil();
List<Double> redAmount= redpack.getMoney(totalMoney*0.5,redNum,0.01,200,2.1); List<Double> redAmount= redpack.getMoney(totalMoney*0.5,redNum,0.01,200,2.1);
HashSet<Integer> set = getLuckUser(redNum,list2.size()); HashSet<Integer> set = getLuckUser(redNum,list3_1.size());
int i = 0; int i = 0;
for (Integer s : set) { for (Integer s : set) {
AddRedRainDto addRedRainDto = BeanTransferUtils.transfer(list2.get(s),AddRedRainDto.class); AddRedRainDto addRedRainDto = BeanTransferUtils.transfer(list3_1.get(s),AddRedRainDto.class);
addRedRainDto.setRedAmount(BigDecimal.valueOf(redAmount.get(i))); addRedRainDto.setRedAmount(BigDecimal.valueOf(redAmount.get(i)));
addRedRainDto.setRedType(CommonTypeEnum.REDPACK_TYPE1.getCode()); addRedRainDto.setRedType(CommonTypeEnum.REDPACK_TYPE1.getCode());
addRedRainDto.setIsEnble(CommonTypeEnum.RED_ISENBLE_YES.getCode()); addRedRainDto.setIsEnble(CommonTypeEnum.RED_ISENBLE_YES.getCode());
...@@ -144,34 +164,6 @@ public class InitRedPackageTask1 { ...@@ -144,34 +164,6 @@ public class InitRedPackageTask1 {
} }
activityMapper.updateRedPackage(batchList2); activityMapper.updateRedPackage(batchList2);
} }
if(4==4){
//获取红包总数
QueryRedRainDto dto4 = new QueryRedRainDto();
dto4.setBatchNum(batchNum);
List<RedRainVO> list = activityMapper.queryRedRainList(dto4);
List<AddRedRainDto> batchList2 = new ArrayList<>();
//获取未结算的红包数
QueryRedRainDto dto4_1 = new QueryRedRainDto();
dto4_1.setIsEnble(CommonTypeEnum.RED_ISENBLE_NO.getCode());
dto4_1.setBatchNum(batchNum);
List<RedRainVO> list2 = activityMapper.queryRedRainList(dto4_1);
//前5%红包牛牌
int redNum =list2.size();
HashSet<Integer> set = getLuckUser(redNum,list2.size());
List<CattleBrandVO> cattleList = (List<CattleBrandVO>) cattleBrandService.queryCattleBrandList(null).get("data");
int i = 0;
for (Integer s : set) {
AddRedRainDto addRedRainDto = BeanTransferUtils.transfer(list2.get(s),AddRedRainDto.class);
int k = new Random().nextInt(5);
addRedRainDto.setCattleBrandId(cattleList.get(k).getCattleId());
addRedRainDto.setRedType(CommonTypeEnum.REDPACK_TYPE2.getCode());
addRedRainDto.setIsEnble(CommonTypeEnum.RED_ISENBLE_YES.getCode());
addRedRainDto.setSourceType(CommonTypeEnum.REDPACK_SOURCE_TYPE1.getCode());
batchList2.add(addRedRainDto);
i++;
}
activityMapper.updateRedPackageForCattle(batchList2);
}
//更新聚宝盆 //更新聚宝盆
CalculateAmoutDto calculateAmoutDto = new CalculateAmoutDto(); CalculateAmoutDto calculateAmoutDto = new CalculateAmoutDto();
calculateAmoutDto.setRedType(CommonTypeEnum.REDPACK_TYPE1.getCode()); calculateAmoutDto.setRedType(CommonTypeEnum.REDPACK_TYPE1.getCode());
......
...@@ -3,16 +3,15 @@ package com.polysoft.activity.task; ...@@ -3,16 +3,15 @@ package com.polysoft.activity.task;
import com.polysoft.activity.common.utils.BeanTransferUtils; import com.polysoft.activity.common.utils.BeanTransferUtils;
import com.polysoft.activity.constant.CommonTypeEnum; import com.polysoft.activity.constant.CommonTypeEnum;
import com.polysoft.activity.mapper.ActivityMapper; import com.polysoft.activity.mapper.ActivityMapper;
import com.polysoft.activity.mapper.CattleBrandMapper;
import com.polysoft.activity.mapper.UserInfoMapper; import com.polysoft.activity.mapper.UserInfoMapper;
import com.polysoft.activity.model.dto.AddRedRainDto; import com.polysoft.activity.model.dto.*;
import com.polysoft.activity.model.dto.CalculateAmoutDto; import com.polysoft.activity.model.vo.CattleBrandConfVO;
import com.polysoft.activity.model.dto.QueryRedRainDto;
import com.polysoft.activity.model.dto.SaveUserCattleDto;
import com.polysoft.activity.model.dto.UserInfoDto;
import com.polysoft.activity.model.vo.CattleBrandVO; import com.polysoft.activity.model.vo.CattleBrandVO;
import com.polysoft.activity.model.vo.RedAmountTotalVO; import com.polysoft.activity.model.vo.RedAmountTotalVO;
import com.polysoft.activity.model.vo.RedRainVO; import com.polysoft.activity.model.vo.RedRainVO;
import com.polysoft.activity.service.CattleBrandService; import com.polysoft.activity.service.CattleBrandService;
import com.polysoft.activity.utils.MathRandom;
import com.polysoft.activity.utils.RedPacketUtil; import com.polysoft.activity.utils.RedPacketUtil;
import com.polysoft.activity.utils.SnowFlakeUtil; import com.polysoft.activity.utils.SnowFlakeUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -43,9 +42,11 @@ public class InitRedPackageTask2 { ...@@ -43,9 +42,11 @@ public class InitRedPackageTask2 {
private CattleBrandService cattleBrandService; private CattleBrandService cattleBrandService;
@Resource @Resource
private UserInfoMapper userInfoMapper; private UserInfoMapper userInfoMapper;
@Resource
private CattleBrandMapper cattleBrandMapper;
// @Scheduled(initialDelay = 10000, fixedRate = 1*15*60*1000) // @Scheduled(initialDelay = 10000, fixedRate = 1*15*60*1000)
// @Scheduled( cron = "40 15 17 * * ? ") // @Scheduled( cron = "40 10 17 * * ? ")
@Scheduled( cron = "45 0 22 11 2 ? ") // 2月11日 22点0分45秒执行 @Scheduled( cron = "45 0 22 11 2 ? ") // 2月11日 22点0分45秒执行
public void execute() { public void execute() {
try { try {
...@@ -53,29 +54,51 @@ public class InitRedPackageTask2 { ...@@ -53,29 +54,51 @@ public class InitRedPackageTask2 {
sendWechat(); sendWechat();
} catch (InterruptedException e) { } catch (InterruptedException e) {
e.printStackTrace(); e.printStackTrace();
throw new RuntimeException("第二场红包雨线程睡眠异常"); throw new RuntimeException("第一场红包雨线程睡眠异常");
}
} }
}
private void sendWechat(){ private void sendWechat(){
log.info("第二批红包雨任务开始"); log.info("第一批红包雨任务开始");
//查询出没有初始化的红包 //查询出没有初始化的红包
final int batchNum = 2; final int batchNum = 1;
final double totalMoney = 5000.00; final double totalMoney = 5000.00;
if(4==4){
List<AddRedRainDto> batchList4 = new ArrayList<>();
QueryRedRainDto dto4_1 = new QueryRedRainDto();
dto4_1.setIsEnble(CommonTypeEnum.RED_ISENBLE_NO.getCode());
dto4_1.setBatchNum(batchNum);
List<RedRainVO> list4_1 = activityMapper.queryRedRainList(dto4_1);
//前5%红包牛牌
int redNum = 28;
HashSet<Integer> set = getLuckUser(redNum,list4_1.size());
List<CattleBrandVO> cattleList = (List<CattleBrandVO>) cattleBrandService.queryCattleBrandList(null,"5").get("data");
for (Integer s : set) {
AddRedRainDto addRedRainDto = BeanTransferUtils.transfer(list4_1.get(s),AddRedRainDto.class);
int k = new Random().nextInt(4);
addRedRainDto.setCattleBrandId(cattleList.get(k).getCattleId());
addRedRainDto.setRedType(CommonTypeEnum.REDPACK_TYPE2.getCode());
addRedRainDto.setIsEnble(CommonTypeEnum.RED_ISENBLE_YES.getCode());
addRedRainDto.setSourceType(CommonTypeEnum.REDPACK_SOURCE_TYPE1.getCode());
batchList4.add(addRedRainDto);
}
activityMapper.updateRedPackageForCattle(batchList4);
}
//11%红包
if(1==1){ if(1==1){
QueryRedRainDto dto1 = new QueryRedRainDto(); QueryRedRainDto dto1 = new QueryRedRainDto();
List<AddRedRainDto> batchList = new ArrayList<>(); List<AddRedRainDto> batchList = new ArrayList<>();
dto1.setIsEnble(CommonTypeEnum.RED_ISENBLE_NO.getCode()); dto1.setIsEnble(CommonTypeEnum.RED_ISENBLE_NO.getCode());
dto1.setBatchNum(batchNum); dto1.setBatchNum(batchNum);
List<RedRainVO> list = activityMapper.queryRedRainList(dto1); List<RedRainVO> list1_1 = activityMapper.queryRedRainList(dto1);
//前10%红包 //前10%红包
int redNum = (int)(list.size()*0.1); int redNum = (int)(list1_1.size()*0.11);
RedPacketUtil redpack = new RedPacketUtil(); RedPacketUtil redpack = new RedPacketUtil();
List<Double> redAmount= redpack.getMoney(totalMoney*0.25,redNum,0.01,200,2.1); List<Double> redAmount= redpack.getMoney(totalMoney*0.25,redNum,0.01,200,2.1);
HashSet<Integer> set = getLuckUser(redNum,list.size()); HashSet<Integer> set = getLuckUser(redNum,list1_1.size());
int i = 0; int i = 0;
for (Integer s : set) { for (Integer s : set) {
AddRedRainDto addRedRainDto = BeanTransferUtils.transfer(list.get(s),AddRedRainDto.class); AddRedRainDto addRedRainDto = BeanTransferUtils.transfer(list1_1.get(s),AddRedRainDto.class);
addRedRainDto.setRedAmount(BigDecimal.valueOf(redAmount.get(i))); addRedRainDto.setRedAmount(BigDecimal.valueOf(redAmount.get(i)));
addRedRainDto.setRedType(CommonTypeEnum.REDPACK_TYPE1.getCode()); addRedRainDto.setRedType(CommonTypeEnum.REDPACK_TYPE1.getCode());
addRedRainDto.setIsEnble(CommonTypeEnum.RED_ISENBLE_YES.getCode()); addRedRainDto.setIsEnble(CommonTypeEnum.RED_ISENBLE_YES.getCode());
...@@ -85,7 +108,7 @@ public class InitRedPackageTask2 { ...@@ -85,7 +108,7 @@ public class InitRedPackageTask2 {
} }
activityMapper.updateRedPackage(batchList); activityMapper.updateRedPackage(batchList);
} }
//20%红包 //22%红包
if(2==2){ if(2==2){
//获取红包总数 //获取红包总数
QueryRedRainDto dto2 = new QueryRedRainDto(); QueryRedRainDto dto2 = new QueryRedRainDto();
...@@ -96,16 +119,15 @@ public class InitRedPackageTask2 { ...@@ -96,16 +119,15 @@ public class InitRedPackageTask2 {
QueryRedRainDto dto2_1 = new QueryRedRainDto(); QueryRedRainDto dto2_1 = new QueryRedRainDto();
dto2_1.setIsEnble(CommonTypeEnum.RED_ISENBLE_NO.getCode()); dto2_1.setIsEnble(CommonTypeEnum.RED_ISENBLE_NO.getCode());
dto2_1.setBatchNum(batchNum); dto2_1.setBatchNum(batchNum);
List<RedRainVO> list2 = activityMapper.queryRedRainList(dto2_1); List<RedRainVO> list2_1 = activityMapper.queryRedRainList(dto2_1);
//前20%红包 //前20%红包
int redNum = (int)(list.size()*0.2); int redNum = (int)(list.size()*0.22);
RedPacketUtil redpack = new RedPacketUtil(); RedPacketUtil redpack = new RedPacketUtil();
List<Double> redAmount= redpack.getMoney(totalMoney*0.25,redNum,0.01,200,2.1); List<Double> redAmount= redpack.getMoney(totalMoney*0.25,redNum,0.01,200,2.1);
HashSet<Integer> set = getLuckUser(redNum,list2.size()); HashSet<Integer> set = getLuckUser(redNum,list2_1.size());
int i = 0; int i = 0;
for (Integer s : set) { for (Integer s : set) {
AddRedRainDto addRedRainDto = BeanTransferUtils.transfer(list2.get(s),AddRedRainDto.class); AddRedRainDto addRedRainDto = BeanTransferUtils.transfer(list2_1.get(s),AddRedRainDto.class);
addRedRainDto.setRedAmount(BigDecimal.valueOf(redAmount.get(i))); addRedRainDto.setRedAmount(BigDecimal.valueOf(redAmount.get(i)));
addRedRainDto.setRedType(CommonTypeEnum.REDPACK_TYPE1.getCode()); addRedRainDto.setRedType(CommonTypeEnum.REDPACK_TYPE1.getCode());
addRedRainDto.setIsEnble(CommonTypeEnum.RED_ISENBLE_YES.getCode()); addRedRainDto.setIsEnble(CommonTypeEnum.RED_ISENBLE_YES.getCode());
...@@ -115,25 +137,25 @@ public class InitRedPackageTask2 { ...@@ -115,25 +137,25 @@ public class InitRedPackageTask2 {
} }
activityMapper.updateRedPackage(batchList2); activityMapper.updateRedPackage(batchList2);
} }
//67%红包
if(3==3){ if(3==3){
//获取红包总数 //获取红包总数
QueryRedRainDto dto3 = new QueryRedRainDto(); QueryRedRainDto dto3 = new QueryRedRainDto();
dto3.setBatchNum(batchNum); dto3.setBatchNum(batchNum);
List<RedRainVO> list = activityMapper.queryRedRainList(dto3);
List<AddRedRainDto> batchList2 = new ArrayList<>(); List<AddRedRainDto> batchList2 = new ArrayList<>();
//获取未结算的红包数 //获取未结算的红包数
QueryRedRainDto dto3_1 = new QueryRedRainDto(); QueryRedRainDto dto3_1 = new QueryRedRainDto();
dto3_1.setIsEnble(CommonTypeEnum.RED_ISENBLE_NO.getCode()); dto3_1.setIsEnble(CommonTypeEnum.RED_ISENBLE_NO.getCode());
dto3_1.setBatchNum(batchNum); dto3_1.setBatchNum(batchNum);
List<RedRainVO> list2 = activityMapper.queryRedRainList(dto3_1); List<RedRainVO> list3_1 = activityMapper.queryRedRainList(dto3_1);
//前65%红包 //前65%红包
int redNum = (int)(list.size()*0.65); int redNum = list3_1.size();
RedPacketUtil redpack = new RedPacketUtil(); RedPacketUtil redpack = new RedPacketUtil();
List<Double> redAmount= redpack.getMoney(totalMoney*0.5,redNum,0.01,200,2.1); List<Double> redAmount= redpack.getMoney(totalMoney*0.5,redNum,0.01,200,2.1);
HashSet<Integer> set = getLuckUser(redNum,list2.size()); HashSet<Integer> set = getLuckUser(redNum,list3_1.size());
int i = 0; int i = 0;
for (Integer s : set) { for (Integer s : set) {
AddRedRainDto addRedRainDto = BeanTransferUtils.transfer(list2.get(s),AddRedRainDto.class); AddRedRainDto addRedRainDto = BeanTransferUtils.transfer(list3_1.get(s),AddRedRainDto.class);
addRedRainDto.setRedAmount(BigDecimal.valueOf(redAmount.get(i))); addRedRainDto.setRedAmount(BigDecimal.valueOf(redAmount.get(i)));
addRedRainDto.setRedType(CommonTypeEnum.REDPACK_TYPE1.getCode()); addRedRainDto.setRedType(CommonTypeEnum.REDPACK_TYPE1.getCode());
addRedRainDto.setIsEnble(CommonTypeEnum.RED_ISENBLE_YES.getCode()); addRedRainDto.setIsEnble(CommonTypeEnum.RED_ISENBLE_YES.getCode());
...@@ -143,34 +165,6 @@ public class InitRedPackageTask2 { ...@@ -143,34 +165,6 @@ public class InitRedPackageTask2 {
} }
activityMapper.updateRedPackage(batchList2); activityMapper.updateRedPackage(batchList2);
} }
if(4==4){
//获取红包总数
QueryRedRainDto dto4 = new QueryRedRainDto();
dto4.setBatchNum(batchNum);
List<RedRainVO> list = activityMapper.queryRedRainList(dto4);
List<AddRedRainDto> batchList2 = new ArrayList<>();
//获取未结算的红包数
QueryRedRainDto dto4_1 = new QueryRedRainDto();
dto4_1.setIsEnble(CommonTypeEnum.RED_ISENBLE_NO.getCode());
dto4_1.setBatchNum(batchNum);
List<RedRainVO> list2 = activityMapper.queryRedRainList(dto4_1);
//前5%红包牛牌
int redNum =list2.size();
HashSet<Integer> set = getLuckUser(redNum,list2.size());
List<CattleBrandVO> cattleList = (List<CattleBrandVO>) cattleBrandService.queryCattleBrandList(null).get("data");
int i = 0;
for (Integer s : set) {
AddRedRainDto addRedRainDto = BeanTransferUtils.transfer(list2.get(s),AddRedRainDto.class);
int k = new Random().nextInt(5);
addRedRainDto.setCattleBrandId(cattleList.get(k).getCattleId());
addRedRainDto.setRedType(CommonTypeEnum.REDPACK_TYPE2.getCode());
addRedRainDto.setIsEnble(CommonTypeEnum.RED_ISENBLE_YES.getCode());
addRedRainDto.setSourceType(CommonTypeEnum.REDPACK_SOURCE_TYPE1.getCode());
batchList2.add(addRedRainDto);
i++;
}
activityMapper.updateRedPackageForCattle(batchList2);
}
//更新聚宝盆 //更新聚宝盆
CalculateAmoutDto calculateAmoutDto = new CalculateAmoutDto(); CalculateAmoutDto calculateAmoutDto = new CalculateAmoutDto();
calculateAmoutDto.setRedType(CommonTypeEnum.REDPACK_TYPE1.getCode()); calculateAmoutDto.setRedType(CommonTypeEnum.REDPACK_TYPE1.getCode());
...@@ -200,7 +194,7 @@ public class InitRedPackageTask2 { ...@@ -200,7 +194,7 @@ public class InitRedPackageTask2 {
saveUserCattleDtos.add(dto); saveUserCattleDtos.add(dto);
}); });
userInfoMapper.saveCattleBrand(saveUserCattleDtos); userInfoMapper.saveCattleBrand(saveUserCattleDtos);
log.info("第二批红包雨任务结束"); log.info("第一批红包雨任务结束");
} }
private HashSet<Integer> getLuckUser(int count, int random){ private HashSet<Integer> getLuckUser(int count, int random){
HashSet<Integer> has = new HashSet<Integer>(); HashSet<Integer> has = new HashSet<Integer>();
...@@ -214,5 +208,4 @@ public class InitRedPackageTask2 { ...@@ -214,5 +208,4 @@ public class InitRedPackageTask2 {
} }
return has; return has;
} }
} }
...@@ -3,23 +3,21 @@ package com.polysoft.activity.task; ...@@ -3,23 +3,21 @@ package com.polysoft.activity.task;
import com.polysoft.activity.common.utils.BeanTransferUtils; import com.polysoft.activity.common.utils.BeanTransferUtils;
import com.polysoft.activity.constant.CommonTypeEnum; import com.polysoft.activity.constant.CommonTypeEnum;
import com.polysoft.activity.mapper.ActivityMapper; import com.polysoft.activity.mapper.ActivityMapper;
import com.polysoft.activity.mapper.CattleBrandMapper;
import com.polysoft.activity.mapper.UserInfoMapper; import com.polysoft.activity.mapper.UserInfoMapper;
import com.polysoft.activity.model.dto.AddRedRainDto; import com.polysoft.activity.model.dto.*;
import com.polysoft.activity.model.dto.CalculateAmoutDto; import com.polysoft.activity.model.vo.CattleBrandConfVO;
import com.polysoft.activity.model.dto.QueryRedRainDto;
import com.polysoft.activity.model.dto.SaveUserCattleDto;
import com.polysoft.activity.model.dto.UserInfoDto;
import com.polysoft.activity.model.vo.CattleBrandVO; import com.polysoft.activity.model.vo.CattleBrandVO;
import com.polysoft.activity.model.vo.RedAmountTotalVO; import com.polysoft.activity.model.vo.RedAmountTotalVO;
import com.polysoft.activity.model.vo.RedRainVO; import com.polysoft.activity.model.vo.RedRainVO;
import com.polysoft.activity.service.CattleBrandService; import com.polysoft.activity.service.CattleBrandService;
import com.polysoft.activity.utils.MathRandom;
import com.polysoft.activity.utils.RedPacketUtil; import com.polysoft.activity.utils.RedPacketUtil;
import com.polysoft.activity.utils.SnowFlakeUtil; import com.polysoft.activity.utils.SnowFlakeUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
...@@ -44,40 +42,63 @@ public class InitRedPackageTask3 { ...@@ -44,40 +42,63 @@ public class InitRedPackageTask3 {
private CattleBrandService cattleBrandService; private CattleBrandService cattleBrandService;
@Resource @Resource
private UserInfoMapper userInfoMapper; private UserInfoMapper userInfoMapper;
@Resource
private CattleBrandMapper cattleBrandMapper;
// @Scheduled(initialDelay = 10000, fixedRate = 1*15*60*1000) // @Scheduled(initialDelay = 10000, fixedRate = 1*15*60*1000)
// @Scheduled( cron = "40 20 17 * * ? ") // @Scheduled( cron = "40 10 17 * * ? ")
@Scheduled( cron = "45 0 0 12 2 ? ") // 2月12日 0时0点0分45秒执行 @Scheduled( cron = "45 0 0 12 2 ? ") // 2月12日 0点0分45秒执行
public void execute() { public void execute() {
try { try {
Thread.sleep(5000); Thread.sleep(5000);
sendWechat(); sendWechat();
} catch (InterruptedException e) { } catch (InterruptedException e) {
e.printStackTrace(); e.printStackTrace();
throw new RuntimeException("第三场红包雨线程睡眠异常"); throw new RuntimeException("第一场红包雨线程睡眠异常");
}
} }
}
private void sendWechat(){ private void sendWechat(){
log.info("第三批红包雨任务开始"); log.info("第一批红包雨任务开始");
//查询出没有初始化的红包 //查询出没有初始化的红包
final int batchNum = 3; final int batchNum = 1;
final double totalMoney = 5000.00; final double totalMoney = 5000.00;
if(4==4){
List<AddRedRainDto> batchList4 = new ArrayList<>();
QueryRedRainDto dto4_1 = new QueryRedRainDto();
dto4_1.setIsEnble(CommonTypeEnum.RED_ISENBLE_NO.getCode());
dto4_1.setBatchNum(batchNum);
List<RedRainVO> list4_1 = activityMapper.queryRedRainList(dto4_1);
//前5%红包牛牌
int redNum = 28;
HashSet<Integer> set = getLuckUser(redNum,list4_1.size());
List<CattleBrandVO> cattleList = (List<CattleBrandVO>) cattleBrandService.queryCattleBrandList(null,"5").get("data");
for (Integer s : set) {
AddRedRainDto addRedRainDto = BeanTransferUtils.transfer(list4_1.get(s),AddRedRainDto.class);
int k = new Random().nextInt(4);
addRedRainDto.setCattleBrandId(cattleList.get(k).getCattleId());
addRedRainDto.setRedType(CommonTypeEnum.REDPACK_TYPE2.getCode());
addRedRainDto.setIsEnble(CommonTypeEnum.RED_ISENBLE_YES.getCode());
addRedRainDto.setSourceType(CommonTypeEnum.REDPACK_SOURCE_TYPE1.getCode());
batchList4.add(addRedRainDto);
}
activityMapper.updateRedPackageForCattle(batchList4);
}
//11%红包
if(1==1){ if(1==1){
QueryRedRainDto dto1 = new QueryRedRainDto(); QueryRedRainDto dto1 = new QueryRedRainDto();
List<AddRedRainDto> batchList = new ArrayList<>(); List<AddRedRainDto> batchList = new ArrayList<>();
dto1.setIsEnble(CommonTypeEnum.RED_ISENBLE_NO.getCode()); dto1.setIsEnble(CommonTypeEnum.RED_ISENBLE_NO.getCode());
dto1.setBatchNum(batchNum); dto1.setBatchNum(batchNum);
List<RedRainVO> list = activityMapper.queryRedRainList(dto1); List<RedRainVO> list1_1 = activityMapper.queryRedRainList(dto1);
// !CollectionUtils.isEmpty(blackLists)
//前10%红包 //前10%红包
int redNum = (int)(list.size()*0.1); int redNum = (int)(list1_1.size()*0.11);
RedPacketUtil redpack = new RedPacketUtil(); RedPacketUtil redpack = new RedPacketUtil();
List<Double> redAmount= redpack.getMoney(totalMoney*0.25,redNum,0.01,200,2.1); List<Double> redAmount= redpack.getMoney(totalMoney*0.25,redNum,0.01,200,2.1);
HashSet<Integer> set = getLuckUser(redNum,list.size()); HashSet<Integer> set = getLuckUser(redNum,list1_1.size());
int i = 0; int i = 0;
for (Integer s : set) { for (Integer s : set) {
AddRedRainDto addRedRainDto = BeanTransferUtils.transfer(list.get(s),AddRedRainDto.class); AddRedRainDto addRedRainDto = BeanTransferUtils.transfer(list1_1.get(s),AddRedRainDto.class);
addRedRainDto.setRedAmount(BigDecimal.valueOf(redAmount.get(i))); addRedRainDto.setRedAmount(BigDecimal.valueOf(redAmount.get(i)));
addRedRainDto.setRedType(CommonTypeEnum.REDPACK_TYPE1.getCode()); addRedRainDto.setRedType(CommonTypeEnum.REDPACK_TYPE1.getCode());
addRedRainDto.setIsEnble(CommonTypeEnum.RED_ISENBLE_YES.getCode()); addRedRainDto.setIsEnble(CommonTypeEnum.RED_ISENBLE_YES.getCode());
...@@ -87,7 +108,7 @@ public class InitRedPackageTask3 { ...@@ -87,7 +108,7 @@ public class InitRedPackageTask3 {
} }
activityMapper.updateRedPackage(batchList); activityMapper.updateRedPackage(batchList);
} }
//20%红包 //22%红包
if(2==2){ if(2==2){
//获取红包总数 //获取红包总数
QueryRedRainDto dto2 = new QueryRedRainDto(); QueryRedRainDto dto2 = new QueryRedRainDto();
...@@ -98,16 +119,15 @@ public class InitRedPackageTask3 { ...@@ -98,16 +119,15 @@ public class InitRedPackageTask3 {
QueryRedRainDto dto2_1 = new QueryRedRainDto(); QueryRedRainDto dto2_1 = new QueryRedRainDto();
dto2_1.setIsEnble(CommonTypeEnum.RED_ISENBLE_NO.getCode()); dto2_1.setIsEnble(CommonTypeEnum.RED_ISENBLE_NO.getCode());
dto2_1.setBatchNum(batchNum); dto2_1.setBatchNum(batchNum);
List<RedRainVO> list2 = activityMapper.queryRedRainList(dto2_1); List<RedRainVO> list2_1 = activityMapper.queryRedRainList(dto2_1);
//前20%红包 //前20%红包
int redNum = (int)(list.size()*0.2); int redNum = (int)(list.size()*0.22);
RedPacketUtil redpack = new RedPacketUtil(); RedPacketUtil redpack = new RedPacketUtil();
List<Double> redAmount= redpack.getMoney(totalMoney*0.25,redNum,0.01,200,2.1); List<Double> redAmount= redpack.getMoney(totalMoney*0.25,redNum,0.01,200,2.1);
HashSet<Integer> set = getLuckUser(redNum,list2.size()); HashSet<Integer> set = getLuckUser(redNum,list2_1.size());
int i = 0; int i = 0;
for (Integer s : set) { for (Integer s : set) {
AddRedRainDto addRedRainDto = BeanTransferUtils.transfer(list2.get(s),AddRedRainDto.class); AddRedRainDto addRedRainDto = BeanTransferUtils.transfer(list2_1.get(s),AddRedRainDto.class);
addRedRainDto.setRedAmount(BigDecimal.valueOf(redAmount.get(i))); addRedRainDto.setRedAmount(BigDecimal.valueOf(redAmount.get(i)));
addRedRainDto.setRedType(CommonTypeEnum.REDPACK_TYPE1.getCode()); addRedRainDto.setRedType(CommonTypeEnum.REDPACK_TYPE1.getCode());
addRedRainDto.setIsEnble(CommonTypeEnum.RED_ISENBLE_YES.getCode()); addRedRainDto.setIsEnble(CommonTypeEnum.RED_ISENBLE_YES.getCode());
...@@ -117,25 +137,25 @@ public class InitRedPackageTask3 { ...@@ -117,25 +137,25 @@ public class InitRedPackageTask3 {
} }
activityMapper.updateRedPackage(batchList2); activityMapper.updateRedPackage(batchList2);
} }
//67%红包
if(3==3){ if(3==3){
//获取红包总数 //获取红包总数
QueryRedRainDto dto3 = new QueryRedRainDto(); QueryRedRainDto dto3 = new QueryRedRainDto();
dto3.setBatchNum(batchNum); dto3.setBatchNum(batchNum);
List<RedRainVO> list = activityMapper.queryRedRainList(dto3);
List<AddRedRainDto> batchList2 = new ArrayList<>(); List<AddRedRainDto> batchList2 = new ArrayList<>();
//获取未结算的红包数 //获取未结算的红包数
QueryRedRainDto dto3_1 = new QueryRedRainDto(); QueryRedRainDto dto3_1 = new QueryRedRainDto();
dto3_1.setIsEnble(CommonTypeEnum.RED_ISENBLE_NO.getCode()); dto3_1.setIsEnble(CommonTypeEnum.RED_ISENBLE_NO.getCode());
dto3_1.setBatchNum(batchNum); dto3_1.setBatchNum(batchNum);
List<RedRainVO> list2 = activityMapper.queryRedRainList(dto3_1); List<RedRainVO> list3_1 = activityMapper.queryRedRainList(dto3_1);
//前65%红包 //前65%红包
int redNum = (int)(list.size()*0.65); int redNum = list3_1.size();
RedPacketUtil redpack = new RedPacketUtil(); RedPacketUtil redpack = new RedPacketUtil();
List<Double> redAmount= redpack.getMoney(totalMoney*0.5,redNum,0.01,200,2.1); List<Double> redAmount= redpack.getMoney(totalMoney*0.5,redNum,0.01,200,2.1);
HashSet<Integer> set = getLuckUser(redNum,list2.size()); HashSet<Integer> set = getLuckUser(redNum,list3_1.size());
int i = 0; int i = 0;
for (Integer s : set) { for (Integer s : set) {
AddRedRainDto addRedRainDto = BeanTransferUtils.transfer(list2.get(s),AddRedRainDto.class); AddRedRainDto addRedRainDto = BeanTransferUtils.transfer(list3_1.get(s),AddRedRainDto.class);
addRedRainDto.setRedAmount(BigDecimal.valueOf(redAmount.get(i))); addRedRainDto.setRedAmount(BigDecimal.valueOf(redAmount.get(i)));
addRedRainDto.setRedType(CommonTypeEnum.REDPACK_TYPE1.getCode()); addRedRainDto.setRedType(CommonTypeEnum.REDPACK_TYPE1.getCode());
addRedRainDto.setIsEnble(CommonTypeEnum.RED_ISENBLE_YES.getCode()); addRedRainDto.setIsEnble(CommonTypeEnum.RED_ISENBLE_YES.getCode());
...@@ -145,34 +165,6 @@ public class InitRedPackageTask3 { ...@@ -145,34 +165,6 @@ public class InitRedPackageTask3 {
} }
activityMapper.updateRedPackage(batchList2); activityMapper.updateRedPackage(batchList2);
} }
if(4==4){
//获取红包总数
QueryRedRainDto dto4 = new QueryRedRainDto();
dto4.setBatchNum(batchNum);
List<RedRainVO> list = activityMapper.queryRedRainList(dto4);
List<AddRedRainDto> batchList2 = new ArrayList<>();
//获取未结算的红包数
QueryRedRainDto dto4_1 = new QueryRedRainDto();
dto4_1.setIsEnble(CommonTypeEnum.RED_ISENBLE_NO.getCode());
dto4_1.setBatchNum(batchNum);
List<RedRainVO> list2 = activityMapper.queryRedRainList(dto4_1);
//前5%红包牛牌
int redNum =list2.size();
HashSet<Integer> set = getLuckUser(redNum,list2.size());
List<CattleBrandVO> cattleList = (List<CattleBrandVO>) cattleBrandService.queryCattleBrandList(null).get("data");
int i = 0;
for (Integer s : set) {
AddRedRainDto addRedRainDto = BeanTransferUtils.transfer(list2.get(s),AddRedRainDto.class);
int k = new Random().nextInt(5);
addRedRainDto.setCattleBrandId(cattleList.get(k).getCattleId());
addRedRainDto.setRedType(CommonTypeEnum.REDPACK_TYPE2.getCode());
addRedRainDto.setIsEnble(CommonTypeEnum.RED_ISENBLE_YES.getCode());
addRedRainDto.setSourceType(CommonTypeEnum.REDPACK_SOURCE_TYPE1.getCode());
batchList2.add(addRedRainDto);
i++;
}
activityMapper.updateRedPackageForCattle(batchList2);
}
//更新聚宝盆 //更新聚宝盆
CalculateAmoutDto calculateAmoutDto = new CalculateAmoutDto(); CalculateAmoutDto calculateAmoutDto = new CalculateAmoutDto();
calculateAmoutDto.setRedType(CommonTypeEnum.REDPACK_TYPE1.getCode()); calculateAmoutDto.setRedType(CommonTypeEnum.REDPACK_TYPE1.getCode());
...@@ -202,7 +194,7 @@ public class InitRedPackageTask3 { ...@@ -202,7 +194,7 @@ public class InitRedPackageTask3 {
saveUserCattleDtos.add(dto); saveUserCattleDtos.add(dto);
}); });
userInfoMapper.saveCattleBrand(saveUserCattleDtos); userInfoMapper.saveCattleBrand(saveUserCattleDtos);
log.info("第三批红包雨任务结束"); log.info("第一批红包雨任务结束");
} }
private HashSet<Integer> getLuckUser(int count, int random){ private HashSet<Integer> getLuckUser(int count, int random){
HashSet<Integer> has = new HashSet<Integer>(); HashSet<Integer> has = new HashSet<Integer>();
......
...@@ -33,7 +33,7 @@ public class WishLuckDrawTask { ...@@ -33,7 +33,7 @@ public class WishLuckDrawTask {
// @Scheduled( cron = "0 40 17 * * ? ") // @Scheduled( cron = "0 40 17 * * ? ")
// @Scheduled(initialDelay = 5000, fixedRate = 1*15*60*1000) // @Scheduled(initialDelay = 5000, fixedRate = 1*15*60*1000)
@Scheduled( cron = "0 20 20 11,12,13,14,15,16,17 2 ? ")//2月11,12,13,14,15,16,17, 20时20分0秒执行 @Scheduled( cron = "0 21 20 11,12,13,14,15,16,17 2 ? ")//2月11,12,13,14,15,16,17, 20时21分0秒执行
public void execute() { public void execute() {
try { try {
sendWechat(); sendWechat();
...@@ -90,4 +90,9 @@ public class WishLuckDrawTask { ...@@ -90,4 +90,9 @@ public class WishLuckDrawTask {
} }
return has; return has;
} }
public static void main(String[] args) {
WishLuckDrawTask task = new WishLuckDrawTask();
task.getLuckUser(10,14).forEach(a->System.out.println(a));
}
} }
...@@ -46,6 +46,9 @@ ...@@ -46,6 +46,9 @@
<if test="brandType != null and brandType != '' "> <if test="brandType != null and brandType != '' ">
and brand_type = #{brandType} and brand_type = #{brandType}
</if> </if>
<if test="isNotBrandType != null and isNotBrandType != '' ">
and brand_type &lt;&gt; #{isNotBrandType}
</if>
</select> </select>
<select id="queryCattleBrandByUserId" resultType="com.polysoft.activity.model.vo.CattleBrandFroUserVO"> <select id="queryCattleBrandByUserId" resultType="com.polysoft.activity.model.vo.CattleBrandFroUserVO">
SELECT SELECT
...@@ -118,6 +121,9 @@ ...@@ -118,6 +121,9 @@
t_red_rain t t_red_rain t
WHERE WHERE
t.source_type = '4' t.source_type = '4'
<if test="userId != null">
and t.user_id=#{userId}
</if>
</select> </select>
<select id="getUserCattleVOById" resultType="com.polysoft.activity.model.vo.UserCattleVO"> <select id="getUserCattleVOById" resultType="com.polysoft.activity.model.vo.UserCattleVO">
SELECT SELECT
......
...@@ -39,6 +39,12 @@ public class ApiResult extends HashMap<String, Object> { ...@@ -39,6 +39,12 @@ public class ApiResult extends HashMap<String, Object> {
r.put("msg", msg); r.put("msg", msg);
return r; return r;
} }
public static ApiResult error(String code, String msg) {
ApiResult r = new ApiResult();
r.put("code", code);
r.put("msg", msg);
return r;
}
public static ApiResult ok(String code, String msg,Object data) { public static ApiResult ok(String code, String msg,Object data) {
ApiResult r = new ApiResult(); ApiResult r = new ApiResult();
r.put("code", code); r.put("code", code);
......
...@@ -81,7 +81,7 @@ public class RedPacketUtil { ...@@ -81,7 +81,7 @@ public class RedPacketUtil {
public static void main(String[] args) { public static void main(String[] args) {
RedPacketUtil redpack = new RedPacketUtil(); RedPacketUtil redpack = new RedPacketUtil();
List<Double> redAmount= redpack.getMoney(4000-444,177,5,30,2.1); List<Double> redAmount= redpack.getMoney(1250,10,0.01,200,2.1);
redAmount.forEach(a -> System.out.println(a)); redAmount.forEach(a -> System.out.println(a));
} }
} }
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!