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

Commit ff49b580 authored by jiangxiulong's avatar jiangxiulong

增加是否无限库存标识

parent acce922a
...@@ -58,6 +58,10 @@ public class SweetIntegralActivityPrizeFormParam implements Serializable,Cloneab ...@@ -58,6 +58,10 @@ public class SweetIntegralActivityPrizeFormParam implements Serializable,Cloneab
@NotNull(message = "prizeNum不能为空") @NotNull(message = "prizeNum不能为空")
private Integer prizeNum; private Integer prizeNum;
@ApiModelProperty(required = true, value = "是否是无限库存 1有限库存 2无限库存", example = "1")
@NotNull(message = "isInfinite不能为空")
private Integer isInfinite;
@ApiModelProperty(required = true, value = "中奖概率", example = "1") @ApiModelProperty(required = true, value = "中奖概率", example = "1")
@NotNull(message = "winningProbability不能为空") @NotNull(message = "winningProbability不能为空")
private BigDecimal winningProbability; private BigDecimal winningProbability;
...@@ -84,6 +88,7 @@ public class SweetIntegralActivityPrizeFormParam implements Serializable,Cloneab ...@@ -84,6 +88,7 @@ public class SweetIntegralActivityPrizeFormParam implements Serializable,Cloneab
sweetIntegralActivityPrize.setPrizeType(source.getPrizeType()); sweetIntegralActivityPrize.setPrizeType(source.getPrizeType());
sweetIntegralActivityPrize.setPrizeTypeNum(source.getPrizeTypeNum()); sweetIntegralActivityPrize.setPrizeTypeNum(source.getPrizeTypeNum());
sweetIntegralActivityPrize.setPrizeNum(source.getPrizeNum()); sweetIntegralActivityPrize.setPrizeNum(source.getPrizeNum());
sweetIntegralActivityPrize.setIsInfinite(source.getIsInfinite());
sweetIntegralActivityPrize.setWinningProbability(source.getWinningProbability()); sweetIntegralActivityPrize.setWinningProbability(source.getWinningProbability());
return sweetIntegralActivityPrize; return sweetIntegralActivityPrize;
} }
......
...@@ -73,6 +73,9 @@ public class SweetIntegralActivityServiceImpl extends ServiceImpl<SweetIntegralA ...@@ -73,6 +73,9 @@ public class SweetIntegralActivityServiceImpl extends ServiceImpl<SweetIntegralA
String prizeId = IDGenerator.nextSnowId(); String prizeId = IDGenerator.nextSnowId();
sweetIntegralActivityPrize.setPrizeId(prizeId); sweetIntegralActivityPrize.setPrizeId(prizeId);
sweetIntegralActivityPrize.setIntegralActivityId(integralActivityId); sweetIntegralActivityPrize.setIntegralActivityId(integralActivityId);
if (prize.getIsInfinite() == 2) {
sweetIntegralActivityPrize.setPrizeNum(0);
}
sweetIntegralActivityPrizeMapper.insert(sweetIntegralActivityPrize); sweetIntegralActivityPrizeMapper.insert(sweetIntegralActivityPrize);
// 奖品库存 // 奖品库存
sweetRedisAdminUtils.incrIntegralActivityPrizeNum(integralActivityId, sweetIntegralActivityPrize.getPrizeId(), sweetIntegralActivityPrize.getPrizeNum()); sweetRedisAdminUtils.incrIntegralActivityPrizeNum(integralActivityId, sweetIntegralActivityPrize.getPrizeId(), sweetIntegralActivityPrize.getPrizeNum());
...@@ -119,22 +122,27 @@ public class SweetIntegralActivityServiceImpl extends ServiceImpl<SweetIntegralA ...@@ -119,22 +122,27 @@ public class SweetIntegralActivityServiceImpl extends ServiceImpl<SweetIntegralA
SweetIntegralActivityPrize sweetIntegralActivityPrize = SweetIntegralActivityPrizeFormParam.getNew().copy(prize); SweetIntegralActivityPrize sweetIntegralActivityPrize = SweetIntegralActivityPrizeFormParam.getNew().copy(prize);
sweetIntegralActivityPrize.setUpdatedAt(nowTime); sweetIntegralActivityPrize.setUpdatedAt(nowTime);
String prizeId = prize.getPrizeId(); String prizeId = prize.getPrizeId();
// 处理奖品库存 if (prize.getIsInfinite() == 2) {
SweetIntegralActivityPrize sweetIntegralActivityPrizeOld = sweetIntegralActivityPrizeMapper.selectOne( sweetIntegralActivityPrize.setPrizeNum(0);
Wrappers.lambdaQuery(SweetIntegralActivityPrize.class).eq(SweetIntegralActivityPrize::getPrizeId, prizeId) sweetRedisAdminUtils.delIntegralActivityPrizeNum(integralActivityId, prizeId);
); } else {
// 处理奖品库存
SweetIntegralActivityPrize sweetIntegralActivityPrizeOld = sweetIntegralActivityPrizeMapper.selectOne(
Wrappers.lambdaQuery(SweetIntegralActivityPrize.class).eq(SweetIntegralActivityPrize::getPrizeId, prizeId)
);
Integer prizeNum = sweetIntegralActivityPrizeOld.getPrizeNum();
Integer prizeNumNew = sweetIntegralActivityPrize.getPrizeNum();
int prizeNumDiff = prizeNumNew - prizeNum;
if (prizeNumDiff > 0) {//增加库存
sweetRedisAdminUtils.incrIntegralActivityPrizeNum(integralActivityId, prizeId, prizeNumDiff);
} else if(prizeNumDiff < 0) {// 减少库存
sweetRedisAdminUtils.decrIntegralActivityPrizeNum(integralActivityId, prizeId, Math.abs(prizeNumDiff));
}
}
sweetIntegralActivityPrizeMapper.update( sweetIntegralActivityPrizeMapper.update(
sweetIntegralActivityPrize, sweetIntegralActivityPrize,
Wrappers.lambdaUpdate(SweetIntegralActivityPrize.class).eq(SweetIntegralActivityPrize::getPrizeId, prizeId) Wrappers.lambdaUpdate(SweetIntegralActivityPrize.class).eq(SweetIntegralActivityPrize::getPrizeId, prizeId)
); );
Integer prizeNum = sweetIntegralActivityPrizeOld.getPrizeNum();
Integer prizeNumNew = sweetIntegralActivityPrize.getPrizeNum();
int prizeNumDiff = prizeNumNew - prizeNum;
if (prizeNumDiff > 0) {//增加库存
sweetRedisAdminUtils.incrIntegralActivityPrizeNum(integralActivityId, prizeId, prizeNumDiff);
} else if(prizeNumDiff < 0) {// 减少库存
sweetRedisAdminUtils.decrIntegralActivityPrizeNum(integralActivityId, prizeId, Math.abs(prizeNumDiff));
}
} }
} }
// 活动redis处理 // 活动redis处理
......
...@@ -36,7 +36,6 @@ public class SweetRedisAdminUtils { ...@@ -36,7 +36,6 @@ public class SweetRedisAdminUtils {
.concat(prizeId); .concat(prizeId);
redisDataSourceUtil.getRedisSweetUtil().incr(redisKey, num); redisDataSourceUtil.getRedisSweetUtil().incr(redisKey, num);
} }
public void decrIntegralActivityPrizeNum(String integralActivityId, String prizeId, Integer num) { public void decrIntegralActivityPrizeNum(String integralActivityId, String prizeId, Integer num) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_NUM String redisKey = SweetConstant.REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_NUM
.concat(integralActivityId) .concat(integralActivityId)
...@@ -44,6 +43,13 @@ public class SweetRedisAdminUtils { ...@@ -44,6 +43,13 @@ public class SweetRedisAdminUtils {
.concat(prizeId); .concat(prizeId);
redisDataSourceUtil.getRedisSweetUtil().decr(redisKey, num); redisDataSourceUtil.getRedisSweetUtil().decr(redisKey, num);
} }
public void delIntegralActivityPrizeNum(String integralActivityId, String prizeId) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_NUM
.concat(integralActivityId)
.concat(SweetConstant.REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_ID)
.concat(prizeId);
redisDataSourceUtil.getRedisSweetUtil().del(redisKey);
}
public int getIntegralActivityPrizeNum(String integralActivityId, String prizeId) { public int getIntegralActivityPrizeNum(String integralActivityId, String prizeId) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_NUM String redisKey = SweetConstant.REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_NUM
......
package com.liquidnet.service.sweet.entity; package com.liquidnet.service.sweet.entity;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/** /**
* <p> * <p>
* 积分活动奖品表 * 积分活动奖品表
...@@ -73,6 +71,11 @@ public class SweetIntegralActivityPrize implements Serializable, Cloneable { ...@@ -73,6 +71,11 @@ public class SweetIntegralActivityPrize implements Serializable, Cloneable {
*/ */
private Integer prizeNum; private Integer prizeNum;
/**
* 是否是无限库存 1有限库存 2无限
*/
private Integer isInfinite;
/** /**
* 中奖概率 * 中奖概率
*/ */
......
...@@ -40,6 +40,7 @@ CREATE TABLE `sweet_integral_activity_prize` ...@@ -40,6 +40,7 @@ CREATE TABLE `sweet_integral_activity_prize`
`prize_type` tinyint NOT NULL DEFAULT 0 COMMENT '奖品类型 1积分 2优惠券 3实物 4登登登VIP', `prize_type` tinyint NOT NULL DEFAULT 0 COMMENT '奖品类型 1积分 2优惠券 3实物 4登登登VIP',
`prize_type_num` int NOT NULL DEFAULT 0 COMMENT '单次奖励数量如积分 中奖给多少', `prize_type_num` int NOT NULL DEFAULT 0 COMMENT '单次奖励数量如积分 中奖给多少',
`prize_num` int NOT NULL DEFAULT 0 COMMENT '奖品数量库存', `prize_num` int NOT NULL DEFAULT 0 COMMENT '奖品数量库存',
`is_infinite` tinyint NOT NULL DEFAULT 1 COMMENT '是否是无限库存 1有限库存 2无限库存',
`winning_probability` decimal(10, 2) NOT NULL DEFAULT 0 COMMENT '中奖概率', `winning_probability` decimal(10, 2) NOT NULL DEFAULT 0 COMMENT '中奖概率',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间', `updated_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
......
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