优惠券问题粗粝

This commit is contained in:
Chopper 2021-06-18 16:20:00 +08:00
parent 30d34d69f1
commit c787b4762b
7 changed files with 63 additions and 27 deletions

View File

@ -1,6 +1,7 @@
package cn.lili.modules.promotion.entity.dos; package cn.lili.modules.promotion.entity.dos;
import cn.lili.modules.promotion.entity.dto.BasePromotion; import cn.lili.modules.promotion.entity.dto.BasePromotion;
import cn.lili.modules.promotion.entity.enums.CouponActivitySendTypeEnum;
import cn.lili.modules.promotion.entity.enums.CouponActivityTypeEnum; import cn.lili.modules.promotion.entity.enums.CouponActivityTypeEnum;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
@ -31,6 +32,9 @@ public class CouponActivity extends BasePromotion {
@ApiModelProperty(value = "优惠券活动类型", allowableValues = "REGISTERED:新人赠券,SPECIFY精确发券") @ApiModelProperty(value = "优惠券活动类型", allowableValues = "REGISTERED:新人赠券,SPECIFY精确发券")
private String couponActivityType; private String couponActivityType;
/**
* @see CouponActivitySendTypeEnum
*/
@NotNull(message = "请选择活动范围") @NotNull(message = "请选择活动范围")
@ApiModelProperty(value = "活动范围", allowableValues = "ALL:全部会员,DESIGNATED指定会员") @ApiModelProperty(value = "活动范围", allowableValues = "ALL:全部会员,DESIGNATED指定会员")
private String activityScope; private String activityScope;

View File

@ -0,0 +1,23 @@
package cn.lili.modules.promotion.entity.enums;
/**
* 优惠券活动发送类型枚举
*
* @author Bulbasaur
* @date: 2021/5/20 5:47 下午
*/
public enum CouponActivitySendTypeEnum {
ALL("全部会员"),
DESIGNATED("指定会员");
private final String description;
CouponActivitySendTypeEnum(String str) {
this.description = str;
}
public String description() {
return description;
}
}

View File

@ -2,6 +2,7 @@ package cn.lili.modules.promotion.entity.vos;
import cn.lili.modules.promotion.entity.dos.CouponActivityItem; import cn.lili.modules.promotion.entity.dos.CouponActivityItem;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/** /**
* 优惠券活动的优惠券VO * 优惠券活动的优惠券VO
@ -9,6 +10,7 @@ import io.swagger.annotations.ApiModelProperty;
* @author Bulbasaur * @author Bulbasaur
* @date: 2021/6/18 11:00 上午 * @date: 2021/6/18 11:00 上午
*/ */
@Data
public class CouponActivityItemVO extends CouponActivityItem { public class CouponActivityItemVO extends CouponActivityItem {
@ApiModelProperty(value = "优惠券名称") @ApiModelProperty(value = "优惠券名称")

View File

@ -2,7 +2,6 @@ package cn.lili.modules.promotion.entity.vos;
import cn.lili.common.utils.BeanUtil; import cn.lili.common.utils.BeanUtil;
import cn.lili.modules.promotion.entity.dos.CouponActivity; import cn.lili.modules.promotion.entity.dos.CouponActivity;
import cn.lili.modules.promotion.entity.dos.CouponActivityItem;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@ -24,6 +23,6 @@ public class CouponActivityVO extends CouponActivity {
public CouponActivityVO(CouponActivity couponActivity, List<CouponActivityItemVO> couponActivityItemVOS) { public CouponActivityVO(CouponActivity couponActivity, List<CouponActivityItemVO> couponActivityItemVOS) {
BeanUtil.copyProperties(couponActivity, this); BeanUtil.copyProperties(couponActivity, this);
this.couponActivityItems = couponActivityItems; this.couponActivityItems = couponActivityItemVOS;
} }
} }

View File

@ -19,12 +19,14 @@ public interface CouponActivityService extends IService<CouponActivity> {
/** /**
* 创建优惠券活动--精准发券新人赠券 * 创建优惠券活动--精准发券新人赠券
*
* @param couponActivityDTO 优惠券活动DTO * @param couponActivityDTO 优惠券活动DTO
*/ */
CouponActivityDTO addCouponActivity(CouponActivityDTO couponActivityDTO); CouponActivityDTO addCouponActivity(CouponActivityDTO couponActivityDTO);
/** /**
* 修改优惠券活动--精准发券新人赠券 * 修改优惠券活动--精准发券新人赠券
*
* @param couponActivityDTO 优惠券活动DTO * @param couponActivityDTO 优惠券活动DTO
*/ */
CouponActivityDTO updateCouponActivity(CouponActivityDTO couponActivityDTO); CouponActivityDTO updateCouponActivity(CouponActivityDTO couponActivityDTO);
@ -49,18 +51,13 @@ public interface CouponActivityService extends IService<CouponActivity> {
* 注册赠券 * 注册赠券
* *
* @param couponActivityList 优惠券活动 * @param couponActivityList 优惠券活动
* @param member 会员 * @param member 会员
*/ */
void registered(List<CouponActivity> couponActivityList, Member member); void registered(List<CouponActivity> couponActivityList, Member member);
//删除优惠券活动 /**
* 关闭优惠券活动
//关闭优惠券活动 */
boolean updateCouponActivityStatus(String id, PromotionStatusEnum promotionStatus); boolean updateCouponActivityStatus(String id, PromotionStatusEnum promotionStatus);
//开启优惠券活动
//查看优惠券活动
//查看优惠券活动
} }

View File

@ -10,6 +10,7 @@ import cn.lili.modules.promotion.entity.dos.CouponActivity;
import cn.lili.modules.promotion.entity.dos.CouponActivityItem; import cn.lili.modules.promotion.entity.dos.CouponActivityItem;
import cn.lili.modules.promotion.entity.dos.MemberCoupon; import cn.lili.modules.promotion.entity.dos.MemberCoupon;
import cn.lili.modules.promotion.entity.dto.CouponActivityDTO; import cn.lili.modules.promotion.entity.dto.CouponActivityDTO;
import cn.lili.modules.promotion.entity.enums.CouponActivitySendTypeEnum;
import cn.lili.modules.promotion.entity.enums.MemberCouponStatusEnum; import cn.lili.modules.promotion.entity.enums.MemberCouponStatusEnum;
import cn.lili.modules.promotion.entity.enums.PromotionStatusEnum; import cn.lili.modules.promotion.entity.enums.PromotionStatusEnum;
import cn.lili.modules.promotion.entity.vos.CouponActivityVO; import cn.lili.modules.promotion.entity.vos.CouponActivityVO;
@ -51,8 +52,8 @@ public class CouponActivityServiceImpl extends ServiceImpl<CouponActivityMapper,
public CouponActivityDTO addCouponActivity(CouponActivityDTO couponActivityDTO) { public CouponActivityDTO addCouponActivity(CouponActivityDTO couponActivityDTO) {
//检测优惠券活动是否可以添加 //检测优惠券活动是否可以添加
this.checkParam(couponActivityDTO); this.checkParam(couponActivityDTO);
// 如果有会员则写入会员信息 //如果有会员则写入会员信息
if (couponActivityDTO.getMemberDTOS() == null || couponActivityDTO.getMemberDTOS().size() == 0) { if (couponActivityDTO.getMemberDTOS() != null && couponActivityDTO.getMemberDTOS().size() != 0) {
couponActivityDTO.setActivityScopeInfo(JSONUtil.toJsonStr(couponActivityDTO.getMemberDTOS())); couponActivityDTO.setActivityScopeInfo(JSONUtil.toJsonStr(couponActivityDTO.getMemberDTOS()));
} }
//添加优惠券活动 //添加优惠券活动
@ -175,7 +176,7 @@ public class CouponActivityServiceImpl extends ServiceImpl<CouponActivityMapper,
* *
* @param couponActivity 优惠券活动 * @param couponActivity 优惠券活动
*/ */
private void checkParam(CouponActivity couponActivity) { private void checkParam(CouponActivityDTO couponActivity) {
//检测活动时间超过当前时间不能进行操作 //检测活动时间超过当前时间不能进行操作
long nowTime = DateUtil.getDateline() * 1000; long nowTime = DateUtil.getDateline() * 1000;
@ -184,6 +185,24 @@ public class CouponActivityServiceImpl extends ServiceImpl<CouponActivityMapper,
} }
//活动时间需超过当前时间 //活动时间需超过当前时间
PromotionTools.checkPromotionTime(couponActivity.getStartTime().getTime(), couponActivity.getEndTime().getTime()); PromotionTools.checkPromotionTime(couponActivity.getStartTime().getTime(), couponActivity.getEndTime().getTime());
//指定会员判定
if (couponActivity.getActivityScope().equals(CouponActivitySendTypeEnum.DESIGNATED.name())) {
if (couponActivity.getMemberDTOS().size() == 0) {
throw new ServiceException("指定精准发券则必须指定会员,会员不可以为空");
}
}
//优惠券数量判定
if (couponActivity.getCouponActivityItems().size() == 0) {
throw new ServiceException("优惠券活动必须指定优惠券,不能为空");
} else if (couponActivity.getCouponActivityItems().size() > 10) {
throw new ServiceException("优惠券活动最多指定10个优惠券");
} else {
for (CouponActivityItem item : couponActivity.getCouponActivityItems()) {
if (item.getNum() == null || item.getNum() <= 0) {
throw new ServiceException("赠券数量必须大于0");
}
}
}
} }
/** /**

View File

@ -54,21 +54,13 @@ public class CouponActivityManagerController {
return ResultUtil.data(couponActivityService.addCouponActivity(couponActivityDTO)); return ResultUtil.data(couponActivityService.addCouponActivity(couponActivityDTO));
} }
@ApiOperation(value = "修改优惠券活动") @ApiOperation(value = "关闭优惠券活动")
@PutMapping("/{id}")
public ResultMessage<CouponActivity> updateCouponActivity(@PathVariable String id, CouponActivityDTO couponActivityDTO) {
couponActivityDTO.setId(id);
return ResultUtil.data(couponActivityService.updateCouponActivity(couponActivityDTO));
}
@ApiOperation(value = "关闭、启动优惠券")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "优惠券活动ID", required = true, dataType = "String", paramType = "path"), @ApiImplicitParam(name = "id", value = "优惠券活动ID", required = true, dataType = "String", paramType = "path")
@ApiImplicitParam(name = "promotionStatus", value = "活动状态", required = true, dataType = "String", paramType = "path")
}) })
@PutMapping("/updateStatus/{id}/{promotionStatus}") @PutMapping("/close/{id}")
public ResultMessage<CouponActivity> updateStatus(@PathVariable String id, @PathVariable String promotionStatus) { public ResultMessage<CouponActivity> updateStatus(@PathVariable String id) {
if (couponActivityService.updateCouponActivityStatus(id, PromotionStatusEnum.valueOf(promotionStatus))) { if (couponActivityService.updateCouponActivityStatus(id, PromotionStatusEnum.END)) {
return ResultUtil.success(ResultCode.SUCCESS); return ResultUtil.success(ResultCode.SUCCESS);
} }
throw new ServiceException(ResultCode.ERROR); throw new ServiceException(ResultCode.ERROR);