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

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

fix;

parent f1200510
...@@ -48,12 +48,12 @@ public class AdamRedisConst { ...@@ -48,12 +48,12 @@ public class AdamRedisConst {
/* ----------------------------------------------------------------- */ /* ----------------------------------------------------------------- */
public static final String LOCK_KEY_UMEMBER_NO = "adam:lk:member:no"; // public static final String LOCK_KEY_UMEMBER_NO = "adam:lk:member:no";
// // // // // // // // // // // // // // // // // // // //
public static final String LOCK_KEY_SMS_CODE_MOBILE = "adam:lk:sms:code:mobile:"; // public static final String LOCK_KEY_SMS_CODE_MOBILE = "adam:lk:sms:code:mobile:";
public static final String LOCK_KEY_UREGISTER = "adam:lk:register:"; // public static final String LOCK_KEY_UREGISTER = "adam:lk:register:";
public static final String LOCK_KEY_UIDENTITY = "adam:lk:identity:"; // public static final String LOCK_KEY_UIDENTITY = "adam:lk:identity:";
public static final String LOCK_KEY_UMEMBER_CODE = "adam:lk:member:code:"; // public static final String LOCK_KEY_UMEMBER_CODE = "adam:lk:member:code:";
/* ----------------------------------------------------------------- */ /* ----------------------------------------------------------------- */
} }
...@@ -3,36 +3,28 @@ package com.liquidnet.client.admin.zhengzai.adam.service.impl; ...@@ -3,36 +3,28 @@ package com.liquidnet.client.admin.zhengzai.adam.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberCodeAdminService; import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberCodeAdminService;
import com.liquidnet.common.cache.redis.util.RedisUtil; import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.common.cache.redisson.util.RedisLockUtil; import com.liquidnet.common.exception.LiquidnetServiceException;
import com.liquidnet.service.adam.constant.AdamRedisConst; import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.AdamMemberCodeParam; import com.liquidnet.service.adam.dto.AdamMemberCodeParam;
import com.liquidnet.service.adam.dto.vo.AdamMemberCodeVo; import com.liquidnet.service.adam.dto.vo.AdamMemberCodeVo;
import com.liquidnet.service.adam.dto.vo.AdamMemberVo;
import com.liquidnet.service.adam.dto.vo.AdamUserMemberVo;
import com.liquidnet.service.adam.entity.AdamMemberCode; import com.liquidnet.service.adam.entity.AdamMemberCode;
import com.liquidnet.service.adam.mapper.AdamMemberCodeMapper; import com.liquidnet.service.adam.mapper.AdamMemberCodeMapper;
import com.liquidnet.service.adam.util.MemberUtil; import com.liquidnet.service.adam.util.MemberUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import static com.liquidnet.service.adam.constant.AdamRedisConst.LOCK_KEY_UMEMBER_NO;
@Slf4j @Slf4j
@Service @Service
public class AdamMemberCodeAdminServiceImpl extends ServiceImpl<AdamMemberCodeMapper, AdamMemberCode> implements IAdamMemberCodeAdminService { public class AdamMemberCodeAdminServiceImpl extends ServiceImpl<AdamMemberCodeMapper, AdamMemberCode> implements IAdamMemberCodeAdminService {
@Autowired @Autowired
AdamMemberCodeMapper memberCodeMapper; AdamMemberCodeMapper memberCodeMapper;
@Autowired // @Autowired
MongoTemplate mongoTemplate; // MongoTemplate mongoTemplate;
@Autowired @Autowired
RedisUtil redisUtil; RedisUtil redisUtil;
...@@ -42,9 +34,10 @@ public class AdamMemberCodeAdminServiceImpl extends ServiceImpl<AdamMemberCodeMa ...@@ -42,9 +34,10 @@ public class AdamMemberCodeAdminServiceImpl extends ServiceImpl<AdamMemberCodeMa
boolean exists; boolean exists;
do { do {
mCode = MemberUtil.freeCode(); mCode = MemberUtil.freeCode();
exists = mongoTemplate.exists( // exists = mongoTemplate.exists(
Query.query(Criteria.where("code").is(mCode)), AdamMemberCodeVo.class.getSimpleName() // Query.query(Criteria.where("code").is(mCode)), AdamMemberCodeVo.class.getSimpleName()
); // );
exists = redisUtil.hasKey(mCode);
} while (exists); } while (exists);
// 需要主动生成会员编号 // 需要主动生成会员编号
...@@ -64,7 +57,7 @@ public class AdamMemberCodeAdminServiceImpl extends ServiceImpl<AdamMemberCodeMa ...@@ -64,7 +57,7 @@ public class AdamMemberCodeAdminServiceImpl extends ServiceImpl<AdamMemberCodeMa
memberCodeMapper.insert(initMemberCode); memberCodeMapper.insert(initMemberCode);
AdamMemberCodeVo vo = AdamMemberCodeVo.getNew().copy(initMemberCode); AdamMemberCodeVo vo = AdamMemberCodeVo.getNew().copy(initMemberCode);
mongoTemplate.insert(vo, AdamMemberCodeVo.class.getSimpleName()); // mongoTemplate.insert(vo, AdamMemberCodeVo.class.getSimpleName());
setMemberCodeVoByCode(mCode, vo); setMemberCodeVoByCode(mCode, vo);
...@@ -75,25 +68,27 @@ public class AdamMemberCodeAdminServiceImpl extends ServiceImpl<AdamMemberCodeMa ...@@ -75,25 +68,27 @@ public class AdamMemberCodeAdminServiceImpl extends ServiceImpl<AdamMemberCodeMa
long s = System.currentTimeMillis(); long s = System.currentTimeMillis();
int memberMaxNo = getMaxMemberNo(); int memberMaxNo = getMaxMemberNo();
if (-1 == memberMaxNo) { if (-1 == memberMaxNo) {
if (RedisLockUtil.tryLock(LOCK_KEY_UMEMBER_NO, 1, 3)) { // TODO: 2021/7/29 降级DB
memberMaxNo = getMaxMemberNo(); throw new LiquidnetServiceException();
if (-1 == memberMaxNo) { // if (RedisLockUtil.tryLock(LOCK_KEY_UMEMBER_NO, 1, 3)) {
Query query = Query.query(Criteria.where("memberId").is(memberId)).with(Sort.by(Sort.Direction.DESC, "memberNo")).limit(1); // memberMaxNo = getMaxMemberNo();
// if (-1 == memberMaxNo) {
AdamUserMemberVo latestMaxMemberNoVo = mongoTemplate.findOne(query, AdamUserMemberVo.class, AdamUserMemberVo.class.getSimpleName()); // Query query = Query.query(Criteria.where("memberId").is(memberId)).with(Sort.by(Sort.Direction.DESC, "memberNo")).limit(1);
//
if (null == latestMaxMemberNoVo) { // AdamUserMemberVo latestMaxMemberNoVo = mongoTemplate.findOne(query, AdamUserMemberVo.class, AdamUserMemberVo.class.getSimpleName());
AdamMemberVo memberVo = getMemberVoByMemberId(memberId); //
// if (null == latestMaxMemberNoVo) {
setMaxMemberNo(memberVo.getStartNo()); // AdamMemberVo memberVo = getMemberVoByMemberId(memberId);
} else { //
setMaxMemberNo(Integer.parseInt(latestMaxMemberNoVo.getMemberNo())); // setMaxMemberNo(memberVo.getStartNo());
} // } else {
} // setMaxMemberNo(Integer.parseInt(latestMaxMemberNoVo.getMemberNo()));
RedisLockUtil.unlock(LOCK_KEY_UMEMBER_NO); // }
} else { // }
return null; // RedisLockUtil.unlock(LOCK_KEY_UMEMBER_NO);
} // } else {
// return null;
// }
} }
String nextMemberNoStr = String.valueOf(incrMemberNo()); String nextMemberNoStr = String.valueOf(incrMemberNo());
if (Pattern.matches("([\\d])\\1{" + (nextMemberNoStr.length() - 1) + "}", nextMemberNoStr)) { if (Pattern.matches("([\\d])\\1{" + (nextMemberNoStr.length() - 1) + "}", nextMemberNoStr)) {
...@@ -109,22 +104,22 @@ public class AdamMemberCodeAdminServiceImpl extends ServiceImpl<AdamMemberCodeMa ...@@ -109,22 +104,22 @@ public class AdamMemberCodeAdminServiceImpl extends ServiceImpl<AdamMemberCodeMa
return null == o ? -1 : (int) o; return null == o ? -1 : (int) o;
} }
public AdamMemberVo getMemberVoByMemberId(String memberId) { // public AdamMemberVo getMemberVoByMemberId(String memberId) {
String key = AdamRedisConst.INFO_MEMBER_CATEGORY.concat(memberId); // String key = AdamRedisConst.INFO_MEMBER_CATEGORY.concat(memberId);
long s = System.currentTimeMillis(); // long s = System.currentTimeMillis();
AdamMemberVo vo = (AdamMemberVo) redisUtil.get(key); // AdamMemberVo vo = (AdamMemberVo) redisUtil.get(key);
if (null == vo) { // if (null == vo) {
s = System.currentTimeMillis(); // s = System.currentTimeMillis();
vo = mongoTemplate.findOne( // vo = mongoTemplate.findOne(
Query.query(Criteria.where("memberId").is(memberId).and("state").is(1)), // Query.query(Criteria.where("memberId").is(memberId).and("state").is(1)),
AdamMemberVo.class, AdamMemberVo.class.getSimpleName() // AdamMemberVo.class, AdamMemberVo.class.getSimpleName()
); // );
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s); // log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (null != vo) redisUtil.set(key, vo); // if (null != vo) redisUtil.set(key, vo);
} // }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s); // log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo; // return vo;
} // }
public boolean setMaxMemberNo(int val) { public boolean setMaxMemberNo(int val) {
return redisUtil.set(AdamRedisConst.INCR_MEMBER_NO, val); return redisUtil.set(AdamRedisConst.INCR_MEMBER_NO, val);
......
...@@ -9,7 +9,6 @@ import com.fasterxml.jackson.databind.node.ObjectNode; ...@@ -9,7 +9,6 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSupport; import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.liquidnet.common.cache.redis.util.RedisUtil; import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.common.cache.redisson.util.RedisLockUtil;
import com.liquidnet.common.sms.constant.SmsEnum; import com.liquidnet.common.sms.constant.SmsEnum;
import com.liquidnet.common.sms.processor.SmsProcessor; import com.liquidnet.common.sms.processor.SmsProcessor;
import com.liquidnet.commons.lang.constant.LnsEnum; import com.liquidnet.commons.lang.constant.LnsEnum;
...@@ -49,8 +48,6 @@ import java.util.Arrays; ...@@ -49,8 +48,6 @@ import java.util.Arrays;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
import static com.liquidnet.service.adam.constant.AdamRedisConst.LOCK_KEY_SMS_CODE_MOBILE;
@ApiSupport(order = 10010) @ApiSupport(order = 10010)
@Api(tags = "用户登录") @Api(tags = "用户登录")
@Slf4j @Slf4j
...@@ -132,7 +129,6 @@ public class AdamLoginController { ...@@ -132,7 +129,6 @@ public class AdamLoginController {
@GetMapping(value = {"send"}) @GetMapping(value = {"send"})
public ResponseDto<Object> sendSms(@Pattern(regexp = "\\d{11}", message = "手机号格式有误") @RequestParam String mobile) { public ResponseDto<Object> sendSms(@Pattern(regexp = "\\d{11}", message = "手机号格式有误") @RequestParam String mobile) {
log.debug("send to mobile:{}", mobile); log.debug("send to mobile:{}", mobile);
if (RedisLockUtil.tryLock(LOCK_KEY_SMS_CODE_MOBILE + mobile, 1, 5)) {
// Map<String, Object> respMap = null; // Map<String, Object> respMap = null;
// String respStr = null; // String respStr = null;
// try { // try {
...@@ -163,6 +159,12 @@ public class AdamLoginController { ...@@ -163,6 +159,12 @@ public class AdamLoginController {
// return ResponseDto.failure(ErrorMapping.get("10003")); // return ResponseDto.failure(ErrorMapping.get("10003"));
// } // }
String smsCodeByMobile = adamRdmService.getSmsCodeByMobile(mobile);
if (StringUtils.isNotEmpty(smsCodeByMobile)) {
return ResponseDto.failure(ErrorMapping.get("10003"));
}
String smsCode = RandomStringUtils.randomNumeric(6); String smsCode = RandomStringUtils.randomNumeric(6);
// SmsMessage smsMessage = SmsMessage.builder().setPhone(mobile).setSignName(SmsEnum.ADSignName.正在现场.name()) // SmsMessage smsMessage = SmsMessage.builder().setPhone(mobile).setSignName(SmsEnum.ADSignName.正在现场.name())
// .setTemplateCode(SmsEnum.ADTemplate.SMS_109535335.name()) // .setTemplateCode(SmsEnum.ADTemplate.SMS_109535335.name())
...@@ -177,9 +179,6 @@ public class AdamLoginController { ...@@ -177,9 +179,6 @@ public class AdamLoginController {
return ResponseDto.success(); return ResponseDto.success();
} }
return ResponseDto.failure(ErrorMapping.get("10002")); return ResponseDto.failure(ErrorMapping.get("10002"));
} else {
return ResponseDto.failure(ErrorMapping.get("10000"));
}
} }
@ApiOperationSupport(order = 3) @ApiOperationSupport(order = 3)
......
package com.liquidnet.service.adam.controller; package com.liquidnet.service.adam.controller;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
import com.github.pagehelper.PageInfo;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSupport; import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.liquidnet.common.cache.redisson.util.RedisLockUtil;
import com.liquidnet.commons.lang.constant.LnsEnum; import com.liquidnet.commons.lang.constant.LnsEnum;
import com.liquidnet.commons.lang.util.CurrentUtil; import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.HttpUtil; import com.liquidnet.commons.lang.util.HttpUtil;
...@@ -16,8 +14,8 @@ import com.liquidnet.service.adam.dto.AdamMemberOrderCodeParam; ...@@ -16,8 +14,8 @@ import com.liquidnet.service.adam.dto.AdamMemberOrderCodeParam;
import com.liquidnet.service.adam.dto.AdamMemberOrderParam; import com.liquidnet.service.adam.dto.AdamMemberOrderParam;
import com.liquidnet.service.adam.dto.AdamMemberOrderResult; import com.liquidnet.service.adam.dto.AdamMemberOrderResult;
import com.liquidnet.service.adam.dto.vo.*; import com.liquidnet.service.adam.dto.vo.*;
import com.liquidnet.service.adam.service.IAdamMemberOrderService;
import com.liquidnet.service.adam.service.AdamRdmService; import com.liquidnet.service.adam.service.AdamRdmService;
import com.liquidnet.service.adam.service.IAdamMemberOrderService;
import com.liquidnet.service.adam.service.IAdamUserService; import com.liquidnet.service.adam.service.IAdamUserService;
import com.liquidnet.service.base.ErrorMapping; import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.PagedResult; import com.liquidnet.service.base.PagedResult;
...@@ -36,11 +34,8 @@ import org.springframework.web.bind.annotation.*; ...@@ -36,11 +34,8 @@ import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import javax.validation.Valid;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import java.util.List; import java.util.List;
import static com.liquidnet.service.adam.constant.AdamRedisConst.LOCK_KEY_UMEMBER_CODE;
@ApiSupport(order = 10031) @ApiSupport(order = 10031)
@Api(tags = "购买会员") @Api(tags = "购买会员")
@Slf4j @Slf4j
...@@ -225,16 +220,16 @@ public class AdamMemberOrderController { ...@@ -225,16 +220,16 @@ public class AdamMemberOrderController {
return ResponseDto.failure(ErrorMapping.get("10000")); return ResponseDto.failure(ErrorMapping.get("10000"));
} }
} }
if (RedisLockUtil.tryLock(LOCK_KEY_UMEMBER_CODE + param.getMemberCode(), 1, 5)) { // if (RedisLockUtil.tryLock(LOCK_KEY_UMEMBER_CODE + param.getMemberCode(), 1, 5)) {
ResponseDto<AdamMemberOrderResult> responseDto = adamMemberOrderService.exchangeMemberCode(param); ResponseDto<AdamMemberOrderResult> responseDto = adamMemberOrderService.exchangeMemberCode(param);
if (!responseDto.isSuccess()) { // if (!responseDto.isSuccess()) {
RedisLockUtil.unlock(LOCK_KEY_UMEMBER_CODE + param.getMemberCode()); // RedisLockUtil.unlock(LOCK_KEY_UMEMBER_CODE + param.getMemberCode());
} // }
return responseDto; return responseDto;
} else { // } else {
return ResponseDto.failure(ErrorMapping.get("10000")); // return ResponseDto.failure(ErrorMapping.get("10000"));
} // }
} }
@ApiOperationSupport(order = 5) @ApiOperationSupport(order = 5)
......
...@@ -50,7 +50,8 @@ public class AdamRdmService { ...@@ -50,7 +50,8 @@ public class AdamRdmService {
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | <Mobile, SMS CODE> */ /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | <Mobile, SMS CODE> */
public boolean setSmsCodeByMobile(String mobile, String smsCode) { public boolean setSmsCodeByMobile(String mobile, String smsCode) {
return redisUtil.set(AdamRedisConst.VALID_SMS_CODE_MOBILE + mobile, smsCode, 15 * 60); // TODO: 2021/7/29 改为1分钟
return redisUtil.set(AdamRedisConst.VALID_SMS_CODE_MOBILE + mobile, smsCode, 1 * 60);
} }
public String getSmsCodeByMobile(String mobile) { public String getSmsCodeByMobile(String mobile) {
...@@ -526,28 +527,14 @@ public class AdamRdmService { ...@@ -526,28 +527,14 @@ public class AdamRdmService {
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | <AdamMemberCodeVo::buyOrderNo, MEMBER_CODE + STATE> */ /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | <AdamMemberCodeVo::buyOrderNo, MEMBER_CODE + STATE> */
public boolean setMemberCodeByBuyOrderNo(String buyOrderNo, String memberCodeAndState) { public boolean setMemberCodeByBuyOrderNo(String buyOrderNo, String memberCode) {
return redisUtil.set(buyOrderNo, memberCodeAndState); return redisUtil.set(buyOrderNo, memberCode);
} }
public String getMemberCodeByBuyOrderNo(String buyOrderNo) { public String getMemberCodeByBuyOrderNo(String buyOrderNo) {
return (String) redisUtil.get(buyOrderNo); return (String) redisUtil.get(buyOrderNo);
} }
public int getMemberCodeStateByBuyOrderNoVal(String memberCodeAndState) {
if (StringUtils.isEmpty(memberCodeAndState)) {
return 0;
}
return Integer.parseInt(org.apache.commons.lang3.StringUtils.right(memberCodeAndState, 1));
}
public String getMemberCodeByBuyOrderNoVal(String memberCodeAndState) {
if (StringUtils.isEmpty(memberCodeAndState)) {
return "";
}
return memberCodeAndState.substring(0, memberCodeAndState.length() - 1);
}
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | */ /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | */
/** /**
...@@ -562,11 +549,7 @@ public class AdamRdmService { ...@@ -562,11 +549,7 @@ public class AdamRdmService {
// ); // );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s); // log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// return vo; // return vo;
String memberCodeByBuyOrderNo = this.getMemberCodeByBuyOrderNo(buyOrderNo); return this.getMemberCodeVoByCode(this.getMemberCodeByBuyOrderNo(buyOrderNo));
AdamMemberCodeVo vo = AdamMemberCodeVo.getNew();
vo.setCode(this.getMemberCodeByBuyOrderNoVal(memberCodeByBuyOrderNo));
vo.setState(this.getMemberCodeStateByBuyOrderNoVal(memberCodeByBuyOrderNo));
return vo;
} }
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | TAGS:List<AdamTagVo> */ /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | TAGS:List<AdamTagVo> */
......
...@@ -312,83 +312,86 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService { ...@@ -312,83 +312,86 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
if (null == memberCodeVo) { if (null == memberCodeVo) {
return ResponseDto.failure(ErrorMapping.get("10207")); return ResponseDto.failure(ErrorMapping.get("10207"));
} }
if (memberCodeVo.getState() != 0) { AdamMemberOrderVo initMemberOrderVo = null;
return ResponseDto.failure(ErrorMapping.get(memberCodeVo.getState() == 1 ? "10208" : "10209")); try {
} adamRdmService.delMemberCodeVoByCode(param.getMemberCode());
AdamMemberPriceVo memberPriceVo = adamRdmService.getMemberPriceVoByPriceId(memberCodeVo.getMemberId(), memberCodeVo.getMemberPriceId()); if (memberCodeVo.getState() != 0) {
if (null == memberPriceVo) { return ResponseDto.failure(ErrorMapping.get(memberCodeVo.getState() == 1 ? "10208" : "10209"));
return ResponseDto.failure(ErrorMapping.get("10202")); }
} AdamMemberPriceVo memberPriceVo = adamRdmService.getMemberPriceVoByPriceId(memberCodeVo.getMemberId(), memberCodeVo.getMemberPriceId());
AdamMemberVo memberVo = adamRdmService.getMemberVoByMemberId(memberCodeVo.getMemberId()); if (null == memberPriceVo) {
return ResponseDto.failure(ErrorMapping.get("10202"));
LocalDateTime now = LocalDateTime.now(); }
// 创建会员订单 AdamMemberVo memberVo = adamRdmService.getMemberVoByMemberId(memberCodeVo.getMemberId());
AdamMemberOrderVo initMemberOrderVo = AdamMemberOrderVo.getNew();
initMemberOrderVo.setOrderNo(IDGenerator.nextSnowId().concat("V")); LocalDateTime now = LocalDateTime.now();
initMemberOrderVo.setUid(CurrentUtil.getCurrentUid()); // 创建会员订单
initMemberOrderVo.setMode(param.getMode()); initMemberOrderVo = AdamMemberOrderVo.getNew();
initMemberOrderVo.setPrice(memberPriceVo.getPrice()); initMemberOrderVo.setOrderNo(IDGenerator.nextSnowId().concat("V"));
initMemberOrderVo.setPricePaid(BigDecimal.ZERO); initMemberOrderVo.setUid(CurrentUtil.getCurrentUid());
initMemberOrderVo.setMemberName(memberVo.getName()); initMemberOrderVo.setMode(param.getMode());
initMemberOrderVo.setMemberId(memberCodeVo.getMemberId()); initMemberOrderVo.setPrice(memberPriceVo.getPrice());
initMemberOrderVo.setMemberPriceId(memberCodeVo.getMemberPriceId()); initMemberOrderVo.setPricePaid(BigDecimal.ZERO);
initMemberOrderVo.setDays(memberPriceVo.getDays()); initMemberOrderVo.setMemberName(memberVo.getName());
initMemberOrderVo.setState(1);// 0-待支付,1-已支付 initMemberOrderVo.setMemberId(memberCodeVo.getMemberId());
initMemberOrderVo.setMemberNo(memberCodeVo.getMemberNo()); initMemberOrderVo.setMemberPriceId(memberCodeVo.getMemberPriceId());
initMemberOrderVo.setBirthday(param.getBirthday()); initMemberOrderVo.setDays(memberPriceVo.getDays());
initMemberOrderVo.setDeviceFrom(param.getDeviceFrom()); initMemberOrderVo.setState(1);// 0-待支付,1-已支付
initMemberOrderVo.setPayType(param.getMode() == 2 ? "vipcode" : "giftcode"); initMemberOrderVo.setMemberNo(memberCodeVo.getMemberNo());
initMemberOrderVo.setPayNo(memberCodeVo.getCode()); initMemberOrderVo.setBirthday(param.getBirthday());
initMemberOrderVo.setPaymentAt(now); initMemberOrderVo.setDeviceFrom(param.getDeviceFrom());
initMemberOrderVo.setCreatedAt(now); initMemberOrderVo.setPayType(param.getMode() == 2 ? "vipcode" : "giftcode");
initMemberOrderVo.setClientIp(CurrentUtil.getCliIpAddr()); initMemberOrderVo.setPayNo(memberCodeVo.getCode());
String headerCliVersion = CurrentUtil.getHeaderCliVersion(), headerCliSource = CurrentUtil.getHeaderCliSource(); initMemberOrderVo.setPaymentAt(now);
initMemberOrderVo.setSource(null == headerCliSource ? "" : headerCliSource); initMemberOrderVo.setCreatedAt(now);
initMemberOrderVo.setVersion(null == headerCliVersion ? "" : headerCliVersion); initMemberOrderVo.setClientIp(CurrentUtil.getCliIpAddr());
String headerCliVersion = CurrentUtil.getHeaderCliVersion(), headerCliSource = CurrentUtil.getHeaderCliSource();
LinkedList<String> toMqSqls = CollectionUtil.linkedListString(); initMemberOrderVo.setSource(null == headerCliSource ? "" : headerCliSource);
LinkedList<Object[]> updateMemberCodeObjs = CollectionUtil.linkedListObjectArr(), initMemberOrderVo.setVersion(null == headerCliVersion ? "" : headerCliVersion);
initMemberOrderObjs = CollectionUtil.linkedListObjectArr(),
upsertUserMemberObjs = CollectionUtil.linkedListObjectArr(); LinkedList<String> toMqSqls = CollectionUtil.linkedListString();
AdamUserMemberVo upsertUserMemberVo = adamRdmService.getUserMemberVoByUid(initMemberOrderVo.getUid()); LinkedList<Object[]> updateMemberCodeObjs = CollectionUtil.linkedListObjectArr(),
if (null != upsertUserMemberVo) { initMemberOrderObjs = CollectionUtil.linkedListObjectArr(),
upsertUserMemberVo.setState(1); upsertUserMemberObjs = CollectionUtil.linkedListObjectArr();
LocalDateTime expiryAt = upsertUserMemberVo.getExpiryAt(); AdamUserMemberVo upsertUserMemberVo = adamRdmService.getUserMemberVoByUid(initMemberOrderVo.getUid());
upsertUserMemberVo.setExpiryAt( if (null != upsertUserMemberVo) {
(expiryAt.isBefore(now) ? now : expiryAt).plusDays(initMemberOrderVo.getDays()).with(LocalTime.MAX) upsertUserMemberVo.setState(1);
); LocalDateTime expiryAt = upsertUserMemberVo.getExpiryAt();
// long s = System.currentTimeMillis(); upsertUserMemberVo.setExpiryAt(
// mongoTemplate.getCollection(AdamUserMemberVo.class.getSimpleName()).updateOne( (expiryAt.isBefore(now) ? now : expiryAt).plusDays(initMemberOrderVo.getDays()).with(LocalTime.MAX)
// Query.query(Criteria.where("uid").is(upsertUserMemberVo.getUid())).getQueryObject(), );
// new Document("$set", new Document("expiryAt", upsertUserMemberVo.getExpiryAt()).append("state", 1)) // long s = System.currentTimeMillis();
// ); // mongoTemplate.getCollection(AdamUserMemberVo.class.getSimpleName()).updateOne(
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s); // Query.query(Criteria.where("uid").is(upsertUserMemberVo.getUid())).getQueryObject(),
toMqSqls.add(SqlMapping.get("adam_user_member.update")); // new Document("$set", new Document("expiryAt", upsertUserMemberVo.getExpiryAt()).append("state", 1))
upsertUserMemberObjs.add(new Object[]{ // );
upsertUserMemberVo.getState(), upsertUserMemberVo.getExpiryAt(), now, upsertUserMemberVo.getUid() // log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
}); toMqSqls.add(SqlMapping.get("adam_user_member.update"));
} else { upsertUserMemberObjs.add(new Object[]{
upsertUserMemberVo = AdamUserMemberVo.getNew(); upsertUserMemberVo.getState(), upsertUserMemberVo.getExpiryAt(), now, upsertUserMemberVo.getUid()
upsertUserMemberVo.setUid(initMemberOrderVo.getUid()); });
upsertUserMemberVo.setMemberId(memberCodeVo.getMemberId()); } else {
upsertUserMemberVo.setMemberNo(memberCodeVo.getMemberNo()); upsertUserMemberVo = AdamUserMemberVo.getNew();
upsertUserMemberVo.setState(1); upsertUserMemberVo.setUid(initMemberOrderVo.getUid());
upsertUserMemberVo.setExpiryAt(now.plusDays(initMemberOrderVo.getDays()).with(LocalTime.MAX)); upsertUserMemberVo.setMemberId(memberCodeVo.getMemberId());
upsertUserMemberVo.setCreatedAt(now); upsertUserMemberVo.setMemberNo(memberCodeVo.getMemberNo());
upsertUserMemberVo.setState(1);
// long s = System.currentTimeMillis(); upsertUserMemberVo.setExpiryAt(now.plusDays(initMemberOrderVo.getDays()).with(LocalTime.MAX));
// mongoTemplate.insert(upsertUserMemberVo, AdamUserMemberVo.class.getSimpleName()); upsertUserMemberVo.setCreatedAt(now);
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
toMqSqls.add(SqlMapping.get("adam_user_member.add")); // long s = System.currentTimeMillis();
upsertUserMemberObjs.add(new Object[]{ // mongoTemplate.insert(upsertUserMemberVo, AdamUserMemberVo.class.getSimpleName());
upsertUserMemberVo.getUid(), upsertUserMemberVo.getMemberId(), upsertUserMemberVo.getMemberNo(), // log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
upsertUserMemberVo.getState(), upsertUserMemberVo.getExpiryAt(), upsertUserMemberVo.getCreatedAt() toMqSqls.add(SqlMapping.get("adam_user_member.add"));
}); upsertUserMemberObjs.add(new Object[]{
} upsertUserMemberVo.getUid(), upsertUserMemberVo.getMemberId(), upsertUserMemberVo.getMemberNo(),
long s = System.currentTimeMillis(); upsertUserMemberVo.getState(), upsertUserMemberVo.getExpiryAt(), upsertUserMemberVo.getCreatedAt()
adamRdmService.setUserMemberVoByUid(initMemberOrderVo.getUid(), upsertUserMemberVo); });
adamRdmService.delMemberCodeVoByCode(memberCodeVo.getCode()); }
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s); long s = System.currentTimeMillis();
adamRdmService.setUserMemberVoByUid(initMemberOrderVo.getUid(), upsertUserMemberVo);
// adamRdmService.delMemberCodeVoByCode(memberCodeVo.getCode());
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
// Document updateMemberCodeVo = new Document("state", 1) // Document updateMemberCodeVo = new Document("state", 1)
// .append("updatedAt", now) // .append("updatedAt", now)
...@@ -401,29 +404,38 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService { ...@@ -401,29 +404,38 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
// new Document("$set", updateMemberCodeVo) // new Document("$set", updateMemberCodeVo)
// ); // );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s); // log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
toMqSqls.add(SqlMapping.get("adam_member_code.exchange")); toMqSqls.add(SqlMapping.get("adam_member_code.exchange"));
updateMemberCodeObjs.add(new Object[]{ updateMemberCodeObjs.add(new Object[]{
1, now, initMemberOrderVo.getOrderNo(), upsertUserMemberVo.getUid(), now, memberCodeVo.getCode() 1, now, initMemberOrderVo.getOrderNo(), upsertUserMemberVo.getUid(), now, memberCodeVo.getCode()
}); });
// s = System.currentTimeMillis(); // s = System.currentTimeMillis();
// mongoTemplate.insert(initMemberOrderVo, AdamMemberOrderVo.class.getSimpleName()); // mongoTemplate.insert(initMemberOrderVo, AdamMemberOrderVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s); // log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
toMqSqls.add(SqlMapping.get("adam_member_order.add")); toMqSqls.add(SqlMapping.get("adam_member_order.add"));
initMemberOrderObjs.add(new Object[]{ initMemberOrderObjs.add(new Object[]{
initMemberOrderVo.getOrderNo(), initMemberOrderVo.getUid(), initMemberOrderVo.getMode(), initMemberOrderVo.getPrice(), initMemberOrderVo.getOrderNo(), initMemberOrderVo.getUid(), initMemberOrderVo.getMode(), initMemberOrderVo.getPrice(),
initMemberOrderVo.getPricePaid(), initMemberOrderVo.getMemberName(), initMemberOrderVo.getMemberId(), initMemberOrderVo.getMemberPriceId(), initMemberOrderVo.getPricePaid(), initMemberOrderVo.getMemberName(), initMemberOrderVo.getMemberId(), initMemberOrderVo.getMemberPriceId(),
initMemberOrderVo.getDays(), initMemberOrderVo.getState(), initMemberOrderVo.getMemberNo(), initMemberOrderVo.getBirthday(), initMemberOrderVo.getDays(), initMemberOrderVo.getState(), initMemberOrderVo.getMemberNo(), initMemberOrderVo.getBirthday(),
initMemberOrderVo.getDeviceFrom(), initMemberOrderVo.getPayType(), initMemberOrderVo.getPayNo(), initMemberOrderVo.getPaymentAt(), initMemberOrderVo.getDeviceFrom(), initMemberOrderVo.getPayType(), initMemberOrderVo.getPayNo(), initMemberOrderVo.getPaymentAt(),
initMemberOrderVo.getCreatedAt(), initMemberOrderVo.getClientIp(), initMemberOrderVo.getSource(), initMemberOrderVo.getVersion() initMemberOrderVo.getCreatedAt(), initMemberOrderVo.getClientIp(), initMemberOrderVo.getSource(), initMemberOrderVo.getVersion()
}); });
s = System.currentTimeMillis(); s = System.currentTimeMillis();
queueUtils.sendMsgByRedis( queueUtils.sendMsgByRedis(
MQConst.AdamQueue.SQL_UMEMBER.getKey(), MQConst.AdamQueue.SQL_UMEMBER.getKey(),
SqlMapping.gets(toMqSqls, upsertUserMemberObjs, updateMemberCodeObjs, initMemberOrderObjs) SqlMapping.gets(toMqSqls, upsertUserMemberObjs, updateMemberCodeObjs, initMemberOrderObjs)
); );
log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s); log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s);
} catch (Exception e) {
log.error("会员兑换发生异常[memberCodeVo={}]", JsonUtils.toJson(memberCodeVo), e);
adamRdmService.setMemberCodeVoByCode(memberCodeVo.getCode(), memberCodeVo);
if (null != initMemberOrderVo) {
adamRdmService.delUserMemberVoByUid(initMemberOrderVo.getUid());
}
return ResponseDto.failure(ErrorMapping.get("10214"));
}
AdamMemberOrderResult result = AdamMemberOrderResult.getNew(); AdamMemberOrderResult result = AdamMemberOrderResult.getNew();
result.setOrderNo(initMemberOrderVo.getOrderNo()); result.setOrderNo(initMemberOrderVo.getOrderNo());
......
package com.liquidnet.service.adam.service.impl; package com.liquidnet.service.adam.service.impl;
import com.liquidnet.common.cache.redisson.util.RedisLockUtil; import com.liquidnet.common.exception.LiquidnetServiceException;
import com.liquidnet.service.adam.dto.vo.AdamMemberVo;
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 lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -10,8 +9,6 @@ import org.springframework.stereotype.Service; ...@@ -10,8 +9,6 @@ import org.springframework.stereotype.Service;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import static com.liquidnet.service.adam.constant.AdamRedisConst.LOCK_KEY_UMEMBER_NO;
@Slf4j @Slf4j
@Service @Service
public class AdamUserMemberServiceImpl implements IAdamUserMemberService { public class AdamUserMemberServiceImpl implements IAdamUserMemberService {
...@@ -25,25 +22,27 @@ public class AdamUserMemberServiceImpl implements IAdamUserMemberService { ...@@ -25,25 +22,27 @@ public class AdamUserMemberServiceImpl implements IAdamUserMemberService {
long s = System.currentTimeMillis(); long s = System.currentTimeMillis();
int memberMaxNo = adamRdmService.getMaxMemberNo(); int memberMaxNo = adamRdmService.getMaxMemberNo();
if (-1 == memberMaxNo) { if (-1 == memberMaxNo) {
if (RedisLockUtil.tryLock(LOCK_KEY_UMEMBER_NO, 1, 3)) { // TODO: 2021/7/29 降级DB
memberMaxNo = adamRdmService.getMaxMemberNo(); throw new LiquidnetServiceException();
if (-1 == memberMaxNo) { // if (RedisLockUtil.tryLock(LOCK_KEY_UMEMBER_NO, 1, 3)) {
// Query query = Query.query(Criteria.where("memberId").is(memberId)).with(Sort.by(Sort.Direction.DESC, "memberNo")).limit(1); // memberMaxNo = adamRdmService.getMaxMemberNo();
// // if (-1 == memberMaxNo) {
// AdamUserMemberVo latestMaxMemberNoVo = mongoTemplate.findOne(query, AdamUserMemberVo.class, AdamUserMemberVo.class.getSimpleName()); //// Query query = Query.query(Criteria.where("memberId").is(memberId)).with(Sort.by(Sort.Direction.DESC, "memberNo")).limit(1);
////
//// AdamUserMemberVo latestMaxMemberNoVo = mongoTemplate.findOne(query, AdamUserMemberVo.class, AdamUserMemberVo.class.getSimpleName());
////
//// if (null == latestMaxMemberNoVo) {
// AdamMemberVo memberVo = adamRdmService.getMemberVoByMemberId(memberId);
// //
// if (null == latestMaxMemberNoVo) { // adamRdmService.setMaxMemberNo(memberVo.getStartNo());
AdamMemberVo memberVo = adamRdmService.getMemberVoByMemberId(memberId); //// } else {
//// adamRdmService.setMaxMemberNo(Integer.parseInt(latestMaxMemberNoVo.getMemberNo()));
adamRdmService.setMaxMemberNo(memberVo.getStartNo()); //// }
// } else { // }
// adamRdmService.setMaxMemberNo(Integer.parseInt(latestMaxMemberNoVo.getMemberNo())); // RedisLockUtil.unlock(LOCK_KEY_UMEMBER_NO);
// } // } else {
} // return null;
RedisLockUtil.unlock(LOCK_KEY_UMEMBER_NO); // }
} else {
return null;
}
} }
String nextMemberNoStr = String.valueOf(adamRdmService.incrMemberNo()); String nextMemberNoStr = String.valueOf(adamRdmService.incrMemberNo());
if (Pattern.matches("([\\d])\\1{" + (nextMemberNoStr.length() - 1) + "}", nextMemberNoStr)) { if (Pattern.matches("([\\d])\\1{" + (nextMemberNoStr.length() - 1) + "}", nextMemberNoStr)) {
......
package com.liquidnet.service.adam.service.impl; package com.liquidnet.service.adam.service.impl;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
import com.liquidnet.common.cache.redisson.util.RedisLockUtil;
import com.liquidnet.common.exception.LiquidnetServiceException; import com.liquidnet.common.exception.LiquidnetServiceException;
import com.liquidnet.commons.lang.util.*; import com.liquidnet.commons.lang.util.*;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.AdamThirdPartParam; import com.liquidnet.service.adam.dto.AdamThirdPartParam;
import com.liquidnet.service.adam.dto.vo.AdamRealInfoVo; import com.liquidnet.service.adam.dto.vo.AdamRealInfoVo;
import com.liquidnet.service.adam.dto.vo.AdamThirdPartInfoVo; import com.liquidnet.service.adam.dto.vo.AdamThirdPartInfoVo;
...@@ -34,8 +32,6 @@ import java.time.LocalDateTime; ...@@ -34,8 +32,6 @@ import java.time.LocalDateTime;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import static com.liquidnet.service.adam.constant.AdamRedisConst.LOCK_KEY_UREGISTER;
/** /**
* <p> * <p>
* 用户 服务实现类 * 用户 服务实现类
...@@ -70,7 +66,7 @@ public class AdamUserServiceImpl implements IAdamUserService { ...@@ -70,7 +66,7 @@ public class AdamUserServiceImpl implements IAdamUserService {
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
AdamUserInfoVo userInfoVo = null; AdamUserInfoVo userInfoVo = null;
if (RedisLockUtil.tryLock(LOCK_KEY_UREGISTER + mobile, 1, 5)) { // if (RedisLockUtil.tryLock(LOCK_KEY_UREGISTER + mobile, 1, 5)) {
String uid = adamRdmService.getUidByMobile(mobile); String uid = adamRdmService.getUidByMobile(mobile);
if (StringUtils.isEmpty(uid)) { if (StringUtils.isEmpty(uid)) {
userInfoVo = AdamUserInfoVo.getNew(); userInfoVo = AdamUserInfoVo.getNew();
...@@ -110,8 +106,8 @@ public class AdamUserServiceImpl implements IAdamUserService { ...@@ -110,8 +106,8 @@ public class AdamUserServiceImpl implements IAdamUserService {
} else { } else {
userInfoVo = adamRdmService.getUserInfoVoByUid(uid); userInfoVo = adamRdmService.getUserInfoVoByUid(uid);
} }
RedisLockUtil.unlock(LOCK_KEY_UREGISTER + mobile); // RedisLockUtil.unlock(LOCK_KEY_UREGISTER + mobile);
} // }
return userInfoVo; return userInfoVo;
} }
...@@ -121,7 +117,7 @@ public class AdamUserServiceImpl implements IAdamUserService { ...@@ -121,7 +117,7 @@ public class AdamUserServiceImpl implements IAdamUserService {
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
AdamUserInfoVo userInfoVo = null; AdamUserInfoVo userInfoVo = null;
if (RedisLockUtil.tryLock(LOCK_KEY_UREGISTER + param.getOpenId() + param.getPlatform(), 1, 5)) { // if (RedisLockUtil.tryLock(LOCK_KEY_UREGISTER + param.getOpenId() + param.getPlatform(), 1, 5)) {
String uid = adamRdmService.getUidByPlatformOpenId(param.getPlatform(), param.getOpenId()); String uid = adamRdmService.getUidByPlatformOpenId(param.getPlatform(), param.getOpenId());
if (StringUtils.isEmpty(uid)) { if (StringUtils.isEmpty(uid)) {
long s = System.currentTimeMillis(); long s = System.currentTimeMillis();
...@@ -188,8 +184,8 @@ public class AdamUserServiceImpl implements IAdamUserService { ...@@ -188,8 +184,8 @@ public class AdamUserServiceImpl implements IAdamUserService {
} else { } else {
userInfoVo = adamRdmService.getUserInfoVoByUid(uid); userInfoVo = adamRdmService.getUserInfoVoByUid(uid);
} }
RedisLockUtil.unlock(LOCK_KEY_UREGISTER + param.getOpenId() + param.getPlatform()); // RedisLockUtil.unlock(LOCK_KEY_UREGISTER + param.getOpenId() + param.getPlatform());
} // }
return userInfoVo; return userInfoVo;
} }
...@@ -377,9 +373,9 @@ public class AdamUserServiceImpl implements IAdamUserService { ...@@ -377,9 +373,9 @@ public class AdamUserServiceImpl implements IAdamUserService {
// @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) // @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public AdamRealInfoVo identity(String uid, String name, String idCard) { public AdamRealInfoVo identity(String uid, String name, String idCard) {
AdamRealInfoVo vo = null; AdamRealInfoVo vo = null;
if (RedisLockUtil.tryLock(AdamRedisConst.LOCK_KEY_UIDENTITY + uid, 1, 3)) { // if (RedisLockUtil.tryLock(AdamRedisConst.LOCK_KEY_UIDENTITY + uid, 1, 3)) {
vo = adamRdmService.getRealInfoVoByUid(uid); // vo = adamRdmService.getRealInfoVoByUid(uid);
if (null == vo) { // if (null == vo) {
if (!adamRdmService.isCertification(1, idCard, name)) { if (!adamRdmService.isCertification(1, idCard, name)) {
// String respStr = null; // String respStr = null;
// try { // try {
...@@ -431,9 +427,9 @@ public class AdamUserServiceImpl implements IAdamUserService { ...@@ -431,9 +427,9 @@ public class AdamUserServiceImpl implements IAdamUserService {
adamRdmService.setRealInfoVoByUid(uid, vo); adamRdmService.setRealInfoVoByUid(uid, vo);
adamRdmService.setCertification(1, idCard, name); adamRdmService.setCertification(1, idCard, name);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s); log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
} // }
RedisLockUtil.unlock(AdamRedisConst.LOCK_KEY_UIDENTITY + uid); // RedisLockUtil.unlock(AdamRedisConst.LOCK_KEY_UIDENTITY + uid);
} // }
return vo; return vo;
} }
} }
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
10000=请求频繁,稍后再试 10000=请求频繁,稍后再试
10001= 10001=
10002=验证码发送失败 10002=验证码发送失败
10003=已超时,请重新获取验证码 10003=发送过于频繁,请稍后再试
10004=验证码错误,请重新输入 10004=验证码错误,请重新输入
10005=手机号获取失败,请更换登录方式 10005=手机号获取失败,请更换登录方式
10006=第三方账号未注册 10006=第三方账号未注册
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
10211=订单不存在 10211=订单不存在
10212=订单状态查询失败 10212=订单状态查询失败
10213=感谢您选择登登登。距您上一次离开不足一年,登登登还没准备好再次邀您加入。不如我们给彼此多一些时间,有缘再相见。 10213=感谢您选择登登登。距您上一次离开不足一年,登登登还没准备好再次邀您加入。不如我们给彼此多一些时间,有缘再相见。
10214= 10214=兑换失败
10215=本次摩登天空会员购买名额已满 10215=本次摩登天空会员购买名额已满
10216= 10216=
......
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