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

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

fix:bug:#65|#22;

parent 70959b0e
......@@ -12,7 +12,7 @@ public class AdamMemberCodeParam implements Serializable {
private static final long serialVersionUID = -7273522103593077617L;
@ApiModelProperty(position = 1, required = true, value = "会员类型ID", example = "1")
private String memberId;
@ApiModelProperty(position = 2, required = true, value = "会员价格ID", example = "101")
@ApiModelProperty(position = 2, required = true, value = "会员价格ID", example = "1")
private String memberPriceId;
@ApiModelProperty(position = 3, required = true, value = "类型:0-用户购买兑换码,1-后台生成兑换码", example = "1")
private Integer type;
......
......@@ -16,7 +16,7 @@ public class AdamMemberOrderParam implements Serializable {
@ApiModelProperty(position = 10, required = true, value = "会员ID[50]", example = "1")
@NotBlank
private String memberId;
@ApiModelProperty(position = 11, required = true, value = "会员价格ID", example = "101")
@ApiModelProperty(position = 11, required = true, value = "会员价格ID", example = "1")
@NotBlank
private String memberPriceId;
@ApiModelProperty(position = 12, required = true, value = "购买方式:0-购买会员,1-购买会员码", allowableValues = "0,1")
......
......@@ -57,21 +57,21 @@ public class CurrentUtil {
}
if (ip == null || ip.length() == 0 || CLI_UNKNOWN.equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
if (LOCALHOST_IP1.equalsIgnoreCase(ip) || LOCALHOST_IP.equalsIgnoreCase(ip)) {
// 根据网卡取本机配置的IP
InetAddress iNet = null;
try {
iNet = InetAddress.getLocalHost();
} catch (UnknownHostException e) {
e.printStackTrace();
}
ip = iNet.getHostAddress();
}
// if (LOCALHOST_IP1.equalsIgnoreCase(ip) || LOCALHOST_IP.equalsIgnoreCase(ip)) {
// // 根据网卡取本机配置的IP
// InetAddress iNet = null;
// try {
// iNet = InetAddress.getLocalHost();
// } catch (UnknownHostException e) {
// e.printStackTrace();
// }
// ip = iNet.getHostAddress();
// }
}
// 使用代理,则获取第一个IP地址
if (!StringUtils.isEmpty(ip) && ip.indexOf(IP_UTILS_FLAG) > 0) {
ip = ip.substring(0, ip.indexOf(IP_UTILS_FLAG));
}
return "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : ip;
return LOCALHOST_IP.equals(ip) ? LOCALHOST_IP1 : ip;
}
}
......@@ -173,9 +173,10 @@ public class AdamMemberOrderController {
public ResponseDto<AdamMemberOrderResult> exchangeMemberCode(@Valid @RequestBody AdamMemberOrderCodeParam param) {
log.debug("member/order/exchange:param:{}", JsonUtils.toJson(param));
String currentUid = CurrentUtil.getCurrentUid();
if (null != adamRdmService.getUserMemberVoByUid(currentUid)) {// 仅限从未购买过会员的用户使用
return ResponseDto.failure(ErrorMapping.get("10200"));
}
// TODO: 2021/6/19 关闭该验证(如果已是会员继续兑换则保留原会员号,兑换码对应会员号记录至会员订单)
// if (null != adamRdmService.getUserMemberVoByUid(currentUid)) {// 仅限从未购买过会员的用户使用
// return ResponseDto.failure(ErrorMapping.get("10200"));
// }
// TODO: 2021/6/9 判断黑名单,待定(暂不做)
......
......@@ -34,6 +34,7 @@ import org.springframework.util.StringUtils;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.*;
@Slf4j
......@@ -140,7 +141,9 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
try {
String url = env.getProperty("liquidnet.url-pay.pay") + payUri;
log.debug("HttpUtil.resquest.url:{},param:{}", url, JsonUtils.toJson(payParam));
long s = System.currentTimeMillis();
String json = HttpUtil.post(url, payParam);
log.debug("#PHP.API耗时:{}ms", System.currentTimeMillis() - s);
log.debug("HttpUtil.response.body:{}", json);
Map payResult = JsonUtils.fromJson(json, Map.class);
......@@ -189,7 +192,6 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
*/
LinkedList<String> toMqSqls = new LinkedList<>();
LinkedList<Object[]> operationObjs = new LinkedList<>(), updateMemberOrderObjs = new LinkedList<>();
// AdamMemberOrderVo updateMemberOrderVo = AdamMemberOrderVo.getNew();
LocalDateTime now = LocalDateTime.now();
if (0 == handleMemberOrderVo.getMode()) {// 购买会员回调
AdamUserMemberVo existUserMemberVo = adamRdmService.getUserMemberVoByUid(handleMemberOrderVo.getUid());
......@@ -201,13 +203,15 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
initUserMemberVo.setMemberId(handleMemberOrderVo.getMemberId());
initUserMemberVo.setMemberNo(memberNo);
initUserMemberVo.setState(1);// 1-正常,2-失效
Date expiryAt = DateUtil.getBeforeDayEnd(Calendar.getInstance(), memberPriceVo.getDays());
initUserMemberVo.setExpiryAt(DateUtil.asLocalDateTime(expiryAt));
initUserMemberVo.setExpiryAt(now.plusDays(memberPriceVo.getDays()).with(LocalTime.MAX));
initUserMemberVo.setCreatedAt(now);
// 订单写入MongoDB和Redis中
long s = System.currentTimeMillis();
mongoTemplate.insert(initUserMemberVo, AdamUserMemberVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
s = System.currentTimeMillis();
adamRdmService.setUserMemberVoByUid(handleMemberOrderVo.getUid(), initUserMemberVo);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
handleMemberOrderVo.setMemberNo(memberNo);
......@@ -216,23 +220,20 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
initUserMemberVo.getUid(), initUserMemberVo.getMemberId(), initUserMemberVo.getMemberNo(),
initUserMemberVo.getState(), initUserMemberVo.getExpiryAt(), initUserMemberVo.getCreatedAt()
});
} else { // 续费
} else {// 续费
LocalDateTime currentExpiryAt = existUserMemberVo.getExpiryAt();
LocalDateTime expiryAt = (currentExpiryAt.isBefore(now) ? now : currentExpiryAt).plusDays(memberPriceVo.getDays()).with(LocalTime.MAX);
Calendar calendar = Calendar.getInstance();
Date nowDt = DateUtil.asDate(now), currentExpiryAtDate = DateUtil.asDate(currentExpiryAt);
calendar.setTime(currentExpiryAtDate.before(nowDt) ? nowDt : currentExpiryAtDate);
LocalDateTime expiryAt = DateUtil.asLocalDateTime(DateUtil.getBeforeDayEnd(calendar, memberPriceVo.getDays()));
// existUserMemberVo.setExpiryAt(expiryAt);
// existUserMemberVo.setState(1);// 1-正常,2-失效
long s = System.currentTimeMillis();
mongoTemplate.getCollection(AdamUserMemberVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("uid").is(existUserMemberVo.getUid())).getQueryObject(),
// new Document("$set", Document.parse(JsonUtils.toJson(existUserMemberVo))));
new Document("$set", new Document("expiryAt", expiryAt).append("state", 1))
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
existUserMemberVo.setExpiryAt(expiryAt);
s = System.currentTimeMillis();
adamRdmService.setUserMemberVoByUid(handleMemberOrderVo.getUid(), existUserMemberVo);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
handleMemberOrderVo.setMemberNo(existUserMemberVo.getMemberNo());
......@@ -257,8 +258,12 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
initMemberCodeVo.setBuyAt(now);
initMemberCodeVo.setCreatedAt(now);
long s = System.currentTimeMillis();
mongoTemplate.insert(initMemberCodeVo, AdamMemberCodeVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
s = System.currentTimeMillis();
adamRdmService.setMemberCodeVoByCode(initMemberCodeVo.getCode(), initMemberCodeVo);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
handleMemberOrderVo.setMemberCode(initMemberCodeVo.getCode());
handleMemberOrderVo.setMemberNo(memberNo);
......@@ -274,7 +279,9 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
handleMemberOrderVo.setUpdatedAt(now);
handleMemberOrderVo.setState(1);// 1-已支付
long s = System.currentTimeMillis();
mongoTemplate.insert(handleMemberOrderVo, AdamMemberOrderVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
toMqSqls.add(SqlMapping.get("adam_member_order.add"));
updateMemberOrderObjs.add(new Object[]{
......@@ -285,10 +292,14 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
handleMemberOrderVo.getCreatedAt(), handleMemberOrderVo.getClientIp(), handleMemberOrderVo.getSource(), handleMemberOrderVo.getVersion()
});
s = System.currentTimeMillis();
adamRdmService.setShotMemberOrderVoByOrderNo(handleMemberOrderVo.getOrderNo(), handleMemberOrderVo);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
s = System.currentTimeMillis();
rabbitTemplate.convertAndSend(MQConst.EX_LNS_SQL_UCENTER, MQConst.RK_SQL_UMEMBER,
SqlMapping.gets(toMqSqls, operationObjs, updateMemberOrderObjs));
log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s);
return ResponseDto.success();
}
......@@ -307,7 +318,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
}
AdamMemberVo memberVo = adamRdmService.getMemberVoByMemberId(memberCodeVo.getMemberId());
LocalDateTime currentDateTime = LocalDateTime.now();
LocalDateTime now = LocalDateTime.now();
// 创建会员订单
AdamMemberOrderVo initMemberOrderVo = AdamMemberOrderVo.getNew();
initMemberOrderVo.setOrderNo(IDGenerator.nextSnowId().toString().concat("V"));
......@@ -325,52 +336,75 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
initMemberOrderVo.setDeviceFrom(param.getDeviceFrom());
initMemberOrderVo.setPayType(param.getMode() == 2 ? "vipcode" : "giftcode");
initMemberOrderVo.setPayNo(memberCodeVo.getCode());
initMemberOrderVo.setPaymentAt(currentDateTime);
initMemberOrderVo.setCreatedAt(currentDateTime);
initMemberOrderVo.setPaymentAt(now);
initMemberOrderVo.setCreatedAt(now);
initMemberOrderVo.setClientIp(CurrentUtil.getCliIpAddr());
initMemberOrderVo.setSource(CurrentUtil.getCliSource());
initMemberOrderVo.setVersion(CurrentUtil.getCliVersion());
initMemberOrderVo.setMemberCode(param.getMemberCode());
AdamUserMemberVo initUserMemberVo = AdamUserMemberVo.getNew();
initUserMemberVo.setUid(initMemberOrderVo.getUid());
initUserMemberVo.setMemberId(memberCodeVo.getMemberId());
initUserMemberVo.setMemberNo(memberCodeVo.getMemberNo());
initUserMemberVo.setState(1);
initUserMemberVo.setExpiryAt(
DateUtil.asLocalDateTime(
DateUtil.getBeforeDayEnd(Calendar.getInstance(), initMemberOrderVo.getDays())
));
initUserMemberVo.setCreatedAt(currentDateTime);
LinkedList<String> toMqSqls = new LinkedList<>();
LinkedList<Object[]> updateMemberCodeObjs = new LinkedList<>(),
initMemberOrderObjs = new LinkedList<>(), initUserMemberObjs = new LinkedList<>();
// AdamMemberCodeVo updateMemberCodeVo = AdamMemberCodeVo.getNew();
// updateMemberCodeVo.setState(1);
// updateMemberCodeVo.setUpdatedAt(currentDateTime);
// updateMemberCodeVo.setUseOrderNo(initMemberOrderVo.getOrderNo());
// updateMemberCodeVo.setUseUid(initUserMemberVo.getUid());
// updateMemberCodeVo.setUseAt(currentDateTime);
initMemberOrderObjs = new LinkedList<>(), upsertUserMemberObjs = new LinkedList<>();
AdamUserMemberVo upsertUserMemberVo = adamRdmService.getUserMemberVoByUid(initMemberOrderVo.getUid());
if (null != upsertUserMemberVo) {
upsertUserMemberVo.setState(1);
LocalDateTime expiryAt = upsertUserMemberVo.getExpiryAt();
upsertUserMemberVo.setExpiryAt(
(expiryAt.isBefore(now) ? now : expiryAt).plusDays(initMemberOrderVo.getDays()).with(LocalTime.MAX)
);
long s = System.currentTimeMillis();
mongoTemplate.getCollection(AdamUserMemberVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("uid").is(upsertUserMemberVo.getUid())).getQueryObject(),
new Document("$set", new Document("expiryAt", upsertUserMemberVo.getExpiryAt()).append("state", 1))
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
toMqSqls.add(SqlMapping.get("adam_user_member.update"));
upsertUserMemberObjs.add(new Object[]{
upsertUserMemberVo.getState(), upsertUserMemberVo.getExpiryAt(), now, upsertUserMemberVo.getUid()
});
} else {
upsertUserMemberVo = AdamUserMemberVo.getNew();
upsertUserMemberVo.setUid(initMemberOrderVo.getUid());
upsertUserMemberVo.setMemberId(memberCodeVo.getMemberId());
upsertUserMemberVo.setMemberNo(memberCodeVo.getMemberNo());
upsertUserMemberVo.setState(1);
upsertUserMemberVo.setExpiryAt(now.plusDays(initMemberOrderVo.getDays()).with(LocalTime.MAX));
upsertUserMemberVo.setCreatedAt(now);
long s = System.currentTimeMillis();
mongoTemplate.insert(upsertUserMemberVo, AdamUserMemberVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
toMqSqls.add(SqlMapping.get("adam_user_member.add"));
upsertUserMemberObjs.add(new Object[]{
upsertUserMemberVo.getUid(), upsertUserMemberVo.getMemberId(), upsertUserMemberVo.getMemberNo(),
upsertUserMemberVo.getState(), upsertUserMemberVo.getExpiryAt(), upsertUserMemberVo.getCreatedAt()
});
}
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)
.append("updatedAt", currentDateTime)
.append("updatedAt", now)
.append("useOrderNo", initMemberOrderVo.getOrderNo())
.append("useUid", initUserMemberVo.getUid())
.append("useAt", currentDateTime);
.append("useUid", upsertUserMemberVo.getUid())
.append("useAt", now);
s = System.currentTimeMillis();
mongoTemplate.getCollection(AdamMemberCodeVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("code").is(memberCodeVo.getCode())).getQueryObject(),
// new Document("$set", Document.parse(JsonUtils.toJson(updateMemberCodeVo)))
new Document("$set", updateMemberCodeVo)
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
toMqSqls.add(SqlMapping.get("adam_member_code.exchange"));
updateMemberCodeObjs.add(new Object[]{
// updateMemberCodeVo.getState(), updateMemberCodeVo.getUpdatedAt(), updateMemberCodeVo.getUseOrderNo(),
// updateMemberCodeVo.getUseUid(), updateMemberCodeVo.getUseAt(), memberCodeVo.getCode()
1, currentDateTime, initMemberOrderVo.getOrderNo(), initUserMemberVo.getUid(), currentDateTime, memberCodeVo.getCode()
1, now, initMemberOrderVo.getOrderNo(), upsertUserMemberVo.getUid(), now, memberCodeVo.getCode()
});
s = System.currentTimeMillis();
mongoTemplate.insert(initMemberOrderVo, AdamMemberOrderVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
toMqSqls.add(SqlMapping.get("adam_member_order.add"));
initMemberOrderObjs.add(new Object[]{
initMemberOrderVo.getOrderNo(), initMemberOrderVo.getUid(), initMemberOrderVo.getMode(), initMemberOrderVo.getPrice(),
......@@ -379,18 +413,11 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
initMemberOrderVo.getDeviceFrom(), initMemberOrderVo.getPayType(), initMemberOrderVo.getPayNo(), initMemberOrderVo.getPaymentAt(),
initMemberOrderVo.getCreatedAt(), initMemberOrderVo.getClientIp(), initMemberOrderVo.getSource(), initMemberOrderVo.getVersion()
});
mongoTemplate.insert(initUserMemberVo, AdamUserMemberVo.class.getSimpleName());
toMqSqls.add(SqlMapping.get("adam_user_member.add"));
initUserMemberObjs.add(new Object[]{
initUserMemberVo.getUid(), initUserMemberVo.getMemberId(), initUserMemberVo.getMemberNo(),
initUserMemberVo.getState(), initUserMemberVo.getExpiryAt(), initUserMemberVo.getCreatedAt()
});
adamRdmService.setUserMemberVoByUid(initMemberOrderVo.getUid(), initUserMemberVo);
adamRdmService.delMemberCodeVoByCode(memberCodeVo.getCode());
s = System.currentTimeMillis();
rabbitTemplate.convertAndSend(MQConst.EX_LNS_SQL_UCENTER, MQConst.RK_SQL_UMEMBER,
SqlMapping.gets(toMqSqls, updateMemberCodeObjs, initMemberOrderObjs, initUserMemberObjs));
SqlMapping.gets(toMqSqls, updateMemberCodeObjs, initMemberOrderObjs, upsertUserMemberObjs));
log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s);
AdamMemberOrderResult result = AdamMemberOrderResult.getNew();
result.setOrderNo(initMemberOrderVo.getOrderNo());
......
......@@ -18,6 +18,7 @@ import org.springframework.util.StringUtils;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
@Slf4j
......@@ -36,11 +37,12 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
@Override
public String getUidByMobile(String mobile) {
String key = AdamRedisConst.IDENTITY_MOBILE.concat(mobile);
long s = System.currentTimeMillis();
String val = (String) redisUtil.get(key);
if (StringUtils.isEmpty(val)) {
Query query = Query.query(Criteria.where("mobile").is(mobile).and("state").is(1));
query.fields().include("uid");
long s = System.currentTimeMillis();
s = System.currentTimeMillis();
AdamUserInfoVo vo = mongoTemplate.findOne(query, AdamUserInfoVo.class, AdamUserInfoVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (null != vo) {
......@@ -48,6 +50,7 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
redisUtil.set(key, vo.getUid());
}
}
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return val;
}
......@@ -64,11 +67,12 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
@Override
public String getUidByPlatformOpenId(String platform, String openId) {
String key = AdamRedisConst.IDENTITY_THIRD_PARTY + platform + ":" + openId;
long s = System.currentTimeMillis();
String val = (String) redisUtil.get(key);
if (StringUtils.isEmpty(val)) {
Query query = Query.query(Criteria.where("openId").is(openId).and("platform").is(platform).and("state").is(1));
query.fields().include("uid");
long s = System.currentTimeMillis();
s = System.currentTimeMillis();
AdamThirdPartInfoVo vo = mongoTemplate.findOne(query, AdamThirdPartInfoVo.class, AdamThirdPartInfoVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (null != vo) {
......@@ -76,6 +80,7 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
redisUtil.set(key, vo.getUid());
}
}
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return val;
}
......@@ -92,15 +97,17 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
@Override
public AdamUserInfoVo getUserInfoVoByUid(String uid) {
String rk = AdamRedisConst.INFO_USER.concat(uid);
long s = System.currentTimeMillis();
AdamUserInfoVo vo = (AdamUserInfoVo) redisUtil.get(rk);
if (null == vo) {
long s = System.currentTimeMillis();
s = System.currentTimeMillis();
vo = mongoTemplate.findOne(Query.query(Criteria.where("uid").is(uid).and("state").is(1)),
AdamUserInfoVo.class, AdamUserInfoVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (null != vo) redisUtil.set(rk, vo);
}
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo;
}
......@@ -117,9 +124,10 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
@Override
public AdamRealInfoVo getRealInfoVoByUid(String uid) {
String rk = AdamRedisConst.INFO_REAL_NAME.concat(uid);
long s = System.currentTimeMillis();
AdamRealInfoVo vo = (AdamRealInfoVo) redisUtil.get(rk);
if (null == vo) {
long s = System.currentTimeMillis();
s = System.currentTimeMillis();
vo = mongoTemplate.findOne(Query.query(Criteria.where("uid").is(uid).and("state").is(1)),
AdamRealInfoVo.class, AdamRealInfoVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
......@@ -130,6 +138,7 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
vo.setName(SensitizeUtil.chineseName(vo.getName()));
vo.setIdCard(SensitizeUtil.custom(vo.getIdCard(), 3, 2));
}
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo;
}
......@@ -146,24 +155,31 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
@Override
public List<AdamThirdPartInfoVo> getThirdPartVoListByUid(String uid) {
String rk = AdamRedisConst.INFO_THIRD_PARTY.concat(uid);
long s = System.currentTimeMillis();
List<AdamThirdPartInfoVo> thirdPartInfoVos = (List<AdamThirdPartInfoVo>) redisUtil.get(rk);
if (CollectionUtils.isEmpty(thirdPartInfoVos)) {
long s = System.currentTimeMillis();
s = System.currentTimeMillis();
thirdPartInfoVos = mongoTemplate.find(Query.query(Criteria.where("uid").is(uid).and("state").is(1)),
AdamThirdPartInfoVo.class, AdamThirdPartInfoVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (!CollectionUtils.isEmpty(thirdPartInfoVos)) redisUtil.set(rk, thirdPartInfoVos);
}
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return thirdPartInfoVos;
}
@Override
public AdamThirdPartInfoVo getThirdPartVoByUidPlatform(String uid, String platform) {
List<AdamThirdPartInfoVo> list = this.getThirdPartVoListByUid(uid);
if (!CollectionUtils.isEmpty(list))
for (AdamThirdPartInfoVo r : list)
if (platform.equals(r.getPlatform())) return r;
List<AdamThirdPartInfoVo> vos = this.getThirdPartVoListByUid(uid);
if (!CollectionUtils.isEmpty(vos)) {
// for (AdamThirdPartInfoVo r : vos)
// if (platform.equals(r.getPlatform())) return r;
Optional<AdamThirdPartInfoVo> any = vos.stream().filter(r -> r.getPlatform().equals(platform)).findAny();
if (any.isPresent()) {
return any.get();
}
}
return null;
}
......@@ -180,9 +196,10 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
@Override
public List<AdamEntersVo> getEntersVoByUid(String uid) {
String rk = AdamRedisConst.INFO_ENTERS.concat(uid);
long s = System.currentTimeMillis();
List<AdamEntersVo> vos = (List<AdamEntersVo>) redisUtil.get(rk);
if (CollectionUtils.isEmpty(vos)) {
long s = System.currentTimeMillis();
s = System.currentTimeMillis();
vos = mongoTemplate.find(
Query.query(Criteria.where("uid").is(uid).and("state").is(1)).with(Sort.by(Sort.Direction.DESC, "createdAt")),
AdamEntersVo.class, AdamEntersVo.class.getSimpleName()
......@@ -191,6 +208,7 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
if (!CollectionUtils.isEmpty(vos)) redisUtil.set(rk, vos);
}
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vos;
}
......@@ -218,9 +236,10 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
@Override
public List<AdamAddressesVo> getAddressesVoByUid(String uid) {
String rk = AdamRedisConst.INFO_ADDRESSES.concat(uid);
long s = System.currentTimeMillis();
List<AdamAddressesVo> vos = (List<AdamAddressesVo>) redisUtil.get(rk);
if (CollectionUtils.isEmpty(vos)) {
long s = System.currentTimeMillis();
s = System.currentTimeMillis();
vos = mongoTemplate.find(
Query.query(Criteria.where("uid").is(uid).and("state").is(1)).with(Sort.by(Sort.Direction.DESC, "createdAt")),
AdamAddressesVo.class, AdamAddressesVo.class.getSimpleName()
......@@ -229,6 +248,7 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
if (!CollectionUtils.isEmpty(vos)) redisUtil.set(rk, vos);
}
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vos;
}
......@@ -250,9 +270,10 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
@Override
public AdamUserMemberVo getUserMemberVoByUid(String uid) {
String rk = AdamRedisConst.INFO_USER_MEMBER.concat(uid);
long s = System.currentTimeMillis();
AdamUserMemberVo vo = (AdamUserMemberVo) redisUtil.get(rk);
if (null == vo) {
long s = System.currentTimeMillis();
s = System.currentTimeMillis();
vo = mongoTemplate.findOne(Query.query(Criteria.where("uid").is(uid)), AdamUserMemberVo.class, AdamUserMemberVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
......@@ -261,6 +282,7 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
if (null != vo) {
vo.setState(vo.getState() == 1 ? (vo.getExpiryAt().isAfter(LocalDateTime.now()) ? 1 : 2) : vo.getState());
}
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo;
}
......@@ -290,9 +312,10 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
@Override
public AdamMemberVo getMemberVoByMemberId(String memberId) {
String key = AdamRedisConst.INFO_MEMBER_CATEGORY.concat(memberId);
long s = System.currentTimeMillis();
AdamMemberVo vo = (AdamMemberVo) redisUtil.get(key);
if (null == vo) {
long s = System.currentTimeMillis();
s = System.currentTimeMillis();
vo = mongoTemplate.findOne(
Query.query(Criteria.where("memberId").is(memberId).and("state").is(1)),
AdamMemberVo.class, AdamMemberVo.class.getSimpleName()
......@@ -300,6 +323,7 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (null != vo) redisUtil.set(key, vo);
}
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo;
}
......@@ -311,9 +335,10 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
@Override
public List<AdamMemberPriceVo> getMemberPriceVoByMemberId(String memberId) {
String key = AdamRedisConst.INFO_MEMBER_PRICE.concat(memberId);
long s = System.currentTimeMillis();
List<AdamMemberPriceVo> vos = (List<AdamMemberPriceVo>) redisUtil.get(key);
if (CollectionUtils.isEmpty(vos)) {
long s = System.currentTimeMillis();
s = System.currentTimeMillis();
vos = mongoTemplate.find(
Query.query(Criteria.where("memberId").is(memberId).and("state").is(1)),
AdamMemberPriceVo.class, AdamMemberPriceVo.class.getSimpleName()
......@@ -322,17 +347,23 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
if (!CollectionUtils.isEmpty(vos)) redisUtil.set(key, vos);
}
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vos;
}
@Override
public AdamMemberPriceVo getMemberPriceVoByPriceId(String memberId, String memberPriceId) {
long s = System.currentTimeMillis();
List<AdamMemberPriceVo> vos = this.getMemberPriceVoByMemberId(memberId);
if (!CollectionUtils.isEmpty(vos)) {
for (AdamMemberPriceVo r : vos) {
if (memberPriceId.equals(r.getMemberPriceId())) {
return r;
}
// for (AdamMemberPriceVo r : vos) {
// if (memberPriceId.equals(r.getMemberPriceId())) {
// return r;
// }
// }
Optional<AdamMemberPriceVo> any = vos.stream().filter(r -> r.getMemberPriceId().equals(memberPriceId)).findAny();
if (any.isPresent()) {
return any.get();
}
}
return null;
......@@ -381,9 +412,10 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
@Override
public AdamMemberOrderVo getShotMemberOrderVoByOrderNo(String orderNo) {
String key = AdamRedisConst.SHOT_MEMBER_ORDER + orderNo;
long s = System.currentTimeMillis();
AdamMemberOrderVo vo = (AdamMemberOrderVo) redisUtil.get(key);
if (null == vo) {
long s = System.currentTimeMillis();
s = System.currentTimeMillis();
vo = mongoTemplate.findOne(
Query.query(Criteria.where("orderNo").is(orderNo)),
AdamMemberOrderVo.class, AdamMemberOrderVo.class.getSimpleName()
......@@ -392,6 +424,7 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
if (null != vo) redisUtil.set(key, vo);
}
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo;
}
......@@ -424,9 +457,10 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
@Override
public AdamMemberCodeVo getMemberCodeVoByCode(String memberCode) {
String key = AdamRedisConst.INFO_MEMBER_CODE.concat(memberCode);
long s = System.currentTimeMillis();
AdamMemberCodeVo vo = (AdamMemberCodeVo) redisUtil.get(key);
if (null == vo) {
long s = System.currentTimeMillis();
s = System.currentTimeMillis();
vo = mongoTemplate.findOne(
Query.query(Criteria.where("code").is(memberCode)),
AdamMemberCodeVo.class, AdamMemberCodeVo.class.getSimpleName()
......@@ -434,6 +468,7 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (null != vo && vo.getState() == 0) redisUtil.set(AdamRedisConst.INFO_MEMBER_CODE.concat(memberCode), vo);
}
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo;
}
......
......@@ -31,6 +31,7 @@ public class AdamUserMemberServiceImpl extends ServiceImpl<AdamUserMemberMapper,
@Override
public String getNextMemberNo(String memberId) {
long s = System.currentTimeMillis();
int memberMaxNo = adamRdmService.getMaxMemberNo();
if (-1 == memberMaxNo) {
if (RedisLockUtil.tryLock(LOCK_KEY_UMEMBER_NO, 1, 3000)) {
......@@ -58,6 +59,7 @@ public class AdamUserMemberServiceImpl extends ServiceImpl<AdamUserMemberMapper,
// 不能是完全相同的数字
nextMemberNoStr = String.valueOf(adamRdmService.incrMemberNo());
}
log.debug("#MNO耗时:{}ms", System.currentTimeMillis() - s);
return nextMemberNoStr;
}
......
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