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

Commit b7fb606c authored by 张国柄's avatar 张国柄

opt:发放券调整;

parent a654ca39
...@@ -24,10 +24,10 @@ public class CandyMgtCouponBuildParam { ...@@ -24,10 +24,10 @@ public class CandyMgtCouponBuildParam {
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") @ApiModelProperty(required = true, value = "业务类别[0-全场|1-演出|2-商品|3-优先购]", allowableValues = "0,1,2,3")
private Integer busiType; private Integer busiType;
@NotNull(message = "券类型不能为空") @NotNull(message = "券类型不能为空")
@ApiModelProperty(required = true, value = "券类型[1-代金券|2-满减券|3-兑换券|4-折扣券|101-优先券]", allowableValues = "1,2,3,4") @ApiModelProperty(required = true, value = "券类型[1-代金券|2-满减券|3-兑换券|4-折扣券|101-优先券]", allowableValues = "1,2,3,4,101")
private Integer couType; private Integer couType;
@NotNull(message = "券领取方式不能为空") @NotNull(message = "券领取方式不能为空")
@ApiModelProperty(required = true, value = "领取方式[0-用户输入兑换|1-发放至用户]", allowableValues = "0,1") @ApiModelProperty(required = true, value = "领取方式[0-用户输入兑换|1-发放至用户]", allowableValues = "0,1")
......
...@@ -73,13 +73,7 @@ public class CandyMgtCouponAdminController extends BaseController { ...@@ -73,13 +73,7 @@ public class CandyMgtCouponAdminController extends BaseController {
@PostMapping("add") @PostMapping("add")
@ResponseBody @ResponseBody
public AjaxResult addSave(@RequestBody @Validated CandyMgtCouponBuildParam buildParam) { public AjaxResult addSave(@RequestBody @Validated CandyMgtCouponBuildParam buildParam) {
LocalDateTime nowTime = LocalDateTime.now(), redeemStart = null, redeemStop = null, effectAt, expireAt; switch (buildParam.getCouType()) {
String eventAtStr = buildParam.getEventAt();
LocalDateTime eventAt = StringUtils.isEmpty(eventAtStr.trim()) ? nowTime
: LocalDateTime.parse(eventAtStr, DateTimeFormatter.ofPattern(DateUtils.YYYY_MM_DD_HH_MM_SS));
switch (buildParam.getCouType()) {// TODO: 2021/8/20 校验
case 1:// 代金券 case 1:// 代金券
BigDecimal valFace = buildParam.getValFace(); BigDecimal valFace = buildParam.getValFace();
if (null == valFace || valFace.compareTo(BigDecimal.ZERO) <= 0) { if (null == valFace || valFace.compareTo(BigDecimal.ZERO) <= 0) {
...@@ -114,96 +108,52 @@ public class CandyMgtCouponAdminController extends BaseController { ...@@ -114,96 +108,52 @@ public class CandyMgtCouponAdminController extends BaseController {
if (null == discount || discount.compareTo(BigDecimal.ZERO) <= 0) { if (null == discount || discount.compareTo(BigDecimal.ZERO) <= 0) {
return AjaxResult.warn("折扣配置无效"); return AjaxResult.warn("折扣配置无效");
} }
break;
case 101:
buildParam.setDiscount(null);
buildParam.setValFace(null); buildParam.setValFace(null);
buildParam.setValOver(null); buildParam.setValOver(null);
buildParam.setValMinus(null); buildParam.setValMinus(null);
break;
case 101:
if (null == buildParam.getOverlay()) { if (null == buildParam.getOverlay()) {
return AjaxResult.warn("叠加限制配置无效"); return AjaxResult.warn("叠加限制配置无效");
} }
buildParam.setDiscount(null);
buildParam.setValFace(null);
buildParam.setValOver(null);
buildParam.setValMinus(null);
break; break;
default: default:
logger.warn("Invalid operation[buildParam.couType={}]", buildParam.getCouType()); logger.warn("Invalid operation[buildParam.couType={}]", buildParam.getCouType());
return this.error(AjaxResult.Type.WARN, "券类型无效"); return this.error(AjaxResult.Type.WARN, "券类型无效");
} }
Integer validity = buildParam.getValidity();
Integer redeemValidity = buildParam.getRedeemValidity(); if (buildParam.getBusiType() > 0) {// 校验适用范围
List<CandyCouponRuleBuildParam> couponRuleList = buildParam.getCouponRuleList();
if (CollectionUtils.isEmpty(couponRuleList)) {
return AjaxResult.warn("请指定适用范围");
}
CandyCouponRuleBuildParam couponRuleBuildParam = couponRuleList.get(0);
if (couponRuleBuildParam.getUseScope() != 100 && (
StringUtils.isEmpty(couponRuleBuildParam.getBusiId()) || StringUtils.isEmpty(couponRuleBuildParam.getBusiName())
)) {
return AjaxResult.warn("请指定具体适用内容");
}
} else {
buildParam.setCouponRuleList(null);
}
if (0 == buildParam.getBindType()) { if (0 == buildParam.getBindType()) {
buildParam.setEventType(null); buildParam.setEventType(0);
buildParam.setEventLimit(null); buildParam.setEventLimit(null);
if (null == redeemValidity) { if (null == buildParam.getRedeemValidity()) {
return AjaxResult.warn("兑换有效期无效"); return AjaxResult.warn("兑换有效期无效");
} }
redeemStart = eventAt.with(LocalTime.MIN);
redeemStop = eventAt.plusDays(redeemValidity).withHour(23).withMinute(59).withSecond(59);
} else { } else {
if (buildParam.getEventType() == 2) {// 指定用户手机号 if (buildParam.getEventType() == 2) {// 指定用户手机号
if (StringUtils.isEmpty(buildParam.getEventLimit().trim())) { if (StringUtils.isEmpty(buildParam.getEventLimit().trim())) {
return this.error(AjaxResult.Type.WARN, "请指定手机号"); return AjaxResult.warn("请指定手机号");
}
} }
} }
effectAt = eventAt.with(LocalTime.MIN);
expireAt = eventAt.plusDays(validity).withHour(23).withMinute(59).withSecond(59);
String operator = ShiroUtils.getLoginName();
CandyCoupon initCoupon = new CandyCoupon();
initCoupon.setCouponId(IDGenerator.nextMilliId());
initCoupon.setState(1);
initCoupon.setTitle(buildParam.getTitle());
initCoupon.setLabel(buildParam.getLabel());
initCoupon.setNotice(buildParam.getNotice());
initCoupon.setExclusive(0);
initCoupon.setBusiType(buildParam.getBusiType());
initCoupon.setCouType(buildParam.getCouType());
initCoupon.setBindType(buildParam.getBindType());
initCoupon.setDiscount(buildParam.getDiscount());
initCoupon.setValFace(buildParam.getValFace());
initCoupon.setValOver(buildParam.getValOver());
initCoupon.setValMinus(buildParam.getValMinus());
initCoupon.setOverlay(buildParam.getOverlay());
initCoupon.setValidity(validity);
initCoupon.setRedeemValidity(redeemValidity);
initCoupon.setRedeemStart(redeemStart);
initCoupon.setRedeemStop(redeemStop);
initCoupon.setEffectAt(effectAt);
initCoupon.setExpireAt(expireAt);
initCoupon.setOperator(operator);
initCoupon.setCreatedAt(nowTime);
List<CandyCouponRuleBuildParam> couponRuleList = buildParam.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);
});
} }
return toAjax(candyMgtCouponAdminService.saveMgtCouponForCouponBuild(buildParam));
CandyMgtCoupon initMgtCoupon = new CandyMgtCoupon();
initMgtCoupon.setMcouponId(IDGenerator.nextMilliId());
initMgtCoupon.setCouponId(initCoupon.getCouponId());
initMgtCoupon.setState(0);
initMgtCoupon.setEventAmt(buildParam.getEventAmt());
initMgtCoupon.setEventType(buildParam.getEventType());
initMgtCoupon.setEventLimit(buildParam.getEventLimit());
initMgtCoupon.setEventAt(eventAt);
initMgtCoupon.setOperator(operator);
initMgtCoupon.setCreatedAt(nowTime);
candyMgtCouponAdminService.saveMgtCouponInfo(initCoupon, initMgtCoupon, initCouponRuleList);
return toAjax(true);
} }
} }
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.*;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponInfoDto;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponListParam;
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;
...@@ -17,6 +14,8 @@ public interface ICandyMgtCouponAdminService extends IService<CandyMgtCoupon> { ...@@ -17,6 +14,8 @@ public interface ICandyMgtCouponAdminService extends IService<CandyMgtCoupon> {
boolean editMgtCouponForMemberRights(CandyMemberCouponBuildParam parameter); boolean editMgtCouponForMemberRights(CandyMemberCouponBuildParam parameter);
boolean saveMgtCouponForCouponBuild(CandyMgtCouponBuildParam 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);
......
...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; ...@@ -4,6 +4,7 @@ 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.DateUtils;
import com.liquidnet.client.admin.common.utils.ShiroUtils; import com.liquidnet.client.admin.common.utils.ShiroUtils;
import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberPriceAdminService; 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.ICandyCouponAdminService;
...@@ -23,12 +24,15 @@ import com.liquidnet.service.candy.entity.CandyMgtCoupon; ...@@ -23,12 +24,15 @@ import com.liquidnet.service.candy.entity.CandyMgtCoupon;
import com.liquidnet.service.candy.mapper.CandyCouponMapper; import com.liquidnet.service.candy.mapper.CandyCouponMapper;
import com.liquidnet.service.candy.mapper.CandyMgtCouponMapper; import com.liquidnet.service.candy.mapper.CandyMgtCouponMapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; 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.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -172,6 +176,67 @@ public class CandyMgtCouponAdminServiceImpl extends ServiceImpl<CandyMgtCouponMa ...@@ -172,6 +176,67 @@ public class CandyMgtCouponAdminServiceImpl extends ServiceImpl<CandyMgtCouponMa
return false; return false;
} }
@Override
public boolean saveMgtCouponForCouponBuild(CandyMgtCouponBuildParam parameter) {
String eventAtStr = parameter.getEventAt();
LocalDateTime nowTime = LocalDateTime.now();
LocalDateTime eventAt = StringUtils.isEmpty(eventAtStr.trim()) ? nowTime
: LocalDateTime.parse(eventAtStr, DateTimeFormatter.ofPattern(DateUtils.YYYY_MM_DD_HH_MM_SS));
CandyCoupon initCoupon = new CandyCoupon();
initCoupon.setCouponId(IDGenerator.nextMilliId());
initCoupon.setState(1);
initCoupon.setTitle(parameter.getTitle());
initCoupon.setLabel(parameter.getLabel());
initCoupon.setNotice(parameter.getNotice());
initCoupon.setExclusive(0);
initCoupon.setBusiType(parameter.getBusiType());
initCoupon.setCouType(parameter.getCouType());
initCoupon.setBindType(parameter.getBindType());
initCoupon.setDiscount(parameter.getDiscount());
initCoupon.setValFace(parameter.getValFace());
initCoupon.setValOver(parameter.getValOver());
initCoupon.setValMinus(parameter.getValMinus());
initCoupon.setOverlay(parameter.getOverlay());
initCoupon.setValidity(parameter.getValidity());
initCoupon.setRedeemValidity(parameter.getRedeemValidity());
initCoupon.setRedeemStart(eventAt.with(LocalTime.MIN));
initCoupon.setRedeemStop(eventAt.plusDays(parameter.getRedeemValidity()).withHour(23).withMinute(59).withSecond(59));
initCoupon.setEffectAt(eventAt.with(LocalTime.MIN));
initCoupon.setExpireAt(eventAt.plusDays(parameter.getValidity()).withHour(23).withMinute(59).withSecond(59));
initCoupon.setOperator(ShiroUtils.getLoginName());
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(IDGenerator.nextMilliId());
initMgtCoupon.setCouponId(initCoupon.getCouponId());
initMgtCoupon.setState(0);
initMgtCoupon.setEventAmt(parameter.getEventAmt());
initMgtCoupon.setEventType(parameter.getEventType());
initMgtCoupon.setEventLimit(parameter.getEventLimit());
initMgtCoupon.setEventAt(eventAt);
initMgtCoupon.setOperator(initCoupon.getOperator());
initMgtCoupon.setCreatedAt(nowTime);
return candyMgtCouponAdminService.saveMgtCouponInfo(initCoupon, initMgtCoupon, initCouponRuleList);
}
@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