砍价商品

This commit is contained in:
pikachu 2021-07-06 18:35:40 +08:00
parent f9662bd61a
commit 531ca13555
11 changed files with 562 additions and 24 deletions

View File

@ -237,6 +237,8 @@ public enum ResultCode {
PROMOTION_GOODS_ERROR(40006,"请选择要参与活动的商品"),
PROMOTION_STATUS_END(40007,"当前活动已停止"),
PROMOTION_UPDATE_ERROR(40008,"当前活动已开始/结束,无法编辑!"),
PROMOTION_ACTIVITY_GOODS_ERROR(40009,"当前活动已经开始无法添加商品"),
PROMOTION_ACTIVITY_ERROR(40009,"当前促销活动不存在"),
/**
* 优惠券
@ -320,7 +322,13 @@ public enum ResultCode {
* 其他促销
*/
MEMBER_SIGN_REPEAT(47001, "请勿重复签到"),
POINT_GOODS_ACTIVE_STOCK_ERROR(47002, "活动库存数量不能高于商品库存"),
POINT_GOODS_ACTIVE_STOCK_ERROR(47002, "最低金额不能高于商品金额"),
/**
* 砍价活动
*/
KANJIIA_GOODS_ACTIVE_STOCK_ERROR(48001, "活动库存数量不能高于商品库存"),
KANJIIA_GOODS_ACTIVE_PRICE_ERROR(48001, "活动库存数量不能高于商品库存"),
/**
* 店铺
*/

View File

@ -0,0 +1,76 @@
package cn.lili.modules.promotion.entity.dos;
import cn.lili.base.BaseEntity;
import cn.lili.modules.promotion.entity.dto.BasePromotion;
import cn.lili.modules.promotion.entity.enums.PromotionStatusEnum;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.util.Date;
/**
* 砍价活动商品实体类
*
* @author qiuqiu
* @date 2020-7-1 10:44 上午
*/
@Data
@Entity
@Table(name = "li_kanjia_activity_goods")
@TableName("li_kanjia_activity_goods")
@ApiModel(value = "砍价活动对象")
public class KanJiaActivityGoods extends BaseEntity {
private static final long serialVersionUID = 6694714877345423488L;
@ApiModelProperty(value = "结算价格")
private Double settlementPrice;
@ApiModelProperty(value = "最低购买金额")
private Double purchasePrice;
@ApiModelProperty(value = "货品id")
private String skuId;
@ApiModelProperty(value = "货品名称")
private String goodsName;
@ApiModelProperty(value = "缩略图")
private String thumbnail;
@ApiModelProperty(value = "活动库存")
private Integer stock;
@ApiModelProperty(value = "每人最低砍价金额")
private Double lowestPrice;
@ApiModelProperty(value = "每人最高砍价金额")
private Double highestPrice;
/**
* @see PromotionStatusEnum
*/
@ApiModelProperty(value = "活动状态")
@NotNull(message = "活动状态不能为空")
private String promotionStatus;
@Min(message = "活动开始时间不能为空", value = 0)
@ApiModelProperty(value = "活动开始时间", required = true)
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date startTime;
@Min(message = "活动结束时间不能为空", value = 0)
@ApiModelProperty(value = "活动结束时间", required = true)
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
}

View File

@ -0,0 +1,51 @@
package cn.lili.modules.promotion.entity.dto;
import cn.lili.modules.promotion.entity.dos.KanJiaActivityGoods;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
import java.io.Serializable;
import java.util.Date;
/**
* 砍价活动通用类
*
* @author qiuqiu
* @date 2020/8/21
**/
@Data
public class KanJiaActivityEditDTO implements Serializable {
private static final long serialVersionUID = -1378599087650538592L;
@NotEmpty(message = "活动名称不能为空")
@ApiModelProperty(value = "活动名称", required = true)
private String promotionName;
@ApiModelProperty(value = "每人最低砍价金额", required = true)
@NotEmpty(message = "每人最低砍价金额不能为空")
private Double lowestPrice;
@ApiModelProperty(value = "每人最高砍价金额", required = true)
@NotEmpty(message = "每人最高砍价金额不能为空")
private Double highestPrice;
@Min(message = "活动开始时间不能为空", value = 0)
@ApiModelProperty(value = "活动开始时间", required = true)
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date startTime;
@Min(message = "活动结束时间不能为空", value = 0)
@ApiModelProperty(value = "活动结束时间", required = true)
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
@ApiModelProperty(value = "砍价活动商品列表")
IPage<KanJiaActivityGoods> promotionGoodsList;
}

View File

@ -0,0 +1,60 @@
package cn.lili.modules.promotion.entity.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
import java.io.Serializable;
import java.util.Date;
/**
* 砍价活动商品
*
* @author qiuqiu
* @date 2020/8/21
**/
@Data
public class KanJiaActivityGoodsDTO implements Serializable {
private static final long serialVersionUID = 1969340823809319805L;
@ApiModelProperty(value = "结算价格")
@NotEmpty(message = "结算价格不能为空")
private Double settlementPrice;
@ApiModelProperty(value = "最低购买金额")
@NotEmpty(message = "最低购买金额不能为空")
private Double purchasePrice;
@ApiModelProperty(value = "货品id")
@NotEmpty(message = "货品id不能为空")
private String skuId;
@ApiModelProperty(value = "活动库存")
@NotEmpty(message = "活动库存不能为空")
private Integer stock;
@ApiModelProperty(value = "每人最低砍价金额")
@NotEmpty(message = "每人最低砍价金额不能为空")
private Double lowestPrice;
@NotEmpty(message = "每人最高砍价金额不能为空")
@ApiModelProperty(value = "每人最高砍价金额")
private Double highestPrice;
@Min(message = "活动开始时间不能为空", value = 0)
@ApiModelProperty(value = "活动开始时间", required = true)
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date startTime;
@Min(message = "活动结束时间不能为空", value = 0)
@ApiModelProperty(value = "活动结束时间", required = true)
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
}

View File

@ -16,13 +16,14 @@ public enum PromotionTypeEnum {
COUPON("优惠券"),
FULL_DISCOUNT("满减"),
POINTS_GOODS("积分商品"),
KAN_JIA("砍价"),
COUPON_ACTIVITY("优惠券活动")
;
/**
* 拼团秒杀拥有独立库存如果其他促销也有独立库存涉及库存扣减的请添加在下方
*/
static PromotionTypeEnum[] haveStockPromotion = new PromotionTypeEnum[]{PINTUAN, SECKILL};
static PromotionTypeEnum[] haveStockPromotion = new PromotionTypeEnum[]{PINTUAN, SECKILL, KAN_JIA};
private final String description;

View File

@ -0,0 +1,61 @@
package cn.lili.modules.promotion.entity.vos;
import cn.hutool.core.text.CharSequenceUtil;
import cn.lili.modules.promotion.entity.enums.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 砍价活动商品查询通用类
*
* @author qiuqiu
* @date 2020/8/21
**/
@Data
public class KanJiaActivityGoodsParams implements Serializable {
private static final long serialVersionUID = 1344104067705714289L;
@ApiModelProperty(value = "活动名称")
private String goodsName;
@ApiModelProperty(value = "活动开始时间", required = true)
private Long startTime;
@ApiModelProperty(value = "活动结束时间", required = true)
private Long endTime;
/**
* @see PromotionStatusEnum
*/
@ApiModelProperty(value = "活动状态")
private String promotionStatus;
public <T> QueryWrapper<T> wrapper() {
QueryWrapper<T> queryWrapper = new QueryWrapper<>();
if (CharSequenceUtil.isNotEmpty(goodsName)) {
queryWrapper.like("goods_name", goodsName);
}
if (promotionStatus != null) {
queryWrapper.eq("promotion_status", promotionStatus);
}
if (startTime != null) {
queryWrapper.ge("start_time", new Date(startTime));
}
if (endTime != null) {
queryWrapper.le("end_time", new Date(endTime));
}
queryWrapper.eq("delete_flag", false);
return queryWrapper;
}
}

View File

@ -0,0 +1,15 @@
package cn.lili.modules.promotion.mapper;
import cn.lili.modules.promotion.entity.dos.KanJiaActivityGoods;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
*
* 砍价活动商品数据处理层
*
* @author qiuqiu
* @date 2021/7/1
*/
public interface KanJiaActivityGoodsMapper extends BaseMapper<KanJiaActivityGoods> {
}

View File

@ -0,0 +1,41 @@
package cn.lili.modules.promotion.service;
import cn.lili.common.vo.PageVO;
import cn.lili.modules.promotion.entity.dos.KanJiaActivityGoods;
import cn.lili.modules.promotion.entity.dto.KanJiaActivityGoodsDTO;
import cn.lili.modules.promotion.entity.vos.KanJiaActivityGoodsParams;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* 砍价业务层
*
* @author qiuqiu
* @date 2021/7/1 9:45 上午
*/
public interface KanJiaActivityGoodsService extends IService<KanJiaActivityGoods> {
/**
* 添加砍价活动商品
*
* @param kanJiaActivityGoodsDTOS 砍价商品
* @return 是否添加成功
*/
boolean add(List<KanJiaActivityGoodsDTO> kanJiaActivityGoodsDTOS);
/**
* 查询砍价活动商品分页信息
*
* @param kanJiaActivityGoodsParams 砍价活动商品
* @param pageVO 分页信息
* @return 砍价商品
*/
IPage<KanJiaActivityGoods> getForPage(KanJiaActivityGoodsParams kanJiaActivityGoodsParams, PageVO pageVO);
}

View File

@ -0,0 +1,146 @@
package cn.lili.modules.promotion.serviceimpl;
import cn.lili.common.enums.ResultCode;
import cn.lili.common.exception.ServiceException;
import cn.lili.common.trigger.enums.DelayTypeEnums;
import cn.lili.common.trigger.interfaces.TimeTrigger;
import cn.lili.common.trigger.message.PromotionMessage;
import cn.lili.common.trigger.model.TimeExecuteConstant;
import cn.lili.common.trigger.model.TimeTriggerMsg;
import cn.lili.common.trigger.util.DelayQueueTools;
import cn.lili.common.utils.PageUtil;
import cn.lili.common.vo.PageVO;
import cn.lili.config.rocketmq.RocketmqCustomProperties;
import cn.lili.modules.goods.entity.dos.GoodsSku;
import cn.lili.modules.goods.entity.enums.GoodsStatusEnum;
import cn.lili.modules.goods.service.GoodsSkuService;
import cn.lili.modules.promotion.entity.dos.KanJiaActivityGoods;
import cn.lili.modules.promotion.entity.dto.KanJiaActivityGoodsDTO;
import cn.lili.modules.promotion.entity.enums.PromotionStatusEnum;
import cn.lili.modules.promotion.entity.enums.PromotionTypeEnum;
import cn.lili.modules.promotion.entity.vos.KanJiaActivityGoodsParams;
import cn.lili.modules.promotion.entity.vos.PointsGoodsVO;
import cn.lili.modules.promotion.mapper.KanJiaActivityGoodsMapper;
import cn.lili.modules.promotion.service.KanJiaActivityGoodsService;
import cn.lili.modules.promotion.tools.PromotionTools;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
/**
* 砍价业务层实现
*
* @author qiuqiu
* @date 2021/7/1
*/
@Service
@Transactional(rollbackFor = Exception.class)
public class KanJiaActivityGoodsServiceImpl extends ServiceImpl<KanJiaActivityGoodsMapper, KanJiaActivityGoods> implements KanJiaActivityGoodsService {
//规格商品
@Autowired
private GoodsSkuService goodsSkuService;
//Rocketmq
@Autowired
private RocketmqCustomProperties rocketmqCustomProperties;
//延时任务
@Autowired
private TimeTrigger timeTrigger;
@Override
public boolean add(List<KanJiaActivityGoodsDTO> kanJiaActivityGoodsDTOS) {
List<KanJiaActivityGoods> kanJiaActivityGoodsList = new ArrayList<>();
for (KanJiaActivityGoodsDTO kanJiaActivityGoodsDTO : kanJiaActivityGoodsDTOS) {
//根据skuId查询商品信息
GoodsSku goodsSku = this.checkSkuExist(kanJiaActivityGoodsDTO.getSkuId());
//校验商品是否存在
if (goodsSku == null) {
throw new ServiceException(ResultCode.PROMOTION_GOODS_NOT_EXIT);
}
//校验商品状态
if (goodsSku.getMarketEnable().equals(GoodsStatusEnum.DOWN.name())) {
throw new ServiceException(ResultCode.GOODS_NOT_EXIST);
}
//校验活动库存是否超出此sku的库存
if (goodsSku.getQuantity() < kanJiaActivityGoodsDTO.getStock()) {
throw new ServiceException(ResultCode.POINT_GOODS_ACTIVE_STOCK_ERROR);
}
//校验最低购买金额不能高于商品金额
if (goodsSku.getPrice() < kanJiaActivityGoodsDTO.getPurchasePrice()) {
throw new ServiceException(ResultCode.KANJIIA_GOODS_ACTIVE_PRICE_ERROR);
}
//检测同一时间段是否存在相同的商品
PromotionTools.checkPromotionTime(kanJiaActivityGoodsDTO.getStartTime().getTime(), kanJiaActivityGoodsDTO.getEndTime().getTime());
//赋值保存
KanJiaActivityGoods kanJiaActivityGoods = new KanJiaActivityGoods();
kanJiaActivityGoods.setSkuId(kanJiaActivityGoodsDTO.getSkuId());
kanJiaActivityGoods.setThumbnail(goodsSku.getThumbnail());
kanJiaActivityGoods.setPurchasePrice(kanJiaActivityGoodsDTO.getPurchasePrice());
kanJiaActivityGoods.setSettlementPrice(kanJiaActivityGoodsDTO.getSettlementPrice());
kanJiaActivityGoods.setGoodsName(goodsSku.getGoodsName());
kanJiaActivityGoods.setStock(kanJiaActivityGoodsDTO.getStock());
kanJiaActivityGoods.setHighestPrice(kanJiaActivityGoodsDTO.getHighestPrice());
kanJiaActivityGoods.setLowestPrice(kanJiaActivityGoodsDTO.getLowestPrice());
kanJiaActivityGoodsList.add(kanJiaActivityGoods);
}
Boolean result = this.saveBatch(kanJiaActivityGoodsList);
if (result) {
//发送砍价延迟任务消息
for (KanJiaActivityGoods kanJiaActivityGoods : kanJiaActivityGoodsList) {
this.addKanJiaGoodsPromotionTask(kanJiaActivityGoods);
}
}
return result;
}
/**
* 添加砍价商品mq任务
*
* @param kanJiaActivityGoods 砍价商品信息
*/
private void addKanJiaGoodsPromotionTask(KanJiaActivityGoods kanJiaActivityGoods) {
PromotionMessage promotionMessage = new PromotionMessage(kanJiaActivityGoods.getId(), PromotionTypeEnum.KAN_JIA.name(),
PromotionStatusEnum.START.name(),
kanJiaActivityGoods.getStartTime(), kanJiaActivityGoods.getEndTime());
TimeTriggerMsg timeTriggerMsg = new TimeTriggerMsg(TimeExecuteConstant.PROMOTION_EXECUTOR,
promotionMessage.getStartTime().getTime(),
promotionMessage,
DelayQueueTools.wrapperUniqueKey(DelayTypeEnums.PROMOTION, (promotionMessage.getPromotionType() + promotionMessage.getPromotionId())),
rocketmqCustomProperties.getPromotionTopic());
//发送促销活动开始的延时任务
this.timeTrigger.addDelay(timeTriggerMsg);
}
@Override
public IPage<KanJiaActivityGoods> getForPage(KanJiaActivityGoodsParams kanJiaActivityGoodsParams, PageVO pageVO) {
QueryWrapper<KanJiaActivityGoods> queryWrapper = kanJiaActivityGoodsParams.wrapper();
return page(PageUtil.initPage(pageVO), queryWrapper);
}
/**
* 检查商品Sku是否存
*
* @param skuId skuId
* @return 商品sku
*/
private GoodsSku checkSkuExist(String skuId) {
GoodsSku goodsSku = this.goodsSkuService.getGoodsSkuByIdFromCache(skuId);
if (goodsSku == null) {
log.error("商品ID为" + skuId + "的商品不存在!");
throw new ServiceException();
}
return goodsSku;
}
}

View File

@ -71,6 +71,8 @@ public class PromotionServiceImpl implements PromotionService {
//Mongo
@Autowired
private MongoTemplate mongoTemplate;
@Autowired
private KanJiaActivityGoodsService kanJiaActivityGoodsService;
@Override
@ -100,6 +102,10 @@ public class PromotionServiceImpl implements PromotionService {
case POINTS_GOODS:
result = this.updatePointsGoods(promotionMessage, esPromotionKey, promotionTypeEnum);
break;
//砍价商品商品
case KAN_JIA:
result = this.updateKanJiaGoods(promotionMessage, promotionTypeEnum);
break;
//优惠券活动
case COUPON_ACTIVITY:
result = this.updateCouponActivity(promotionMessage, promotionTypeEnum);
@ -234,8 +240,9 @@ public class PromotionServiceImpl implements PromotionService {
/**
* 修改满额活动状态
* @param promotionMessage 信息队列传输促销信息实体
* @param esPromotionKey es Key
*
* @param promotionMessage 信息队列传输促销信息实体
* @param esPromotionKey es Key
* @param promotionTypeEnum 促销分类枚举
* @return 修改结果
*/
@ -271,8 +278,9 @@ public class PromotionServiceImpl implements PromotionService {
/**
* 修改优惠券状态
* @param promotionMessage 信息队列传输促销信息实体
* @param esPromotionKey es Key
*
* @param promotionMessage 信息队列传输促销信息实体
* @param esPromotionKey es Key
* @param promotionTypeEnum 促销分类枚举
* @return 修改结果
*/
@ -288,7 +296,7 @@ public class PromotionServiceImpl implements PromotionService {
couponVO.setPromotionStatus(promotionMessage.getPromotionStatus());
result = this.couponService.update(promotionMessage.updateWrapper());
//优惠券活动结束会员已领取未使用的优惠券状态修改为已过期
if(couponVO.getPromotionStatus().equals(PromotionStatusEnum.END)){
if (couponVO.getPromotionStatus().equals(PromotionStatusEnum.END)) {
LambdaUpdateWrapper<MemberCoupon> updateWrapper = new LambdaUpdateWrapper<MemberCoupon>()
.eq(MemberCoupon::getCouponId, couponVO.getId())
.eq(MemberCoupon::getMemberCouponStatus, MemberCouponStatusEnum.NEW.name())
@ -312,12 +320,13 @@ public class PromotionServiceImpl implements PromotionService {
/**
* 修改拼团状态
* @param promotionMessage 信息队列传输促销信息实体
* @param esPromotionKey es Key
*
* @param promotionMessage 信息队列传输促销信息实体
* @param esPromotionKey es Key
* @param promotionTypeEnum 促销分类枚举
* @return 修改结果
*/
private boolean updatePintuan(PromotionMessage promotionMessage, String esPromotionKey, PromotionTypeEnum promotionTypeEnum){
private boolean updatePintuan(PromotionMessage promotionMessage, String esPromotionKey, PromotionTypeEnum promotionTypeEnum) {
boolean result;
PintuanVO pintuanVO = this.mongoTemplate.findById(promotionMessage.getPromotionId(), PintuanVO.class);
if (pintuanVO == null) {
@ -343,12 +352,13 @@ public class PromotionServiceImpl implements PromotionService {
/**
* 修改秒杀状态
* @param promotionMessage 信息队列传输促销信息实体
* @param esPromotionKey es Key
*
* @param promotionMessage 信息队列传输促销信息实体
* @param esPromotionKey es Key
* @param promotionTypeEnum 促销分类枚举
* @return 修改结果
*/
private boolean updateSeckill(PromotionMessage promotionMessage, String esPromotionKey, PromotionTypeEnum promotionTypeEnum){
private boolean updateSeckill(PromotionMessage promotionMessage, String esPromotionKey, PromotionTypeEnum promotionTypeEnum) {
boolean result;
SeckillVO seckill = this.mongoTemplate.findById(promotionMessage.getPromotionId(), SeckillVO.class);
if (seckill == null) {
@ -391,12 +401,13 @@ public class PromotionServiceImpl implements PromotionService {
/**
* 修改积分商品状态
* @param promotionMessage 信息队列传输促销信息实体
* @param esPromotionKey es Key
*
* @param promotionMessage 信息队列传输促销信息实体
* @param esPromotionKey es Key
* @param promotionTypeEnum 促销分类枚举
* @return 修改结果
*/
private boolean updatePointsGoods(PromotionMessage promotionMessage, String esPromotionKey, PromotionTypeEnum promotionTypeEnum){
private boolean updatePointsGoods(PromotionMessage promotionMessage, String esPromotionKey, PromotionTypeEnum promotionTypeEnum) {
boolean result;
PointsGoodsVO pointsGoodsVO = this.mongoTemplate.findById(promotionMessage.getPromotionId(), PointsGoodsVO.class);
if (pointsGoodsVO == null) {
@ -412,29 +423,49 @@ public class PromotionServiceImpl implements PromotionService {
}
/**
* 修改优惠券活动状态
* @param promotionMessage 信息队列传输促销信息实体
* 修改砍价商品状态
*
* @param promotionMessage 信息队列传输促销信息实体
* @param promotionTypeEnum 促销分类枚举
* @return 修改结果
*/
private boolean updateCouponActivity(PromotionMessage promotionMessage, PromotionTypeEnum promotionTypeEnum){
private boolean updateKanJiaGoods(PromotionMessage promotionMessage, PromotionTypeEnum promotionTypeEnum) {
boolean result;
KanJiaActivityGoods kanJiaActivityGoods = JSONUtil.toBean(JSONUtil.toJsonStr(promotionMessage), KanJiaActivityGoods.class);
if (kanJiaActivityGoods == null) {
this.throwPromotionException(promotionTypeEnum, promotionMessage.getPromotionId(), promotionMessage.getPromotionStatus());
return false;
}
kanJiaActivityGoods.setPromotionStatus(promotionMessage.getPromotionStatus());
result = this.kanJiaActivityGoodsService.updateById(kanJiaActivityGoods);
return result;
}
/**
* 修改优惠券活动状态
*
* @param promotionMessage 信息队列传输促销信息实体
* @param promotionTypeEnum 促销分类枚举
* @return 修改结果
*/
private boolean updateCouponActivity(PromotionMessage promotionMessage, PromotionTypeEnum promotionTypeEnum) {
//如果是精准发券进行发送优惠券
CouponActivity couponActivity=couponActivityService.getById(promotionMessage.getPromotionId());
if(couponActivity.getCouponActivityType().equals(CouponActivityTypeEnum.SPECIFY.name())){
CouponActivity couponActivity = couponActivityService.getById(promotionMessage.getPromotionId());
if (couponActivity.getCouponActivityType().equals(CouponActivityTypeEnum.SPECIFY.name())) {
couponActivityService.specify(couponActivity.getId());
}
//修改活动状态
return couponActivityService.update(new LambdaUpdateWrapper<CouponActivity>()
.eq(CouponActivity::getId,promotionMessage.getPromotionId())
.set(CouponActivity::getPromotionStatus,promotionMessage.getPromotionStatus()));
.eq(CouponActivity::getId, promotionMessage.getPromotionId())
.set(CouponActivity::getPromotionStatus, promotionMessage.getPromotionStatus()));
}
/**
* 更新促销商品信息
*
* @param promotionId 促销活动ID
* @param promotionId 促销活动ID
* @param promotionStatus 活动状态
*/
private void updatePromotionGoods(String promotionId, String promotionStatus) {

View File

@ -0,0 +1,48 @@
package cn.lili.controller.promotion;
import cn.lili.common.enums.ResultUtil;
import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.promotion.entity.dos.KanJiaActivityGoods;
import cn.lili.modules.promotion.entity.dto.KanJiaActivityGoodsDTO;
import cn.lili.modules.promotion.entity.vos.KanJiaActivityGoodsParams;
import cn.lili.modules.promotion.service.KanJiaActivityGoodsService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 管理端,促销接口
*
* @author qiuqiu
* @date 2021/7/2
**/
@RestController
@Api(tags = "管理端,砍价促销接口")
@RequestMapping("/manager/promotion/kan-jia-goods")
public class KanJiaActivityGoodsManagerController {
@Autowired
private KanJiaActivityGoodsService kanJiaActivityGoodsService;
@PostMapping
@ApiOperation(value = "添加砍价活动")
public ResultMessage<Object> add(@RequestBody List<KanJiaActivityGoodsDTO> kanJiaActivityGoodsDTOS) {
kanJiaActivityGoodsService.add(kanJiaActivityGoodsDTOS);
return ResultUtil.success();
}
@ApiOperation(value = "获取砍价活动分页")
@GetMapping
public ResultMessage<IPage<KanJiaActivityGoods>> getKanjiaActivityPage(KanJiaActivityGoodsParams KanJiaActivityParams, PageVO page) {
return ResultUtil.data(kanJiaActivityGoodsService.getForPage(KanJiaActivityParams, page));
}
}