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

Commit 7d46785c authored by 张国柄's avatar 张国柄

会员详情页调整+限购+开售+身份阶段标识;

parent d6aa8e96
package com.liquidnet.service.adam.dto.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.adam.entity.AdamMember;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
@ApiModel(value = "AdamMemberVo", description = "会员")
......@@ -41,10 +45,20 @@ public class AdamMemberVo implements java.io.Serializable, Cloneable {
private Integer needQuestion;
@ApiModelProperty(position = 12, value = "是否展示协议[200]", example = "0")
private Integer displayAgreement;
@ApiModelProperty(position = 13, value = "状态[1-NORMAL,2-INVALID]")
@ApiModelProperty(position = 13, value = "状态[1-NORMAL,2-INVALID]", example = "1")
private Integer state;
@ApiModelProperty(position = 14, value = "限购数量,0不限购[200]", example = "0")
@ApiModelProperty(position = 14, value = "积分倍率", example = "2.00")
private BigDecimal integralRate;
@ApiModelProperty(position = 15, value = "是否开售:1-开售|2-停售", example = "1")
private Integer onsale;
@ApiModelProperty(position = 16, value = "限购数量[0-不限购]", example = "0")
private Integer limitation;
@ApiModelProperty(position = 17, value = "限购开始时间", example = "2021-08-02 00:00:00")
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
private LocalDateTime limitStart;
@ApiModelProperty(position = 18, value = "限购结束时间", example = "2021-09-02 00:00:00")
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
private LocalDateTime limitEnd;
@ApiModelProperty(position = 20, value = "会员卡价格信息")
private List<AdamMemberPriceVo> priceVoList;
......@@ -52,8 +66,14 @@ public class AdamMemberVo implements java.io.Serializable, Cloneable {
private List<AdamMemberRightsVo> rightsVoList;
@ApiModelProperty(position = 22, value = "用户会员信息")
private AdamUserMemberVo userMemberVo;
@ApiModelProperty(position = 23, value = "购买会员限[0-名额已满|1-允许购买]")
@ApiModelProperty(position = 23, value = "购买会员限[0-名额已满|1-允许购买]")
private Integer buySwitch;
@ApiModelProperty(position = 24, value = "标记[0-普通用户|1-会员|2-过期会员]")
private Integer stageMarker;
public Integer getOnsale() {
return null == onsale ? 1 : onsale;
}
private static final AdamMemberVo obj = new AdamMemberVo();
......@@ -84,7 +104,11 @@ public class AdamMemberVo implements java.io.Serializable, Cloneable {
this.setNeedQuestion(source.getNeedQuestion());
this.setDisplayAgreement(source.getDisplayAgreement());
this.setState(source.getState());
this.setIntegralRate(source.getIntegralRate());
this.setOnsale(source.getOnsale());
this.setLimitation(source.getLimitation());
this.setLimitStart(source.getLimitStart());
this.setLimitEnd(source.getLimitEnd());
return this;
}
}
package com.liquidnet.service.adam.dto.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.adam.entity.AdamUserMember;
import io.swagger.annotations.ApiModel;
......@@ -34,7 +33,7 @@ public class AdamUserMemberVo implements Serializable, Cloneable {
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
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 LocalDateTime oldMemberSpotTime = LocalDateTime.parse("2022-09-02 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
private static final AdamUserMemberVo obj = new AdamUserMemberVo();
public static AdamUserMemberVo getNew() {
......@@ -75,7 +74,7 @@ public class AdamUserMemberVo implements Serializable, Cloneable {
*/
// @JsonIgnore
public boolean isOldMember() {
LocalDateTime createdAt = this.getCreatedAt();
return createdAt.isAfter(newMemberStartTime);
LocalDateTime expiryAt = this.getExpiryAt();
return expiryAt.isBefore(oldMemberSpotTime);
}
}
......@@ -6,6 +6,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
......@@ -101,9 +102,9 @@ public class AdamMember implements Serializable {
private Integer state;
/**
* 积分倍率X100
* 积分倍率
*/
private Integer integralRate;
private BigDecimal integralRate;
/**
* 限购数量
......
......@@ -340,13 +340,13 @@ create table adam_member_order_ext
create unique index uidx_amember_order_ext_id on adam_member_order_ext (order_no);
-- >>------------------------------------------------------------------------------------ |20210817会员与券改版
# 添加`双倍积分`开关
alter table adam_member add integral_rate decimal(8, 2) default 0 null comment '积分倍率X100' after state;
# 添加`是否开售`开关,新增开售开关字段
alter table adam_member add onsale tinyint default 0 null comment '是否开售:1-开售|2-停售' after integral_rate;
# 添加限购逻辑,新增限购开始、结束时间字段
alter table adam_member add limit_start datetime(3) null comment '限购开始时间' after limitation;
alter table adam_member add limit_end datetime(3) null comment '限购结束时间' after limit_start;
# 添加`是否开售`开关,新增开售开关字段
alter table adam_member add onsale tinyint default 0 null comment '是否开售:1-开售|2-停售' after limit_end;
# 添加`双倍积分`开关
alter table adam_member add integral_rate int default 0 null comment '积分倍率X100' after state;
# 添加会员价格字段
......
......@@ -41,27 +41,39 @@ public class AdamMemberController {
AdamMemberSimpleVo memberSimpleVo = adamRdmService.getMemberSimpleVo();
AdamMemberVo memberVo = null;
if (null != memberSimpleVo && null != (memberVo = adamRdmService.getMemberVoByMemberId(memberSimpleVo.getMemberId()))) {
memberVo.setBuySwitch(adamRdmService.getSwitch(AdamRedisConst.SWITCH_BUY_MEMBER));
// memberVo.setBuySwitch(adamRdmService.getSwitch(AdamRedisConst.SWITCH_BUY_MEMBER));
Integer limitation = memberVo.getLimitation();
if (null != limitation && limitation > 0) {// 限购
int maxMemberLimitation = adamRdmService.getMaxMemberLimitation();
memberVo.setBuySwitch(maxMemberLimitation >= limitation ? 0 : 1);
} else {// 不限购
memberVo.setBuySwitch(1);
}
memberVo.setPriceVoList(adamRdmService.getMemberPriceVoByMemberId(memberVo.getMemberId()));
List<AdamMemberRightsVo> memberRightsVoList;
String currentUid = CurrentUtil.getCurrentUid();
if (!StringUtils.isEmpty(currentUid)) {
AdamUserMemberVo userMemberVo = adamRdmService.getUserMemberVoByUid(currentUid);
memberVo.setUserMemberVo(userMemberVo);
if (null != userMemberVo && userMemberVo.isOldMember()) {
memberRightsVoList = adamRdmService.getMemberRightsVoByMemberId(memberVo.getMemberId(), 1);
if (null == userMemberVo) {
memberVo.setStageMarker(0);
memberVo.setRightsVoList(adamRdmService.getMemberRightsVoByMemberId(memberVo.getMemberId(), 0));
} else if (userMemberVo.isActive()) {
memberVo.setStageMarker(1);
memberVo.setRightsVoList(
userMemberVo.isOldMember() ? adamRdmService.getMemberRightsVoByMemberId(memberVo.getMemberId(), 1)
: adamRdmService.getMemberRightsVoByMemberId(memberVo.getMemberId(), 0)
);
} else {
memberRightsVoList = adamRdmService.getMemberRightsVoByMemberId(memberVo.getMemberId(), 0);
memberVo.setStageMarker(2);
}
} else {
memberRightsVoList = adamRdmService.getMemberRightsVoByMemberId(memberVo.getMemberId(), 0);
memberVo.setRightsVoList(adamRdmService.getMemberRightsVoByMemberId(memberVo.getMemberId(), 0));
}
memberVo.setRightsVoList(memberRightsVoList);
}
return ResponseDto.success(memberVo);
}
......
......@@ -605,6 +605,21 @@ public class AdamRdmService {
return null == o ? -1 : (int) o;
}
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | INCR_MEMBER_LIMITATION */
public boolean setMaxMemberLimitation(int val) {
return redisUtil.set(AdamRedisConst.INCR_MEMBER_LIMITATION, val);
}
public long incrMemberNoLimitation() {
return redisUtil.incr(AdamRedisConst.INCR_MEMBER_LIMITATION, 1);
}
public int getMaxMemberLimitation() {
Object o = redisUtil.get(AdamRedisConst.INCR_MEMBER_LIMITATION);
return null == o ? -1 : (int) o;
}
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | <MEMBER_CODE, MEMBER_CODE_INFO> */
public boolean setMemberCodeVoByCode(String memberCode, AdamMemberCodeVo vo) {
......
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