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

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

购买会员详情页+默认权益信息;

parent b054cd96
...@@ -23,7 +23,15 @@ public class AdamRedisConst { ...@@ -23,7 +23,15 @@ public class AdamRedisConst {
public static final String INFO_MEMBER_SIMPLE = PREFIX.concat("info:member:simple"); public static final String INFO_MEMBER_SIMPLE = PREFIX.concat("info:member:simple");
public static final String INFO_MEMBER_CATEGORY = PREFIX.concat("info:member:category:"); public static final String INFO_MEMBER_CATEGORY = PREFIX.concat("info:member:category:");
public static final String INFO_MEMBER_PRICE = PREFIX.concat("info:member:price:"); public static final String INFO_MEMBER_PRICE = PREFIX.concat("info:member:price:");
/**
* 默认会员权益
*/
public static final String INFO_MEMBER_RIGHTS = PREFIX.concat("info:member:rights:"); public static final String INFO_MEMBER_RIGHTS = PREFIX.concat("info:member:rights:");
/**
* 老会员权益
*/
public static final String INFO_MEMBER_RIGHTS_V = PREFIX.concat("info:member:rights:v:");
public static final String INFO_MEMBER_RIGHTS_COUPON = PREFIX.concat("info:member:rights_coupon:");
public static final String INFO_MEMBER_AGREEMENT = PREFIX.concat("info:member:agreement"); public static final String INFO_MEMBER_AGREEMENT = PREFIX.concat("info:member:agreement");
public static final String INFO_MEMBER_CODE = PREFIX.concat("info:member:code:"); public static final String INFO_MEMBER_CODE = PREFIX.concat("info:member:code:");
......
package com.liquidnet.service.adam.dto.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@ApiModel(value = "AdamMemberRightsCouponVo", description = "会员专享特权券")
@Data
public class AdamMemberRightsCouponVo implements java.io.Serializable, Cloneable {
private static final long serialVersionUID = 4099907681723174194L;
@ApiModelProperty(position = 1, value = "权益ID")
private String mrightsId;
@ApiModelProperty(position = 2, value = "券ID")
private String couponId;
@ApiModelProperty(position = 3, value = "券类别[0-全场|1-演出|2-商品|3-优先购]")
private Integer busiType;
@ApiModelProperty(position = 4, value = "券类型[1-代金券|2-满减券|3-兑换券|4-折扣券]")
private Integer couType;
@ApiModelProperty(position = 5, value = "券标题")
private String title;
@ApiModelProperty(position = 6, value = "券标注")
private String label;
@ApiModelProperty(position = 7, value = "注意/须知")
private String notice;
@ApiModelProperty(position = 8, value = "券面值")
private BigDecimal valFace;
@ApiModelProperty(position = 9, value = "满减~满")
private BigDecimal valOver;
@ApiModelProperty(position = 10, value = "满减~减")
private BigDecimal valMinus;
private static final AdamMemberRightsCouponVo obj = new AdamMemberRightsCouponVo();
public static AdamMemberRightsCouponVo getNew() {
try {
return (AdamMemberRightsCouponVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new AdamMemberRightsCouponVo();
}
}
}
package com.liquidnet.service.adam.dto.vo;
import com.liquidnet.service.adam.entity.AdamMemberRights;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@ApiModel(value = "AdamMemberRightsVo", description = "会员权益详情")
public class AdamMemberRightsDetailVo implements java.io.Serializable, Cloneable {
private static final long serialVersionUID = -2407106925001008460L;
@ApiModelProperty(position = 1, value = "权益信息")
private AdamMemberRightsVo rightsVo;
@ApiModelProperty(position = 11, value = "专享券列表")
private List<AdamMemberRightsCouponVo> couponVoList;
public AdamMemberRightsVo getRightsVo() {
return rightsVo;
}
public AdamMemberRightsDetailVo setRightsVo(AdamMemberRightsVo rightsVo) {
this.rightsVo = rightsVo;
return this;
}
public List<AdamMemberRightsCouponVo> getCouponVoList() {
return couponVoList;
}
public AdamMemberRightsDetailVo setCouponVoList(List<AdamMemberRightsCouponVo> couponVoList) {
this.couponVoList = couponVoList;
return this;
}
private static final AdamMemberRightsDetailVo obj = new AdamMemberRightsDetailVo();
public static AdamMemberRightsDetailVo getNew() {
try {
return (AdamMemberRightsDetailVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new AdamMemberRightsDetailVo();
}
}
}
package com.liquidnet.service.adam.dto.vo; package com.liquidnet.service.adam.dto.vo;
import com.liquidnet.service.adam.entity.AdamMemberRights;
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 java.util.Arrays;
import java.util.List;
@ApiModel(value = "AdamMemberRightsVo", description = "会员") @ApiModel(value = "AdamMemberRightsVo", description = "会员")
@Data @Data
public class AdamMemberRightsVo implements java.io.Serializable, Cloneable { public class AdamMemberRightsVo implements java.io.Serializable, Cloneable {
private static final long serialVersionUID = -2407106925001008460L; private static final long serialVersionUID = -2407106925001008460L;
@ApiModelProperty(position = 0, value = "权益封面[255]") @ApiModelProperty(position = 1, value = "权益ID")
private String mrightsId;
@ApiModelProperty(position = 2, value = "排列序号")
private Integer seqNo;
@ApiModelProperty(position = 3, value = "权益标题")
private String title;
@ApiModelProperty(position = 4, value = "副标题")
private String subTitle;
@ApiModelProperty(position = 5, value = "标注")
private String label;
@ApiModelProperty(position = 6, value = "图片标识")
private String cover; private String cover;
@ApiModelProperty(position = 1, value = "权益名称[10]") @ApiModelProperty(position = 7, value = "详情内容")
private String name; private String detail;
@ApiModelProperty(position = 2, value = "展示顺序[2]")
private Integer sort;
private static final AdamMemberRightsVo obj = new AdamMemberRightsVo(); public AdamMemberRightsVo setSeqNo(Integer seqNo) {
this.seqNo = seqNo;
return this;
}
public static AdamMemberRightsVo getNew() { public AdamMemberRightsVo setTitle(String title) {
try { this.title = title;
return (AdamMemberRightsVo) obj.clone(); return this;
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new AdamMemberRightsVo();
} }
public AdamMemberRightsVo setCover(String cover) { public AdamMemberRightsVo setCover(String cover) {
...@@ -34,13 +39,24 @@ public class AdamMemberRightsVo implements java.io.Serializable, Cloneable { ...@@ -34,13 +39,24 @@ public class AdamMemberRightsVo implements java.io.Serializable, Cloneable {
return this; return this;
} }
public AdamMemberRightsVo setName(String name) { private static final AdamMemberRightsVo obj = new AdamMemberRightsVo();
this.name = name;
return this; public static AdamMemberRightsVo getNew() {
try {
return (AdamMemberRightsVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new AdamMemberRightsVo();
}
} }
public AdamMemberRightsVo setSort(Integer sort) { public AdamMemberRightsVo copy(AdamMemberRights source) {
this.sort = sort; if (null == source) return this;
this.setSeqNo(source.getSeqNo());
this.setTitle(source.getTitle());
this.setSubTitle(source.getSubTitle());
this.setLabel(source.getLabel());
this.setCover(source.getCover());
this.setDetail(source.getDetail());
return this; return this;
} }
} }
...@@ -10,6 +10,7 @@ import lombok.Data; ...@@ -10,6 +10,7 @@ import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
@ApiModel(value = "AdamUserMemberVo", description = "会员用户信息") @ApiModel(value = "AdamUserMemberVo", description = "会员用户信息")
@Data @Data
...@@ -33,6 +34,7 @@ public class AdamUserMemberVo implements Serializable, Cloneable { ...@@ -33,6 +34,7 @@ public class AdamUserMemberVo implements Serializable, Cloneable {
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR) @JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
private LocalDateTime updatedAt; private LocalDateTime updatedAt;
private static final LocalDateTime newMemberStartTime = LocalDateTime.parse("2021-08-02 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
private static final AdamUserMemberVo obj = new AdamUserMemberVo(); private static final AdamUserMemberVo obj = new AdamUserMemberVo();
public static AdamUserMemberVo getNew() { public static AdamUserMemberVo getNew() {
...@@ -65,4 +67,15 @@ public class AdamUserMemberVo implements Serializable, Cloneable { ...@@ -65,4 +67,15 @@ public class AdamUserMemberVo implements Serializable, Cloneable {
LocalDateTime expiryAt = this.getExpiryAt(); LocalDateTime expiryAt = this.getExpiryAt();
return this.getState() == 1 && null != expiryAt && expiryAt.isAfter(LocalDateTime.now()); return this.getState() == 1 && null != expiryAt && expiryAt.isAfter(LocalDateTime.now());
} }
/**
* 是否为老会员
*
* @return true-是
*/
@JsonIgnore
public boolean isOldMember() {
LocalDateTime createdAt = this.getCreatedAt();
return createdAt.isAfter(newMemberStartTime);
}
} }
...@@ -4,26 +4,36 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; ...@@ -4,26 +4,36 @@ 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.zhengzai.adam.service.IAdamMemberRightsAdminService; import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberRightsAdminService;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.IDGenerator; import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.admin.AdamMemberRightsBuildParam; import com.liquidnet.service.adam.dto.admin.AdamMemberRightsBuildParam;
import com.liquidnet.service.adam.dto.vo.AdamMemberRightsVo;
import com.liquidnet.service.adam.entity.AdamMemberRights; import com.liquidnet.service.adam.entity.AdamMemberRights;
import com.liquidnet.service.adam.mapper.AdamMemberRightsMapper; import com.liquidnet.service.adam.mapper.AdamMemberRightsMapper;
import org.apache.commons.lang3.StringUtils; 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.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.IntStream;
@Service @Service
public class AdamMemberRightsAdminServiceImpl extends ServiceImpl<AdamMemberRightsMapper, AdamMemberRights> implements IAdamMemberRightsAdminService { public class AdamMemberRightsAdminServiceImpl extends ServiceImpl<AdamMemberRightsMapper, AdamMemberRights> implements IAdamMemberRightsAdminService {
@Autowired @Autowired
private AdamMemberRightsMapper adamMemberRightsMapper; private AdamMemberRightsMapper adamMemberRightsMapper;
@Autowired
private RedisUtil redisUtil;
@Override @Override
public boolean edit(AdamMemberRightsBuildParam param) { public boolean edit(AdamMemberRightsBuildParam param) {
String mrightsId = param.getMrightsId(); String mrightsId = param.getMrightsId();
boolean saveOrUpadateRst; boolean saveOrUpadateRst, isAddFlag = StringUtils.isEmpty(mrightsId);
AdamMemberRights saveOrUpdateInfo = new AdamMemberRights(); AdamMemberRights saveOrUpdateInfo = new AdamMemberRights();
if (StringUtils.isEmpty(mrightsId)) { if (isAddFlag) {
saveOrUpdateInfo.setMrightsId(IDGenerator.nextMilliId2()); saveOrUpdateInfo.setMrightsId(IDGenerator.nextMilliId2());
saveOrUpdateInfo.setMemberId(param.getMemberId()); saveOrUpdateInfo.setMemberId(param.getMemberId());
saveOrUpdateInfo.setState(1); saveOrUpdateInfo.setState(1);
...@@ -50,6 +60,40 @@ public class AdamMemberRightsAdminServiceImpl extends ServiceImpl<AdamMemberRigh ...@@ -50,6 +60,40 @@ public class AdamMemberRightsAdminServiceImpl extends ServiceImpl<AdamMemberRigh
saveOrUpadateRst = adamMemberRightsMapper.update(saveOrUpdateInfo, updateWrapper) > 0; saveOrUpadateRst = adamMemberRightsMapper.update(saveOrUpdateInfo, updateWrapper) > 0;
} }
if (saveOrUpadateRst) {
// 同步REDIS:用户端:购买会员详情页:权益列表
List<AdamMemberRightsVo> vos = (List<AdamMemberRightsVo>) redisUtil.get(AdamRedisConst.INFO_MEMBER_RIGHTS.concat(param.getMemberId()));
if (CollectionUtils.isEmpty(vos)) {
vos = new ArrayList<>();
}
if (isAddFlag) {
vos.add(AdamMemberRightsVo.getNew().copy(saveOrUpdateInfo));
} else {
List<AdamMemberRightsVo> finalVos = vos;
int idx = IntStream.range(0, finalVos.size())
.filter(i -> finalVos.get(i).getMrightsId().equals(mrightsId))
.findFirst().orElse(-1);
if (-1 == idx) {
vos.add(AdamMemberRightsVo.getNew().copy(saveOrUpdateInfo));
} else {
AdamMemberRightsVo existVo = vos.get(idx);
existVo.setSeqNo(saveOrUpdateInfo.getSeqNo());
existVo.setTitle(saveOrUpdateInfo.getTitle());
existVo.setSubTitle(saveOrUpdateInfo.getSubTitle());
existVo.setLabel(saveOrUpdateInfo.getLabel());
existVo.setCover(saveOrUpdateInfo.getCover());
existVo.setDetail(saveOrUpdateInfo.getDetail());
vos.set(idx, existVo);
}
}
redisUtil.set(AdamRedisConst.INFO_MEMBER_RIGHTS.concat(param.getMemberId()), vos);
}
return saveOrUpadateRst; return saveOrUpadateRst;
} }
} }
...@@ -5,7 +5,10 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; ...@@ -5,7 +5,10 @@ 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.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.exception.LiquidnetServiceException; import com.liquidnet.common.exception.LiquidnetServiceException;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.vo.AdamMemberRightsCouponVo;
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;
...@@ -18,7 +21,9 @@ import lombok.extern.slf4j.Slf4j; ...@@ -18,7 +21,9 @@ import lombok.extern.slf4j.Slf4j;
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 java.util.ArrayList;
import java.util.List; import java.util.List;
@Slf4j @Slf4j
...@@ -31,6 +36,9 @@ public class CandyMgtCouponAdminServiceImpl extends ServiceImpl<CandyMgtCouponMa ...@@ -31,6 +36,9 @@ public class CandyMgtCouponAdminServiceImpl extends ServiceImpl<CandyMgtCouponMa
@Autowired @Autowired
private ICandyCouponRuleAdminService candyCouponRuleAdminService; private ICandyCouponRuleAdminService candyCouponRuleAdminService;
@Autowired
private RedisUtil redisUtil;
@Override @Override
@Transactional @Transactional
public boolean saveMgtCouponInfo(CandyCoupon initCoupon, CandyMgtCoupon initMgtCoupon, List<CandyCouponRule> initCouponRuleList) { public boolean saveMgtCouponInfo(CandyCoupon initCoupon, CandyMgtCoupon initMgtCoupon, List<CandyCouponRule> initCouponRuleList) {
...@@ -42,6 +50,39 @@ public class CandyMgtCouponAdminServiceImpl extends ServiceImpl<CandyMgtCouponMa ...@@ -42,6 +50,39 @@ public class CandyMgtCouponAdminServiceImpl extends ServiceImpl<CandyMgtCouponMa
if (insertCt < 2 || !saveBatch) { if (insertCt < 2 || !saveBatch) {
throw new LiquidnetServiceException(); throw new LiquidnetServiceException();
} }
switch (initCoupon.getExclusive()) {
case 0:
break;
case 1:
// 同步REDIS:用户端:购买会员详情页:权益列表:权益详情:专享券信息
List<AdamMemberRightsCouponVo> memberRightsCouponVoList =
(List<AdamMemberRightsCouponVo>) redisUtil.get(AdamRedisConst.INFO_MEMBER_RIGHTS_COUPON.concat(initMgtCoupon.getMcouponId()));
if (CollectionUtils.isEmpty(memberRightsCouponVoList)) {
memberRightsCouponVoList = new ArrayList<>();
}
Integer eventAmt = initMgtCoupon.getEventAmt();
for (int i = 0; i < eventAmt; i++) {
AdamMemberRightsCouponVo memberRightsCouponVo = AdamMemberRightsCouponVo.getNew();
//memberRightsCouponVo.setMrightsId(initMgtCoupon.getMcouponId());
memberRightsCouponVo.setCouponId(initCoupon.getCouponId());
memberRightsCouponVo.setBusiType(initCoupon.getBusiType());
memberRightsCouponVo.setCouType(initCoupon.getCouType());
memberRightsCouponVo.setTitle(initCoupon.getTitle());
memberRightsCouponVo.setLabel(initCoupon.getLabel());
memberRightsCouponVo.setNotice(initCoupon.getNotice());
memberRightsCouponVo.setValFace(initCoupon.getValFace());
memberRightsCouponVo.setValOver(initCoupon.getValOver());
memberRightsCouponVo.setValMinus(initCoupon.getValMinus());
memberRightsCouponVoList.add(memberRightsCouponVo);
}
redisUtil.set(AdamRedisConst.INFO_MEMBER_RIGHTS_COUPON.concat(initMgtCoupon.getMcouponId()), memberRightsCouponVoList);
break;
}
return true; return true;
} }
...@@ -69,6 +110,37 @@ public class CandyMgtCouponAdminServiceImpl extends ServiceImpl<CandyMgtCouponMa ...@@ -69,6 +110,37 @@ public class CandyMgtCouponAdminServiceImpl extends ServiceImpl<CandyMgtCouponMa
if (updateCt < 2 || !candyCouponRuleAdminService.saveBatch(initCouponRuleList)) { if (updateCt < 2 || !candyCouponRuleAdminService.saveBatch(initCouponRuleList)) {
throw new LiquidnetServiceException(); throw new LiquidnetServiceException();
} }
switch (updateCoupon.getExclusive()) {
case 0:
break;
case 1:
// 同步REDIS:用户端:购买会员详情页:权益列表:权益详情:专享券信息
List<AdamMemberRightsCouponVo> memberRightsCouponVoList =
(List<AdamMemberRightsCouponVo>) redisUtil.get(AdamRedisConst.INFO_MEMBER_RIGHTS_COUPON.concat(updateMgtCoupon.getMcouponId()));
memberRightsCouponVoList.removeIf(r -> r.getCouponId().equals(updateCoupon.getCouponId()));
Integer eventAmt = updateMgtCoupon.getEventAmt();
for (int i = 0; i < eventAmt; i++) {
AdamMemberRightsCouponVo memberRightsCouponVo = AdamMemberRightsCouponVo.getNew();
//memberRightsCouponVo.setMrightsId(initMgtCoupon.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());
memberRightsCouponVoList.add(memberRightsCouponVo);
}
redisUtil.set(AdamRedisConst.INFO_MEMBER_RIGHTS_COUPON.concat(updateMgtCoupon.getMcouponId()), memberRightsCouponVoList);
break;
}
return true; return true;
} }
......
...@@ -4,9 +4,7 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; ...@@ -4,9 +4,7 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSupport; import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.liquidnet.commons.lang.util.CurrentUtil; import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.service.adam.constant.AdamRedisConst; import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.vo.AdamMemberSimpleVo; import com.liquidnet.service.adam.dto.vo.*;
import com.liquidnet.service.adam.dto.vo.AdamMemberVo;
import com.liquidnet.service.adam.dto.vo.AdamUserMemberVo;
import com.liquidnet.service.adam.service.AdamRdmService; import com.liquidnet.service.adam.service.AdamRdmService;
import com.liquidnet.service.adam.service.IAdamUserMemberService; import com.liquidnet.service.adam.service.IAdamUserMemberService;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
...@@ -22,6 +20,7 @@ import org.springframework.web.bind.annotation.RequestParam; ...@@ -22,6 +20,7 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import java.util.List;
@ApiSupport(order = 10030) @ApiSupport(order = 10030)
@Api(tags = "会员信息") @Api(tags = "会员信息")
...@@ -38,7 +37,7 @@ public class AdamMemberController { ...@@ -38,7 +37,7 @@ public class AdamMemberController {
@ApiOperationSupport(order = 1) @ApiOperationSupport(order = 1)
@ApiOperation(value = "会员信息") @ApiOperation(value = "会员信息")
@GetMapping("info") @GetMapping("info")
public ResponseDto<AdamMemberVo> query() { public ResponseDto<AdamMemberVo> info() {
AdamMemberSimpleVo memberSimpleVo = adamRdmService.getMemberSimpleVo(); AdamMemberSimpleVo memberSimpleVo = adamRdmService.getMemberSimpleVo();
AdamMemberVo memberVo = null; AdamMemberVo memberVo = null;
if (null != memberSimpleVo && null != (memberVo = adamRdmService.getMemberVoByMemberId(memberSimpleVo.getMemberId()))) { if (null != memberSimpleVo && null != (memberVo = adamRdmService.getMemberVoByMemberId(memberSimpleVo.getMemberId()))) {
...@@ -46,12 +45,23 @@ public class AdamMemberController { ...@@ -46,12 +45,23 @@ public class AdamMemberController {
memberVo.setPriceVoList(adamRdmService.getMemberPriceVoByMemberId(memberVo.getMemberId())); memberVo.setPriceVoList(adamRdmService.getMemberPriceVoByMemberId(memberVo.getMemberId()));
memberVo.setRightsVoList(adamRdmService.getMemberRightsVoByMemberId(memberVo.getMemberId())); List<AdamMemberRightsVo> memberRightsVoList;
String currentUid = CurrentUtil.getCurrentUid(); String currentUid = CurrentUtil.getCurrentUid();
if (!StringUtils.isEmpty(currentUid)) { if (!StringUtils.isEmpty(currentUid)) {
memberVo.setUserMemberVo(adamRdmService.getUserMemberVoByUid(currentUid)); AdamUserMemberVo userMemberVo = adamRdmService.getUserMemberVoByUid(currentUid);
memberVo.setUserMemberVo(userMemberVo);
if (null != userMemberVo && userMemberVo.isOldMember()) {
memberRightsVoList = adamRdmService.getMemberRightsVoByMemberId(memberVo.getMemberId(), 1);
} else {
memberRightsVoList = adamRdmService.getMemberRightsVoByMemberId(memberVo.getMemberId(), 0);
}
} else {
memberRightsVoList = adamRdmService.getMemberRightsVoByMemberId(memberVo.getMemberId(), 0);
} }
memberVo.setRightsVoList(memberRightsVoList);
} }
return ResponseDto.success(memberVo); return ResponseDto.success(memberVo);
} }
...@@ -63,6 +73,13 @@ public class AdamMemberController { ...@@ -63,6 +73,13 @@ public class AdamMemberController {
return ResponseDto.success(adamRdmService.getMemberAgreement()); return ResponseDto.success(adamRdmService.getMemberAgreement());
} }
@ApiOperationSupport(order = 3)
@ApiOperation(value = "权益详情")
@GetMapping("info/rights")
public ResponseDto<AdamMemberRightsDetailVo> infoRights(@RequestParam String memberId, @RequestParam String mrightsId) {
return ResponseDto.success(adamRdmService.getMemberRightsDetailVoByRightsId(memberId, mrightsId));
}
/* ------------------------------------------------------------|@API:RSC */ /* ------------------------------------------------------------|@API:RSC */
@ApiOperationSupport(order = 99) @ApiOperationSupport(order = 99)
......
...@@ -458,24 +458,58 @@ public class AdamRdmService { ...@@ -458,24 +458,58 @@ public class AdamRdmService {
return redisUtil.set(AdamRedisConst.INFO_MEMBER_RIGHTS.concat(memberId), vos); return redisUtil.set(AdamRedisConst.INFO_MEMBER_RIGHTS.concat(memberId), vos);
} }
public List<AdamMemberRightsVo> getMemberRightsVoByMemberId(String memberId) { /**
List<AdamMemberRightsVo> vos = (List<AdamMemberRightsVo>) redisUtil.get(AdamRedisConst.INFO_MEMBER_RIGHTS.concat(memberId)); * 会员权益列表
if (CollectionUtils.isEmpty(vos)) { *
vos = Arrays.asList(AdamMemberRightsVo.getNew().setName("专属").setSort(1) * @param memberId 会员Id
.setCover("https://img.zhengzai.tv/files/2020/08/28/5f490c4477d72.png"), * @param vFlag 新老会员标识[0-默认新会员,1-老会员]
AdamMemberRightsVo.getNew().setName("优惠").setSort(2) * @return
.setCover("https://img.zhengzai.tv/files/2020/08/28/5f490c685e7a8.png"), */
AdamMemberRightsVo.getNew().setName("优先").setSort(3) public List<AdamMemberRightsVo> getMemberRightsVoByMemberId(String memberId, int vFlag) {
.setCover("https://img.zhengzai.tv/files/2020/08/28/5f490c726a750.png"), List<AdamMemberRightsVo> vos = null;
AdamMemberRightsVo.getNew().setName("专属").setSort(4) switch (vFlag) {
.setCover("https://img.zhengzai.tv/files/2020/08/28/5f490c5de2870.png") case 0:
); vos = (List<AdamMemberRightsVo>) redisUtil.get(AdamRedisConst.INFO_MEMBER_RIGHTS.concat(memberId));
break;
redisUtil.set(AdamRedisConst.INFO_MEMBER_RIGHTS.concat(memberId), vos); case 1:
vos = (List<AdamMemberRightsVo>) redisUtil.get(AdamRedisConst.INFO_MEMBER_RIGHTS_V.concat(memberId));
if (CollectionUtils.isEmpty(vos)) {
vos = Arrays.asList(AdamMemberRightsVo.getNew().setTitle("专属").setSeqNo(1)
.setCover("https://img.zhengzai.tv/files/2020/08/28/5f490c4477d72.png"),
AdamMemberRightsVo.getNew().setTitle("优惠").setSeqNo(2)
.setCover("https://img.zhengzai.tv/files/2020/08/28/5f490c685e7a8.png"),
AdamMemberRightsVo.getNew().setTitle("优先").setSeqNo(3)
.setCover("https://img.zhengzai.tv/files/2020/08/28/5f490c726a750.png"),
AdamMemberRightsVo.getNew().setTitle("专属").setSeqNo(4)
.setCover("https://img.zhengzai.tv/files/2020/08/28/5f490c5de2870.png")
);
redisUtil.set(AdamRedisConst.INFO_MEMBER_RIGHTS_V.concat(memberId), vos);
}
break;
} }
return vos; return vos;
} }
public AdamMemberRightsDetailVo getMemberRightsDetailVoByRightsId(String memberId, String mrightsId) {
List<AdamMemberRightsVo> vos = this.getMemberRightsVoByMemberId(memberId, 0);
AdamMemberRightsDetailVo detailVo = AdamMemberRightsDetailVo.getNew();
if (!CollectionUtils.isEmpty(vos)) {
AdamMemberRightsVo memberRightsVo = vos.stream().filter(r -> r.getMrightsId().equals(mrightsId)).findAny().orElse(null);
detailVo.setRightsVo(memberRightsVo);
if (null != memberRightsVo) {
List<AdamMemberRightsCouponVo> memberRightsCouponVoList =
(List<AdamMemberRightsCouponVo>) redisUtil.get(AdamRedisConst.INFO_MEMBER_RIGHTS_COUPON.concat(mrightsId));
detailVo.setCouponVoList(memberRightsCouponVoList);
}
}
return detailVo;
}
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | MEMBER_AGREEMENT */ /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | MEMBER_AGREEMENT */
public String getMemberAgreement() { public String getMemberAgreement() {
......
...@@ -457,13 +457,13 @@ public class DMRdmService { ...@@ -457,13 +457,13 @@ public class DMRdmService {
public List<AdamMemberRightsVo> getMemberRightsVoByMemberId(String memberId) { public List<AdamMemberRightsVo> getMemberRightsVoByMemberId(String memberId) {
List<AdamMemberRightsVo> vos = (List<AdamMemberRightsVo>) redisUtil.get(AdamRedisConst.INFO_MEMBER_RIGHTS.concat(memberId)); List<AdamMemberRightsVo> vos = (List<AdamMemberRightsVo>) redisUtil.get(AdamRedisConst.INFO_MEMBER_RIGHTS.concat(memberId));
if (CollectionUtils.isEmpty(vos)) { if (CollectionUtils.isEmpty(vos)) {
vos = Arrays.asList(AdamMemberRightsVo.getNew().setName("专属").setSort(1) vos = Arrays.asList(AdamMemberRightsVo.getNew().setTitle("专属").setSeqNo(1)
.setCover("https://img.zhengzai.tv/files/2020/08/28/5f490c4477d72.png"), .setCover("https://img.zhengzai.tv/files/2020/08/28/5f490c4477d72.png"),
AdamMemberRightsVo.getNew().setName("优惠").setSort(2) AdamMemberRightsVo.getNew().setTitle("优惠").setSeqNo(2)
.setCover("https://img.zhengzai.tv/files/2020/08/28/5f490c685e7a8.png"), .setCover("https://img.zhengzai.tv/files/2020/08/28/5f490c685e7a8.png"),
AdamMemberRightsVo.getNew().setName("优先").setSort(3) AdamMemberRightsVo.getNew().setTitle("优先").setSeqNo(3)
.setCover("https://img.zhengzai.tv/files/2020/08/28/5f490c726a750.png"), .setCover("https://img.zhengzai.tv/files/2020/08/28/5f490c726a750.png"),
AdamMemberRightsVo.getNew().setName("专属").setSort(4) AdamMemberRightsVo.getNew().setTitle("专属").setSeqNo(4)
.setCover("https://img.zhengzai.tv/files/2020/08/28/5f490c5de2870.png") .setCover("https://img.zhengzai.tv/files/2020/08/28/5f490c5de2870.png")
); );
......
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