Commit b9ffaba9 by lvyp

红包雨-红包发放

1 parent 59f8c1d4
Showing 20 changed files with 216 additions and 61 deletions
...@@ -3,8 +3,10 @@ package com.polysoft.activity.mapper; ...@@ -3,8 +3,10 @@ package com.polysoft.activity.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.polysoft.activity.model.dto.ActItemDto; import com.polysoft.activity.model.dto.ActItemDto;
import com.polysoft.activity.model.dto.AddRedRainDto; import com.polysoft.activity.model.dto.AddRedRainDto;
import com.polysoft.activity.model.dto.CalculateAmoutDto;
import com.polysoft.activity.model.dto.QueryRedRainDto; import com.polysoft.activity.model.dto.QueryRedRainDto;
import com.polysoft.activity.model.vo.ActItemVO; import com.polysoft.activity.model.vo.ActItemVO;
import com.polysoft.activity.model.vo.RedAmountTotalVO;
import com.polysoft.activity.model.vo.RedRainVO; import com.polysoft.activity.model.vo.RedRainVO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
...@@ -19,9 +21,12 @@ import java.util.List; ...@@ -19,9 +21,12 @@ import java.util.List;
public interface ActivityMapper extends BaseMapper<ActItemDto> { public interface ActivityMapper extends BaseMapper<ActItemDto> {
List<ActItemVO> queryActivityInfo(); List<ActItemVO> queryActivityInfo();
int updateActStatus(@Param("id")Long id ,@Param("status") int status); int updateActStatus(@Param("id")Long id ,@Param("status") String status);
int saveRedRain(@Param("list") List<AddRedRainDto> list); int saveRedRain(@Param("list") List<AddRedRainDto> list);
List<RedRainVO> queryRedRainList(QueryRedRainDto dto); List<RedRainVO> queryRedRainList(QueryRedRainDto dto);
int updateRedPackage(List<AddRedRainDto> dto); int updateRedPackage(List<AddRedRainDto> dto);
int updateRedPackageForCattle(List<AddRedRainDto> dto); int updateRedPackageForCattle(List<AddRedRainDto> dto);
List<RedAmountTotalVO> calculateRedAmountTatol(CalculateAmoutDto dto);
List<RedAmountTotalVO> calculateCattleBrand(CalculateAmoutDto dto);
} }
package com.polysoft.activity.mapper; package com.polysoft.activity.mapper;
import com.polysoft.activity.model.dto.SaveUserCattleDto;
import com.polysoft.activity.model.dto.UserInfoDto;
import com.polysoft.activity.model.dto.WechatTokenDto; import com.polysoft.activity.model.dto.WechatTokenDto;
import com.polysoft.activity.model.vo.UserInfoVO; import com.polysoft.activity.model.vo.UserInfoVO;
import com.polysoft.activity.model.vo.WechatToken; import com.polysoft.activity.model.vo.WechatToken;
...@@ -13,4 +15,6 @@ public interface UserInfoMapper { ...@@ -13,4 +15,6 @@ public interface UserInfoMapper {
UserInfoVO queryAuthUser(@Param("phone") String phone); UserInfoVO queryAuthUser(@Param("phone") String phone);
WechatToken getWechatToken(); WechatToken getWechatToken();
int updateWechatToken(WechatTokenDto dto); int updateWechatToken(WechatTokenDto dto);
int updateRedBalace(@Param("list") List<UserInfoDto> list);
int saveCattleBrand(@Param("list") List<SaveUserCattleDto> list);
} }
...@@ -18,12 +18,12 @@ public class AddRedRainDto { ...@@ -18,12 +18,12 @@ public class AddRedRainDto {
//红包金额 //红包金额
private BigDecimal redAmount ; private BigDecimal redAmount ;
//红包类型 0 普通红包 1 牛牌 //红包类型 0 普通红包 1 牛牌
private int redType ; private String redType ;
//牛牌主键 //牛牌主键
private Long cattleBrandId ; private Long cattleBrandId ;
private String createTime; private String createTime;
//0 未结算 1 已结算 //0 未结算 1 已结算
private int isEnble; private String isEnble;
//红包雨批次号 //红包雨批次号
private int batchNum; private int batchNum;
......
...@@ -25,13 +25,13 @@ public class AddWishDto { ...@@ -25,13 +25,13 @@ public class AddWishDto {
@ApiModelProperty("心愿语录内容") @ApiModelProperty("心愿语录内容")
private String wishContext ; private String wishContext ;
@ApiModelProperty("0 未中奖 1 中奖") @ApiModelProperty("0 未中奖 1 中奖")
private int prizeFalg =0; private String prizeFalg ;
@ApiModelProperty("创建日期") @ApiModelProperty("创建日期")
private String createTime ; private String createTime ;
@ApiModelProperty("发布日期 示例:2020-01-21") @ApiModelProperty("发布日期 示例:2020-01-21")
private String pushDate ; private String pushDate ;
@ApiModelProperty("0 未删除 1 已删除") @ApiModelProperty("0 未删除 1 已删除")
private int deleteFalg =0 ; private String deleteFalg ;
public void setCreateTime(Date date) { public void setCreateTime(Date date) {
this.createTime = DateUtil.format(new Date(),"yyyy-MM-dd HH:mm:ss"); this.createTime = DateUtil.format(new Date(),"yyyy-MM-dd HH:mm:ss");
......
package com.polysoft.activity.model.dto;
import lombok.Data;
@Data
public class CalculateAmoutDto {
private String redType;
private int batchNum;
}
...@@ -8,7 +8,7 @@ import lombok.Data; ...@@ -8,7 +8,7 @@ import lombok.Data;
@TableName("t_cattle_brand") @TableName("t_cattle_brand")
public class CattleBrandDto { public class CattleBrandDto {
private Long cattleId; private Long cattleId;
private int brandType; private String brandType;
private String brandName; private String brandName;
} }
...@@ -13,7 +13,7 @@ public class QueryRedRainDto { ...@@ -13,7 +13,7 @@ public class QueryRedRainDto {
//红包类型 0 普通红包 1 牛牌 //红包类型 0 普通红包 1 牛牌
private Long redType ; private Long redType ;
//0 未结算 1 已结算 //0 未结算 1 已结算
private int isEnble; private String isEnble;
//红包雨批次号 //红包雨批次号
private int batchNum; private int batchNum;
......
package com.polysoft.activity.model.dto;
import lombok.Data;
@Data
public class SaveUserCattleDto {
private Long id;
private Long userId;
private Long cattleBrandId;
}
package com.polysoft.activity.model.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
@ApiModel("用户信息类")
@Data
public class UserInfoDto implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("用户主键")
private Long userId;
@ApiModelProperty("用户名")
private String userName;
@ApiModelProperty("用户名")
private String phone;
@ApiModelProperty("用户名")
private BigDecimal redBalance;
@ApiModelProperty("部门名称")
private String deptName;
}
...@@ -27,7 +27,7 @@ public class AddWishParam { ...@@ -27,7 +27,7 @@ public class AddWishParam {
@NotBlank(message = "心愿语录内容不能为空") @NotBlank(message = "心愿语录内容不能为空")
private String wishContext ; private String wishContext ;
@ApiModelProperty("0 未中奖 1 中奖") @ApiModelProperty("0 未中奖 1 中奖")
private int prizeFalg =0; private String prizeFalg ;
@ApiModelProperty("图片") @ApiModelProperty("图片")
@NotBlank(message = "心愿图片不能为空") @NotBlank(message = "心愿图片不能为空")
private List<MultipartFile> multipartFiles; private List<MultipartFile> multipartFiles;
......
...@@ -13,5 +13,5 @@ public class ActItemVO { ...@@ -13,5 +13,5 @@ public class ActItemVO {
private String activityName; private String activityName;
private String startTime; private String startTime;
private String emdTime; private String emdTime;
private int activityStatus; private String activityStatus;
} }
...@@ -5,7 +5,7 @@ import lombok.Data; ...@@ -5,7 +5,7 @@ import lombok.Data;
@Data @Data
public class CattleBrandVO { public class CattleBrandVO {
private Long cattleId; private Long cattleId;
private int brandType; private String brandType;
private String brandName; private String brandName;
} }
package com.polysoft.activity.model.vo;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class RedAmountTotalVO {
private Long userId;
private BigDecimal redAmountTatol;
private Long cattleBrandId;
}
...@@ -18,11 +18,11 @@ public class RedRainVO { ...@@ -18,11 +18,11 @@ public class RedRainVO {
//红包金额 //红包金额
private BigDecimal redAmount ; private BigDecimal redAmount ;
//红包类型 0 普通红包 1 牛牌 //红包类型 0 普通红包 1 牛牌
private int redType ; private String redType ;
//牛牌主键 //牛牌主键
private Long cattleBrandId ; private Long cattleBrandId ;
//0 未结算 1 已结算 //0 未结算 1 已结算
private int isEnble; private String isEnble;
//红包雨批次号 //红包雨批次号
private int batchNum; private int batchNum;
......
...@@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty; ...@@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
@ApiModel("用户信息类") @ApiModel("用户信息类")
@Data @Data
public class UserInfoVO implements Serializable { public class UserInfoVO implements Serializable {
...@@ -16,5 +18,7 @@ public class UserInfoVO implements Serializable { ...@@ -16,5 +18,7 @@ public class UserInfoVO implements Serializable {
@ApiModelProperty("用户名") @ApiModelProperty("用户名")
private String phone; private String phone;
@ApiModelProperty("用户名") @ApiModelProperty("用户名")
private double redBalance; private BigDecimal redBalance;
@ApiModelProperty("部门名称")
private String dept_name;
} }
...@@ -23,12 +23,12 @@ public class WishVO { ...@@ -23,12 +23,12 @@ public class WishVO {
@ApiModelProperty("心愿语录内容") @ApiModelProperty("心愿语录内容")
private String wishContext ; private String wishContext ;
@ApiModelProperty("0 未中奖 1 中奖") @ApiModelProperty("0 未中奖 1 中奖")
private int prizeFalg =0; private String prizeFalg ;
@ApiModelProperty("创建日期") @ApiModelProperty("创建日期")
private String createTime ; private String createTime ;
@ApiModelProperty("发布日期 示例:2020-01-21") @ApiModelProperty("发布日期 示例:2020-01-21")
private String pushDate ; private String pushDate ;
@ApiModelProperty("0 未删除 1 已删除") @ApiModelProperty("0 未删除 1 已删除")
private int deleteFalg =0 ; private String deleteFalg ;
private String picUrl; private String picUrl;
} }
...@@ -27,24 +27,24 @@ public class ActItemServiceImpl implements ActItemService{ ...@@ -27,24 +27,24 @@ public class ActItemServiceImpl implements ActItemService{
public ApiResult queryActivityInfo() { public ApiResult queryActivityInfo() {
List<ActItemVO> list = activityMapper.queryActivityInfo(); List<ActItemVO> list = activityMapper.queryActivityInfo();
for (ActItemVO item : list) { for (ActItemVO item : list) {
if(item.getActivityStatus() != 3) { if(!"3".equals(item.getActivityStatus())) {
Long startTime = DateUtil.parse(item.getStartTime(), "yyyy-MM-dd HH:mm:ss").getTime() / 1000; Long startTime = DateUtil.parse(item.getStartTime(), "yyyy-MM-dd HH:mm:ss").getTime() / 1000;
Long endTime = DateUtil.parse(item.getEmdTime(), "yyyy-MM-dd HH:mm:ss").getTime() / 1000; Long endTime = DateUtil.parse(item.getEmdTime(), "yyyy-MM-dd HH:mm:ss").getTime() / 1000;
Long cuttentTime = System.currentTimeMillis() / 1000; Long cuttentTime = System.currentTimeMillis() / 1000;
if (cuttentTime > startTime && cuttentTime < endTime) { if (cuttentTime > startTime && cuttentTime < endTime) {
//正在进行 //正在进行
activityMapper.updateActStatus(item.getId(), 1); activityMapper.updateActStatus(item.getId(), "1");
item.setActivityStatus(1); item.setActivityStatus("1");
} }
if(cuttentTime < startTime && (startTime - cuttentTime) <30){ if(cuttentTime < startTime && (startTime - cuttentTime) <30){
//即将开始 //即将开始
activityMapper.updateActStatus(item.getId(), 2); activityMapper.updateActStatus(item.getId(), "2");
item.setActivityStatus(2); item.setActivityStatus("2");
} }
if (cuttentTime > endTime) { if (cuttentTime > endTime) {
//已结束 //已结束
activityMapper.updateActStatus(item.getId(), 3); activityMapper.updateActStatus(item.getId(), "3");
item.setActivityStatus(3); item.setActivityStatus("3");
} }
} }
} }
......
...@@ -4,11 +4,13 @@ import cn.hutool.core.date.DateUtil; ...@@ -4,11 +4,13 @@ import cn.hutool.core.date.DateUtil;
import com.polysoft.activity.common.log.LoggerHelper; import com.polysoft.activity.common.log.LoggerHelper;
import com.polysoft.activity.common.utils.BeanTransferUtils; import com.polysoft.activity.common.utils.BeanTransferUtils;
import com.polysoft.activity.mapper.ActivityMapper; import com.polysoft.activity.mapper.ActivityMapper;
import com.polysoft.activity.model.dto.AddRedRainDto; import com.polysoft.activity.mapper.UserInfoMapper;
import com.polysoft.activity.model.dto.QueryRedRainDto; import com.polysoft.activity.model.dto.*;
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.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.SnowFlakeUtil;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
...@@ -36,14 +38,17 @@ public class InitRedPackageTask { ...@@ -36,14 +38,17 @@ public class InitRedPackageTask {
private ActivityMapper activityMapper; private ActivityMapper activityMapper;
@Resource @Resource
private CattleBrandService cattleBrandService; private CattleBrandService cattleBrandService;
@Resource
private UserInfoMapper userInfoMapper;
// @Scheduled(initialDelay = 10000, fixedRate = 1*15*60*1000) // @Scheduled(initialDelay = 10000, fixedRate = 1*15*60*1000)
@Scheduled( cron = "50 06 22 * * ? ") @Scheduled( cron = "20 42 23 * * ? ")
public void execute() { public void execute() {
sendWechat(); sendWechat();
} }
private void sendWechat(){ private void sendWechat(){
Long stime = System.currentTimeMillis()/1000;
//红包雨开始时间 //红包雨开始时间
// Long batch1 = DateUtil.parse("2021-02-11 20:00:00","yyyy-MM-dd HH:mm:ss").getTime()/1000; // Long batch1 = DateUtil.parse("2021-02-11 20:00:00","yyyy-MM-dd HH:mm:ss").getTime()/1000;
// Long batch2 = DateUtil.parse("2021-02-11 22:00:00","yyyy-MM-dd HH:mm:ss").getTime()/1000; // Long batch2 = DateUtil.parse("2021-02-11 22:00:00","yyyy-MM-dd HH:mm:ss").getTime()/1000;
...@@ -67,11 +72,11 @@ public class InitRedPackageTask { ...@@ -67,11 +72,11 @@ public class InitRedPackageTask {
int batchNum = 1; int batchNum = 1;
double totalMoney = 5000.00; double totalMoney = 5000.00;
if(1==1){ if(1==1){
QueryRedRainDto dto = new QueryRedRainDto(); QueryRedRainDto dto1 = new QueryRedRainDto();
List<AddRedRainDto> batchList = new ArrayList<>(); List<AddRedRainDto> batchList = new ArrayList<>();
dto.setIsEnble(0); dto1.setIsEnble("0");
dto.setBatchNum(batchNum); dto1.setBatchNum(batchNum);
List<RedRainVO> list = activityMapper.queryRedRainList(dto); List<RedRainVO> list = activityMapper.queryRedRainList(dto1);
//前10%红包 //前10%红包
int redNum = (int)(list.size()*0.1); int redNum = (int)(list.size()*0.1);
double [] redAmount = getMoney(5000.00*0.25,redNum); double [] redAmount = getMoney(5000.00*0.25,redNum);
...@@ -80,8 +85,8 @@ public class InitRedPackageTask { ...@@ -80,8 +85,8 @@ public class InitRedPackageTask {
for (Integer s : set) { for (Integer s : set) {
AddRedRainDto addRedRainDto = BeanTransferUtils.transfer(list.get(s),AddRedRainDto.class); AddRedRainDto addRedRainDto = BeanTransferUtils.transfer(list.get(s),AddRedRainDto.class);
addRedRainDto.setRedAmount(BigDecimal.valueOf(redAmount[i])); addRedRainDto.setRedAmount(BigDecimal.valueOf(redAmount[i]));
addRedRainDto.setRedType(1); addRedRainDto.setRedType("1");
addRedRainDto.setIsEnble(1); addRedRainDto.setIsEnble("1");
batchList.add(addRedRainDto); batchList.add(addRedRainDto);
i++; i++;
} }
...@@ -90,15 +95,15 @@ public class InitRedPackageTask { ...@@ -90,15 +95,15 @@ public class InitRedPackageTask {
//20%红包 //20%红包
if(2==2){ if(2==2){
//获取红包总数 //获取红包总数
QueryRedRainDto dto = new QueryRedRainDto();
dto.setBatchNum(batchNum);
List<RedRainVO> list = activityMapper.queryRedRainList(dto);
List<AddRedRainDto> batchList2 = new ArrayList<>();
//获取未结算的红包数
QueryRedRainDto dto2 = new QueryRedRainDto(); QueryRedRainDto dto2 = new QueryRedRainDto();
dto2.setIsEnble(0);
dto2.setBatchNum(batchNum); dto2.setBatchNum(batchNum);
List<RedRainVO> list2 = activityMapper.queryRedRainList(dto); List<RedRainVO> list = activityMapper.queryRedRainList(dto2);
List<AddRedRainDto> batchList2 = new ArrayList<>();
//获取未结算的红包数
QueryRedRainDto dto2_1 = new QueryRedRainDto();
dto2_1.setIsEnble("0");
dto2_1.setBatchNum(batchNum);
List<RedRainVO> list2 = activityMapper.queryRedRainList(dto2_1);
//前20%红包 //前20%红包
int redNum = (int)(list.size()*0.2); int redNum = (int)(list.size()*0.2);
...@@ -108,8 +113,8 @@ public class InitRedPackageTask { ...@@ -108,8 +113,8 @@ public class InitRedPackageTask {
for (Integer s : set) { for (Integer s : set) {
AddRedRainDto addRedRainDto = BeanTransferUtils.transfer(list2.get(s),AddRedRainDto.class); AddRedRainDto addRedRainDto = BeanTransferUtils.transfer(list2.get(s),AddRedRainDto.class);
addRedRainDto.setRedAmount(BigDecimal.valueOf(redAmount[i])); addRedRainDto.setRedAmount(BigDecimal.valueOf(redAmount[i]));
addRedRainDto.setRedType(1); addRedRainDto.setRedType("1");
addRedRainDto.setIsEnble(1); addRedRainDto.setIsEnble("1");
batchList2.add(addRedRainDto); batchList2.add(addRedRainDto);
i++; i++;
} }
...@@ -117,15 +122,15 @@ public class InitRedPackageTask { ...@@ -117,15 +122,15 @@ public class InitRedPackageTask {
} }
if(3==3){ if(3==3){
//获取红包总数 //获取红包总数
QueryRedRainDto dto = new QueryRedRainDto(); QueryRedRainDto dto3 = new QueryRedRainDto();
dto.setBatchNum(batchNum); dto3.setBatchNum(batchNum);
List<RedRainVO> list = activityMapper.queryRedRainList(dto); List<RedRainVO> list = activityMapper.queryRedRainList(dto3);
List<AddRedRainDto> batchList2 = new ArrayList<>(); List<AddRedRainDto> batchList2 = new ArrayList<>();
//获取未结算的红包数 //获取未结算的红包数
QueryRedRainDto dto2 = new QueryRedRainDto(); QueryRedRainDto dto3_1 = new QueryRedRainDto();
dto2.setIsEnble(0); dto3_1.setIsEnble("0");
dto2.setBatchNum(batchNum); dto3_1.setBatchNum(batchNum);
List<RedRainVO> list2 = activityMapper.queryRedRainList(dto); List<RedRainVO> list2 = activityMapper.queryRedRainList(dto3_1);
//前65%红包 //前65%红包
int redNum = (int)(list.size()*0.65); int redNum = (int)(list.size()*0.65);
double [] redAmount = getMoney(5000.00*0.5,redNum); double [] redAmount = getMoney(5000.00*0.5,redNum);
...@@ -134,8 +139,8 @@ public class InitRedPackageTask { ...@@ -134,8 +139,8 @@ public class InitRedPackageTask {
for (Integer s : set) { for (Integer s : set) {
AddRedRainDto addRedRainDto = BeanTransferUtils.transfer(list2.get(s),AddRedRainDto.class); AddRedRainDto addRedRainDto = BeanTransferUtils.transfer(list2.get(s),AddRedRainDto.class);
addRedRainDto.setRedAmount(BigDecimal.valueOf(redAmount[i])); addRedRainDto.setRedAmount(BigDecimal.valueOf(redAmount[i]));
addRedRainDto.setRedType(1); addRedRainDto.setRedType("1");
addRedRainDto.setIsEnble(1); addRedRainDto.setIsEnble("1");
batchList2.add(addRedRainDto); batchList2.add(addRedRainDto);
i++; i++;
} }
...@@ -143,15 +148,15 @@ public class InitRedPackageTask { ...@@ -143,15 +148,15 @@ public class InitRedPackageTask {
} }
if(4==4){ if(4==4){
//获取红包总数 //获取红包总数
QueryRedRainDto dto = new QueryRedRainDto(); QueryRedRainDto dto4 = new QueryRedRainDto();
dto.setBatchNum(batchNum); dto4.setBatchNum(batchNum);
List<RedRainVO> list = activityMapper.queryRedRainList(dto); List<RedRainVO> list = activityMapper.queryRedRainList(dto4);
List<AddRedRainDto> batchList2 = new ArrayList<>(); List<AddRedRainDto> batchList2 = new ArrayList<>();
//获取未结算的红包数 //获取未结算的红包数
QueryRedRainDto dto2 = new QueryRedRainDto(); QueryRedRainDto dto4_1 = new QueryRedRainDto();
dto2.setIsEnble(0); dto4_1.setIsEnble("0");
dto2.setBatchNum(batchNum); dto4_1.setBatchNum(batchNum);
List<RedRainVO> list2 = activityMapper.queryRedRainList(dto); List<RedRainVO> list2 = activityMapper.queryRedRainList(dto4_1);
//前5%红包牛牌 //前5%红包牛牌
int redNum =list2.size(); int redNum =list2.size();
HashSet<Integer> set = getLuckUser(redNum,list2.size()); HashSet<Integer> set = getLuckUser(redNum,list2.size());
...@@ -159,15 +164,44 @@ public class InitRedPackageTask { ...@@ -159,15 +164,44 @@ public class InitRedPackageTask {
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.get(s),AddRedRainDto.class);
int k = new Random().nextInt(4); int k = new Random().nextInt(5);
addRedRainDto.setCattleBrandId(cattleList.get(k).getCattleId()); addRedRainDto.setCattleBrandId(cattleList.get(k).getCattleId());
addRedRainDto.setRedType(2); addRedRainDto.setRedType("2");
addRedRainDto.setIsEnble(1); addRedRainDto.setIsEnble("1");
batchList2.add(addRedRainDto); batchList2.add(addRedRainDto);
i++; i++;
} }
activityMapper.updateRedPackageForCattle(batchList2); activityMapper.updateRedPackageForCattle(batchList2);
} }
//更新聚宝盆
CalculateAmoutDto calculateAmoutDto = new CalculateAmoutDto();
calculateAmoutDto.setRedType("1");
calculateAmoutDto.setBatchNum(batchNum);
List<RedAmountTotalVO> lastList = activityMapper.calculateRedAmountTatol(calculateAmoutDto);
List<UserInfoDto> userInfoDtoList = new ArrayList<>();
lastList.forEach(item ->{
UserInfoDto dto = new UserInfoDto();
dto.setUserId(item.getUserId());
dto.setRedBalance(item.getRedAmountTatol());
userInfoDtoList.add(dto);
});
userInfoMapper.updateRedBalace(userInfoDtoList);
//更用户牛牌
CalculateAmoutDto calculateAmoutDto2 = new CalculateAmoutDto();
calculateAmoutDto2.setRedType("2");
calculateAmoutDto2.setBatchNum(batchNum);
List<RedAmountTotalVO> lastList2 = activityMapper.calculateCattleBrand(calculateAmoutDto2);
List<SaveUserCattleDto> saveUserCattleDtos = new ArrayList<>();
lastList2.forEach(item ->{
SaveUserCattleDto dto = new SaveUserCattleDto();
dto.setId(SnowFlakeUtil.nextId());
dto.setUserId(item.getUserId());
dto.setCattleBrandId(item.getCattleBrandId());
saveUserCattleDtos.add(dto);
});
userInfoMapper.saveCattleBrand(saveUserCattleDtos);
Long endTime = System.currentTimeMillis()/1000;
System.out.println(endTime-stime);
LoggerHelper.debug(this.getClass(),"任务结束"); LoggerHelper.debug(this.getClass(),"任务结束");
} }
private HashSet<Integer> getLuckUser(int count, int random){ private HashSet<Integer> getLuckUser(int count, int random){
...@@ -212,10 +246,14 @@ public class InitRedPackageTask { ...@@ -212,10 +246,14 @@ public class InitRedPackageTask {
return dou; return dou;
} }
public static void main(String[] args) { public static void main(String[] args) {
double [] ss = new InitRedPackageTask().getMoney(5000.00*0.25,100); /*double [] ss = new InitRedPackageTask().getMoney(5000.00*0.25,100);
for (double s : ss) { for (double s : ss) {
System.out.println(s); System.out.println(s);
}*/
for(int i =0;i<20;i++){
int k = new Random().nextInt(5);
System.out.println(k);
} }
} }
} }
...@@ -107,5 +107,24 @@ ...@@ -107,5 +107,24 @@
</if> </if>
order by red_id asc order by red_id asc
</select> </select>
<select id="calculateRedAmountTatol" resultType="com.polysoft.activity.model.vo.RedAmountTotalVO"
parameterType="com.polysoft.activity.model.dto.CalculateAmoutDto">
SELECT
t.user_id,
max( t.red_amount ) AS redAmountTatol
FROM
t_red_rain t where t.red_type=#{redType} and t.batch_num=#{batchNum}
GROUP BY
t.user_id
</select>
<select id="calculateCattleBrand" resultType="com.polysoft.activity.model.vo.RedAmountTotalVO"
parameterType="com.polysoft.activity.model.dto.CalculateAmoutDto">
SELECT
t.user_id,
t.cattle_brand_id
FROM
t_red_rain t where t.red_type=#{redType} and t.batch_num=#{batchNum}
</select>
</mapper> </mapper>
...@@ -6,7 +6,8 @@ ...@@ -6,7 +6,8 @@
user_id , user_id ,
user_name, user_name,
red_balance, red_balance,
phone phone,
dept_name
from from
t_user where phone=#{phone} t_user where phone=#{phone}
</select> </select>
...@@ -16,4 +17,33 @@ ...@@ -16,4 +17,33 @@
<update id="updateWechatToken" parameterType="com.polysoft.activity.model.dto.WechatTokenDto"> <update id="updateWechatToken" parameterType="com.polysoft.activity.model.dto.WechatTokenDto">
update wechat_token set access_token=#{accessToken},update_time=#{updateTime} where id =1 update wechat_token set access_token=#{accessToken},update_time=#{updateTime} where id =1
</update> </update>
<update id="updateRedBalace" parameterType="com.polysoft.activity.model.dto.UserInfoDto">
update t_user
<trim prefix="set" suffixOverrides=",">
<trim prefix=" red_balance = case" suffix="end,">
<foreach collection="list" item="item" index="index">
when user_id=#{item.userId} then red_balance+#{item.redBalance}
</foreach>
</trim>
</trim>
<where>
<foreach collection="list" separator="or" item="item" index="index">
user_id=#{item.userId}
</foreach>
</where>
</update>
<insert id="saveCattleBrand" parameterType="com.polysoft.activity.model.dto.SaveUserCattleDto">
INSERT into t_user_cattle (
id,
user_id,
cattle_brand_id
)VALUES
<foreach collection="list" item="item" index="index" separator =",">
(
#{item.id},
#{item.userId},
#{item.cattleBrandId}
)
</foreach>
</insert>
</mapper> </mapper>
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!