记得上下班打卡 | git大法好,push需谨慎

Commit 668b7035 authored by jiangxiulong's avatar jiangxiulong

IntegralActivityDrawVo mongo

parent 01cbbb25
package com.liquidnet.service.sweet.dto.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.sweet.entity.SweetIntegralActivityDraw;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
@Data
public class IntegralActivityDrawVo implements Serializable, Cloneable {
private static final long serialVersionUID = -6777064807434774549L;
@ApiModelProperty(value = "抽奖id")
private String drawId;
@ApiModelProperty(value = "关联活动id")
private String integralActivityId;
@ApiModelProperty(value = "活动玩一次所需积分")
private Integer activityNum;
@ApiModelProperty(value = "关联奖品id")
private String prizeId;
@ApiModelProperty(value = "奖品名称")
private String prizeTitle;
@ApiModelProperty(value = "奖品类型 1谢谢惠顾 2积分 3优惠券 4实物")
private Integer prizeType;
@ApiModelProperty(value = "关联id 如商品id 券id")
private String relationId;
@ApiModelProperty(value = "单次奖励数量如积分 中奖给多少")
private Integer prizeTypeNum;
@ApiModelProperty(value = "关联用户id")
private String userId;
@ApiModelProperty(value = "关联用户昵称")
private String nickname;
@ApiModelProperty(value = "adam收货地址addresses_id")
private String receivingAddressesId;
@ApiModelProperty(value = "adam收货人姓名")
private String receivingName;
@ApiModelProperty(value = "adam收货人手机号")
private String receivingPhone;
@ApiModelProperty(value = "adam收货人完整地址 空格隔离省市区详细地址")
private String receivingAddress;
@ApiModelProperty(value = "收货状态 1中奖未发放 2已发放")
private Integer receivingStatus;
@ApiModelProperty(value = "创建时间")
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
private LocalDateTime createdAt;
@ApiModelProperty(value = "更新时间")
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
private LocalDateTime updatedAt;
private static final IntegralActivityDrawVo obj = new IntegralActivityDrawVo();
public static IntegralActivityDrawVo getNew() {
try {
return (IntegralActivityDrawVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new IntegralActivityDrawVo();
}
}
public IntegralActivityDrawVo copy(SweetIntegralActivityDraw source) {
if (null == this) return this;
this.setDrawId(source.getIntegralActivityId());
this.setIntegralActivityId(source.getIntegralActivityId());
this.setActivityNum(source.getActivityNum());
this.setPrizeId(source.getPrizeId());
this.setPrizeTitle(source.getPrizeTitle());
this.setPrizeType(source.getPrizeType());
this.setPrizeTypeNum(source.getPrizeTypeNum());
this.setRelationId(source.getRelationId());
this.setUserId(source.getUserId());
this.setNickname(source.getNickname());
this.setReceivingAddressesId(source.getReceivingAddressesId());
this.setReceivingName(source.getReceivingName());
this.setReceivingPhone(source.getReceivingPhone());
this.setReceivingAddress(source.getReceivingAddress());
this.setReceivingStatus(source.getReceivingStatus());
this.setCreatedAt(source.getUpdatedAt());
this.setUpdatedAt(source.getUpdatedAt());
return this;
}
}
......@@ -2,6 +2,7 @@ package com.liquidnet.service.sweet.service;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.dto.vo.IntegralActivityDrawVo;
import com.liquidnet.service.sweet.dto.vo.admin.SweetIntegralActivityPrizeVo;
import com.liquidnet.service.sweet.entity.SweetIntegralActivityDraw;
import com.baomidou.mybatisplus.extension.service.IService;
......@@ -20,9 +21,9 @@ public interface ISweetIntegralActivityDrawService extends IService<SweetIntegra
ResponseDto<SweetIntegralActivityPrizeVo> create(String integralActivityId);
ResponseDto<PagedResult<SweetIntegralActivityDraw>> drawList(Integer type, String integralActivityId, Integer pageNum);
ResponseDto<PagedResult<IntegralActivityDrawVo>> drawList(Integer type, String integralActivityId, Integer pageNum);
ResponseDto<List<SweetIntegralActivityDraw>> winPrizeUser(String integralActivityId);
ResponseDto<List<IntegralActivityDrawVo>> winPrizeUser(String integralActivityId);
ResponseDto perfectAddress(String drawId, String receivingAddressesId, String receivingName, String receivingPhone, String receivingAddress);
}
package com.liquidnet.service.sweet.utils;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.sweet.dto.vo.IntegralActivityDrawVo;
import com.liquidnet.service.sweet.dto.vo.admin.SweetIntegralActivityPrizeVo;
import com.liquidnet.service.sweet.entity.SweetIntegralActivityDraw;
import com.liquidnet.service.sweet.entity.SweetIntegralActivityPrize;
......@@ -11,19 +12,19 @@ import java.util.LinkedList;
public class SweetNewObjectUtil {
private static final ArrayList<SweetIntegralActivityPrizeVo> sweetIntegralActivityPrizeVoArrayList = new ArrayList<>();
private static final ArrayList<SweetIntegralActivityPrize> sweetIntegralActivityPrizeArrayList = new ArrayList<>();
private static final LinkedList<SweetIntegralActivityDraw> sweetIntegralActivityDrawArrayList = new LinkedList<>();
private static final PagedResult<SweetIntegralActivityDraw> sweetIntegralActivityDrawPagedResult = new PagedResult<>();
private static final LinkedList<IntegralActivityDrawVo> sweetIntegralActivityDrawVoLinkedList = new LinkedList<>();
private static final PagedResult<IntegralActivityDrawVo> sweetIntegralActivityDrawVoPagedResult = new PagedResult<>();
public static ArrayList<SweetIntegralActivityPrizeVo> getSweetIntegralActivityPrizeVoArrayList() {
return (ArrayList<SweetIntegralActivityPrizeVo>) sweetIntegralActivityPrizeVoArrayList.clone();
}
public static LinkedList<SweetIntegralActivityDraw> getSweetIntegralActivityDrawLinkedList() {
return (LinkedList<SweetIntegralActivityDraw>) sweetIntegralActivityDrawArrayList.clone();
public static LinkedList<IntegralActivityDrawVo> getSweetIntegralActivityDrawVoLinkedList() {
return (LinkedList<IntegralActivityDrawVo>) sweetIntegralActivityDrawVoLinkedList.clone();
}
public static PagedResult<SweetIntegralActivityDraw> getSweetIntegralActivityDrawPagedResult() {
return (PagedResult<SweetIntegralActivityDraw>) sweetIntegralActivityDrawPagedResult.clone();
public static PagedResult<IntegralActivityDrawVo> getSweetIntegralActivityDrawVoPagedResult() {
return (PagedResult<IntegralActivityDrawVo>) sweetIntegralActivityDrawVoPagedResult.clone();
}
public static ArrayList<SweetIntegralActivityPrize> getSweetIntegralActivityPrizeArrayList() {
......
......@@ -78,7 +78,22 @@ public class SweetIntegralActivityDraw implements Serializable, Cloneable {
private String nickname;
/**
* 收货地址
* adam收货地址addresses_id
*/
private String receivingAddressesId;
/**
* adam收货人姓名
*/
private String receivingName;
/**
* adam收货人手机号
*/
private String receivingPhone;
/**
* adam收货人完整地址 空格隔离省市区详细地址
*/
private String receivingAddress;
......
......@@ -81,6 +81,10 @@
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
</dependency>
</dependencies>
<build>
......
......@@ -3,6 +3,7 @@ package com.liquidnet.service.sweet.controller;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.dto.vo.IntegralActivityDrawVo;
import com.liquidnet.service.sweet.dto.vo.admin.SweetIntegralActivityPrizeVo;
import com.liquidnet.service.sweet.entity.SweetIntegralActivityDraw;
import com.liquidnet.service.sweet.service.ISweetIntegralActivityDrawService;
......@@ -48,7 +49,7 @@ public class SweetIntegralActivityDrawController {
@ApiImplicitParam(type = "query", dataType = "String", name = "integralActivityId", value = "活动id", required = true),
@ApiImplicitParam(type = "query", dataType = "Integer", name = "pageNum", value = "分页", required = true)
})
public ResponseDto<PagedResult<SweetIntegralActivityDraw>> drawList(
public ResponseDto<PagedResult<IntegralActivityDrawVo>> drawList(
@RequestParam("type") Integer type,
@RequestParam("integralActivityId") String integralActivityId,
@RequestParam("pageNum") Integer pageNum
......@@ -61,7 +62,7 @@ public class SweetIntegralActivityDrawController {
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "integralActivityId", value = "活动id", required = true)
})
public ResponseDto<List<SweetIntegralActivityDraw>> winPrizeUser(
public ResponseDto<List<IntegralActivityDrawVo>> winPrizeUser(
@RequestParam("integralActivityId") String integralActivityId
) {
return activityDrawService.winPrizeUser(integralActivityId);
......
......@@ -4,6 +4,8 @@ import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.vo.returns.KylinOrderRefundsVo;
import com.liquidnet.service.sweet.dto.vo.IntegralActivityDrawVo;
import com.liquidnet.service.sweet.dto.vo.IntegralActivityVo;
import com.liquidnet.service.sweet.dto.vo.admin.SweetIntegralActivityPrizeVo;
import com.liquidnet.service.sweet.entity.SweetIntegralActivityDraw;
......@@ -15,6 +17,7 @@ import com.liquidnet.service.sweet.utils.RedisDataUtils;
import com.liquidnet.service.sweet.utils.SweetNewObjectUtil;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
......@@ -36,6 +39,9 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
@Autowired
private RedisDataUtils redisDataUtils;
@Autowired
private MongoTemplate mongoTemplate;
@Override
public ResponseDto<SweetIntegralActivityPrizeVo> create(String integralActivityId) {
// TODO: 2021/10/26 看情况是否加锁 一个用户整个逻辑单进程
......@@ -84,38 +90,39 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
if (activityPrizeNum < 0 || activityPrizeWinnersNum < 0) {// 库存不够了
return ResponseDto.failure("活动太火爆了,请稍后再试");
}
SweetIntegralActivityDraw sweetIntegralActivityDraw = SweetIntegralActivityDraw.getNew();
sweetIntegralActivityDraw.setDrawId(IDGenerator.nextSnowId());
sweetIntegralActivityDraw.setIntegralActivityId(integralActivityId);
sweetIntegralActivityDraw.setActivityNum(integralActivity.getActivityNum());
sweetIntegralActivityDraw.setPrizeId(sweetIntegralActivityPrize.getPrizeId());
sweetIntegralActivityDraw.setPrizeTitle(sweetIntegralActivityPrize.getPrizeTitle());
sweetIntegralActivityDraw.setPrizeType(sweetIntegralActivityPrize.getPrizeType());
sweetIntegralActivityDraw.setPrizeTypeNum(sweetIntegralActivityPrize.getPrizeTypeNum());
sweetIntegralActivityDraw.setRelationId(sweetIntegralActivityPrize.getRelationId());
sweetIntegralActivityDraw.setUserId(userId);
sweetIntegralActivityDraw.setNickname(nickname);
IntegralActivityDrawVo integralActivityDrawVo = IntegralActivityDrawVo.getNew();
integralActivityDrawVo.setDrawId(IDGenerator.nextSnowId());
integralActivityDrawVo.setIntegralActivityId(integralActivityId);
integralActivityDrawVo.setActivityNum(integralActivity.getActivityNum());
integralActivityDrawVo.setPrizeId(sweetIntegralActivityPrize.getPrizeId());
integralActivityDrawVo.setPrizeTitle(sweetIntegralActivityPrize.getPrizeTitle());
integralActivityDrawVo.setPrizeType(sweetIntegralActivityPrize.getPrizeType());
integralActivityDrawVo.setPrizeTypeNum(sweetIntegralActivityPrize.getPrizeTypeNum());
integralActivityDrawVo.setRelationId(sweetIntegralActivityPrize.getRelationId());
integralActivityDrawVo.setUserId(userId);
integralActivityDrawVo.setNickname(nickname);
LocalDateTime nowTime = LocalDateTime.now();
sweetIntegralActivityDraw.setCreatedAt(nowTime);
integralActivityDrawVo.setCreatedAt(nowTime);
// redis
redisDataUtils.setIntegralActivityDraw(sweetIntegralActivityDraw);
redisDataUtils.setIntegralActivityDraw(integralActivityDrawVo);
// mongo
mongoTemplate.insert(integralActivityDrawVo, IntegralActivityDrawVo.class.getSimpleName());
return ResponseDto.success(sweetIntegralActivityPrizeVo);
}
@Override
public ResponseDto<PagedResult<SweetIntegralActivityDraw>> drawList(Integer type, String integralActivityId, Integer pageNum) {
public ResponseDto<PagedResult<IntegralActivityDrawVo>> drawList(Integer type, String integralActivityId, Integer pageNum) {
String currentUid = CurrentUtil.getCurrentUid();
List<SweetIntegralActivityDraw> integralActivityDrawAll = redisDataUtils.getIntegralActivityDrawList(type, currentUid, integralActivityId, pageNum);
PagedResult<SweetIntegralActivityDraw> sweetIntegralActivityDrawPagedResult = SweetNewObjectUtil.getSweetIntegralActivityDrawPagedResult();
List<IntegralActivityDrawVo> integralActivityDrawAll = redisDataUtils.getIntegralActivityDrawList(type, currentUid, integralActivityId, pageNum);
PagedResult<IntegralActivityDrawVo> sweetIntegralActivityDrawPagedResult = SweetNewObjectUtil.getSweetIntegralActivityDrawVoPagedResult();
sweetIntegralActivityDrawPagedResult.setList(integralActivityDrawAll).setTotal(100, 20).setPageSize(20).setCurrentPage(pageNum);
return ResponseDto.success(sweetIntegralActivityDrawPagedResult);
}
@Override
public ResponseDto<List<SweetIntegralActivityDraw>> winPrizeUser(String integralActivityId) {
List<SweetIntegralActivityDraw> integralActivityDrawAll = redisDataUtils.getIntegralActivityDrawAll(integralActivityId);
public ResponseDto<List<IntegralActivityDrawVo>> winPrizeUser(String integralActivityId) {
List<IntegralActivityDrawVo> integralActivityDrawAll = redisDataUtils.getIntegralActivityDrawAll(integralActivityId);
return ResponseDto.success(integralActivityDrawAll);
}
......
......@@ -11,6 +11,7 @@ import com.liquidnet.service.sweet.dto.SweetManualAppletDto;
import com.liquidnet.service.sweet.dto.SweetManualArtistList2Dto;
import com.liquidnet.service.sweet.dto.SweetManualArtistListDto;
import com.liquidnet.service.sweet.dto.SweetManualArtistStageListDto;
import com.liquidnet.service.sweet.dto.vo.IntegralActivityDrawVo;
import com.liquidnet.service.sweet.dto.vo.IntegralActivityVo;
import com.liquidnet.service.sweet.entity.*;
import com.liquidnet.service.sweet.mapper.*;
......@@ -631,12 +632,12 @@ public class RedisDataUtils {
}
}
public void setIntegralActivityDraw(SweetIntegralActivityDraw sweetIntegralActivityDraw) {
Integer prizeType = sweetIntegralActivityDraw.getPrizeType();
public void setIntegralActivityDraw(IntegralActivityDrawVo integralActivityDrawVo) {
Integer prizeType = integralActivityDrawVo.getPrizeType();
String redisKey = "";
String userId = sweetIntegralActivityDraw.getUserId();
String integralActivityId = sweetIntegralActivityDraw.getIntegralActivityId();
LinkedList<SweetIntegralActivityDraw> activityDrawArrayList = SweetNewObjectUtil.getSweetIntegralActivityDrawLinkedList();
String userId = integralActivityDrawVo.getUserId();
String integralActivityId = integralActivityDrawVo.getIntegralActivityId();
LinkedList<IntegralActivityDrawVo> activityDrawArrayList = SweetNewObjectUtil.getSweetIntegralActivityDrawVoLinkedList();
if (prizeType == 1) {// 谢谢惠顾 写入抽奖列表
redisKey = SweetConstant.REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_USER
.concat(integralActivityId)
......@@ -653,13 +654,13 @@ public class RedisDataUtils {
// all用户中奖列表
String redisKeyAll = SweetConstant.REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_ALL_LIST
.concat(integralActivityId);
LinkedList<SweetIntegralActivityDraw> integralActivityDrawAll = this.getIntegralActivityDrawAll(integralActivityId);
LinkedList<IntegralActivityDrawVo> integralActivityDrawAll = this.getIntegralActivityDrawAll(integralActivityId);
if (!CollectionUtil.isEmpty(integralActivityDrawAll)) {
if (integralActivityDrawAll.size() >= 20) {
integralActivityDrawAll.remove(0);
}
}
integralActivityDrawAll.addFirst(sweetIntegralActivityDraw);
integralActivityDrawAll.addFirst(integralActivityDrawVo);
redisUtil.set(redisKeyAll, integralActivityDrawAll);
}
// 先获取set到20条
......@@ -668,22 +669,22 @@ public class RedisDataUtils {
activityDrawArrayList.remove(0);
}
}
activityDrawArrayList.addFirst(sweetIntegralActivityDraw);
activityDrawArrayList.addFirst(integralActivityDrawVo);
redisUtil.set(redisKey, activityDrawArrayList);
}
public LinkedList<SweetIntegralActivityDraw> getIntegralActivityDrawAll(String integralActivityId) {
public LinkedList<IntegralActivityDrawVo> getIntegralActivityDrawAll(String integralActivityId) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_ALL_LIST
.concat(integralActivityId);
Object obj = redisUtil.get(redisKey);
if (null == obj) {
return null;
} else {
return (LinkedList<SweetIntegralActivityDraw>) obj;
return (LinkedList<IntegralActivityDrawVo>) obj;
}
}
public LinkedList<SweetIntegralActivityDraw> getIntegralActivityDrawList(Integer type, String uid, String integralActivityId, Integer pageNum) {
public LinkedList<IntegralActivityDrawVo> getIntegralActivityDrawList(Integer type, String uid, String integralActivityId, Integer pageNum) {
String redisKey = "";
if (type == 1) {
redisKey = SweetConstant.REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_IN_USER
......@@ -700,7 +701,7 @@ public class RedisDataUtils {
if (null == obj) {
return null;
} else {
return (LinkedList<SweetIntegralActivityDraw>) obj;
return (LinkedList<IntegralActivityDrawVo>) obj;
}
// TODO: 2021/10/27 page大于1 去mongo里面取
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment