优惠券问题粗粝
This commit is contained in:
parent
30d34d69f1
commit
c787b4762b
@ -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;
|
||||||
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
@ -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 = "优惠券名称")
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
//开启优惠券活动
|
|
||||||
|
|
||||||
//查看优惠券活动
|
|
||||||
|
|
||||||
//查看优惠券活动
|
|
||||||
}
|
}
|
||||||
|
@ -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");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -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);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user