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

Commit 3d338bb6 authored by 姜秀龙's avatar 姜秀龙

Merge branch 'dev_20250102_redis' into 'master'

redis缓存改造

See merge request !378
parents 872f86c6 2d06dd27
......@@ -122,6 +122,11 @@
<artifactId>liquidnet-service-goblin-do</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-service-adam-do</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
......
......@@ -12,6 +12,8 @@ import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.HttpUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.AdamUserInfoDto;
import com.liquidnet.service.adam.mapper.AdamUserMapper;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.candy.vo.CandyCouponVo;
import com.liquidnet.service.galaxy.dto.param.GalaxyNftPublishAndBuyReqDto;
......@@ -22,6 +24,7 @@ import io.swagger.annotations.ApiImplicitParams;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.util.CollectionUtils;
import org.springframework.util.MultiValueMap;
import org.springframework.web.bind.annotation.*;
......@@ -40,6 +43,9 @@ public class GoblinGagoController extends BaseController {
private String orderUrl;
// private String orderUrl = "http://127.0.0.1:9004/order";
@Autowired
private AdamUserMapper adamUserMapper;
private final String prefix = "zhengzai/goblin/gago";
@GetMapping()
......@@ -57,8 +63,13 @@ public class GoblinGagoController extends BaseController {
AjaxResult ajaxResult = AjaxResult.success();
Object obj1 = redisDataSourceUtil.getRedisAdamUtil().get(AdamRedisConst.IDENTITY_MOBILE.concat(userMobile));
if (obj1 == null) {
List<AdamUserInfoDto> userInfoDtos = adamUserMapper.selectByPhones(userMobile);
if (!CollectionUtils.isEmpty(userInfoDtos)) {
obj1 = userInfoDtos.get(0).getUid();
}else {
return AjaxResult.error("账号不存在");
}
}
String uid = (String) obj1;
Boolean obj2 = goblinRedisUtils.getIsOpenAccount(uid);
if (!obj2) {
......
......@@ -6,6 +6,7 @@ import com.liquidnet.client.admin.zhengzai.kylin.dto.OrderOutLineVo;
import com.liquidnet.common.cache.redis.util.RedisDataSourceUtil;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.HttpUtil;
import com.liquidnet.service.base.constant.RedisKeyExpireConst;
import com.liquidnet.service.candy.param.BackCouponParam;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dto.vo.KylinExpressModuleVo;
......@@ -139,7 +140,7 @@ public class DataUtils {
}
public void setOrderList(String userId, List<KylinOrderListVo> vo) {
redisDataSourceUtil.getRedisKylinUtil().set(KylinRedisConst.ORDER_LIST + userId, vo);
redisDataSourceUtil.getRedisKylinUtil().set(KylinRedisConst.ORDER_LIST + userId, vo, RedisKeyExpireConst.KYLIN_ORDER_LIST_USERID_EXPIRE);
}
public List<KylinOrderListVo> getOrderList(String userId) {
......@@ -151,7 +152,7 @@ public class DataUtils {
for (KylinOrderListVo item : voList) {
item.setStatus(item.getStatus());
}
redisDataSourceUtil.getRedisKylinUtil().set(KylinRedisConst.ORDER_LIST + userId, voList);
redisDataSourceUtil.getRedisKylinUtil().set(KylinRedisConst.ORDER_LIST + userId, voList, RedisKeyExpireConst.KYLIN_ORDER_LIST_USERID_EXPIRE);
}
return (List<KylinOrderListVo>) redisDataSourceUtil.getRedisKylinUtil().get(KylinRedisConst.ORDER_LIST + userId);
}
......@@ -168,7 +169,7 @@ public class DataUtils {
KylinOrderTicketVo ticketData = mongoTemplate.findOne(Query.query(Criteria.where("orderTicketsId").is(orderId)), KylinOrderTicketVo.class, KylinOrderTicketVo.class.getSimpleName());
List<KylinOrderTicketEntitiesVo> kylinOrderTicketEntitiesVoList = mongoTemplate.find(Query.query(Criteria.where("orderId").is(orderId)), KylinOrderTicketEntitiesVo.class, KylinOrderTicketEntitiesVo.class.getSimpleName());
ticketData.setEntitiesVoList(kylinOrderTicketEntitiesVoList);
redisDataSourceUtil.getRedisKylinUtil().set(KylinRedisConst.ORDER + orderId, ticketData);
redisDataSourceUtil.getRedisKylinUtil().set(KylinRedisConst.ORDER + orderId, ticketData, RedisKeyExpireConst.KYLIN_ORDER_ID_EXPIRE);
}
return (KylinOrderTicketVo) redisDataSourceUtil.getRedisKylinUtil().get(KylinRedisConst.ORDER + orderId);
}
......@@ -455,7 +456,7 @@ public class DataUtils {
String orderTicketsId = orderTicketVo.getOrderTicketsId();
List<KylinOrderTicketEntitiesVo> kylinOrderTicketEntitiesVoList = mongoTemplate.find(Query.query(Criteria.where("orderId").is(orderTicketsId)), KylinOrderTicketEntitiesVo.class, KylinOrderTicketEntitiesVo.class.getSimpleName());
orderTicketVo.setEntitiesVoList(kylinOrderTicketEntitiesVoList);
redisDataSourceUtil.getRedisKylinUtil().set(KylinRedisConst.ORDER + orderTicketsId, orderTicketVo);
redisDataSourceUtil.getRedisKylinUtil().set(KylinRedisConst.ORDER + orderTicketsId, orderTicketVo, RedisKeyExpireConst.KYLIN_ORDER_ID_EXPIRE);
}
public void setkylinExpressModules(List<KylinExpressModuleVo> voList) {
......
......@@ -3,6 +3,7 @@ package com.liquidnet.client.admin.zhengzai.kylin.utils;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.liquidnet.common.cache.redis.util.RedisDataSourceUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.base.constant.RedisKeyExpireConst;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo;
......@@ -209,7 +210,7 @@ public class MongoVoUtils {
if (redisVo.size() == 0) {
vo.add(voItem);
}
redisDataSourceUtil.getRedisKylinUtil().set(KylinRedisConst.ORDER_LIST + userId, vo);
redisDataSourceUtil.getRedisKylinUtil().set(KylinRedisConst.ORDER_LIST + userId, vo, RedisKeyExpireConst.KYLIN_ORDER_LIST_USERID_EXPIRE);
return true;
case 2:
for (int i = 0; i < redisVo.size(); i++) {
......@@ -222,7 +223,7 @@ public class MongoVoUtils {
vo.add(redisVo.get(i));
}
}
redisDataSourceUtil.getRedisKylinUtil().set(KylinRedisConst.ORDER_LIST + userId, vo);
redisDataSourceUtil.getRedisKylinUtil().set(KylinRedisConst.ORDER_LIST + userId, vo, RedisKeyExpireConst.KYLIN_ORDER_LIST_USERID_EXPIRE);
return true;
default:
return false;
......
......@@ -3,6 +3,7 @@ package com.liquidnet.client.admin.zhengzai.sweet.utils;
import com.liquidnet.common.cache.redis.util.RedisDataSourceUtil;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.service.base.constant.RedisKeyExpireConst;
import com.liquidnet.service.sweet.constant.SweetConstant;
import com.liquidnet.service.sweet.dto.vo.IntegralActivityDrawVo;
import com.liquidnet.service.sweet.dto.vo.IntegralActivityVo;
......@@ -90,7 +91,7 @@ public class SweetRedisAdminUtils {
.concat(drawId);
IntegralActivityDrawVo info = (IntegralActivityDrawVo) redisDataSourceUtil.getRedisSweetUtil().get(redisKeyDraw);
info.setReceivingStatus(2);
redisDataSourceUtil.getRedisSweetUtil().set(redisKeyDraw, info);
redisDataSourceUtil.getRedisSweetUtil().set(redisKeyDraw, info, RedisKeyExpireConst.SWEET_INTEGRALACTIVITY_DRAWINFO_DRAWID_EXPIRE);
}
/**
......
package com.liquidnet.service.base.constant;
/**
* redis key过期时间常量
*/
public class RedisKeyExpireConst {
// adam:info:user 过期时间为30天
public static final long ADAM_INFO_USER_EXPIRE = 30 * 24 * 60 * 60;
// kylin:order:id 过期时间为30天
public static final long KYLIN_ORDER_ID_EXPIRE = 30 * 24 * 60 * 60;
// stone:item:logs:list 过期时间为30天
public static final long STONE_ITEM_LOGS_LIST_EXPIRE = 30 * 24 * 60 * 60;
// kylin:order:list:userId 过期时间为30天
public static final long KYLIN_ORDER_LIST_USERID_EXPIRE = 30 * 24 * 60 * 60;
// adam:info:enters 过期时间为30天
public static final long ADAM_INFO_ENTERS_EXPIRE = 30 * 24 * 60 * 60;
// sweet:integralActivity:DrawInfo:drawId 过期时间为30天
public static final long SWEET_INTEGRALACTIVITY_DRAWINFO_DRAWID_EXPIRE = 30 * 24 * 60 * 60;
// adam:identity:mobile 过期时间为30天
public static final long ADAM_IDENTITY_MOBILE_EXPIRE = 30 * 24 * 60 * 60;
// sweet:user:applet:unionid 过期时间30天
public static final long SWEET_USER_APPLET_UNIONID_EXPIRE = 30 * 24 * 60 * 60;
// sweet:user:applet:mobile 过期时间30天
public static final long SWEET_USER_APPLET_MOBILE_EXPIRE = 30 * 24 * 60 * 60;
// sweet:user:service:unionId 过期时间30天
public static final long SWEET_USER_SERVICE_UNIONID_EXPIRE = 30 * 24 * 60 * 60;
// sweet:user:service:openId 过期时间30天
public static final long SWEET_USER_SERVICE_OPENID_EXPIRE = 30 * 24 * 60 * 60;
}
......@@ -73,7 +73,7 @@ spring:
autoconfigure:
exclude:
- org.springframework.cloud.bus.BusAutoConfiguration
- org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
# - org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
- org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration
redis:
queue:
......@@ -98,6 +98,18 @@ spring:
max-wait: -1
max-idle: 8
min-idle: 4
datasource:
name: ${liquidnet.mysql.database-name}
url: jdbc:mysql://${liquidnet.mysql.urlHostAndPort}/${liquidnet.mysql.database-name}?serverTimezone=UTC&characterEncoding=utf-8&useSSL=false
username: ${liquidnet.mysql.username}
password: ${liquidnet.mysql.password}
# type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
hikari:
maximum-pool-size: 45
minimum-idle: 8
connection-test-query: SELECT 1
# -----------------------------------------------------------
# -----------------------------------------------------------
......@@ -124,6 +136,7 @@ global-auth:
# - ${liquidnet.info.context}/wxa/code2session
# - ${liquidnet.info.context}/wx/oauth2/access_token
- ${liquidnet.info.context}/rsc/**
- ${liquidnet.info.context}/user/info/rds
include-url-pattern: # 模式II(与模式I互斥)
# - ${liquidnet.info.context}/**
oncheck-url-pattern:
......
......@@ -102,6 +102,7 @@ spring:
uri: mongodb://${liquidnet.mongodb.user}:${liquidnet.mongodb.pwd}@${liquidnet.mongodb.host}/?authSource=admin&maxPoolSize=200&waitQueueMultiple=100
sslEnabled: ${liquidnet.mongodb.sslEnabled}
database: ${liquidnet.mongodb.database}
# -----------------------------------------------------------
# -----------------------------------------------------------
......
......@@ -102,6 +102,7 @@ spring:
uri: mongodb://${liquidnet.mongodb.user}:${liquidnet.mongodb.pwd}@${liquidnet.mongodb.host}/?authSource=admin&maxPoolSize=200&waitQueueMultiple=100
sslEnabled: ${liquidnet.mongodb.sslEnabled}
database: ${liquidnet.mongodb.database}
# -----------------------------------------------------------
# -----------------------------------------------------------
......
......@@ -60,4 +60,32 @@ public interface AdamUserMapper extends BaseMapper<AdamUser> {
* @return
*/
List<AdamUserInfoDto> selectByPhones(@Param("mobiles") String mobiles);
@Select("SELECT " +
"au.uid, " +
"au.mobile, " +
"au.passwd, " +
"aui.nickname, " +
"au.state, " +
"aui.sex, " +
"aui.birthday, " +
"aui.area, " +
"aui.signature, " +
"aui.avatar, " +
"aui.background, " +
"aui.tag_me, " +
"au.created_at, " +
"au.updated_at, " +
"au.closed_at, " +
"au.is_complete, " +
"aui.rong_cloud_token, " +
"aui.qr_code, " +
"auml.province, " +
"auml.city, " +
"auml.county " +
"from adam_user au " +
"left join adam_user_info aui on au.uid = aui.uid " +
"left join adam_user_mobile_locate auml on au.uid = auml.uid " +
"where au.uid = #{uid}")
AdamUserInfoDto selectByUid(@Param("uid") String uid);
}
......@@ -2,9 +2,13 @@ package com.liquidnet.service.adam.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.liquidnet.service.adam.entity.AdamUserMember;
import org.apache.ibatis.annotations.Param;
/**
* 会员用户表
*/
public interface AdamUserMemberMapper extends BaseMapper<AdamUserMember> {
AdamUserMember selectByUid(@Param("uid") String uid);
}
......@@ -34,4 +34,8 @@
order by m.member_no desc
limit 0,1
</select>
<select id="selectByUid" resultMap="UserMemberResult">
select * from adam_user_member where uid = #{uid}
</select>
</mapper>
......@@ -75,4 +75,7 @@ public interface FeignAdamBaseClient {
@GetMapping(value = "member/check/depth", headers = {"Inner-Required=1"})
ResponseDto<Boolean> isMember(@NotBlank(message = "用户ID不能为空") @RequestParam(value = "uid") String uid);
@GetMapping(value = "user/info/rds")
ResponseDto<AdamUserInfoVo> getAdamUserInfoByUid(@NotBlank(message = "Uid不能为空") @RequestParam(value = "uid") String uid);
}
package com.liquidnet.service;
import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
......@@ -14,6 +15,7 @@ import java.util.Arrays;
@Slf4j
@EnableFeignClients
@SpringBootApplication(scanBasePackages = {"com.liquidnet"})
@MapperScan(basePackages = {"com.liquidnet.service.*.mapper"})
public class ServiceAdamApplication implements CommandLineRunner {
@Autowired
private Environment environment;
......
......@@ -519,6 +519,17 @@ public class AdamUserController {
return mobile.equals(currentMobile) ? ResponseDto.success() : ResponseDto.failure(ErrorMapping.get("10003"));
}
@ApiOperationSupport(order = 14)
@ApiOperation(value = "通过Uid获取用户信息VO")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "uid", value = "Uid[用户ID]"),
})
@GetMapping(value = {"info/rds"})
public ResponseDto<AdamUserInfoVo> getAdamUserInfoByUid(@NotBlank(message = "Uid不能为空") @RequestParam(value = "uid") String uid) {
return ResponseDto.success(adamRdmService.getUserInfoVoByUid(uid));
}
/* ---------------------------- Internal Method ---------------------------- */
private static final String PHP_API_SMS_CODE_VALID = "/smsValidation";
......
package com.liquidnet.service.adam.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.fasterxml.jackson.databind.JsonNode;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.common.exception.LiquidnetServiceException;
......@@ -7,9 +9,16 @@ import com.liquidnet.commons.lang.util.IdentityUtils;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.commons.lang.util.SensitizeUtil;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.AdamUserInfoDto;
import com.liquidnet.service.adam.dto.vo.*;
import com.liquidnet.service.adam.entity.AdamEnters;
import com.liquidnet.service.adam.entity.AdamUserMember;
import com.liquidnet.service.adam.mapper.AdamEntersMapper;
import com.liquidnet.service.adam.mapper.AdamUserMapper;
import com.liquidnet.service.adam.mapper.AdamUserMemberMapper;
import com.liquidnet.service.adam.util.ObjectUtil;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.constant.RedisKeyExpireConst;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -34,6 +43,13 @@ public class AdamRdmService {
@Autowired
RedisUtil redisUtil;
@Autowired
AdamUserMapper adamUserMapper;
@Autowired
AdamUserMemberMapper adamUserMemberMapper;
@Autowired
AdamEntersMapper adamEntersMapper;
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | Switch config */
public Integer getSwitch(String rk) {
......@@ -82,13 +98,24 @@ public class AdamRdmService {
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | <Mobile|OPENID, UID> */
public boolean setUidByMobile(String mobile, String uid) {
return redisUtil.set(AdamRedisConst.IDENTITY_MOBILE.concat(mobile), uid);
return redisUtil.set(AdamRedisConst.IDENTITY_MOBILE.concat(mobile), uid, RedisKeyExpireConst.ADAM_IDENTITY_MOBILE_EXPIRE);
}
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)) {
// 从MySQL查询
log.info("redis cache value is empty, key: {}", key);
List<AdamUserInfoDto> adamUserInfoDtos = adamUserMapper.selectByPhones(mobile);
if (!CollectionUtils.isEmpty(adamUserInfoDtos)) {
log.info("query MySQL success");
val = adamUserInfoDtos.get(0).getUid();
boolean setResult = setUidByMobile(mobile, val);
log.info("save value to redis cache result: {}", setResult);
}
}
// if (StringUtils.isEmpty(val)) {
// Query query = Query.query(Criteria.where("mobile").is(mobile).and("state").is(1));
// query.fields().include("uid");
......@@ -138,13 +165,37 @@ public class AdamRdmService {
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | <UID, USER_INFO> */
public boolean setUserInfoVoByUid(String uid, AdamUserInfoVo vo) {
return redisUtil.set(AdamRedisConst.INFO_USER.concat(uid), vo);
// 缓存30天
return redisUtil.set(AdamRedisConst.INFO_USER.concat(uid), vo, RedisKeyExpireConst.ADAM_INFO_USER_EXPIRE);
}
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) {
log.info("not find value in redis cache, key: {}", rk);
AdamUserInfoDto adamUserInfoDto = adamUserMapper.selectByUid(uid);
if (null != adamUserInfoDto) {
vo = AdamUserInfoVo.getNew();
vo.copy(adamUserInfoDto);
AdamUserMember adamUserMember = adamUserMemberMapper.selectByUid(uid);
if (null == adamUserMember) {
vo.rating(null);
} else {
AdamUserMemberVo adamUserMemberVo = new AdamUserMemberVo();
adamUserMemberVo.copy(adamUserMember);
vo.rating(adamUserMemberVo);
}
}
if (null != vo) {
boolean setResult = setUserInfoVoByUid(uid, vo);
log.info("save value to redis cache, key: {}, result: {}", rk, setResult);
}
}
// if (null == vo) {
// s = System.currentTimeMillis();
// vo = mongoTemplate.findOne(Query.query(Criteria.where("uid").is(uid).and("state").is(1)),
......@@ -263,10 +314,10 @@ public class AdamRdmService {
public void identityHandler1(String uid, String name, String idCard) {
int rst = this.isCertification(1, idCard, name);
//增加判断逻辑 用户添加的时候先去调自己的库,如果有身份证数据但和名字不匹配的时候,再请求第三方接口去验
if(rst==0){
if (rst == 0) {
//本地存在,验证不通过 删除标记
redisUtil.del(AdamRedisConst.INFO_CERTIFICATION + 1 + idCard);
rst=-1;
rst = -1;
}
switch (rst) {
case -1:// 本地不存在
......@@ -418,13 +469,32 @@ public class AdamRdmService {
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | <UID, List<AdamEntersVo>> */
public boolean setEntersVoByUid(String uid, List<AdamEntersVo> list) {
return redisUtil.set(AdamRedisConst.INFO_ENTERS.concat(uid), list);
return redisUtil.set(AdamRedisConst.INFO_ENTERS.concat(uid), list, RedisKeyExpireConst.ADAM_INFO_ENTERS_EXPIRE);
}
public List<AdamEntersVo> getEntersVoByUid(String uid) {
String rk = AdamRedisConst.INFO_ENTERS.concat(uid);
long s = System.currentTimeMillis();
ArrayList<AdamEntersVo> vos = (ArrayList<AdamEntersVo>) redisUtil.get(rk);
if (CollectionUtils.isEmpty(vos)) {
log.info("not find value in redis cache, key: {}", rk);
// 从数据库查询入场人信息VO
LambdaQueryWrapper<AdamEnters> lambda = new QueryWrapper<AdamEnters>().lambda();
lambda.eq(AdamEnters::getUid, uid);
lambda.eq(AdamEnters::getState, 1);
lambda.orderByDesc(AdamEnters::getCreatedAt);
List<AdamEnters> adamEnters = adamEntersMapper.selectList(lambda);
if (!CollectionUtils.isEmpty(adamEnters)) {
log.info("query value in MySQL, size: {}", adamEnters.size());
ArrayList<AdamEntersVo> voList = new ArrayList<>(adamEnters.size());
adamEnters.forEach(e -> {
voList.add(AdamEntersVo.getNew().copy(e));
});
vos = voList;
boolean setResult = setEntersVoByUid(uid, vos);
log.info("save value to redis cache, key: {}, result: {}", rk, setResult);
}
}
// if (CollectionUtils.isEmpty(vos)) {
// s = System.currentTimeMillis();
// vos = mongoTemplate.find(
......@@ -443,8 +513,8 @@ public class AdamRdmService {
if (null == vos) {
vos = ObjectUtil.getAdamEntersVoArrayList();
}
vos.add(0,vo);
return redisUtil.set(AdamRedisConst.INFO_ENTERS + uid, vos);
vos.add(0, vo);
return redisUtil.set(AdamRedisConst.INFO_ENTERS + uid, vos, RedisKeyExpireConst.ADAM_INFO_ENTERS_EXPIRE);
}
public boolean rmvEntersVoByUid(String uid, List<AdamEntersVo> vos, String entersId) {
......@@ -452,7 +522,7 @@ public class AdamRdmService {
return true;
}
vos.removeIf(r -> r.getEntersId().equals(entersId));
return redisUtil.set(AdamRedisConst.INFO_ENTERS + uid, vos);
return redisUtil.set(AdamRedisConst.INFO_ENTERS + uid, vos, RedisKeyExpireConst.ADAM_INFO_ENTERS_EXPIRE);
}
public AdamEntersVo getEntersVoByUidEntersId(List<AdamEntersVo> vos, String entersId) {
......
package com.liquidnet.service.consumer.kylin.utils;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.base.constant.RedisKeyExpireConst;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo;
......@@ -63,7 +64,7 @@ public class KylinUtils {
if (redisVo.size() == 0) {
vo.add(voItem);
}
redisUtil.set(KylinRedisConst.ORDER_LIST + userId, vo);
redisUtil.set(KylinRedisConst.ORDER_LIST + userId, vo, RedisKeyExpireConst.KYLIN_ORDER_LIST_USERID_EXPIRE);
return true;
case 2:
for (int i = 0; i < redisVo.size(); i++) {
......@@ -76,7 +77,7 @@ public class KylinUtils {
vo.add(redisVo.get(i));
}
}
redisUtil.set(KylinRedisConst.ORDER_LIST + userId, vo);
redisUtil.set(KylinRedisConst.ORDER_LIST + userId, vo, RedisKeyExpireConst.KYLIN_ORDER_LIST_USERID_EXPIRE);
return true;
default:
return false;
......@@ -147,7 +148,7 @@ public class KylinUtils {
KylinOrderTicketVo ticketData = mongoTemplate.findOne(Query.query(Criteria.where("orderTicketsId").is(orderId)), KylinOrderTicketVo.class, KylinOrderTicketVo.class.getSimpleName());
List<KylinOrderTicketEntitiesVo> kylinOrderTicketEntitiesVoList = mongoTemplate.find(Query.query(Criteria.where("orderId").is(orderId)), KylinOrderTicketEntitiesVo.class, KylinOrderTicketEntitiesVo.class.getSimpleName());
ticketData.setEntitiesVoList(kylinOrderTicketEntitiesVoList);
redisUtil.set(KylinRedisConst.ORDER + orderId, ticketData);
redisUtil.set(KylinRedisConst.ORDER + orderId, ticketData, RedisKeyExpireConst.KYLIN_ORDER_ID_EXPIRE);
}
return (KylinOrderTicketVo) redisUtil.get(KylinRedisConst.ORDER + orderId);
}
......
......@@ -5,6 +5,7 @@ import com.liquidnet.common.cache.redis.util.RedisDataSourceUtil;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.HttpUtil;
import com.liquidnet.service.base.constant.RedisKeyExpireConst;
import com.liquidnet.service.candy.param.BackCouponParam;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo;
......@@ -15,6 +16,7 @@ import com.liquidnet.service.kylin.entity.KylinOrderCoupons;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
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;
......@@ -52,14 +54,14 @@ public class KylinOrderUtils {
KylinOrderTicketVo ticketData = mongoTemplate.findOne(Query.query(Criteria.where("orderTicketsId").is(orderId)), KylinOrderTicketVo.class, KylinOrderTicketVo.class.getSimpleName());
List<KylinOrderTicketEntitiesVo> kylinOrderTicketEntitiesVoList = mongoTemplate.find(Query.query(Criteria.where("orderId").is(orderId)), KylinOrderTicketEntitiesVo.class, KylinOrderTicketEntitiesVo.class.getSimpleName());
ticketData.setEntitiesVoList(kylinOrderTicketEntitiesVoList);
redisDataSourceUtil.getRedisKylinUtil().set(KylinRedisConst.ORDER + orderId, ticketData);
redisDataSourceUtil.getRedisKylinUtil().set(KylinRedisConst.ORDER + orderId, ticketData, RedisKeyExpireConst.KYLIN_ORDER_ID_EXPIRE);
return ticketData;
}
}
public void setOrderTicketVo(String orderId, KylinOrderTicketVo vo) {
String redisKey = KylinRedisConst.ORDER + orderId;
redisDataSourceUtil.getRedisKylinUtil().set(redisKey, vo);
redisDataSourceUtil.getRedisKylinUtil().set(redisKey, vo, RedisKeyExpireConst.KYLIN_ORDER_ID_EXPIRE);
}
/**
......@@ -74,7 +76,10 @@ public class KylinOrderUtils {
KylinOrderListVo voItem = KylinOrderListVo.getNew().copy(data);
List<KylinOrderListVo> redisData = (List<KylinOrderListVo>) redisDataSourceUtil.getRedisKylinUtil().get(KylinRedisConst.ORDER_LIST + userId);
if(redisData==null){
return false;
// return false;
redisData = mongoTemplate.find(Query.query(Criteria.where("userId").is(userId))
.with(Sort.by(Sort.Direction.DESC, "createdAt")).limit(40),
KylinOrderListVo.class, KylinOrderTicketVo.class.getSimpleName());
}
if (type == 1) {
redisVo.add(voItem);
......@@ -102,7 +107,7 @@ public class KylinOrderUtils {
if (redisVo.size() == 0) {
vo.add(voItem);
}
redisDataSourceUtil.getRedisKylinUtil().set(KylinRedisConst.ORDER_LIST + userId, vo);
redisDataSourceUtil.getRedisKylinUtil().set(KylinRedisConst.ORDER_LIST + userId, vo, RedisKeyExpireConst.KYLIN_ORDER_LIST_USERID_EXPIRE);
return true;
case 2:
for (int i = 0; i < redisVo.size(); i++) {
......@@ -115,7 +120,7 @@ public class KylinOrderUtils {
vo.add(redisVo.get(i));
}
}
redisDataSourceUtil.getRedisKylinUtil().set(KylinRedisConst.ORDER_LIST + userId, vo);
redisDataSourceUtil.getRedisKylinUtil().set(KylinRedisConst.ORDER_LIST + userId, vo, RedisKeyExpireConst.KYLIN_ORDER_LIST_USERID_EXPIRE);
return true;
default:
return false;
......
package com.liquidnet.service.consumer.slowly.utils;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.base.constant.RedisKeyExpireConst;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo;
......@@ -63,7 +64,7 @@ public class KylinUtils {
if (redisVo.size() == 0) {
vo.add(voItem);
}
redisUtil.set(KylinRedisConst.ORDER_LIST + userId, vo);
redisUtil.set(KylinRedisConst.ORDER_LIST + userId, vo, RedisKeyExpireConst.KYLIN_ORDER_LIST_USERID_EXPIRE);
return true;
case 2:
for (int i = 0; i < redisVo.size(); i++) {
......@@ -76,7 +77,7 @@ public class KylinUtils {
vo.add(redisVo.get(i));
}
}
redisUtil.set(KylinRedisConst.ORDER_LIST + userId, vo);
redisUtil.set(KylinRedisConst.ORDER_LIST + userId, vo, RedisKeyExpireConst.KYLIN_ORDER_LIST_USERID_EXPIRE);
return true;
default:
return false;
......@@ -126,7 +127,7 @@ public class KylinUtils {
KylinOrderTicketVo ticketData = mongoTemplate.findOne(Query.query(Criteria.where("orderTicketsId").is(orderId)), KylinOrderTicketVo.class, KylinOrderTicketVo.class.getSimpleName());
List<KylinOrderTicketEntitiesVo> kylinOrderTicketEntitiesVoList = mongoTemplate.find(Query.query(Criteria.where("orderId").is(orderId)), KylinOrderTicketEntitiesVo.class, KylinOrderTicketEntitiesVo.class.getSimpleName());
ticketData.setEntitiesVoList(kylinOrderTicketEntitiesVoList);
redisUtil.set(KylinRedisConst.ORDER + orderId, ticketData);
redisUtil.set(KylinRedisConst.ORDER + orderId, ticketData, RedisKeyExpireConst.KYLIN_ORDER_ID_EXPIRE);
}
return (KylinOrderTicketVo) redisUtil.get(KylinRedisConst.ORDER + orderId);
}
......
......@@ -70,6 +70,12 @@
<artifactId>liquidnet-common-third-antchain</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-api-feign-adam</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
......
package com.liquidnet.service.goblin.util;
import com.alibaba.fastjson.JSON;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.adam.dto.vo.AdamUserMemberVo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.feign.adam.api.FeignAdamBaseClient;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
......@@ -15,11 +19,28 @@ import java.time.LocalDateTime;
public class AdamRedisUtils {
@Autowired
public RedisUtil redisUtil;
@Autowired
@Lazy
private FeignAdamBaseClient feignAdamBaseClient;
public AdamUserInfoVo getUserInfoVoByUid(String uid) {
String rk = AdamRedisConst.INFO_USER.concat(uid);
long s = System.currentTimeMillis();
AdamUserInfoVo vo = (AdamUserInfoVo) redisUtil.get(rk);
// TODO 如果不存在则从数据库查询
if (null == vo) {
log.info("not find value in redis cache, key: {}", rk);
try {
ResponseDto<AdamUserInfoVo> responseDto = feignAdamBaseClient.getAdamUserInfoByUid(uid);
log.info("feign client response: {}", JSON.toJSONString(responseDto));
if (null != responseDto && responseDto.isSuccess() && null != responseDto.getData()) {
log.info("feign client response success");
vo = responseDto.getData();
}
}catch (Exception e) {
log.error("error", e);
}
}
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo;
}
......
......@@ -6,6 +6,7 @@ import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.vo.AdamMemberVo;
import com.liquidnet.service.adam.dto.vo.AdamUserMemberVo;
import com.liquidnet.service.base.constant.RedisKeyExpireConst;
import com.liquidnet.service.goblin.constant.GoblinRedisConst;
import com.liquidnet.service.goblin.dto.manage.vo.GoblinGoodsAnticipateValueVo;
import com.liquidnet.service.goblin.dto.vo.*;
......@@ -138,7 +139,7 @@ public class DataUtils {
}
public void setOrderList(String userId, List<KylinOrderListVo> vo) {
redisUtil.set(KylinRedisConst.ORDER_LIST + userId, vo);
redisUtil.set(KylinRedisConst.ORDER_LIST + userId, vo, RedisKeyExpireConst.KYLIN_ORDER_LIST_USERID_EXPIRE);
}
public List<KylinOrderListVo> getOrderList(String userId) {
......@@ -152,7 +153,7 @@ public class DataUtils {
for (KylinOrderListVo item : voList) {
item.setStatus(item.getStatus());
}
redisUtil.set(KylinRedisConst.ORDER_LIST + userId, voList);
redisUtil.set(KylinRedisConst.ORDER_LIST + userId, voList, RedisKeyExpireConst.KYLIN_ORDER_LIST_USERID_EXPIRE);
return voList;
}
}
......@@ -174,14 +175,14 @@ public class DataUtils {
}
List<KylinOrderTicketEntitiesVo> kylinOrderTicketEntitiesVoList = mongoTemplate.find(Query.query(Criteria.where("orderId").is(orderId)), KylinOrderTicketEntitiesVo.class, KylinOrderTicketEntitiesVo.class.getSimpleName());
ticketData.setEntitiesVoList(kylinOrderTicketEntitiesVoList);
redisUtil.set(KylinRedisConst.ORDER + orderId, ticketData);
redisUtil.set(KylinRedisConst.ORDER + orderId, ticketData, RedisKeyExpireConst.KYLIN_ORDER_ID_EXPIRE);
return ticketData;
}
}
public void setOrderTicketVo(String orderId, KylinOrderTicketVo vo) {
String redisKey = KylinRedisConst.ORDER + orderId;
redisUtil.set(redisKey, vo);
redisUtil.set(redisKey, vo, RedisKeyExpireConst.KYLIN_ORDER_ID_EXPIRE);
}
/**
......@@ -1407,7 +1408,7 @@ public class DataUtils {
if (redisVo.size() == 0) {
vo.add(voItem);
}
redisUtil.set(KylinRedisConst.ORDER_LIST + userId, vo);
redisUtil.set(KylinRedisConst.ORDER_LIST + userId, vo, RedisKeyExpireConst.KYLIN_ORDER_LIST_USERID_EXPIRE);
return true;
case 2:
for (int i = 0; i < redisVo.size(); i++) {
......@@ -1420,7 +1421,7 @@ public class DataUtils {
vo.add(redisVo.get(i));
}
}
redisUtil.set(KylinRedisConst.ORDER_LIST + userId, vo);
redisUtil.set(KylinRedisConst.ORDER_LIST + userId, vo, RedisKeyExpireConst.KYLIN_ORDER_LIST_USERID_EXPIRE);
return true;
default:
return false;
......
package com.liquidnet.service.order.utils;
import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.databind.JsonNode;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.common.exception.LiquidnetServiceException;
......@@ -8,9 +9,11 @@ import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.adam.dto.vo.AdamUserMemberVo;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.feign.adam.api.FeignAdamBaseClient;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
......@@ -21,11 +24,27 @@ import java.time.LocalDateTime;
public class AdamRedisUtils {
@Autowired
public RedisUtil redisUtil;
@Autowired
@Lazy
private FeignAdamBaseClient feignAdamBaseClient;
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) {
log.info("not find value in redis cache, key: {}", rk);
try {
ResponseDto<AdamUserInfoVo> responseDto = feignAdamBaseClient.getAdamUserInfoByUid(uid);
log.info("feign client response: {}", JSON.toJSONString(responseDto));
if (null != responseDto && responseDto.isSuccess() && null != responseDto.getData()) {
log.info("feign client response success");
vo = responseDto.getData();
}
}catch (Exception e) {
log.error("error", e);
}
}
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo;
}
......
......@@ -5,6 +5,7 @@ import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.IPUtil;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.service.base.constant.RedisKeyExpireConst;
import com.liquidnet.service.candy.constant.CandyRedisConst;
import com.liquidnet.service.candy.dto.CandyUserCouponAssocDto;
import com.liquidnet.service.goblin.constant.SmileRedisConst;
......@@ -72,7 +73,7 @@ public class DataUtils {
public void setOrderList(String userId, List<KylinOrderListVo> vo) {
redisUtil.set(KylinRedisConst.ORDER_LIST + userId, vo);
redisUtil.set(KylinRedisConst.ORDER_LIST + userId, vo, RedisKeyExpireConst.KYLIN_ORDER_LIST_USERID_EXPIRE);
}
public int incrOrderRefundCode(String orderCode) {
......@@ -90,7 +91,7 @@ public class DataUtils {
for (KylinOrderListVo item : voList) {
item.setStatus(item.getStatus());
}
redisUtil.set(KylinRedisConst.ORDER_LIST + userId, voList);
redisUtil.set(KylinRedisConst.ORDER_LIST + userId, voList, RedisKeyExpireConst.KYLIN_ORDER_LIST_USERID_EXPIRE);
return voList;
}
}
......@@ -109,7 +110,7 @@ public class DataUtils {
KylinOrderTicketVo ticketData = mongoTemplate.findOne(Query.query(Criteria.where("orderTicketsId").is(orderId)), KylinOrderTicketVo.class, KylinOrderTicketVo.class.getSimpleName());
List<KylinOrderTicketEntitiesVo> kylinOrderTicketEntitiesVoList = mongoTemplate.find(Query.query(Criteria.where("orderId").is(orderId)), KylinOrderTicketEntitiesVo.class, KylinOrderTicketEntitiesVo.class.getSimpleName());
ticketData.setEntitiesVoList(kylinOrderTicketEntitiesVoList);
redisUtil.set(KylinRedisConst.ORDER + orderId, ticketData);
redisUtil.set(KylinRedisConst.ORDER + orderId, ticketData, RedisKeyExpireConst.KYLIN_ORDER_ID_EXPIRE);
return ticketData;
}
}
......
......@@ -6,11 +6,13 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.cache.redis.util.AbstractRedisUtil;
import com.liquidnet.common.cache.redis.util.RedisDataSourceUtil;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.AdamUserInfoDto;
import com.liquidnet.service.adam.dto.vo.AdamPosScanitVo;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.adam.dto.vo.AdamUserMemberVo;
import com.liquidnet.service.adam.entity.AdamUserInfo;
import com.liquidnet.service.adam.mapper.AdamUserInfoMapper;
import com.liquidnet.service.adam.mapper.AdamUserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -18,10 +20,10 @@ import org.springframework.stereotype.Service;
public class PlatformAdamUserPosService extends ServiceImpl<AdamUserInfoMapper, AdamUserInfo> {
@Autowired
private RedisDataSourceUtil redisDataSourceUtil;
// @Autowired
// @Autowired
// private AdamUserMemberMapper adamUserMemberMapper;
// @Autowired
// private AdamUserMapper adamUserMapper;
@Autowired
private AdamUserMapper adamUserMapper;
public AdamPosScanitVo scanitProcess(String code) {
LambdaQueryWrapper<AdamUserInfo> userInfoLambdaQueryWrapper = Wrappers.lambdaQuery(AdamUserInfo.class);
......@@ -53,6 +55,14 @@ public class PlatformAdamUserPosService extends ServiceImpl<AdamUserInfoMapper,
// AdamUserMember::getUpdatedAt
// );
// AdamUserMember userMember = adamUserMemberMapper.selectOne(userMemberLambdaQueryWrapper);
}else {
AdamUserInfoDto adamUserInfoDto = adamUserMapper.selectByUid(userInfo.getUid());
if (null != adamUserInfoDto) {
scanitVo.setNickname(adamUserInfoDto.getNickname());
scanitVo.setMobile(adamUserInfoDto.getMobile());
scanitVo.setUid(adamUserInfoDto.getUid());
}
}
AdamUserMemberVo userMemberVo = (AdamUserMemberVo) redisAdamUtil.get(AdamRedisConst.INFO_USER_MEMBER.concat(userInfo.getUid()));
if (null == userMemberVo) {
scanitVo.setStageMarker(0);
......@@ -63,7 +73,7 @@ public class PlatformAdamUserPosService extends ServiceImpl<AdamUserInfoMapper,
scanitVo.setStageMarker(2);
}
}
}
}
......
......@@ -9,6 +9,7 @@ import com.liquidnet.common.cache.redis.util.RedisDataSourceUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.AdamUserInfoDto;
import com.liquidnet.service.adam.dto.vo.AdamProPerformMarkVo;
import com.liquidnet.service.adam.dto.vo.AdamProScanitVo;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
......@@ -48,7 +49,13 @@ public class PlatformAdamUserProService extends ServiceImpl<AdamUserInfoMapper,
if (null != userInfoVo) {
scanitVo.setNickname(userInfoVo.getNickname());
scanitVo.setMobile(userInfoVo.getMobile());
} else {
AdamUserInfoDto adamUserInfoDto = adamUserMapper.selectByUid(userInfo.getUid());
if (null != adamUserInfoDto) {
scanitVo.setNickname(adamUserInfoDto.getNickname());
scanitVo.setMobile(adamUserInfoDto.getMobile());
}
}
AdamUserMemberVo userMemberVo = (AdamUserMemberVo) redisAdamUtil.get(AdamRedisConst.INFO_USER_MEMBER.concat(uid));
if (null == userMemberVo) {
scanitVo.setStageMarker(0);
......@@ -59,9 +66,8 @@ public class PlatformAdamUserProService extends ServiceImpl<AdamUserInfoMapper,
scanitVo.setStageMarker(2);
}
}
this.performanceMarkProcessing(scanitVo, uid, pid, pna);
}
}
return scanitVo;
}
......@@ -73,7 +79,8 @@ public class PlatformAdamUserProService extends ServiceImpl<AdamUserInfoMapper,
String rk = AdamRedisConst.CACHE_USER_PERFORMANCE_MARK.concat(uid);
String rkv = (String) redisAdamUtil.get(rk);
List<AdamProPerformMarkVo> performMarkVos = JsonUtils.fromJson(rkv, new TypeReference<List<AdamProPerformMarkVo>>() {});
List<AdamProPerformMarkVo> performMarkVos = JsonUtils.fromJson(rkv, new TypeReference<List<AdamProPerformMarkVo>>() {
});
if (!CollectionUtils.isEmpty(performMarkVos)) {
Optional<AdamProPerformMarkVo> optional = performMarkVos.stream().filter(vo -> vo.getPid().equals(pid)).findAny();
if (optional.isPresent()) {
......
......@@ -8,8 +8,10 @@ import com.liquidnet.common.cache.redis.util.RedisDataSourceUtil;
import com.liquidnet.common.exception.LiquidnetServiceException;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.AdamUserInfoDto;
import com.liquidnet.service.adam.dto.vo.AdamUserMemberVo;
import com.liquidnet.service.adam.entity.AdamUserMember;
import com.liquidnet.service.adam.mapper.AdamUserMapper;
import com.liquidnet.service.candy.constant.CandyRedisConst;
import com.liquidnet.service.candy.dto.*;
import com.liquidnet.service.candy.entity.*;
......@@ -47,6 +49,8 @@ public class PlatformCandyCouponService extends ServiceImpl<CandyCouponMapper, C
private PlatformAdamUserMemberService platformAdamUserMemberService;
@Autowired
private RedisDataSourceUtil redisDataSourceUtil;
@Autowired
private AdamUserMapper adamUserMapper;
private void issueCouponProcessing(final CandyMgtCoupon mgtCoupon, final CandyCoupon coupon) {
List<CandyCouponRuleDto> couponRuleDtoList = platformCandyCouponRuleService.listForCouponRuleDto(coupon.getCouponId());
......@@ -332,6 +336,13 @@ public class PlatformCandyCouponService extends ServiceImpl<CandyCouponMapper, C
for (String r : eventLimitArr) {
String uid = (String) redisAdamUtil.get(AdamRedisConst.IDENTITY_MOBILE.concat(r));
if (StringUtils.isBlank(uid)) {
List<AdamUserInfoDto> userInfoDtos = adamUserMapper.selectByPhones(r);
if (!CollectionUtils.isEmpty(userInfoDtos)) {
uid = userInfoDtos.get(0).getUid();
}
}
if (StringUtils.isNotEmpty(uid)) {
CandyUserCoupon userCoupon = new CandyUserCoupon();
userCoupon.setUcouponId(IDGenerator.get32UUID());
......
......@@ -35,6 +35,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.multipart.MultipartFile;
......@@ -230,8 +231,13 @@ public class GoblinNftExCodeServiceImpl implements IGoblinNftExCodeService {
String uid = (String) redisDataSourceUtil.getRedisAdamUtil().get(AdamRedisConst.IDENTITY_MOBILE.concat(phone));
if (StringUtils.isEmpty(uid)) {
List<AdamUserInfoDto> userInfoDtos = adamUserMapper.selectByPhones(phone);
if (!CollectionUtils.isEmpty(userInfoDtos)) {
uid = userInfoDtos.get(0).getUid();
}else {
return ResponseDto.failure("用户不存在!");
}
}
// 验证吗时间校验
try {
......
......@@ -3,6 +3,7 @@ package com.liquidnet.service.platform.utils;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.liquidnet.common.cache.redis.util.RedisDataSourceUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.constant.RedisKeyExpireConst;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dto.vo.KylinApiCameraDevicesVo;
import com.liquidnet.service.kylin.dto.vo.KylinTimePerformanceVo;
......@@ -150,7 +151,7 @@ public class DataUtils {
}
public void setOrderList(String userId, List<KylinOrderListVo> vo) {
redisDataSourceUtil.getRedisKylinUtil().set(KylinRedisConst.ORDER_LIST + userId, vo);
redisDataSourceUtil.getRedisKylinUtil().set(KylinRedisConst.ORDER_LIST + userId, vo, RedisKeyExpireConst.KYLIN_ORDER_LIST_USERID_EXPIRE);
}
public List<KylinOrderListVo> getOrderList(String userId) {
......@@ -164,7 +165,7 @@ public class DataUtils {
for (KylinOrderListVo item : voList) {
item.setStatus(item.getStatus());
}
redisDataSourceUtil.getRedisKylinUtil().set(KylinRedisConst.ORDER_LIST + userId, voList);
redisDataSourceUtil.getRedisKylinUtil().set(KylinRedisConst.ORDER_LIST + userId, voList, RedisKeyExpireConst.KYLIN_ORDER_LIST_USERID_EXPIRE);
return voList;
}
}
......@@ -193,7 +194,7 @@ public class DataUtils {
KylinOrderTicketVo ticketData = mongoTemplate.findOne(Query.query(Criteria.where("orderTicketsId").is(orderId)), KylinOrderTicketVo.class, KylinOrderTicketVo.class.getSimpleName());
List<KylinOrderTicketEntitiesVo> kylinOrderTicketEntitiesVoList = mongoTemplate.find(Query.query(Criteria.where("orderId").is(orderId)), KylinOrderTicketEntitiesVo.class, KylinOrderTicketEntitiesVo.class.getSimpleName());
ticketData.setEntitiesVoList(kylinOrderTicketEntitiesVoList);
redisDataSourceUtil.getRedisKylinUtil().set(KylinRedisConst.ORDER + orderId, ticketData);
redisDataSourceUtil.getRedisKylinUtil().set(KylinRedisConst.ORDER + orderId, ticketData, RedisKeyExpireConst.KYLIN_ORDER_ID_EXPIRE);
return ticketData;
}
}
......
package com.liquidnet.service.stone.util;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.base.constant.RedisKeyExpireConst;
import com.liquidnet.service.stone.constant.StoneConstant;
import com.liquidnet.service.stone.entity.StoneScoreItems;
import com.liquidnet.service.stone.entity.StoneScoreLogs;
......@@ -225,7 +226,7 @@ public class StoneRedisUtils {
dataList.remove(40);
}
}
redisUtil.set(redisKey, dataList);
redisUtil.set(redisKey, dataList, RedisKeyExpireConst.STONE_ITEM_LOGS_LIST_EXPIRE);
}
/**
......@@ -236,7 +237,7 @@ public class StoneRedisUtils {
Object obj = redisUtil.get(redisKey);
if (obj == null) {
List<StoneScoreLogs> getLogsList = (List<StoneScoreLogs>) mongoUtils.logList(uid, 1, 40).get("data");
redisUtil.set(redisKey, getLogsList);
redisUtil.set(redisKey, getLogsList, RedisKeyExpireConst.STONE_ITEM_LOGS_LIST_EXPIRE);
return getLogsList;
} else {
return (List<StoneScoreLogs>) obj;
......
package com.liquidnet.service.sweet.utils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.CollectionUtil;
......@@ -8,6 +10,7 @@ import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.commons.lang.util.RandomUtil;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.base.constant.RedisKeyExpireConst;
import com.liquidnet.service.feign.slime.api.FeignSlimeApiClient;
import com.liquidnet.service.slime.dto.vo.SlimeFieldsDetailsVo;
import com.liquidnet.service.sweet.constant.SweetConstant;
......@@ -25,6 +28,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.time.LocalDateTime;
import java.util.*;
......@@ -54,6 +58,8 @@ public class RedisDataUtils {
@Autowired
private SweetArtistsMapper sweetArtistsMapper;
@Autowired
private SweetIntegralActivityDrawMapper sweetIntegralActivityDrawMapper;
@Autowired
@Lazy
private FeignSlimeApiClient feignSlimeApiClient;
......@@ -563,7 +569,7 @@ public class RedisDataUtils {
// 抽奖详情
String redisKeyDraw = SweetConstant.REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_INFO
.concat(integralActivityDrawVo.getDrawId());
redisUtil.set(redisKeyDraw, integralActivityDrawVo);
redisUtil.set(redisKeyDraw, integralActivityDrawVo, RedisKeyExpireConst.SWEET_INTEGRALACTIVITY_DRAWINFO_DRAWID_EXPIRE);
}
public LinkedList<IntegralActivityDrawVo> getIntegralActivityDrawAll(String integralActivityId) {
......@@ -668,7 +674,19 @@ public class RedisDataUtils {
.concat(drawId);
Object obj = redisUtil.get(redisKeyDraw);
if (null == obj) {
return IntegralActivityDrawVo.getNew();
log.info("redis cache value is null, key: {}", redisKeyDraw);
IntegralActivityDrawVo integralActivityDrawVo = IntegralActivityDrawVo.getNew();
// 从MySQL数据库查询
LambdaQueryWrapper<SweetIntegralActivityDraw> lambda = new QueryWrapper<SweetIntegralActivityDraw>().lambda();
lambda.eq(SweetIntegralActivityDraw::getDrawId, drawId);
List<SweetIntegralActivityDraw> sweetIntegralActivityDraws = sweetIntegralActivityDrawMapper.selectList(lambda);
if (!CollectionUtils.isEmpty(sweetIntegralActivityDraws)) {
log.info("query mysql successed, drawId: {}", drawId);
integralActivityDrawVo.copy(sweetIntegralActivityDraws.get(0));
setIntegralActivityDrawInfo(drawId, integralActivityDrawVo);
}
return integralActivityDrawVo;
} else {
return (IntegralActivityDrawVo) obj;
}
......@@ -677,7 +695,7 @@ public class RedisDataUtils {
public void setIntegralActivityDrawInfo(String drawId, IntegralActivityDrawVo drawVo) {
String redisKeyDraw = SweetConstant.REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_INFO
.concat(drawId);
redisUtil.set(redisKeyDraw, drawVo);
redisUtil.set(redisKeyDraw, drawVo, RedisKeyExpireConst.SWEET_INTEGRALACTIVITY_DRAWINFO_DRAWID_EXPIRE);
}
public void updateIntegralActivityDrawInfo(String drawId, String couponId) {
......@@ -687,7 +705,7 @@ public class RedisDataUtils {
info.setReceivingStatus(2);
info.setRelationId(couponId);
info.setUpdatedAt(LocalDateTime.now());
redisUtil.set(redisKeyDraw, info);
redisUtil.set(redisKeyDraw, info, RedisKeyExpireConst.SWEET_INTEGRALACTIVITY_DRAWINFO_DRAWID_EXPIRE);
}
public void setIntegralActivityDrawBlack(List<String> uidS) {
......
package com.liquidnet.service.sweet.utils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.base.constant.RedisKeyExpireConst;
import com.liquidnet.service.sweet.constant.SweetConstant;
import com.liquidnet.service.sweet.entity.SweetAppletUsers;
import com.liquidnet.service.sweet.entity.SweetWechatUsers;
import com.liquidnet.service.sweet.mapper.SweetAppletUsersMapper;
import com.liquidnet.service.sweet.mapper.SweetWechatUsersMapper;
import com.liquidnet.service.sweet.vo.SweetAppletUsersVo;
import com.liquidnet.service.sweet.vo.SweetMaoDengVo;
import com.liquidnet.service.sweet.vo.SweetWechatUsersVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.util.List;
@Component
@Slf4j
......@@ -15,13 +26,31 @@ public class WechatUsersRedisUtils {
@Autowired
private RedisUtil redisUtil;
@Autowired
private SweetAppletUsersMapper sweetAppletUsersMapper;
@Autowired
private SweetWechatUsersMapper sweetWechatUsersMapper;
public SweetWechatUsersVo getSweetWechatUsersOfUnionId(String unionId, Integer type) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_WECHAT_USERS_UNIONID.concat(unionId)
.concat(SweetConstant.REDIS_KEY_SWEET_WECHAT_USERS_TYPE).concat(String.valueOf(type));
Object obj = redisUtil.get(redisKey);
if (null == obj) {
// 从MySQL查询
LambdaQueryWrapper<SweetWechatUsers> lambda = new QueryWrapper<SweetWechatUsers>()
.lambda()
.eq(SweetWechatUsers::getUnionId, unionId)
.eq(SweetWechatUsers::getType, type)
.orderByDesc(SweetWechatUsers::getUpdatedAt);
List<SweetWechatUsers> sweetWechatUsers = sweetWechatUsersMapper.selectList(lambda);
if (!CollectionUtils.isEmpty(sweetWechatUsers)) {
SweetWechatUsersVo usersVo = SweetWechatUsersVo.getNew();
BeanUtils.copyProperties(sweetWechatUsers.get(0), usersVo);
setSweetWechatUsers(usersVo);
return usersVo;
} else {
return null;
}
} else {
SweetWechatUsersVo sweetWechatUsersVo = (SweetWechatUsersVo) obj;
return sweetWechatUsersVo;
......@@ -33,7 +62,21 @@ public class WechatUsersRedisUtils {
.concat(SweetConstant.REDIS_KEY_SWEET_WECHAT_USERS_TYPE).concat(String.valueOf(type));
Object obj = redisUtil.get(redisKey);
if (null == obj) {
// 从MySQL查询
LambdaQueryWrapper<SweetWechatUsers> lambda = new QueryWrapper<SweetWechatUsers>()
.lambda()
.eq(SweetWechatUsers::getOpenId, openId)
.eq(SweetWechatUsers::getType, type)
.orderByDesc(SweetWechatUsers::getUpdatedAt);
List<SweetWechatUsers> sweetWechatUsers = sweetWechatUsersMapper.selectList(lambda);
if (!CollectionUtils.isEmpty(sweetWechatUsers)) {
SweetWechatUsersVo usersVo = SweetWechatUsersVo.getNew();
BeanUtils.copyProperties(sweetWechatUsers.get(0), usersVo);
setSweetWechatUsers(usersVo);
return usersVo;
} else {
return null;
}
} else {
SweetWechatUsersVo sweetWechatUsersVo = (SweetWechatUsersVo) obj;
return sweetWechatUsersVo;
......@@ -43,11 +86,11 @@ public class WechatUsersRedisUtils {
public void setSweetWechatUsers(SweetWechatUsersVo sweetWechatUsersVo) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_WECHAT_USERS_UNIONID.concat(sweetWechatUsersVo.getUnionId())
.concat(SweetConstant.REDIS_KEY_SWEET_WECHAT_USERS_TYPE).concat(String.valueOf(sweetWechatUsersVo.getType()));
redisUtil.set(redisKey, sweetWechatUsersVo);
redisUtil.set(redisKey, sweetWechatUsersVo, RedisKeyExpireConst.SWEET_USER_SERVICE_UNIONID_EXPIRE);
String redisKeyOpenId = SweetConstant.REDIS_KEY_SWEET_WECHAT_USERS_OPENID.concat(sweetWechatUsersVo.getOpenId())
.concat(SweetConstant.REDIS_KEY_SWEET_WECHAT_USERS_TYPE).concat(String.valueOf(sweetWechatUsersVo.getType()));
redisUtil.set(redisKeyOpenId, sweetWechatUsersVo);
redisUtil.set(redisKeyOpenId, sweetWechatUsersVo, RedisKeyExpireConst.SWEET_USER_SERVICE_OPENID_EXPIRE);
}
public void delSweetWechatUsers(String unionId, String openId, Integer type) {
......@@ -64,7 +107,20 @@ public class WechatUsersRedisUtils {
String redisKey = SweetConstant.REDIS_KEY_SWEET_APPLET_USERS_PHONE.concat(mobile);
Object obj = redisUtil.get(redisKey);
if (null == obj) {
// 从MySQL数据库查询
LambdaQueryWrapper<SweetAppletUsers> lambda = new QueryWrapper<SweetAppletUsers>()
.lambda()
.eq(SweetAppletUsers::getPhoneNumber, mobile)
.orderByDesc(SweetAppletUsers::getUpdatedAt);
List<SweetAppletUsers> sweetAppletUsers = sweetAppletUsersMapper.selectList(lambda);
if (!CollectionUtils.isEmpty(sweetAppletUsers)) {
SweetAppletUsersVo usersVo = SweetAppletUsersVo.getNew();
BeanUtils.copyProperties(sweetAppletUsers.get(0), usersVo);
setSweetAppletUsers(usersVo);
return usersVo;
} else {
return null;
}
} else {
SweetAppletUsersVo sweetAppletUsersVo = (SweetAppletUsersVo) obj;
return sweetAppletUsersVo;
......@@ -75,7 +131,20 @@ public class WechatUsersRedisUtils {
String redisKey = SweetConstant.REDIS_KEY_SWEET_APPLET_USERS_UNIONID.concat(unionId);
Object obj = redisUtil.get(redisKey);
if (null == obj) {
// 从MySQL数据库查询
LambdaQueryWrapper<SweetAppletUsers> lambda = new QueryWrapper<SweetAppletUsers>()
.lambda()
.eq(SweetAppletUsers::getUnionId, unionId)
.orderByDesc(SweetAppletUsers::getUpdatedAt);
List<SweetAppletUsers> sweetAppletUsers = sweetAppletUsersMapper.selectList(lambda);
if (!CollectionUtils.isEmpty(sweetAppletUsers)) {
SweetAppletUsersVo usersVo = SweetAppletUsersVo.getNew();
BeanUtils.copyProperties(sweetAppletUsers.get(0), usersVo);
setSweetAppletUsers(usersVo);
return usersVo;
} else {
return null;
}
} else {
SweetAppletUsersVo sweetAppletUsersVo = (SweetAppletUsersVo) obj;
return sweetAppletUsersVo;
......@@ -84,10 +153,10 @@ public class WechatUsersRedisUtils {
public void setSweetAppletUsers(SweetAppletUsersVo sweetAppletUsersVo) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_APPLET_USERS_PHONE.concat(sweetAppletUsersVo.getPurePhoneNumber());
redisUtil.set(redisKey, sweetAppletUsersVo);
redisUtil.set(redisKey, sweetAppletUsersVo, RedisKeyExpireConst.SWEET_USER_APPLET_MOBILE_EXPIRE);
String redisKeyU = SweetConstant.REDIS_KEY_SWEET_APPLET_USERS_UNIONID.concat(sweetAppletUsersVo.getUnionId());
redisUtil.set(redisKeyU, sweetAppletUsersVo);
redisUtil.set(redisKeyU, sweetAppletUsersVo, RedisKeyExpireConst.SWEET_USER_APPLET_UNIONID_EXPIRE);
}
public void setStrawberryPosterClick(String openId, long time) {
......
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