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

Commit 9a92c31a authored by 张国柄's avatar 张国柄

调整redis key for member user info;

会员续费到期时间计算逻辑调整;
parent 810f4aef
......@@ -26,7 +26,7 @@ public class AdamRedisConst {
public static final String MEMBER_MEMBER_NO_MAX_KEY = ADAM.concat(":members:member_no_max:");
public static final String INFO_MEMBERS_USER_INFO = ADAM.concat(":list:members:user:info:");
public static final String INFO_MEMBERS_USER = ADAM.concat(":list:members:user");
public static final String INFO_MEMBERS_REPERTORY_INFO = ADAM.concat(":list:members:repertory:");
......
......@@ -4,7 +4,6 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.common.mq.constant.MQConst;
import com.liquidnet.commons.lang.util.*;
import com.liquidnet.service.adam.constant.AdamMemberConst;
import com.liquidnet.service.adam.constant.AdamRedisConst;
......@@ -21,7 +20,6 @@ import com.liquidnet.service.adam.service.IAdamMemberService;
import com.liquidnet.service.adam.service.IAdamUserMemberService;
import com.liquidnet.service.adam.service.admin.IAdamMemberPriceService;
import com.liquidnet.service.adam.util.MemberUtil;
import com.liquidnet.service.base.SqlMapping;
import com.mongodb.BasicDBObject;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
......@@ -91,8 +89,10 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
public AdamMemberOrderVo getMemberOrderInfo(String uid, String orderNo) {
AdamMemberOrderVo orderVo = (AdamMemberOrderVo) redisUtil.hget(AdamRedisConst.INFO_MEMBERS_ORDER_INFO.concat(uid), orderNo);
if (null == orderVo) {
orderVo = mongoTemplate.findOne(Query.query(Criteria.where("orderNo").is(orderNo)),
orderVo = mongoTemplate.findOne(Query.query(Criteria.where("orderNo").is(orderNo).and("uid").is(uid)),
AdamMemberOrderVo.class, AdamMemberOrderVo.class.getSimpleName());
if (null != orderVo) redisUtil.hset(AdamRedisConst.INFO_MEMBERS_ORDER_INFO.concat(uid), orderNo, orderVo);
}
return orderVo;
}
......@@ -205,7 +205,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
String code = param.getMemberCode();
int type = param.getType();
AdamUserMemberVo userMemberVo = (AdamUserMemberVo) redisUtil.get(AdamRedisConst.INFO_MEMBERS_USER_INFO.concat(uid));
AdamUserMemberVo userMemberVo = (AdamUserMemberVo) redisUtil.hget(AdamRedisConst.INFO_MEMBERS_USER, uid);
if (null == userMemberVo) {
userMemberVo = mongoTemplate.findOne(Query.query(Criteria.where("uid").is(uid)), AdamUserMemberVo.class, AdamUserMemberVo.class.getSimpleName());
}
......@@ -268,7 +268,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
// 创建用户会员相关信息
mongoTemplate.insert(memberVo, AdamUserMemberVo.class.getSimpleName());
redisUtil.set(AdamRedisConst.INFO_MEMBERS_USER_INFO.concat(uid), memberVo);
redisUtil.hset(AdamRedisConst.INFO_MEMBERS_USER, uid, memberVo);
// 更新旧数据
memberCodeVo.setState(AdamMemberConst.STATUS_USED);
......@@ -351,7 +351,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
AdamMemberCodeVo codeVo = null;
int day = priceVo.getDays();
try {
if (AdamMemberConst.SUB_TYPE_BUY_VIP == orderVo.getMode()) { // 购买会员
if (AdamMemberConst.SUB_TYPE_BUY_VIP.equals(orderVo.getMode())) { // 购买会员
AdamUserMemberVo userMemberInfo = adamUserMemberService.getUserMemberInfo(orderVo.getUid());
if (null == userMemberInfo) { // 创建会员
cardNumber = adamUserMemberService.getMaxMemberNo(orderVo.getMemberId());
......@@ -380,17 +380,21 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
// 订单写入MongoDB和Redis中
mongoTemplate.insert(createMemberUser, AdamUserMemberVo.class.getSimpleName());
redisUtil.set(AdamRedisConst.INFO_MEMBERS_USER_INFO.concat(orderVo.getUid()), createMemberUser);
redisUtil.hset(AdamRedisConst.INFO_MEMBERS_USER, orderVo.getUid(), createMemberUser);
// 会员码使用记录
mongoTemplate.insert(codeVo, AdamMemberCodeVo.class.getSimpleName());
redisUtil.hset(AdamRedisConst.INFO_MEMBERS_CODE_INFO.concat(codeVo.getBuyUid()), codeVo.getBuyOrderNo(), codeVo);
// todo mq 发送数据到队列中
} else { // 续费
// TODO: 2021/5/24 延期或存续
String currentExpiryAt = userMemberInfo.getExpiryAt();
Date now = DateUtil.parse(DateUtil.getNowTime(), DateUtil.DATE_SMALL_STR),
currentExpiryAtDate = DateUtil.parse(currentExpiryAt, DateUtil.DATE_FULL_STR);
currentExpiryAtDate = currentExpiryAtDate.before(now) ? now : currentExpiryAtDate;
Calendar calendar = Calendar.getInstance();
calendar.setTime(DateUtil.parse(currentExpiryAt, "yyyy-MM-dd HH:mm:ss"));
calendar.setTime(currentExpiryAtDate);
Date expiryAt = DateUtil.getBeforeDayEnd(calendar, day);
String expiryAtStr = DateUtil.format(expiryAt, DateUtil.Formatter.yyyyMMddHHmmss);
......@@ -401,10 +405,10 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
mongoTemplate.getCollection(AdamUserMemberVo.class.getSimpleName())
.updateOne(Query.query(Criteria.where("uid").is(userMemberInfo.getUid())).getQueryObject(), object);
redisUtil.set(AdamRedisConst.INFO_MEMBERS_USER_INFO.concat(orderVo.getUid()), userMemberInfo);
redisUtil.hset(AdamRedisConst.INFO_MEMBERS_USER, orderVo.getUid(), userMemberInfo);
}
}
if (AdamMemberConst.SUB_TYPE_BUY_VIP_CODE == orderVo.getMode()) { // 购买会员码
if (AdamMemberConst.SUB_TYPE_BUY_VIP_CODE.equals(orderVo.getMode())) { // 购买会员码
cardNumber = adamUserMemberService.getMaxMemberNo(orderVo.getMemberId());
codeVo = this.getAdamMemberCodeVo(orderVo, result.getCode(), 0, currentDateTime);
codeVo.setState(0);
......
......@@ -63,9 +63,11 @@ public class AdamUserMemberServiceImpl extends ServiceImpl<AdamUserMemberMapper,
@Override
public AdamUserMemberVo getUserMemberInfo(String uid) {
AdamUserMemberVo adamUserMemberVo = (AdamUserMemberVo) redisUtil.hget(AdamRedisConst.INFO_MEMBERS_USER_INFO.concat(uid), uid);
AdamUserMemberVo adamUserMemberVo = (AdamUserMemberVo) redisUtil.hget(AdamRedisConst.INFO_MEMBERS_USER, uid);
if (null == adamUserMemberVo) {
adamUserMemberVo = mongoTemplate.findOne(Query.query(Criteria.where("uid").is(uid)), AdamUserMemberVo.class, AdamUserMemberVo.class.getSimpleName());
if (null != adamUserMemberVo) redisUtil.hset(AdamRedisConst.INFO_MEMBERS_USER, uid, adamUserMemberVo);
}
return adamUserMemberVo;
}
......
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