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