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

Commit b0d60088 authored by jiangxiulong's avatar jiangxiulong

Merge remote-tracking branch 'origin/dev' into dev

parents 939f3211 8aa137ae
package com.liquidnet.service.adam.service; package com.liquidnet.service.adam.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.adam.dto.AdamAddressesParam; import com.liquidnet.service.adam.dto.AdamAddressesParam;
import com.liquidnet.service.adam.dto.vo.AdamAddressesVo; import com.liquidnet.service.adam.dto.vo.AdamAddressesVo;
import com.liquidnet.service.adam.entity.AdamAddresses;
import java.util.List;
/** /**
* <p> * <p>
...@@ -23,5 +23,5 @@ public interface IAdamAddressesService { ...@@ -23,5 +23,5 @@ public interface IAdamAddressesService {
void remove(String uid, String addressesId); void remove(String uid, String addressesId);
AdamAddressesVo queryDefault(String uid); AdamAddressesVo queryDefault(List<AdamAddressesVo> vos, String uid, boolean downgrade);
} }
...@@ -3,6 +3,8 @@ package com.liquidnet.service.adam.service; ...@@ -3,6 +3,8 @@ package com.liquidnet.service.adam.service;
import com.liquidnet.service.adam.dto.AdamEntersParam; import com.liquidnet.service.adam.dto.AdamEntersParam;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo; import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import java.util.List;
/** /**
* <p> * <p>
* 入场人 服务类 * 入场人 服务类
...@@ -20,5 +22,5 @@ public interface IAdamEntersService { ...@@ -20,5 +22,5 @@ public interface IAdamEntersService {
void remove(String uid, String entersId); void remove(String uid, String entersId);
AdamEntersVo queryDefault(String uid); AdamEntersVo queryDefault(List<AdamEntersVo> vos, String uid, boolean downgrade);
} }
...@@ -39,6 +39,17 @@ public class AdamSwitchAdminController { ...@@ -39,6 +39,17 @@ public class AdamSwitchAdminController {
return ResponseDto.success(redisUtil.get(AdamRedisConst.SWITCH_BUY_MEMBER)); return ResponseDto.success(redisUtil.get(AdamRedisConst.SWITCH_BUY_MEMBER));
} }
@RequiresPermissions("adam:switch:max:memberno")
@ApiOperation(value = "会员用户最大ID_NO")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "int", name = "opt", value = "会员用户最大ID_NO", example = "15000"),
})
@PostMapping("set/memberno")
public ResponseDto<Object> purchaseStartMemberNo(@Max(1) @Min(0) @RequestParam int opt) {
redisUtil.set(AdamRedisConst.INCR_MEMBER_NO, opt);
return ResponseDto.success(redisUtil.get(AdamRedisConst.INCR_MEMBER_NO));
}
@RequiresPermissions("adam:switch:gray:login") @RequiresPermissions("adam:switch:gray:login")
@ApiOperation(value = "开放/限制校验证码") @ApiOperation(value = "开放/限制校验证码")
@ApiImplicitParams({ @ApiImplicitParams({
......
liquidnet:
info:
port: 9003
context: /service-account
name: liquidnet-service-account
logfile:
path: /data/logs
name: service-account
mysql:
database-name: liquidnet_wac
server:
port: ${liquidnet.info.port}
tomcat:
uri-encoding: UTF-8
servlet:
context-path: ${liquidnet.info.context}
# -----------------------------------------------------------
knife4j:
production: ${liquidnet.knife4j.disable}
basic:
enable: true
username: ${liquidnet.security.username}
password: ${liquidnet.security.password}
# -----------------------------------------------------------
logging:
file:
name: ${liquidnet.logfile.path}/${liquidnet.logfile.name}.log
max-size: 200MB
pattern:
file: '%d{yyyy-MM-dd HH:mm:ss.SSS} [ %-5level] %thread [%logger{96}:%line] - %msg%n'
console: '%d{yyyy-MM-dd HH:mm:ss.SSS} [ %-5level] %thread [%logger{96}:%line] - %msg%n'
rolling-file-name: ${liquidnet.logfile.path}/${liquidnet.logfile.name}-%d{yyyy-MM-dd}.%i.log
level:
root: info
#以下是为指定包设置日志级别
# com:
# liquidnet: info
# -----------------------------------------------------------
eureka:
# client:
# register-with-eureka: true
# fetch-registry: true
# serviceUrl:
# defaultZone: http://${liquidnet.security.username}:${liquidnet.security.password}@${liquidnet.eureka.host}/eureka-server/eureka
instance:
hostname: ${spring.cloud.client.ip-address}
lease-expiration-duration-in-seconds: 15 #服务过期时间配置,超过这个时间没有接收到心跳EurekaServer就会将这个实例剔除
lease-renewal-interval-in-seconds: 5 #服务刷新时间配置,每隔这个时间会主动心跳一次
prefer-ip-address: true
instance-id: ${spring.application.name}:${spring.cloud.client.ip-address}:${spring.application.instance_id:${server.port}}
# -----------------------------------------------------------
#actuator/info
info:
app:
name: ${liquidnet.info.name}
company:
name: lightnet.io
build:
groupId: '@project.groupId@'
artifactId: '@project.artifactId@'
version: '@project.version@'
# -----------------------------------------------------------
pagehelper:
helperDialect: mysql
reasonable: true
supportMethodsArguments: true
params: count=countSql
# -----------------------------------------------------------
xxl:
job:
admin:
addresses: http://127.0.0.1:8090/
accessToken:
executor:
appname: liquidnetTaskService
address:
ip:
port: 9102
logpath: /data/applogs/xxl-job/jobhandler
logretentiondays: 3
# -----------------------------------------------------------
spring:
application:
name: ${liquidnet.info.name}
autoconfigure:
exclude: org.springframework.cloud.bus.BusAutoConfiguration, org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration, org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration, org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration
cloud:
refresh:
extra-refreshable: none
rabbitmq:
addresses: ${liquidnet.rabbitmq.host}
port: ${liquidnet.rabbitmq.port}
username: ${liquidnet.rabbitmq.username}
password: ${liquidnet.rabbitmq.password}
shardingsphere:
props:
sql:
show: false
simple: true
datasource:
names: db0
db0:
type: org.apache.commons.dbcp2.BasicDataSource
# driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://${liquidnet.mysql.urlHostAndPort}/${liquidnet.mysql.database-name}?serverTimezone=UTC&zeroDateTimeBehavior=convertToNull&characterEncoding=utf-8&useSSL=false&autoReconnect=true
username: ${liquidnet.mysql.username}
password: ${liquidnet.mysql.password}
initialSize: 10
maxTotal: 50
maxIdle: 10
# minIdle: 0
timeBetweenEvictionRunsMillis: 6000
validationQuery: select 1
testWhileIdle: true
testOnBorrow: false
poolPreparedStatements: true
maxOpenPreparedStatements: 100
sharding:
tables:
FIN_AC_N02:
actualDataNodes: db${0}.FIN_AC_N02_${0..24}
logicTable: FIN_AC_N02
tableStrategy:
standard:
sharding-column: FA1
precise-algorithm-class-name: com.liquidnet.common.sharding.jdbc.algorithm.ModuloShardingTableAlgorithm
range-algorithm-class-name: com.liquidnet.common.sharding.jdbc.algorithm.ModuloShardingTableAlgorithm
# inline:
# algorithmExpression: FIN_AC_N11_${FA1 % 25}
# shardingColumn: fin_id
# -----------------------------------------------------------
# -----------------------------------------------------------
...@@ -106,11 +106,11 @@ spring: ...@@ -106,11 +106,11 @@ spring:
codec: codec:
class: "org.redisson.codec.JsonJacksonCodec" class: "org.redisson.codec.JsonJacksonCodec"
transportMode: "NIO" transportMode: "NIO"
data: # data:
mongodb: # mongodb:
uri: mongodb://${liquidnet.mongodb.user}:${liquidnet.mongodb.pwd}@${liquidnet.mongodb.host}/?authSource=admin&maxPoolSize=2000&waitQueueMultiple=100 # uri: mongodb://${liquidnet.mongodb.user}:${liquidnet.mongodb.pwd}@${liquidnet.mongodb.host}/?authSource=admin&maxPoolSize=2000&waitQueueMultiple=100
sslEnabled: ${liquidnet.mongodb.sslEnabled} # sslEnabled: ${liquidnet.mongodb.sslEnabled}
database: ${liquidnet.mongodb.database} # database: ${liquidnet.mongodb.database}
# ----------------------------------------------------------- # -----------------------------------------------------------
# ----------------------------------------------------------- # -----------------------------------------------------------
......
liquidnet:
info:
port: 9002
context: /service-bank
name: liquidnet-service-bank
logfile:
path: /data/logs
name: service-bank
config: classpath:logback-spring.xml
file-max-size: 200MB
pattern-file: '%d{yyyy-MM-dd HH:mm:ss.SSS} [ %-5level] %thread [%logger{96}:%line] - %msg%n'
pattern-console: '%d{yyyy-MM-dd HH:mm:ss.SSS} [ %-5level] %thread [%logger{96}:%line] - %msg%n'
pattern-rolling-file-name: ${liquidnet.logfile.path}/${liquidnet.logfile.name}-%d{yyyy-MM-dd}.%i.log
level-root: info
mysql:
database-name: liquidnet_bank
conf:
currencycloud:
email_address: liquidnet@lightnet.io
auth:
environment: demo
login_id: michael.ran@lightnet.io
api_key: 745dbaee98a8b7115df3696b6fa7b48959294c34117e7240ebcd1e07268a9bad
#以下为spring各环境个性配置
spring:
rabbitmq:
addresses: ${liquidnet.rabbitmq.host}
port: ${liquidnet.rabbitmq.port}
username: ${liquidnet.rabbitmq.username}
password: ${liquidnet.rabbitmq.password}
redis:
port: ${liquidnet.redis.port}
host: ${liquidnet.redis.host}
password: ${liquidnet.redis.password}
lettuce:
pool:
max-active: 8
max-wait: -1
max-idle: 8
min-idle: 0
data:
mongodb:
uri: mongodb://${liquidnet.mongodb.host}:${liquidnet.mongodb.port}/${liquidnet.mongodb.gfsdatabasename}
server:
port: ${liquidnet.info.port}
tomcat:
uri-encoding: UTF-8
servlet:
context-path: ${liquidnet.info.context}
# -----------------------------------------------------------
knife4j:
production: ${liquidnet.knife4j.disable}
basic:
enable: true
username: ${liquidnet.security.username}
password: ${liquidnet.security.password}
# -----------------------------------------------------------
logging:
config: ${liquidnet.logfile.config}
# file:
# name: ${liquidnet.logfile.path}/${liquidnet.logfile.name}.log
# max-size: 200MB
# pattern:
# file: '%d{yyyy-MM-dd HH:mm:ss.SSS} [ %-5level] %thread [%logger{96}:%line] - %msg%n'
# console: '%d{yyyy-MM-dd HH:mm:ss.SSS} [ %-5level] %thread [%logger{96}:%line] - %msg%n'
# rolling-file-name: ${liquidnet.logfile.path}/${liquidnet.logfile.name}-%d{yyyy-MM-dd}.%i.log
# level:
# root: info
#以下是为指定包设置日志级别
# com:
# liquidnet: info
# -----------------------------------------------------------
eureka:
# client:
# register-with-eureka: true
# fetch-registry: true
# serviceUrl:
# defaultZone: http://${liquidnet.security.username}:${liquidnet.security.password}@${liquidnet.eureka.host}/eureka-server/eureka
instance:
hostname: ${spring.cloud.client.ip-address}
lease-expiration-duration-in-seconds: 15 #服务过期时间配置,超过这个时间没有接收到心跳EurekaServer就会将这个实例剔除
lease-renewal-interval-in-seconds: 5 #服务刷新时间配置,每隔这个时间会主动心跳一次
prefer-ip-address: true
instance-id: ${spring.application.name}:${spring.cloud.client.ip-address}:${spring.application.instance_id:${server.port}}
# -----------------------------------------------------------
#actuator/info
info:
app:
name: ${liquidnet.info.name}
company:
name: lightnet.io
build:
groupId: '@project.groupId@'
artifactId: '@project.artifactId@'
version: '@project.version@'
# -----------------------------------------------------------
mybatis-plus:
mapper-locations: classpath:com.liquidnet.service.bank.mapper/*Mapper.xml
global-config:
db-config:
logic-delete-field: is_active
logic-delete-value: false
logic-not-delete-value: true
# -----------------------------------------------------------
spring:
application:
name: ${liquidnet.info.name}
autoconfigure:
exclude: org.springframework.cloud.bus.BusAutoConfiguration, org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration
datasource:
name: liquidnet_bus_db
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: org.apache.tomcat.jdbc.pool.DataSource
driver-class-name: com.mysql.cj.jdbc.Driver
filters: stat
maxActive: 20
initialSize: 1
maxWait: 60000
minIdle: 1
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: select 'x'
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxOpenPreparedStatements: 20
mvc:
static-path-pattern: /templates/**
# 定位模板的目录
view:
prefix: classpath:/templates/
suffix: .html
resources:
static-locations: classpath:/templates/,classpath:/static/page
# -----------------------------------------------------------
# -----------------------------------------------------------
...@@ -70,7 +70,9 @@ spring: ...@@ -70,7 +70,9 @@ spring:
profiles: profiles:
include: common-service #这里加载management相关公共配置 include: common-service #这里加载management相关公共配置
autoconfigure: autoconfigure:
exclude: org.springframework.cloud.bus.BusAutoConfiguration,org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration exclude:
- org.springframework.cloud.bus.BusAutoConfiguration
- org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
redis: redis:
database: 0 database: 0
port: ${liquidnet.redis.dragon.port} port: ${liquidnet.redis.dragon.port}
......
...@@ -70,7 +70,9 @@ spring: ...@@ -70,7 +70,9 @@ spring:
profiles: profiles:
include: common-service #这里加载management相关公共配置 include: common-service #这里加载management相关公共配置
autoconfigure: autoconfigure:
exclude: org.springframework.cloud.bus.BusAutoConfiguration,org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration exclude:
- org.springframework.cloud.bus.BusAutoConfiguration
- org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
redis: redis:
database: 15 database: 15
port: ${liquidnet.redis.port} port: ${liquidnet.redis.port}
......
...@@ -70,7 +70,9 @@ spring: ...@@ -70,7 +70,9 @@ spring:
profiles: profiles:
include: common-service #这里加载management相关公共配置 include: common-service #这里加载management相关公共配置
autoconfigure: autoconfigure:
exclude: org.springframework.cloud.bus.BusAutoConfiguration,org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration exclude:
- org.springframework.cloud.bus.BusAutoConfiguration
- org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
rabbitmq: rabbitmq:
addresses: ${liquidnet.rabbitmq.host} addresses: ${liquidnet.rabbitmq.host}
port: ${liquidnet.rabbitmq.port} port: ${liquidnet.rabbitmq.port}
......
...@@ -70,7 +70,9 @@ spring: ...@@ -70,7 +70,9 @@ spring:
profiles: profiles:
include: common-service #这里加载management相关公共配置 include: common-service #这里加载management相关公共配置
autoconfigure: autoconfigure:
exclude: org.springframework.cloud.bus.BusAutoConfiguration,org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration exclude:
- org.springframework.cloud.bus.BusAutoConfiguration
- org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
redis: redis:
database: 15 database: 15
port: ${liquidnet.redis.port} port: ${liquidnet.redis.port}
......
...@@ -33,10 +33,10 @@ ...@@ -33,10 +33,10 @@
<artifactId>liquidnet-common-cache-redisson</artifactId> <artifactId>liquidnet-common-cache-redisson</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <!-- <dependency>-->
<groupId>org.springframework.boot</groupId> <!-- <groupId>org.springframework.boot</groupId>-->
<artifactId>spring-boot-starter-data-mongodb</artifactId> <!-- <artifactId>spring-boot-starter-data-mongodb</artifactId>-->
</dependency> <!-- </dependency>-->
<dependency> <dependency>
<groupId>com.liquidnet</groupId> <groupId>com.liquidnet</groupId>
......
...@@ -124,7 +124,7 @@ public class AdamAddressesController { ...@@ -124,7 +124,7 @@ public class AdamAddressesController {
@ApiOperation(value = "获取默认收货地址") @ApiOperation(value = "获取默认收货地址")
@PostMapping("query/def") @PostMapping("query/def")
public ResponseDto<AdamAddressesVo> queryDef() { public ResponseDto<AdamAddressesVo> queryDef() {
AdamAddressesVo vo = adamAddressesService.queryDefault(CurrentUtil.getCurrentUid()); AdamAddressesVo vo = adamAddressesService.queryDefault(null, CurrentUtil.getCurrentUid(), true);
if (null != vo) { if (null != vo) {
vo.setPhone(SensitizeUtil.custom(vo.getPhone(), 3, 4)); vo.setPhone(SensitizeUtil.custom(vo.getPhone(), 3, 4));
} }
......
...@@ -180,7 +180,7 @@ public class AdamEntersController { ...@@ -180,7 +180,7 @@ public class AdamEntersController {
@ApiOperation(value = "获取默认入场人") @ApiOperation(value = "获取默认入场人")
@PostMapping("query/def") @PostMapping("query/def")
public ResponseDto<AdamEntersVo> queryDef() { public ResponseDto<AdamEntersVo> queryDef() {
AdamEntersVo vo = adamEntersService.queryDefault(CurrentUtil.getCurrentUid()); AdamEntersVo vo = adamEntersService.queryDefault(null, CurrentUtil.getCurrentUid(), true);
if (null != vo) { if (null != vo) {
vo.setName(SensitizeUtil.chineseName(vo.getName())); vo.setName(SensitizeUtil.chineseName(vo.getName()));
vo.setIdCard(SensitizeUtil.custom(vo.getIdCard(), 3, 2)); vo.setIdCard(SensitizeUtil.custom(vo.getIdCard(), 3, 2));
......
...@@ -248,7 +248,7 @@ public class AdamMemberOrderController { ...@@ -248,7 +248,7 @@ public class AdamMemberOrderController {
@ApiOperationSupport(order = 6) @ApiOperationSupport(order = 6)
@ApiOperation(value = "会员订单详情") @ApiOperation(value = "会员订单详情")
@GetMapping("info/{orderNo}") @GetMapping("info/{orderNo}")
public ResponseDto<AdamMemberOrderVo> getMemberOrderList(@NotBlank(message = "订单号不能为空") @PathVariable String orderNo) { public ResponseDto<AdamMemberOrderVo> getMemberOrder(@NotBlank(message = "订单号不能为空") @PathVariable String orderNo) {
AdamMemberOrderVo mOrderVo = adamRdmService.getShotMemberOrderVoByOrderNo(orderNo); AdamMemberOrderVo mOrderVo = adamRdmService.getShotMemberOrderVoByOrderNo(orderNo);
if (null != mOrderVo) { if (null != mOrderVo) {
AdamMemberVo memberVo = adamRdmService.getMemberVoByMemberId(mOrderVo.getMemberId()); AdamMemberVo memberVo = adamRdmService.getMemberVoByMemberId(mOrderVo.getMemberId());
......
package com.liquidnet.service.adam.service.impl; package com.liquidnet.service.adam.service.impl;
import com.liquidnet.common.cache.redis.util.RedisUtil; import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.adam.dto.vo.AdamRealInfoVo;
import com.liquidnet.service.adam.entity.AdamRealName; import com.liquidnet.service.adam.entity.AdamRealName;
import com.liquidnet.service.adam.service.IAdamRealNameService; import com.liquidnet.service.adam.service.IAdamRealNameService;
import com.liquidnet.service.adam.util.QueueUtils; import com.liquidnet.service.adam.util.QueueUtils;
...@@ -9,7 +8,6 @@ import com.liquidnet.service.base.SqlMapping; ...@@ -9,7 +8,6 @@ import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst; import com.liquidnet.service.base.constant.MQConst;
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.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Arrays; import java.util.Arrays;
...@@ -26,8 +24,8 @@ import java.util.List; ...@@ -26,8 +24,8 @@ import java.util.List;
@Slf4j @Slf4j
@Service @Service
public class AdamRealNameServiceImpl implements IAdamRealNameService { public class AdamRealNameServiceImpl implements IAdamRealNameService {
@Autowired // @Autowired
MongoTemplate mongoTemplate; // MongoTemplate mongoTemplate;
@Autowired @Autowired
RedisUtil redisUtil; RedisUtil redisUtil;
@Autowired @Autowired
...@@ -36,9 +34,9 @@ public class AdamRealNameServiceImpl implements IAdamRealNameService { ...@@ -36,9 +34,9 @@ public class AdamRealNameServiceImpl implements IAdamRealNameService {
@Override @Override
// @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) // @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public void add(AdamRealName realName) { public void add(AdamRealName realName) {
long s = System.currentTimeMillis(); // long s = System.currentTimeMillis();
mongoTemplate.insert(realName, AdamRealInfoVo.class.getSimpleName()); // mongoTemplate.insert(realName, AdamRealInfoVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s); // log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
List<Object> paramList = Arrays.asList( List<Object> paramList = Arrays.asList(
realName.getRealNameId(), realName.getRealNameId(),
...@@ -49,7 +47,7 @@ public class AdamRealNameServiceImpl implements IAdamRealNameService { ...@@ -49,7 +47,7 @@ public class AdamRealNameServiceImpl implements IAdamRealNameService {
realName.getState(), realName.getState(),
realName.getCreatedAt() realName.getCreatedAt()
); );
s = System.currentTimeMillis(); long s = System.currentTimeMillis();
queueUtils.sendMsgByRedis( queueUtils.sendMsgByRedis(
MQConst.AdamQueue.SQL_UCENTER.getKey(), MQConst.AdamQueue.SQL_UCENTER.getKey(),
SqlMapping.get("adam_real_name.add", paramList.toArray()) SqlMapping.get("adam_real_name.add", paramList.toArray())
......
...@@ -2,7 +2,6 @@ package com.liquidnet.service.adam.service.impl; ...@@ -2,7 +2,6 @@ package com.liquidnet.service.adam.service.impl;
import com.liquidnet.common.cache.redis.util.RedisUtil; import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.core.JwtValidator; import com.liquidnet.commons.lang.core.JwtValidator;
import com.liquidnet.commons.lang.util.BsonUtil;
import com.liquidnet.commons.lang.util.CollectionUtil; import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.JsonUtils; import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo; import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
...@@ -11,15 +10,9 @@ import com.liquidnet.service.adam.service.IAdamUserInfoService; ...@@ -11,15 +10,9 @@ import com.liquidnet.service.adam.service.IAdamUserInfoService;
import com.liquidnet.service.adam.util.QueueUtils; import com.liquidnet.service.adam.util.QueueUtils;
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.mongodb.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.model.ReturnDocument;
import com.mongodb.client.result.UpdateResult;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.bson.Document; import org.bson.Document;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.DigestUtils; import org.springframework.util.DigestUtils;
...@@ -39,8 +32,8 @@ import java.util.Map; ...@@ -39,8 +32,8 @@ import java.util.Map;
@Slf4j @Slf4j
@Service @Service
public class AdamUserInfoServiceImpl implements IAdamUserInfoService { public class AdamUserInfoServiceImpl implements IAdamUserInfoService {
@Autowired // @Autowired
MongoTemplate mongoTemplate; // MongoTemplate mongoTemplate;
@Autowired @Autowired
AdamRdmService adamRdmService; AdamRdmService adamRdmService;
@Autowired @Autowired
...@@ -56,17 +49,17 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService { ...@@ -56,17 +49,17 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService {
userInfoVo.setCreateAt(null); userInfoVo.setCreateAt(null);
Document updateDoc = Document.parse(JsonUtils.toJson(userInfoVo)); Document updateDoc = Document.parse(JsonUtils.toJson(userInfoVo));
updateDoc.replace("updatedAt", userInfoVo.getUpdatedAt()); updateDoc.replace("updatedAt", userInfoVo.getUpdatedAt());
long s = System.currentTimeMillis(); // long s = System.currentTimeMillis();
UpdateResult updateResult = mongoTemplate.getCollection(AdamUserInfoVo.class.getSimpleName()).updateOne( // UpdateResult updateResult = mongoTemplate.getCollection(AdamUserInfoVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("uid").is(userInfoVo.getUid())).getQueryObject(), // Query.query(Criteria.where("uid").is(userInfoVo.getUid())).getQueryObject(),
new Document("$set", updateDoc) // new Document("$set", updateDoc)
); // );
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s); // log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (updateResult.getModifiedCount() <= 0) { // if (updateResult.getModifiedCount() <= 0) {
log.warn("Invalid update MDB.AdamUserInfoVo:{}", JsonUtils.toJson(userInfoVo)); // log.warn("Invalid update MDB.AdamUserInfoVo:{}", JsonUtils.toJson(userInfoVo));
} // }
s = System.currentTimeMillis(); long s = System.currentTimeMillis();
adamRdmService.setUserInfoVoByUid(userInfoVo.getUid(), userInfoVo); adamRdmService.setUserInfoVoByUid(userInfoVo.getUid(), userInfoVo);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s); log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
...@@ -105,17 +98,18 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService { ...@@ -105,17 +98,18 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService {
// AdamUserInfoVo updateInfoVo = AdamUserInfoVo.getNew(); // AdamUserInfoVo updateInfoVo = AdamUserInfoVo.getNew();
// updateInfoVo.setUpdatedAt(now); // updateInfoVo.setUpdatedAt(now);
// updateInfoVo.setMobile(mobile); // updateInfoVo.setMobile(mobile);
long s = System.currentTimeMillis(); // long s = System.currentTimeMillis();
Document doc = mongoTemplate.getCollection(AdamUserInfoVo.class.getSimpleName()).findOneAndUpdate( // Document doc = mongoTemplate.getCollection(AdamUserInfoVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("uid").is(uid)).getQueryObject(), // Query.query(Criteria.where("uid").is(uid)).getQueryObject(),
new Document("$set", new Document("mobile", mobile).append("updatedAt", now)), // new Document("$set", new Document("mobile", mobile).append("updatedAt", now)),
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.BEFORE) // new FindOneAndUpdateOptions().returnDocument(ReturnDocument.BEFORE)
); // );
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s); // log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
log.debug("edit mobile - before doc:{}", JsonUtils.toJson(doc)); // log.debug("edit mobile - before doc:{}", JsonUtils.toJson(doc));
AdamUserInfoVo beforeUserInfoVo = BsonUtil.toBean(doc, AdamUserInfoVo.class); // AdamUserInfoVo beforeUserInfoVo = BsonUtil.toBean(doc, AdamUserInfoVo.class);
AdamUserInfoVo beforeUserInfoVo = adamRdmService.getUserInfoVoByUid(uid);
s = System.currentTimeMillis(); long s = System.currentTimeMillis();
adamRdmService.delUidByMobile(beforeUserInfoVo.getMobile()); adamRdmService.delUidByMobile(beforeUserInfoVo.getMobile());
adamRdmService.setUidByMobile(mobile, uid); adamRdmService.setUidByMobile(mobile, uid);
beforeUserInfoVo.setMobile(mobile); beforeUserInfoVo.setMobile(mobile);
......
...@@ -2,15 +2,10 @@ package com.liquidnet.service.adam.service.impl; ...@@ -2,15 +2,10 @@ package com.liquidnet.service.adam.service.impl;
import com.liquidnet.common.cache.redisson.util.RedisLockUtil; import com.liquidnet.common.cache.redisson.util.RedisLockUtil;
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.service.AdamRdmService; import com.liquidnet.service.adam.service.AdamRdmService;
import com.liquidnet.service.adam.service.IAdamUserMemberService; import com.liquidnet.service.adam.service.IAdamUserMemberService;
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.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.regex.Pattern; import java.util.regex.Pattern;
...@@ -20,8 +15,8 @@ import static com.liquidnet.service.adam.constant.AdamRedisConst.LOCK_KEY_UMEMBE ...@@ -20,8 +15,8 @@ import static com.liquidnet.service.adam.constant.AdamRedisConst.LOCK_KEY_UMEMBE
@Slf4j @Slf4j
@Service @Service
public class AdamUserMemberServiceImpl implements IAdamUserMemberService { public class AdamUserMemberServiceImpl implements IAdamUserMemberService {
@Autowired // @Autowired
MongoTemplate mongoTemplate; // MongoTemplate mongoTemplate;
@Autowired @Autowired
AdamRdmService adamRdmService; AdamRdmService adamRdmService;
...@@ -33,17 +28,17 @@ public class AdamUserMemberServiceImpl implements IAdamUserMemberService { ...@@ -33,17 +28,17 @@ public class AdamUserMemberServiceImpl implements IAdamUserMemberService {
if (RedisLockUtil.tryLock(LOCK_KEY_UMEMBER_NO, 1, 3)) { if (RedisLockUtil.tryLock(LOCK_KEY_UMEMBER_NO, 1, 3)) {
memberMaxNo = adamRdmService.getMaxMemberNo(); memberMaxNo = adamRdmService.getMaxMemberNo();
if (-1 == memberMaxNo) { if (-1 == memberMaxNo) {
Query query = Query.query(Criteria.where("memberId").is(memberId)).with(Sort.by(Sort.Direction.DESC, "memberNo")).limit(1); // Query query = Query.query(Criteria.where("memberId").is(memberId)).with(Sort.by(Sort.Direction.DESC, "memberNo")).limit(1);
//
AdamUserMemberVo latestMaxMemberNoVo = mongoTemplate.findOne(query, AdamUserMemberVo.class, AdamUserMemberVo.class.getSimpleName()); // AdamUserMemberVo latestMaxMemberNoVo = mongoTemplate.findOne(query, AdamUserMemberVo.class, AdamUserMemberVo.class.getSimpleName());
//
if (null == latestMaxMemberNoVo) { // if (null == latestMaxMemberNoVo) {
AdamMemberVo memberVo = adamRdmService.getMemberVoByMemberId(memberId); AdamMemberVo memberVo = adamRdmService.getMemberVoByMemberId(memberId);
adamRdmService.setMaxMemberNo(memberVo.getStartNo()); adamRdmService.setMaxMemberNo(memberVo.getStartNo());
} else { // } else {
adamRdmService.setMaxMemberNo(Integer.parseInt(latestMaxMemberNoVo.getMemberNo())); // adamRdmService.setMaxMemberNo(Integer.parseInt(latestMaxMemberNoVo.getMemberNo()));
} // }
} }
RedisLockUtil.unlock(LOCK_KEY_UMEMBER_NO); RedisLockUtil.unlock(LOCK_KEY_UMEMBER_NO);
} else { } else {
......
...@@ -9,9 +9,9 @@ eureka: ...@@ -9,9 +9,9 @@ eureka:
spring: spring:
cloud: cloud:
config: config:
# uri: http://127.0.0.1:7002/support-config uri: http://127.0.0.1:7002/support-config
profile: ${liquidnet.cloudConfig.profile} # profile: ${liquidnet.cloudConfig.profile}
name: ${spring.application.name} #默认为spring.application.name # name: ${spring.application.name} #默认为spring.application.name
discovery: # discovery:
enabled: true # enabled: true
service-id: liquidnet-support-config # service-id: liquidnet-support-config
\ No newline at end of file \ No newline at end of file
package com.liquidnet.service.adam.test;
import com.mongodb.BasicDBObject;
import com.mongodb.client.model.IndexModel;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: TestMongodbIndexCreate
* @Package com.liquidnet.service.adam.test
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/6/7 17:02
*/
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class TestMongodbHashIndexCreate {
@Autowired
private MongoTemplate mongoTemplate;
@Test
public void createMongodbIndex(){
String[] collectionNames = {"AdamUserInfoVo","AdamRealInfoVo","AdamThirdPartInfoVo","AdamUserMemberVo","AdamMemberVo"};
HashMap<String,String[]> colNameMap = new HashMap();
colNameMap.put("AdamUserInfoVo", new String[]{"uid","state"});
colNameMap.put("AdamRealInfoVo",new String[]{"uid","state"});
colNameMap.put("AdamThirdPartInfoVo",new String[]{"uid","state"});
colNameMap.put("AdamUserMemberVo",new String[]{"uid"});
colNameMap.put("AdamMemberVo",new String[]{"member_id"});
for(String collectionName:collectionNames){
if(mongoTemplate.collectionExists(collectionName)){
System.out.printf("执行错误!");
return;
}
for(Map.Entry<String, String[]> entry: colNameMap.entrySet()) {
System.out.print(entry.getKey() + ":" + entry.getValue() + "\t");
if(entry.getKey().equalsIgnoreCase(collectionName)){
//需要创建的索引集合
List<IndexModel> indexModels = new ArrayList<>();
String[] indexColArray = entry.getValue();
for(String indexName:indexColArray){
BasicDBObject index1 = new BasicDBObject();
index1.put(indexName,"hashed");
indexModels.add(new IndexModel(index1));
}
mongoTemplate.createCollection(collectionName).createIndexes(indexModels);
}
}
}
}
}
package com.liquidnet.service.adam.test;
import com.mongodb.BasicDBObject;
import com.mongodb.client.model.IndexModel;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: TestMongodbIndexCreate
* @Package com.liquidnet.service.adam.test
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/6/7 17:02
*/
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class TestMongodbIndexCreate {
@Autowired
private MongoTemplate mongoTemplate;
@Test
public void createMongodbIndex(){
String[] collectionNames = {"AdamUserInfoVo","AdamRealInfoVo","AdamThirdPartInfoVo","AdamUserMemberVo","AdamMemberVo"};
HashMap<String,String[]> colNameMap = new HashMap();
colNameMap.put("AdamUserInfoVo", new String[]{"uid","state"});
colNameMap.put("AdamRealInfoVo",new String[]{"uid","state"});
colNameMap.put("AdamThirdPartInfoVo",new String[]{"uid","state"});
colNameMap.put("AdamUserMemberVo",new String[]{"uid"});
colNameMap.put("AdamMemberVo",new String[]{"member_id"});
for(String collectionName:collectionNames){
if(mongoTemplate.collectionExists(collectionName)){
System.out.printf("执行错误!");
return;
}
for(Map.Entry<String, String[]> entry: colNameMap.entrySet()) {
System.out.print(entry.getKey() + ":" + entry.getValue() + "\t");
if(entry.getKey().equalsIgnoreCase(collectionName)){
//需要创建的索引集合
List<IndexModel> indexModels = new ArrayList<>();
String[] indexColArray = entry.getValue();
for(String indexName:indexColArray){
BasicDBObject index1 = new BasicDBObject();
index1.put(indexName,1);
indexModels.add(new IndexModel(index1));
}
mongoTemplate.createCollection(collectionName).createIndexes(indexModels);
}
}
}
}
}
package com.liquidnet.service.adam.test;
import com.mongodb.BasicDBObject;
import com.mongodb.client.model.IndexModel;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.util.ArrayList;
import java.util.List;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: TestMongodbIndexCreate
* @Package com.liquidnet.service.adam.test
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/6/7 17:02
*/
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class TestMongodbIndexCreateExample {
@Autowired
private MongoTemplate mongoTemplate;
@Test
public void createMongodbIndex(){
String[] collectionNames = {"test-mongo"};
// String[] collectionNames = {"AdamUserInfoVo","AdamRealInfoVo","AdamThirdPartInfoVo","AdamUserMemberVo","AdamMemberVo"};
for(String collectionName:collectionNames){
if(mongoTemplate.collectionExists(collectionName)){
System.out.printf("执行错误!");
return;
}
//需要创建的索引集合
List<IndexModel> indexModels = new ArrayList<>();
BasicDBObject index1 = new BasicDBObject();
index1.put("name",1);
indexModels.add(new IndexModel(index1));
BasicDBObject index2 = new BasicDBObject();
index2.put("name",1);
index2.put("age",1);
indexModels.add(new IndexModel((index2)));
mongoTemplate.createCollection(collectionName).createIndexes(indexModels);
}
}
}
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