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

Commit e37ba6ce authored by wangyifan's avatar wangyifan

adam模块增加统一调用feign client接口;

goblin、order模块简化调用;
redis缓存改造-adam:info:user - 完成
parent 8480af40
...@@ -136,6 +136,7 @@ global-auth: ...@@ -136,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:
......
...@@ -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
redis: redis:
queue: queue:
database: ${liquidnet.redis.queue.database} database: ${liquidnet.redis.queue.database}
...@@ -102,17 +102,7 @@ spring: ...@@ -102,17 +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}
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: ...@@ -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
redis: redis:
queue: queue:
database: ${liquidnet.redis.queue.database} database: ${liquidnet.redis.queue.database}
...@@ -102,17 +102,7 @@ spring: ...@@ -102,17 +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}
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
# ----------------------------------------------------------- # -----------------------------------------------------------
# ----------------------------------------------------------- # -----------------------------------------------------------
......
...@@ -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);
} }
...@@ -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.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;
...@@ -156,7 +155,7 @@ public class AdamRdmService { ...@@ -156,7 +155,7 @@ public class AdamRdmService {
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) { if (null == vo) {
log.info("not find value in redis cache, key: {}", rk); log.info("not find value in redis cache, key: {}", rk);
AdamUserInfoDto adamUserInfoDto = adamUserMapper.selectByUid(uid); AdamUserInfoDto adamUserInfoDto = adamUserMapper.selectByUid(uid);
...@@ -164,9 +163,7 @@ public class AdamRdmService { ...@@ -164,9 +163,7 @@ public class AdamRdmService {
vo = AdamUserInfoVo.getNew(); vo = AdamUserInfoVo.getNew();
vo.copy(adamUserInfoDto); vo.copy(adamUserInfoDto);
LambdaQueryWrapper<AdamUserMember> adamUserMemberWrapper = new LambdaQueryWrapper(); AdamUserMember adamUserMember = adamUserMemberMapper.selectByUid(uid);
adamUserMemberWrapper.eq(AdamUserMember::getUid, uid);
AdamUserMember adamUserMember = adamUserMemberMapper.selectOne(adamUserMemberWrapper);
if (null == adamUserMember) { if (null == adamUserMember) {
vo.rating(null); vo.rating(null);
} else { } else {
......
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;
...@@ -15,7 +14,6 @@ import java.util.Arrays; ...@@ -15,7 +14,6 @@ import java.util.Arrays;
@Slf4j @Slf4j
@EnableFeignClients @EnableFeignClients
@SpringBootApplication(scanBasePackages = {"com.liquidnet"}) @SpringBootApplication(scanBasePackages = {"com.liquidnet"})
@MapperScan(basePackages = {"com.liquidnet.service.*.mapper"})
public class ServiceGoblinApplication implements CommandLineRunner { public class ServiceGoblinApplication implements CommandLineRunner {
@Autowired @Autowired
private Environment environment; private Environment environment;
......
package com.liquidnet.service.goblin.util; package com.liquidnet.service.goblin.util;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.AdamUserInfoDto;
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.AdamUserMember; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.adam.mapper.AdamUserMapper; import com.liquidnet.service.feign.adam.api.FeignAdamBaseClient;
import com.liquidnet.service.adam.mapper.AdamUserMemberMapper;
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;
...@@ -21,9 +20,8 @@ public class AdamRedisUtils { ...@@ -21,9 +20,8 @@ public class AdamRedisUtils {
@Autowired @Autowired
public RedisUtil redisUtil; public RedisUtil redisUtil;
@Autowired @Autowired
AdamUserMapper adamUserMapper; @Lazy
@Autowired private FeignAdamBaseClient feignAdamBaseClient;
AdamUserMemberMapper adamUserMemberMapper;
public AdamUserInfoVo getUserInfoVoByUid(String uid) { public AdamUserInfoVo getUserInfoVoByUid(String uid) {
String rk = AdamRedisConst.INFO_USER.concat(uid); String rk = AdamRedisConst.INFO_USER.concat(uid);
...@@ -32,21 +30,11 @@ public class AdamRedisUtils { ...@@ -32,21 +30,11 @@ public class AdamRedisUtils {
// TODO 如果不存在则从数据库查询 // TODO 如果不存在则从数据库查询
if (null == vo) { if (null == vo) {
log.info("not find value in redis cache, key: {}", rk); log.info("not find value in redis cache, key: {}", rk);
AdamUserInfoDto adamUserInfoDto = adamUserMapper.selectByUid(uid); ResponseDto<AdamUserInfoVo> responseDto = feignAdamBaseClient.getAdamUserInfoByUid(uid);
if (null != adamUserInfoDto) { log.info("feign client response: {}", JSON.toJSONString(responseDto));
vo = AdamUserInfoVo.getNew(); if (null != responseDto && responseDto.isSuccess() && null != responseDto.getData()) {
vo.copy(adamUserInfoDto); log.info("feign client response success");
vo = responseDto.getData();
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); log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
......
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;
...@@ -15,7 +14,6 @@ import java.util.Arrays; ...@@ -15,7 +14,6 @@ import java.util.Arrays;
@Slf4j @Slf4j
@EnableFeignClients @EnableFeignClients
@SpringBootApplication(scanBasePackages = {"com.liquidnet"}) @SpringBootApplication(scanBasePackages = {"com.liquidnet"})
@MapperScan(basePackages = {"com.liquidnet.service.*.mapper"})
public class ServiceOrderApplication implements CommandLineRunner { public class ServiceOrderApplication implements CommandLineRunner {
@Autowired @Autowired
private Environment environment; private Environment environment;
......
package com.liquidnet.service.order.utils; package com.liquidnet.service.order.utils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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;
import com.liquidnet.commons.lang.util.IdentityUtils; import com.liquidnet.commons.lang.util.IdentityUtils;
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.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.AdamUserMember; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.adam.mapper.AdamUserMapper; import com.liquidnet.service.feign.adam.api.FeignAdamBaseClient;
import com.liquidnet.service.adam.mapper.AdamUserMemberMapper;
import com.liquidnet.service.base.ErrorMapping;
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;
...@@ -27,9 +25,8 @@ public class AdamRedisUtils { ...@@ -27,9 +25,8 @@ public class AdamRedisUtils {
@Autowired @Autowired
public RedisUtil redisUtil; public RedisUtil redisUtil;
@Autowired @Autowired
AdamUserMapper adamUserMapper; @Lazy
@Autowired private FeignAdamBaseClient feignAdamBaseClient;
AdamUserMemberMapper adamUserMemberMapper;
public AdamUserInfoVo getUserInfoVoByUid(String uid) { public AdamUserInfoVo getUserInfoVoByUid(String uid) {
String rk = AdamRedisConst.INFO_USER.concat(uid); String rk = AdamRedisConst.INFO_USER.concat(uid);
...@@ -37,21 +34,11 @@ public class AdamRedisUtils { ...@@ -37,21 +34,11 @@ public class AdamRedisUtils {
AdamUserInfoVo vo = (AdamUserInfoVo) redisUtil.get(rk); AdamUserInfoVo vo = (AdamUserInfoVo) redisUtil.get(rk);
if (null == vo) { if (null == vo) {
log.info("not find value in redis cache, key: {}", rk); log.info("not find value in redis cache, key: {}", rk);
AdamUserInfoDto adamUserInfoDto = adamUserMapper.selectByUid(uid); ResponseDto<AdamUserInfoVo> responseDto = feignAdamBaseClient.getAdamUserInfoByUid(uid);
if (null != adamUserInfoDto) { log.info("feign client response: {}", JSON.toJSONString(responseDto));
vo = AdamUserInfoVo.getNew(); if (null != responseDto && responseDto.isSuccess() && null != responseDto.getData()) {
vo.copy(adamUserInfoDto); log.info("feign client response success");
vo = responseDto.getData();
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); log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
......
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