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

Commit c850f241 authored by 胡佳晨's avatar 胡佳晨

Merge remote-tracking branch 'origin/dev_20211205' into dev_20211205

parents 7af88287 349452ad
......@@ -126,7 +126,7 @@ public class AdamMemberVo implements java.io.Serializable, Cloneable {
}
public AdamMemberVo copy(AdamMember source) {
if (null == this) return this;
if (null == source) return this;
this.setMemberId(source.getMemberId());
this.setName(source.getName());
this.setTitle(source.getTitle());
......
......@@ -41,7 +41,7 @@ public class CandyMemberCouponBuildParam {
@ApiModelProperty(required = true, value = "券类型[1-代金券|2-满减券|101-优先券]", allowableValues = "1,2,101")
private Integer couType;
// @NotNull(message = "券领取方式不能为空")
// @ApiModelProperty(required = true, value = "领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换]", allowableValues = "0,1")
// @ApiModelProperty(required = true, value = "领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换|3-发放需领取]", allowableValues = "0,1,2,3")
// private Integer bindType;
// @ApiModelProperty(required = false, value = "折扣[8折即0.8]", example = "0.8")
// private BigDecimal discount;
......
......@@ -25,10 +25,10 @@ public class CandyMgtCouponBuildParam {
@ApiModelProperty(required = true, value = "业务类别[0-全场|1-演出|2-商品|3-优先购]", allowableValues = "0,1,2,3")
private Integer busiType;
@NotNull(message = "券类型不能为空")
@ApiModelProperty(required = true, value = "券类型[1-代金券|2-满减券|3-兑换券|4-折扣券|101-优先券]", allowableValues = "1,2,3,4,101")
@ApiModelProperty(required = true, value = "券类型[1-代金券|2-满减券|3-兑换券|4-折扣券101-优先券]", allowableValues = "1,2,3,4,101")
private Integer couType;
@NotNull(message = "券领取方式不能为空")
@ApiModelProperty(required = true, value = "领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换]", allowableValues = "0,1,2")
@ApiModelProperty(required = true, value = "领取方式[0-用户输入兑换|1-发放至用户|2-积分商品|3-发送需领取]", allowableValues = "0,1,2,3")
private Integer bindType;
@ApiModelProperty(required = false, value = "折扣[8折即0.8]", example = "0.8")
private BigDecimal discount;
......
......@@ -56,10 +56,13 @@ public class BaseController
PageDomain pageDomain = TableSupport.buildPageRequest();
Integer pageNum = pageDomain.getPageNum();
Integer pageSize = pageDomain.getPageSize();
String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize))
{
String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
// String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
PageHelper.startPage(pageNum, pageSize, orderBy);
} else {
PageHelper.startPage(1, 10, orderBy);
}
}
......
package com.liquidnet.client.admin.web.controller.zhengzai.candy;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.liquidnet.client.admin.common.core.controller.BaseController;
import com.liquidnet.client.admin.common.core.page.TableDataInfo;
import com.liquidnet.client.admin.common.core.domain.AjaxResult;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponAdminService;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponRuleAdminService;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.candy.dto.admin.CandyCouponListParam;
import com.liquidnet.service.candy.dto.admin.CandyCouponTemplateDto;
import com.liquidnet.service.candy.entity.CandyCoupon;
import com.liquidnet.service.candy.entity.CandyCouponRule;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
@Api(tags = "我的券包")
@Controller
@RequestMapping("candy/coupon")
public class CandyCouponAdminController extends BaseController {
@Autowired
ICandyCouponAdminService candyCouponAdminService;
@Autowired
ICandyCouponRuleAdminService candyCouponRuleAdminService;
@ApiOperation(value = "券列表")
@PostMapping("list")
@ResponseBody
public TableDataInfo list(CandyCouponListParam listParam) {
public String list(CandyCouponListParam listParam) {
LambdaQueryWrapper<CandyCoupon> queryWrapper = Wrappers.lambdaQuery(CandyCoupon.class);
queryWrapper.select(CandyCoupon::getCouponId, CandyCoupon::getTitle);
queryWrapper.orderByDesc(CandyCoupon::getCreatedAt);
......@@ -44,6 +58,26 @@ public class CandyCouponAdminController extends BaseController {
}
startPage();
return getDataTable(candyCouponAdminService.list(queryWrapper));
return JsonUtils.toJson(getDataTable(candyCouponAdminService.list(queryWrapper)));
}
@ApiOperation(value = "券详情")
@GetMapping("info")
@ResponseBody
public AjaxResult info(String couponId) {
CandyCouponTemplateDto couponTemplateDto = CandyCouponTemplateDto.getNew();
LambdaQueryWrapper<CandyCoupon> couponLambdaQueryWrapper = Wrappers.lambdaQuery();
couponLambdaQueryWrapper.eq(CandyCoupon::getCouponId, couponId);
couponLambdaQueryWrapper.eq(CandyCoupon::getState, 1);
CandyCoupon coupon = candyCouponAdminService.getOne(couponLambdaQueryWrapper);
LambdaUpdateWrapper<CandyCouponRule> couponRuleLambdaUpdateWrapper = Wrappers.lambdaUpdate(CandyCouponRule.class);
couponRuleLambdaUpdateWrapper.eq(CandyCouponRule::getCouponId, couponId);
couponRuleLambdaUpdateWrapper.eq(CandyCouponRule::getState, 1);
List<CandyCouponRule> couponRuleList = candyCouponRuleAdminService.list(couponRuleLambdaUpdateWrapper);
couponTemplateDto.setUseRules(couponRuleList);
return AjaxResult.success(couponTemplateDto.copy(coupon));
}
}
package com.liquidnet.client.admin.web.controller.zhengzai.candy;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.liquidnet.client.admin.common.annotation.Log;
import com.liquidnet.client.admin.common.core.controller.BaseController;
......@@ -18,9 +17,7 @@ import com.liquidnet.service.candy.dto.admin.CandyCouponRuleBuildParam;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponBuildParam;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponInfoDto;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponListParam;
import com.liquidnet.service.candy.entity.CandyCoupon;
import com.liquidnet.service.candy.entity.CandyCouponRule;
import com.liquidnet.service.candy.entity.CandyMgtCoupon;
import com.liquidnet.service.kylin.dao.PerformanceSimpleAllDao;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -35,11 +32,10 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;
@Api(tags = "我的券")
@Api(tags = "我的券")
@Controller
@RequestMapping("candy/coupon/mgt")
public class CandyMgtCouponAdminController extends BaseController {
......@@ -64,7 +60,7 @@ public class CandyMgtCouponAdminController extends BaseController {
return prefix + "/coupon" + couType;
}
@Log(title = "我的券:券列表", businessType = BusinessType.LIST)
@Log(title = "我的券包:发放列表", businessType = BusinessType.LIST)
@RequiresPermissions("candy:coupon:mgt:list")
@PostMapping("list")
@ResponseBody
......@@ -80,7 +76,7 @@ public class CandyMgtCouponAdminController extends BaseController {
queryWrapper.eq(CandyCouponRule::getState, 1);
queryWrapper.select(CandyCouponRule::getCruleId, CandyCouponRule::getCouponId, CandyCouponRule::getBusiName);
List<CandyCouponRule> couponRuleList = candyCouponRuleAdminService.list(queryWrapper);
list.stream().forEach(r->{
list.stream().forEach(r -> {
couponRuleList.forEach(cr -> {
if (r.getCouponId().equals(cr.getCouponId())) {
r.setCouponRuleScopeName(cr.getBusiName());
......@@ -92,7 +88,7 @@ public class CandyMgtCouponAdminController extends BaseController {
return getDataTable(list);
}
@Log(title = "我的券:券详情", businessType = BusinessType.DETAIL)
@Log(title = "我的券包:发放详情", businessType = BusinessType.DETAIL)
@RequiresPermissions("candy:coupon:mgt:detail")
@GetMapping("detail/{couType}/{mcouponId}")
public String detail(@PathVariable("couType") int couType,
......@@ -147,6 +143,32 @@ public class CandyMgtCouponAdminController extends BaseController {
}
return prefix + "/detail" + couType;
}
//
// @Log(title = "我的券包:复用发放", businessType = BusinessType.DETAIL)
// @RequiresPermissions("candy:coupon:mgt:reuse")
// @GetMapping("reuse/{couType}/{mcouponId}")
// public String reuse(@PathVariable("couType") int couType,
// @PathVariable("mcouponId") String mcouponId, ModelMap mmap) {
// CandyMgtCouponListParam listParam = new CandyMgtCouponListParam();
// listParam.setMcouponId(mcouponId);
// List<CandyMgtCouponInfoDto> list = candyMgtCouponAdminService.listForMgtCouponInfoDto(listParam);
// if (!CollectionUtils.isEmpty(list)) {
// CandyMgtCouponInfoDto mgtCouponInfoDto = list.get(0);
// mmap.put("mgtCouponInfoDto", mgtCouponInfoDto);
//
// LambdaQueryWrapper<CandyCouponRule> queryWrapper = Wrappers.lambdaQuery(CandyCouponRule.class);
// queryWrapper.eq(CandyCouponRule::getCouponId, mgtCouponInfoDto.getCouponId());
// queryWrapper.eq(CandyCouponRule::getState, 1);
// queryWrapper.select(CandyCouponRule::getUseScope, CandyCouponRule::getBusiName, CandyCouponRule::getBusiId);
//
// List<CandyCouponRule> couponRuleList = candyCouponRuleAdminService.list(queryWrapper);
// if (!CollectionUtils.isEmpty(couponRuleList)) {
// CandyCouponRule couponRule = couponRuleList.get(0);
// mmap.put("couponRule", couponRule);
// }
// }
// return prefix + "/reuse" + couType;
// }
@GetMapping("add/{couType}")
public String add(@PathVariable("couType") String couType, ModelMap mmap) {
......@@ -154,8 +176,8 @@ public class CandyMgtCouponAdminController extends BaseController {
return prefix + "/add" + couType;
}
@ApiOperation(value = "新建")
@Log(title = "我的券:券新建", businessType = BusinessType.INSERT)
@ApiOperation(value = "创建发放")
@Log(title = "我的券包:创建发放", businessType = BusinessType.INSERT)
@RequiresPermissions("candy:coupon:mgt:add")
@PostMapping("add")
@ResponseBody
......@@ -257,7 +279,7 @@ public class CandyMgtCouponAdminController extends BaseController {
// }
// }
switch (buildParam.getBindType()) {// 领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换]
switch (buildParam.getBindType()) {// 领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换|3-发放需领取]
case 0:
buildParam.setEventType(0);
buildParam.setEventLimit(null);
......@@ -265,6 +287,7 @@ public class CandyMgtCouponAdminController extends BaseController {
return AjaxResult.warn("兑换有效期无效");
}
break;
case 3:// 新增券领取类型(3-发放需领取)处理逻辑同(1-发放至用户)
case 1:
if (buildParam.getEventType() == 2) {// 指定用户手机号
if (StringUtils.isBlank(buildParam.getEventLimit())) {
......@@ -283,68 +306,68 @@ public class CandyMgtCouponAdminController extends BaseController {
return AjaxResult.success();
}
@ApiOperation(value = "编辑")
@Log(title = "我的券:券编辑", businessType = BusinessType.UPDATE)
@RequiresPermissions("candy:coupon:mgt:edit")
@PostMapping("edit")
@ResponseBody
public AjaxResult editSave(@RequestBody @Validated CandyMgtCouponBuildParam buildParam) {
logger.info("operator:{},buildParam:{}", ShiroUtils.getLoginName(), buildParam);
if (StringUtils.isBlank(buildParam.getMcouponId())) {
return AjaxResult.warn("发放ID【mcouponId】不能为空");
}
AjaxResult ajaxResult = this.buildValidProcessing(buildParam);
if (((int) ajaxResult.get(AjaxResult.CODE_TAG)) != 0) {
return ajaxResult;
}
return toAjax(candyMgtCouponAdminService.editMgtCouponForCouponBuild(buildParam));
}
@Log(title = "我的券:券取消", businessType = BusinessType.CANCEL)
@RequiresPermissions("candy:coupon:mgt:cancel")
@GetMapping("cancel/{mcouponId}")
@ResponseBody
public AjaxResult cancel(@PathVariable("mcouponId") String mcouponId) {
LambdaQueryWrapper<CandyMgtCoupon> mgtCouponLambdaQueryWrapper = Wrappers.lambdaQuery(CandyMgtCoupon.class);
mgtCouponLambdaQueryWrapper.eq(CandyMgtCoupon::getMcouponId, mcouponId);
CandyMgtCoupon mgtCoupon = candyMgtCouponAdminService.getOne(mgtCouponLambdaQueryWrapper);
if (null == mgtCoupon) {
return AjaxResult.warn(String.format("券记录不存在【%s】", mcouponId));
}
if (mgtCoupon.getState() == 1) {
return AjaxResult.warn("券记录已完成发放");
}
if (mgtCoupon.getState() == 9) {
return AjaxResult.warn("券记录已开始发放");
}
if (mgtCoupon.getState() != 0) {
return AjaxResult.warn("券记录不可取消");
}
LocalDateTime now = LocalDateTime.now();
String loginName = ShiroUtils.getLoginName();
LambdaUpdateWrapper<CandyMgtCoupon> mgtCouponLambdaUpdateWrapper = Wrappers.lambdaUpdate(CandyMgtCoupon.class);
mgtCouponLambdaUpdateWrapper.eq(CandyMgtCoupon::getMcouponId, mcouponId);
mgtCouponLambdaUpdateWrapper.eq(CandyMgtCoupon::getState, 0);
mgtCouponLambdaUpdateWrapper.set(CandyMgtCoupon::getState, 3);
mgtCouponLambdaUpdateWrapper.set(CandyMgtCoupon::getUpdatedAt, now);
mgtCouponLambdaUpdateWrapper.set(CandyMgtCoupon::getOperator, loginName);
boolean updateMgtCouponFlg = candyMgtCouponAdminService.update(mgtCouponLambdaUpdateWrapper);
if (!updateMgtCouponFlg) {
return AjaxResult.warn("券记录取消失败,已发放或正在发放中");
}
LambdaUpdateWrapper<CandyCoupon> couponLambdaUpdateWrapper = Wrappers.lambdaUpdate(CandyCoupon.class);
couponLambdaUpdateWrapper.eq(CandyCoupon::getCouponId, mgtCoupon.getCouponId());
couponLambdaUpdateWrapper.set(CandyCoupon::getState, 2);
couponLambdaUpdateWrapper.set(CandyCoupon::getUpdatedAt, now);
couponLambdaUpdateWrapper.set(CandyCoupon::getOperator, loginName);
candyCouponAdminService.update(couponLambdaUpdateWrapper);
LambdaUpdateWrapper<CandyCouponRule> couponRuleLambdaUpdateWrapper = Wrappers.lambdaUpdate(CandyCouponRule.class);
couponRuleLambdaUpdateWrapper.eq(CandyCouponRule::getCouponId, mgtCoupon.getCouponId());
couponRuleLambdaUpdateWrapper.set(CandyCouponRule::getState, 2);
candyCouponRuleAdminService.update(couponRuleLambdaUpdateWrapper);
return toAjax(updateMgtCouponFlg);
}
// @ApiOperation(value = "编辑发放")
// @Log(title = "我的券包:编辑发放", businessType = BusinessType.UPDATE)
// @RequiresPermissions("candy:coupon:mgt:edit")
// @PostMapping("edit")
// @ResponseBody
// public AjaxResult editSave(@RequestBody @Validated CandyMgtCouponBuildParam buildParam) {
// logger.info("operator:{},buildParam:{}", ShiroUtils.getLoginName(), buildParam);
// if (StringUtils.isBlank(buildParam.getMcouponId())) {
// return AjaxResult.warn("发放ID【mcouponId】不能为空");
// }
// AjaxResult ajaxResult = this.buildValidProcessing(buildParam);
// if (((int) ajaxResult.get(AjaxResult.CODE_TAG)) != 0) {
// return ajaxResult;
// }
// return toAjax(candyMgtCouponAdminService.editMgtCouponForCouponBuild(buildParam));
// }
//
// @Log(title = "我的券包:取消发放", businessType = BusinessType.CANCEL)
// @RequiresPermissions("candy:coupon:mgt:cancel")
// @GetMapping("cancel/{mcouponId}")
// @ResponseBody
// public AjaxResult cancel(@PathVariable("mcouponId") String mcouponId) {
// LambdaQueryWrapper<CandyMgtCoupon> mgtCouponLambdaQueryWrapper = Wrappers.lambdaQuery(CandyMgtCoupon.class);
// mgtCouponLambdaQueryWrapper.eq(CandyMgtCoupon::getMcouponId, mcouponId);
// CandyMgtCoupon mgtCoupon = candyMgtCouponAdminService.getOne(mgtCouponLambdaQueryWrapper);
// if (null == mgtCoupon) {
// return AjaxResult.warn(String.format("发放券记录不存在【%s】", mcouponId));
// }
// if (mgtCoupon.getState() == 1) {
// return AjaxResult.warn("发放券记录已完成发放");
// }
// if (mgtCoupon.getState() == 9) {
// return AjaxResult.warn("发放券记录已开始发放");
// }
// if (mgtCoupon.getState() != 0) {
// return AjaxResult.warn("发放券记录不可取消");
// }
// LocalDateTime now = LocalDateTime.now();
// String loginName = ShiroUtils.getLoginName();
//
// LambdaUpdateWrapper<CandyMgtCoupon> mgtCouponLambdaUpdateWrapper = Wrappers.lambdaUpdate(CandyMgtCoupon.class);
// mgtCouponLambdaUpdateWrapper.eq(CandyMgtCoupon::getMcouponId, mcouponId);
// mgtCouponLambdaUpdateWrapper.eq(CandyMgtCoupon::getState, 0);
// mgtCouponLambdaUpdateWrapper.set(CandyMgtCoupon::getState, 3);
// mgtCouponLambdaUpdateWrapper.set(CandyMgtCoupon::getUpdatedAt, now);
// mgtCouponLambdaUpdateWrapper.set(CandyMgtCoupon::getOperator, loginName);
// boolean updateMgtCouponFlg = candyMgtCouponAdminService.update(mgtCouponLambdaUpdateWrapper);
// if (!updateMgtCouponFlg) {
// return AjaxResult.warn("发放券记录取消失败,已发放或正在发放中");
// }
//
//// LambdaUpdateWrapper<CandyCoupon> couponLambdaUpdateWrapper = Wrappers.lambdaUpdate(CandyCoupon.class);
//// couponLambdaUpdateWrapper.eq(CandyCoupon::getCouponId, mgtCoupon.getCouponId());
//// couponLambdaUpdateWrapper.set(CandyCoupon::getState, 2);
//// couponLambdaUpdateWrapper.set(CandyCoupon::getUpdatedAt, now);
//// couponLambdaUpdateWrapper.set(CandyCoupon::getOperator, loginName);
//// candyCouponAdminService.update(couponLambdaUpdateWrapper);
////
//// LambdaUpdateWrapper<CandyCouponRule> couponRuleLambdaUpdateWrapper = Wrappers.lambdaUpdate(CandyCouponRule.class);
//// couponRuleLambdaUpdateWrapper.eq(CandyCouponRule::getCouponId, mgtCoupon.getCouponId());
//// couponRuleLambdaUpdateWrapper.set(CandyCouponRule::getState, 2);
//// candyCouponRuleAdminService.update(couponRuleLambdaUpdateWrapper);
// return toAjax(updateMgtCouponFlg);
// }
}
......@@ -73,7 +73,7 @@ public class CandyMgtCouponAdminServiceImpl extends ServiceImpl<CandyMgtCouponMa
initCoupon.setExclusive(1);
initCoupon.setBusiType(parameter.getBusiType());
initCoupon.setCouType(parameter.getCouType());
initCoupon.setBindType(1);// 领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换]
initCoupon.setBindType(1);// 领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换|3-发放需领取]
//initCoupon.setDiscount();
initCoupon.setValFace(parameter.getValFace());
initCoupon.setValOver(parameter.getValOver());
......
......@@ -10,7 +10,7 @@ public class CandyCouponListParam {
*/
private String keyword;
/**
* 领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换]
* 领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换|3-发放需领取]
*/
private Integer bindType;
/**
......
package com.liquidnet.service.candy.dto.admin;
import com.liquidnet.service.candy.entity.CandyCoupon;
import com.liquidnet.service.candy.entity.CandyCouponRule;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
@Data
public class CandyCouponTemplateDto implements Serializable, Cloneable {
private static final long serialVersionUID = 6278406576442685501L;
/* com.liquidnet.service.candy.entity.CandyCoupon */
private String couponId;
private Integer state;
private String title;
private String label;
private String notice;
private Integer exclusive;
private Integer busiType;
private Integer couType;
private Integer bindType;
private BigDecimal discount;
private BigDecimal valFace;
private BigDecimal valOver;
private BigDecimal valMinus;
private Integer overlay;
private Integer overlayLevel;
private Integer validity;
private Integer redeemValidity;
private LocalDateTime redeemStart;
private LocalDateTime redeemStop;
private LocalDateTime effectAt;
private LocalDateTime expireAt;
//private String operator;
//private LocalDateTime createdAt;
//private LocalDateTime updatedAt;
//private String comment;
/* com.liquidnet.service.candy.entity.CandyCouponRule */
private List<CandyCouponRule> useRules;
private static final CandyCouponTemplateDto obj = new CandyCouponTemplateDto();
public static CandyCouponTemplateDto getNew() {
try {
return (CandyCouponTemplateDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new CandyCouponTemplateDto();
}
}
public CandyCouponTemplateDto copy(CandyCoupon source) {
if (null == source) return this;
this.setCouponId(source.getCouponId());
this.setState(source.getState());
this.setTitle(source.getTitle());
this.setLabel(source.getLabel());
this.setNotice(source.getNotice());
this.setExclusive(source.getExclusive());
this.setBusiType(source.getBusiType());
this.setCouType(source.getCouType());
this.setBindType(source.getBindType());
this.setDiscount(source.getDiscount());
this.setValFace(source.getValFace());
this.setValOver(source.getValOver());
this.setValMinus(source.getValMinus());
this.setOverlay(source.getOverlay());
this.setOverlayLevel(source.getOverlayLevel());
this.setValidity(source.getValidity());
this.setRedeemValidity(source.getRedeemValidity());
this.setRedeemStart(source.getRedeemStart());
this.setRedeemStop(source.getRedeemStop());
this.setEffectAt(source.getEffectAt());
this.setExpireAt(source.getExpireAt());
return this;
}
}
......@@ -12,7 +12,7 @@ public class CandyMgtCouponListParam {
*/
private String keyword;
/**
* 领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换]
* 领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换|3-发放需领取]
*/
private Integer bindType;
/**
......
......@@ -65,7 +65,7 @@ public class CandyCoupon implements Serializable {
private Integer couType;
/**
* 领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换]
* 领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换|3-发放需领取]
*/
private Integer bindType;
......
......@@ -39,7 +39,7 @@ create table candy_coupon
exclusive smallint comment '专享标识[0-常规|1-会员礼包]',
busi_type smallint comment '业务类别[0-全场|1-演出|2-商品|3-优先购]',
cou_type smallint comment '券类型[1-代金券|2-满减券|3-兑换券|4-折扣券|101-优先券]',
bind_type smallint comment '领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换]',
bind_type smallint comment '领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换|3-发放需领取]',
discount decimal(8, 2) comment '折扣[8折即0.8]',
val_face decimal(8, 2) comment '面值',
......
......@@ -55,7 +55,7 @@ public class PlatformCandyCouponService extends ServiceImpl<CandyCouponMapper, C
String couponInfoDtoKey = CandyRedisConst.BASIC_COUPON_INFO.concat(couponInfoDto.getCouponId());
redisDataSourceUtil.getRedisCandyUtil().set(couponInfoDtoKey, couponInfoDto);
switch (coupon.getBindType()) {// 领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换]
switch (coupon.getBindType()) {// 领取方式[0-用户输入兑换|1-发放至用户|2-积分兑换|3-发放需领取]
case 0:
this.processingCouponCode(mgtCoupon, coupon);
break;
......@@ -75,6 +75,7 @@ public class PlatformCandyCouponService extends ServiceImpl<CandyCouponMapper, C
// break;
// }
// break;
case 3:// 新增券领取类型(3-发放需领取)处理逻辑同(1-发放至用户|2-积分兑换)
case 2:// TODO: 2021/11/9 PM上线前临时加的券领取类型(2-积分兑换),这里`1-发放至用户|2-积分兑换`做同逻辑处理
switch (mgtCoupon.getEventType()) {// 发放类型[1-会员|2-手机号|10-全体用户]
case 1:
......@@ -209,6 +210,8 @@ public class PlatformCandyCouponService extends ServiceImpl<CandyCouponMapper, C
int totalCount = userMemberCount, eventAmt = mgtCoupon.getEventAmt();
log.info("发放券处理中:目标全体会员[总数:{},发放量:{}]", userMemberCount, eventAmt);
// 会员权益券失效时间duedAt需要同步会员到期时间expiryAt
boolean isMemberRightsCoupon = coupon.getExclusive() == 1;
queryWrapper.select(AdamUserMember::getUid).orderByAsc(AdamUserMember::getMid);
while (totalCount > 0) {
initUserCouponList.clear();
......@@ -216,7 +219,7 @@ public class PlatformCandyCouponService extends ServiceImpl<CandyCouponMapper, C
LambdaQueryWrapper<AdamUserMember> userMemberLambdaQueryWrapper = queryWrapper.clone();
String lastLimitSql = "LIMIT " + (num * pSize) + "," + pSize;
userMemberLambdaQueryWrapper.last(lastLimitSql);
List<AdamUserMember> userMemberList = platformAdamUserMemberService.list(queryWrapper);
List<AdamUserMember> userMemberList = platformAdamUserMemberService.list(userMemberLambdaQueryWrapper);
int userMemberListSize = CollectionUtils.isEmpty(userMemberList) ? -1 : userMemberList.size();
for (int j = 0; j < eventAmt; j++) {
......@@ -230,7 +233,12 @@ public class PlatformCandyCouponService extends ServiceImpl<CandyCouponMapper, C
userCoupon.setCouponId(coupon.getCouponId());
userCoupon.setState(1);
userCoupon.setBindAt(coupon.getEffectAt());
userCoupon.setDuedAt(coupon.getExpireAt());
// userCoupon.setDuedAt(coupon.getExpireAt());
if (isMemberRightsCoupon) {
userCoupon.setDuedAt(userMember.getExpiryAt());
} else {
userCoupon.setDuedAt(coupon.getExpireAt());
}
userCoupon.setCreatedAt(now);
initUserCouponList.add(userCoupon);
......
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