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

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

fix:bug:#65|#22;

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