Commit 40fb2583 by xunj

优化

1 parent 117c68c8
Showing 29 changed files with 462 additions and 120 deletions
package com.polysoft.activity.constant;
public enum CallType {
NO_CALL(0,"未拨打"),
CALL_SUCCESS(1,"拨打成功"),
CALL_FAIL(-1,"拨打失败");
private Integer no;
private String desc;
CallType(Integer no,String desc){
this.no = no;
this.desc = desc;
}
public Integer getNo() {
return no;
}
public void setNo(Integer no) {
this.no = no;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
package com.polysoft.activity.constant;
/**
* @author lvyp
* @date 2021/2/1
*/
public enum CommonTypeEnum {
REDPACK_SOURCE_TYPE1("1","红包雨"),
REDPACK_SOURCE_TYPE2("2","首次登录"),
REDPACK_SOURCE_TYPE3("3","补签扣除"),
REDPACK_SOURCE_TYPE4("4","集卡瓜分"),
REDPACK_TYPE1("1","普通红包"),
REDPACK_TYPE2("2","牛牌红包");
private String code;
private String desc;
CommonTypeEnum(String code, String desc) {
this.code = code;
this.desc = desc;
}
public String getCode() {
return code;
}
public String getDesc() {
return desc;
}
}
package com.polysoft.activity.constant;
public enum MsgCodeEnum {
BALANCE_NO("1001","余额不足");
private String code;
private String msg;
MsgCodeEnum(String code, String msg) {
this.code = code;
this.msg = msg;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
......@@ -43,4 +43,16 @@ public class CattleController {
return cattleBrandService.saveComposeCattleBrand(param);
}
//2,牛一牛
@PostMapping("/saveOpenCattleBrand" )
@ResponseBody
public ApiResult saveOpenCattleBrand(@RequestBody @Validated ComposeCattleBrandParam param) {
return cattleBrandService.saveOpenCattleBrand(param);
}
@PostMapping("/getTaskStatus" )
@ResponseBody
public ApiResult getTaskStatus(@RequestBody @Validated ComposeCattleBrandParam param) {
return cattleBrandService.getTaskStatus(param);
}
}
package com.polysoft.activity.controller;
import com.polysoft.activity.model.param.AddRedRainParam;
import com.polysoft.activity.model.param.IdQueryParam;
import com.polysoft.activity.service.ActItemService;
import com.polysoft.activity.utils.ApiResult;
import io.swagger.annotations.Api;
......@@ -33,5 +34,10 @@ public class RedPackageController {
public ApiResult queryActivityInfo() {
return actItemService.queryActivityInfo();
}
@PostMapping("/queryRedPackInfo" )
@ResponseBody
public ApiResult queryRedPackInfo(@RequestBody IdQueryParam param) {
return actItemService.queryRedPackInfo(param);
}
}
......@@ -7,6 +7,7 @@ import com.polysoft.activity.model.dto.CalculateAmoutDto;
import com.polysoft.activity.model.dto.QueryRedRainDto;
import com.polysoft.activity.model.vo.ActItemVO;
import com.polysoft.activity.model.vo.RedAmountTotalVO;
import com.polysoft.activity.model.vo.RedPackInfoVO;
import com.polysoft.activity.model.vo.RedRainVO;
import org.apache.ibatis.annotations.Param;
import org.mapstruct.Mapper;
......@@ -29,5 +30,6 @@ public interface ActivityMapper extends BaseMapper<ActItemDto> {
int updateRedPackageForCattle(List<AddRedRainDto> dto);
List<RedAmountTotalVO> calculateRedAmountTatol(CalculateAmoutDto dto);
List<RedAmountTotalVO> calculateCattleBrand(CalculateAmoutDto dto);
List<RedPackInfoVO> queryRedPackInfo(@Param("userId") Long userId);
}
......@@ -2,10 +2,13 @@ package com.polysoft.activity.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.polysoft.activity.model.dto.CattleBrandDto;
import com.polysoft.activity.model.dto.ShareDto;
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.TaskStatusVO;
import com.polysoft.activity.model.vo.UserCattleVO;
import org.apache.ibatis.annotations.Param;
import org.mapstruct.Mapper;
......@@ -16,8 +19,11 @@ public interface CattleBrandMapper extends BaseMapper<CattleBrandDto> {
List<CattleBrandVO> queryCattleBrandList(@Param("brandType") String brandType);
CattleBrandFroUserVO queryCattleBrandByUserId(@Param("userId")Long userId);
CattleBrandConfVO queryCattleBrandConf(@Param("signDate") String signDate);
int getComposeCattleBrand(@Param("userId") Long userId);
List<UserCattleVO> getComposeCattleBrand(@Param("userId") Long userId);
int updateComposeCattleStatus(@Param("userId") Long userId,@Param("status") String status,@Param("time") String time);
List<CattleListVO> queryCattleList(@Param("userId") Long userId,@Param("type") String type);
int deleteUserCalltle(@Param("list") List<UserCattleVO> list);
TaskStatusVO getTaskStatus(@Param("userId") Long userId,@Param("today") String today);
int saveShareForCattle(ShareDto dto);
int deleteUsetCattleById(@Param("id") Long id);
}
package com.polysoft.activity.mapper;
import com.polysoft.activity.model.dto.SaveUserCattleDto;
import com.polysoft.activity.model.dto.UpdateUserStatesDto;
import com.polysoft.activity.model.dto.UserInfoDto;
import com.polysoft.activity.model.dto.UserInfoForComposeStatusDto;
import com.polysoft.activity.model.dto.UserSignDto;
import com.polysoft.activity.model.dto.WechatTokenDto;
import com.polysoft.activity.model.param.UserInfoParam;
import com.polysoft.activity.model.vo.FirstLoginRedVO;
import com.polysoft.activity.model.vo.OpenCattleVO;
import com.polysoft.activity.model.vo.UserInfoVO;
import com.polysoft.activity.model.vo.UserSignVO;
import com.polysoft.activity.model.vo.WechatToken;
......@@ -30,4 +32,6 @@ public interface UserInfoMapper {
int updateFirstLoginStatus(@Param("userId") Long userId);
UserInfoVO getUserByComposeStatus(UserInfoForComposeStatusDto dto);
List<UserSignVO> queryUserSignByUserId(@Param("userId") Long userId,@Param("signDate") String signDate);
int updateUserStates(UpdateUserStatesDto dto);
OpenCattleVO getCattleAmount(@Param("userId") Long userId);
}
......@@ -26,6 +26,8 @@ public class AddRedRainDto {
private String isEnble;
//红包雨批次号
private int batchNum;
//1 红包雨 ; 2 首次登录 ; 3 补签扣钱 ; 4 集卡瓜分
private String sourceType;
public void setCreateTime(Date date) {
this.createTime = DateUtil.format(date,"yyyy-MM-dd HH:mm:ss");
......
package com.polysoft.activity.model.dto;
import cn.hutool.core.date.DateUtil;
import lombok.Data;
import java.util.Date;
/**
* @author lvyp
* @date 2021/2/1
*/
@Data
public class ShareDto {
private Long id;
private Long userId;
private String shareUrl;
private String createTime;
private String shareDate;
public void setCreateTime(Date date) {
this.createTime = DateUtil.format(date,"yyyy-MM-dd HH:mm:ss");
}
public void setShareDate(Date date) {
this.shareDate = DateUtil.format(date,"yyyy-MM-dd");
}
}
package com.polysoft.activity.model.dto;
import lombok.Data;
/**
* @author lvyp
* @date 2021/2/1
*/
@Data
public class UpdateUserStatesDto {
private Long userId;
//0 未合成牛牌 1 已合成牛牌
private String composeCattleStatus;
//0 未砸聚宝盆 1 已砸聚宝盆
private String hammerStatus;
//0 牛牌合成未打卡 1 已打开
private String cattleOpenStatus;
}
......@@ -2,11 +2,14 @@ package com.polysoft.activity.model.param;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @author lvyp
* @date 2021/1/30
*/
@Data
public class IdQueryParam {
@NotNull(message = "参数不能为空")
private Long id;
}
package com.polysoft.activity.model.vo;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author lvyp
* @date 2021/2/1
*/
@Data
public class OpenCattleVO {
private BigDecimal redAmount;
}
package com.polysoft.activity.model.vo;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author lvyp
* @date 2021/2/1
*/
@Data
public class RedPackInfoVO {
private BigDecimal redamount;
private String sourceType;
private String createTime;
}
package com.polysoft.activity.model.vo;
import lombok.Data;
/**
* @author lvyp
* @date 2021/2/1
*/
@Data
public class TaskStatusVO {
//不为0就是已完成
private String everyDaySign;
private String everyDayWish;
private String everyDayShare;
}
package com.polysoft.activity.model.vo;
import lombok.Data;
/**
* @author lvyp
* @date 2021/2/1
*/
@Data
public class UserCattleVO {
private Long id ;
private Long userId;
private Long cattleBrandId;
}
......@@ -28,5 +28,11 @@ public class UserInfoVO implements Serializable {
@ApiModelProperty("牛牌合成时间")
private String composeCattleTime;
private String sysCurretTime;
//0 未砸聚宝盆 1 已砸聚宝盆
private String hammerStatus;
//0 牛牌合成未打卡 1 已打开
private String cattleOpenStatus;
//牛牌种类数量
private String cattleTypeNum;
}
package com.polysoft.activity.service;
import com.polysoft.activity.model.param.AddRedRainParam;
import com.polysoft.activity.model.param.IdQueryParam;
import com.polysoft.activity.model.vo.ActItemVO;
import com.polysoft.activity.utils.ApiResult;
......@@ -11,4 +12,5 @@ import com.polysoft.activity.utils.ApiResult;
public interface ActItemService {
ApiResult queryActivityInfo();
ApiResult saveRedRain(AddRedRainParam param);
ApiResult queryRedPackInfo(IdQueryParam param);
}
......@@ -9,4 +9,6 @@ public interface CattleBrandService {
ApiResult queryCattleBrandByUserId(Long userId);
ApiResult queryCattleBrandByUserId2(Long userId);
ApiResult saveComposeCattleBrand(ComposeCattleBrandParam param);
ApiResult saveOpenCattleBrand(ComposeCattleBrandParam param);
ApiResult getTaskStatus(ComposeCattleBrandParam param);
}
......@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil;
import com.polysoft.activity.mapper.ActivityMapper;
import com.polysoft.activity.model.dto.AddRedRainDto;
import com.polysoft.activity.model.param.AddRedRainParam;
import com.polysoft.activity.model.param.IdQueryParam;
import com.polysoft.activity.model.vo.ActItemVO;
import com.polysoft.activity.service.ActItemService;
import com.polysoft.activity.utils.ApiResult;
......@@ -70,10 +71,16 @@ public class ActItemServiceImpl implements ActItemService{
dto.setUserId(param.getUserId());
dto.setCreateTime(date);
dto.setBatchNum(param.getBatchNum());
dto.setSourceType("1");
list.add(dto);
}
activityMapper.saveRedRain(list);
}
return ApiResult.ok();
}
@Override
public ApiResult queryRedPackInfo(IdQueryParam param) {
return ApiResult.ok(activityMapper.queryRedPackInfo(param.getId()));
}
}
package com.polysoft.activity.service.impl;
import cn.hutool.core.date.DateUtil;
import com.polysoft.activity.constant.CommonTypeEnum;
import com.polysoft.activity.mapper.ActivityMapper;
import com.polysoft.activity.mapper.CattleBrandMapper;
import com.polysoft.activity.mapper.UserInfoMapper;
import com.polysoft.activity.model.dto.AddRedRainDto;
import com.polysoft.activity.model.dto.UpdateUserStatesDto;
import com.polysoft.activity.model.dto.UserInfoDto;
import com.polysoft.activity.model.dto.UserInfoForComposeStatusDto;
import com.polysoft.activity.model.param.ComposeCattleBrandParam;
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.UserCattleVO;
import com.polysoft.activity.model.vo.UserInfoVO;
import com.polysoft.activity.service.CattleBrandService;
import com.polysoft.activity.utils.ApiResult;
import com.polysoft.activity.utils.SnowFlakeUtil;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
......@@ -26,6 +35,8 @@ public class CattleBrandServiceImpl implements CattleBrandService {
private CattleBrandMapper cattleBrandMapper;
@Resource
private UserInfoMapper userInfoMapper;
@Resource
private ActivityMapper activityMapper;
@Override
public ApiResult queryCattleBrandList(String brandType) {
......@@ -69,12 +80,51 @@ public class CattleBrandServiceImpl implements CattleBrandService {
@Override
public ApiResult saveComposeCattleBrand(ComposeCattleBrandParam param) {
int i = cattleBrandMapper.getComposeCattleBrand(param.getUserId());
if(i == 5){
cattleBrandMapper.updateComposeCattleStatus(param.getUserId(),"1", DateUtil.format(new Date(),"yyyy-MM-dd HH:mm:ss"));
return ApiResult.ok("恭喜合成牛牌");
}else {
return ApiResult.ok("请继续收集牛牌");
try {
List<UserCattleVO> list = cattleBrandMapper.getComposeCattleBrand(param.getUserId());
if(list !=null && list.size() == 5){
cattleBrandMapper.updateComposeCattleStatus(param.getUserId(),"1", DateUtil.format(new Date(),"yyyy-MM-dd HH:mm:ss"));
cattleBrandMapper.deleteUserCalltle(list);
//插入到t_red_rain
AddRedRainDto rainDto = new AddRedRainDto();
rainDto.setRedId(SnowFlakeUtil.nextId());
rainDto.setUserId(param.getUserId());
rainDto.setRedType(CommonTypeEnum.REDPACK_TYPE1.getCode());
rainDto.setCreateTime(new Date());
rainDto.setBatchNum(98);
rainDto.setSourceType(CommonTypeEnum.REDPACK_SOURCE_TYPE4.getCode());
activityMapper.saveRedRainForOne(rainDto);
return ApiResult.ok("恭喜合成牛牌");
}else {
return ApiResult.ok("请继续收集牛牌");
}
} catch (Exception e) {
e.printStackTrace();
return ApiResult.error();
}
}
@Override
public ApiResult saveOpenCattleBrand(ComposeCattleBrandParam param) {
//更新0 牛牌合成未打开 1 已打开
UpdateUserStatesDto dto = new UpdateUserStatesDto();
dto.setUserId(param.getUserId());
dto.setCattleOpenStatus("1");
userInfoMapper.updateUserStates(dto);
//更新聚宝盆余额
List<UserInfoDto> userInfoDtoList = new ArrayList<>();
OpenCattleVO openCattleVO = userInfoMapper.getCattleAmount(param.getUserId());
UserInfoDto userInfoDto = new UserInfoDto();
userInfoDto.setUserId(param.getUserId());
userInfoDto.setRedBalance(openCattleVO.getRedAmount());
userInfoDtoList.add(userInfoDto);
userInfoMapper.updateRedBalace(userInfoDtoList);
return ApiResult.ok(openCattleVO);
}
@Override
public ApiResult getTaskStatus(ComposeCattleBrandParam param) {
String today = DateUtil.format(new Date(),"yyyy-MM-dd");
return ApiResult.ok(cattleBrandMapper.getTaskStatus(param.getUserId(),today));
}
}
......@@ -3,11 +3,14 @@ package com.polysoft.activity.service.impl;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.polysoft.activity.common.log.LoggerHelper;
import com.polysoft.activity.constant.CommonTypeEnum;
import com.polysoft.activity.constant.MsgCodeEnum;
import com.polysoft.activity.mapper.ActivityMapper;
import com.polysoft.activity.mapper.CattleBrandMapper;
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.UserInfoDto;
import com.polysoft.activity.model.dto.UserSignDto;
import com.polysoft.activity.model.dto.WechatTokenDto;
......@@ -22,9 +25,11 @@ import com.polysoft.activity.utils.SnowFlakeUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestClientException;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
......@@ -68,36 +73,51 @@ public class UserInfoServiceImpl implements UserInfoService {
@Override
public ApiResult getShareLink(ShareLinkParam param) {
ShareLinkVO shareLinkVO = new ShareLinkVO();
WechatToken wechatToken = mapper.getWechatToken();
String access_token = null;
if((System.currentTimeMillis()/divide - wechatToken.getUpdateTime()/divide) > 6600){
JSONObject object = restTemplate.getForObject(accessTokenUrl+"appid="+appId+"&secret="+passWord+"", JSONObject.class);
access_token = object.getString("access_token");
WechatTokenDto dto = new WechatTokenDto();
dto.setAccessToken(access_token);
dto.setUpdateTime(DateUtil.format(new Date(),"yyyy-MM-dd HH:mm:ss"));
mapper.updateWechatToken(dto);
}else {
access_token = wechatToken.getAccessToken();
try {
ShareLinkVO shareLinkVO = new ShareLinkVO();
WechatToken wechatToken = mapper.getWechatToken();
Date date = new Date();
String access_token = null;
if((System.currentTimeMillis()/divide - wechatToken.getUpdateTime()/divide) > 6600){
JSONObject object = restTemplate.getForObject(accessTokenUrl+"appid="+appId+"&secret="+passWord+"", JSONObject.class);
access_token = object.getString("access_token");
WechatTokenDto dto = new WechatTokenDto();
dto.setAccessToken(access_token);
dto.setUpdateTime(DateUtil.format(date,"yyyy-MM-dd HH:mm:ss"));
mapper.updateWechatToken(dto);
}else {
access_token = wechatToken.getAccessToken();
}
//请求微信获取车票
JSONObject object = restTemplate.getForObject(jsapiTicketUrl+"access_token="+access_token+"", JSONObject.class);
//车票
String jsapi_ticket = object.getString("ticket");
//随机字符串
String noncestr = UUID.randomUUID().toString().replaceAll("-","");
//时间戳
Long timestamp = System.currentTimeMillis()/divide;
//加密前签名字符串
String signStr = "jsapi_ticket="+jsapi_ticket+"&noncestr="+noncestr+"&timestamp="+timestamp+"&url="+param.getUrl();
LoggerHelper.info(this.getClass(),signStr);
LoggerHelper.info(this.getClass(),SHA1.encode(signStr));
shareLinkVO.setAppId(appId);
shareLinkVO.setNoncestr(noncestr);
shareLinkVO.setTimestamp(timestamp);
shareLinkVO.setSignature(SHA1.encode(signStr));
//存储分享连接
ShareDto shareDto = new ShareDto();
shareDto.setId(SnowFlakeUtil.nextId());
shareDto.setUserId(param.getUserId());
shareDto.setCreateTime(date);
shareDto.setShareDate(date);
cattleBrandMapper.saveShareForCattle(shareDto);
//删除用户牛牌关系表数据
cattleBrandMapper.deleteUsetCattleById(param.getCattleId());
return ApiResult.ok(shareLinkVO);
} catch (RestClientException e) {
e.printStackTrace();
return ApiResult.error();
}
//请求微信获取车票
JSONObject object = restTemplate.getForObject(jsapiTicketUrl+"access_token="+access_token+"", JSONObject.class);
//车票
String jsapi_ticket = object.getString("ticket");
//随机字符串
String noncestr = UUID.randomUUID().toString().replaceAll("-","");
//时间戳
Long timestamp = System.currentTimeMillis()/divide;
//加密前签名字符串
String signStr = "jsapi_ticket="+jsapi_ticket+"&noncestr="+noncestr+"&timestamp="+timestamp+"&url="+param.getUrl();
LoggerHelper.info(this.getClass(),signStr);
LoggerHelper.info(this.getClass(),SHA1.encode(signStr));
shareLinkVO.setAppId(appId);
shareLinkVO.setNoncestr(noncestr);
shareLinkVO.setTimestamp(timestamp);
shareLinkVO.setSignature(SHA1.encode(signStr));
return ApiResult.ok(shareLinkVO);
}
@Override
......@@ -112,10 +132,34 @@ public class UserInfoServiceImpl implements UserInfoService {
CattleBrandVO cattleBrandVO = null;
CattleBrandConfVO confVO = cattleBrandMapper.queryCattleBrandConf(today);
if(param.getSignId() != null){
//扣除金额
BigDecimal kouchu = BigDecimal.valueOf(-5.00);
//查询余额是否大于 5 元
UserInfoParam userInfoParam = new UserInfoParam();
userInfoParam.setUserId(param.getUserId());
UserInfoVO user = mapper.queryAuthUser(userInfoParam);
if(user.getRedBalance().compareTo(kouchu) < 0 ){
return ApiResult.ok(MsgCodeEnum.BALANCE_NO.getCode(),MsgCodeEnum.BALANCE_NO.getMsg());
}
userSignDto.setId(param.getSignId());
userSignDto.setCreateTime(new Date());
userSignDto.setSignStatus("1");
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.setIsEnble("1");
rainDto.setSourceType(CommonTypeEnum.REDPACK_SOURCE_TYPE3.getCode());
activityMapper.saveRedRainForOne(rainDto);
List<UserInfoDto> list = new ArrayList<>();
UserInfoDto infoDto = new UserInfoDto();
infoDto.setUserId(param.getUserId());
infoDto.setRedBalance(rainDto.getRedAmount());
list.add(infoDto);
mapper.updateRedBalace(list);
}else{
userSignDto.setId(SnowFlakeUtil.nextId());
userSignDto.setUserId(param.getUserId());
......@@ -159,10 +203,10 @@ public class UserInfoServiceImpl implements UserInfoService {
dto.setRedAmount(redVO.getAmount());
dto.setRedType("0");
dto.setIsEnble("1");
dto.setBatchNum(4);
dto.setSourceType(CommonTypeEnum.REDPACK_SOURCE_TYPE2.getCode());
dto.setBatchNum(99);
dto.setCreateTime(new Date());
activityMapper.saveRedRainForOne(dto);
mapper.updateFirstLoginRed(redVO.getId());
//更新聚宝盆余额
List<UserInfoDto> userInfoDtoList = new ArrayList<>();
UserInfoDto userInfoDto = new UserInfoDto();
......
......@@ -3,6 +3,7 @@ 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;
import com.polysoft.activity.mapper.ActivityMapper;
import com.polysoft.activity.mapper.UserInfoMapper;
import com.polysoft.activity.model.dto.*;
......@@ -87,8 +88,9 @@ public class InitRedPackageTask {
for (Integer s : set) {
AddRedRainDto addRedRainDto = BeanTransferUtils.transfer(list.get(s),AddRedRainDto.class);
addRedRainDto.setRedAmount(BigDecimal.valueOf(redAmount.get(i)));
addRedRainDto.setRedType("1");
addRedRainDto.setRedType(CommonTypeEnum.REDPACK_TYPE1.getCode());
addRedRainDto.setIsEnble("1");
addRedRainDto.setSourceType(CommonTypeEnum.REDPACK_SOURCE_TYPE1.getCode());
batchList.add(addRedRainDto);
i++;
}
......@@ -116,8 +118,9 @@ public class InitRedPackageTask {
for (Integer s : set) {
AddRedRainDto addRedRainDto = BeanTransferUtils.transfer(list2.get(s),AddRedRainDto.class);
addRedRainDto.setRedAmount(BigDecimal.valueOf(redAmount.get(i)));
addRedRainDto.setRedType("1");
addRedRainDto.setRedType(CommonTypeEnum.REDPACK_TYPE1.getCode());
addRedRainDto.setIsEnble("1");
addRedRainDto.setSourceType(CommonTypeEnum.REDPACK_SOURCE_TYPE1.getCode());
batchList2.add(addRedRainDto);
i++;
}
......@@ -143,8 +146,9 @@ public class InitRedPackageTask {
for (Integer s : set) {
AddRedRainDto addRedRainDto = BeanTransferUtils.transfer(list2.get(s),AddRedRainDto.class);
addRedRainDto.setRedAmount(BigDecimal.valueOf(redAmount.get(i)));
addRedRainDto.setRedType("1");
addRedRainDto.setRedType(CommonTypeEnum.REDPACK_TYPE1.getCode());
addRedRainDto.setIsEnble("1");
addRedRainDto.setSourceType(CommonTypeEnum.REDPACK_SOURCE_TYPE1.getCode());
batchList2.add(addRedRainDto);
i++;
}
......@@ -170,8 +174,9 @@ public class InitRedPackageTask {
AddRedRainDto addRedRainDto = BeanTransferUtils.transfer(list2.get(s),AddRedRainDto.class);
int k = new Random().nextInt(5);
addRedRainDto.setCattleBrandId(cattleList.get(k).getCattleId());
addRedRainDto.setRedType("2");
addRedRainDto.setRedType(CommonTypeEnum.REDPACK_TYPE2.getCode());
addRedRainDto.setIsEnble("1");
addRedRainDto.setSourceType(CommonTypeEnum.REDPACK_SOURCE_TYPE1.getCode());
batchList2.add(addRedRainDto);
i++;
}
......@@ -179,7 +184,7 @@ public class InitRedPackageTask {
}
//更新聚宝盆
CalculateAmoutDto calculateAmoutDto = new CalculateAmoutDto();
calculateAmoutDto.setRedType("1");
calculateAmoutDto.setRedType(CommonTypeEnum.REDPACK_TYPE1.getCode());
calculateAmoutDto.setBatchNum(batchNum);
List<RedAmountTotalVO> lastList = activityMapper.calculateRedAmountTatol(calculateAmoutDto);
List<UserInfoDto> userInfoDtoList = new ArrayList<>();
......@@ -192,7 +197,7 @@ public class InitRedPackageTask {
userInfoMapper.updateRedBalace(userInfoDtoList);
//更新户牛牌
CalculateAmoutDto calculateAmoutDto2 = new CalculateAmoutDto();
calculateAmoutDto2.setRedType("2");
calculateAmoutDto2.setRedType(CommonTypeEnum.REDPACK_TYPE2.getCode());
calculateAmoutDto2.setBatchNum(batchNum);
List<RedAmountTotalVO> lastList2 = activityMapper.calculateCattleBrand(calculateAmoutDto2);
List<SaveUserCattleDto> saveUserCattleDtos = new ArrayList<>();
......
......@@ -42,40 +42,6 @@ public class UserSignTask {
}
private void sendWechat(){
//查询疫情回访数据基础表
LoggerHelper.info(this.getClass(),"任务开始");
List<QueryLuckDrawWishVO> wishForToday = wishService.queryLuckDrawWish();
QueryRealPrizeVO realPrizeVO = wishService.querRealPrize();
List<WishRealPrizeDto> dtos = new ArrayList<>();
Date date = new Date();
if(wishForToday !=null && wishForToday.size() >0 && realPrizeVO != null) {
if (wishForToday.size() < 10) {
wishForToday.forEach(item -> {
WishRealPrizeDto dto = new WishRealPrizeDto();
dto.setId(SnowFlakeUtil.nextId());
dto.setUserId(item.getUserId());
dto.setWishId(item.getWishId());
dto.setPrizeId(realPrizeVO.getPrizeId());
dto.setCreateTime(date);
dtos.add(dto);
});
}else {
HashSet<Integer> has = getLuckUser(10, wishForToday.size());
for (Integer n : has) {
QueryLuckDrawWishVO item = wishForToday.get(n);
WishRealPrizeDto dto = new WishRealPrizeDto();
dto.setId(SnowFlakeUtil.nextId());
dto.setUserId(item.getUserId());
dto.setWishId(dto.getWishId());
dto.setPrizeId(realPrizeVO.getPrizeId());
dto.setCreateTime(date);
dtos.add(dto);
}
}
wishRealPrizeMapper.saveWishRealPrizeForList(dtos);
}else {
LoggerHelper.info(this.getClass(),"无抽奖");
}
}
private HashSet<Integer> getLuckUser(int count,int random){
HashSet<Integer> has = new HashSet<Integer>();
......
......@@ -48,7 +48,6 @@ public class WishLuckDrawTask {
}
private void sendWechat(){
//查询疫情回访数据基础表
LoggerHelper.info(this.getClass(),"任务开始");
List<QueryLuckDrawWishVO> wishForToday = wishService.queryLuckDrawWish();
QueryRealPrizeVO realPrizeVO = wishService.querRealPrize();
......
......@@ -6,14 +6,16 @@
red_id,
user_id,
create_time,
batch_num
batch_num,
source_type
)VALUES
<foreach collection="list" item="item" index="index" separator =",">
(
#{item.redId},
#{item.userId},
#{item.createTime},
#{item.batchNum}
#{item.batchNum},
#{item.sourceType}
)
</foreach>
</insert>
......@@ -25,8 +27,8 @@
red_type,
is_enble,
batch_num,
create_time
create_time,
source_type
)VALUES
(
#{redId},
......@@ -35,7 +37,8 @@
#{redType},
#{isEnble},
#{batchNum},
#{createTime}
#{createTime},
#{sourceType}
)
</insert>
<update id="updateActStatus">
......@@ -148,4 +151,16 @@
FROM
t_red_rain t where t.red_type=#{redType} and t.batch_num=#{batchNum}
</select>
<select id="queryRedPackInfo" resultType="com.polysoft.activity.model.vo.RedPackInfoVO">
SELECT
t.red_amount,
t.source_type,
t.create_time
FROM
t_red_rain t
WHERE
t.user_id = #{userId} and red_type = '0'
ORDER BY
t.create_time DESC
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.polysoft.activity.mapper.CattleBrandMapper">
<insert id="saveShareForCattle" parameterType="com.polysoft.activity.model.dto.ShareDto">
INSERT INTO t_share(
id,
user_id,
share_url,
create_time,
share_date
)VALUES (
#{id},
#{userId},
#{shareUrl},
#{createTime},
#{shareDate}
)
</insert>
<delete id="deleteUsetCattleById">
delete from t_user_cattle where id = #{id}
</delete>
<update id="updateComposeCattleStatus">
update t_user
set compose_cattle_status = #{status},
compose_cattle_time = #{time}
where user_id = #{userId}
</update>
<delete id="deleteUserCalltle" parameterType="list">
delete from t_user_cattle
where id IN
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item.id}
</foreach>
</delete>
<select id="queryCattleBrandList" resultType="com.polysoft.activity.model.vo.CattleBrandVO">
select
cattle_id,
......@@ -33,11 +58,17 @@
t.user_id =#{userId}
</select>
<select id="getComposeCattleBrand" resultType="int">
<select id="getComposeCattleBrand" resultType="com.polysoft.activity.model.vo.UserCattleVO">
SELECT
count( * )
t.id,
t.user_id,
t.cattle_brand_id
FROM
( SELECT t.cattle_brand_id FROM t_user_cattle t WHERE t.user_id = #{userId} GROUP BY t.cattle_brand_id ) tab
t_user_cattle t
WHERE
t.user_id = #{userId}
GROUP BY
t.cattle_brand_id
</select>
<select id="queryCattleBrandConf" resultType="com.polysoft.activity.model.vo.CattleBrandConfVO">
SELECT
......@@ -64,4 +95,15 @@
t1.user_id = #{userId}
AND t2.brand_type =#{type}
</select>
<select id="getTaskStatus" resultType="com.polysoft.activity.model.vo.TaskStatusVO">
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_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>
</mapper>
......@@ -12,7 +12,10 @@
is_first,
compose_cattle_status,
compose_cattle_time,
hammer_status
hammer_status,
cattle_open_status,
(select count(*) from (select tc.cattle_brand_id from t_user_cattle tc where tc.user_id = #{userId} GROUP BY tc.cattle_brand_id)tab) as cattleTypeNum
from
t_user where
1=1
......@@ -59,6 +62,21 @@
<update id="updateFirstLoginStatus">
update t_user set is_first = 1 where user_id =#{userId}
</update>
<update id="updateUserStates" parameterType="com.polysoft.activity.model.dto.UpdateUserStatesDto">
update t_user set
<if test="composeCattleStatus != null and composeCattleStatus != ''">
compose_cattle_status = #{composeCattleStatus}
</if>
<if test="hammerStatus != null and hammerStatus != ''">
hammer_status = #{hammerStatus}
</if>
<if test="cattleOpenStatus != null and cattleOpenStatus != ''">
cattle_open_status = #{cattleOpenStatus}
</if>
<where>
user_id = #{userId}
</where>
</update>
<insert id="saveCattleBrand" parameterType="com.polysoft.activity.model.dto.SaveUserCattleDto">
INSERT into t_user_cattle (
id,
......@@ -118,5 +136,14 @@
</if>
order by t.sign_date asc
</select>
<select id="getCattleAmount" resultType="com.polysoft.activity.model.vo.OpenCattleVO">
select
t.red_amount
from t_red_rain t
where
t.user_id=#{userId}
and t.source_type = '4'
and t.is_enble='0'
</select>
</mapper>
......@@ -39,6 +39,11 @@ 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) {
ApiResult r = new ApiResult();
r.put("code", code);
r.put("msg", msg);
return r;
}
// public static ApiResult ok(Map<String, Object> map) {
// ApiResult r = new ApiResult();
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!