记得上下班打卡 | 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());
......
......@@ -9,10 +9,6 @@ import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
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 org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
......@@ -27,8 +23,8 @@ import java.util.stream.Collectors;
@Slf4j
@Service
public class AdamRdmService {
@Autowired
MongoTemplate mongoTemplate;
// @Autowired
// MongoTemplate mongoTemplate;
@Autowired
RedisUtil redisUtil;
......@@ -71,17 +67,17 @@ public class AdamRdmService {
String key = AdamRedisConst.IDENTITY_MOBILE.concat(mobile);
long s = System.currentTimeMillis();
String val = (String) redisUtil.get(key);
if (StringUtils.isEmpty(val)) {
Query query = Query.query(Criteria.where("mobile").is(mobile).and("state").is(1));
query.fields().include("uid");
s = System.currentTimeMillis();
AdamUserInfoVo vo = mongoTemplate.findOne(query, AdamUserInfoVo.class, AdamUserInfoVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (null != vo) {
val = vo.getUid();
redisUtil.set(key, vo.getUid());
}
}
// if (StringUtils.isEmpty(val)) {
// Query query = Query.query(Criteria.where("mobile").is(mobile).and("state").is(1));
// query.fields().include("uid");
// s = System.currentTimeMillis();
// AdamUserInfoVo vo = mongoTemplate.findOne(query, AdamUserInfoVo.class, AdamUserInfoVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (null != vo) {
// val = vo.getUid();
// redisUtil.set(key, vo.getUid());
// }
// }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return val;
}
......@@ -98,17 +94,17 @@ public class AdamRdmService {
String key = AdamRedisConst.IDENTITY_THIRD_PARTY + platform + ":" + openId;
long s = System.currentTimeMillis();
String val = (String) redisUtil.get(key);
if (StringUtils.isEmpty(val)) {
Query query = Query.query(Criteria.where("openId").is(openId).and("platform").is(platform).and("state").is(1));
query.fields().include("uid");
s = System.currentTimeMillis();
AdamThirdPartInfoVo vo = mongoTemplate.findOne(query, AdamThirdPartInfoVo.class, AdamThirdPartInfoVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (null != vo) {
val = vo.getUid();
redisUtil.set(key, vo.getUid());
}
}
// if (StringUtils.isEmpty(val)) {
// Query query = Query.query(Criteria.where("openId").is(openId).and("platform").is(platform).and("state").is(1));
// query.fields().include("uid");
// s = System.currentTimeMillis();
// AdamThirdPartInfoVo vo = mongoTemplate.findOne(query, AdamThirdPartInfoVo.class, AdamThirdPartInfoVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (null != vo) {
// val = vo.getUid();
// redisUtil.set(key, vo.getUid());
// }
// }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return val;
}
......@@ -127,14 +123,14 @@ public class AdamRdmService {
String rk = AdamRedisConst.INFO_USER.concat(uid);
long s = System.currentTimeMillis();
AdamUserInfoVo vo = (AdamUserInfoVo) redisUtil.get(rk);
if (null == vo) {
s = System.currentTimeMillis();
vo = mongoTemplate.findOne(Query.query(Criteria.where("uid").is(uid).and("state").is(1)),
AdamUserInfoVo.class, AdamUserInfoVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (null != vo) redisUtil.set(rk, vo);
}
// if (null == vo) {
// s = System.currentTimeMillis();
// vo = mongoTemplate.findOne(Query.query(Criteria.where("uid").is(uid).and("state").is(1)),
// AdamUserInfoVo.class, AdamUserInfoVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
//
// if (null != vo) redisUtil.set(rk, vo);
// }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo;
}
......@@ -153,14 +149,14 @@ public class AdamRdmService {
String rk = AdamRedisConst.INFO_REAL_NAME.concat(uid);
long s = System.currentTimeMillis();
AdamRealInfoVo vo = (AdamRealInfoVo) redisUtil.get(rk);
if (null == vo) {
s = System.currentTimeMillis();
vo = mongoTemplate.findOne(Query.query(Criteria.where("uid").is(uid).and("state").is(1)),
AdamRealInfoVo.class, AdamRealInfoVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (null != vo) redisUtil.set(rk, vo);
}
// if (null == vo) {
// s = System.currentTimeMillis();
// vo = mongoTemplate.findOne(Query.query(Criteria.where("uid").is(uid).and("state").is(1)),
// AdamRealInfoVo.class, AdamRealInfoVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
//
// if (null != vo) redisUtil.set(rk, vo);
// }
if (null != vo) {
vo.setName(SensitizeUtil.chineseName(vo.getName()));
vo.setIdCard(SensitizeUtil.custom(vo.getIdCard(), 3, 2));
......@@ -190,14 +186,14 @@ public class AdamRdmService {
String rk = AdamRedisConst.INFO_THIRD_PARTY.concat(uid);
long s = System.currentTimeMillis();
List<AdamThirdPartInfoVo> thirdPartInfoVos = (List<AdamThirdPartInfoVo>) redisUtil.get(rk);
if (CollectionUtils.isEmpty(thirdPartInfoVos)) {
s = System.currentTimeMillis();
thirdPartInfoVos = mongoTemplate.find(Query.query(Criteria.where("uid").is(uid).and("state").is(1)),
AdamThirdPartInfoVo.class, AdamThirdPartInfoVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (!CollectionUtils.isEmpty(thirdPartInfoVos)) redisUtil.set(rk, thirdPartInfoVos);
}
// if (CollectionUtils.isEmpty(thirdPartInfoVos)) {
// s = System.currentTimeMillis();
// thirdPartInfoVos = mongoTemplate.find(Query.query(Criteria.where("uid").is(uid).and("state").is(1)),
// AdamThirdPartInfoVo.class, AdamThirdPartInfoVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
//
// if (!CollectionUtils.isEmpty(thirdPartInfoVos)) redisUtil.set(rk, thirdPartInfoVos);
// }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return thirdPartInfoVos;
}
......@@ -229,20 +225,24 @@ public class AdamRdmService {
String rk = AdamRedisConst.INFO_ENTERS.concat(uid);
long s = System.currentTimeMillis();
List<AdamEntersVo> vos = (List<AdamEntersVo>) redisUtil.get(rk);
if (CollectionUtils.isEmpty(vos)) {
s = System.currentTimeMillis();
vos = mongoTemplate.find(
Query.query(Criteria.where("uid").is(uid).and("state").is(1)).with(Sort.by(Sort.Direction.DESC, "createdAt")),
AdamEntersVo.class, AdamEntersVo.class.getSimpleName()
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (!CollectionUtils.isEmpty(vos)) redisUtil.set(rk, vos);
}
// if (CollectionUtils.isEmpty(vos)) {
// s = System.currentTimeMillis();
// vos = mongoTemplate.find(
// Query.query(Criteria.where("uid").is(uid).and("state").is(1)).with(Sort.by(Sort.Direction.DESC, "createdAt")),
// AdamEntersVo.class, AdamEntersVo.class.getSimpleName()
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
//
// if (!CollectionUtils.isEmpty(vos)) redisUtil.set(rk, vos);
// }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vos;
}
public AdamEntersVo getEntersVoByUidEntersId(List<AdamEntersVo> vos, String entersId) {
return vos.stream().filter(r -> r.getEntersId().equals(entersId)).findAny().orElse(null);
}
public AdamEntersVo getEntersVoByUidEntersId(String uid, String entersId) {
return this.getEntersVoByUid(uid).stream().filter(r -> r.getEntersId().equals(entersId)).findAny().orElse(null);
}
......@@ -266,20 +266,24 @@ public class AdamRdmService {
String rk = AdamRedisConst.INFO_ADDRESSES.concat(uid);
long s = System.currentTimeMillis();
List<AdamAddressesVo> vos = (List<AdamAddressesVo>) redisUtil.get(rk);
if (CollectionUtils.isEmpty(vos)) {
s = System.currentTimeMillis();
vos = mongoTemplate.find(
Query.query(Criteria.where("uid").is(uid).and("state").is(1)).with(Sort.by(Sort.Direction.DESC, "createdAt")),
AdamAddressesVo.class, AdamAddressesVo.class.getSimpleName()
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (!CollectionUtils.isEmpty(vos)) redisUtil.set(rk, vos);
}
// if (CollectionUtils.isEmpty(vos)) {
// s = System.currentTimeMillis();
// vos = mongoTemplate.find(
// Query.query(Criteria.where("uid").is(uid).and("state").is(1)).with(Sort.by(Sort.Direction.DESC, "createdAt")),
// AdamAddressesVo.class, AdamAddressesVo.class.getSimpleName()
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
//
// if (!CollectionUtils.isEmpty(vos)) redisUtil.set(rk, vos);
// }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vos;
}
public AdamAddressesVo getAddressesVoByUidAddressesId(List<AdamAddressesVo> vos, String addressesId) {
return vos.stream().filter(r -> r.getAddressesId().equals(addressesId)).findAny().orElse(null);
}
public AdamAddressesVo getAddressesVoByUidAddressesId(String uid, String addressesId) {
return this.getAddressesVoByUid(uid).stream().filter(r -> r.getAddressesId().equals(addressesId)).findAny().orElse(null);
}
......@@ -308,13 +312,13 @@ public class AdamRdmService {
String rk = AdamRedisConst.INFO_USER_MEMBER.concat(uid);
long s = System.currentTimeMillis();
AdamUserMemberVo vo = (AdamUserMemberVo) redisUtil.get(rk);
if (null == vo) {
s = System.currentTimeMillis();
vo = mongoTemplate.findOne(Query.query(Criteria.where("uid").is(uid)), AdamUserMemberVo.class, AdamUserMemberVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (null != vo) redisUtil.set(rk, vo);
}
// if (null == vo) {
// s = System.currentTimeMillis();
// vo = mongoTemplate.findOne(Query.query(Criteria.where("uid").is(uid)), AdamUserMemberVo.class, AdamUserMemberVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
//
// if (null != vo) redisUtil.set(rk, vo);
// }
if (null != vo) {
vo.setState(vo.getState() == 1 ? (vo.getExpiryAt().isAfter(LocalDateTime.now()) ? 1 : 2) : vo.getState());
}
......@@ -329,19 +333,21 @@ public class AdamRdmService {
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | <MEMBER_SIMPLE_INFO> */
public AdamMemberSimpleVo getMemberSimpleVo() {
AdamMemberSimpleVo vo = (AdamMemberSimpleVo) redisUtil.get(AdamRedisConst.INFO_MEMBER_SIMPLE);
if (null == vo) {
long s = System.currentTimeMillis();
List<AdamMemberSimpleVo> vos = mongoTemplate.find(
Query.query(Criteria.where("state").is(1)).with(Sort.by(Sort.Direction.ASC, "memberId")),
AdamMemberSimpleVo.class, AdamMemberVo.class.getSimpleName()
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
vo = CollectionUtils.isEmpty(vos) ? null : vos.get(0);
if (null != vo) redisUtil.set(AdamRedisConst.INFO_MEMBER_SIMPLE, vo);
}
AdamMemberSimpleVo vo = (AdamMemberSimpleVo) redisUtil.get(AdamRedisConst.INFO_MEMBER_SIMPLE);
// if (null == vo) {
// long s = System.currentTimeMillis();
// List<AdamMemberSimpleVo> vos = mongoTemplate.find(
// Query.query(Criteria.where("state").is(1)).with(Sort.by(Sort.Direction.ASC, "memberId")),
// AdamMemberSimpleVo.class, AdamMemberVo.class.getSimpleName()
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
//
// vo = CollectionUtils.isEmpty(vos) ? null : vos.get(0);
//
// if (null != vo) redisUtil.set(AdamRedisConst.INFO_MEMBER_SIMPLE, vo);
// }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo;
}
......@@ -355,15 +361,15 @@ public class AdamRdmService {
String key = AdamRedisConst.INFO_MEMBER_CATEGORY.concat(memberId);
long s = System.currentTimeMillis();
AdamMemberVo vo = (AdamMemberVo) redisUtil.get(key);
if (null == vo) {
s = System.currentTimeMillis();
vo = mongoTemplate.findOne(
Query.query(Criteria.where("memberId").is(memberId).and("state").is(1)),
AdamMemberVo.class, AdamMemberVo.class.getSimpleName()
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (null != vo) redisUtil.set(key, vo);
}
// if (null == vo) {
// s = System.currentTimeMillis();
// vo = mongoTemplate.findOne(
// Query.query(Criteria.where("memberId").is(memberId).and("state").is(1)),
// AdamMemberVo.class, AdamMemberVo.class.getSimpleName()
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (null != vo) redisUtil.set(key, vo);
// }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo;
}
......@@ -382,22 +388,21 @@ public class AdamRdmService {
String key = AdamRedisConst.INFO_MEMBER_PRICE.concat(memberId);
long s = System.currentTimeMillis();
List<AdamMemberPriceVo> vos = (List<AdamMemberPriceVo>) redisUtil.get(key);
if (CollectionUtils.isEmpty(vos)) {
s = System.currentTimeMillis();
vos = mongoTemplate.find(
Query.query(Criteria.where("memberId").is(memberId).and("state").is(1)),
AdamMemberPriceVo.class, AdamMemberPriceVo.class.getSimpleName()
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (!CollectionUtils.isEmpty(vos)) redisUtil.set(key, vos);
}
// if (CollectionUtils.isEmpty(vos)) {
// s = System.currentTimeMillis();
// vos = mongoTemplate.find(
// Query.query(Criteria.where("memberId").is(memberId).and("state").is(1)),
// AdamMemberPriceVo.class, AdamMemberPriceVo.class.getSimpleName()
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
//
// if (!CollectionUtils.isEmpty(vos)) redisUtil.set(key, vos);
// }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vos;
}
public AdamMemberPriceVo getMemberPriceVoByPriceId(String memberId, String memberPriceId) {
long s = System.currentTimeMillis();
List<AdamMemberPriceVo> vos = this.getMemberPriceVoByMemberId(memberId);
if (!CollectionUtils.isEmpty(vos)) {
// for (AdamMemberPriceVo r : vos) {
......@@ -459,16 +464,16 @@ public class AdamRdmService {
String key = AdamRedisConst.SHOT_MEMBER_ORDER + orderNo;
long s = System.currentTimeMillis();
AdamMemberOrderVo vo = (AdamMemberOrderVo) redisUtil.get(key);
if (null == vo) {
s = System.currentTimeMillis();
vo = mongoTemplate.findOne(
Query.query(Criteria.where("orderNo").is(orderNo)),
AdamMemberOrderVo.class, AdamMemberOrderVo.class.getSimpleName()
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (null != vo) redisUtil.set(key, vo);
}
// if (null == vo) {
// s = System.currentTimeMillis();
// vo = mongoTemplate.findOne(
// Query.query(Criteria.where("orderNo").is(orderNo)),
// AdamMemberOrderVo.class, AdamMemberOrderVo.class.getSimpleName()
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
//
// if (null != vo) redisUtil.set(key, vo);
// }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo;
}
......@@ -502,15 +507,15 @@ public class AdamRdmService {
String key = AdamRedisConst.INFO_MEMBER_CODE.concat(memberCode);
long s = System.currentTimeMillis();
AdamMemberCodeVo vo = (AdamMemberCodeVo) redisUtil.get(key);
if (null == vo) {
s = System.currentTimeMillis();
vo = mongoTemplate.findOne(
Query.query(Criteria.where("code").is(memberCode)),
AdamMemberCodeVo.class, AdamMemberCodeVo.class.getSimpleName()
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (null != vo && vo.getState() == 0) redisUtil.set(AdamRedisConst.INFO_MEMBER_CODE.concat(memberCode), vo);
}
// if (null == vo) {
// s = System.currentTimeMillis();
// vo = mongoTemplate.findOne(
// Query.query(Criteria.where("code").is(memberCode)),
// AdamMemberCodeVo.class, AdamMemberCodeVo.class.getSimpleName()
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (null != vo && vo.getState() == 0) redisUtil.set(AdamRedisConst.INFO_MEMBER_CODE.concat(memberCode), vo);
// }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo;
}
......@@ -525,14 +530,16 @@ public class AdamRdmService {
* Temporarily connect Mongo
*/
public AdamMemberCodeVo getMemberCodeVoByBuyOrderNo(String buyOrderNo) {
Query query = Query.query(Criteria.where("buyOrderNo").is(buyOrderNo));
query.fields().include("code").include("memberNo").include("state").include("type");
long s = System.currentTimeMillis();
AdamMemberCodeVo vo = mongoTemplate.findOne(
query, AdamMemberCodeVo.class, AdamMemberCodeVo.class.getSimpleName()
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
return vo;
// Query query = Query.query(Criteria.where("buyOrderNo").is(buyOrderNo));
// query.fields().include("code").include("memberNo").include("state").include("type");
// long s = System.currentTimeMillis();
// AdamMemberCodeVo vo = mongoTemplate.findOne(
// query, AdamMemberCodeVo.class, AdamMemberCodeVo.class.getSimpleName()
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// return vo;
// TODO: 2021/7/29 降级查取,此处只用于用户购买会员码时使用
return AdamMemberCodeVo.getNew();
}
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | TAGS:List<AdamTagVo> */
......
package com.liquidnet.service.adam.service.impl;
import com.liquidnet.common.exception.LiquidnetServiceException;
import com.liquidnet.commons.lang.util.*;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.adam.dto.AdamAddressesParam;
import com.liquidnet.service.adam.dto.vo.AdamAddressesVo;
import com.liquidnet.service.adam.service.AdamRdmService;
......@@ -10,16 +12,9 @@ import com.liquidnet.service.adam.util.QueueUtils;
import com.liquidnet.service.base.ErrorMapping;
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.DeleteResult;
import lombok.extern.slf4j.Slf4j;
import org.bson.Document;
import org.springframework.beans.BeanUtils;
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.CollectionUtils;
......@@ -39,8 +34,8 @@ import java.util.stream.IntStream;
@Slf4j
@Service
public class AdamAddressesServiceImpl implements IAdamAddressesService {
@Autowired
MongoTemplate mongoTemplate;
// @Autowired
// MongoTemplate mongoTemplate;
@Autowired
QueueUtils queueUtils;
@Autowired
......@@ -62,11 +57,11 @@ public class AdamAddressesServiceImpl implements IAdamAddressesService {
vo.setState(1);
vo.setCreatedAt(now);
long s = System.currentTimeMillis();
mongoTemplate.insert(vo, AdamAddressesVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// long s = System.currentTimeMillis();
// mongoTemplate.insert(vo, AdamAddressesVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
s = System.currentTimeMillis();
long s = System.currentTimeMillis();
adamRdmService.delAddressesVoByUid(currentUid);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
......@@ -91,39 +86,45 @@ public class AdamAddressesServiceImpl implements IAdamAddressesService {
// AdamAddressesVo unDeaultVo = AdamAddressesVo.getNew();
// unDeaultVo.setIsDefault(false);
// unDeaultVo.setUpdatedAt(now);
long s = System.currentTimeMillis();
Document doc = mongoTemplate.getCollection(AdamAddressesVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("uid").is(uid).and("state").is(1).and("isDefault").is(true)).getQueryObject(),
new Document("$set", new Document("isDefault", false).append("updatedAt", now)),
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (null != doc) {
AdamAddressesVo unDefaultVoAfter = BsonUtil.toBean(doc, AdamAddressesVo.class);
// long s = System.currentTimeMillis();
// Document doc = mongoTemplate.getCollection(AdamAddressesVo.class.getSimpleName()).findOneAndUpdate(
// Query.query(Criteria.where("uid").is(uid).and("state").is(1).and("isDefault").is(true)).getQueryObject(),
// new Document("$set", new Document("isDefault", false).append("updatedAt", now)),
// new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (null != doc) {
// AdamAddressesVo unDefaultVoAfter = BsonUtil.toBean(doc, AdamAddressesVo.class);
AdamAddressesVo defaultVo = queryDefault(vos, uid, false);
defaultVo.setIsDefault(false);
defaultVo.setUpdatedAt(now);
toMqObjs.add(new Object[]{false, now, unDefaultVoAfter.getAddressesId()});
toMqObjs.add(new Object[]{false, now, defaultVo.getAddressesId()});
vos = this.collectionProcess(vos, unDefaultVoAfter.getAddressesId(), unDefaultVoAfter);
}
this.collectionProcess(vos, defaultVo.getAddressesId(), defaultVo);
// }
}
{// 设置新默认
// AdamAddressesVo defaultVo = AdamAddressesVo.getNew();
// defaultVo.setIsDefault(true);
// defaultVo.setUpdatedAt(now);
long s = System.currentTimeMillis();
Document doc = mongoTemplate.getCollection(AdamAddressesVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("uid").is(uid).and("addressesId").is(addressesId)).getQueryObject(),
new Document("$set", new Document("isDefault", true).append("updatedAt", now)),
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (null != doc) {
AdamAddressesVo defaultVoAfter = BsonUtil.toBean(doc, AdamAddressesVo.class);
// long s = System.currentTimeMillis();
// Document doc = mongoTemplate.getCollection(AdamAddressesVo.class.getSimpleName()).findOneAndUpdate(
// Query.query(Criteria.where("uid").is(uid).and("addressesId").is(addressesId)).getQueryObject(),
// new Document("$set", new Document("isDefault", true).append("updatedAt", now)),
// new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (null != doc) {
// AdamAddressesVo defaultVoAfter = BsonUtil.toBean(doc, AdamAddressesVo.class);
AdamAddressesVo defaultVoAfter = adamRdmService.getAddressesVoByUidAddressesId(vos, addressesId);
defaultVoAfter.setIsDefault(true);
defaultVoAfter.setUpdatedAt(now);
toMqObjs.add(new Object[]{true, now, addressesId});
vos = this.collectionProcess(vos, defaultVoAfter.getAddressesId(), defaultVoAfter);
}
this.collectionProcess(vos, defaultVoAfter.getAddressesId(), defaultVoAfter);
// }
}
if (!CollectionUtils.isEmpty(toMqObjs)) {
long s = System.currentTimeMillis();
......@@ -144,20 +145,29 @@ public class AdamAddressesServiceImpl implements IAdamAddressesService {
String currentUid = CurrentUtil.getCurrentUid();
LocalDateTime now = LocalDateTime.now();
AdamAddressesVo updateVo = AdamAddressesVo.getNew();
BeanUtils.copyProperties(parameter, updateVo);
long s = System.currentTimeMillis();
Document doc = mongoTemplate.getCollection(AdamAddressesVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("uid").is(currentUid).and("addressesId").is(parameter.getAddressesId())).getQueryObject(),
new Document("$set", Document.parse(JsonUtils.toJson(updateVo)).append("updatedAt", now)),
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (null != doc) {
updateVo = BsonUtil.toBean(doc, AdamAddressesVo.class);
List<AdamAddressesVo> vos = adamRdmService.getAddressesVoByUid(currentUid);
s = System.currentTimeMillis();
AdamAddressesVo updateVo = adamRdmService.getAddressesVoByUidAddressesId(vos, parameter.getAddressesId());
updateVo.setName(parameter.getName());
updateVo.setPhone(parameter.getPhone());
updateVo.setProvince(parameter.getProvince());
updateVo.setCity(parameter.getCity());
updateVo.setCounty(parameter.getCounty());
updateVo.setAddress(parameter.getAddress());
updateVo.setUpdatedAt(now);
// AdamAddressesVo updateVo = AdamAddressesVo.getNew();
// BeanUtils.copyProperties(parameter, updateVo);
// long s = System.currentTimeMillis();
// Document doc = mongoTemplate.getCollection(AdamAddressesVo.class.getSimpleName()).findOneAndUpdate(
// Query.query(Criteria.where("uid").is(currentUid).and("addressesId").is(parameter.getAddressesId())).getQueryObject(),
// new Document("$set", Document.parse(JsonUtils.toJson(updateVo)).append("updatedAt", now)),
// new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (null != doc) {
// updateVo = BsonUtil.toBean(doc, AdamAddressesVo.class);
//
// List<AdamAddressesVo> vos = adamRdmService.getAddressesVoByUid(currentUid);
long s = System.currentTimeMillis();
adamRdmService.setAddressesVoByUid(updateVo.getUid(), this.collectionProcess(vos, parameter.getAddressesId(), updateVo));
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
......@@ -169,13 +179,13 @@ public class AdamAddressesServiceImpl implements IAdamAddressesService {
)
);
log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s);
}
// }
}
@Override
// @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public void remove(String uid, String addressesId) {
String currentUid = CurrentUtil.getCurrentUid();
// String currentUid = CurrentUtil.getCurrentUid();
LocalDateTime now = LocalDateTime.now();
// AdamAddressesVo removeVo = AdamAddressesVo.getNew();
......@@ -184,14 +194,14 @@ public class AdamAddressesServiceImpl implements IAdamAddressesService {
// removeVo.setUpdatedAt(now);
// removeVo.setDeletedAt(now);
long s = System.currentTimeMillis();
DeleteResult deleteResult = mongoTemplate.remove(
Query.query(Criteria.where("uid").is(currentUid).and("addressesId").is(addressesId)), AdamAddressesVo.class.getSimpleName()
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// long s = System.currentTimeMillis();
// DeleteResult deleteResult = mongoTemplate.remove(
// Query.query(Criteria.where("uid").is(currentUid).and("addressesId").is(addressesId)), AdamAddressesVo.class.getSimpleName()
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
List<AdamAddressesVo> vos = adamRdmService.getAddressesVoByUid(uid);
vos.removeIf(r -> r.getAddressesId().equals(addressesId));
s = System.currentTimeMillis();
long s = System.currentTimeMillis();
adamRdmService.setAddressesVoByUid(uid, vos);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
......@@ -204,17 +214,21 @@ public class AdamAddressesServiceImpl implements IAdamAddressesService {
}
@Override
public AdamAddressesVo queryDefault(String uid) {
List<AdamAddressesVo> vos = adamRdmService.getAddressesVoByUid(uid);
public AdamAddressesVo queryDefault(List<AdamAddressesVo> vos, String uid, boolean downgrade) {
if (CollectionUtils.isEmpty(vos)) {
vos = adamRdmService.getAddressesVoByUid(uid);
}
if (!CollectionUtils.isEmpty(vos)) {
AdamAddressesVo defaultVo = null;
for (AdamAddressesVo vo : vos) {
if (vo.getIsDefault()) {
return vo;
}
if (downgrade) {
defaultVo = null == defaultVo ? vo :
vo.getCreatedAt().compareTo(defaultVo.getCreatedAt()) > 0 ? vo : defaultVo;
}
}
return defaultVo;
}
return null;
......@@ -228,18 +242,18 @@ public class AdamAddressesServiceImpl implements IAdamAddressesService {
.filter(i -> vos.get(i).getAddressesId().equals(replaceId))
.findFirst().orElse(-1);
if (idx == -1) {
adamRdmService.delAddressesVoByUid(updateVo.getUid());
List<AdamAddressesVo> addressesVos = adamRdmService.getAddressesVoByUid(updateVo.getUid());
idx = IntStream.range(0, vos.size())
.filter(i -> addressesVos.get(i).getAddressesId().equals(replaceId))
.findFirst().orElse(-1);
if (idx == -1) {
// adamRdmService.delAddressesVoByUid(updateVo.getUid());
//
// List<AdamAddressesVo> addressesVos = adamRdmService.getAddressesVoByUid(updateVo.getUid());
//
// idx = IntStream.range(0, vos.size())
// .filter(i -> addressesVos.get(i).getAddressesId().equals(replaceId))
// .findFirst().orElse(-1);
//
// if (idx == -1) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("10018");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
// }
}
vos.set(idx, updateVo);
log.debug("#collect.process耗时:{}ms", System.currentTimeMillis() - s);
......
......@@ -2,7 +2,6 @@ package com.liquidnet.service.adam.service.impl;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.service.adam.dto.vo.AdamCollectBaseVo;
import com.liquidnet.service.adam.dto.vo.AdamCollectInfoVo;
import com.liquidnet.service.adam.dto.vo.AdamCollectVo;
import com.liquidnet.service.adam.service.AdamRdmService;
import com.liquidnet.service.adam.service.IAdamCollectionService;
......@@ -11,22 +10,12 @@ import com.liquidnet.service.adam.util.QueueUtils;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import com.mongodb.client.result.DeleteResult;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
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.util.CollectionUtils;
import java.time.LocalDateTime;
import java.util.LinkedList;
import java.util.List;
/**
* <p>
......@@ -39,8 +28,8 @@ import java.util.List;
@Slf4j
@Service
public class AdamCollectionServiceImpl implements IAdamCollectionService {
@Autowired
MongoTemplate mongoTemplate;
// @Autowired
// MongoTemplate mongoTemplate;
@Autowired
QueueUtils queueUtils;
@Autowired
......@@ -53,7 +42,7 @@ public class AdamCollectionServiceImpl implements IAdamCollectionService {
vo.setState(1);
vo.setCreatedAt(now);
mongoTemplate.insert(vo, AdamCollectBaseVo.class.getSimpleName());
// mongoTemplate.insert(vo, AdamCollectBaseVo.class.getSimpleName());
queueUtils.sendMsgByRedis(
MQConst.AdamQueue.SQL_UCENTER.getKey(),
......@@ -65,21 +54,22 @@ public class AdamCollectionServiceImpl implements IAdamCollectionService {
@Override
public boolean exists(String uid, String type, String contentId) {
return mongoTemplate.exists(
Query.query(Criteria.where("uid").is(uid).and("contentId").is(contentId).and("type").is(type).and("state").is(1)),
AdamCollectBaseVo.class.getSimpleName()
);
return false;
// return mongoTemplate.exists(
// Query.query(Criteria.where("uid").is(uid).and("contentId").is(contentId).and("type").is(type).and("state").is(1)),
// AdamCollectBaseVo.class.getSimpleName()
// );
}
@Override
public void del(String uid, String type, String... contentIds) {
LocalDateTime now = LocalDateTime.now();
DeleteResult deleteResult = mongoTemplate.remove(
Query.query(Criteria.where("uid").is(uid).and("type").is(type).and("contentId").in(contentIds)),
AdamCollectBaseVo.class.getSimpleName()
);
if (deleteResult.getDeletedCount() > 0) {
// DeleteResult deleteResult = mongoTemplate.remove(
// Query.query(Criteria.where("uid").is(uid).and("type").is(type).and("contentId").in(contentIds)),
// AdamCollectBaseVo.class.getSimpleName()
// );
// if (deleteResult.getDeletedCount() > 0) {
LinkedList<Object[]> toMqObjs = CollectionUtil.linkedListObjectArr();
for (String c : contentIds) {
toMqObjs.add(new Object[]{now, uid, c});
......@@ -88,86 +78,88 @@ public class AdamCollectionServiceImpl implements IAdamCollectionService {
MQConst.AdamQueue.SQL_UCENTER.getKey(),
SqlMapping.get("adam_collection.del", toMqObjs)
);
}
// }
}
@Override
public boolean queryState(String uid, String type, String contentId) {
return mongoTemplate.exists(
Query.query(Criteria.where("uid").is(uid).and("contentId").is(contentId).and("type").is(type).and("state").is(1)),
AdamCollectBaseVo.class.getSimpleName()
);
return false;
// return mongoTemplate.exists(
// Query.query(Criteria.where("uid").is(uid).and("contentId").is(contentId).and("type").is(type).and("state").is(1)),
// AdamCollectBaseVo.class.getSimpleName()
// );
}
@Override
public PagedResult<AdamCollectVo> queryPage(String uid, String type, int pageNo, int pageSize) {
Query query = Query.query(Criteria.where("uid").is(uid).and("type").is(type).and("state").is(1));
long s = System.currentTimeMillis();
long count = mongoTemplate.count(query, AdamCollectBaseVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
PagedResult<AdamCollectVo> pagedResult = ObjectUtil.getAdamCollectVoPagedResult();
if (count > 0) {
Pageable pageable = PageRequest.of(pageNo - 1, pageSize, Sort.by(Sort.Direction.DESC, "createdAt"));
query.with(pageable);
s = System.currentTimeMillis();
List<AdamCollectVo> collectVoList = mongoTemplate.find(query, AdamCollectVo.class, AdamCollectBaseVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (!CollectionUtils.isEmpty(collectVoList)) {
// try {
// String[] contentIds = collectVoList.stream().map(AdamCollectVo::getContentId).toArray(a -> new String[collectVoList.size()]);
// Query query = Query.query(Criteria.where("uid").is(uid).and("type").is(type).and("state").is(1));
//
// ResponseDto<List<KylinPerformanceVo>> performanceVoListDto = feignKylinPerformanceClient.performanceList(contentIds);
// long s = System.currentTimeMillis();
// long count = mongoTemplate.count(query, AdamCollectBaseVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
//
// if (performanceVoListDto.isSuccess()) {
// List<KylinPerformanceVo> kylinPerformanceVoList = performanceVoListDto.getData();
// PagedResult<AdamCollectVo> pagedResult = ObjectUtil.getAdamCollectVoPagedResult();
// if (count > 0) {
// Pageable pageable = PageRequest.of(pageNo - 1, pageSize, Sort.by(Sort.Direction.DESC, "createdAt"));
//
// collectVoList.forEach(v -> {
// kylinPerformanceVoList.forEach(vl -> {
// if (vl.getPerformancesId().equals(v.getContentId())) {
// AdamCollectInfoVo collectInfoVo = AdamCollectInfoVo.getNew();
// BeanUtils.copyProperties(vl, collectInfoVo);
// v.setContentInfo(collectInfoVo);
// query.with(pageable);
//
// s = System.currentTimeMillis();
// List<AdamCollectVo> collectVoList = mongoTemplate.find(query, AdamCollectVo.class, AdamCollectBaseVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
//
// if (!CollectionUtils.isEmpty(collectVoList)) {
//// try {
//// String[] contentIds = collectVoList.stream().map(AdamCollectVo::getContentId).toArray(a -> new String[collectVoList.size()]);
////
//// ResponseDto<List<KylinPerformanceVo>> performanceVoListDto = feignKylinPerformanceClient.performanceList(contentIds);
////
//// if (performanceVoListDto.isSuccess()) {
//// List<KylinPerformanceVo> kylinPerformanceVoList = performanceVoListDto.getData();
////
//// collectVoList.forEach(v -> {
//// kylinPerformanceVoList.forEach(vl -> {
//// if (vl.getPerformancesId().equals(v.getContentId())) {
//// AdamCollectInfoVo collectInfoVo = AdamCollectInfoVo.getNew();
//// BeanUtils.copyProperties(vl, collectInfoVo);
//// v.setContentInfo(collectInfoVo);
//// }
//// });
//// });
//// } else {
//// log.info("Failed:{}.API.performanceList(...) for AdamCollection:{}", feignKylinPerformanceClient.getClass().getSimpleName(), performanceVoListDto.toJson());
//// }
//// } catch (Exception e) {
//// log.error("Exception:{}.API.performanceList(...) for AdamCollection", feignKylinPerformanceClient.getClass().getSimpleName(), e);
//// }
// s = System.currentTimeMillis();
// collectVoList.forEach(r -> {
// AdamCollectInfoVo vo = AdamCollectInfoVo.getNew();
// KylinPerformanceVo performanceVo = adamRdmService.kylinPerformanceVo(r.getContentId());
// if (null != performanceVo) {
//// BeanUtils.copyProperties(performanceVo, vo);
// vo.setPerformancesId(performanceVo.getPerformancesId());
// vo.setTitle(performanceVo.getTitle());
// vo.setImgPoster(performanceVo.getImgPoster());
// vo.setType(performanceVo.getType());
// vo.setTimeStart(performanceVo.getTimeStart());
// vo.setPrice(performanceVo.getPrice());
// vo.setCityName(performanceVo.getCityName());
// vo.setFieldName(performanceVo.getFieldName());
// vo.setIsMember(performanceVo.getIsMember());
// vo.setIsExclusive(performanceVo.getIsExclusive());
// vo.setIsDiscount(performanceVo.getIsDiscount());
// vo.setIsAdvance(performanceVo.getIsAdvance());
// }
// r.setContentInfo(vo);
// });
// });
// } else {
// log.info("Failed:{}.API.performanceList(...) for AdamCollection:{}", feignKylinPerformanceClient.getClass().getSimpleName(), performanceVoListDto.toJson());
// log.debug("#COL.RDS.K耗时:{}ms", System.currentTimeMillis() - s);
// }
// } catch (Exception e) {
// log.error("Exception:{}.API.performanceList(...) for AdamCollection", feignKylinPerformanceClient.getClass().getSimpleName(), e);
//
// pagedResult.setList(collectVoList).setTotal(count, pageSize);
// }
s = System.currentTimeMillis();
collectVoList.forEach(r -> {
AdamCollectInfoVo vo = AdamCollectInfoVo.getNew();
KylinPerformanceVo performanceVo = adamRdmService.kylinPerformanceVo(r.getContentId());
if (null != performanceVo) {
// BeanUtils.copyProperties(performanceVo, vo);
vo.setPerformancesId(performanceVo.getPerformancesId());
vo.setTitle(performanceVo.getTitle());
vo.setImgPoster(performanceVo.getImgPoster());
vo.setType(performanceVo.getType());
vo.setTimeStart(performanceVo.getTimeStart());
vo.setPrice(performanceVo.getPrice());
vo.setCityName(performanceVo.getCityName());
vo.setFieldName(performanceVo.getFieldName());
vo.setIsMember(performanceVo.getIsMember());
vo.setIsExclusive(performanceVo.getIsExclusive());
vo.setIsDiscount(performanceVo.getIsDiscount());
vo.setIsAdvance(performanceVo.getIsAdvance());
}
r.setContentInfo(vo);
});
log.debug("#COL.RDS.K耗时:{}ms", System.currentTimeMillis() - s);
}
pagedResult.setList(collectVoList).setTotal(count, pageSize);
}
return pagedResult;
//
// return pagedResult;
return ObjectUtil.getAdamCollectVoPagedResult();
}
}
package com.liquidnet.service.adam.service.impl;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.service.adam.dto.vo.AdamCollectInfoVo;
import com.liquidnet.service.adam.dto.vo.AdamDisposedBaseVo;
import com.liquidnet.service.adam.dto.vo.AdamDisposedUserVo;
import com.liquidnet.service.adam.dto.vo.AdamDisposedVo;
......@@ -12,21 +11,12 @@ import com.liquidnet.service.adam.util.QueueUtils;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import com.mongodb.client.result.DeleteResult;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
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.util.CollectionUtils;
import java.time.LocalDateTime;
import java.util.LinkedList;
import java.util.List;
/**
* <p>
......@@ -39,8 +29,8 @@ import java.util.List;
@Slf4j
@Service
public class AdamDisposedServiceImpl implements IAdamDisposedService {
@Autowired
MongoTemplate mongoTemplate;
// @Autowired
// MongoTemplate mongoTemplate;
@Autowired
QueueUtils queueUtils;
@Autowired
......@@ -58,7 +48,7 @@ public class AdamDisposedServiceImpl implements IAdamDisposedService {
vo.setState(1);
vo.setCreatedAt(now);
mongoTemplate.insert(vo, AdamDisposedBaseVo.class.getSimpleName());
// mongoTemplate.insert(vo, AdamDisposedBaseVo.class.getSimpleName());
queueUtils.sendMsgByRedis(
MQConst.AdamQueue.SQL_UCENTER.getKey(),
......@@ -70,21 +60,22 @@ public class AdamDisposedServiceImpl implements IAdamDisposedService {
@Override
public boolean exists(String uid, String type, String contentId) {
return mongoTemplate.exists(
Query.query(Criteria.where("uid").is(uid).and("contentId").is(contentId).and("type").is(type).and("state").is(1)),
AdamDisposedBaseVo.class.getSimpleName()
);
return false;
// return mongoTemplate.exists(
// Query.query(Criteria.where("uid").is(uid).and("contentId").is(contentId).and("type").is(type).and("state").is(1)),
// AdamDisposedBaseVo.class.getSimpleName()
// );
}
@Override
public void del(String uid, String type, String... contentIds) {
LocalDateTime now = LocalDateTime.now();
DeleteResult deleteResult = mongoTemplate.remove(
Query.query(Criteria.where("uid").is(uid).and("type").is(type).and("contentId").in(contentIds)),
AdamDisposedBaseVo.class.getSimpleName()
);
if (deleteResult.getDeletedCount() > 0) {
// DeleteResult deleteResult = mongoTemplate.remove(
// Query.query(Criteria.where("uid").is(uid).and("type").is(type).and("contentId").in(contentIds)),
// AdamDisposedBaseVo.class.getSimpleName()
// );
// if (deleteResult.getDeletedCount() > 0) {
LinkedList<Object[]> toMqObjs = CollectionUtil.linkedListObjectArr();
for (String c : contentIds) {
toMqObjs.add(new Object[]{now, uid, c});
......@@ -93,120 +84,123 @@ public class AdamDisposedServiceImpl implements IAdamDisposedService {
MQConst.AdamQueue.SQL_UCENTER.getKey(),
SqlMapping.get("adam_disposed.del", toMqObjs)
);
}
// }
}
@Override
public boolean queryState(String uid, String type, String contentId) {
return mongoTemplate.exists(
Query.query(Criteria.where("uid").is(uid).and("contentId").is(contentId).and("type").is(type).and("state").is(1)),
AdamDisposedBaseVo.class.getSimpleName()
);
return false;
// return mongoTemplate.exists(
// Query.query(Criteria.where("uid").is(uid).and("contentId").is(contentId).and("type").is(type).and("state").is(1)),
// AdamDisposedBaseVo.class.getSimpleName()
// );
}
@Override
public PagedResult<AdamDisposedVo> queryPage(String uid, String type, int pageNo, int pageSize) {
Query query = Query.query(Criteria.where("uid").is(uid).and("type").is(type).and("state").is(1));
long s = System.currentTimeMillis();
long count = mongoTemplate.count(query, AdamDisposedBaseVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
PagedResult<AdamDisposedVo> pagedResult = ObjectUtil.getAdamDisposedVoPagedResult();
if (count > 0) {
query.with(PageRequest.of(pageNo - 1, pageSize, Sort.by(Sort.Direction.DESC, "createdAt")));
s = System.currentTimeMillis();
List<AdamDisposedVo> disposedVoList = mongoTemplate.find(query, AdamDisposedVo.class, AdamDisposedBaseVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (!CollectionUtils.isEmpty(disposedVoList)) {
// List<KylinPerformanceVo> kylinPerformanceVoList = null;
// try {
// String[] contentIds = disposedVoList.stream().map(AdamDisposedVo::getContentId).toArray(a -> new String[disposedVoList.size()]);
// Query query = Query.query(Criteria.where("uid").is(uid).and("type").is(type).and("state").is(1));
//
// ResponseDto<List<KylinPerformanceVo>> performanceVoListDto = kylinPerformanceClient.performanceList(contentIds);
// long s = System.currentTimeMillis();
// long count = mongoTemplate.count(query, AdamDisposedBaseVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
//
// if (performanceVoListDto.isSuccess()) {
// kylinPerformanceVoList = performanceVoListDto.getData();
// } else {
// log.info("Failed:{}.API.performanceList(...) for AdamDisposedVo:{}", kylinPerformanceClient.getClass().getSimpleName(), performanceVoListDto.toJson());
// }
// } catch (Exception e) {
// log.error("Exception:{}.API.performanceList(...) for AdamDisposedVo >> {}", kylinPerformanceClient.getClass().getSimpleName(), e.getLocalizedMessage());
// }
// PagedResult<AdamDisposedVo> pagedResult = ObjectUtil.getAdamDisposedVoPagedResult();
// if (count > 0) {
// query.with(PageRequest.of(pageNo - 1, pageSize, Sort.by(Sort.Direction.DESC, "createdAt")));
//
// if (!CollectionUtils.isEmpty(kylinPerformanceVoList)) {
// kylinPerformanceVoList.forEach(pv -> {
// disposedVoList.forEach(v -> {
// if (pv.getPerformancesId().equals(v.getContentId())) {
// AdamCollectInfoVo collectInfoVo = AdamCollectInfoVo.getNew();
// BeanUtils.copyProperties(pv, collectInfoVo);
// v.setContentInfo(collectInfoVo);
// }
// s = System.currentTimeMillis();
// List<AdamDisposedVo> disposedVoList = mongoTemplate.find(query, AdamDisposedVo.class, AdamDisposedBaseVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
//
// PageInfo<AdamDisposedUserVo> disposedUserVoPageInfo = this.queryDisposedUsers(type, v.getContentId(), 1, 3);
//
// if (disposedUserVoPageInfo.getTotal() > 0) v.setUserVos(disposedUserVoPageInfo.getList());
// });
// if (!CollectionUtils.isEmpty(disposedVoList)) {
//// List<KylinPerformanceVo> kylinPerformanceVoList = null;
//// try {
//// String[] contentIds = disposedVoList.stream().map(AdamDisposedVo::getContentId).toArray(a -> new String[disposedVoList.size()]);
////
//// ResponseDto<List<KylinPerformanceVo>> performanceVoListDto = kylinPerformanceClient.performanceList(contentIds);
////
//// if (performanceVoListDto.isSuccess()) {
//// kylinPerformanceVoList = performanceVoListDto.getData();
//// } else {
//// log.info("Failed:{}.API.performanceList(...) for AdamDisposedVo:{}", kylinPerformanceClient.getClass().getSimpleName(), performanceVoListDto.toJson());
//// }
//// } catch (Exception e) {
//// log.error("Exception:{}.API.performanceList(...) for AdamDisposedVo >> {}", kylinPerformanceClient.getClass().getSimpleName(), e.getLocalizedMessage());
//// }
////
//// if (!CollectionUtils.isEmpty(kylinPerformanceVoList)) {
//// kylinPerformanceVoList.forEach(pv -> {
//// disposedVoList.forEach(v -> {
//// if (pv.getPerformancesId().equals(v.getContentId())) {
//// AdamCollectInfoVo collectInfoVo = AdamCollectInfoVo.getNew();
//// BeanUtils.copyProperties(pv, collectInfoVo);
//// v.setContentInfo(collectInfoVo);
//// }
////
//// PageInfo<AdamDisposedUserVo> disposedUserVoPageInfo = this.queryDisposedUsers(type, v.getContentId(), 1, 3);
////
//// if (disposedUserVoPageInfo.getTotal() > 0) v.setUserVos(disposedUserVoPageInfo.getList());
//// });
//// });
//// } else {
//// disposedVoList.forEach(v -> {
//// PageInfo<AdamDisposedUserVo> disposedUserVoPageInfo = this.queryDisposedUsers(type, v.getContentId(), 1, 3);
////
//// if (disposedUserVoPageInfo.getTotal() > 0) v.setUserVos(disposedUserVoPageInfo.getList());
//// });
//// }
// s = System.currentTimeMillis();
// disposedVoList.forEach(r -> {
// AdamCollectInfoVo vo = AdamCollectInfoVo.getNew();
// KylinPerformanceVo performanceVo = adamRdmService.kylinPerformanceVo(r.getContentId());
// if (null != performanceVo) {
//// BeanUtils.copyProperties(performanceVo, vo);
// vo.setPerformancesId(performanceVo.getPerformancesId());
// vo.setTitle(performanceVo.getTitle());
// vo.setImgPoster(performanceVo.getImgPoster());
// vo.setType(performanceVo.getType());
// vo.setTimeStart(performanceVo.getTimeStart());
// vo.setPrice(performanceVo.getPrice());
// vo.setCityName(performanceVo.getCityName());
// vo.setFieldName(performanceVo.getFieldName());
// vo.setIsMember(performanceVo.getIsMember());
// vo.setIsExclusive(performanceVo.getIsExclusive());
// vo.setIsDiscount(performanceVo.getIsDiscount());
// vo.setIsAdvance(performanceVo.getIsAdvance());
// }
// r.setContentInfo(vo);
// PagedResult<AdamDisposedUserVo> disposedUserVoPagedResult = this.queryDisposedUsers(type, r.getContentId(), 1, 3);
// if (disposedUserVoPagedResult.getTotal() > 0) r.setUserVos(disposedUserVoPagedResult.getList());
// });
// } else {
// disposedVoList.forEach(v -> {
// PageInfo<AdamDisposedUserVo> disposedUserVoPageInfo = this.queryDisposedUsers(type, v.getContentId(), 1, 3);
// log.debug("#DIS.RDS.MDB.K耗时:{}ms", System.currentTimeMillis() - s);
// }
//
// if (disposedUserVoPageInfo.getTotal() > 0) v.setUserVos(disposedUserVoPageInfo.getList());
// });
// pagedResult.setList(disposedVoList).setTotal(count, pageSize);
// }
s = System.currentTimeMillis();
disposedVoList.forEach(r -> {
AdamCollectInfoVo vo = AdamCollectInfoVo.getNew();
KylinPerformanceVo performanceVo = adamRdmService.kylinPerformanceVo(r.getContentId());
if (null != performanceVo) {
// BeanUtils.copyProperties(performanceVo, vo);
vo.setPerformancesId(performanceVo.getPerformancesId());
vo.setTitle(performanceVo.getTitle());
vo.setImgPoster(performanceVo.getImgPoster());
vo.setType(performanceVo.getType());
vo.setTimeStart(performanceVo.getTimeStart());
vo.setPrice(performanceVo.getPrice());
vo.setCityName(performanceVo.getCityName());
vo.setFieldName(performanceVo.getFieldName());
vo.setIsMember(performanceVo.getIsMember());
vo.setIsExclusive(performanceVo.getIsExclusive());
vo.setIsDiscount(performanceVo.getIsDiscount());
vo.setIsAdvance(performanceVo.getIsAdvance());
}
r.setContentInfo(vo);
PagedResult<AdamDisposedUserVo> disposedUserVoPagedResult = this.queryDisposedUsers(type, r.getContentId(), 1, 3);
if (disposedUserVoPagedResult.getTotal() > 0) r.setUserVos(disposedUserVoPagedResult.getList());
});
log.debug("#DIS.RDS.MDB.K耗时:{}ms", System.currentTimeMillis() - s);
}
pagedResult.setList(disposedVoList).setTotal(count, pageSize);
}
return pagedResult;
//
// return pagedResult;
return ObjectUtil.getAdamDisposedVoPagedResult();
}
@Override
public PagedResult<AdamDisposedUserVo> queryDisposedUsers(String type, String contentId, int pageNo, int pageSize) {
Query query = Query.query(Criteria.where("type").is(type).and("contentId").is(contentId).and("state").is(1));
long s = System.currentTimeMillis();
long count = mongoTemplate.count(query, AdamDisposedBaseVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
PagedResult<AdamDisposedUserVo> pagedResult = ObjectUtil.getAdamDisposedUserVoPagedResult();
if (count > 0) {
query.with(PageRequest.of(pageNo - 1, pageSize, Sort.by(Sort.Direction.DESC, "createdAt")));
s = System.currentTimeMillis();
List<AdamDisposedUserVo> disposedUserVoList = mongoTemplate.find(query, AdamDisposedUserVo.class, AdamDisposedBaseVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
pagedResult.setList(disposedUserVoList).setTotal(count, pageSize);
}
return pagedResult;
// Query query = Query.query(Criteria.where("type").is(type).and("contentId").is(contentId).and("state").is(1));
//
// long s = System.currentTimeMillis();
// long count = mongoTemplate.count(query, AdamDisposedBaseVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
//
// PagedResult<AdamDisposedUserVo> pagedResult = ObjectUtil.getAdamDisposedUserVoPagedResult();
// if (count > 0) {
// query.with(PageRequest.of(pageNo - 1, pageSize, Sort.by(Sort.Direction.DESC, "createdAt")));
//
// s = System.currentTimeMillis();
// List<AdamDisposedUserVo> disposedUserVoList = mongoTemplate.find(query, AdamDisposedUserVo.class, AdamDisposedBaseVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
//
// pagedResult.setList(disposedUserVoList).setTotal(count, pageSize);
// }
// return pagedResult;
return ObjectUtil.getAdamDisposedUserVoPagedResult();
}
}
......@@ -11,26 +11,16 @@ import com.liquidnet.service.adam.util.QueueUtils;
import com.liquidnet.service.base.ErrorMapping;
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.DeleteResult;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.bson.Document;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
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.CollectionUtils;
import org.springframework.util.LinkedMultiValueMap;
import java.time.LocalDateTime;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.stream.IntStream;
/**
......@@ -46,8 +36,8 @@ import java.util.stream.IntStream;
public class AdamEntersServiceImpl implements IAdamEntersService {
@Autowired
Environment env;
@Autowired
MongoTemplate mongoTemplate;
// @Autowired
// MongoTemplate mongoTemplate;
@Autowired
QueueUtils queueUtils;
@Autowired
......@@ -80,11 +70,11 @@ public class AdamEntersServiceImpl implements IAdamEntersService {
vo.setState(1);
vo.setCreatedAt(now);
long s = System.currentTimeMillis();
mongoTemplate.insert(vo, AdamEntersVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// long s = System.currentTimeMillis();
// mongoTemplate.insert(vo, AdamEntersVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
s = System.currentTimeMillis();
long s = System.currentTimeMillis();
adamRdmService.delEntersVoByUid(currentUid);
if (1 == parameter.getType()) {
adamRdmService.setCertification(1, parameter.getIdCard(), parameter.getName());
......@@ -117,39 +107,44 @@ public class AdamEntersServiceImpl implements IAdamEntersService {
// AdamEntersVo unDeaultVo = AdamEntersVo.getNew();
// unDeaultVo.setIsDefault(false);
// unDeaultVo.setUpdatedAt(now);
long s = System.currentTimeMillis();
Document doc = mongoTemplate.getCollection(AdamEntersVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("uid").is(uid).and("state").is(1).and("isDefault").is(true)).getQueryObject(),
new Document("$set", new Document("isDefault", false).append("updatedAt", now)),
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (null != doc) {
AdamEntersVo unDeaultVoAfter = BsonUtil.toBean(doc, AdamEntersVo.class);
toMqObjs.add(new Object[]{false, now, unDeaultVoAfter.getEntersId()});
vos = this.collectionProcess(vos, unDeaultVoAfter.getEntersId(), unDeaultVoAfter);
}
// long s = System.currentTimeMillis();
// Document doc = mongoTemplate.getCollection(AdamEntersVo.class.getSimpleName()).findOneAndUpdate(
// Query.query(Criteria.where("uid").is(uid).and("state").is(1).and("isDefault").is(true)).getQueryObject(),
// new Document("$set", new Document("isDefault", false).append("updatedAt", now)),
// new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (null != doc) {
// AdamEntersVo defaultVo = BsonUtil.toBean(doc, AdamEntersVo.class);
AdamEntersVo defaultVo = queryDefault(vos, uid, false);
defaultVo.setIsDefault(false);
defaultVo.setUpdatedAt(now);
toMqObjs.add(new Object[]{false, now, defaultVo.getEntersId()});
vos = this.collectionProcess(vos, defaultVo.getEntersId(), defaultVo);
// }
}
{// 设置新默认
// AdamEntersVo defaultVo = AdamEntersVo.getNew();
// defaultVo.setIsDefault(true);
// defaultVo.setUpdatedAt(now);
long s = System.currentTimeMillis();
Document doc = mongoTemplate.getCollection(AdamEntersVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("uid").is(uid).and("entersId").is(entersId)).getQueryObject(),
new Document("$set", new Document("isDefault", true).append("updatedAt", now)),
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (null != doc) {
AdamEntersVo defaultVoAfter = BsonUtil.toBean(doc, AdamEntersVo.class);
// long s = System.currentTimeMillis();
// Document doc = mongoTemplate.getCollection(AdamEntersVo.class.getSimpleName()).findOneAndUpdate(
// Query.query(Criteria.where("uid").is(uid).and("entersId").is(entersId)).getQueryObject(),
// new Document("$set", new Document("isDefault", true).append("updatedAt", now)),
// new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (null != doc) {
AdamEntersVo defaultVoAfter = adamRdmService.getEntersVoByUidEntersId(vos, entersId);
defaultVoAfter.setIsDefault(true);
defaultVoAfter.setUpdatedAt(now);
toMqObjs.add(new Object[]{true, now, entersId});
vos = this.collectionProcess(vos, defaultVoAfter.getEntersId(), defaultVoAfter);
}
// }
}
if (!CollectionUtils.isEmpty(toMqObjs)) {
long s = System.currentTimeMillis();
......@@ -176,20 +171,27 @@ public class AdamEntersServiceImpl implements IAdamEntersService {
}
}
AdamEntersVo updateVo = AdamEntersVo.getNew();
BeanUtils.copyProperties(parameter, updateVo);
long s = System.currentTimeMillis();
Document doc = mongoTemplate.getCollection(AdamEntersVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("uid").is(currentUid).and("entersId").is(parameter.getEntersId())).getQueryObject(),
new Document("$set", Document.parse(JsonUtils.toJson(updateVo)).append("updatedAt", now)),
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (null != doc) {
updateVo = BsonUtil.toBean(doc, AdamEntersVo.class);
List<AdamEntersVo> vos = adamRdmService.getEntersVoByUid(currentUid);
s = System.currentTimeMillis();
AdamEntersVo updateVo = adamRdmService.getEntersVoByUidEntersId(vos, parameter.getEntersId());
updateVo.setType(parameter.getType());
updateVo.setName(parameter.getName());
updateVo.setMobile(parameter.getMobile());
updateVo.setIdCard(parameter.getIdCard());
updateVo.setUpdatedAt(now);
// AdamEntersVo updateVo = AdamEntersVo.getNew();
// BeanUtils.copyProperties(parameter, updateVo);
// long s = System.currentTimeMillis();
// Document doc = mongoTemplate.getCollection(AdamEntersVo.class.getSimpleName()).findOneAndUpdate(
// Query.query(Criteria.where("uid").is(currentUid).and("entersId").is(parameter.getEntersId())).getQueryObject(),
// new Document("$set", Document.parse(JsonUtils.toJson(updateVo)).append("updatedAt", now)),
// new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (null != doc) {
// updateVo = BsonUtil.toBean(doc, AdamEntersVo.class);
//
// List<AdamEntersVo> vos = adamRdmService.getEntersVoByUid(currentUid);
long s = System.currentTimeMillis();
adamRdmService.setEntersVoByUid(currentUid, this.collectionProcess(vos, parameter.getEntersId(), updateVo));
if (1 == parameter.getType()) {
adamRdmService.setCertification(1, parameter.getIdCard(), parameter.getName());
......@@ -204,22 +206,22 @@ public class AdamEntersServiceImpl implements IAdamEntersService {
)
);
log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s);
}
// }
}
@Override
// @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public void remove(String uid, String entersId) {
String currentUid = CurrentUtil.getCurrentUid();
// String currentUid = CurrentUtil.getCurrentUid();
LocalDateTime now = LocalDateTime.now();
long s = System.currentTimeMillis();
DeleteResult deleteResult = mongoTemplate.remove(
Query.query(Criteria.where("uid").is(currentUid).and("entersId").is(entersId)), AdamEntersVo.class.getSimpleName()
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// long s = System.currentTimeMillis();
// DeleteResult deleteResult = mongoTemplate.remove(
// Query.query(Criteria.where("uid").is(currentUid).and("entersId").is(entersId)), AdamEntersVo.class.getSimpleName()
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
List<AdamEntersVo> vos = adamRdmService.getEntersVoByUid(uid);
vos.removeIf(r -> r.getEntersId().equals(entersId));
s = System.currentTimeMillis();
long s = System.currentTimeMillis();
adamRdmService.setEntersVoByUid(uid, vos);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
......@@ -232,8 +234,10 @@ public class AdamEntersServiceImpl implements IAdamEntersService {
}
@Override
public AdamEntersVo queryDefault(String uid) {
List<AdamEntersVo> vos = adamRdmService.getEntersVoByUid(uid);
public AdamEntersVo queryDefault(List<AdamEntersVo> vos, String uid, boolean downgrade) {
if (CollectionUtils.isEmpty(vos)) {
vos = adamRdmService.getEntersVoByUid(uid);
}
if (!CollectionUtils.isEmpty(vos)) {
AdamEntersVo defaultVo = null;
......@@ -241,9 +245,11 @@ public class AdamEntersServiceImpl implements IAdamEntersService {
if (vo.getIsDefault()) {
return vo;
}
if (downgrade) {
defaultVo = null == defaultVo ? vo :
vo.getCreatedAt().compareTo(defaultVo.getCreatedAt()) > 0 ? vo : defaultVo;
}
}
return defaultVo;
}
return null;
......@@ -257,18 +263,18 @@ public class AdamEntersServiceImpl implements IAdamEntersService {
.filter(i -> vos.get(i).getEntersId().equals(replaceId))
.findFirst().orElse(-1);
if (idx == -1) {
adamRdmService.delEntersVoByUid(updateVo.getUid());
List<AdamEntersVo> entersVos = adamRdmService.getEntersVoByUid(updateVo.getUid());
idx = IntStream.range(0, vos.size())
.filter(i -> entersVos.get(i).getEntersId().equals(replaceId))
.findFirst().orElse(-1);
if (idx == -1) {
// adamRdmService.delEntersVoByUid(updateVo.getUid());
//
// List<AdamEntersVo> entersVos = adamRdmService.getEntersVoByUid(updateVo.getUid());
//
// idx = IntStream.range(0, vos.size())
// .filter(i -> entersVos.get(i).getEntersId().equals(replaceId))
// .findFirst().orElse(-1);
//
// if (idx == -1) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("10017");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
// }
}
vos.set(idx, updateVo);
log.debug("#collect.process耗时:{}ms", System.currentTimeMillis() - s);
......
......@@ -19,14 +19,8 @@ import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst;
import lombok.extern.slf4j.Slf4j;
import org.bson.Document;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.data.domain.PageRequest;
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.util.LinkedMultiValueMap;
import org.springframework.util.StringUtils;
......@@ -35,15 +29,14 @@ import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.LinkedList;
import java.util.List;
@Slf4j
@Service
public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
@Autowired
Environment env;
@Autowired
MongoTemplate mongoTemplate;
// @Autowired
// MongoTemplate mongoTemplate;
@Autowired
QueueUtils queueUtils;
@Autowired
......@@ -215,10 +208,10 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
initUserMemberVo.setExpiryAt(now.plusDays(memberPriceVo.getDays()).with(LocalTime.MAX));
initUserMemberVo.setCreatedAt(now);
// long s = System.currentTimeMillis();
// mongoTemplate.insert(initUserMemberVo, AdamUserMemberVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
long s = System.currentTimeMillis();
mongoTemplate.insert(initUserMemberVo, AdamUserMemberVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
s = System.currentTimeMillis();
adamRdmService.setUserMemberVoByUid(handleMemberOrderVo.getUid(), initUserMemberVo);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
......@@ -233,15 +226,15 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
LocalDateTime currentExpiryAt = existUserMemberVo.getExpiryAt();
LocalDateTime expiryAt = (currentExpiryAt.isBefore(now) ? now : currentExpiryAt).plusDays(memberPriceVo.getDays()).with(LocalTime.MAX);
long s = System.currentTimeMillis();
mongoTemplate.getCollection(AdamUserMemberVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("uid").is(existUserMemberVo.getUid())).getQueryObject(),
new Document("$set", new Document("expiryAt", expiryAt).append("state", 1))
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// long s = System.currentTimeMillis();
// mongoTemplate.getCollection(AdamUserMemberVo.class.getSimpleName()).updateOne(
// Query.query(Criteria.where("uid").is(existUserMemberVo.getUid())).getQueryObject(),
// new Document("$set", new Document("expiryAt", expiryAt).append("state", 1))
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
existUserMemberVo.setState(1);
existUserMemberVo.setExpiryAt(expiryAt);
s = System.currentTimeMillis();
long s = System.currentTimeMillis();
adamRdmService.setUserMemberVoByUid(handleMemberOrderVo.getUid(), existUserMemberVo);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
......@@ -268,10 +261,10 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
initMemberCodeVo.setBuyAt(handleMemberOrderVo.getCreatedAt());
initMemberCodeVo.setCreatedAt(now);
// long s = System.currentTimeMillis();
// mongoTemplate.insert(initMemberCodeVo, AdamMemberCodeVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
long s = System.currentTimeMillis();
mongoTemplate.insert(initMemberCodeVo, AdamMemberCodeVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
s = System.currentTimeMillis();
adamRdmService.setMemberCodeVoByCode(initMemberCodeVo.getCode(), initMemberCodeVo);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
......@@ -286,9 +279,9 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
handleMemberOrderVo.setUpdatedAt(now);
handleMemberOrderVo.setState(1);// 1-已支付
long s = System.currentTimeMillis();
mongoTemplate.insert(handleMemberOrderVo, AdamMemberOrderVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// long s = System.currentTimeMillis();
// mongoTemplate.insert(handleMemberOrderVo, AdamMemberOrderVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
toMqSqls.add(SqlMapping.get("adam_member_order.add"));
updateMemberOrderObjs.add(new Object[]{
......@@ -299,7 +292,7 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
handleMemberOrderVo.getCreatedAt(), handleMemberOrderVo.getClientIp(), handleMemberOrderVo.getSource(), handleMemberOrderVo.getVersion()
});
s = System.currentTimeMillis();
long s = System.currentTimeMillis();
adamRdmService.setShotMemberOrderVoByOrderNo(handleMemberOrderVo.getOrderNo(), handleMemberOrderVo);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
......@@ -363,12 +356,12 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
upsertUserMemberVo.setExpiryAt(
(expiryAt.isBefore(now) ? now : expiryAt).plusDays(initMemberOrderVo.getDays()).with(LocalTime.MAX)
);
long s = System.currentTimeMillis();
mongoTemplate.getCollection(AdamUserMemberVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("uid").is(upsertUserMemberVo.getUid())).getQueryObject(),
new Document("$set", new Document("expiryAt", upsertUserMemberVo.getExpiryAt()).append("state", 1))
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// long s = System.currentTimeMillis();
// mongoTemplate.getCollection(AdamUserMemberVo.class.getSimpleName()).updateOne(
// Query.query(Criteria.where("uid").is(upsertUserMemberVo.getUid())).getQueryObject(),
// new Document("$set", new Document("expiryAt", upsertUserMemberVo.getExpiryAt()).append("state", 1))
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
toMqSqls.add(SqlMapping.get("adam_user_member.update"));
upsertUserMemberObjs.add(new Object[]{
upsertUserMemberVo.getState(), upsertUserMemberVo.getExpiryAt(), now, upsertUserMemberVo.getUid()
......@@ -382,9 +375,9 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
upsertUserMemberVo.setExpiryAt(now.plusDays(initMemberOrderVo.getDays()).with(LocalTime.MAX));
upsertUserMemberVo.setCreatedAt(now);
long s = System.currentTimeMillis();
mongoTemplate.insert(upsertUserMemberVo, AdamUserMemberVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// long s = System.currentTimeMillis();
// mongoTemplate.insert(upsertUserMemberVo, AdamUserMemberVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
toMqSqls.add(SqlMapping.get("adam_user_member.add"));
upsertUserMemberObjs.add(new Object[]{
upsertUserMemberVo.getUid(), upsertUserMemberVo.getMemberId(), upsertUserMemberVo.getMemberNo(),
......@@ -396,25 +389,25 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
adamRdmService.delMemberCodeVoByCode(memberCodeVo.getCode());
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
Document updateMemberCodeVo = new Document("state", 1)
.append("updatedAt", now)
.append("useOrderNo", initMemberOrderVo.getOrderNo())
.append("useUid", upsertUserMemberVo.getUid())
.append("useAt", now);
s = System.currentTimeMillis();
mongoTemplate.getCollection(AdamMemberCodeVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("code").is(memberCodeVo.getCode())).getQueryObject(),
new Document("$set", updateMemberCodeVo)
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// Document updateMemberCodeVo = new Document("state", 1)
// .append("updatedAt", now)
// .append("useOrderNo", initMemberOrderVo.getOrderNo())
// .append("useUid", upsertUserMemberVo.getUid())
// .append("useAt", now);
// s = System.currentTimeMillis();
// mongoTemplate.getCollection(AdamMemberCodeVo.class.getSimpleName()).updateOne(
// Query.query(Criteria.where("code").is(memberCodeVo.getCode())).getQueryObject(),
// new Document("$set", updateMemberCodeVo)
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
toMqSqls.add(SqlMapping.get("adam_member_code.exchange"));
updateMemberCodeObjs.add(new Object[]{
1, now, initMemberOrderVo.getOrderNo(), upsertUserMemberVo.getUid(), now, memberCodeVo.getCode()
});
s = System.currentTimeMillis();
mongoTemplate.insert(initMemberOrderVo, AdamMemberOrderVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// s = System.currentTimeMillis();
// mongoTemplate.insert(initMemberOrderVo, AdamMemberOrderVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
toMqSqls.add(SqlMapping.get("adam_member_order.add"));
initMemberOrderObjs.add(new Object[]{
initMemberOrderVo.getOrderNo(), initMemberOrderVo.getUid(), initMemberOrderVo.getMode(), initMemberOrderVo.getPrice(),
......@@ -438,20 +431,22 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
@Override
public PagedResult<AdamMemberOrderSimpleVo> queryPage(String uid, int pageNo, int pageSize) {
Query query = Query.query(Criteria.where("uid").is(uid).and("state").in(1,5));
long count = mongoTemplate.count(query, AdamMemberOrderVo.class.getSimpleName());
PagedResult<AdamMemberOrderSimpleVo> pagedResult = ObjectUtil.getAdamMemberOrderSimpleVoPagedResult();
if (count > 0) {
query.with(PageRequest.of(pageNo - 1, pageSize, Sort.by(Sort.Direction.DESC, "createdAt")));
List<AdamMemberOrderSimpleVo> voList = mongoTemplate.find(
query, AdamMemberOrderSimpleVo.class, AdamMemberOrderVo.class.getSimpleName()
);
pagedResult.setList(voList).setTotal(count, pageSize);
}
return pagedResult;
// Query query = Query.query(Criteria.where("uid").is(uid).and("state").in(1,5));
//
// long count = mongoTemplate.count(query, AdamMemberOrderVo.class.getSimpleName());
//
// PagedResult<AdamMemberOrderSimpleVo> pagedResult = ObjectUtil.getAdamMemberOrderSimpleVoPagedResult();
// if (count > 0) {
// query.with(PageRequest.of(pageNo - 1, pageSize, Sort.by(Sort.Direction.DESC, "createdAt")));
//
// List<AdamMemberOrderSimpleVo> voList = mongoTemplate.find(
// query, AdamMemberOrderSimpleVo.class, AdamMemberOrderVo.class.getSimpleName()
// );
//
// pagedResult.setList(voList).setTotal(count, pageSize);
// }
// return pagedResult;
// TODO: 2021/7/29 会员订单列表查取
return ObjectUtil.getAdamMemberOrderSimpleVoPagedResult();
}
}
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 {
......
......@@ -6,8 +6,9 @@ import com.liquidnet.common.exception.LiquidnetServiceException;
import com.liquidnet.commons.lang.util.*;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.AdamThirdPartParam;
import com.liquidnet.service.adam.dto.vo.*;
import com.liquidnet.service.adam.entity.AdamEnters;
import com.liquidnet.service.adam.dto.vo.AdamRealInfoVo;
import com.liquidnet.service.adam.dto.vo.AdamThirdPartInfoVo;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.adam.entity.AdamRealName;
import com.liquidnet.service.adam.service.AdamRdmService;
import com.liquidnet.service.adam.service.IAdamEntersService;
......@@ -17,28 +18,21 @@ import com.liquidnet.service.adam.util.QueueUtils;
import com.liquidnet.service.base.ErrorMapping;
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.DeleteResult;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.RandomUtils;
import org.apache.commons.lang3.StringUtils;
import org.bson.Document;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
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.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.LinkedMultiValueMap;
import java.time.LocalDateTime;
import java.util.*;
import java.util.LinkedList;
import java.util.List;
import static com.liquidnet.service.adam.constant.AdamRedisConst.LOCK_KEY_UREGISTER;
......@@ -55,8 +49,8 @@ import static com.liquidnet.service.adam.constant.AdamRedisConst.LOCK_KEY_UREGIS
public class AdamUserServiceImpl implements IAdamUserService {
@Autowired
Environment env;
@Autowired
MongoTemplate mongoTemplate;
// @Autowired
// MongoTemplate mongoTemplate;
@Autowired
QueueUtils queueUtils;
@Autowired
......@@ -89,11 +83,11 @@ public class AdamUserServiceImpl implements IAdamUserService {
userInfoVo.setQrCode("lN".concat(userInfoVo.getUid()).concat(RandomStringUtils.randomAlphanumeric(5).toUpperCase()));
userInfoVo.setCreateAt(now);
long s = System.currentTimeMillis();
mongoTemplate.insert(userInfoVo, AdamUserInfoVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// long s = System.currentTimeMillis();
// mongoTemplate.insert(userInfoVo, AdamUserInfoVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
s = System.currentTimeMillis();
long s = System.currentTimeMillis();
adamRdmService.setUidByMobile(mobile, userInfoVo.getUid());
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
......@@ -148,9 +142,9 @@ public class AdamUserServiceImpl implements IAdamUserService {
userInfoVo.setQrCode("lN".concat(userInfoVo.getUid()).concat(RandomStringUtils.randomAlphanumeric(5).toUpperCase()));
userInfoVo.setCreateAt(now);
s = System.currentTimeMillis();
mongoTemplate.insert(userInfoVo, AdamUserInfoVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// s = System.currentTimeMillis();
// mongoTemplate.insert(userInfoVo, AdamUserInfoVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
userInfoVo.setMobile(SensitizeUtil.custom(param.getMobile(), 3, 4));
......@@ -172,9 +166,9 @@ public class AdamUserServiceImpl implements IAdamUserService {
thirdPartInfoVo.setUid(userInfoVo.getUid());
thirdPartInfoVo.setState(1);// 1-绑定
s = System.currentTimeMillis();
mongoTemplate.insert(thirdPartInfoVo, AdamThirdPartInfoVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// s = System.currentTimeMillis();
// mongoTemplate.insert(thirdPartInfoVo, AdamThirdPartInfoVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
toMqSqls.add(SqlMapping.get("adam_third_party.add"));
initThirdPartObjs.add(new Object[]{thirdPartInfoVo.getUid(), thirdPartInfoVo.getOpenId(), thirdPartInfoVo.getAvatar(), thirdPartInfoVo.getNickname(), thirdPartInfoVo.getPlatform(), thirdPartInfoVo.getState(), thirdPartInfoVo.getCreatedAt()});
......@@ -207,11 +201,11 @@ public class AdamUserServiceImpl implements IAdamUserService {
thirdPartInfoVo.setUid(uid);
thirdPartInfoVo.setState(1);// 1-绑定
long s = System.currentTimeMillis();
mongoTemplate.insert(thirdPartInfoVo, AdamThirdPartInfoVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// long s = System.currentTimeMillis();
// mongoTemplate.insert(thirdPartInfoVo, AdamThirdPartInfoVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
s = System.currentTimeMillis();
long s = System.currentTimeMillis();
adamRdmService.setUidByPlatformOpenId(param.getPlatform(), param.getOpenId(), uid);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
......@@ -242,7 +236,7 @@ public class AdamUserServiceImpl implements IAdamUserService {
thirdPartInfoVo.setUid(bindUid);
thirdPartInfoVo.setState(1);// 1-绑定
mongoTemplate.insert(thirdPartInfoVo, AdamThirdPartInfoVo.class.getSimpleName());
// mongoTemplate.insert(thirdPartInfoVo, AdamThirdPartInfoVo.class.getSimpleName());
adamRdmService.setUidByPlatformOpenId(param.getPlatform(), param.getOpenId(), bindUid);
......@@ -269,17 +263,22 @@ public class AdamUserServiceImpl implements IAdamUserService {
// unBindThirdPartInfoVo.setUpdatedAt(now);
// unBindThirdPartInfoVo.setState(2);// 2-解绑
// long s = System.currentTimeMillis();
// Document doc = mongoTemplate.getCollection(AdamThirdPartInfoVo.class.getSimpleName()).findOneAndUpdate(
// Query.query(Criteria.where("uid").is(uid).and("platform").is(platform).and("state").is(1)).getQueryObject(),
// new Document("$set", new Document("state", 2).append("updatedAt", now)),
// new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
//
// s = System.currentTimeMillis();
// if (null != doc) {
// adamRdmService.delUidByPlatformOpenId(platform, doc.getString("openId"));
// }
long s = System.currentTimeMillis();
Document doc = mongoTemplate.getCollection(AdamThirdPartInfoVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("uid").is(uid).and("platform").is(platform).and("state").is(1)).getQueryObject(),
new Document("$set", new Document("state", 2).append("updatedAt", now)),
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
s = System.currentTimeMillis();
if (null != doc) {
adamRdmService.delUidByPlatformOpenId(platform, doc.getString("openId"));
AdamThirdPartInfoVo unBindTpaVo = adamRdmService.getThirdPartVoByUidPlatform(uid, platform);
if (null != unBindTpaVo) {
adamRdmService.delUidByPlatformOpenId(platform, unBindTpaVo.getOpenId());
}
adamRdmService.delThirdPartVoListByUid(uid);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
......@@ -323,45 +322,45 @@ public class AdamUserServiceImpl implements IAdamUserService {
adamRdmService.delEntersVoByUid(uid);
log.debug("##RDS耗时:{}ms", System.currentTimeMillis() - s);
DeleteResult deleteResult = mongoTemplate.remove(Query.query(Criteria.where("uid").is(uid)), AdamUserInfoVo.class.getSimpleName());
// DeleteResult deleteResult = mongoTemplate.remove(Query.query(Criteria.where("uid").is(uid)), AdamUserInfoVo.class.getSimpleName());
toMqSqls.add(SqlMapping.get("adam_user.close"));
objsUser.add(new Object[]{now, now, uid});
/* ---------------------- 三方账号信息 */
if (!CollectionUtils.isEmpty(thirdPartInfoVos)) {
s = System.currentTimeMillis();
mongoTemplate.remove(Query.query(Criteria.where("uid").is(uid)), AdamThirdPartInfoVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// s = System.currentTimeMillis();
// mongoTemplate.remove(Query.query(Criteria.where("uid").is(uid)), AdamThirdPartInfoVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
toMqSqls.add(SqlMapping.get("adam_third_party.close"));
objsThirdPart.add(new Object[]{now, uid});
}
/* ---------------------- 用户会员信息 */
s = System.currentTimeMillis();
deleteResult = mongoTemplate.remove(Query.query(Criteria.where("uid").is(uid)), AdamUserMemberVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (deleteResult.getDeletedCount() > 0) {
// s = System.currentTimeMillis();
// deleteResult = mongoTemplate.remove(Query.query(Criteria.where("uid").is(uid)), AdamUserMemberVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (deleteResult.getDeletedCount() > 0) {
toMqSqls.add(SqlMapping.get("adam_user_member.close"));
objsThirdPart.add(new Object[]{now, uid});
}
// }
/* ---------------------- 收货地址信息 */
s = System.currentTimeMillis();
deleteResult = mongoTemplate.remove(Query.query(Criteria.where("uid").is(uid)), AdamAddressesVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (deleteResult.getDeletedCount() > 0) {
// s = System.currentTimeMillis();
// deleteResult = mongoTemplate.remove(Query.query(Criteria.where("uid").is(uid)), AdamAddressesVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (deleteResult.getDeletedCount() > 0) {
toMqSqls.add(SqlMapping.get("adam_addresses.close"));
objsAddresses.add(new Object[]{now, now, uid});
}
// }
/* ---------------------- 入场人信息 */
s = System.currentTimeMillis();
deleteResult = mongoTemplate.remove(Query.query(Criteria.where("uid").is(uid)).getQueryObject(), AdamEnters.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (deleteResult.getDeletedCount() > 0) {
// s = System.currentTimeMillis();
// deleteResult = mongoTemplate.remove(Query.query(Criteria.where("uid").is(uid)).getQueryObject(), AdamEnters.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (deleteResult.getDeletedCount() > 0) {
toMqSqls.add(SqlMapping.get("adam_enters.close"));
objsAddresses.add(new Object[]{now, now, uid});
}
// }
s = System.currentTimeMillis();
queueUtils.sendMsgByRedis(
......
......@@ -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