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

Commit 8416da87 authored by 张国柄's avatar 张国柄

opt|会员券编辑+校验;

parent 1b4c6f18
...@@ -4,9 +4,12 @@ import io.swagger.annotations.ApiModel; ...@@ -4,9 +4,12 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.Pattern;
@ApiModel(value = "CandyCouponRuleBuildParam", description = "添加券规则入参") @ApiModel(value = "CandyCouponRuleBuildParam", description = "添加券规则入参")
@Data @Data
public class CandyCouponRuleBuildParam { public class CandyCouponRuleBuildParam {
@Pattern(regexp = "\\b(100|90|91|92|80|81)\\b", message = "适用范围无效")
@ApiModelProperty(required = true, value = "适用范围[100-全场|90-演出|91-场次|92-票|80-商品|81-款式]", allowableValues = "100,90,91,92,80,81") @ApiModelProperty(required = true, value = "适用范围[100-全场|90-演出|91-场次|92-票|80-商品|81-款式]", allowableValues = "100,90,91,92,80,81")
private Integer useScope; private Integer useScope;
@ApiModelProperty(required = true, value = "适用名称", allowableValues = "适用名称") @ApiModelProperty(required = true, value = "适用名称", allowableValues = "适用名称")
......
...@@ -4,15 +4,14 @@ import io.swagger.annotations.ApiModel; ...@@ -4,15 +4,14 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.*;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List; import java.util.List;
@ApiModel(value = "CandyMemberCouponBuildParam", description = "新建券入参") @ApiModel(value = "CandyMemberCouponBuildParam", description = "新建券入参")
@Data @Data
public class CandyMemberCouponBuildParam { public class CandyMemberCouponBuildParam {
@ApiModelProperty(required = true, value = "会员类型ID[64]") @ApiModelProperty(required = true, value = "会员类型ID[64]", example = "1")
private String memberId; private String memberId;
@ApiModelProperty(required = true, value = "权益ID[64]") @ApiModelProperty(required = true, value = "权益ID[64]")
private String mrightsId; private String mrightsId;
...@@ -32,9 +31,11 @@ public class CandyMemberCouponBuildParam { ...@@ -32,9 +31,11 @@ public class CandyMemberCouponBuildParam {
// private String notice; // private String notice;
//private Integer exclusive; //private Integer exclusive;
@NotNull(message = "券类别不能为空") @NotNull(message = "券类别不能为空")
@ApiModelProperty(required = true, value = "业务类别[0-全场|1-演出|2-商品|3-优先购]", allowableValues = "0,1,2,3,4") @Pattern(regexp = "\\b(0|1|2|3)\\b", message = "业务类别无效")
@ApiModelProperty(required = true, value = "业务类别[0-全场|1-演出|2-商品|3-优先购]", allowableValues = "0,1,2,3")
private Integer busiType; private Integer busiType;
@NotNull(message = "券类型不能为空") @NotNull(message = "券类型不能为空")
@Pattern(regexp = "\\b(1|2)\\b", message = "券类型无效")
// @ApiModelProperty(required = true, value = "券类型[1-代金券|2-满减券|3-兑换券|4-折扣券]", allowableValues = "1,2,3,4") // @ApiModelProperty(required = true, value = "券类型[1-代金券|2-满减券|3-兑换券|4-折扣券]", allowableValues = "1,2,3,4")
@ApiModelProperty(required = true, value = "券类型[1-代金券|2-满减券]", allowableValues = "1,2") @ApiModelProperty(required = true, value = "券类型[1-代金券|2-满减券]", allowableValues = "1,2")
private Integer couType; private Integer couType;
...@@ -50,6 +51,7 @@ public class CandyMemberCouponBuildParam { ...@@ -50,6 +51,7 @@ public class CandyMemberCouponBuildParam {
@ApiModelProperty(required = false, value = "满减~减", example = "0.01") @ApiModelProperty(required = false, value = "满减~减", example = "0.01")
private BigDecimal valMinus; private BigDecimal valMinus;
@NotNull(message = "券叠加限制不能为空") @NotNull(message = "券叠加限制不能为空")
@Pattern(regexp = "\\b(0|1)\\b", message = "叠加限制无效")
@ApiModelProperty(required = false, value = "叠加限制[0-限制|1-叠加]", allowableValues = "0,1") @ApiModelProperty(required = false, value = "叠加限制[0-限制|1-叠加]", allowableValues = "0,1")
private Integer overlay; private Integer overlay;
//private Integer overlayLevel; //private Integer overlayLevel;
...@@ -68,7 +70,7 @@ public class CandyMemberCouponBuildParam { ...@@ -68,7 +70,7 @@ public class CandyMemberCouponBuildParam {
//private String comment; //private String comment;
@ApiModelProperty(required = true, value = "适用规则列表", dataType = "List", example = "[{\"useScope\": 100,\"busiName\": \"适用名称1\",\"busiId\": \"IDIDIDIDIDIDID1\"},{\"useScope\": 100,\"busiName\": \"适用名称2\",\"busiId\": \"IDIDIDIDIDIDID2\"}]") @ApiModelProperty(required = true, value = "适用范围列表", dataType = "List", example = "[{\"useScope\": 100,\"busiName\": \"适用名称1\",\"busiId\": \"IDIDIDIDIDIDID1\"},{\"useScope\": 100,\"busiName\": \"适用名称2\",\"busiId\": \"IDIDIDIDIDIDID2\"}]")
private List<CandyCouponRuleBuildParam> couponRuleList; private List<CandyCouponRuleBuildParam> couponRuleList;
...@@ -76,6 +78,8 @@ public class CandyMemberCouponBuildParam { ...@@ -76,6 +78,8 @@ public class CandyMemberCouponBuildParam {
//private String couponId; //private String couponId;
//private Integer state; //private Integer state;
@NotNull(message = "券发放量不能为空") @NotNull(message = "券发放量不能为空")
@Max(value = 10, message = "发放量不满足1~10范围")
@Min(value = 1, message = "发放量不满足1~10范围")
@ApiModelProperty(required = true, value = "发放量", example = "1") @ApiModelProperty(required = true, value = "发放量", example = "1")
private Integer eventAmt; private Integer eventAmt;
// @NotNull(message = "券发放类型不能为空") // @NotNull(message = "券发放类型不能为空")
......
package com.liquidnet.service.candy.dto.admin; package com.liquidnet.service.candy.dto.admin;
import com.liquidnet.commons.lang.constant.LnsRegex;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.*;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List; import java.util.List;
...@@ -25,12 +25,15 @@ public class CandyMgtCouponBuildParam { ...@@ -25,12 +25,15 @@ public class CandyMgtCouponBuildParam {
private String notice; private String notice;
//private Integer exclusive; //private Integer exclusive;
@NotNull(message = "券类别不能为空") @NotNull(message = "券类别不能为空")
@Pattern(regexp = "\\b(0|1|2|3)\\b", message = "业务类别无效")
@ApiModelProperty(required = true, value = "业务类别[0-全场|1-演出|2-商品|3-优先购]", allowableValues = "0,1,2,3,4") @ApiModelProperty(required = true, value = "业务类别[0-全场|1-演出|2-商品|3-优先购]", allowableValues = "0,1,2,3,4")
private Integer busiType; private Integer busiType;
@NotNull(message = "券类型不能为空") @NotNull(message = "券类型不能为空")
@Pattern(regexp = "\\b(1|2|3|4)\\b", message = "券类型无效")
@ApiModelProperty(required = true, value = "券类型[1-代金券|2-满减券|3-兑换券|4-折扣券]", allowableValues = "1,2,3,4") @ApiModelProperty(required = true, value = "券类型[1-代金券|2-满减券|3-兑换券|4-折扣券]", allowableValues = "1,2,3,4")
private Integer couType; private Integer couType;
@NotNull(message = "券领取方式不能为空") @NotNull(message = "券领取方式不能为空")
@Pattern(regexp = "\\b(0|1)\\b", message = "券类型无效")
@ApiModelProperty(required = true, value = "领取方式[0-用户输入兑换|1-发放至用户]", allowableValues = "0,1") @ApiModelProperty(required = true, value = "领取方式[0-用户输入兑换|1-发放至用户]", allowableValues = "0,1")
private Integer bindType; private Integer bindType;
@ApiModelProperty(required = false, value = "折扣[8折即0.8]", example = "0.8") @ApiModelProperty(required = false, value = "折扣[8折即0.8]", example = "0.8")
...@@ -42,6 +45,7 @@ public class CandyMgtCouponBuildParam { ...@@ -42,6 +45,7 @@ public class CandyMgtCouponBuildParam {
@ApiModelProperty(required = false, value = "满减~减", example = "0.01") @ApiModelProperty(required = false, value = "满减~减", example = "0.01")
private BigDecimal valMinus; private BigDecimal valMinus;
@NotNull(message = "券叠加限制不能为空") @NotNull(message = "券叠加限制不能为空")
@Pattern(regexp = "\\b(0|1)\\b", message = "叠加限制无效")
@ApiModelProperty(required = true, value = "叠加限制[0-限制|1-叠加]", allowableValues = "0,1") @ApiModelProperty(required = true, value = "叠加限制[0-限制|1-叠加]", allowableValues = "0,1")
private Integer overlay; private Integer overlay;
//private Integer overlayLevel; //private Integer overlayLevel;
...@@ -60,7 +64,7 @@ public class CandyMgtCouponBuildParam { ...@@ -60,7 +64,7 @@ public class CandyMgtCouponBuildParam {
//private String comment; //private String comment;
@ApiModelProperty(required = true, value = "适用规则列表", dataType = "List", example = "[{\"useScope\": 100,\"busiName\": \"适用名称1\",\"busiId\": \"IDIDIDIDIDIDID1\"},{\"useScope\": 100,\"busiName\": \"适用名称2\",\"busiId\": \"IDIDIDIDIDIDID2\"}]") @ApiModelProperty(required = true, value = "适用范围列表", dataType = "List", example = "[{\"useScope\": 100,\"busiName\": \"适用名称1\",\"busiId\": \"IDIDIDIDIDIDID1\"},{\"useScope\": 100,\"busiName\": \"适用名称2\",\"busiId\": \"IDIDIDIDIDIDID2\"}]")
private List<CandyCouponRuleBuildParam> couponRuleList; private List<CandyCouponRuleBuildParam> couponRuleList;
...@@ -68,14 +72,17 @@ public class CandyMgtCouponBuildParam { ...@@ -68,14 +72,17 @@ public class CandyMgtCouponBuildParam {
//private String couponId; //private String couponId;
//private Integer state; //private Integer state;
@NotNull(message = "券发放量不能为空") @NotNull(message = "券发放量不能为空")
@Min(value = 1, message = "发放量不能小于1")
@ApiModelProperty(required = true, value = "发放量", example = "1") @ApiModelProperty(required = true, value = "发放量", example = "1")
private Integer eventAmt; private Integer eventAmt;
@NotNull(message = "券发放类型不能为空") @NotNull(message = "券发放类型不能为空")
@Pattern(regexp = "\\b(1|2|10)\\b", message = "叠加限制无效")
@ApiModelProperty(required = true, value = "发放类型[1-会员|2-手机号|10-全体用户]", allowableValues = "1,2,10") @ApiModelProperty(required = true, value = "发放类型[1-会员|2-手机号|10-全体用户]", allowableValues = "1,2,10")
private Integer eventType; private Integer eventType;
@ApiModelProperty(required = false, value = "`发放类型`为2-手机号时发放手机号以,分隔", example = "17701223310,17701223310") @ApiModelProperty(required = false, value = "`发放类型`为2-手机号时发放手机号以,分隔", example = "18510957291,17701223310")
private String eventLimit; private String eventLimit;
@NotNull(message = "券发放时间不能为空") @NotNull(message = "券发放时间不能为空")
@Pattern(regexp = LnsRegex.Valid.DATETIME_FULL, message = "发放时间格式有误")
@ApiModelProperty(required = true, value = "发放时间[yyyy-MM-dd HH:mm:ss](立即-当前时间|预约-点选时间)", example = "2021-08-26 00:00:00") @ApiModelProperty(required = true, value = "发放时间[yyyy-MM-dd HH:mm:ss](立即-当前时间|预约-点选时间)", example = "2021-08-26 00:00:00")
private String eventAt; private String eventAt;
//private String operator; //private String operator;
......
...@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; ...@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.liquidnet.client.admin.common.core.controller.BaseController; import com.liquidnet.client.admin.common.core.controller.BaseController;
import com.liquidnet.client.admin.common.core.domain.AjaxResult; import com.liquidnet.client.admin.common.core.domain.AjaxResult;
import com.liquidnet.client.admin.common.core.page.TableDataInfo; import com.liquidnet.client.admin.common.core.page.TableDataInfo;
import com.liquidnet.client.admin.common.utils.ShiroUtils;
import com.liquidnet.client.admin.common.utils.poi.ExcelUtil; import com.liquidnet.client.admin.common.utils.poi.ExcelUtil;
import com.liquidnet.client.admin.zhengzai.adam.dto.AdamMemberCodeExcelDto; import com.liquidnet.client.admin.zhengzai.adam.dto.AdamMemberCodeExcelDto;
import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberAdminService; import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberAdminService;
...@@ -14,7 +13,6 @@ import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberPriceAdminSer ...@@ -14,7 +13,6 @@ import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberPriceAdminSer
import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberRightsAdminService; import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberRightsAdminService;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponAdminService; import com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponAdminService;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyMgtCouponAdminService; import com.liquidnet.client.admin.zhengzai.candy.service.ICandyMgtCouponAdminService;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.adam.dto.admin.*; import com.liquidnet.service.adam.dto.admin.*;
import com.liquidnet.service.adam.entity.AdamMember; import com.liquidnet.service.adam.entity.AdamMember;
import com.liquidnet.service.adam.entity.AdamMemberCode; import com.liquidnet.service.adam.entity.AdamMemberCode;
...@@ -23,9 +21,6 @@ import com.liquidnet.service.adam.entity.AdamMemberRights; ...@@ -23,9 +21,6 @@ import com.liquidnet.service.adam.entity.AdamMemberRights;
import com.liquidnet.service.candy.dto.admin.CandyCouponRuleBuildParam; import com.liquidnet.service.candy.dto.admin.CandyCouponRuleBuildParam;
import com.liquidnet.service.candy.dto.admin.CandyMemberCouponBuildParam; import com.liquidnet.service.candy.dto.admin.CandyMemberCouponBuildParam;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponMemberDto; import com.liquidnet.service.candy.dto.admin.CandyMgtCouponMemberDto;
import com.liquidnet.service.candy.entity.CandyCoupon;
import com.liquidnet.service.candy.entity.CandyCouponRule;
import com.liquidnet.service.candy.entity.CandyMgtCoupon;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -38,7 +33,6 @@ import org.springframework.validation.annotation.Validated; ...@@ -38,7 +33,6 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -151,133 +145,46 @@ public class AdamMemberAdminController extends BaseController { ...@@ -151,133 +145,46 @@ public class AdamMemberAdminController extends BaseController {
@PostMapping("coupon_edit") @PostMapping("coupon_edit")
@ResponseBody @ResponseBody
public AjaxResult detailCouponEdit(@RequestBody CandyMemberCouponBuildParam parameter) { public AjaxResult detailCouponEdit(@RequestBody CandyMemberCouponBuildParam parameter) {
BigDecimal valFace = null, valOver = null, valMinus = null; Integer busiType = parameter.getBusiType();// 业务类别[0-全场|1-演出|2-商品|3-优先购]
switch (parameter.getCouType()) {// TODO: 2021/8/20 校验 if (busiType > 0) {
case 1:// 代金券 if (CollectionUtils.isEmpty(parameter.getCouponRuleList())) {
valFace = parameter.getValFace(); return AjaxResult.warn("适用范围无效");
}
} else {
parameter.setCouponRuleList(null);
}
parameter.setOverlay(busiType < 3 ? 0 : parameter.getOverlay());
switch (parameter.getCouType()) {// 券类型[1-代金券|2-满减券]
case 1:
BigDecimal valFace = parameter.getValFace();
if (null == valFace || valFace.compareTo(BigDecimal.ZERO) <= 0) {
return AjaxResult.warn("代金券金额无效");
}
parameter.setValOver(null);
parameter.setValMinus(null);
break; break;
case 2:// 满减券 case 2:
valOver = parameter.getValOver(); BigDecimal valOver = parameter.getValOver();
valMinus = parameter.getValMinus(); BigDecimal valMinus = parameter.getValMinus();
if (null == valOver || valOver.compareTo(BigDecimal.ZERO) <= 0
|| null == valMinus || valMinus.compareTo(BigDecimal.ZERO) <= 0) {
return AjaxResult.warn("满减金额无效");
}
parameter.setValFace(valMinus);
break; break;
default: default:
logger.warn("Invalid operation[buildParam.couType={}]", parameter.getCouType()); logger.warn("Invalid operation[buildParam.couType={}]", parameter.getCouType());
return this.error(AjaxResult.Type.WARN, "券类型无效"); return this.error(AjaxResult.Type.WARN, "券类型无效");
} }
String memberId = parameter.getMemberId(), couponId = parameter.getCouponId(), operator = ShiroUtils.getLoginName();
LocalDateTime nowTime = LocalDateTime.now();
boolean editRst = false;
if (StringUtils.isEmpty(couponId)) {// 新增券
LambdaQueryWrapper<AdamMemberPrice> memberPriceLambdaQueryWrapper = Wrappers.lambdaQuery(AdamMemberPrice.class)
.eq(AdamMemberPrice::getMemberId, memberId).eq(AdamMemberPrice::getState, 1);
AdamMemberPrice memberPrice = adamMemberPriceAdminService.getOne(memberPriceLambdaQueryWrapper);
CandyCoupon initCoupon = new CandyCoupon();
initCoupon.setCouponId(IDGenerator.nextMilliId());
initCoupon.setState(1);
initCoupon.setTitle(parameter.getTitle());
initCoupon.setLabel(parameter.getLabel());
initCoupon.setNotice("会员权益");
initCoupon.setExclusive(1);
initCoupon.setBusiType(parameter.getBusiType());
initCoupon.setCouType(parameter.getCouType());
initCoupon.setBindType(1);// 领取方式[0-用户输入兑换|1-发放至用户]
//initCoupon.setDiscount();
initCoupon.setValFace(valFace);
initCoupon.setValOver(valOver);
initCoupon.setValMinus(valMinus);
initCoupon.setOverlay(parameter.getOverlay());
initCoupon.setValidity(memberPrice.getDays());
//initCoupon.setRedeemValidity();
//initCoupon.setRedeemStart();
//initCoupon.setRedeemStop();
//initCoupon.setEffectAt();
//initCoupon.setExpireAt();
initCoupon.setOperator(operator);
initCoupon.setCreatedAt(nowTime);
List<CandyCouponRuleBuildParam> couponRuleList = parameter.getCouponRuleList();
List<CandyCouponRule> initCouponRuleList = new ArrayList<>();
if (!CollectionUtils.isEmpty(couponRuleList)) {
couponRuleList.forEach(r -> {
CandyCouponRule initCouponRule = new CandyCouponRule();
initCouponRule.setCruleId(IDGenerator.nextTimeId2());
initCouponRule.setCouponId(initCoupon.getCouponId());
initCouponRule.setUseScope(r.getUseScope());
initCouponRule.setBusiName(r.getBusiName());
initCouponRule.setBusiId(r.getBusiId());
initCouponRule.setState(1);
initCouponRuleList.add(initCouponRule);
});
}
CandyMgtCoupon initMgtCoupon = new CandyMgtCoupon();
initMgtCoupon.setMcouponId(parameter.getMrightsId());
initMgtCoupon.setCouponId(initCoupon.getCouponId());
initMgtCoupon.setState(10);// 发放状态[0-未发放|1-已发放|2-无效|9-发放中|10-会员礼包初始模版]
initMgtCoupon.setEventAmt(parameter.getEventAmt());
initMgtCoupon.setEventType(2);
//initMgtCoupon.setEventLimit();
//initMgtCoupon.setEventAt();
initMgtCoupon.setOperator(operator);
initMgtCoupon.setCreatedAt(nowTime);
editRst = candyMgtCouponAdminService.saveMgtCouponInfo(initCoupon, initMgtCoupon, initCouponRuleList); if (StringUtils.isEmpty(parameter.getCouponId())) {
} else {// 编辑券 // 新增券
LambdaQueryWrapper<CandyCoupon> candyCouponLambdaQueryWrapper = Wrappers.lambdaQuery(CandyCoupon.class) return this.toAjax(candyMgtCouponAdminService.saveMgtCouponForMemberRights(parameter));
.eq(CandyCoupon::getCouponId, couponId) } else {
.eq(CandyCoupon::getState, 1) // 编辑券
.eq(CandyCoupon::getExclusive, 1); return this.toAjax(candyMgtCouponAdminService.editMgtCouponForMemberRights(parameter));
if (candyCouponAdminService.count(candyCouponLambdaQueryWrapper) > 0) {
CandyCoupon updateCoupon = new CandyCoupon();
updateCoupon.setCouponId(couponId);
updateCoupon.setTitle(parameter.getTitle());
updateCoupon.setExclusive(1);
updateCoupon.setBusiType(parameter.getBusiType());
updateCoupon.setCouType(parameter.getCouType());
updateCoupon.setValFace(valFace);
updateCoupon.setValOver(valOver);
updateCoupon.setValMinus(valMinus);
updateCoupon.setOverlay(parameter.getOverlay());
updateCoupon.setOperator(operator);
updateCoupon.setUpdatedAt(nowTime);
List<CandyCouponRuleBuildParam> couponRuleList = parameter.getCouponRuleList();
List<CandyCouponRule> initCouponRuleList = new ArrayList<>();
if (!CollectionUtils.isEmpty(couponRuleList)) {
couponRuleList.forEach(r -> {
CandyCouponRule initCouponRule = new CandyCouponRule();
initCouponRule.setCruleId(IDGenerator.nextTimeId2());
initCouponRule.setCouponId(couponId);
initCouponRule.setUseScope(r.getUseScope());
initCouponRule.setBusiName(r.getBusiName());
initCouponRule.setBusiId(r.getBusiId());
initCouponRule.setState(1);
initCouponRuleList.add(initCouponRule);
});
}
CandyMgtCoupon updateMgtCoupon = new CandyMgtCoupon();
updateMgtCoupon.setMcouponId(parameter.getMrightsId());
updateMgtCoupon.setEventAmt(parameter.getEventAmt());
updateMgtCoupon.setOperator(operator);
updateMgtCoupon.setUpdatedAt(nowTime);
editRst = candyMgtCouponAdminService.updateMgtCouponInfo(updateCoupon, updateMgtCoupon, initCouponRuleList);
}
} }
return this.toAjax(editRst);
} }
@ApiOperation(value = "会员码:列表") @ApiOperation(value = "会员码:列表")
...@@ -296,7 +203,7 @@ public class AdamMemberAdminController extends BaseController { ...@@ -296,7 +203,7 @@ public class AdamMemberAdminController extends BaseController {
AdamMemberCode::getCode, AdamMemberCode::getCode,
AdamMemberCode::getState, AdamMemberCode::getState,
AdamMemberCode::getMemberId AdamMemberCode::getMemberId
); );
return adamMemberCodeAdminService.list(queryWrapper); return adamMemberCodeAdminService.list(queryWrapper);
} }
......
package com.liquidnet.client.admin.zhengzai.candy.service; package com.liquidnet.client.admin.zhengzai.candy.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.candy.dto.admin.CandyMemberCouponBuildParam;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponInfoDto; import com.liquidnet.service.candy.dto.admin.CandyMgtCouponInfoDto;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponListParam; import com.liquidnet.service.candy.dto.admin.CandyMgtCouponListParam;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponMemberDto; import com.liquidnet.service.candy.dto.admin.CandyMgtCouponMemberDto;
...@@ -12,6 +13,10 @@ import java.util.List; ...@@ -12,6 +13,10 @@ import java.util.List;
public interface ICandyMgtCouponAdminService extends IService<CandyMgtCoupon> { public interface ICandyMgtCouponAdminService extends IService<CandyMgtCoupon> {
boolean saveMgtCouponForMemberRights(CandyMemberCouponBuildParam parameter);
boolean editMgtCouponForMemberRights(CandyMemberCouponBuildParam parameter);
boolean saveMgtCouponInfo(CandyCoupon initCoupon, CandyMgtCoupon initMgtCoupon, List<CandyCouponRule> initCouponRuleList); boolean saveMgtCouponInfo(CandyCoupon initCoupon, CandyMgtCoupon initMgtCoupon, List<CandyCouponRule> initCouponRuleList);
boolean updateMgtCouponInfo(CandyCoupon updateCoupon, CandyMgtCoupon updateMgtCoupon, List<CandyCouponRule> initCouponRuleList); boolean updateMgtCouponInfo(CandyCoupon updateCoupon, CandyMgtCoupon updateMgtCoupon, List<CandyCouponRule> initCouponRuleList);
......
package com.liquidnet.client.admin.zhengzai.candy.service.impl; package com.liquidnet.client.admin.zhengzai.candy.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.client.admin.common.utils.ShiroUtils;
import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberPriceAdminService;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponAdminService;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponRuleAdminService; import com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponRuleAdminService;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyMgtCouponAdminService; import com.liquidnet.client.admin.zhengzai.candy.service.ICandyMgtCouponAdminService;
import com.liquidnet.common.cache.redis.util.RedisUtil; import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.common.exception.LiquidnetServiceException; import com.liquidnet.common.exception.LiquidnetServiceException;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.adam.constant.AdamRedisConst; import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.vo.AdamMemberRightsCouponRuleVo; import com.liquidnet.service.adam.dto.vo.AdamMemberRightsCouponRuleVo;
import com.liquidnet.service.adam.dto.vo.AdamMemberRightsCouponVo; import com.liquidnet.service.adam.dto.vo.AdamMemberRightsCouponVo;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponInfoDto; import com.liquidnet.service.adam.entity.AdamMemberPrice;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponListParam; import com.liquidnet.service.candy.dto.admin.*;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponMemberDto;
import com.liquidnet.service.candy.entity.CandyCoupon; import com.liquidnet.service.candy.entity.CandyCoupon;
import com.liquidnet.service.candy.entity.CandyCouponRule; import com.liquidnet.service.candy.entity.CandyCouponRule;
import com.liquidnet.service.candy.entity.CandyMgtCoupon; import com.liquidnet.service.candy.entity.CandyMgtCoupon;
...@@ -24,6 +28,7 @@ import org.springframework.stereotype.Service; ...@@ -24,6 +28,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -34,12 +39,139 @@ public class CandyMgtCouponAdminServiceImpl extends ServiceImpl<CandyMgtCouponMa ...@@ -34,12 +39,139 @@ public class CandyMgtCouponAdminServiceImpl extends ServiceImpl<CandyMgtCouponMa
private CandyMgtCouponMapper candyMgtCouponMapper; private CandyMgtCouponMapper candyMgtCouponMapper;
@Autowired @Autowired
private CandyCouponMapper candyCouponMapper; private CandyCouponMapper candyCouponMapper;
@Autowired
private ICandyCouponRuleAdminService candyCouponRuleAdminService;
@Autowired @Autowired
private RedisUtil redisUtil; private RedisUtil redisUtil;
@Autowired
private ICandyCouponAdminService candyCouponAdminService;
@Autowired
private ICandyCouponRuleAdminService candyCouponRuleAdminService;
@Autowired
private ICandyMgtCouponAdminService candyMgtCouponAdminService;
@Autowired
private IAdamMemberPriceAdminService adamMemberPriceAdminService;
@Override
public boolean saveMgtCouponForMemberRights(CandyMemberCouponBuildParam parameter) {
String memberId = parameter.getMemberId(), operator = ShiroUtils.getLoginName();
LocalDateTime nowTime = LocalDateTime.now();
LambdaQueryWrapper<AdamMemberPrice> memberPriceLambdaQueryWrapper = Wrappers.lambdaQuery(AdamMemberPrice.class)
.eq(AdamMemberPrice::getMemberId, memberId).eq(AdamMemberPrice::getState, 1);
AdamMemberPrice memberPrice = adamMemberPriceAdminService.getOne(memberPriceLambdaQueryWrapper);
CandyCoupon initCoupon = new CandyCoupon();
initCoupon.setCouponId(IDGenerator.nextMilliId());
initCoupon.setState(1);
initCoupon.setTitle(parameter.getTitle());
initCoupon.setLabel(parameter.getLabel());
initCoupon.setNotice("会员权益");
initCoupon.setExclusive(1);
initCoupon.setBusiType(parameter.getBusiType());
initCoupon.setCouType(parameter.getCouType());
initCoupon.setBindType(1);// 领取方式[0-用户输入兑换|1-发放至用户]
//initCoupon.setDiscount();
initCoupon.setValFace(parameter.getValFace());
initCoupon.setValOver(parameter.getValOver());
initCoupon.setValMinus(parameter.getValMinus());
initCoupon.setOverlay(parameter.getOverlay());
initCoupon.setValidity(memberPrice.getDays());
//initCoupon.setRedeemValidity();
//initCoupon.setRedeemStart();
//initCoupon.setRedeemStop();
//initCoupon.setEffectAt();
//initCoupon.setExpireAt();
initCoupon.setOperator(operator);
initCoupon.setCreatedAt(nowTime);
List<CandyCouponRuleBuildParam> couponRuleList = parameter.getCouponRuleList();
List<CandyCouponRule> initCouponRuleList = new ArrayList<>();
if (!CollectionUtils.isEmpty(couponRuleList)) {
couponRuleList.forEach(r -> {
CandyCouponRule initCouponRule = new CandyCouponRule();
initCouponRule.setCruleId(IDGenerator.nextTimeId2());
initCouponRule.setCouponId(initCoupon.getCouponId());
initCouponRule.setUseScope(r.getUseScope());
initCouponRule.setBusiName(r.getBusiName());
initCouponRule.setBusiId(r.getBusiId());
initCouponRule.setState(1);
initCouponRuleList.add(initCouponRule);
});
}
CandyMgtCoupon initMgtCoupon = new CandyMgtCoupon();
initMgtCoupon.setMcouponId(parameter.getMrightsId());
initMgtCoupon.setCouponId(initCoupon.getCouponId());
initMgtCoupon.setState(10);// 发放状态[0-未发放|1-已发放|2-无效|9-发放中|10-会员礼包初始模版]
initMgtCoupon.setEventAmt(parameter.getEventAmt());
initMgtCoupon.setEventType(2);
//initMgtCoupon.setEventLimit();
//initMgtCoupon.setEventAt();
initMgtCoupon.setOperator(operator);
initMgtCoupon.setCreatedAt(nowTime);
return candyMgtCouponAdminService.saveMgtCouponInfo(initCoupon, initMgtCoupon, initCouponRuleList);
}
@Override
public boolean editMgtCouponForMemberRights(CandyMemberCouponBuildParam parameter) {
String couponId = parameter.getCouponId(), operator = ShiroUtils.getLoginName();
LocalDateTime nowTime = LocalDateTime.now();
LambdaQueryWrapper<CandyCoupon> candyCouponLambdaQueryWrapper = Wrappers.lambdaQuery(CandyCoupon.class)
.eq(CandyCoupon::getCouponId, couponId)
.eq(CandyCoupon::getState, 1)
.eq(CandyCoupon::getExclusive, 1);
if (candyCouponAdminService.count(candyCouponLambdaQueryWrapper) > 0) {
CandyCoupon updateCoupon = new CandyCoupon();
updateCoupon.setCouponId(couponId);
updateCoupon.setTitle(parameter.getTitle());
updateCoupon.setExclusive(1);
updateCoupon.setBusiType(parameter.getBusiType());
updateCoupon.setCouType(parameter.getCouType());
updateCoupon.setValFace(parameter.getValFace());
updateCoupon.setValOver(parameter.getValOver());
updateCoupon.setValMinus(parameter.getValMinus());
updateCoupon.setOverlay(parameter.getOverlay());
updateCoupon.setOperator(operator);
updateCoupon.setUpdatedAt(nowTime);
List<CandyCouponRuleBuildParam> couponRuleList = parameter.getCouponRuleList();
List<CandyCouponRule> initCouponRuleList = new ArrayList<>();
if (!CollectionUtils.isEmpty(couponRuleList)) {
couponRuleList.forEach(r -> {
CandyCouponRule initCouponRule = new CandyCouponRule();
initCouponRule.setCruleId(IDGenerator.nextTimeId2());
initCouponRule.setCouponId(couponId);
initCouponRule.setUseScope(r.getUseScope());
initCouponRule.setBusiName(r.getBusiName());
initCouponRule.setBusiId(r.getBusiId());
initCouponRule.setState(1);
initCouponRuleList.add(initCouponRule);
});
}
CandyMgtCoupon updateMgtCoupon = new CandyMgtCoupon();
updateMgtCoupon.setMcouponId(parameter.getMrightsId());
updateMgtCoupon.setEventAmt(parameter.getEventAmt());
updateMgtCoupon.setOperator(operator);
updateMgtCoupon.setUpdatedAt(nowTime);
return candyMgtCouponAdminService.updateMgtCouponInfo(updateCoupon, updateMgtCoupon, initCouponRuleList);
}
return false;
}
@Override @Override
@Transactional @Transactional
public boolean saveMgtCouponInfo(CandyCoupon initCoupon, CandyMgtCoupon initMgtCoupon, List<CandyCouponRule> initCouponRuleList) { public boolean saveMgtCouponInfo(CandyCoupon initCoupon, CandyMgtCoupon initMgtCoupon, List<CandyCouponRule> initCouponRuleList) {
......
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