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

Commit 8480af40 authored by wangyifan's avatar wangyifan

redis缓存改造-adam:info:user

parent 872f86c6
......@@ -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
# -----------------------------------------------------------
# -----------------------------------------------------------
......
......@@ -73,7 +73,7 @@ spring:
autoconfigure:
exclude:
- org.springframework.cloud.bus.BusAutoConfiguration
- org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
# - org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
redis:
queue:
database: ${liquidnet.redis.queue.database}
......@@ -102,6 +102,17 @@ 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}
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
# -----------------------------------------------------------
# -----------------------------------------------------------
......
......@@ -73,7 +73,7 @@ spring:
autoconfigure:
exclude:
- org.springframework.cloud.bus.BusAutoConfiguration
- org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
# - org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
redis:
queue:
database: ${liquidnet.redis.queue.database}
......@@ -102,6 +102,17 @@ 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}
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
# -----------------------------------------------------------
# -----------------------------------------------------------
......
......@@ -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);
}
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;
......
package com.liquidnet.service.adam.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.fasterxml.jackson.databind.JsonNode;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.common.exception.LiquidnetServiceException;
......@@ -7,7 +8,11 @@ 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.AdamUserMember;
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 lombok.extern.slf4j.Slf4j;
......@@ -34,6 +39,11 @@ public class AdamRdmService {
@Autowired
RedisUtil redisUtil;
@Autowired
AdamUserMapper adamUserMapper;
@Autowired
AdamUserMemberMapper adamUserMemberMapper;
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | Switch config */
public Integer getSwitch(String rk) {
......@@ -138,13 +148,39 @@ 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, 30 * 24 * 60 * 60);
}
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);
AdamUserInfoDto adamUserInfoDto = adamUserMapper.selectByUid(uid);
if (null != adamUserInfoDto) {
vo = AdamUserInfoVo.getNew();
vo.copy(adamUserInfoDto);
LambdaQueryWrapper<AdamUserMember> adamUserMemberWrapper = new LambdaQueryWrapper();
adamUserMemberWrapper.eq(AdamUserMember::getUid, uid);
AdamUserMember adamUserMember = adamUserMemberMapper.selectOne(adamUserMemberWrapper);
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 +299,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:// 本地不存在
......@@ -443,7 +479,7 @@ public class AdamRdmService {
if (null == vos) {
vos = ObjectUtil.getAdamEntersVoArrayList();
}
vos.add(0,vo);
vos.add(0, vo);
return redisUtil.set(AdamRedisConst.INFO_ENTERS + uid, vos);
}
......
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 ServiceGoblinApplication implements CommandLineRunner {
@Autowired
private Environment environment;
......
package com.liquidnet.service.goblin.util;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.AdamUserInfoDto;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
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.adam.mapper.AdamUserMemberMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
......@@ -15,11 +20,35 @@ import java.time.LocalDateTime;
public class AdamRedisUtils {
@Autowired
public RedisUtil redisUtil;
@Autowired
AdamUserMapper adamUserMapper;
@Autowired
AdamUserMemberMapper adamUserMemberMapper;
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);
AdamUserInfoDto adamUserInfoDto = adamUserMapper.selectByUid(uid);
if (null != adamUserInfoDto) {
vo = AdamUserInfoVo.getNew();
vo.copy(adamUserInfoDto);
LambdaQueryWrapper<AdamUserMember> adamUserMemberWrapper = new LambdaQueryWrapper();
adamUserMemberWrapper.eq(AdamUserMember::getUid, uid);
AdamUserMember adamUserMember = adamUserMemberMapper.selectOne(adamUserMemberWrapper);
if (null == adamUserMember) {
vo.rating(null);
} else {
AdamUserMemberVo adamUserMemberVo = new AdamUserMemberVo();
adamUserMemberVo.copy(adamUserMember);
vo.rating(adamUserMemberVo);
}
}
}
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo;
}
......
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 ServiceOrderApplication implements CommandLineRunner {
@Autowired
private Environment environment;
......
package com.liquidnet.service.order.utils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.fasterxml.jackson.databind.JsonNode;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.common.exception.LiquidnetServiceException;
import com.liquidnet.commons.lang.util.IdentityUtils;
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.AdamUserInfoVo;
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.adam.mapper.AdamUserMemberMapper;
import com.liquidnet.service.base.ErrorMapping;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -21,11 +26,34 @@ import java.time.LocalDateTime;
public class AdamRedisUtils {
@Autowired
public RedisUtil redisUtil;
@Autowired
AdamUserMapper adamUserMapper;
@Autowired
AdamUserMemberMapper adamUserMemberMapper;
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);
LambdaQueryWrapper<AdamUserMember> adamUserMemberWrapper = new LambdaQueryWrapper();
adamUserMemberWrapper.eq(AdamUserMember::getUid, uid);
AdamUserMember adamUserMember = adamUserMemberMapper.selectOne(adamUserMemberWrapper);
if (null == adamUserMember) {
vo.rating(null);
} else {
AdamUserMemberVo adamUserMemberVo = new AdamUserMemberVo();
adamUserMemberVo.copy(adamUserMember);
vo.rating(adamUserMemberVo);
}
}
}
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo;
}
......
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