记得上下班打卡 | 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;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.adam.dto.AdamAddressesParam;
import com.liquidnet.service.adam.dto.vo.AdamAddressesVo;
import com.liquidnet.service.adam.entity.AdamAddresses;
import java.util.List;
/**
* <p>
......@@ -23,5 +23,5 @@ public interface IAdamAddressesService {
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;
import com.liquidnet.service.adam.dto.AdamEntersParam;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import java.util.List;
/**
* <p>
* 入场人 服务类
......@@ -20,5 +22,5 @@ public interface IAdamEntersService {
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 {
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")
@ApiOperation(value = "开放/限制校验证码")
@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:
codec:
class: "org.redisson.codec.JsonJacksonCodec"
transportMode: "NIO"
data:
mongodb:
uri: mongodb://${liquidnet.mongodb.user}:${liquidnet.mongodb.pwd}@${liquidnet.mongodb.host}/?authSource=admin&maxPoolSize=2000&waitQueueMultiple=100
sslEnabled: ${liquidnet.mongodb.sslEnabled}
database: ${liquidnet.mongodb.database}
# data:
# mongodb:
# uri: mongodb://${liquidnet.mongodb.user}:${liquidnet.mongodb.pwd}@${liquidnet.mongodb.host}/?authSource=admin&maxPoolSize=2000&waitQueueMultiple=100
# sslEnabled: ${liquidnet.mongodb.sslEnabled}
# 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:
profiles:
include: common-service #这里加载management相关公共配置
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:
database: 0
port: ${liquidnet.redis.dragon.port}
......
......@@ -70,7 +70,9 @@ spring:
profiles:
include: common-service #这里加载management相关公共配置
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:
database: 15
port: ${liquidnet.redis.port}
......
......@@ -70,7 +70,9 @@ spring:
profiles:
include: common-service #这里加载management相关公共配置
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:
addresses: ${liquidnet.rabbitmq.host}
port: ${liquidnet.rabbitmq.port}
......
......@@ -70,7 +70,9 @@ spring:
profiles:
include: common-service #这里加载management相关公共配置
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:
database: 15
port: ${liquidnet.redis.port}
......
......@@ -33,10 +33,10 @@
<artifactId>liquidnet-common-cache-redisson</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<!-- <dependency>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-starter-data-mongodb</artifactId>-->
<!-- </dependency>-->
<dependency>
<groupId>com.liquidnet</groupId>
......
......@@ -124,7 +124,7 @@ public class AdamAddressesController {
@ApiOperation(value = "获取默认收货地址")
@PostMapping("query/def")
public ResponseDto<AdamAddressesVo> queryDef() {
AdamAddressesVo vo = adamAddressesService.queryDefault(CurrentUtil.getCurrentUid());
AdamAddressesVo vo = adamAddressesService.queryDefault(null, CurrentUtil.getCurrentUid(), true);
if (null != vo) {
vo.setPhone(SensitizeUtil.custom(vo.getPhone(), 3, 4));
}
......
......@@ -180,7 +180,7 @@ public class AdamEntersController {
@ApiOperation(value = "获取默认入场人")
@PostMapping("query/def")
public ResponseDto<AdamEntersVo> queryDef() {
AdamEntersVo vo = adamEntersService.queryDefault(CurrentUtil.getCurrentUid());
AdamEntersVo vo = adamEntersService.queryDefault(null, CurrentUtil.getCurrentUid(), true);
if (null != vo) {
vo.setName(SensitizeUtil.chineseName(vo.getName()));
vo.setIdCard(SensitizeUtil.custom(vo.getIdCard(), 3, 2));
......
......@@ -248,7 +248,7 @@ public class AdamMemberOrderController {
@ApiOperationSupport(order = 6)
@ApiOperation(value = "会员订单详情")
@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);
if (null != mOrderVo) {
AdamMemberVo memberVo = adamRdmService.getMemberVoByMemberId(mOrderVo.getMemberId());
......
package com.liquidnet.service.adam.service.impl;
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.service.IAdamRealNameService;
import com.liquidnet.service.adam.util.QueueUtils;
......@@ -9,7 +8,6 @@ import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service;
import java.util.Arrays;
......@@ -26,8 +24,8 @@ import java.util.List;
@Slf4j
@Service
public class AdamRealNameServiceImpl implements IAdamRealNameService {
@Autowired
MongoTemplate mongoTemplate;
// @Autowired
// MongoTemplate mongoTemplate;
@Autowired
RedisUtil redisUtil;
@Autowired
......@@ -36,9 +34,9 @@ public class AdamRealNameServiceImpl implements IAdamRealNameService {
@Override
// @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public void add(AdamRealName realName) {
long s = System.currentTimeMillis();
mongoTemplate.insert(realName, AdamRealInfoVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// long s = System.currentTimeMillis();
// mongoTemplate.insert(realName, AdamRealInfoVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
List<Object> paramList = Arrays.asList(
realName.getRealNameId(),
......@@ -49,7 +47,7 @@ public class AdamRealNameServiceImpl implements IAdamRealNameService {
realName.getState(),
realName.getCreatedAt()
);
s = System.currentTimeMillis();
long s = System.currentTimeMillis();
queueUtils.sendMsgByRedis(
MQConst.AdamQueue.SQL_UCENTER.getKey(),
SqlMapping.get("adam_real_name.add", paramList.toArray())
......
......@@ -2,7 +2,6 @@ package com.liquidnet.service.adam.service.impl;
import com.liquidnet.common.cache.redis.util.RedisUtil;
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.JsonUtils;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
......@@ -11,15 +10,9 @@ import com.liquidnet.service.adam.service.IAdamUserInfoService;
import com.liquidnet.service.adam.util.QueueUtils;
import com.liquidnet.service.base.SqlMapping;
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 org.bson.Document;
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.util.DigestUtils;
......@@ -39,8 +32,8 @@ import java.util.Map;
@Slf4j
@Service
public class AdamUserInfoServiceImpl implements IAdamUserInfoService {
@Autowired
MongoTemplate mongoTemplate;
// @Autowired
// MongoTemplate mongoTemplate;
@Autowired
AdamRdmService adamRdmService;
@Autowired
......@@ -56,17 +49,17 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService {
userInfoVo.setCreateAt(null);
Document updateDoc = Document.parse(JsonUtils.toJson(userInfoVo));
updateDoc.replace("updatedAt", userInfoVo.getUpdatedAt());
long s = System.currentTimeMillis();
UpdateResult updateResult = mongoTemplate.getCollection(AdamUserInfoVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("uid").is(userInfoVo.getUid())).getQueryObject(),
new Document("$set", updateDoc)
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (updateResult.getModifiedCount() <= 0) {
log.warn("Invalid update MDB.AdamUserInfoVo:{}", JsonUtils.toJson(userInfoVo));
}
// long s = System.currentTimeMillis();
// UpdateResult updateResult = mongoTemplate.getCollection(AdamUserInfoVo.class.getSimpleName()).updateOne(
// Query.query(Criteria.where("uid").is(userInfoVo.getUid())).getQueryObject(),
// new Document("$set", updateDoc)
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (updateResult.getModifiedCount() <= 0) {
// log.warn("Invalid update MDB.AdamUserInfoVo:{}", JsonUtils.toJson(userInfoVo));
// }
s = System.currentTimeMillis();
long s = System.currentTimeMillis();
adamRdmService.setUserInfoVoByUid(userInfoVo.getUid(), userInfoVo);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
......@@ -105,17 +98,18 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService {
// AdamUserInfoVo updateInfoVo = AdamUserInfoVo.getNew();
// updateInfoVo.setUpdatedAt(now);
// updateInfoVo.setMobile(mobile);
long s = System.currentTimeMillis();
Document doc = mongoTemplate.getCollection(AdamUserInfoVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("uid").is(uid)).getQueryObject(),
new Document("$set", new Document("mobile", mobile).append("updatedAt", now)),
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.BEFORE)
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
log.debug("edit mobile - before doc:{}", JsonUtils.toJson(doc));
AdamUserInfoVo beforeUserInfoVo = BsonUtil.toBean(doc, AdamUserInfoVo.class);
// long s = System.currentTimeMillis();
// Document doc = mongoTemplate.getCollection(AdamUserInfoVo.class.getSimpleName()).findOneAndUpdate(
// Query.query(Criteria.where("uid").is(uid)).getQueryObject(),
// new Document("$set", new Document("mobile", mobile).append("updatedAt", now)),
// new FindOneAndUpdateOptions().returnDocument(ReturnDocument.BEFORE)
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// log.debug("edit mobile - before doc:{}", JsonUtils.toJson(doc));
// AdamUserInfoVo beforeUserInfoVo = BsonUtil.toBean(doc, AdamUserInfoVo.class);
AdamUserInfoVo beforeUserInfoVo = adamRdmService.getUserInfoVoByUid(uid);
s = System.currentTimeMillis();
long s = System.currentTimeMillis();
adamRdmService.delUidByMobile(beforeUserInfoVo.getMobile());
adamRdmService.setUidByMobile(mobile, uid);
beforeUserInfoVo.setMobile(mobile);
......
......@@ -2,15 +2,10 @@ package com.liquidnet.service.adam.service.impl;
import com.liquidnet.common.cache.redisson.util.RedisLockUtil;
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.IAdamUserMemberService;
import lombok.extern.slf4j.Slf4j;
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 java.util.regex.Pattern;
......@@ -20,8 +15,8 @@ import static com.liquidnet.service.adam.constant.AdamRedisConst.LOCK_KEY_UMEMBE
@Slf4j
@Service
public class AdamUserMemberServiceImpl implements IAdamUserMemberService {
@Autowired
MongoTemplate mongoTemplate;
// @Autowired
// MongoTemplate mongoTemplate;
@Autowired
AdamRdmService adamRdmService;
......@@ -33,17 +28,17 @@ public class AdamUserMemberServiceImpl implements IAdamUserMemberService {
if (RedisLockUtil.tryLock(LOCK_KEY_UMEMBER_NO, 1, 3)) {
memberMaxNo = adamRdmService.getMaxMemberNo();
if (-1 == memberMaxNo) {
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());
if (null == latestMaxMemberNoVo) {
// 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());
//
// if (null == latestMaxMemberNoVo) {
AdamMemberVo memberVo = adamRdmService.getMemberVoByMemberId(memberId);
adamRdmService.setMaxMemberNo(memberVo.getStartNo());
} else {
adamRdmService.setMaxMemberNo(Integer.parseInt(latestMaxMemberNoVo.getMemberNo()));
}
// } else {
// adamRdmService.setMaxMemberNo(Integer.parseInt(latestMaxMemberNoVo.getMemberNo()));
// }
}
RedisLockUtil.unlock(LOCK_KEY_UMEMBER_NO);
} else {
......
......@@ -9,9 +9,9 @@ eureka:
spring:
cloud:
config:
# uri: http://127.0.0.1:7002/support-config
profile: ${liquidnet.cloudConfig.profile}
name: ${spring.application.name} #默认为spring.application.name
discovery:
enabled: true
service-id: liquidnet-support-config
\ No newline at end of file
uri: http://127.0.0.1:7002/support-config
# profile: ${liquidnet.cloudConfig.profile}
# name: ${spring.application.name} #默认为spring.application.name
# discovery:
# enabled: true
# service-id: liquidnet-support-config
\ 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