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

Commit 04e7491c authored by 张国柄's avatar 张国柄

+API:加入会员;

parent f69c193d
......@@ -26,6 +26,7 @@ public class AdamRedisConst {
*/
public static final String INFO_CERTIFICATION_JUNK = PREFIX.concat("info:certification_junk:");
public static final String INFO_MEMBER_CARDFACE = PREFIX.concat("info:member:cardface");
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_PRICE = PREFIX.concat("info:member:price:");
......@@ -55,6 +56,8 @@ public class AdamRedisConst {
public static final String SWITCH_BUY_MEMBER = PREFIX.concat("switch:buy:member");
public static final String SERIAL_NUMBER_MEMBER = PREFIX.concat("serial_no:");
/* ----------------------------------------------------------------- */
// public static final String LOCK_KEY_UMEMBER_NO = "adam:lk:member:no";
......
package com.liquidnet.service.adam.dto.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ApiModel(value = "AdamMemberJoinusVo", description = "领取的会员卡详情")
@Data
public class AdamMemberJoinusVo implements java.io.Serializable, Cloneable {
private static final long serialVersionUID = -2346451755376200201L;
@ApiModelProperty(position = 10, value = "")
private String qrCode;
@ApiModelProperty(position = 11, value = "标题[50]", example = "摩登天空会员卡")
private String title;
@ApiModelProperty(position = 12, value = "副标题[50]", example = "摩登天空会员卡副标题")
private String subTitle;
@ApiModelProperty(position = 13, value = "卡面[200]", example = "https://img.zhengzai.tv/member_card/member1.png")
private String cardface;
@ApiModelProperty(position = 14, value = "卡类型[0-非会员|10-普通会员|50-VIP会员]", example = "0")
private Integer type;
@ApiModelProperty(position = 15, value = "卡状态[0-未领取|1-已领取]", example = "0")
private Integer state;
@ApiModelProperty(position = 16, value = "权益详情[200]", example = "加入摩登天空会员您可享受到.....")
private String interestsDetail;
private static final AdamMemberJoinusVo obj = new AdamMemberJoinusVo();
public static AdamMemberJoinusVo getNew() {
try {
return (AdamMemberJoinusVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new AdamMemberJoinusVo();
}
}
}
......@@ -120,9 +120,8 @@ public class AdamMemberVo implements java.io.Serializable, Cloneable {
try {
return (AdamMemberVo) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
return new AdamMemberVo();
}
return new AdamMemberVo();
}
public AdamMemberVo copy(AdamMember source) {
......
......@@ -80,7 +80,7 @@ public class AdamMemberController {
return ResponseDto.success(adamRdmService.getMemberRightsDetailVoByRightsId(memberId, mrightsId));
}
@ApiOperationSupport(order = 1)
@ApiOperationSupport(order = 4)
@ApiOperation(value = "会员开售状态")
@GetMapping("onsale")
public ResponseDto<Integer> onsale() {
......@@ -92,6 +92,52 @@ public class AdamMemberController {
return ResponseDto.success(1);
}
@ApiOperationSupport(order = 5)
@ApiOperation(value = "加入会员信息")
@GetMapping("joininfo")
public ResponseDto<AdamMemberJoinusVo> joininfo() {
String currentUid = CurrentUtil.getCurrentUid();
AdamMemberJoinusVo memberJoinusVo = AdamMemberJoinusVo.getNew();
// AdamMemberSimpleVo memberSimpleVo = adamRdmService.getMemberSimpleVo();
// if (null != memberSimpleVo) {
// memberJoinusVo.setTitle(memberSimpleVo.getTitle());
// memberJoinusVo.setSubTitle(memberSimpleVo.getSubTitle());
// }
AdamUserInfoVo userInfoVo = adamRdmService.getUserInfoVoByUid(currentUid);
boolean lN = StringUtils.startsWithIgnoreCase(userInfoVo.getQrCode(), "lN");
memberJoinusVo.setState(lN ? 0 : 1);
memberJoinusVo.setType(lN ? 0 : 10);
memberJoinusVo.setQrCode(userInfoVo.getQrCode());
memberJoinusVo.setCardface(adamRdmService.getMemberCardface(memberJoinusVo.getType()));
return ResponseDto.success(memberJoinusVo);
}
@ApiOperationSupport(order = 6)
@ApiOperation(value = "加入会员")
@GetMapping("joinus")
public ResponseDto<AdamMemberJoinusVo> joinus() {
AdamMemberJoinusVo memberJoinusVo = AdamMemberJoinusVo.getNew();
String currentUid = CurrentUtil.getCurrentUid();
AdamMemberSimpleVo memberSimpleVo = adamRdmService.getMemberSimpleVo();
if (null != memberSimpleVo) {
memberJoinusVo.setTitle(memberSimpleVo.getTitle());
memberJoinusVo.setSubTitle(memberSimpleVo.getSubTitle());
}
AdamUserInfoVo userInfoVo = adamRdmService.getUserInfoVoByUid(currentUid);
if (StringUtils.startsWithIgnoreCase(userInfoVo.getQrCode(), "lN")) {// `lN`开头即未领取,这里做领取操作
userInfoVo.setQrCode(adamRdmService.generateMemberUniqueSerialNumber(userInfoVo.getMobile()));
adamRdmService.setUserInfoVoByUid(currentUid, userInfoVo);
}
memberJoinusVo.setState(1);
memberJoinusVo.setQrCode(userInfoVo.getQrCode());
memberJoinusVo.setCardface(adamRdmService.getMemberCardface(memberJoinusVo.getType()));
return ResponseDto.success(memberJoinusVo);
}
/* ------------------------------------------------------------|@API:RSC */
@ApiOperationSupport(order = 99)
......
......@@ -17,6 +17,8 @@ import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.time.LocalDateTime;
import java.time.temporal.ChronoField;
import java.time.temporal.TemporalField;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
......@@ -816,15 +818,27 @@ public class AdamRdmService {
return vo;
}
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | */
public String generateMemberUniqueSerialNumber(String mobile) {
LocalDateTime now = LocalDateTime.now();
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | */
String sn = String.format("%s%sMS%s", now.getYear(), now.getMonthValue(), mobile.substring(7)).substring(2);
Object o = redisUtil.get(AdamRedisConst.SERIAL_NUMBER_MEMBER.concat(sn.replace("MS", String.valueOf(now.getLong(ChronoField.MICRO_OF_SECOND)))));
while (null != o) {
String nano = String.valueOf(System.nanoTime());
o = redisUtil.get(AdamRedisConst.SERIAL_NUMBER_MEMBER.concat(sn.replace("MS", nano.substring(nano.length() - 3))));
}
return sn;
}
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | */
public String getMemberCardface(int type) {
return (String) redisUtil.get(AdamRedisConst.INFO_MEMBER_CARDFACE.concat(String.valueOf(type)));
}
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | */
......
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