Commit cf96304f by xunj

优化

1 parent 40fb2583
Showing 32 changed files with 510 additions and 56 deletions
......@@ -14,7 +14,11 @@ public enum CommonTypeEnum {
REDPACK_SOURCE_TYPE4("4","集卡瓜分"),
REDPACK_TYPE1("1","普通红包"),
REDPACK_TYPE2("2","牛牌红包");
REDPACK_TYPE2("2","牛牌红包"),
USER_SIGN_STATUS0("0","未签到"),
USER_SIGN_STATUS1("1","已签到"),
USER_SIGN_STATUS2("2","补签");
private String code;
private String desc;
......
......@@ -42,7 +42,7 @@ public class CattleController {
return cattleBrandService.saveComposeCattleBrand(param);
}
//2,牛一牛
//2,打卡合成牛牌
@PostMapping("/saveOpenCattleBrand" )
@ResponseBody
public ApiResult saveOpenCattleBrand(@RequestBody @Validated ComposeCattleBrandParam param) {
......@@ -55,4 +55,5 @@ public class CattleController {
return cattleBrandService.getTaskStatus(param);
}
}
package com.polysoft.activity.controller;
import com.polysoft.activity.common.utils.PageQuery;
import com.polysoft.activity.model.param.AddRedRainParam;
import com.polysoft.activity.model.param.IdQueryParam;
import com.polysoft.activity.model.param.QueeryGrapRedPackResultParam;
import com.polysoft.activity.model.param.QuerySmashBasinParam;
import com.polysoft.activity.service.ActItemService;
import com.polysoft.activity.utils.ApiResult;
import io.swagger.annotations.Api;
......@@ -40,4 +43,32 @@ public class RedPackageController {
return actItemService.queryRedPackInfo(param);
}
/**
* 砸盆体现 3 个tap签
* @return
*/
@PostMapping("/getSmashBasinInfo" )
@ResponseBody
public ApiResult getSmashBasinInfo(@RequestBody QuerySmashBasinParam param) {
return actItemService.getSmashBasinInfo(param);
}
/**
* 红包雨结果页
* @return
*/
@PostMapping("/getGrapRedPackResult" )
@ResponseBody
public ApiResult getGrapRedPackResult(@RequestBody QueeryGrapRedPackResultParam param) {
return actItemService.getGrapRedPackResult(param);
} /**
* 红包雨排行
* @return
*/
@PostMapping("/getGrapRedRainRank" )
@ResponseBody
public ApiResult getGrapRedRainRank(@RequestBody QueeryGrapRedPackResultParam param) {
return actItemService.getGrapRedRainRank(param);
}
}
......@@ -37,6 +37,12 @@ public class UserController {
return userInfoService.getShareLink(param);
}
@PostMapping("/saveShareCattle" )
@ResponseBody
public ApiResult saveShareCattle(@RequestBody @Validated ShareLinkParam param) {
return userInfoService.saveShareCattle(param);
}
@PostMapping("/saveUserSign")
@ResponseBody
public ApiResult saveUserSign(@RequestBody UserInfoParam param) {
......@@ -47,4 +53,9 @@ public class UserController {
public ApiResult queryUserSign(@RequestBody IdQueryParam param) {
return userInfoService.queryUserSignByUserId(param.getId(),null);
}
@PostMapping("/saveZapenTixian")
@ResponseBody
public ApiResult saveZapenTixian(@RequestBody IdQueryParam param) {
return userInfoService.saveZapenTixian(param);
}
}
......@@ -4,11 +4,14 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.polysoft.activity.model.dto.ActItemDto;
import com.polysoft.activity.model.dto.AddRedRainDto;
import com.polysoft.activity.model.dto.CalculateAmoutDto;
import com.polysoft.activity.model.dto.GrapRedPackResultDto;
import com.polysoft.activity.model.dto.QueryRedRainDto;
import com.polysoft.activity.model.vo.ActItemVO;
import com.polysoft.activity.model.vo.GrapRedPackResultVO;
import com.polysoft.activity.model.vo.RedAmountTotalVO;
import com.polysoft.activity.model.vo.RedPackInfoVO;
import com.polysoft.activity.model.vo.RedRainVO;
import com.polysoft.activity.model.vo.SmashBasinVO;
import org.apache.ibatis.annotations.Param;
import org.mapstruct.Mapper;
......@@ -30,6 +33,13 @@ public interface ActivityMapper extends BaseMapper<ActItemDto> {
int updateRedPackageForCattle(List<AddRedRainDto> dto);
List<RedAmountTotalVO> calculateRedAmountTatol(CalculateAmoutDto dto);
List<RedAmountTotalVO> calculateCattleBrand(CalculateAmoutDto dto);
List<RedAmountTotalVO> getCattleCarveUp(CalculateAmoutDto dto);
List<RedPackInfoVO> queryRedPackInfo(@Param("userId") Long userId);
int updateRedRainIsEnble(@Param("redId") Long redId);
List<SmashBasinVO> getKukcyMoney();
List<SmashBasinVO> getcollectCardMoney();
List<SmashBasinVO> getGrapRedPackMoney();
GrapRedPackResultVO getGrapRedPackResult(GrapRedPackResultDto dto);
List<GrapRedPackResultVO> getGrapRedRainRank(GrapRedPackResultDto dto);
}
......@@ -7,12 +7,14 @@ import com.polysoft.activity.model.vo.CattleBrandConfVO;
import com.polysoft.activity.model.vo.CattleBrandFroUserVO;
import com.polysoft.activity.model.vo.CattleBrandVO;
import com.polysoft.activity.model.vo.CattleListVO;
import com.polysoft.activity.model.vo.RankVO;
import com.polysoft.activity.model.vo.TaskStatusVO;
import com.polysoft.activity.model.vo.UserCattleVO;
import org.apache.ibatis.annotations.Param;
import org.mapstruct.Mapper;
import java.util.List;
import java.util.Map;
@Mapper
public interface CattleBrandMapper extends BaseMapper<CattleBrandDto> {
......@@ -26,4 +28,7 @@ public interface CattleBrandMapper extends BaseMapper<CattleBrandDto> {
TaskStatusVO getTaskStatus(@Param("userId") Long userId,@Param("today") String today);
int saveShareForCattle(ShareDto dto);
int deleteUsetCattleById(@Param("id") Long id);
List<RankVO> getRedSourceType4Rank();
UserCattleVO getUserCattleVOById(@Param("id") Long id );
}
......@@ -15,6 +15,7 @@ import com.polysoft.activity.model.vo.WechatToken;
import org.mapstruct.Mapper;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.List;
@Mapper
......@@ -25,6 +26,7 @@ public interface UserInfoMapper {
int updateRedBalace(@Param("list") List<UserInfoDto> list);
int saveCattleBrand(@Param("list") List<SaveUserCattleDto> list);
int saveUserSign(UserSignDto dto);
int saveUserSignBatch(@Param("list") List<UserSignDto> dto);
int updateUserSign(UserSignDto dto);
List<FirstLoginRedVO> queryFirstLoginRed();
int updateFirstLoginRed(@Param("id") Long id);
......@@ -34,4 +36,6 @@ public interface UserInfoMapper {
List<UserSignVO> queryUserSignByUserId(@Param("userId") Long userId,@Param("signDate") String signDate);
int updateUserStates(UpdateUserStatesDto dto);
OpenCattleVO getCattleAmount(@Param("userId") Long userId);
BigDecimal getRedBalanceByUserId(@Param("userId") Long userId);
List<Long> getNotSignUserToYesterday(@Param("signDate") String signDate);
}
......@@ -6,4 +6,6 @@ import lombok.Data;
public class CalculateAmoutDto {
private String redType;
private int batchNum;
private String sourceType;
private String isEnble;
}
package com.polysoft.activity.model.dto;
import lombok.Data;
/**
* @author lvyp
* @date 2021/2/1
*/
@Data
public class GrapRedPackResultDto {
private Long userId;
private String redType;
private int batchNum;
private String isEnble;
}
......@@ -22,10 +22,10 @@ public class AddWishParam {
@ApiModelProperty("姓名")
private String userName ;
@ApiModelProperty("城市地址")
@NotBlank(message = "城市地址不能为空")
@NotNull(message = "城市地址不能为空")
private String address ;
@ApiModelProperty("心愿语录内容")
@NotBlank(message = "心愿语录内容不能为空")
@NotNull(message = "心愿语录内容不能为空")
private String wishContext ;
@ApiModelProperty("图片")
private List<MultipartFile> multipartFiles;
......
......@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* @author lvyp
......@@ -12,6 +13,6 @@ import javax.validation.constraints.NotBlank;
@Data
public class ComposeCattleBrandParam {
@ApiModelProperty("用户主键")
@NotBlank(message = "用户主键不能为空")
@NotNull(message = "用户主键不能为空")
private Long userId;
}
package com.polysoft.activity.model.param;
import com.polysoft.activity.common.utils.PageQuery;
import lombok.Data;
import javax.validation.constraints.NotNull;
......@@ -9,7 +10,7 @@ import javax.validation.constraints.NotNull;
* @date 2021/1/30
*/
@Data
public class IdQueryParam {
public class IdQueryParam extends PageQuery {
@NotNull(message = "参数不能为空")
private Long id;
}
package com.polysoft.activity.model.param;
import lombok.Data;
/**
* @author lvyp
* @date 2021/2/1
*/
@Data
public class QueeryGrapRedPackResultParam {
private Long userId;
private int batchNum;
}
package com.polysoft.activity.model.param;
import com.polysoft.activity.common.utils.PageQuery;
import lombok.Data;
/**
* @author lvyp
* @date 2021/2/1
*/
@Data
public class QuerySmashBasinParam extends PageQuery {
private String tabType;
private Long userId;
}
......@@ -17,4 +17,5 @@ public class ShareLinkParam {
private Long userId;
@ApiModelProperty("牛牌ID")
private Long cattleId;
private String cardType;
}
package com.polysoft.activity.model.vo;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author lvyp
* @date 2021/2/1
*/
@Data
public class GrapRedPackResultVO {
private int redNum;
private int cattleNum;
private BigDecimal totalMoney;
}
......@@ -10,5 +10,8 @@ import java.math.BigDecimal;
*/
@Data
public class OpenCattleVO {
private Long redId;
private BigDecimal redAmount;
private int totalPerson;
private String percent;
}
package com.polysoft.activity.model.vo;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author lvyp
* @date 2021/2/1
*/
@Data
public class RankVO {
private Long userId;
private BigDecimal redAmount;
private Integer ranking;
}
package com.polysoft.activity.model.vo;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author lvyp
* @date 2021/2/1
*/
@Data
public class SmashBasinVO {
private String userName;
private BigDecimal amount;
}
package com.polysoft.activity.service;
import com.polysoft.activity.common.utils.PageQuery;
import com.polysoft.activity.model.param.AddRedRainParam;
import com.polysoft.activity.model.param.IdQueryParam;
import com.polysoft.activity.model.param.QueeryGrapRedPackResultParam;
import com.polysoft.activity.model.param.QuerySmashBasinParam;
import com.polysoft.activity.model.vo.ActItemVO;
import com.polysoft.activity.utils.ApiResult;
......@@ -13,4 +16,7 @@ public interface ActItemService {
ApiResult queryActivityInfo();
ApiResult saveRedRain(AddRedRainParam param);
ApiResult queryRedPackInfo(IdQueryParam param);
ApiResult getSmashBasinInfo(QuerySmashBasinParam param);
ApiResult getGrapRedPackResult(QueeryGrapRedPackResultParam param);
ApiResult getGrapRedRainRank(QueeryGrapRedPackResultParam param);
}
package com.polysoft.activity.service;
import com.polysoft.activity.model.param.IdQueryParam;
import com.polysoft.activity.model.param.ShareLinkParam;
import com.polysoft.activity.model.param.UserInfoParam;
import com.polysoft.activity.utils.ApiResult;
......@@ -10,7 +11,9 @@ import java.util.List;
public interface UserInfoService {
ApiResult queryAuthUser(UserInfoParam param);
ApiResult getShareLink(ShareLinkParam param);
ApiResult saveShareCattle(ShareLinkParam param);
ApiResult saveUserSign(UserInfoParam param);
ApiResult getFirsetLgoinRed(Long userId);
ApiResult queryUserSignByUserId(Long userId,String signDate);
ApiResult saveZapenTixian(IdQueryParam param);
}
package com.polysoft.activity.service.impl;
import cn.hutool.core.date.DateUtil;
import com.github.pagehelper.PageHelper;
import com.polysoft.activity.common.utils.BeanTransferUtils;
import com.polysoft.activity.common.utils.PageQuery;
import com.polysoft.activity.common.utils.PageResult;
import com.polysoft.activity.constant.CommonTypeEnum;
import com.polysoft.activity.mapper.ActivityMapper;
import com.polysoft.activity.mapper.UserInfoMapper;
import com.polysoft.activity.model.dto.AddRedRainDto;
import com.polysoft.activity.model.dto.GrapRedPackResultDto;
import com.polysoft.activity.model.param.AddRedRainParam;
import com.polysoft.activity.model.param.IdQueryParam;
import com.polysoft.activity.model.param.QueeryGrapRedPackResultParam;
import com.polysoft.activity.model.param.QuerySmashBasinParam;
import com.polysoft.activity.model.vo.ActItemVO;
import com.polysoft.activity.model.vo.RedPackInfoVO;
import com.polysoft.activity.model.vo.SmashBasinVO;
import com.polysoft.activity.service.ActItemService;
import com.polysoft.activity.utils.ApiResult;
import com.polysoft.activity.utils.SnowFlakeUtil;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
......@@ -26,6 +38,8 @@ import java.util.Map;
public class ActItemServiceImpl implements ActItemService{
@Resource
private ActivityMapper activityMapper;
@Resource
private UserInfoMapper userInfoMapper;
@Override
public ApiResult queryActivityInfo() {
List<ActItemVO> list = activityMapper.queryActivityInfo();
......@@ -71,7 +85,7 @@ public class ActItemServiceImpl implements ActItemService{
dto.setUserId(param.getUserId());
dto.setCreateTime(date);
dto.setBatchNum(param.getBatchNum());
dto.setSourceType("1");
dto.setSourceType(CommonTypeEnum.REDPACK_SOURCE_TYPE1.getCode());
list.add(dto);
}
activityMapper.saveRedRain(list);
......@@ -81,6 +95,51 @@ public class ActItemServiceImpl implements ActItemService{
@Override
public ApiResult queryRedPackInfo(IdQueryParam param) {
return ApiResult.ok(activityMapper.queryRedPackInfo(param.getId()));
PageHelper.startPage(param.getPageNum(),param.getPageSize());
PageResult<RedPackInfoVO> result = BeanTransferUtils.toPagedResult(activityMapper.queryRedPackInfo(param.getId()),RedPackInfoVO.class);
return ApiResult.ok(result);
}
@Override
public ApiResult getSmashBasinInfo(QuerySmashBasinParam param) {
Map<String,Object> map = new HashMap<>();
PageResult<SmashBasinVO> result = null;
BigDecimal redBalance = userInfoMapper.getRedBalanceByUserId(param.getUserId());
if("1".equals(param.getTabType())){
PageHelper.startPage(param.getPageNum(),param.getPageSize());
result = BeanTransferUtils.toPagedResult(activityMapper.getKukcyMoney(),SmashBasinVO.class);
}
if("2".equals(param.getTabType())){
PageHelper.startPage(param.getPageNum(),param.getPageSize());
result = BeanTransferUtils.toPagedResult(activityMapper.getcollectCardMoney(),SmashBasinVO.class);
}
if("3".equals(param.getTabType())){
PageHelper.startPage(param.getPageNum(),param.getPageSize());
result = BeanTransferUtils.toPagedResult(activityMapper.getGrapRedPackMoney(),SmashBasinVO.class);
}
map.put("result",result);
map.put("redBalance",redBalance);
return ApiResult.ok(map);
}
@Override
public ApiResult getGrapRedPackResult(QueeryGrapRedPackResultParam param) {
GrapRedPackResultDto dto = new GrapRedPackResultDto();
dto.setUserId(param.getUserId());
dto.setBatchNum(param.getBatchNum());
dto.setIsEnble("1");
return ApiResult.ok(activityMapper.getGrapRedPackResult(dto));
}
@Override
public ApiResult getGrapRedRainRank(QueeryGrapRedPackResultParam param) {
GrapRedPackResultDto dto = new GrapRedPackResultDto();
dto.setBatchNum(param.getBatchNum());
dto.setRedType(CommonTypeEnum.REDPACK_TYPE1.getCode());
dto.setIsEnble("1");
return ApiResult.ok(activityMapper.getGrapRedRainRank(dto));
}
}
......@@ -14,6 +14,7 @@ import com.polysoft.activity.model.vo.CattleBrandFroUserVO;
import com.polysoft.activity.model.vo.CattleBrandVO;
import com.polysoft.activity.model.vo.CattleListVO;
import com.polysoft.activity.model.vo.OpenCattleVO;
import com.polysoft.activity.model.vo.RankVO;
import com.polysoft.activity.model.vo.UserCattleVO;
import com.polysoft.activity.model.vo.UserInfoVO;
import com.polysoft.activity.service.CattleBrandService;
......@@ -22,11 +23,13 @@ import com.polysoft.activity.utils.SnowFlakeUtil;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Service
public class CattleBrandServiceImpl implements CattleBrandService {
......@@ -92,6 +95,7 @@ public class CattleBrandServiceImpl implements CattleBrandService {
rainDto.setRedType(CommonTypeEnum.REDPACK_TYPE1.getCode());
rainDto.setCreateTime(new Date());
rainDto.setBatchNum(98);
rainDto.setIsEnble("0");
rainDto.setSourceType(CommonTypeEnum.REDPACK_SOURCE_TYPE4.getCode());
activityMapper.saveRedRainForOne(rainDto);
return ApiResult.ok("恭喜合成牛牌");
......@@ -119,6 +123,17 @@ public class CattleBrandServiceImpl implements CattleBrandService {
userInfoDto.setRedBalance(openCattleVO.getRedAmount());
userInfoDtoList.add(userInfoDto);
userInfoMapper.updateRedBalace(userInfoDtoList);
activityMapper.updateRedRainIsEnble(openCattleVO.getRedId());
//查询排名
List<RankVO> rankVOList = cattleBrandMapper.getRedSourceType4Rank();
int total = rankVOList.size();
Map<Long, Integer> map = rankVOList.stream().collect(Collectors.toMap(RankVO::getUserId, RankVO::getRanking));
int rank = map.get(param.getUserId());
DecimalFormat df = new DecimalFormat("######0%");
String percent = df.format(Double.valueOf(total-rank)/total);
openCattleVO.setTotalPerson(total);
openCattleVO.setPercent(percent);
return ApiResult.ok(openCattleVO);
}
......
......@@ -11,9 +11,11 @@ import com.polysoft.activity.mapper.UserInfoMapper;
import com.polysoft.activity.model.dto.AddRedRainDto;
import com.polysoft.activity.model.dto.SaveUserCattleDto;
import com.polysoft.activity.model.dto.ShareDto;
import com.polysoft.activity.model.dto.UpdateUserStatesDto;
import com.polysoft.activity.model.dto.UserInfoDto;
import com.polysoft.activity.model.dto.UserSignDto;
import com.polysoft.activity.model.dto.WechatTokenDto;
import com.polysoft.activity.model.param.IdQueryParam;
import com.polysoft.activity.model.param.ShareLinkParam;
import com.polysoft.activity.model.param.UserInfoParam;
import com.polysoft.activity.model.vo.*;
......@@ -108,11 +110,10 @@ public class UserInfoServiceImpl implements UserInfoService {
ShareDto shareDto = new ShareDto();
shareDto.setId(SnowFlakeUtil.nextId());
shareDto.setUserId(param.getUserId());
shareDto.setShareUrl(param.getUrl());
shareDto.setCreateTime(date);
shareDto.setShareDate(date);
cattleBrandMapper.saveShareForCattle(shareDto);
//删除用户牛牌关系表数据
cattleBrandMapper.deleteUsetCattleById(param.getCattleId());
return ApiResult.ok(shareLinkVO);
} catch (RestClientException e) {
e.printStackTrace();
......@@ -121,6 +122,35 @@ public class UserInfoServiceImpl implements UserInfoService {
}
@Override
public ApiResult saveShareCattle(ShareLinkParam param) {
try {
//查询牛牌是否存
JSONObject object = new JSONObject();
UserCattleVO cattleVO = cattleBrandMapper.getUserCattleVOById(param.getCattleId());
if(cattleVO == null){
object.put("cardType",param.getCardType());
object.put("isReceived",false);
return ApiResult.ok("200","牛牌已被他人领取,领取牛牌失败",object);
}
List<SaveUserCattleDto> list = new ArrayList<>();
SaveUserCattleDto dto = new SaveUserCattleDto();
dto.setId(SnowFlakeUtil.nextId());
dto.setUserId(param.getUserId());
dto.setCattleBrandId(cattleVO.getCattleBrandId());
list.add(dto);
mapper.saveCattleBrand(list);
//删除用户牛牌关系表数据
cattleBrandMapper.deleteUsetCattleById(param.getCattleId());
object.put("cardType",param.getCardType());
object.put("isReceived",true);
return ApiResult.ok("200","领取牛牌成功",object);
} catch (Exception e) {
e.printStackTrace();
return ApiResult.error();
}
}
@Override
public ApiResult saveUserSign(UserInfoParam param) {
try {
String today = DateUtil.format(new Date(),"yyyy-MM-dd");
......@@ -128,6 +158,7 @@ public class UserInfoServiceImpl implements UserInfoService {
if(list2 != null && list2.size() > 0 ){
return ApiResult.ok();
}
Date date = new Date();
UserSignDto userSignDto = new UserSignDto();
CattleBrandVO cattleBrandVO = null;
CattleBrandConfVO confVO = cattleBrandMapper.queryCattleBrandConf(today);
......@@ -142,15 +173,15 @@ public class UserInfoServiceImpl implements UserInfoService {
return ApiResult.ok(MsgCodeEnum.BALANCE_NO.getCode(),MsgCodeEnum.BALANCE_NO.getMsg());
}
userSignDto.setId(param.getSignId());
userSignDto.setCreateTime(new Date());
userSignDto.setSignStatus("1");
userSignDto.setCreateTime(date);
userSignDto.setSignStatus(CommonTypeEnum.USER_SIGN_STATUS1.getCode());
mapper.updateUserSign(userSignDto);
AddRedRainDto rainDto = new AddRedRainDto();
rainDto.setRedId(SnowFlakeUtil.nextId());
rainDto.setUserId(param.getUserId());
rainDto.setRedAmount(BigDecimal.valueOf(-5.00));
rainDto.setRedType("0");
rainDto.setCreateTime(new Date());
rainDto.setCreateTime(date);
rainDto.setIsEnble("1");
rainDto.setSourceType(CommonTypeEnum.REDPACK_SOURCE_TYPE3.getCode());
activityMapper.saveRedRainForOne(rainDto);
......@@ -164,8 +195,8 @@ public class UserInfoServiceImpl implements UserInfoService {
userSignDto.setId(SnowFlakeUtil.nextId());
userSignDto.setUserId(param.getUserId());
userSignDto.setSignStatus("1");
userSignDto.setSignDate(new Date());
userSignDto.setCreateTime(new Date());
userSignDto.setSignDate(date);
userSignDto.setCreateTime(date);
mapper.saveUserSign(userSignDto);
}
MathRandom random = new MathRandom(confVO.getRate1(),confVO.getRate2(),confVO.getRate3(),confVO.getRate4(),confVO.getRate5());
......@@ -230,4 +261,12 @@ public class UserInfoServiceImpl implements UserInfoService {
return ApiResult.ok(mapper.queryUserSignByUserId(userId,null));
}
@Override
public ApiResult saveZapenTixian(IdQueryParam param) {
UpdateUserStatesDto dto = new UpdateUserStatesDto();
dto.setUserId(param.getId());
dto.setHammerStatus("1");
return ApiResult.ok(mapper.updateUserStates(dto));
}
}
package com.polysoft.activity.task;
import com.polysoft.activity.common.log.LoggerHelper;
import com.polysoft.activity.constant.CommonTypeEnum;
import com.polysoft.activity.mapper.ActivityMapper;
import com.polysoft.activity.mapper.UserInfoMapper;
import com.polysoft.activity.model.dto.CalculateAmoutDto;
import com.polysoft.activity.model.vo.RedAmountTotalVO;
import com.polysoft.activity.utils.RedPacketUtil;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.List;
/**
* @author lvyp
* @date 2021/2/1
*/
@Component
@EnableScheduling
public class CattleBrandCarveUpTask {
@Resource
private ActivityMapper activityMapper;
@Scheduled( cron = "0 21 20 * * ? ")
// @Scheduled( cron = "0 1 0 18 2 ? ") 2021年2月18号 凌晨零点1分 执行
public void execute() {
try {
sendWechat();
} catch (Exception e) {
LoggerHelper.err(this.getClass(), "EpidemicForSendWechatp休眠异常:{}", e);
}
}
private static final double totalMoney = 20000.00;
private void sendWechat() {
//查询已经合成牛牌的红包
CalculateAmoutDto calculateAmoutDto = new CalculateAmoutDto();
calculateAmoutDto.setIsEnble("0");
calculateAmoutDto.setSourceType(CommonTypeEnum.REDPACK_SOURCE_TYPE4.getCode());
List<RedAmountTotalVO> list = activityMapper.getCattleCarveUp(calculateAmoutDto);
RedPacketUtil redpack = new RedPacketUtil();
List<Double> redAmount= redpack.getMoney(totalMoney,list.size(),0.01,100,2.1);
}
}
package com.polysoft.activity.task;
import cn.hutool.core.date.DateUtil;
import com.polysoft.activity.common.log.LoggerHelper;
import com.polysoft.activity.common.utils.BeanTransferUtils;
import com.polysoft.activity.constant.CommonTypeEnum;
......@@ -13,16 +12,13 @@ import com.polysoft.activity.model.vo.RedRainVO;
import com.polysoft.activity.service.CattleBrandService;
import com.polysoft.activity.utils.RedPacketUtil;
import com.polysoft.activity.utils.SnowFlakeUtil;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Random;
......@@ -186,6 +182,7 @@ public class InitRedPackageTask {
CalculateAmoutDto calculateAmoutDto = new CalculateAmoutDto();
calculateAmoutDto.setRedType(CommonTypeEnum.REDPACK_TYPE1.getCode());
calculateAmoutDto.setBatchNum(batchNum);
calculateAmoutDto.setSourceType(CommonTypeEnum.REDPACK_SOURCE_TYPE1.getCode());
List<RedAmountTotalVO> lastList = activityMapper.calculateRedAmountTatol(calculateAmoutDto);
List<UserInfoDto> userInfoDtoList = new ArrayList<>();
lastList.forEach(item ->{
......@@ -199,6 +196,7 @@ public class InitRedPackageTask {
CalculateAmoutDto calculateAmoutDto2 = new CalculateAmoutDto();
calculateAmoutDto2.setRedType(CommonTypeEnum.REDPACK_TYPE2.getCode());
calculateAmoutDto2.setBatchNum(batchNum);
calculateAmoutDto2.setSourceType(CommonTypeEnum.REDPACK_SOURCE_TYPE1.getCode());
List<RedAmountTotalVO> lastList2 = activityMapper.calculateCattleBrand(calculateAmoutDto2);
List<SaveUserCattleDto> saveUserCattleDtos = new ArrayList<>();
lastList2.forEach(item ->{
......
package com.polysoft.activity.task;
import cn.hutool.core.date.DateUtil;
import com.polysoft.activity.common.log.LoggerHelper;
import com.polysoft.activity.mapper.WishRealPrizeMapper;
import com.polysoft.activity.model.dto.WishRealPrizeDto;
import com.polysoft.activity.model.vo.QueryLuckDrawWishVO;
import com.polysoft.activity.model.vo.QueryRealPrizeVO;
import com.polysoft.activity.service.WishService;
import com.polysoft.activity.constant.CommonTypeEnum;
import com.polysoft.activity.mapper.UserInfoMapper;
import com.polysoft.activity.model.dto.UserSignDto;
import com.polysoft.activity.utils.SnowFlakeUtil;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
......@@ -14,9 +13,7 @@ import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Random;
/**
......@@ -27,9 +24,7 @@ import java.util.Random;
@EnableScheduling
public class UserSignTask {
@Resource
private WishService wishService;
@Resource
private WishRealPrizeMapper wishRealPrizeMapper;
private UserInfoMapper userInfoMapper;
@Scheduled( cron = "0 21 20 * * ? ")
// @Scheduled( cron = "0 55 10 * * ? ")
......@@ -42,17 +37,20 @@ public class UserSignTask {
}
private void sendWechat(){
}
private HashSet<Integer> getLuckUser(int count,int random){
HashSet<Integer> has = new HashSet<Integer>();
Integer i = 0;
for (int j = 1; j != 0; j++) {
i = new Random().nextInt(random);
has.add(i);
if (count == has.size()) {
break;
}
}
return has;
//查询前一天未签到的人员
String yesTerDay = DateUtil.format(DateUtil.yesterday(),"yyyy-MM-dd");
List<Long> userIds = userInfoMapper.getNotSignUserToYesterday(yesTerDay);
List<UserSignDto> list = new ArrayList<>();
Date date = new Date();
userIds.forEach(item ->{
UserSignDto userSignDto = new UserSignDto();
userSignDto.setId(SnowFlakeUtil.nextId());
userSignDto.setUserId(item);
userSignDto.setSignStatus(CommonTypeEnum.USER_SIGN_STATUS2.getCode());
userSignDto.setSignDate(date);
userSignDto.setCreateTime(date);
list.add(userSignDto);
});
userInfoMapper.saveUserSignBatch(list);
}
}
......@@ -7,22 +7,16 @@ import com.polysoft.activity.model.vo.QueryLuckDrawWishVO;
import com.polysoft.activity.model.vo.QueryRealPrizeVO;
import com.polysoft.activity.service.WishService;
import com.polysoft.activity.utils.SnowFlakeUtil;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
......
......@@ -5,17 +5,21 @@
INSERT into t_red_rain (
red_id,
user_id,
red_type,
create_time,
batch_num,
source_type
source_type,
is_enble
)VALUES
<foreach collection="list" item="item" index="index" separator =",">
(
#{item.redId},
#{item.userId},
#{item.redType},
#{item.createTime},
#{item.batchNum},
#{item.sourceType}
#{item.sourceType},
#{item.isEnble}
)
</foreach>
</insert>
......@@ -25,7 +29,6 @@
user_id,
red_amount,
red_type,
is_enble,
batch_num,
create_time,
source_type
......@@ -96,6 +99,9 @@
</foreach>
</where>
</update>
<update id="updateRedRainIsEnble">
UPDATE t_red_rain set is_enble ='1' where red_id = #{redId}
</update>
<select id="queryActivityInfo" resultType="com.polysoft.activity.model.vo.ActItemVO">
SELECT
id,
......@@ -138,7 +144,7 @@
sum( t.red_amount ) AS redAmountTatol
FROM
t_red_rain t where t.red_type=#{redType} and t.batch_num=#{batchNum}
t_red_rain t where t.red_type=#{redType} and t.source_type=#{sourceType} and t.batch_num=#{batchNum} and t.is_enble ='1'
GROUP BY
t.user_id
......@@ -149,8 +155,20 @@
t.user_id,
t.cattle_brand_id
FROM
t_red_rain t where t.red_type=#{redType} and t.batch_num=#{batchNum}
t_red_rain t where t.red_type=#{redType}
and t.source_type=#{sourceType}
and t.batch_num=#{batchNum}
and t.is_enble='1'
</select>
<select id="getCattleCarveUp" 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.source_type=#{sourceType} and t.is_enble=#{isEnble}
</select>
<select id="queryRedPackInfo" resultType="com.polysoft.activity.model.vo.RedPackInfoVO">
SELECT
t.red_amount,
......@@ -159,8 +177,64 @@
FROM
t_red_rain t
WHERE
t.user_id = #{userId} and red_type = '0'
t.user_id = #{userId} and red_type = '1'
ORDER BY
t.create_time DESC
</select>
<select id="getKukcyMoney" resultType="com.polysoft.activity.model.vo.SmashBasinVO">
SELECT
t.user_name as userName,
t.red_balance as amount
FROM
t_user t ORDER BY t.red_balance desc
</select>
<select id="getcollectCardMoney" resultType="com.polysoft.activity.model.vo.SmashBasinVO">
SELECT
t2.user_name as userName,
t1.red_amount as amount
FROM
t_red_rain t1
LEFT JOIN t_user t2 on(t2.user_id = t1.user_id)
where t1.source_type = '4' ORDER BY t1.red_amount desc
</select>
<select id="getGrapRedPackMoney" resultType="com.polysoft.activity.model.vo.SmashBasinVO">
SELECT
t2.user_name,
sum(t1.red_amount ) as amount
FROM
t_red_rain t1
LEFT JOIN t_user t2 ON ( t2.user_id = t1.user_id )
WHERE
t1.source_type = '1'
GROUP BY
t1.user_id
ORDER BY
amount DESC
</select>
<select id="getGrapRedPackResult" resultType="com.polysoft.activity.model.vo.GrapRedPackResultVO"
parameterType="com.polysoft.activity.model.dto.GrapRedPackResultDto">
SELECT
count(t.red_type = '1' or null) AS redNum ,
count(t.red_type = '2' or null) AS cattleNum ,
sum(t.red_amount) AS totalMoney
FROM
t_red_rain t
WHERE
t.user_id = #{userId}
AND t.batch_num = #{batchNum}
AND t.is_enble = #{isEnble}
</select>
<select id="getGrapRedRainRank" resultType="com.polysoft.activity.model.vo.GrapRedPackResultVO"
parameterType="com.polysoft.activity.model.dto.GrapRedPackResultDto">
SELECT
count(t.red_type = '1' or null) AS redNum ,
count(t.red_type = '2' or null) AS cattleNum ,
sum(t.red_amount) AS totalMoney
FROM
t_red_rain t
WHERE
t.batch_num = #{batchNum}
AND t.is_enble = #{isEnble}
GROUP BY t.user_id order by totalMoney desc
</select>
</mapper>
......@@ -99,11 +99,31 @@
SELECT
t.user_id AS userId,
(select count(*) from t_wish tw where tw.user_id = t.user_id and tw.push_date=#{today}) AS everyDaySign,
(select count(*) from t_user_sign tus where tus.user_id = t.user_id and tus.sign_date=#{today}) AS everyDayWish,
(select count(*) from t_user_sign tus where tus.user_id = t.user_id and tus.sign_status='1' and tus.sign_date=#{today}) AS everyDayWish,
(select count(*) from t_share ts where ts.user_id = t.user_id and ts.share_date=#{today}) AS everyDayShare
FROM
t_user t
WHERE
t.user_id = #{userId}
</select>
<select id="getRedSourceType4Rank" resultType="com.polysoft.activity.model.vo.RankVO">
SELECT
t.user_id as userId,
t.red_amount as redAmount,
(select count(b.red_amount)+1 from t_red_rain b where b.source_type = '4' and b.red_amount > t.red_amount) as ranking
FROM
t_red_rain t
WHERE
t.source_type = '4'
</select>
<select id="getUserCattleVOById" resultType="com.polysoft.activity.model.vo.UserCattleVO">
SELECT
t.id,
t.user_id,
t.cattle_brand_id
FROM
t_user_cattle t
WHERE
t.id = #{id}
</select>
</mapper>
......@@ -106,6 +106,24 @@
#{createTime}
)
</insert>
<insert id="saveUserSignBatch" parameterType="list">
INSERT INTO t_user_sign(
id,
user_id,
sign_date,
sign_status,
create_time
)VALUES
<foreach collection="list" item="item" index="index" separator =",">
(
#{item.id},
#{item.userId},
#{item.signDate},
#{item.signStatus},
#{item.createTime}
)
</foreach>
</insert>
<insert id="updateUserSign" parameterType="com.polysoft.activity.model.dto.UserSignDto">
UPDATE t_user_sign
SET
......@@ -138,12 +156,24 @@
</select>
<select id="getCattleAmount" resultType="com.polysoft.activity.model.vo.OpenCattleVO">
select
t.red_amount
t.red_amount,
t.red_id
from t_red_rain t
where
t.user_id=#{userId}
and t.source_type = '4'
and t.is_enble='0'
</select>
<select id="getRedBalanceByUserId" resultType="decimal">
SELECT red_balance from t_user where user_id =#{userId}
</select>
<select id="getNotSignUserToYesterday" resultType="java.lang.Long">
SELECT
tt.user_id
FROM
t_user tt
WHERE
NOT EXISTS ( SELECT 1 FROM t_user_sign t WHERE t.sign_date = #{signDate} AND t.user_id = tt.user_id )
</select>
</mapper>
......@@ -39,7 +39,15 @@ public class ApiResult extends HashMap<String, Object> {
r.put("code", code);
r.put("msg", msg);
return r;
}public static ApiResult ok(String code, String msg) {
}
public static ApiResult ok(String code, String msg,Object data) {
ApiResult r = new ApiResult();
r.put("code", code);
r.put("msg", msg);
r.put("data",data);
return r;
}
public static ApiResult ok(String code, String msg) {
ApiResult r = new ApiResult();
r.put("code", code);
r.put("msg", msg);
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!