记得上下班打卡 | git大法好,push需谨慎
Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
liquidnet-bus-v1
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
董敬伟
liquidnet-bus-v1
Commits
b0774a17
Commit
b0774a17
authored
Nov 25, 2021
by
张国柄
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
~API:会员权益券编辑逻辑调整(原创建改为选择);
parent
a1ce192d
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
457 additions
and
255 deletions
+457
-255
AdamMemberRightsCouponVo.java
...quidnet/service/adam/dto/vo/AdamMemberRightsCouponVo.java
+2
-0
CandyMemberCouponMatchParam.java
.../service/candy/dto/admin/CandyMemberCouponMatchParam.java
+11
-4
AdamMemberAdminController.java
...b/controller/zhengzai/adam/AdamMemberAdminController.java
+56
-19
ICandyMgtCouponAdminService.java
...n/zhengzai/candy/service/ICandyMgtCouponAdminService.java
+5
-3
CandyMgtCouponAdminServiceImpl.java
...ai/candy/service/impl/CandyMgtCouponAdminServiceImpl.java
+383
-229
No files found.
liquidnet-bus-api/liquidnet-service-adam-api/src/main/java/com/liquidnet/service/adam/dto/vo/AdamMemberRightsCouponVo.java
View file @
b0774a17
...
...
@@ -31,6 +31,8 @@ public class AdamMemberRightsCouponVo implements java.io.Serializable, Cloneable
private
BigDecimal
valOver
;
@ApiModelProperty
(
position
=
10
,
value
=
"满减~减"
)
private
BigDecimal
valMinus
;
@ApiModelProperty
(
position
=
11
,
value
=
"折扣[8折即0.8]"
)
private
BigDecimal
discount
;
/* com.liquidnet.service.adam.dto.vo.AdamMemberRightsCouponRuleVo */
private
List
<
AdamMemberRightsCouponRuleVo
>
useRules
;
...
...
liquidnet-bus-api/liquidnet-service-candy-api/src/main/java/com/liquidnet/service/candy/dto/admin/CandyMemberCouponMatchParam.java
View file @
b0774a17
...
...
@@ -15,18 +15,19 @@ public class CandyMemberCouponMatchParam {
@ApiModelProperty
(
required
=
true
,
value
=
"会员类型ID[64]"
,
example
=
"1"
)
@NotBlank
(
message
=
"会员类型ID不能为空"
)
private
String
memberId
;
@ApiModelProperty
(
required
=
true
,
value
=
"权益ID[64]"
)
@ApiModelProperty
(
required
=
true
,
value
=
"权益ID[64]"
,
example
=
"21269184646476"
)
@NotBlank
(
message
=
"会员权益ID不能为空"
)
private
String
mrightsId
;
@ApiModelProperty
(
required
=
true
,
value
=
"券ID"
,
example
=
"券ID"
)
@NotBlank
(
message
=
"权益券ID不能为空"
)
@ApiModelProperty
(
required
=
true
,
value
=
"券ID"
,
example
=
"20211111161557612"
)
private
String
couponId
;
@NotNull
(
message
=
"券类别不能为空"
)
@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-满减券|4-折扣券
|
101-优先券]"
,
allowableValues
=
"1,2,4,101"
)
// @ApiModelProperty(required = true, value = "券类型[1-代金券|2-满减券|3-兑换券|4-折扣券
|
101-优先券]", allowableValues = "1,2,3,4,101")
@ApiModelProperty
(
required
=
true
,
value
=
"券类型[1-代金券|2-满减券|4-折扣券
|
101-优先券]"
,
allowableValues
=
"1,2,4,101"
)
private
Integer
couType
;
@NotNull
(
message
=
"券发放量不能为空"
)
...
...
@@ -34,4 +35,10 @@ public class CandyMemberCouponMatchParam {
@Min
(
value
=
1
,
message
=
"发放量不满足1~100范围"
)
@ApiModelProperty
(
required
=
true
,
value
=
"发放量"
,
example
=
"1"
)
private
Integer
eventAmt
;
@ApiModelProperty
(
required
=
true
,
value
=
"权益券操作类型[1-添加|2-删除|3-编辑]"
)
@NotNull
(
message
=
"操作类型不能为空"
)
private
Integer
oper
;
@ApiModelProperty
(
required
=
false
,
value
=
"券ID(仅`state=3-编辑`时必填`)"
)
private
String
operCouponId
;
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/java/com/liquidnet/client/admin/web/controller/zhengzai/adam/AdamMemberAdminController.java
View file @
b0774a17
...
...
@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import
com.liquidnet.client.admin.common.annotation.Log
;
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.entity.SysUser
;
import
com.liquidnet.client.admin.common.core.page.TableDataInfo
;
import
com.liquidnet.client.admin.common.enums.BusinessType
;
import
com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberAdminService
;
...
...
@@ -19,11 +18,10 @@ import com.liquidnet.service.adam.dto.admin.AdamMemberRightsBuildParam;
import
com.liquidnet.service.adam.entity.AdamMember
;
import
com.liquidnet.service.adam.entity.AdamMemberPrice
;
import
com.liquidnet.service.adam.entity.AdamMemberRights
;
import
com.liquidnet.service.candy.dto.admin.CandyCouponRuleBuildParam
;
import
com.liquidnet.service.candy.dto.admin.CandyMemberCouponBuildParam
;
import
com.liquidnet.service.candy.dto.admin.CandyMemberCouponMatchParam
;
import
com.liquidnet.service.candy.dto.admin.CandyMgtCouponMemberDto
;
import
com.liquidnet.service.candy.entity.CandyCoupon
;
import
com.liquidnet.service.candy.entity.CandyMgtCoupon
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.apache.commons.lang3.StringUtils
;
...
...
@@ -36,9 +34,6 @@ import org.springframework.util.CollectionUtils;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
java.math.BigDecimal
;
import
java.util.Arrays
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
...
...
@@ -253,32 +248,74 @@ public class AdamMemberAdminController extends BaseController {
@PostMapping
(
"edit_coupon"
)
@ResponseBody
public
AjaxResult
editCoupon
(
@RequestBody
@Validated
CandyMemberCouponMatchParam
parameter
)
{
LambdaQueryWrapper
<
AdamMemberRights
>
memberRightsLambdaQueryWrapper
=
Wrappers
.
lambdaQuery
();
memberRightsLambdaQueryWrapper
.
eq
(
AdamMemberRights:
:
getMrightsId
,
parameter
.
getMrightsId
());
memberRightsLambdaQueryWrapper
.
eq
(
AdamMemberRights:
:
getState
,
1
);
AdamMemberRights
memberRights
=
adamMemberRightsAdminService
.
getOne
(
memberRightsLambdaQueryWrapper
);
if
(
null
==
memberRights
)
{
logger
.
warn
(
"会员权益[{}]不存在"
,
parameter
.
getMrightsId
());
return
this
.
error
(
AjaxResult
.
Type
.
WARN
,
String
.
format
(
"会员权益【%s】不存在"
,
parameter
.
getMrightsId
()));
}
if
(!
memberRights
.
getMemberId
().
equals
(
parameter
.
getMemberId
()))
{
logger
.
warn
(
"会员权益[{}]所属卡[{}]与所选卡[{}]不一致"
,
parameter
.
getMrightsId
(),
memberRights
.
getMemberId
(),
parameter
.
getMemberId
());
return
this
.
error
(
AjaxResult
.
Type
.
WARN
,
"权益配置不匹配"
);
}
LambdaQueryWrapper
<
CandyCoupon
>
couponLambdaQueryWrapper
=
Wrappers
.
lambdaQuery
();
couponLambdaQueryWrapper
.
eq
(
CandyCoupon:
:
getCouponId
,
parameter
.
getCouponId
());
couponLambdaQueryWrapper
.
eq
(
CandyCoupon:
:
getState
,
1
);
CandyCoupon
coupon
=
candyCouponAdminService
.
getOne
(
couponLambdaQueryWrapper
);
if
(
null
==
coupon
)
{
logger
.
warn
(
"券[{}]不存在"
,
parameter
.
getCouponId
());
logger
.
warn
(
"
会员权益
券[{}]不存在"
,
parameter
.
getCouponId
());
return
this
.
error
(
AjaxResult
.
Type
.
WARN
,
String
.
format
(
"券【%s】不存在"
,
parameter
.
getCouponId
()));
}
if
(!
coupon
.
getBusiType
().
equals
(
parameter
.
getBusiType
()))
{
logger
.
warn
(
"
券[{}]类别[{}]与所选类别不一致"
,
parameter
.
getCouponId
(),
parameter
.
getBusiType
());
logger
.
warn
(
"
会员权益券[{}]类别[{}]与所选类别[{}]不一致"
,
parameter
.
getCouponId
(),
coupon
.
getBusiType
(),
parameter
.
getBusiType
());
return
this
.
error
(
AjaxResult
.
Type
.
WARN
,
"券信息不匹配"
);
}
if
(!
coupon
.
getCouType
().
equals
(
parameter
.
getCouType
()))
{
logger
.
warn
(
"
券[{}]类型[{}]与所选类型不一致"
,
parameter
.
getCouponId
(),
parameter
.
getCouType
());
logger
.
warn
(
"
会员权益券[{}]类型[{}]与所选类型[{}]不一致"
,
parameter
.
getCouponId
(),
coupon
.
getCouType
(),
parameter
.
getCouType
());
return
this
.
error
(
AjaxResult
.
Type
.
WARN
,
"券信息不匹配"
);
}
// TODO: 2021/11/24 zhanggb
return
this
.
toAjax
(
true
);
// if (StringUtils.isEmpty(parameter.getCouponId())) {
// // 新增券
// return this.toAjax(candyMgtCouponAdminService.saveMgtCouponForMemberRights(parameter));
// } else {
// // 编辑券
// return this.toAjax(candyMgtCouponAdminService.editMgtCouponForMemberRights(parameter));
// }
LambdaQueryWrapper
<
CandyMgtCoupon
>
mgtCouponLambdaQueryWrapper
=
Wrappers
.
lambdaQuery
();
mgtCouponLambdaQueryWrapper
.
eq
(
CandyMgtCoupon:
:
getMcouponId
,
parameter
.
getMrightsId
());
mgtCouponLambdaQueryWrapper
.
in
(
CandyMgtCoupon:
:
getCouponId
,
parameter
.
getCouponId
(),
parameter
.
getOperCouponId
());
mgtCouponLambdaQueryWrapper
.
eq
(
CandyMgtCoupon:
:
getState
,
10
);
List
<
CandyMgtCoupon
>
mgtCouponList
=
candyMgtCouponAdminService
.
list
(
mgtCouponLambdaQueryWrapper
);
switch
(
parameter
.
getOper
())
{
case
1
:
// 添加
if
(!
CollectionUtils
.
isEmpty
(
mgtCouponList
))
{
logger
.
warn
(
"会员权益[{}]已配置该券[{}]"
,
parameter
.
getMrightsId
(),
parameter
.
getCouponId
());
return
this
.
error
(
AjaxResult
.
Type
.
WARN
,
"该权益已配置当前券,请选择其它券"
);
}
break
;
case
2
:
// 删除
if
(
CollectionUtils
.
isEmpty
(
mgtCouponList
))
{
logger
.
warn
(
"会员权益[{}]中不存在该券[{}]"
,
parameter
.
getMrightsId
(),
parameter
.
getCouponId
());
return
this
.
error
(
AjaxResult
.
Type
.
WARN
,
"该权益未配置当前券,请核实确认"
);
}
break
;
case
3
:
// 编辑
if
(
StringUtils
.
isBlank
(
parameter
.
getOperCouponId
()))
{
logger
.
warn
(
"会员权益券[{}]编辑未指定券ID[{},{}]"
,
parameter
.
getMrightsId
(),
parameter
.
getOperCouponId
(),
parameter
.
getCouponId
());
return
this
.
error
(
AjaxResult
.
Type
.
WARN
,
"编辑未指定券ID【operCouponId】"
);
}
if
(
CollectionUtils
.
isEmpty
(
mgtCouponList
))
{
logger
.
warn
(
"会员权益[{}]编辑指定券[{}]无效"
,
parameter
.
getMrightsId
(),
parameter
.
getCouponId
());
return
this
.
error
(
AjaxResult
.
Type
.
WARN
,
String
.
format
(
"编辑指定券【%s】无效"
,
parameter
.
getOperCouponId
()));
}
break
;
default
:
logger
.
warn
(
"Invalid operation[parameter.oper={}]"
,
parameter
.
getOper
());
return
this
.
error
(
AjaxResult
.
Type
.
WARN
,
"无效操作"
);
}
try
{
return
this
.
toAjax
(
candyMgtCouponAdminService
.
saveUpdateMgtCouponForMemberRights
(
parameter
,
coupon
));
}
catch
(
Exception
e
)
{
logger
.
error
(
"会员管理:会员卡编辑:权益券配置异常"
,
e
);
return
this
.
toAjax
(
false
);
}
}
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/candy/service/ICandyMgtCouponAdminService.java
View file @
b0774a17
...
...
@@ -10,9 +10,11 @@ import java.util.List;
public
interface
ICandyMgtCouponAdminService
extends
IService
<
CandyMgtCoupon
>
{
boolean
saveMgtCouponForMemberRights
(
CandyMemberCouponBuildParam
parameter
);
//
boolean saveMgtCouponForMemberRights(CandyMemberCouponBuildParam parameter);
boolean
editMgtCouponForMemberRights
(
CandyMemberCouponBuildParam
parameter
);
// boolean editMgtCouponForMemberRights(CandyMemberCouponBuildParam parameter);
boolean
saveUpdateMgtCouponForMemberRights
(
CandyMemberCouponMatchParam
parameter
,
CandyCoupon
coupon
);
boolean
saveMgtCouponForCouponBuild
(
CandyMgtCouponBuildParam
parameter
);
...
...
@@ -20,7 +22,7 @@ public interface ICandyMgtCouponAdminService extends IService<CandyMgtCoupon> {
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);
List
<
CandyMgtCouponInfoDto
>
listForMgtCouponInfoDto
(
CandyMgtCouponListParam
listParam
);
...
...
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/candy/service/impl/CandyMgtCouponAdminServiceImpl.java
View file @
b0774a17
...
...
@@ -10,13 +10,13 @@ import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberPriceAdminSer
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.ICandyMgtCouponAdminService
;
import
com.liquidnet.common.cache.redis.util.AbstractRedisUtil
;
import
com.liquidnet.common.cache.redis.util.RedisDataSourceUtil
;
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.dto.vo.AdamMemberRightsCouponRuleVo
;
import
com.liquidnet.service.adam.dto.vo.AdamMemberRightsCouponVo
;
import
com.liquidnet.service.adam.entity.AdamMemberPrice
;
import
com.liquidnet.service.candy.dto.admin.*
;
import
com.liquidnet.service.candy.entity.CandyCoupon
;
import
com.liquidnet.service.candy.entity.CandyCouponRule
;
...
...
@@ -55,148 +55,300 @@ public class CandyMgtCouponAdminServiceImpl extends ServiceImpl<CandyMgtCouponMa
@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-发放至用户|2-积分兑换|3-发放需领取]
// //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(nowTime);
// // 会员权益券失效时间duedAt需要同步会员到期时间expiryAt
// //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();
// List<CandyCouponRule> initCouponRuleList = new ArrayList<>();
// CandyMgtCoupon updateMgtCoupon = new CandyMgtCoupon();
//
// switch (parameter.getState()) {
// case 1:// 编辑
//// CandyCoupon updateCoupon = new CandyCoupon();
// updateCoupon.setCouponId(couponId);
// updateCoupon.setState(1);
//
// 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.setEffectAt(nowTime);// 会员权益券失效时间duedAt需要同步会员到期时间expiryAt
// 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.setCouponId(couponId);
// updateMgtCoupon.setEventAmt(parameter.getEventAmt());
// updateMgtCoupon.setOperator(operator);
// updateMgtCoupon.setUpdatedAt(nowTime);
// break;
// case 2:// 删除
// updateCoupon.setCouponId(couponId);
// updateCoupon.setOperator(operator);
// updateCoupon.setUpdatedAt(nowTime);
// updateCoupon.setState(2);
// updateCoupon.setExclusive(1);
//
// updateMgtCoupon.setMcouponId(parameter.getMrightsId());
// updateMgtCoupon.setCouponId(couponId);
// updateMgtCoupon.setOperator(operator);
// updateMgtCoupon.setUpdatedAt(nowTime);
// updateMgtCoupon.setState(2);
// break;
// }
//
// return candyMgtCouponAdminService.updateMgtCouponInfo(updateCoupon, updateMgtCoupon, initCouponRuleList);
// }
// return false;
// }
@Override
public
boolean
saveMgtCouponForMemberRights
(
CandyMemberCouponBuildParam
parameter
)
{
String
memberId
=
parameter
.
getMemberId
(),
operator
=
ShiroUtils
.
getLoginName
();
@Transactional
public
boolean
saveUpdateMgtCouponForMemberRights
(
CandyMemberCouponMatchParam
parameter
,
CandyCoupon
coupon
)
{
String
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-发放至用户|2-积分兑换|3-发放需领取]
//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
(
nowTime
);
// 会员权益券失效时间duedAt需要同步会员到期时间expiryAt
//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
);
});
LambdaQueryWrapper
<
CandyCouponRule
>
couponRuleLambdaQueryWrapper
=
Wrappers
.
lambdaQuery
();
couponRuleLambdaQueryWrapper
.
eq
(
CandyCouponRule:
:
getCouponId
,
parameter
.
getCouponId
());
couponRuleLambdaQueryWrapper
.
eq
(
CandyCouponRule:
:
getState
,
1
);
LambdaQueryWrapper
<
CandyMgtCoupon
>
mgtCouponLambdaQueryWrapper
=
Wrappers
.
lambdaQuery
();
mgtCouponLambdaQueryWrapper
.
eq
(
CandyMgtCoupon:
:
getMcouponId
,
parameter
.
getMrightsId
());
mgtCouponLambdaQueryWrapper
.
eq
(
CandyMgtCoupon:
:
getCouponId
,
parameter
.
getCouponId
());
mgtCouponLambdaQueryWrapper
.
eq
(
CandyMgtCoupon:
:
getState
,
10
);
AbstractRedisUtil
redisAdamUtil
=
redisDataSourceUtil
.
getRedisAdamUtil
();
List
<
AdamMemberRightsCouponRuleVo
>
memberRightsCouponRuleVoList
=
null
;
List
<
AdamMemberRightsCouponVo
>
memberRightsCouponVoList
=
null
;
CandyMgtCoupon
mgtCouponOper
=
new
CandyMgtCoupon
();
switch
(
parameter
.
getOper
())
{
case
1
:
// 添加 ===========================================================================================================================
mgtCouponOper
.
setMcouponId
(
parameter
.
getMrightsId
());
mgtCouponOper
.
setCouponId
(
parameter
.
getCouponId
());
mgtCouponOper
.
setState
(
10
);
// 发放状态[0-未发放|1-已发放|2-无效|9-发放中|10-会员礼包初始模版]
mgtCouponOper
.
setEventAmt
(
parameter
.
getEventAmt
());
mgtCouponOper
.
setEventType
(
2
);
//mgtCouponOper.setEventLimit();
//mgtCouponOper.setEventAt();
mgtCouponOper
.
setOperator
(
operator
);
mgtCouponOper
.
setCreatedAt
(
nowTime
);
if
(
candyMgtCouponMapper
.
insert
(
mgtCouponOper
)
<=
0
)
{
return
false
;
}
// 同步REDIS:用户端:购买会员详情页:权益列表:权益详情:专享券信息
memberRightsCouponVoList
=
(
List
<
AdamMemberRightsCouponVo
>)
redisAdamUtil
.
get
(
AdamRedisConst
.
INFO_MEMBER_RIGHTS_COUPON
.
concat
(
parameter
.
getMrightsId
())
);
memberRightsCouponRuleVoList
=
this
.
copyFromCandyCouponRule
(
candyCouponRuleAdminService
.
list
(
couponRuleLambdaQueryWrapper
));
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
);
if
(!
CollectionUtils
.
isEmpty
(
memberRightsCouponVoList
))
{
memberRightsCouponVoList
.
removeIf
(
r
->
r
.
getCouponId
().
equals
(
parameter
.
getCouponId
()));
}
else
{
memberRightsCouponVoList
=
new
ArrayList
<>();
}
for
(
int
i
=
0
;
i
<
parameter
.
getEventAmt
();
i
++)
{
AdamMemberRightsCouponVo
memberRightsCouponVo
=
AdamMemberRightsCouponVo
.
getNew
();
memberRightsCouponVo
.
setMrightsId
(
parameter
.
getMrightsId
());
memberRightsCouponVo
.
setCouponId
(
parameter
.
getCouponId
());
memberRightsCouponVo
.
setBusiType
(
coupon
.
getBusiType
());
memberRightsCouponVo
.
setCouType
(
coupon
.
getCouType
());
memberRightsCouponVo
.
setTitle
(
coupon
.
getTitle
());
memberRightsCouponVo
.
setLabel
(
coupon
.
getLabel
());
memberRightsCouponVo
.
setNotice
(
coupon
.
getNotice
());
memberRightsCouponVo
.
setValFace
(
coupon
.
getValFace
());
memberRightsCouponVo
.
setValOver
(
coupon
.
getValOver
());
memberRightsCouponVo
.
setValMinus
(
coupon
.
getValMinus
());
memberRightsCouponVo
.
setDiscount
(
coupon
.
getDiscount
());
memberRightsCouponVo
.
setUseRules
(
memberRightsCouponRuleVoList
);
@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
();
List
<
CandyCouponRule
>
initCouponRuleList
=
new
ArrayList
<>();
CandyMgtCoupon
updateMgtCoupon
=
new
CandyMgtCoupon
();
switch
(
parameter
.
getState
())
{
case
1
:
// 编辑
// CandyCoupon updateCoupon = new CandyCoupon();
updateCoupon
.
setCouponId
(
couponId
);
updateCoupon
.
setState
(
1
);
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
.
setEffectAt
(
nowTime
);
// 会员权益券失效时间duedAt需要同步会员到期时间expiryAt
updateCoupon
.
setUpdatedAt
(
nowTime
);
memberRightsCouponVoList
.
add
(
memberRightsCouponVo
);
}
break
;
case
2
:
// 删除 ===========================================================================================================================
mgtCouponOper
.
setState
(
2
);
mgtCouponOper
.
setOperator
(
operator
);
mgtCouponOper
.
setUpdatedAt
(
nowTime
);
if
(!
candyMgtCouponAdminService
.
update
(
mgtCouponOper
,
mgtCouponLambdaQueryWrapper
))
{
return
false
;
}
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
);
// 同步REDIS:用户端:购买会员详情页:权益列表:权益详情:专享券信息
memberRightsCouponVoList
=
(
List
<
AdamMemberRightsCouponVo
>)
redisAdamUtil
.
get
(
AdamRedisConst
.
INFO_MEMBER_RIGHTS_COUPON
.
concat
(
parameter
.
getMrightsId
())
);
if
(!
CollectionUtils
.
isEmpty
(
memberRightsCouponVoList
))
{
memberRightsCouponVoList
.
removeIf
(
r
->
r
.
getCouponId
().
equals
(
parameter
.
getCouponId
()));
}
break
;
case
3
:
// 编辑 ===========================================================================================================================
CandyMgtCoupon
existMgtCoupon
=
candyMgtCouponAdminService
.
getOne
(
mgtCouponLambdaQueryWrapper
);
if
(
null
==
existMgtCoupon
)
{
// 不存在,则为新选更换(删除旧配置,添加新配置)
LambdaUpdateWrapper
<
CandyMgtCoupon
>
mgtCouponLambdaUpdateWrapper
=
Wrappers
.
lambdaUpdate
();
mgtCouponLambdaUpdateWrapper
.
eq
(
CandyMgtCoupon:
:
getMcouponId
,
parameter
.
getMrightsId
());
mgtCouponLambdaUpdateWrapper
.
eq
(
CandyMgtCoupon:
:
getCouponId
,
parameter
.
getOperCouponId
());
mgtCouponLambdaUpdateWrapper
.
eq
(
CandyMgtCoupon:
:
getState
,
10
);
mgtCouponLambdaUpdateWrapper
.
set
(
CandyMgtCoupon:
:
getState
,
2
);
mgtCouponLambdaUpdateWrapper
.
set
(
CandyMgtCoupon:
:
getOperator
,
operator
);
mgtCouponLambdaUpdateWrapper
.
set
(
CandyMgtCoupon:
:
getUpdatedAt
,
nowTime
);
mgtCouponOper
.
setMcouponId
(
parameter
.
getMrightsId
());
mgtCouponOper
.
setCouponId
(
parameter
.
getCouponId
());
mgtCouponOper
.
setState
(
10
);
// 发放状态[0-未发放|1-已发放|2-无效|9-发放中|10-会员礼包初始模版]
mgtCouponOper
.
setEventAmt
(
parameter
.
getEventAmt
());
mgtCouponOper
.
setEventType
(
2
);
mgtCouponOper
.
setOperator
(
operator
);
mgtCouponOper
.
setCreatedAt
(
nowTime
);
if
(!
candyMgtCouponAdminService
.
update
(
mgtCouponLambdaUpdateWrapper
)
||
candyMgtCouponMapper
.
insert
(
mgtCouponOper
)
<=
0
)
{
throw
new
LiquidnetServiceException
(
"500"
,
"编辑券新选更换数据更新失败"
);
}
}
else
{
// 存在,则更新发放信息
mgtCouponOper
.
setEventAmt
(
parameter
.
getEventAmt
());
mgtCouponOper
.
setOperator
(
operator
);
mgtCouponOper
.
setUpdatedAt
(
nowTime
);
initCouponRuleList
.
add
(
initCouponRule
);
});
if
(!
candyMgtCouponAdminService
.
update
(
mgtCouponOper
,
mgtCouponLambdaQueryWrapper
))
{
return
false
;
}
}
// CandyMgtCoupon updateMgtCoupon = new CandyMgtCoupon();
updateMgtCoupon
.
setMcouponId
(
parameter
.
getMrightsId
());
updateMgtCoupon
.
setCouponId
(
couponId
);
updateMgtCoupon
.
setEventAmt
(
parameter
.
getEventAmt
());
updateMgtCoupon
.
setOperator
(
operator
);
updateMgtCoupon
.
setUpdatedAt
(
nowTime
);
break
;
case
2
:
// 删除
updateCoupon
.
setCouponId
(
couponId
);
updateCoupon
.
setOperator
(
operator
);
updateCoupon
.
setUpdatedAt
(
nowTime
);
updateCoupon
.
setState
(
2
);
updateCoupon
.
setExclusive
(
1
);
updateMgtCoupon
.
setMcouponId
(
parameter
.
getMrightsId
());
updateMgtCoupon
.
setCouponId
(
couponId
);
updateMgtCoupon
.
setOperator
(
operator
);
updateMgtCoupon
.
setUpdatedAt
(
nowTime
);
updateMgtCoupon
.
setState
(
2
);
break
;
// 同步REDIS:用户端:购买会员详情页:权益列表:权益详情:专享券信息
memberRightsCouponVoList
=
(
List
<
AdamMemberRightsCouponVo
>)
redisAdamUtil
.
get
(
AdamRedisConst
.
INFO_MEMBER_RIGHTS_COUPON
.
concat
(
parameter
.
getMrightsId
())
);
memberRightsCouponRuleVoList
=
this
.
copyFromCandyCouponRule
(
candyCouponRuleAdminService
.
list
(
couponRuleLambdaQueryWrapper
));
if
(!
CollectionUtils
.
isEmpty
(
memberRightsCouponVoList
))
{
memberRightsCouponVoList
.
removeIf
(
r
->
r
.
getCouponId
().
equals
(
parameter
.
getOperCouponId
()));
}
else
{
memberRightsCouponVoList
=
new
ArrayList
<>();
}
for
(
int
i
=
0
;
i
<
parameter
.
getEventAmt
();
i
++)
{
AdamMemberRightsCouponVo
memberRightsCouponVo
=
AdamMemberRightsCouponVo
.
getNew
();
memberRightsCouponVo
.
setMrightsId
(
parameter
.
getMrightsId
());
memberRightsCouponVo
.
setCouponId
(
parameter
.
getCouponId
());
memberRightsCouponVo
.
setBusiType
(
coupon
.
getBusiType
());
memberRightsCouponVo
.
setCouType
(
coupon
.
getCouType
());
memberRightsCouponVo
.
setTitle
(
coupon
.
getTitle
());
memberRightsCouponVo
.
setLabel
(
coupon
.
getLabel
());
memberRightsCouponVo
.
setNotice
(
coupon
.
getNotice
());
memberRightsCouponVo
.
setValFace
(
coupon
.
getValFace
());
memberRightsCouponVo
.
setValOver
(
coupon
.
getValOver
());
memberRightsCouponVo
.
setValMinus
(
coupon
.
getValMinus
());
memberRightsCouponVo
.
setDiscount
(
coupon
.
getDiscount
());
memberRightsCouponVo
.
setUseRules
(
memberRightsCouponRuleVoList
);
return
candyMgtCouponAdminService
.
updateMgtCouponInfo
(
updateCoupon
,
updateMgtCoupon
,
initCouponRuleList
);
memberRightsCouponVoList
.
add
(
memberRightsCouponVo
);
}
break
;
default
:
// 无效 ===========================================================================================================================
log
.
warn
(
"Invalid operation[parameter.oper={}]"
,
parameter
.
getOper
());
return
false
;
}
return
redisAdamUtil
.
set
(
AdamRedisConst
.
INFO_MEMBER_RIGHTS_COUPON
.
concat
(
parameter
.
getMrightsId
()),
memberRightsCouponVoList
);
}
@Override
public
boolean
saveMgtCouponForCouponBuild
(
CandyMgtCouponBuildParam
parameter
)
{
...
...
@@ -286,53 +438,53 @@ public class CandyMgtCouponAdminServiceImpl extends ServiceImpl<CandyMgtCouponMa
throw
new
LiquidnetServiceException
();
}
switch
(
initCoupon
.
getExclusive
())
{
case
0
:
break
;
case
1
:
this
.
syncRdsForMemberRightsCouponProcessing
(
false
,
initCoupon
,
initMgtCoupon
,
initCouponRuleList
);
break
;
}
//
switch (initCoupon.getExclusive()) {
//
case 0:
//
break;
//
case 1:
//
this.syncRdsForMemberRightsCouponProcessing(false, initCoupon, initMgtCoupon, initCouponRuleList);
//
break;
//
}
return
true
;
}
@Override
@Transactional
public
boolean
updateMgtCouponInfo
(
CandyCoupon
updateCoupon
,
CandyMgtCoupon
updateMgtCoupon
,
List
<
CandyCouponRule
>
initCouponRuleList
)
{
LambdaUpdateWrapper
<
CandyCoupon
>
couponLambdaUpdateWrapper
=
Wrappers
.
lambdaUpdate
(
CandyCoupon
.
class
)
.
eq
(
CandyCoupon:
:
getCouponId
,
updateCoupon
.
getCouponId
())
.
eq
(
CandyCoupon:
:
getState
,
1
)
.
eq
(
CandyCoupon:
:
getExclusive
,
updateCoupon
.
getExclusive
());
int
updateCt
=
candyCouponMapper
.
update
(
updateCoupon
,
couponLambdaUpdateWrapper
);
LambdaUpdateWrapper
<
CandyMgtCoupon
>
mgtCouponLambdaUpdateWrapper
=
Wrappers
.
lambdaUpdate
(
CandyMgtCoupon
.
class
);
mgtCouponLambdaUpdateWrapper
.
eq
(
CandyMgtCoupon:
:
getMcouponId
,
updateMgtCoupon
.
getMcouponId
());
mgtCouponLambdaUpdateWrapper
.
eq
(
CandyMgtCoupon:
:
getCouponId
,
updateMgtCoupon
.
getCouponId
());
mgtCouponLambdaUpdateWrapper
.
eq
(
CandyMgtCoupon:
:
getState
,
updateCoupon
.
getExclusive
()
==
1
?
10
:
0
);
updateCt
+=
candyMgtCouponMapper
.
update
(
updateMgtCoupon
,
mgtCouponLambdaUpdateWrapper
);
LambdaUpdateWrapper
<
CandyCouponRule
>
couponRuleLambdaUpdateWrapper
=
Wrappers
.
lambdaUpdate
(
CandyCouponRule
.
class
)
.
eq
(
CandyCouponRule:
:
getCouponId
,
updateCoupon
.
getCouponId
())
.
eq
(
CandyCouponRule:
:
getState
,
1
)
.
set
(
CandyCouponRule:
:
getState
,
2
);
candyCouponRuleAdminService
.
update
(
couponRuleLambdaUpdateWrapper
);
if
(
updateCt
<
2
||
(!
CollectionUtils
.
isEmpty
(
initCouponRuleList
)
&&
!
candyCouponRuleAdminService
.
saveBatch
(
initCouponRuleList
)))
{
throw
new
LiquidnetServiceException
();
}
switch
(
updateCoupon
.
getExclusive
())
{
case
0
:
break
;
case
1
:
this
.
syncRdsForMemberRightsCouponProcessing
(
true
,
updateCoupon
,
updateMgtCoupon
,
initCouponRuleList
);
break
;
}
return
true
;
}
//
@Override
//
@Transactional
//
public boolean updateMgtCouponInfo(CandyCoupon updateCoupon, CandyMgtCoupon updateMgtCoupon, List<CandyCouponRule> initCouponRuleList) {
//
LambdaUpdateWrapper<CandyCoupon> couponLambdaUpdateWrapper = Wrappers.lambdaUpdate(CandyCoupon.class)
//
.eq(CandyCoupon::getCouponId, updateCoupon.getCouponId())
//
.eq(CandyCoupon::getState, 1)
//
.eq(CandyCoupon::getExclusive, updateCoupon.getExclusive());
//
int updateCt = candyCouponMapper.update(updateCoupon, couponLambdaUpdateWrapper);
//
//
LambdaUpdateWrapper<CandyMgtCoupon> mgtCouponLambdaUpdateWrapper = Wrappers.lambdaUpdate(CandyMgtCoupon.class);
//
mgtCouponLambdaUpdateWrapper.eq(CandyMgtCoupon::getMcouponId, updateMgtCoupon.getMcouponId());
//
mgtCouponLambdaUpdateWrapper.eq(CandyMgtCoupon::getCouponId, updateMgtCoupon.getCouponId());
//
mgtCouponLambdaUpdateWrapper.eq(CandyMgtCoupon::getState, updateCoupon.getExclusive() == 1 ? 10 : 0);
//
updateCt += candyMgtCouponMapper.update(updateMgtCoupon, mgtCouponLambdaUpdateWrapper);
//
//
//
LambdaUpdateWrapper<CandyCouponRule> couponRuleLambdaUpdateWrapper = Wrappers.lambdaUpdate(CandyCouponRule.class)
//
.eq(CandyCouponRule::getCouponId, updateCoupon.getCouponId())
//
.eq(CandyCouponRule::getState, 1)
//
.set(CandyCouponRule::getState, 2);
//
candyCouponRuleAdminService.update(couponRuleLambdaUpdateWrapper);
//
//
if (updateCt < 2 || (!CollectionUtils.isEmpty(initCouponRuleList) && !candyCouponRuleAdminService.saveBatch(initCouponRuleList))) {
//
throw new LiquidnetServiceException();
//
}
//
//
switch (updateCoupon.getExclusive()) {
//
case 0:
//
break;
//
case 1:
//
this.syncRdsForMemberRightsCouponProcessing(true, updateCoupon, updateMgtCoupon, initCouponRuleList);
//
break;
//
}
//
//
return true;
//
}
@Override
public
List
<
CandyMgtCouponInfoDto
>
listForMgtCouponInfoDto
(
CandyMgtCouponListParam
listParam
)
{
...
...
@@ -348,6 +500,7 @@ public class CandyMgtCouponAdminServiceImpl extends ServiceImpl<CandyMgtCouponMa
private
List
<
AdamMemberRightsCouponRuleVo
>
copyFromCandyCouponRule
(
List
<
CandyCouponRule
>
couponRuleList
)
{
List
<
AdamMemberRightsCouponRuleVo
>
memberRightsCouponRuleVoList
=
new
ArrayList
<>();
if
(!
CollectionUtils
.
isEmpty
(
couponRuleList
))
{
couponRuleList
.
forEach
(
r
->
{
AdamMemberRightsCouponRuleVo
memberRightsCouponRuleVo
=
AdamMemberRightsCouponRuleVo
.
getNew
();
memberRightsCouponRuleVo
.
setBusiId
(
r
.
getBusiId
());
...
...
@@ -356,50 +509,51 @@ public class CandyMgtCouponAdminServiceImpl extends ServiceImpl<CandyMgtCouponMa
memberRightsCouponRuleVoList
.
add
(
memberRightsCouponRuleVo
);
});
return
memberRightsCouponRuleVoList
;
}
/**
* 同步REDIS:用户端:购买会员详情页:权益列表:权益详情:专享券信息
*
* @param editing true-编辑|false-新增
* @param updateCoupon CandyCoupon
* @param updateMgtCoupon CandyCoupon
* @param initCouponRuleList List<CandyCouponRule>
*/
private
void
syncRdsForMemberRightsCouponProcessing
(
boolean
editing
,
CandyCoupon
updateCoupon
,
CandyMgtCoupon
updateMgtCoupon
,
List
<
CandyCouponRule
>
initCouponRuleList
)
{
List
<
AdamMemberRightsCouponRuleVo
>
memberRightsCouponRuleVoList
=
this
.
copyFromCandyCouponRule
(
initCouponRuleList
);
List
<
AdamMemberRightsCouponVo
>
memberRightsCouponVoList
=
(
List
<
AdamMemberRightsCouponVo
>)
redisDataSourceUtil
.
getRedisAdamUtil
().
get
(
AdamRedisConst
.
INFO_MEMBER_RIGHTS_COUPON
.
concat
(
updateMgtCoupon
.
getMcouponId
()));
if
(
editing
)
{
// 编辑操作
memberRightsCouponVoList
.
removeIf
(
r
->
r
.
getCouponId
().
equals
(
updateCoupon
.
getCouponId
()));
}
else
{
// 新增操作
if
(
CollectionUtils
.
isEmpty
(
memberRightsCouponVoList
))
{
memberRightsCouponVoList
=
new
ArrayList
<>();
}
}
if
(
updateCoupon
.
getState
()
==
1
)
{
Integer
eventAmt
=
updateMgtCoupon
.
getEventAmt
();
for
(
int
i
=
0
;
i
<
eventAmt
;
i
++)
{
AdamMemberRightsCouponVo
memberRightsCouponVo
=
AdamMemberRightsCouponVo
.
getNew
();
memberRightsCouponVo
.
setMrightsId
(
updateMgtCoupon
.
getMcouponId
());
memberRightsCouponVo
.
setCouponId
(
updateCoupon
.
getCouponId
());
memberRightsCouponVo
.
setBusiType
(
updateCoupon
.
getBusiType
());
memberRightsCouponVo
.
setCouType
(
updateCoupon
.
getCouType
());
memberRightsCouponVo
.
setTitle
(
updateCoupon
.
getTitle
());
memberRightsCouponVo
.
setLabel
(
updateCoupon
.
getLabel
());
memberRightsCouponVo
.
setNotice
(
updateCoupon
.
getNotice
());
memberRightsCouponVo
.
setValFace
(
updateCoupon
.
getValFace
());
memberRightsCouponVo
.
setValOver
(
updateCoupon
.
getValOver
());
memberRightsCouponVo
.
setValMinus
(
updateCoupon
.
getValMinus
());
memberRightsCouponVo
.
setUseRules
(
memberRightsCouponRuleVoList
);
memberRightsCouponVoList
.
add
(
memberRightsCouponVo
);
}
return
memberRightsCouponRuleVoList
;
}
redisDataSourceUtil
.
getRedisAdamUtil
().
set
(
AdamRedisConst
.
INFO_MEMBER_RIGHTS_COUPON
.
concat
(
updateMgtCoupon
.
getMcouponId
()),
memberRightsCouponVoList
);
}
// /**
// * 同步REDIS:用户端:购买会员详情页:权益列表:权益详情:专享券信息
// *
// * @param editing true-编辑|false-新增
// * @param updateCoupon CandyCoupon
// * @param updateMgtCoupon updateMgtCoupon
// * @param initCouponRuleList List<CandyCouponRule>
// */
// private void syncRdsForMemberRightsCouponProcessing(boolean editing, CandyCoupon updateCoupon, CandyMgtCoupon updateMgtCoupon, List<CandyCouponRule> initCouponRuleList) {
// List<AdamMemberRightsCouponRuleVo> memberRightsCouponRuleVoList = this.copyFromCandyCouponRule(initCouponRuleList);
//
// List<AdamMemberRightsCouponVo> memberRightsCouponVoList =
// (List<AdamMemberRightsCouponVo>) redisDataSourceUtil.getRedisAdamUtil().get(AdamRedisConst.INFO_MEMBER_RIGHTS_COUPON.concat(updateMgtCoupon.getMcouponId()));
// if (editing) {// 编辑操作
// memberRightsCouponVoList.removeIf(r -> r.getCouponId().equals(updateCoupon.getCouponId()));
// } else {// 新增操作
// if (CollectionUtils.isEmpty(memberRightsCouponVoList)) {
// memberRightsCouponVoList = new ArrayList<>();
// }
// }
//
// if (updateCoupon.getState() == 1) {
// Integer eventAmt = updateMgtCoupon.getEventAmt();
// for (int i = 0; i < eventAmt; i++) {
// AdamMemberRightsCouponVo memberRightsCouponVo = AdamMemberRightsCouponVo.getNew();
// memberRightsCouponVo.setMrightsId(updateMgtCoupon.getMcouponId());
// memberRightsCouponVo.setCouponId(updateCoupon.getCouponId());
// memberRightsCouponVo.setBusiType(updateCoupon.getBusiType());
// memberRightsCouponVo.setCouType(updateCoupon.getCouType());
// memberRightsCouponVo.setTitle(updateCoupon.getTitle());
// memberRightsCouponVo.setLabel(updateCoupon.getLabel());
// memberRightsCouponVo.setNotice(updateCoupon.getNotice());
// memberRightsCouponVo.setValFace(updateCoupon.getValFace());
// memberRightsCouponVo.setValOver(updateCoupon.getValOver());
// memberRightsCouponVo.setValMinus(updateCoupon.getValMinus());
// memberRightsCouponVo.setUseRules(memberRightsCouponRuleVoList);
//
// memberRightsCouponVoList.add(memberRightsCouponVo);
// }
// }
//
// redisDataSourceUtil.getRedisAdamUtil().set(AdamRedisConst.INFO_MEMBER_RIGHTS_COUPON.concat(updateMgtCoupon.getMcouponId()), memberRightsCouponVoList);
// }
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment