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

Commit d0411fdb authored by jiangxiulong's avatar jiangxiulong

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

parents 0768804f 977eb22c
liquidnet:
system:
updating:
switch: false
info:
port: 9001
context: /platform
name: liquidnet-service-platform
logfile:
path: /data/logs
name: service-platform
config: classpath:logback-spring.xml
file-max-size: 200MB
level: info
rabbitmq:
connection-timeout: 5000
mysql:
database-name: dev_ln_scene
mongodb:
sslEnabled: false
database: dev_ln_scene
#以下为spring各环境个性配置
server:
port: ${liquidnet.info.port}
tomcat:
uri-encoding: UTF-8
maxThreads: 2000 #默认200
minSpareThreads: 2000 #默认10
maxConnections: 20000 #默认10000
acceptCount: 5000 #默认100
processorCache: 5000 #默认200
servlet:
context-path: ${liquidnet.info.context}
# -----------------------------------------------------------
knife4j:
enable: true
production: ${liquidnet.knife4j.disable}
basic:
enable: false
username: ${liquidnet.security.username}
password: ${liquidnet.security.password}
# -----------------------------------------------------------
logging:
# config: ${liquidnet.logfile.config}
file:
name: ${liquidnet.logfile.path}/${liquidnet.logfile.name}.log
max-size: ${liquidnet.logfile.file-max-size}
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: ${liquidnet.logfile.level}
# -----------------------------------------------------------
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.*.mapper/*Mapper.xml
# -----------------------------------------------------------
spring:
application:
name: ${liquidnet.info.name}
servlet:
multipart:
max-file-size: 5MB
max-request-size: 10MB
profiles:
include: common-service #这里加载management相关公共配置
rabbitmq:
addresses: ${liquidnet.rabbitmq.host}
port: ${liquidnet.rabbitmq.port}
username: ${liquidnet.rabbitmq.username}
password: ${liquidnet.rabbitmq.password}
virtual-host: ${liquidnet.rabbitmq.virtual-host}
connection-timeout: ${liquidnet.rabbitmq.connection-timeout}
redis:
database: 15
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
redisson:
singleServerConfig:
address: redis://${liquidnet.redis.host}:${liquidnet.redis.port}
password: ${liquidnet.redis.password}
clientName: null
database: 7 #选择使用哪个数据库0~15
idleConnectionTimeout: 10000
connectTimeout: 10000
timeout: 3000
retryAttempts: 3
retryInterval: 1500
subscriptionsPerConnection: 5
subscriptionConnectionMinimumIdleSize: 1
subscriptionConnectionPoolSize: 50
connectionMinimumIdleSize: 32
connectionPoolSize: 64
dnsMonitoringInterval: 5000
threads: 16
nettyThreads: 32
codec:
class: "org.redisson.codec.JsonJacksonCodec"
transportMode: "NIO"
data:
mongodb:
uri: mongodb://${liquidnet.mongodb.user}:${liquidnet.mongodb.pwd}@${liquidnet.mongodb.host}/?authSource=admin&maxPoolSize=4000&waitQueueMultiple=100
sslEnabled: ${liquidnet.mongodb.sslEnabled}
database: ${liquidnet.mongodb.database}
datasource:
name: ${liquidnet.mysql.database-name}
url: jdbc:mysql://${liquidnet.mysql.urlHostAndPort}/${liquidnet.mysql.database-name}?serverTimezone=Asia/Shanghai&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
hikari:
maximum-pool-size: 500
# 迁移数据暂设10分钟
connection-timeout: 600000
minimum-idle: 10
connection-test-query: SELECT 1
# -----------------------------------------------------------
# -----------------------------------------------------------
global-auth:
exclude-url-pattern:
- ${liquidnet.info.context}/doc.html
- ${liquidnet.info.context}/webjars/**
- ${liquidnet.info.context}/swagger-resources/**
- ${liquidnet.info.context}/v2/api-docs*
# -----------------------------------------------------------
# -----------------------------------------------------------
# -----------------------------------------------------------
\ No newline at end of file
...@@ -17,8 +17,6 @@ import java.net.UnknownHostException; ...@@ -17,8 +17,6 @@ import java.net.UnknownHostException;
import java.util.Arrays; import java.util.Arrays;
@Slf4j @Slf4j
@EnableFeignClients
@MapperScan(basePackages = "com.liquidnet.service.adam.mapper")
@SpringBootApplication(scanBasePackages = {"com.liquidnet"}) @SpringBootApplication(scanBasePackages = {"com.liquidnet"})
public class ServiceAdamApplication implements CommandLineRunner { public class ServiceAdamApplication implements CommandLineRunner {
@Autowired @Autowired
...@@ -29,7 +27,7 @@ public class ServiceAdamApplication implements CommandLineRunner { ...@@ -29,7 +27,7 @@ public class ServiceAdamApplication implements CommandLineRunner {
} }
@Override @Override
public void run(String... strings) throws Exception { public void run(String... strings) {
try { try {
log.info("\n----------------------------------------------------------\n\t" + log.info("\n----------------------------------------------------------\n\t" +
"Application '{}' is running! Access URLs:\n\t" + "Application '{}' is running! Access URLs:\n\t" +
...@@ -42,7 +40,7 @@ public class ServiceAdamApplication implements CommandLineRunner { ...@@ -42,7 +40,7 @@ public class ServiceAdamApplication implements CommandLineRunner {
environment.getProperty("server.port"), environment.getProperty("server.port"),
environment.getProperty("server.servlet.context-path"), environment.getProperty("server.servlet.context-path"),
Arrays.toString(environment.getActiveProfiles())); Arrays.toString(environment.getActiveProfiles()));
} catch (UnknownHostException e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
......
...@@ -46,8 +46,6 @@ import java.util.stream.IntStream; ...@@ -46,8 +46,6 @@ import java.util.stream.IntStream;
@Slf4j @Slf4j
@Service @Service
public class AdamAddressesServiceImpl extends ServiceImpl<AdamAddressesMapper, AdamAddresses> implements IAdamAddressesService { public class AdamAddressesServiceImpl extends ServiceImpl<AdamAddressesMapper, AdamAddresses> implements IAdamAddressesService {
@Autowired
MongoConverter mongoConverter;
@Autowired @Autowired
MongoTemplate mongoTemplate; MongoTemplate mongoTemplate;
@Autowired @Autowired
......
package com.liquidnet.service.adam.service.impl.admin; package com.liquidnet.service.adam.service.impl.admin;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.mq.constant.MQConst;
import com.liquidnet.service.adam.dto.AdamMemberCodeParam; import com.liquidnet.service.adam.dto.AdamMemberCodeParam;
import com.liquidnet.service.adam.dto.vo.AdamMemberCodeVo; import com.liquidnet.service.adam.dto.vo.AdamMemberCodeVo;
import com.liquidnet.service.adam.entity.AdamMemberCode; import com.liquidnet.service.adam.entity.AdamMemberCode;
...@@ -9,7 +10,9 @@ import com.liquidnet.service.adam.service.AdamRdmService; ...@@ -9,7 +10,9 @@ import com.liquidnet.service.adam.service.AdamRdmService;
import com.liquidnet.service.adam.service.IAdamUserMemberService; import com.liquidnet.service.adam.service.IAdamUserMemberService;
import com.liquidnet.service.adam.service.admin.IAdamMemberCodeAdminService; import com.liquidnet.service.adam.service.admin.IAdamMemberCodeAdminService;
import com.liquidnet.service.adam.util.MemberUtil; import com.liquidnet.service.adam.util.MemberUtil;
import com.liquidnet.service.base.SqlMapping;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Criteria;
...@@ -22,11 +25,11 @@ import java.time.LocalDateTime; ...@@ -22,11 +25,11 @@ import java.time.LocalDateTime;
@Slf4j @Slf4j
@Service @Service
public class AdamMemberCodeAdminServiceImpl extends ServiceImpl<AdamMemberCodeMapper, AdamMemberCode> implements IAdamMemberCodeAdminService { public class AdamMemberCodeAdminServiceImpl extends ServiceImpl<AdamMemberCodeMapper, AdamMemberCode> implements IAdamMemberCodeAdminService {
@Autowired
AdamMemberCodeMapper adamMemberCodeMapper;
@Autowired @Autowired
MongoTemplate mongoTemplate; MongoTemplate mongoTemplate;
@Autowired @Autowired
RabbitTemplate rabbitTemplate;
@Autowired
IAdamUserMemberService adamUserMemberService; IAdamUserMemberService adamUserMemberService;
@Autowired @Autowired
AdamRdmService adamRdmService; AdamRdmService adamRdmService;
...@@ -56,13 +59,17 @@ public class AdamMemberCodeAdminServiceImpl extends ServiceImpl<AdamMemberCodeMa ...@@ -56,13 +59,17 @@ public class AdamMemberCodeAdminServiceImpl extends ServiceImpl<AdamMemberCodeMa
initMemberCode.setState(0);// 0-未使用,1-已使用,2-不可用 initMemberCode.setState(0);// 0-未使用,1-已使用,2-不可用
initMemberCode.setCreatedAt(LocalDateTime.now()); initMemberCode.setCreatedAt(LocalDateTime.now());
adamMemberCodeMapper.insert(initMemberCode); // adamMemberCodeMapper.insert(initMemberCode);
AdamMemberCodeVo vo = AdamMemberCodeVo.getNew().copy(initMemberCode); AdamMemberCodeVo vo = AdamMemberCodeVo.getNew().copy(initMemberCode);
mongoTemplate.insert(vo, AdamMemberCodeVo.class.getSimpleName()); mongoTemplate.insert(vo, AdamMemberCodeVo.class.getSimpleName());
adamRdmService.setMemberCodeVoByCode(mCode, vo); adamRdmService.setMemberCodeVoByCode(mCode, vo);
rabbitTemplate.convertAndSend(MQConst.EX_LNS_SQL_UCENTER, MQConst.RK_SQL_UCENTER,
SqlMapping.get("adam_member_code.add",
initMemberCode.getCode(), initMemberCode.getType(), initMemberCode.getMemberId(), initMemberCode.getMemberPriceId(),
initMemberCode.getMemberNo(), initMemberCode.getState(), initMemberCode.getCreatedAt(), null, null, null
)
);
return initMemberCode.getCode(); return initMemberCode.getCode();
} }
} }
...@@ -38,7 +38,10 @@ ...@@ -38,7 +38,10 @@
<artifactId>liquidnet-common-cache-redisson</artifactId> <artifactId>liquidnet-common-cache-redisson</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency> <dependency>
<groupId>com.liquidnet</groupId> <groupId>com.liquidnet</groupId>
......
...@@ -7,18 +7,14 @@ import org.springframework.boot.CommandLineRunner; ...@@ -7,18 +7,14 @@ import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Bean;
import org.springframework.core.env.Environment; import org.springframework.core.env.Environment;
import org.springframework.data.mongodb.MongoDbFactory;
import org.springframework.data.mongodb.MongoTransactionManager;
import java.net.InetAddress; import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Arrays; import java.util.Arrays;
@Slf4j @Slf4j
@EnableFeignClients @EnableFeignClients
@MapperScan(basePackages = {"com.liquidnet.service.kylin.mapper","com.liquidnet.service.adam.mapper"}) @MapperScan(basePackages = "com.liquidnet.service.*.mapper")
@SpringBootApplication(scanBasePackages = {"com.liquidnet"}) @SpringBootApplication(scanBasePackages = {"com.liquidnet"})
public class ServicePlatformApplication implements CommandLineRunner { public class ServicePlatformApplication implements CommandLineRunner {
@Autowired @Autowired
...@@ -29,7 +25,7 @@ public class ServicePlatformApplication implements CommandLineRunner { ...@@ -29,7 +25,7 @@ public class ServicePlatformApplication implements CommandLineRunner {
} }
@Override @Override
public void run(String... strings) throws Exception { public void run(String... strings) {
try { try {
log.info("\n----------------------------------------------------------\n\t" + log.info("\n----------------------------------------------------------\n\t" +
"Application '{}' is running! Access URLs:\n\t" + "Application '{}' is running! Access URLs:\n\t" +
...@@ -42,13 +38,8 @@ public class ServicePlatformApplication implements CommandLineRunner { ...@@ -42,13 +38,8 @@ public class ServicePlatformApplication implements CommandLineRunner {
environment.getProperty("server.port"), environment.getProperty("server.port"),
environment.getProperty("server.servlet.context-path"), environment.getProperty("server.servlet.context-path"),
Arrays.toString(environment.getActiveProfiles())); Arrays.toString(environment.getActiveProfiles()));
} catch (UnknownHostException e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
// @Bean
// MongoTransactionManager transactionManager(MongoDbFactory factory){
// return new MongoTransactionManager(factory);
// }
} }
package com.liquidnet.service.platform.service.impl.adam.dm;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.service.adam.entity.AdamAddresses;
import com.liquidnet.service.adam.mapper.AdamAddressesMapper;
import org.springframework.stereotype.Service;
@Service
public class DMAddressesService extends ServiceImpl<AdamAddressesMapper, AdamAddresses> {
}
package com.liquidnet.service.platform.service.impl.adam.dm;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.service.adam.entity.AdamCollection;
import com.liquidnet.service.adam.mapper.AdamCollectionMapper;
import org.springframework.stereotype.Service;
@Service
public class DMCollectionService extends ServiceImpl<AdamCollectionMapper, AdamCollection> {
}
package com.liquidnet.service.platform.service.impl.adam.dm;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.service.adam.entity.AdamEnters;
import com.liquidnet.service.adam.mapper.AdamEntersMapper;
import org.springframework.stereotype.Service;
@Service
public class DMEntersService extends ServiceImpl<AdamEntersMapper, AdamEnters> {
}
package com.liquidnet.service.platform.service.impl.adam.dm;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.service.adam.entity.AdamMemberCode;
import com.liquidnet.service.adam.mapper.AdamMemberCodeMapper;
import org.springframework.stereotype.Service;
@Service
public class DMMemberCodeService extends ServiceImpl<AdamMemberCodeMapper, AdamMemberCode> {
}
package com.liquidnet.service.platform.service.impl.adam.dm;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.service.adam.entity.AdamMemberOrder;
import com.liquidnet.service.adam.mapper.AdamMemberOrderMapper;
import org.springframework.stereotype.Service;
@Service
public class DMMemberOrderService extends ServiceImpl<AdamMemberOrderMapper, AdamMemberOrder> {
}
package com.liquidnet.service.platform.service.impl.adam.dm;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.service.adam.entity.AdamRealName;
import com.liquidnet.service.adam.mapper.AdamRealNameMapper;
import org.springframework.stereotype.Service;
@Service
public class DMRealNameService extends ServiceImpl<AdamRealNameMapper, AdamRealName> {
}
package com.liquidnet.service.platform.service.impl.adam.dm;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.service.adam.entity.AdamThirdParty;
import com.liquidnet.service.adam.mapper.AdamThirdPartyMapper;
import org.springframework.stereotype.Service;
@Service
public class DMThirdPartyService extends ServiceImpl<AdamThirdPartyMapper, AdamThirdParty> {
}
package com.liquidnet.service.platform.service.impl.adam.dm;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.service.adam.entity.AdamUserInfo;
import com.liquidnet.service.adam.mapper.AdamUserInfoMapper;
import org.springframework.stereotype.Service;
@Service
public class DMUserInfoService extends ServiceImpl<AdamUserInfoMapper, AdamUserInfo> {
}
package com.liquidnet.service.platform.service.impl.adam.dm;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.service.adam.entity.AdamUserMember;
import com.liquidnet.service.adam.mapper.AdamUserMemberMapper;
import org.springframework.stereotype.Service;
@Service
public class DMUserMemberService extends ServiceImpl<AdamUserMemberMapper, AdamUserMember> {
}
package com.liquidnet.service.platform.service.impl.adam.dm;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.service.adam.entity.AdamUser;
import com.liquidnet.service.adam.mapper.AdamUserMapper;
import org.springframework.stereotype.Service;
@Service
public class DMUserService extends ServiceImpl<AdamUserMapper, AdamUser> {
}
package com.liquidnet.service.platform.service.impl.adam.dm.processor;
import com.liquidnet.service.adam.dto.vo.AdamAddressesVo;
import com.liquidnet.service.adam.entity.AdamAddresses;
import com.liquidnet.service.platform.service.impl.adam.dm.DMAddressesService;
import com.liquidnet.service.platform.service.impl.adam.dm.DataMigrationProcessorService;
import com.mysql.cj.jdbc.result.ResultSetImpl;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
@Slf4j
@Service
public class DMAddressesProcessor extends DataMigrationProcessorService {
@Autowired
DMAddressesService dmAddressesService;
@SneakyThrows
@Override
public void dataProcessing(Integer dg, Integer dG, String incrDt, String flg, String flu) {
if (StringUtils.isNotEmpty(flu)) {
log.info("DM.flush.addresses:{}", userMapper.executeForDM("adam_addresses"));
log.info("DM.flush.AdamAddressesVo:{}", mongoTemplate.remove(Query.query(Criteria.where("_id").exists(true)), AdamAddressesVo.class.getSimpleName()).getDeletedCount());
}
String sqlCount = "select count(1) from addresses where created_at" + (StringUtils.isBlank(incrDt) ? "<" : ">=") + "curdate()";
if (null != dg) {
sqlCount = sqlCount + " and id%" + dG + "=" + dg;
}
String field = "id,user_id,user_name,user_phone,province,city,county,user_address,defaultDelivery,created_at";
// 1-id,2-user_id,3-user_name,4-user_phone,5-province,6-city,7-county,8-user_address,9-defaultDelivery,10-created_at
String sql = sqlCount.replace("count(1)", field);
boolean smFlg = "1".equals(flg);
if (smFlg) {
sqlCount += " and user_id in ('2026628','544327','1997335','773650','809406','1167451','423063','677171')";
sql += " and user_id in ('2026628','544327','1997335','773650','809406','1167451','423063','677171')";
}
sql += " order by id limit ?,?";
Connection connection = null;
PreparedStatement statement = null;
ResultSetImpl row = null;
try {
Class.forName(DB_DRIVER);
connection = DriverManager.getConnection(DB_URL + DB_NAME_MALL, DB_USER, DB_PWD);
statement = connection.prepareStatement(sqlCount);
row = (ResultSetImpl) statement.executeQuery();
row.first();
int ct = row.getInt(1), pSize = 1000, num = 0, tl = 0, pl = ct;
log.info("DM.execute.counts:{}/{},{} ~ {} ----------------------------> start.sql:{}", pl, num, pSize, tl, sql);
row.close();
statement.close();
while (ct > 0) {
statement = connection.prepareStatement(sql);
int ls = pSize * num;
statement.setInt(1, ls);
statement.setInt(2, pSize);
row = (ResultSetImpl) statement.executeQuery();
log.info("DM.execute.limit {},{} - begin", ls, pSize);
List<AdamAddresses> addressesList = new ArrayList<>();
List<AdamAddressesVo> vos = new ArrayList<>();
while (row.next()) {
String uid = row.getString(2);
if (!reUidList.contains(uid)) {
AdamAddresses addresses = new AdamAddresses();
addresses.setAddressesId(row.getString(1));
addresses.setUid(uid);
addresses.setName(row.getString(3));
addresses.setPhone(row.getString(4));
addresses.setProvince(row.getString(5));
addresses.setCity(row.getString(6));
addresses.setCounty(row.getString(7));
addresses.setAddress(row.getString(8));
addresses.setIsDefault(row.getBoolean(9));
addresses.setState(1);
addresses.setCreatedAt(row.getLocalDateTime(10));
AdamAddressesVo vo = AdamAddressesVo.getNew().copy(addresses);
addressesList.add(addresses);
vos.add(vo);
}
if (addressesList.size() == 500 || (addressesList.size() > 0 && smFlg)) {
tl += addressesList.size();
mongoTemplate.insert(vos, AdamAddressesVo.class.getSimpleName());
log.info("DM.execute.limit.result:{}", dmAddressesService.saveBatch(addressesList));
vos.clear();
addressesList.clear();
}
}
row.close();
statement.close();
num++;
ct -= pSize;
log.info("DM.execute.limit {},{} - handle.counts:{}", ls, pSize, tl);
}
log.info("DM.execute.counts:{}/{},{} ~ {} ----------------------------> end", pl, num, pSize, tl);
} catch (Exception e) {
log.error("ex:getConnection,dG/dg:{}/{},msg:{}", dG, dg, e.getMessage());
}
try {
if (null != row) row.close();
} catch (SQLException ignored) {
}
try {
if (null != statement) statement.close();
} catch (SQLException ignored) {
}
try {
if (null != connection) connection.close();
} catch (SQLException ignored) {
}
}
}
package com.liquidnet.service.platform.service.impl.adam.dm.processor;
import com.liquidnet.service.adam.dto.vo.AdamCollectBaseVo;
import com.liquidnet.service.adam.entity.AdamCollection;
import com.liquidnet.service.platform.service.impl.adam.dm.DMCollectionService;
import com.liquidnet.service.platform.service.impl.adam.dm.DataMigrationProcessorService;
import com.mysql.cj.jdbc.result.ResultSetImpl;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
@Slf4j
@Service
public class DMCollectionProcessor extends DataMigrationProcessorService {
// @Autowired
// MongoTemplate mongoTemplate;
// @Autowired
// DMRdmService DMRdmService;
// @Autowired
// AdamUserMapper userMapper;
@Autowired
DMCollectionService dmCollectionService;
@SneakyThrows
@Override
public void dataProcessing(Integer dg, Integer dG, String incrDt, String flg, String flu) {
if (StringUtils.isNotEmpty(flu)) {
log.info("DM.flush.collection:{}", userMapper.executeForDM("adam_collection"));
log.info("DM.flush.AdamCollectVo:{}", mongoTemplate.remove(Query.query(Criteria.where("_id").exists(true)), AdamCollectBaseVo.class.getSimpleName()).getDeletedCount());
}
String sqlCount = "select count(1) from user_collections where type='TICKET' and status=1 and content_id>=5722 and created_at" + (StringUtils.isBlank(incrDt) ? "<" : ">=") + "curdate()";
if (null != dg) {
sqlCount = sqlCount + " and id%" + dG + "=" + dg;
}
String field = "uid,content_id,`type`,`status`,created_at,updated_at";
// 1-uid,2-content_id,3-`type`,4-`status`,5-created_at,6-updated_at
String sql = sqlCount.replace("count(1)", field);
boolean smFlg = "1".equals(flg);
if (smFlg) {
sqlCount += " and uid in ('2026628','544327','1997335','773650','809406','1167451','423063','677171')";
sql += " and uid in ('2026628','544327','1997335','773650','809406','1167451','423063','677171')";
}
sql += " order by id limit ?,?";
Connection connection = null;
PreparedStatement statement = null;
ResultSetImpl row = null;
try {
Class.forName(DB_DRIVER);
connection = DriverManager.getConnection(DB_URL + DB_NAME_PASSPORT, DB_USER, DB_PWD);
statement = connection.prepareStatement(sqlCount);
row = (ResultSetImpl) statement.executeQuery();
row.first();
int ct = row.getInt(1), pSize = 1000, num = 0, tl = 0, pl = ct;
log.info("DM.execute.counts:{}/{},{} ~ {} ----------------------------> start.sql:{}", pl, num, pSize, tl, sql);
row.close();
statement.close();
while (ct > 0) {
statement = connection.prepareStatement(sql);
int ls = pSize * num;
statement.setInt(1, ls);
statement.setInt(2, pSize);
row = (ResultSetImpl) statement.executeQuery();
log.info("DM.execute.limit {},{} - begin", ls, pSize);
List<AdamCollection> collectionList = new ArrayList<>();
List<AdamCollectBaseVo> vos = new ArrayList<>();
while (row.next()) {
String uid = row.getString(1);
if (!reUidList.contains(uid)) {
AdamCollection collection = new AdamCollection();
collection.setUid(uid);
collection.setContentId(row.getString(2));
collection.setType(row.getString(3));
collection.setState(row.getInt(4));
collection.setCreatedAt(row.getLocalDateTime(5));
collection.setUpdatedAt(row.getLocalDateTime(6));
collectionList.add(collection);
vos.add(AdamCollectBaseVo.getNew().copy(collection));
}
if (collectionList.size() == 500 || (collectionList.size() > 0 && smFlg)) {
tl += collectionList.size();
mongoTemplate.insert(vos, AdamCollectBaseVo.class.getSimpleName());
log.info("DM.execute.limit.result:{}", dmCollectionService.saveBatch(collectionList));
vos.clear();
collectionList.clear();
}
}
row.close();
statement.close();
num++;
ct -= pSize;
log.info("DM.execute.limit {},{} - handle.counts:{}", ls, pSize, tl);
}
log.info("DM.execute.counts:{}/{},{} ~ {} ----------------------------> end", pl, num, pSize, tl);
} catch (Exception e) {
log.error("ex:getConnection,dG/dg:{}/{},msg:{}", dG, dg, e.getMessage());
}
try {
if (null != row) row.close();
} catch (SQLException ignored) {
}
try {
if (null != statement) statement.close();
} catch (SQLException ignored) {
}
try {
if (null != connection) connection.close();
} catch (SQLException ignored) {
}
}
}
package com.liquidnet.service.platform.service.impl.adam.dm.processor;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.service.adam.entity.AdamEnters;
import com.liquidnet.service.platform.service.impl.adam.dm.DMEntersService;
import com.liquidnet.service.platform.service.impl.adam.dm.DataMigrationProcessorService;
import com.mysql.cj.jdbc.result.ResultSetImpl;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
@Slf4j
@Service
public class DMEntersProcessor extends DataMigrationProcessorService {
// @Autowired
// MongoTemplate mongoTemplate;
// @Autowired
// DMRdmService DMRdmService;
// @Autowired
// AdamUserMapper userMapper;
@Autowired
DMEntersService dmEntersService;
@SneakyThrows
@Override
public void dataProcessing(Integer dg, Integer dG, String incrDt, String flg, String flu) {
if (StringUtils.isNotEmpty(flu)) {
log.info("DM.flush.enters:{}", userMapper.executeForDM("adam_enters"));
log.info("DM.flush.AdamEntersVo:{}", mongoTemplate.remove(Query.query(Criteria.where("_id").exists(true)), AdamEntersVo.class.getSimpleName()).getDeletedCount());
}
String sqlCount = "select count(1) from enters where (type <> 1 or (type = 1 and is_certification = 'yes')) and created_at" + (StringUtils.isBlank(incrDt) ? "<" : ">=") + "curdate()";
if (null != dg) {
sqlCount = sqlCount + " and id%" + dG + "=" + dg;
}
String field = "id,user_id,type,`name`,mobile,idcode,if(is_default='no', 0, 1),created_at";
// 1-id,2-user_id,3-type,4-`name`,5-mobile,6-idcode,7-if(is_default='no', 0, 1),8-created_at
String sql = sqlCount.replace("count(1)", field);
boolean smFlg = "1".equals(flg);
if (smFlg) {
sqlCount += " and user_id in ('2026628','544327','1997335','773650','809406','1167451','423063','677171')";
sql += " and user_id in ('2026628','544327','1997335','773650','809406','1167451','423063','677171')";
}
sql += " order by id limit ?,?";
Connection connection = null;
PreparedStatement statement = null;
ResultSetImpl row = null;
try {
Class.forName(DB_DRIVER);
connection = DriverManager.getConnection(DB_URL + DB_NAME_MALL, DB_USER, DB_PWD);
statement = connection.prepareStatement(sqlCount);
row = (ResultSetImpl) statement.executeQuery();
row.first();
int ct = row.getInt(1), pSize = 1000, num = 0, tl = 0, pl = ct;
log.info("DM.execute.counts:{}/{},{} ~ {} ----------------------------> start.sql:{}", pl, num, pSize, tl, sql);
row.close();
statement.close();
while (ct > 0) {
statement = connection.prepareStatement(sql);
int ls = pSize * num;
statement.setInt(1, ls);
statement.setInt(2, pSize);
row = (ResultSetImpl) statement.executeQuery();
log.info("DM.execute.limit {},{} - begin", ls, pSize);
List<AdamEnters> entersList = new ArrayList<>();
List<AdamEntersVo> vos = new ArrayList<>();
while (row.next()) {
String uid = row.getString(2);
if (!reUidList.contains(uid)) {
AdamEnters enters = new AdamEnters();
enters.setEntersId(row.getString(1));
enters.setUid(uid);
enters.setType(row.getInt(3));
enters.setName(row.getString(4));
enters.setMobile(row.getString(5));
enters.setIdCard(row.getString(6));
enters.setIsDefault(row.getBoolean(7));
enters.setState(1);
enters.setCreatedAt(row.getLocalDateTime(8));
AdamEntersVo vo = AdamEntersVo.getNew().copy(enters);
entersList.add(enters);
vos.add(vo);
if (enters.getType() == 1) {
DMRdmService.setCertification(1, enters.getIdCard(), enters.getName());
}
}
if (entersList.size() == 500 || (entersList.size() > 0 && smFlg)) {
tl += entersList.size();
mongoTemplate.insert(vos, AdamEntersVo.class.getSimpleName());
log.info("DM.execute.limit.result:{}", dmEntersService.saveBatch(entersList));
vos.clear();
entersList.clear();
}
}
row.close();
statement.close();
num++;
ct -= pSize;
log.info("DM.execute.limit {},{} - handle.counts:{}", ls, pSize, tl);
}
log.info("DM.execute.counts:{}/{},{} ~ {} ----------------------------> end", pl, num, pSize, tl);
} catch (Exception e) {
log.error("ex:getConnection,dG/dg:{}/{},msg:{}", dG, dg, e.getMessage());
}
try {
if (null != row) row.close();
} catch (SQLException ignored) {
}
try {
if (null != statement) statement.close();
} catch (SQLException ignored) {
}
try {
if (null != connection) connection.close();
} catch (SQLException ignored) {
}
}
}
package com.liquidnet.service.platform.service.impl.adam.dm.processor;
import com.liquidnet.service.adam.dto.vo.AdamMemberOrderVo;
import com.liquidnet.service.adam.entity.AdamMemberOrder;
import com.liquidnet.service.platform.service.impl.adam.dm.DMMemberOrderService;
import com.liquidnet.service.platform.service.impl.adam.dm.DataMigrationProcessorService;
import com.mysql.cj.jdbc.result.ResultSetImpl;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Slf4j
@Service
public class DMMemberOrderProcessor extends DataMigrationProcessorService {
// @Autowired
// MongoTemplate mongoTemplate;
// @Autowired
// DMRdmService DMRdmService;
// @Autowired
// AdamUserMapper userMapper;
@Autowired
DMMemberOrderService dmMemberOrderService;
// APPWEPAY|APPALIPAY|WAPWEPAY|WAPALIPAY|JSWEPAY|GIFT_CODE|VIP_CODE|APPLETWEPAY
public static final Map<String, String> dfMap = new HashMap<>();
public static final Map<String, String> ptMap = new HashMap<>();
static {
dfMap.put("APPWEPAY", "app");
dfMap.put("APPALIPAY", "app");
dfMap.put("WAPWEPAY", "wap");
dfMap.put("WAPALIPAY", "wap");
dfMap.put("JSWEPAY", "js");
dfMap.put("APPLETWEPAY", "applet");
dfMap.put("APPLETALIPAY", "applet");
ptMap.put("APPWEPAY", "wepay");
ptMap.put("APPALIPAY", "alipay");
ptMap.put("WAPWEPAY", "wepay");
ptMap.put("WAPALIPAY", "alipay");
ptMap.put("JSWEPAY", "wepay");
ptMap.put("APPLETWEPAY", "wepay");
ptMap.put("APPLETALIPAY", "alipay");
}
@SneakyThrows
@Override
public void dataProcessing(Integer dg, Integer dG, String incrDt, String flg, String flu) {
if (StringUtils.isNotEmpty(flu)) {
log.info("DM.flush.member_order:{}", userMapper.executeForDM("adam_member_order"));
log.info("DM.flush.AdamMemberOrderVo:{}", mongoTemplate.remove(Query.query(Criteria.where("_id").exists(true)), AdamMemberOrderVo.class.getSimpleName()).getDeletedCount());
}
String sqlCount = "select count(1) from user_vip_card_orders where status in (1,5) and created_at" + (StringUtils.isBlank(incrDt) ? "<" : ">=") + "curdate()";
if (null != dg) {
sqlCount = sqlCount + " and id%" + dG + "=" + dg;
}
String field = "order_code,uid,order_sub_type,vip_card_price,price,status,card_number,birthday,pay_type,pay_code,pay_at,created_at,updated_at,client_ip,source,version";
// 1-order_code,2-uid,3-order_sub_type,4-vip_card_price,5-price,6-status,7-card_number,8-birthday,
// 9-pay_type,10-pay_code,11-pay_at,12-created_at,13-updated_at,14-client_ip,15-source,16-version
String sql = sqlCount.replace("count(1)", field);
boolean smFlg = "1".equals(flg);
if (smFlg) {
sqlCount += " and uid in ('2026628','544327','1997335','773650','809406','1167451','423063','677171')";
sql += " and uid in ('2026628','544327','1997335','773650','809406','1167451','423063','677171')";
}
sql += " order by id limit ?,?";
Connection connection = null;
PreparedStatement statement = null;
ResultSetImpl row = null;
try {
Class.forName(DB_DRIVER);
connection = DriverManager.getConnection(DB_URL + DB_NAME_PASSPORT, DB_USER, DB_PWD);
statement = connection.prepareStatement(sqlCount);
row = (ResultSetImpl) statement.executeQuery();
row.first();
int ct = row.getInt(1), pSize = 1000, num = 0, tl = 0, pl = ct;
log.info("DM.execute.counts:{}/{},{} ~ {} ----------------------------> start.sql:{}", pl, num, pSize, tl, sql);
row.close();
statement.close();
while (ct > 0) {
statement = connection.prepareStatement(sql);
int ls = pSize * num;
statement.setInt(1, ls);
statement.setInt(2, pSize);
row = (ResultSetImpl) statement.executeQuery();
log.info("DM.execute.limit {},{} - begin", ls, pSize);
List<AdamMemberOrder> memberOrderList = new ArrayList<>();
List<AdamMemberOrderVo> vos = new ArrayList<>();
while (row.next()) {
String uid = row.getString(2);
if (!reUidList.contains(uid)) {
AdamMemberOrder memberOrder = new AdamMemberOrder();
memberOrder.setOrderNo(row.getString(1));
memberOrder.setUid(uid);
memberOrder.setMode(row.getInt(3));
memberOrder.setPrice(row.getBigDecimal(4));
memberOrder.setPricePaid(row.getBigDecimal(5));
memberOrder.setMemberName(MEMBER_NAME);
memberOrder.setMemberId(MEMBER_ID);
memberOrder.setMemberPriceId(MEMBER_ID);
memberOrder.setDays(365);
memberOrder.setState(row.getInt(6));
memberOrder.setMemberNo(row.getString(7));
memberOrder.setBirthday(row.getString(8));
String payType = row.getString(9);
memberOrder.setDeviceFrom(dfMap.get(payType));
memberOrder.setPayType(ptMap.get(payType));
memberOrder.setPayNo(row.getString(10));
memberOrder.setPaymentAt(row.getLocalDateTime(11));
memberOrder.setCreatedAt(row.getLocalDateTime(12));
memberOrder.setUpdatedAt(row.getLocalDateTime(13));
memberOrder.setClientIp(row.getString(14));
memberOrder.setSource(row.getString(15));
memberOrder.setVersion(row.getString(16));
AdamMemberOrderVo vo = AdamMemberOrderVo.getNew().copy(memberOrder);
memberOrderList.add(memberOrder);
vos.add(vo);
}
if (memberOrderList.size() == 500 || (memberOrderList.size() > 0 && smFlg)) {
tl += memberOrderList.size();
mongoTemplate.insert(vos, AdamMemberOrderVo.class.getSimpleName());
log.info("DM.execute.limit.result:{}", dmMemberOrderService.saveBatch(memberOrderList));
vos.clear();
memberOrderList.clear();
}
}
row.close();
statement.close();
num++;
ct -= pSize;
log.info("DM.execute.limit {},{} - handle.counts:{}", ls, pSize, tl);
}
log.info("DM.execute.counts:{}/{},{} ~ {} ----------------------------> end", pl, num, pSize, tl);
} catch (Exception e) {
log.error("ex:getConnection,dG/dg:{}/{},msg:{}", dG, dg, e.getMessage());
}
try {
if (null != row) row.close();
} catch (SQLException ignored) {
}
try {
if (null != statement) statement.close();
} catch (SQLException ignored) {
}
try {
if (null != connection) connection.close();
} catch (SQLException ignored) {
}
}
}
package com.liquidnet.service.platform.service.impl.adam.dm.processor;
import com.liquidnet.service.adam.dto.vo.AdamRealInfoVo;
import com.liquidnet.service.adam.entity.AdamRealName;
import com.liquidnet.service.platform.service.impl.adam.dm.DMRealNameService;
import com.liquidnet.service.platform.service.impl.adam.dm.DataMigrationProcessorService;
import com.mysql.cj.jdbc.result.ResultSetImpl;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
@Slf4j
@Service
public class DMRealNameProcessor extends DataMigrationProcessorService {
// @Autowired
// MongoTemplate mongoTemplate;
// @Autowired
// DMRdmService DMRdmService;
// @Autowired
// AdamUserMapper userMapper;
@Autowired
DMRealNameService dmRealNameService;
@SneakyThrows
@Override
public void dataProcessing(Integer dg, Integer dG, String incrDt, String flg, String flu) {
if (StringUtils.isNotEmpty(flu)) {
log.info("DM.flush.real_name:{}", userMapper.executeForDM("adam_real_name"));
log.info("DM.flush.AdamRealInfoVo:{}", mongoTemplate.remove(Query.query(Criteria.where("_id").exists(true)), AdamRealInfoVo.class.getSimpleName()).getDeletedCount());
}
String sqlCount = "select count(1) from user_real_name where id not in (9145,7456,7448,7197,7194,4137,4138,4139,269,261,262,263,264,265,266,267,251) and created_at" + (StringUtils.isBlank(incrDt) ? "<" : ">=") + "curdate()";
if (null != dg) {
sqlCount = sqlCount + " and id%" + dG + "=" + dg;
}
String field = "id,uid,real_name,id_card,ifnull(created_at, '1970-01-01 00:00:00') created_at,updated_at";
// 1-id,2-uid,3-real_name,4-id_card,5-created_at,6-updated_at
String sql = sqlCount.replace("count(1)", field);
boolean smFlg = "1".equals(flg);
if (smFlg) {
sqlCount += " and uid in ('2026628','544327','1997335','773650','809406','1167451','423063','677171')";
sql += " and uid in ('2026628','544327','1997335','773650','809406','1167451','423063','677171')";
}
sql += " order by id limit ?,?";
Connection connection = null;
PreparedStatement statement = null;
ResultSetImpl row = null;
try {
Class.forName(DB_DRIVER);
connection = DriverManager.getConnection(DB_URL + DB_NAME_PASSPORT, DB_USER, DB_PWD);
statement = connection.prepareStatement(sqlCount);
row = (ResultSetImpl) statement.executeQuery();
row.first();
int ct = row.getInt(1), pSize = 1000, num = 0, tl = 0, pl = ct;
log.info("DM.execute.counts:{}/{},{} ~ {} ----------------------------> start.sql:{}", pl, num, pSize, tl, sql);
row.close();
statement.close();
while (ct > 0) {
statement = connection.prepareStatement(sql);
int ls = pSize * num;
statement.setInt(1, ls);
statement.setInt(2, pSize);
row = (ResultSetImpl) statement.executeQuery();
log.info("DM.execute.limit {},{} - begin", ls, pSize);
List<AdamRealName> realNameList = new ArrayList<>();
List<AdamRealInfoVo> vos = new ArrayList<>();
while (row.next()) {
String uid = row.getString(2);
if (!reUidList.contains(uid)) {
AdamRealName realName = new AdamRealName();
realName.setRealNameId(row.getString(1));
realName.setUid(uid);
realName.setType(1);
realName.setName(row.getString(3));
realName.setIdCard(row.getString(4));
realName.setState(1);
realName.setCreatedAt(row.getLocalDateTime(5));
realName.setUpdatedAt(row.getLocalDateTime(6));
AdamRealInfoVo vo = AdamRealInfoVo.getNew();
vo.setUid(uid);
vo.setType(1);
vo.setName(realName.getName());
vo.setIdCard(realName.getIdCard());
vo.setState(1);
realNameList.add(realName);
vos.add(vo);
DMRdmService.setCertification(1, realName.getIdCard(), realName.getName());
}
if (realNameList.size() == 500 || (realNameList.size() > 0 && smFlg)) {
tl += realNameList.size();
mongoTemplate.insert(vos, AdamRealInfoVo.class.getSimpleName());
log.info("DM.execute.limit.result:{}", dmRealNameService.saveBatch(realNameList));
vos.clear();
realNameList.clear();
}
}
row.close();
statement.close();
num++;
ct -= pSize;
log.info("DM.execute.limit {},{} - handle.counts:{}", ls, pSize, tl);
}
log.info("DM.execute.counts:{}/{},{} ~ {} ----------------------------> end", pl, num, pSize, tl);
} catch (Exception e) {
log.error("ex:getConnection,dG/dg:{}/{},msg:{}", dG, dg, e.getMessage());
}
try {
if (null != row) row.close();
} catch (SQLException ignored) {
}
try {
if (null != statement) statement.close();
} catch (SQLException ignored) {
}
try {
if (null != connection) connection.close();
} catch (SQLException ignored) {
}
}
}
package com.liquidnet.service.platform.service.impl.adam.dm.processor;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.adam.dto.vo.AdamThirdPartInfoVo;
import com.liquidnet.service.adam.entity.AdamThirdParty;
import com.liquidnet.service.platform.service.impl.adam.dm.DMThirdPartyService;
import com.liquidnet.service.platform.service.impl.adam.dm.DataMigrationProcessorService;
import com.mysql.cj.jdbc.result.ResultSetImpl;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
@Slf4j
@Service
public class DMThirdPartsProcessor extends DataMigrationProcessorService {
// @Autowired
// MongoTemplate mongoTemplate;
// @Autowired
// DMRdmService DMRdmService;
// @Autowired
// AdamUserMapper userMapper;
@Autowired
DMThirdPartyService dmThirdPartyService;
@SneakyThrows
@Override
public void dataProcessing(Integer dg, Integer dG, String incrDt, String flg, String flu) {
if (StringUtils.isNotEmpty(flu)) {
log.info("DM.flush.third_party:{}", userMapper.executeForDM("adam_third_party"));
log.info("DM.flush.AdamThirdPartInfoVo:{}", mongoTemplate.remove(Query.query(Criteria.where("_id").exists(true)), AdamThirdPartInfoVo.class.getSimpleName()).getDeletedCount());
}
String sqlCount = "select count(1) from (\n" +
" select row_number() over (partition by uid,type order by created_at desc) rn,id,uid,open_id,avatar,nickname,type,created_at,updated_at from user_third_parts where `status`=1 and delete_tag in (0,1) and open_id<>'' and uid>0 and created_at" + (StringUtils.isBlank(incrDt) ? "<" : ">=") + "curdate()\n" +
" ) t where t.rn=1";
if (null != dg) {
sqlCount = sqlCount + " and id%" + dG + "=" + dg;
}
String field = "uid,open_id,avatar,nickname,type,created_at,updated_at";
// 1-uid,2-open_id,3-avatar,4-nickname,5-type,6-created_at,7-updated_at
String sql = sqlCount.replace("count(1)", field);
boolean smFlg = "1".equals(flg);
if (smFlg) {
sqlCount += " and uid in ('2026628','544327','1997335','773650','809406','1167451','423063','677171')";
sql += " and uid in ('2026628','544327','1997335','773650','809406','1167451','423063','677171')";
}
sql += " order by id limit ?,?";
LocalDateTime currentYear = DateUtil.Formatter.yyyyMMddHHmmss.parse("2021-01-01 00:00:00");
Connection connection = null;
PreparedStatement statement = null;
ResultSetImpl row = null;
try {
Class.forName(DB_DRIVER);
connection = DriverManager.getConnection(DB_URL + DB_NAME_PASSPORT, DB_USER, DB_PWD);
statement = connection.prepareStatement(sqlCount);
row = (ResultSetImpl) statement.executeQuery();
row.first();
int ct = row.getInt(1), pSize = 1000, num = 0, tl = 0, pl = ct;
log.info("DM.execute.counts:{}/{},{} ~ {} ----------------------------> start.sql:{}", pl, num, pSize, tl, sql);
row.close();
statement.close();
while (ct > 0) {
statement = connection.prepareStatement(sql);
int ls = pSize * num;
statement.setInt(1, ls);
statement.setInt(2, pSize);
row = (ResultSetImpl) statement.executeQuery();
log.info("DM.execute.limit {},{} - begin", ls, pSize);
List<AdamThirdParty> thirdPartyList = new ArrayList<>();
List<AdamThirdPartInfoVo> vos = new ArrayList<>();
while (row.next()) {
String uid = row.getString(1);
if (!reUidList.contains(uid)) {
AdamThirdParty thirdParty = new AdamThirdParty();
thirdParty.setUid(uid);
thirdParty.setOpenId(row.getString(2));
thirdParty.setAvatar(row.getString(3));
thirdParty.setNickname(row.getString(4));
thirdParty.setPlatform(row.getString(5));
thirdParty.setState(1);
LocalDateTime createdAt = row.getLocalDateTime(6);
thirdParty.setCreatedAt(createdAt);
thirdParty.setUpdatedAt(row.getLocalDateTime(7));
AdamThirdPartInfoVo vo = AdamThirdPartInfoVo.getNew();
vo.setUid(thirdParty.getUid());
vo.setOpenId(thirdParty.getOpenId());
vo.setNickname(thirdParty.getNickname());
vo.setAvatar(thirdParty.getAvatar());
vo.setPlatform(thirdParty.getPlatform());
vo.setState(thirdParty.getState());
vo.setCreatedAt(thirdParty.getCreatedAt());
vo.setUpdatedAt(thirdParty.getUpdatedAt());
thirdPartyList.add(thirdParty);
vos.add(vo);
if (currentYear.isBefore(createdAt)) {
DMRdmService.setUidByPlatformOpenId(thirdParty.getPlatform(), thirdParty.getOpenId(), uid);
}
}
if (thirdPartyList.size() == 500 || (thirdPartyList.size() > 0 && smFlg)) {
tl += thirdPartyList.size();
mongoTemplate.insert(vos, AdamThirdPartInfoVo.class.getSimpleName());
log.info("DM.execute.limit.result:{}", dmThirdPartyService.saveBatch(thirdPartyList));
vos.clear();
thirdPartyList.clear();
}
}
row.close();
statement.close();
num++;
ct -= pSize;
log.info("DM.execute.limit {},{} - handle.counts:{}", ls, pSize, tl);
}
log.info("DM.execute.counts:{}/{},{} ~ {} ----------------------------> end", pl, num, pSize, tl);
} catch (Exception e) {
log.error("ex:getConnection,dG/dg:{}/{},msg:{}", dG, dg, e.getMessage());
}
try {
if (null != row) row.close();
} catch (SQLException ignored) {
}
try {
if (null != statement) statement.close();
} catch (SQLException ignored) {
}
try {
if (null != connection) connection.close();
} catch (SQLException ignored) {
}
}
}
package com.liquidnet.service.platform.service.impl.adam.dm.processor;
import com.liquidnet.service.adam.dto.vo.AdamMemberPriceVo;
import com.liquidnet.service.adam.dto.vo.AdamMemberVo;
import com.liquidnet.service.adam.entity.AdamMember;
import com.liquidnet.service.adam.entity.AdamMemberPrice;
import com.liquidnet.service.adam.mapper.AdamMemberMapper;
import com.liquidnet.service.adam.mapper.AdamMemberPriceMapper;
import com.liquidnet.service.adam.mapper.AdamUserMapper;
import com.liquidnet.service.platform.service.impl.adam.dm.DMRdmService;
import com.liquidnet.service.platform.service.impl.adam.dm.DataMigrationProcessorService;
import com.mysql.cj.jdbc.result.ResultSetImpl;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
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 java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Collections;
@Slf4j
@Service
public class DMTracesInfoProcessor extends DataMigrationProcessorService {
// @Autowired
// MongoTemplate mongoTemplate;
// @Autowired
// DMRdmService DMRdmService;
// @Autowired
// AdamUserMapper userMapper;
@Autowired
AdamMemberMapper memberMapper;
@Autowired
AdamMemberPriceMapper memberPriceMapper;
@Override
public void dataProcessing(Integer dg, Integer dG, String incrDt, String flg, String flu) {
if (StringUtils.isNotEmpty(flu)) {
log.info("DM.flush.member:{}", userMapper.executeForDM("adam_member"));
log.info("DM.flush.member_price:{}", userMapper.executeForDM("adam_member_price"));
log.info("DM.flush.AdamMemberVo:{}", mongoTemplate.remove(Query.query(Criteria.where("_id").exists(true)), AdamMemberVo.class.getSimpleName()).getDeletedCount());
log.info("DM.flush.AdamMemberPriceVo:{}", mongoTemplate.remove(Query.query(Criteria.where("_id").exists(true)), AdamMemberPriceVo.class.getSimpleName()).getDeletedCount());
}
this.memberCardInfoHandler();
this.memberCardPriceHandler();
}
@SneakyThrows
private void memberCardInfoHandler() {
Connection connection = null;
PreparedStatement statement = null;
ResultSetImpl row = null;
try {
String sql = "select id,`name`,sub_title,icon,avatar,min_card_number,if(`type`='VIP',1,0),interests_detail,notes,created_at,updated_at,is_notice,vip_notice,vip_notice_title,need_question,display_agreement,status,limitation from vip_cards";
// 1-id,2-`name`,3-sub_title,4-icon,5-avatar,6-min_card_number,7-`type`,8-interests_detail,9-notes,10-created_at,11-updated_at,12-is_notice,13-vip_notice,14-vip_notice_title,15-need_question,16-display_agreement,17-status,18-limitation
Class.forName(DB_DRIVER);
connection = DriverManager.getConnection(DB_URL + DB_NAME_PASSPORT, DB_USER, DB_PWD);
statement = connection.prepareStatement(sql);
row = (ResultSetImpl) statement.executeQuery();
row.first();
AdamMember o = new AdamMember();
o.setMemberId(row.getString(1));
o.setName(row.getString(2));
o.setTitle(o.getName());
o.setSubTitle(row.getString(3));
o.setIcon(row.getString(4));
o.setAvatar(row.getString(5));
o.setStartNo(10000);
o.setType(row.getInt(7));
o.setInterestsDetail(row.getString(8));
o.setNotes(row.getString(9));
o.setCreatedAt(row.getLocalDateTime(10));
o.setUpdatedAt(row.getLocalDateTime(11));
o.setIsNotice(row.getInt(12));
o.setNoticeInfo(row.getString(13));
o.setNoticeTitle(row.getString(14));
o.setNeedQuestion(row.getInt(15));
o.setDisplayAgreement(row.getInt(16));
o.setState(row.getInt(17));
o.setLimitation(row.getInt(18));
AdamMemberVo vo = AdamMemberVo.getNew().copy(o);
DMRdmService.setMemberVoByMemberId(vo.getMemberId(), vo);
memberMapper.insert(o);
mongoTemplate.insert(vo, AdamMemberVo.class.getSimpleName());
row.close();
statement.close();
connection.close();
} catch (Exception throwables) {
throwables.printStackTrace();
}
try {
if (null != row) row.close();
} catch (SQLException ignored) {
}
try {
if (null != statement) statement.close();
} catch (SQLException ignored) {
}
try {
if (null != connection) connection.close();
} catch (SQLException ignored) {
}
}
@SneakyThrows
private void memberCardPriceHandler() {
Connection connection = null;
PreparedStatement statement = null;
ResultSetImpl row = null;
try {
String sql = "select id,vip_card_id,status,name,price,days,detail,created_at,updated_at from vip_card_prices";
// 1-id,2-vip_card_id,3-status,4-name,5-price,6-days,7-detail,8-created_at,9-updated_at
Class.forName(DB_DRIVER);
// String url = "jdbc:mysql://pc-2ze6z2hxkug559q79.mysql.polardb.rds.aliyuncs.com:3306/passport";
String url = "jdbc:mysql://zhengzai.mysql.polardb.rds.aliyuncs.com:3306/passport";
connection = DriverManager.getConnection(url, "readonly", "ZWDsf8Fy");
statement = connection.prepareStatement(sql);
row = (ResultSetImpl) statement.executeQuery();
row.first();
AdamMemberPrice o = new AdamMemberPrice();
o.setMemberPriceId(row.getString(1));
o.setMemberId(row.getString(2));
o.setState(row.getInt(3));
o.setName(row.getString(4));
o.setPrice(row.getBigDecimal(5));
o.setPriceFixed(o.getPrice());
o.setDays(row.getInt(6));
o.setDetail(row.getString(7));
o.setCreatedAt(row.getLocalDateTime(8));
o.setUpdatedAt(row.getLocalDateTime(9));
AdamMemberPriceVo vo = AdamMemberPriceVo.getNew().copy(o);
DMRdmService.setMemberPriceVoByMemberId(vo.getMemberId(), Collections.singletonList(vo));
memberPriceMapper.insert(o);
mongoTemplate.insert(vo, AdamMemberPriceVo.class.getSimpleName());
} catch (Exception throwables) {
throwables.printStackTrace();
}
try {
if (null != row) row.close();
} catch (SQLException ignored) {
}
try {
if (null != statement) statement.close();
} catch (SQLException ignored) {
}
try {
if (null != connection) connection.close();
} catch (SQLException ignored) {
}
}
}
package com.liquidnet.service.platform.service.impl.adam.dm.processor;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.adam.dto.vo.AdamTagVo;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.adam.entity.AdamUser;
import com.liquidnet.service.adam.entity.AdamUserInfo;
import com.liquidnet.service.platform.service.impl.adam.dm.DMUserInfoService;
import com.liquidnet.service.platform.service.impl.adam.dm.DMUserService;
import com.liquidnet.service.platform.service.impl.adam.dm.DataMigrationProcessorService;
import com.mysql.cj.jdbc.result.ResultSetImpl;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Slf4j
@Service
public class DMUserInformationProcessor extends DataMigrationProcessorService {
// @Autowired
// MongoTemplate mongoTemplate;
// @Autowired
// DMRdmService DMRdmService;
// @Autowired
// AdamUserMapper userMapper;
@Autowired
DMUserService dmUserService;
@Autowired
DMUserInfoService dmUserInfoService;
public static Map<String, AdamTagVo> sexMap = new HashMap<>();
static {
sexMap.put("SECRET", AdamTagVo.getNew().setVal("MS00").setDesc("保密"));
sexMap.put("MALE", AdamTagVo.getNew().setVal("MS01").setDesc("男性"));
sexMap.put("FEMALE", AdamTagVo.getNew().setVal("MS02").setDesc("女性"));
}
@SneakyThrows
@Override
public void dataProcessing(Integer dg, Integer dG, String incrDt, String flg, String flu) {
if (StringUtils.isNotEmpty(flu)) {
log.info("DM.flush.user:{}", userMapper.executeForDM("adam_user"));
log.info("DM.flush.user_info:{}", userMapper.executeForDM("adam_user_info"));
log.info("DM.flush.AdamUserInfoVo:{}", mongoTemplate.remove(Query.query(Criteria.where("_id").exists(true)), AdamUserInfoVo.class.getSimpleName()).getDeletedCount());
}
// String sqlCount = "select count(1) from users where delete_tag in (0,1) and length(mobile)=11 and created_at" + (StringUtils.isBlank(incrDt) ? "<" : ">=") + "curdate()";
String sqlCount = "select count(1) from users where delete_tag in (0,1) and created_at" + (StringUtils.isBlank(incrDt) ? "<" : ">=") + "curdate()";
if (null != dg) {
sqlCount = sqlCount + " and uid%" + dG + "=" + dg;
}
String field = "uid,mobile,username,sex,birthday,area,sign,face_url,back_url,created_at,updated_at,is_complete,rong_cloud_token,rong_cloud_tag";
// 1-uid,2-mobile,3-username,4-sex,5-birthday,6-area,7-sign,8-face_url,9-back_url,10-created_at,11-updated_at,12-is_complete,13-rong_cloud_token,14-rong_cloud_tag
String sql = sqlCount.replace("count(1)", field);
boolean smFlg = "1".equals(flg);
if (smFlg) {
sqlCount += "and mobile in ('13753596360','17701223310','18518013286','18548596019','15901093014','17382319723','13631444097','13671737873')";
sql += " and mobile in ('13753596360','17701223310','18518013286','18548596019','15901093014','17382319723','13631444097','13671737873')";
}
sql += " order by uid limit ?,?";
LocalDateTime currentYear = DateUtil.Formatter.yyyyMMddHHmmss.parse("2021-01-01 00:00:00");
Connection connection = null;
PreparedStatement statement = null;
ResultSetImpl row = null;
try {
Class.forName(DB_DRIVER);
connection = DriverManager.getConnection(DB_URL + DB_NAME_PASSPORT, DB_USER, DB_PWD);
statement = connection.prepareStatement(sqlCount);
row = (ResultSetImpl) statement.executeQuery();
row.first();
int ct = row.getInt(1), pSize = 1000, num = 0, tl = 0, pl = ct;
log.info("DM.execute.counts:{}/{},{} ~ {} ----------------------------> start.sql:{}", pl, num, pSize, tl, sql);
row.close();
statement.close();
while (ct > 0) {
statement = connection.prepareStatement(sql);
int ls = pSize * num;
statement.setInt(1, ls);
statement.setInt(2, pSize);
row = (ResultSetImpl) statement.executeQuery();
log.info("DM.execute.limit {},{} - begin", ls, pSize);
List<AdamUser> userList = new ArrayList<>();
List<AdamUserInfo> userInfoList = new ArrayList<>();
List<AdamUserInfoVo> vos = new ArrayList<>();
while (row.next()) {
AdamTagVo sex = sexMap.get(row.getString(4));
String uid = row.getString(1);
if (!reUidList.contains(uid)) {
AdamUser user = new AdamUser();
user.setUid(uid);
String mobile = row.getString(2);
user.setMobile(mobile);
LocalDateTime createdAt = row.getLocalDateTime(10), updatedAt = row.getLocalDateTime(11);
user.setCreatedAt(createdAt);
user.setUpdatedAt(updatedAt);
user.setState(1);
AdamUserInfo userInfo = new AdamUserInfo();
userInfo.setUid(user.getUid());
userInfo.setNickname(row.getString(3));
userInfo.setSex(JsonUtils.toJson(sex));
userInfo.setBirthday(row.getLocalDate(5));
userInfo.setArea(row.getString(6));
userInfo.setSignature(row.getString(7));
userInfo.setAvatar(row.getString(8));
userInfo.setBackground(row.getString(9));
userInfo.setQrCode("lN".concat(userInfo.getUid()).concat(RandomStringUtils.randomAlphanumeric(5).toUpperCase()));
userInfo.setRongCloudToken(row.getString(13));
userInfo.setRongCloudTag(row.getInt(14));
AdamUserInfoVo vo = AdamUserInfoVo.getNew();
vo.setUid(user.getUid());
vo.setMobile(user.getMobile());
vo.setNickname(userInfo.getNickname());
vo.setState(user.getState());
vo.setSex(sex);
vo.setBirthday(DateUtil.Formatter.yyyy_MM_dd.format(userInfo.getBirthday()));
vo.setArea(userInfo.getArea());
vo.setSignature(userInfo.getSignature());
vo.setAvatar(userInfo.getAvatar());
vo.setBackground(userInfo.getBackground());
vo.setCreateAt(user.getCreatedAt());
vo.setUpdatedAt(user.getUpdatedAt());
vo.setIsComplete(row.getInt(12));
vo.setQrCode(userInfo.getQrCode());
userList.add(user);
userInfoList.add(userInfo);
vos.add(vo);
if (StringUtils.length(mobile) == 11 &&
(currentYear.isBefore(createdAt) || currentYear.isBefore(updatedAt))) {
DMRdmService.setUidByMobile(mobile, uid);
}
}
if (userList.size() == 500 || (userList.size() > 0 && smFlg)) {
tl += userList.size();
mongoTemplate.insert(vos, AdamUserInfoVo.class.getSimpleName());
log.info("DM.execute.result:{} - {}", dmUserService.saveBatch(userList), dmUserInfoService.saveBatch(userInfoList));
vos.clear();
userList.clear();
userInfoList.clear();
}
}
row.close();
statement.close();
num++;
ct -= pSize;
log.info("DM.execute.limit {},{} - handle.counts:{}", ls, pSize, tl);
}
log.info("DM.execute.counts:{}/{},{} ~ {} ----------------------------> end", pl, num, pSize, tl);
} catch (Exception e) {
log.error("ex:getConnection,dG/dg:{}/{},msg:{}", dG, dg, e.getMessage());
}
try {
if (null != row) row.close();
} catch (SQLException ignored) {
}
try {
if (null != statement) statement.close();
} catch (SQLException ignored) {
}
try {
if (null != connection) connection.close();
} catch (SQLException ignored) {
}
}
}
package com.liquidnet.service.platform.service.impl.adam.dm.processor;
import com.liquidnet.service.adam.dto.vo.AdamUserMemberVo;
import com.liquidnet.service.adam.entity.AdamUserMember;
import com.liquidnet.service.platform.service.impl.adam.dm.DMUserMemberService;
import com.liquidnet.service.platform.service.impl.adam.dm.DataMigrationProcessorService;
import com.mysql.cj.jdbc.result.ResultSetImpl;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
@Slf4j
@Service
public class DMUserMemberProcessor extends DataMigrationProcessorService {
// @Autowired
// MongoTemplate mongoTemplate;
// @Autowired
// DMRdmService DMRdmService;
// @Autowired
// AdamUserMapper userMapper;
@Autowired
DMUserMemberService dmUserMemberService;
@SneakyThrows
@Override
public void dataProcessing(Integer dg, Integer dG, String incrDt, String flg, String flu) {
if (StringUtils.isNotEmpty(flu)) {
log.info("DM.flush.user_member:{}", userMapper.executeForDM("adam_user_member"));
log.info("DM.flush.AdamUserMemberVo:{}", mongoTemplate.remove(Query.query(Criteria.where("_id").exists(true)), AdamUserMemberVo.class.getSimpleName()).getDeletedCount());
}
String sqlCount = "select count(1) from user_cards where created_at" + (StringUtils.isBlank(incrDt) ? "<" : ">=") + "curdate()";
if (null != dg) {
sqlCount = sqlCount + " and id%" + dG + "=" + dg;
}
String field = "uid,card_id,card_number,`status`,expired_at,created_at,updated_at";
// 1-uid,2-card_id,3-card_number,4-status,5-expired_at,6-created_at,7-updated_at
String sql = sqlCount.replace("count(1)", field);
boolean smFlg = "1".equals(flg);
if (smFlg) {
sqlCount += " and uid in ('2026628','544327','1997335','773650','809406','1167451','423063','677171')";
sql += " and uid in ('2026628','544327','1997335','773650','809406','1167451','423063','677171')";
}
sql += " order by id limit ?,?";
Connection connection = null;
PreparedStatement statement = null;
ResultSetImpl row = null;
try {
Class.forName(DB_DRIVER);
connection = DriverManager.getConnection(DB_URL + DB_NAME_PASSPORT, DB_USER, DB_PWD);
statement = connection.prepareStatement(sqlCount);
row = (ResultSetImpl) statement.executeQuery();
row.first();
int ct = row.getInt(1), pSize = 1000, num = 0, tl = 0, pl = ct;
log.info("DM.execute.counts:{}/{},{} ~ {} ----------------------------> start.sql:{}", pl, num, pSize, tl, sql);
row.close();
statement.close();
while (ct > 0) {
statement = connection.prepareStatement(sql);
int ls = pSize * num;
statement.setInt(1, ls);
statement.setInt(2, pSize);
row = (ResultSetImpl) statement.executeQuery();
log.info("DM.execute.limit {},{} - begin", ls, pSize);
List<AdamUserMember> userMemberList = new ArrayList<>();
List<AdamUserMemberVo> vos = new ArrayList<>();
while (row.next()) {
String uid = row.getString(1);
if (!reUidList.contains(uid)) {
AdamUserMember userMember = new AdamUserMember();
userMember.setUid(uid);
userMember.setMemberId(row.getString(2));
userMember.setMemberNo(row.getString(3));
userMember.setState(row.getInt(4));
userMember.setExpiryAt(row.getLocalDateTime(5));
userMember.setCreatedAt(row.getLocalDateTime(6));
userMember.setUpdatedAt(row.getLocalDateTime(7));
AdamUserMemberVo vo = AdamUserMemberVo.getNew();
vo.setUid(uid);
vo.setMemberId(userMember.getMemberId());
vo.setMemberNo(userMember.getMemberNo());
vo.setState(userMember.getState());
vo.setExpiryAt(userMember.getExpiryAt());
vo.setCreatedAt(userMember.getCreatedAt());
vo.setUpdatedAt(userMember.getUpdatedAt());
userMemberList.add(userMember);
vos.add(vo);
DMRdmService.setUserMemberVoByUid(uid, vo);
}
if (userMemberList.size() == 500 || (userMemberList.size() > 0 && smFlg)) {
tl += userMemberList.size();
mongoTemplate.insert(vos, AdamUserMemberVo.class.getSimpleName());
log.info("DM.execute.limit.result:{}", dmUserMemberService.saveBatch(userMemberList));
vos.clear();
userMemberList.clear();
}
}
row.close();
statement.close();
num++;
ct -= pSize;
log.info("DM.execute.limit {},{} - handle.counts:{}", ls, pSize, tl);
}
log.info("DM.execute.counts:{}/{},{} ~ {} ----------------------------> end", pl, num, pSize, tl);
} catch (Exception e) {
log.error("ex:getConnection,dG/dg:{}/{},msg:{}", dG, dg, e.getMessage());
}
try {
if (null != row) row.close();
} catch (SQLException ignored) {
}
try {
if (null != statement) statement.close();
} catch (SQLException ignored) {
}
try {
if (null != connection) connection.close();
} catch (SQLException ignored) {
}
}
}
package com.liquidnet.service.platform.utils;
import com.fasterxml.jackson.databind.JsonNode;
import com.liquidnet.commons.lang.util.HttpUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.kylin.dto.vo.middle.message.MessageConfigVo;
import com.liquidnet.service.kylin.dto.vo.middle.message.MessageDataVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.security.MessageDigest;
@Service
@Slf4j
public class OtherUtils {
@Value("${liquidnet.url-service.url}")
private String serviceUrl;
//发短信
public boolean sendMessage(String mobile, MessageDataVo data, MessageConfigVo configVo, Integer sign_id) {
try {
if (null != configVo && null != configVo.getStatus() && configVo.getStatus()) {
LinkedMultiValueMap<String, String> httpData = new LinkedMultiValueMap<>();
httpData.add("mobile", mobile);
httpData.add("templateId", configVo.getId());
httpData.add("signId", sign_id.toString());
httpData.add("data", JsonUtils.toJson(data));
String sign = Ksort(httpData);
sign = sign.concat("&key=").concat("R7tXY9smPQPG9Ku5yI0u6sfnlckmk04V");
sign = sign.toUpperCase();
httpData.add("sign", sign);
System.out.println("data = = = "+httpData.toString());
String returnData = HttpUtil.post(serviceUrl + "sendSmsMessage", httpData);
JsonNode postResultNew = JsonUtils.fromJson(returnData, JsonNode.class);
if (!postResultNew.get("message").toString().equals("OK")) {
return false;
} else {
return true;
}
} else {
return false;
}
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
public String Ksort(MultiValueMap<String, String> map) {
String sb = "";
String[] key = new String[map.size()];
int index = 0;
for (String k : map.keySet()) {
key[index] = k;
index++;
}
for (String s : key) {
sb += s + "=" + map.get(s).get(0) + "&";
}
sb = sb.substring(0, sb.length() - 1);
// 将得到的字符串进行处理得到目标格式的字符串
try {
sb = URLDecoder.decode(sb, "UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}// 使用常见的UTF-8编码
sb = sb.replace("%3D", "=").replace("%26", "&");
return sb;
}
public static String md5s(String txt) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(txt.getBytes("GBK")); //问题主要出在这里,Java的字符串是unicode编码,不受源码文件的编码影响;而PHP的编码是和源码文件的编码一致,受源码编码影响。
StringBuilder buf = new StringBuilder();
for (byte b : md.digest()) {
buf.append(String.format("%02x", b & 0xff));
}
return buf.toString();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
...@@ -9,9 +9,10 @@ eureka: ...@@ -9,9 +9,10 @@ eureka:
spring: spring:
cloud: cloud:
config: config:
uri: http://39.106.122.201:7002/support-config # uri: http://39.106.122.201:7002/support-config
# profile: ${liquidnet.cloudConfig.profile} # uri: http://127.0.0.1:7002/support-config
# name: ${spring.application.name} #默认为spring.application.name profile: ${liquidnet.cloudConfig.profile}
# discovery: name: ${spring.application.name} #默认为spring.application.name
# enabled: true discovery:
# service-id: liquidnet-support-config enabled: true
service-id: liquidnet-support-config
\ No newline at end of file
spring: spring:
application: application:
name: liquidnet-service-adam name: liquidnet-service-platform
profiles: profiles:
active: dev active: dev
\ No newline at end of file
...@@ -2,70 +2,7 @@ ...@@ -2,70 +2,7 @@
40002=被踢下线喽 40002=被踢下线喽
40003=TOKEN失效 40003=TOKEN失效
# ------------------------ 4开头错误码作系统保留 # ------------------------ 4开头错误码作系统保留
30000=请求频繁,稍后再试
10000=请求频繁,稍后再试
10001=
10002=
10003=验证码发送失败
10004=手机验证码错误
10005=手机号获取失败,请更换登录方式
10006=第三方账号未注册
10007=该第三方账号已经被其他用户绑定
10008=已经绑定过该类型的第三方账号
10009=
10010=
10011=性别标签无效
10012=音乐风格标签无效
10013=
10014=
10015=入场人ID不能为空
10016=收货地址ID不能为空
10017=入场人不存在,请核实
10018=收货地址不存在,请核实
10019=入场人已存在,请核实
10101=姓名或身份证件号无效
10102=身份证号与姓名不符
10103=
10104=
10105=入场人不存在
10106=收获地址不存在
10200=仅限从未购买过会员的用户使用
10201=会员卡信息有误,请核实
10202=会员卡价格有误,请核实
10203=支付信息有误,请联系客服
10204=微信支付OPENID必传
10205=支付宝支付回调URL必传
10206=苹果支付商品标识必传
10207=兑换码不存在,请核实
10208=兑换码已使用,请核实
10209=兑换码不可用,请核实
10210=创建订单失败,请联系客服
10211=订单不存在
10212=订单状态查询失败
10213=感谢您选择登登登。距您上一次离开不足一年,登登登还没准备好再次邀您加入。不如我们给彼此多一些时间,有缘再相见。
10301=
10401=
10500=
10501=会员订单回调处理失败,该订单不存在
10502=会员订单回调处理失败,该订单已处理
10503=会员订单回调处理失败,订单金额有误
10504=会员订单回调处理失败,会员价格信息不存在
......
adam_user.add=INSERT INTO adam_user (`uid`, mobile, `state`, is_complete, created_at) VALUES (?,?,?,?,?)
adam_user.complete=UPDATE adam_user SET is_complete=?, updated_at=? WHERE `uid`=?
adam_user.edit.mobile=UPDATE adam_user SET mobile=?, updated_at=? WHERE `uid`=?
adam_user.close=UPDATE adam_user SET `state`=2, updated_at=?, closed_at=? WHERE `uid`=?
# ----------------------------------------------------
adam_user_info.add=INSERT INTO adam_user_info (`uid`, qr_code) VALUES (?,?)
adam_user_info.edit=UPDATE adam_user_info SET nickname=?, sex=?, birthday=?, area=?, signature=?, avatar=?, background=?, tag_me=? WHERE uid=?
# ----------------------------------------------------
adam_real_name.add=INSERT INTO adam_real_name (real_name_id, `uid`, `type`, `name`, id_card, `state`, created_at) VALUES (?,?,?,?,?,?,?)
# ----------------------------------------------------
adam_third_party.add=INSERT INTO adam_third_party (`uid`, open_id, avatar, nickname, platform, `state`, created_at) values (?,?,?,?,?,?,?)
adam_third_party.unbind=UPDATE adam_third_party SET `state`=2, updated_at=? WHERE `uid`=? AND platform=?
adam_third_party.close=UPDATE adam_third_party SET `state`=2, updated_at=?, comment='close' WHERE `uid`=?
# ----------------------------------------------------
adam_addresses.add=INSERT INTO adam_addresses (addresses_id, `uid`, `name`, phone, province, city, county, address, is_default, `state`, created_at) VALUES (?,?,?,?,?,?,?,?,?,?,?)
adam_addresses.edit=UPDATE adam_addresses SET `name`=?, phone=?, province=?, city=?, county=?, address=?, updated_at=? WHERE addresses_id=?
adam_addresses.update.is_default=UPDATE adam_addresses SET is_default=?, updated_at=? WHERE addresses_id=?
adam_addresses.remove=UPDATE adam_addresses SET is_default=0, `state`=2, updated_at=?, deleted_at=? WHERE addresses_id=?
adam_addresses.close=UPDATE adam_addresses SET `state`=2, updated_at=?, deleted_at=? WHERE uid=?
# ----------------------------------------------------
adam_enters.add=INSERT INTO adam_enters (enters_id, `uid`, `type`,`name`, mobile, id_card, is_default, `state`, created_at) VALUES (?,?,?,?,?,?,?,?,?)
adam_enters.edit=UPDATE adam_enters SET `type`=?, `name`=?, mobile=?, id_card=?, is_default=?, `state`=?, updated_at=? where enters_id=?
adam_enters.update.is_default=UPDATE adam_enters set is_default=?, updated_at=? where enters_id=?
adam_enters.remove=UPDATE adam_enters SET `state`=2, updated_at=?, deleted_at=? where enters_id=?
adam_enters.close=UPDATE adam_enters SET `state`=2, updated_at=?, deleted_at=?, comment='close' where uid=?
# ----------------------------------------------------
adam_collection.add=INSERT INTO adam_collection (`uid`, content_id, `type`, `state`, created_at) VALUES (?,?,?,?,?)
adam_collection.del=UPDATE adam_collection SET `state`=2, updated_at=? WHERE `uid`=? AND content_id=?
# ----------------------------------------------------
adam_disposed.add=INSERT into adam_disposed (`uid`, content_id, `type`, `state`, created_at) VALUES (?,?,?,?,?)
adam_disposed.del=UPDATE adam_collection SET `state`=2, updated_at=? WHERE `uid`=? AND content_id=?
# ----------------------------------------------------
adam_member.add=INSERT INTO adam_member ( `name`, `title`, `sub_title`, `icon`, `avatar`, `start_no`, `type`, `interests_detail`, `notes`, `is_notice`, `notice_info`, `notice_title`, `need_question`, `display_agreement`, `agreement`, `member_id`, `limitation`) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);
# ----------------------------------------------------
adam_member_code.add=INSERT INTO adam_member_code (code, `type`, member_id, member_price_id, member_no, `state`, created_at, buy_order_no, buy_uid, buy_at) VALUES (?,?,?,?,?,?,?,?,?,?)
adam_member_code.exchange=UPDATE adam_member_code SET `state`=?, updated_at=?, use_order_no=?, use_uid=?, use_at=? WHERE code=?
# ----------------------------------------------------
adam_member_order.add=INSERT INTO adam_member_order (order_no, `uid`, `mode`, price, price_paid, member_name, member_id, member_price_id, `days`, `state`, member_no, birthday, device_from, pay_type, pay_no, payment_at, created_at, client_ip, `source`, version) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
adam_member_order.update=UPDATE adam_member_order SET `state`=?, member_no=?, payment_at=?, updated_at=? WHERE order_no=?
# ----------------------------------------------------
adam_user_member.add=INSERT INTO adam_user_member (`uid`, member_id, member_no, `state`, expiry_at, created_at) VALUES (?,?,?,?,?,?)
adam_user_member.update=UPDATE adam_user_member SET `state`=?, expiry_at=?, updated_at=? WHERE `uid`=?
adam_user_member.close=UPDATE adam_user_member SET `state`=2, updated_at=?, comment='close' WHERE `uid`=?
# ----------------------------------------------------
# ----------------------------------------------------
# ----------------------------------------------------
\ No newline at end of file
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
<modules> <modules>
<module>liquidnet-service-adam</module> <module>liquidnet-service-adam</module>
<module>liquidnet-service-kylin</module> <module>liquidnet-service-kylin</module>
<module>liquidnet-service-platform</module>
<module>liquidnet-service-consumer</module> <module>liquidnet-service-consumer</module>
<module>liquidnet-service-executor-all</module> <module>liquidnet-service-executor-all</module>
<!-- <module>liquidnet-service-example</module>--> <!-- <module>liquidnet-service-example</module>-->
......
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