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

Commit 2de4d931 authored by jiangxiulong's avatar jiangxiulong

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

parents 2316adb9 fe3cf35e
...@@ -17,7 +17,7 @@ public class AdamThirdPartParam implements Serializable { ...@@ -17,7 +17,7 @@ public class AdamThirdPartParam implements Serializable {
@ApiModelProperty(position = 11, required = true, value = "第三方OPENID[64]") @ApiModelProperty(position = 11, required = true, value = "第三方OPENID[64]")
private String openId; private String openId;
@ApiModelProperty(position = 12, required = true, value = "昵称[64]", example = "Swagger") @ApiModelProperty(position = 12, required = true, value = "昵称[64]", example = "Swagger")
@Size(min = 2, max = 64) // @Size(min = 2, max = 64)
private String nickname; private String nickname;
@ApiModelProperty(position = 13, required = true, value = "头像[255]", example = "http://pic.zhengzai.tv/default/avatar.png") @ApiModelProperty(position = 13, required = true, value = "头像[255]", example = "http://pic.zhengzai.tv/default/avatar.png")
@Size(max = 255) @Size(max = 255)
......
...@@ -19,7 +19,7 @@ public class AdamUserMember { ...@@ -19,7 +19,7 @@ public class AdamUserMember {
private String memberId; private String memberId;
private Integer memberNo; private String memberNo;
private Integer state; private Integer state;
......
...@@ -278,9 +278,9 @@ drop table if exists adam_user_member; ...@@ -278,9 +278,9 @@ drop table if exists adam_user_member;
create table adam_user_member create table adam_user_member
( (
mid int unsigned auto_increment primary key, mid int unsigned auto_increment primary key,
uid varchar(64) not null, uid varchar(64) not null,
member_id varchar(255) comment '会员类型id', member_id varchar(255) comment '会员类型id',
member_no int unsigned not null, member_no varchar(20) not null,
state tinyint comment '1-NORMAL,2-INVALID', state tinyint comment '1-NORMAL,2-INVALID',
expiry_at datetime(3) comment '到期日期', expiry_at datetime(3) comment '到期日期',
created_at datetime(3), created_at datetime(3),
......
package com.liquidnet.service.adam.controller.admin; package com.liquidnet.service.adam.controller.admin;
import com.liquidnet.service.adam.service.processor.DMUserInformationProcessor; import com.liquidnet.service.adam.service.processor.*;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -22,53 +22,79 @@ import java.time.LocalDateTime; ...@@ -22,53 +22,79 @@ import java.time.LocalDateTime;
public class AdamDMAdminController { public class AdamDMAdminController {
@Autowired @Autowired
DMUserInformationProcessor dmUserInformationProcessor; DMUserInformationProcessor dmUserInformationProcessor;
@Autowired
DMThirdPartsProcessor dmThirdPartsProcessor;
@Autowired
DMRealNameProcessor dmRealNameProcessor;
@Autowired
DMUserMemberProcessor dmUserMemberProcessor;
@Autowired
DMEntersProcessor dmEntersProcessor;
@Autowired
DMAddressesProcessor dmAddressesProcessor;
@Autowired
DMTracesInfoProcessor dmTracesInfoProcessor;
@ApiOperation(value = "user") @ApiOperation(value = "user")
@GetMapping(value = {"user"}) @GetMapping(value = {"user"})
public ResponseDto<Object> dataMigrationForUser(@RequestParam int alis, @RequestParam boolean flg) { public ResponseDto<Object> dataMigrationForUser(@RequestParam int alis, @RequestParam boolean flg) {
if (verify(alis)) dmUserInformationProcessor.handler(flg); if (!verify(alis)) return ResponseDto.failure();
dmUserInformationProcessor.handler(flg);
return ResponseDto.success(); return ResponseDto.success();
} }
@ApiOperation(value = "tpa") @ApiOperation(value = "tpa")
@GetMapping(value = {"tpa"}) @GetMapping(value = {"tpa"})
public ResponseDto<Object> dataMigrationForTpa(@RequestParam int alis, @RequestParam boolean flg) { public ResponseDto<Object> dataMigrationForTpa(@RequestParam int alis, @RequestParam boolean flg) {
if (verify(alis)) dmUserInformationProcessor.handler(flg); if (!verify(alis)) return ResponseDto.failure();
dmThirdPartsProcessor.handler(flg);
return ResponseDto.success(); return ResponseDto.success();
} }
@ApiOperation(value = "real") @ApiOperation(value = "real")
@GetMapping(value = {"real"}) @GetMapping(value = {"real"})
public ResponseDto<Object> dataMigrationForReal(@RequestParam int alis, @RequestParam boolean flg) { public ResponseDto<Object> dataMigrationForReal(@RequestParam int alis, @RequestParam boolean flg) {
if (verify(alis)) dmUserInformationProcessor.handler(flg); if (!verify(alis)) return ResponseDto.failure();
dmRealNameProcessor.handler(flg);
return ResponseDto.success(); return ResponseDto.success();
} }
@ApiOperation(value = "vip") @ApiOperation(value = "vip")
@GetMapping(value = {"vip"}) @GetMapping(value = {"vip"})
public ResponseDto<Object> dataMigrationForVip(@RequestParam int alis, @RequestParam boolean flg) { public ResponseDto<Object> dataMigrationForVip(@RequestParam int alis, @RequestParam boolean flg) {
if (verify(alis)) dmUserInformationProcessor.handler(flg); if (!verify(alis)) return ResponseDto.failure();
dmUserMemberProcessor.handler(flg);
return ResponseDto.success(); return ResponseDto.success();
} }
@ApiOperation(value = "morder") @ApiOperation(value = "morder")
@GetMapping(value = {"morder"}) @GetMapping(value = {"morder"})
public ResponseDto<Object> dataMigrationForMOrder(@RequestParam int alis, @RequestParam boolean flg) { public ResponseDto<Object> dataMigrationForMOrder(@RequestParam int alis, @RequestParam boolean flg) {
if (verify(alis)) dmUserInformationProcessor.handler(flg); if (!verify(alis)) return ResponseDto.failure();
return ResponseDto.success(); return ResponseDto.success();
} }
@ApiOperation(value = "enters") @ApiOperation(value = "enters")
@GetMapping(value = {"enters"}) @GetMapping(value = {"enters"})
public ResponseDto<Object> dataMigrationForEnters(@RequestParam int alis, @RequestParam boolean flg) { public ResponseDto<Object> dataMigrationForEnters(@RequestParam int alis, @RequestParam boolean flg) {
if (verify(alis)) dmUserInformationProcessor.handler(flg); if (!verify(alis)) return ResponseDto.failure();
dmEntersProcessor.handler(flg);
return ResponseDto.success(); return ResponseDto.success();
} }
@ApiOperation(value = "addr") @ApiOperation(value = "addr")
@GetMapping(value = {"addr"}) @GetMapping(value = {"addr"})
public ResponseDto<Object> dataMigrationForAddr(@RequestParam int alis, @RequestParam boolean flg) { public ResponseDto<Object> dataMigrationForAddr(@RequestParam int alis, @RequestParam boolean flg) {
if (verify(alis)) dmUserInformationProcessor.handler(flg); if (!verify(alis)) return ResponseDto.failure();
dmAddressesProcessor.handler(flg);
return ResponseDto.success();
}
@ApiOperation(value = "traces")
@GetMapping(value = {"traces"})
public ResponseDto<Object> dataMigrationForTraces(@RequestParam int alis, @RequestParam boolean flg) {
if (!verify(alis)) return ResponseDto.failure();
dmTracesInfoProcessor.handler(flg);
return ResponseDto.success(); return ResponseDto.success();
} }
......
package com.liquidnet.service.adam.service; package com.liquidnet.service.adam.service;
import com.liquidnet.service.adam.service.processor.DMEntersProcessor;
import com.mysql.cj.jdbc.result.ResultSetImpl;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import java.sql.*; import java.sql.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public abstract class DataMigrationProcessorService { public abstract class DataMigrationProcessorService {
public static List<String> reUidList = new ArrayList<>();
static {
reUidList.addAll(Arrays.asList("1406834", "1406870", "1406872", "1480154", "1480182", "1480185", "1480188", "1480192", "1416286", "1416315", "576723", "716461", "1405052", "1405054", "1165127", "1165128", "1338315", "1338318", "1563075", "1563171", "1155903", "1155904", "998047", "998049", "1005624", "1005626", "1325133", "1325141", "1325144", "1522323", "1522327", "1634494", "1634518", "1416230", "1416245", "1416256", "1416269", "1416284", "1416299", "1416323", "1469580", "1469582", "1469585", "1469597", "1469602", "1469620", "1469644", "919572", "919573", "1306189", "1306190", "1424617", "1424618", "1303823", "1303824", "1303825", "1303826", "1405071", "1405085", "1482373", "1482385", "1482386", "1482389", "1399984", "1399995", "1313607", "1313609", "1469586", "1469590", "1469601", "1469633", "1469646", "1626361", "1626372", "1090622", "1090623", "1352248", "1352253", "1352254", "1018609", "1018611", "1018614", "1018615", "1299829", "1299830", "1634471", "1634473", "981756", "981757", "927692", "927693", "1619686", "1619695", "1619710", "1619718", "1619726", "1626341", "1626349", "1626351", "1626374", "811095", "811096", "1327425", "1327430", "1477324", "1477334", "1477353", "1409779", "1409786", "1626337", "1626363", "878546", "878547", "1562936", "1563005", "1563116", "1563197", "1626340", "1626345", "1626380", "1033586", "1033587", "1033588", "1033589", "1562802", "1562848", "871254", "871255", "1512602", "1512641"));
}
public Connection connection = null; public Connection connection = null;
public PreparedStatement statement = null; public PreparedStatement statement = null;
public ResultSet resultSet = null; public ResultSetImpl row = null;
public void handler(boolean flg) { public void handler(boolean flg) {
preHandler(); preHandler();
...@@ -24,17 +34,21 @@ public abstract class DataMigrationProcessorService { ...@@ -24,17 +34,21 @@ public abstract class DataMigrationProcessorService {
@SneakyThrows @SneakyThrows
private void preHandler() { private void preHandler() {
Class.forName("com.mysql.cj.jdbc.Driver"); Class.forName("com.mysql.cj.jdbc.Driver");
connection = DriverManager.getConnection( String url = "jdbc:mysql://zhengzai.mysql.polardb.rds.aliyuncs.com:3306/";
"jdbc:mysql://zhengzai.mysql.polardb.rds.aliyuncs.com:3306/passport", if (this instanceof DMEntersProcessor) {
"readonly", "ZWDsf8Fy"); url += "mall";
} else {
url += "passport";
}
connection = DriverManager.getConnection(url, "readonly", "ZWDsf8Fy");
} }
protected abstract void dataProcessing(boolean flg); protected abstract void dataProcessing(boolean flg);
private void postHandler() { private void postHandler() {
try { try {
assert resultSet != null; assert row != null;
resultSet.close(); row.close();
statement.close(); statement.close();
connection.close(); connection.close();
} catch (SQLException throwables) { } catch (SQLException throwables) {
......
package com.liquidnet.service.adam.service.processor;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.adam.dto.vo.AdamAddressesVo;
import com.liquidnet.service.adam.entity.AdamAddresses;
import com.liquidnet.service.adam.mapper.AdamAddressesMapper;
import com.liquidnet.service.adam.service.DataMigrationProcessorService;
import com.mysql.cj.jdbc.result.ResultSetImpl;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service;
@Slf4j
@Service
public class DMAddressesProcessor extends DataMigrationProcessorService {
@Autowired
MongoTemplate mongoTemplate;
@Autowired
RedisUtil redisUtil;
@Autowired
AdamAddressesMapper addressesMapper;
@SneakyThrows
@Override
protected void dataProcessing(boolean flg) {
String sqlCount = "select count(1) from addresses where 1=1";
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);
if (flg) {
sqlCount += " and user_id in ('2026628','544327','1997335','773650','809406')";
sql += " and user_id in ('2026628','544327','1997335','773650','809406')";
}
sql += " limit ?,?";
statement = connection.prepareStatement(sqlCount);
row = (ResultSetImpl) statement.executeQuery();
row.first();
int ct = row.getInt(1), pSize = 2, num = 0;
log.info("DM数据迁移总数:{}", ct);
while (ct > 0) {
statement = connection.prepareStatement(sql);
statement.setInt(1, pSize * num);
statement.setInt(2, pSize);
row = (ResultSetImpl) statement.executeQuery();
log.info("DM.execute.limit:[pNo:{},pSize:{}]", pSize * num, pSize);
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);
addressesMapper.insert(addresses);
mongoTemplate.insert(vo, AdamAddressesVo.class.getSimpleName());
}
}
num++;
ct -= pSize;
}
}
}
package com.liquidnet.service.adam.service.processor;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.service.adam.entity.AdamEnters;
import com.liquidnet.service.adam.mapper.AdamEntersMapper;
import com.liquidnet.service.adam.service.DataMigrationProcessorService;
import com.mysql.cj.jdbc.result.ResultSetImpl;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service;
@Slf4j
@Service
public class DMEntersProcessor extends DataMigrationProcessorService {
@Autowired
MongoTemplate mongoTemplate;
@Autowired
RedisUtil redisUtil;
@Autowired
AdamEntersMapper entersMapper;
@SneakyThrows
@Override
protected void dataProcessing(boolean flg) {
String sqlCount = "select count(1) from enters where type <> 1 or (type = 1 and is_certification = 'yes')";
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);
if (flg) {
sqlCount += " and user_id in ('2026628','544327','1997335','773650','809406')";
sql += " and user_id in ('2026628','544327','1997335','773650','809406')";
}
sql += " limit ?,?";
statement = connection.prepareStatement(sqlCount);
row = (ResultSetImpl) statement.executeQuery();
row.first();
int ct = row.getInt(1), pSize = 2, num = 0;
log.info("DM数据迁移总数:{}", ct);
while (ct > 0) {
statement = connection.prepareStatement(sql);
statement.setInt(1, pSize * num);
statement.setInt(2, pSize);
row = (ResultSetImpl) statement.executeQuery();
log.info("DM.execute.limit:[pNo:{},pSize:{}]", pSize * num, pSize);
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);
entersMapper.insert(enters);
mongoTemplate.insert(vo, AdamEntersVo.class.getSimpleName());
}
}
num++;
ct -= pSize;
}
}
}
package com.liquidnet.service.adam.service.processor;
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.mapper.AdamRealNameMapper;
import com.liquidnet.service.adam.service.DataMigrationProcessorService;
import com.mysql.cj.jdbc.result.ResultSetImpl;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service;
@Slf4j
@Service
public class DMRealNameProcessor extends DataMigrationProcessorService {
@Autowired
MongoTemplate mongoTemplate;
@Autowired
RedisUtil redisUtil;
@Autowired
AdamRealNameMapper realNameMapper;
@SneakyThrows
@Override
protected void dataProcessing(boolean flg) {
String sqlCount = "select count(1) from user_real_name where 1=1";
String field = "id,uid,real_name,id_card,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);
if (flg) {
sqlCount += " and uid in ('2026628','544327','1997335','773650','809406')";
sql += " and uid in ('2026628','544327','1997335','773650','809406')";
}
sql += " limit ?,?";
statement = connection.prepareStatement(sqlCount);
row = (ResultSetImpl) statement.executeQuery();
row.first();
int ct = row.getInt(1), pSize = 2, num = 0;
log.info("DM数据迁移总数:{}", ct);
while (ct > 0) {
statement = connection.prepareStatement(sql);
statement.setInt(1, pSize * num);
statement.setInt(2, pSize);
row = (ResultSetImpl) statement.executeQuery();
log.info("DM.execute.limit:[pNo:{},pSize:{}]", pSize * num, pSize);
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.setName(realName.getName());
vo.setIdCard(realName.getIdCard());
vo.setState(1);
realNameMapper.insert(realName);
mongoTemplate.insert(vo, AdamRealInfoVo.class.getSimpleName());
}
}
num++;
ct -= pSize;
}
}
}
package com.liquidnet.service.adam.service.processor;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.adam.dto.vo.AdamThirdPartInfoVo;
import com.liquidnet.service.adam.entity.AdamThirdParty;
import com.liquidnet.service.adam.mapper.AdamThirdPartyMapper;
import com.liquidnet.service.adam.service.DataMigrationProcessorService;
import com.mysql.cj.jdbc.result.ResultSetImpl;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service;
@Slf4j
@Service
public class DMThirdPartsProcessor extends DataMigrationProcessorService {
@Autowired
MongoTemplate mongoTemplate;
@Autowired
RedisUtil redisUtil;
@Autowired
AdamThirdPartyMapper thirdPartyMapper;
@SneakyThrows
@Override
protected void dataProcessing(boolean flg) {
String sqlCount = "select count(1) from user_third_parts where `status`=1 and delete_tag=0";
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);
if (flg) {
sqlCount += " and uid in ('2026628','544327','1997335','773650','809406')";
sql += " and uid in ('2026628','544327','1997335','773650','809406')";
}
sql += " limit ?,?";
statement = connection.prepareStatement(sqlCount);
row = (ResultSetImpl) statement.executeQuery();
row.first();
int ct = row.getInt(1), pSize = 1000, num = 0;
log.info("DM数据迁移总数:{}", ct);
while (ct > 0) {
statement = connection.prepareStatement(sql);
statement.setInt(1, pSize * num);
statement.setInt(2, pSize);
row = (ResultSetImpl) statement.executeQuery();
log.info("DM.execute.limit:[pNo:{},pSize:{}]", pSize * num, pSize);
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);
thirdParty.setCreatedAt(row.getLocalDateTime(6));
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());
thirdPartyMapper.insert(thirdParty);
mongoTemplate.insert(vo, AdamThirdPartInfoVo.class.getSimpleName());
}
}
num++;
ct -= pSize;
}
}
}
package com.liquidnet.service.adam.service.processor;
import com.liquidnet.common.cache.redis.util.RedisUtil;
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.service.DataMigrationProcessorService;
import com.mysql.cj.jdbc.result.ResultSetImpl;
import lombok.SneakyThrows;
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.sql.SQLException;
@Slf4j
@Service
public class DMTracesInfoProcessor extends DataMigrationProcessorService {
@Autowired
MongoTemplate mongoTemplate;
@Autowired
RedisUtil redisUtil;
@Autowired
AdamMemberMapper memberMapper;
@Autowired
AdamMemberPriceMapper memberPriceMapper;
@Override
protected void dataProcessing(boolean flg) {
this.memberCardInfoHandler();
this.memberCardPriceHandler();
}
@SneakyThrows
private void memberCardInfoHandler() {
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
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);
memberMapper.insert(o);
mongoTemplate.insert(vo, AdamMemberVo.class.getSimpleName());
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
@SneakyThrows
private void memberCardPriceHandler() {
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
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();
memberPriceMapper.insert(o);
mongoTemplate.insert(vo, AdamMemberPriceVo.class.getSimpleName());
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
// @SneakyThrows
// @Override
// protected void dataProcessing(boolean flg) {
// String sqlCount = "select count(1) from addresses where 1=1";
// 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);
//
// if (flg) {
// sqlCount += " and user_id in ('2026628','544327','1997335','773650','809406')";
// sql += " and user_id in ('2026628','544327','1997335','773650','809406')";
// }
//
// sql += " limit ?,?";
//
// statement = connection.prepareStatement(sqlCount);
// resultSet = statement.executeQuery();
// resultSet.first();
// int ct = resultSet.getInt(1), pSize = 2, num = 0;
// log.info("DM数据迁移总数:{}", ct);
//
//
//
// while (ct > 0) {
// statement = connection.prepareStatement(sql);
// statement.setInt(1, pSize * num);
// statement.setInt(2, pSize);
// resultSet = statement.executeQuery();
// log.info("DM.execute.limit:[pNo:{},pSize:{}]", pSize * num, pSize);
// while (resultSet.next()) {
//
// }
//
//
// num++;
// ct -= pSize;
// }
// }
}
package com.liquidnet.service.adam.service.processor; package com.liquidnet.service.adam.service.processor;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.liquidnet.common.cache.redis.util.RedisUtil; import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.DateUtil; import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.JsonUtils; import com.liquidnet.commons.lang.util.JsonUtils;
...@@ -33,7 +34,8 @@ public class DMUserInformationProcessor extends DataMigrationProcessorService { ...@@ -33,7 +34,8 @@ public class DMUserInformationProcessor extends DataMigrationProcessorService {
@Autowired @Autowired
AdamUserInfoMapper userInfoMapper; AdamUserInfoMapper userInfoMapper;
public static final String DM_FAILED_USER = "dm:user"; public static final String DM_FAILED_USER = "dm:failed:mobile";
public static final String DM_EXISTS_USER = "dm:exists:mobile";
public static List<String> reMobileList = new ArrayList<>(); public static List<String> reMobileList = new ArrayList<>();
public static Map<String, AdamTagVo> sexMap = new HashMap<>(); public static Map<String, AdamTagVo> sexMap = new HashMap<>();
static { static {
...@@ -58,72 +60,80 @@ public class DMUserInformationProcessor extends DataMigrationProcessorService { ...@@ -58,72 +60,80 @@ public class DMUserInformationProcessor extends DataMigrationProcessorService {
sql += " limit ?,?"; sql += " limit ?,?";
statement = connection.prepareStatement(sql); statement = connection.prepareStatement(sqlCount);
resultSet = statement.executeQuery(); row = (ResultSetImpl) statement.executeQuery();
resultSet.first(); row.first();
int ct = resultSet.getInt(1), pSize = 2, num = 0; int ct = row.getInt(1), pSize = 2, num = 0;
log.info("DM数据迁移总数:{}", ct); log.info("DM数据迁移总数:{}", ct);
while (ct > 0) { while (ct > 0) {
statement = connection.prepareStatement(sql); statement = connection.prepareStatement(sql);
statement.setInt(1, pSize * num); statement.setInt(1, pSize * num);
statement.setInt(2, pSize); statement.setInt(2, pSize);
resultSet = statement.executeQuery(); row = (ResultSetImpl) statement.executeQuery();
log.info("DM.execute.limit:[pNo:{},pSize:{}]", pSize * num, pSize); log.info("DM.execute.limit:[pNo:{},pSize:{}]", pSize * num, pSize);
while (resultSet.next()) { while (row.next()) {
try { try {
AdamTagVo sex = sexMap.get(this.resultSet.getString(4)); AdamTagVo sex = sexMap.get(row.getString(4));
ResultSetImpl row = (ResultSetImpl) this.resultSet; String mobile = row.getString(2);
AdamUser user = new AdamUser(); if (!reMobileList.contains(mobile)) {
user.setUid(row.getString(1));
user.setMobile(row.getString(2));
user.setCreatedAt(row.getLocalDateTime(10));
user.setUpdatedAt(row.getLocalDateTime(11));
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 userInfoVo = AdamUserInfoVo.getNew();
userInfoVo.setUid(user.getUid());
userInfoVo.setMobile(user.getMobile());
userInfoVo.setNickname(userInfo.getNickname());
userInfoVo.setState(user.getState());
userInfoVo.setSex(sex);
userInfoVo.setBirthday(DateUtil.Formatter.yyyy_MM_dd.format(userInfo.getBirthday()));
userInfoVo.setArea(userInfo.getArea());
userInfoVo.setSignature(userInfo.getSignature());
userInfoVo.setAvatar(userInfo.getAvatar());
userInfoVo.setBackground(userInfo.getBackground());
userInfoVo.setCreateAt(user.getCreatedAt());
userInfoVo.setUpdatedAt(user.getUpdatedAt());
userInfoVo.setIsComplete(row.getInt(12));
userInfoVo.setQrCode(userInfo.getQrCode());
if (!reMobileList.contains(user.getMobile())) {
// log.info("mobile:{}", user.getMobile()); // log.info("mobile:{}", user.getMobile());
userMapper.insert(user); if (userMapper.selectCount(Wrappers.lambdaQuery(AdamUser.class).eq(AdamUser::getMobile, mobile)) > 0) {
userInfoMapper.insert(userInfo); redisUtil.lSet(DM_EXISTS_USER, mobile);
mongoTemplate.insert(userInfoVo, AdamUserInfoVo.class.getSimpleName()); } else {
AdamUser user = new AdamUser();
user.setUid(row.getString(1));
user.setMobile(mobile);
user.setCreatedAt(row.getLocalDateTime(10));
user.setUpdatedAt(row.getLocalDateTime(11));
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());
userMapper.insert(user);
userInfoMapper.insert(userInfo);
mongoTemplate.insert(vo, AdamUserInfoVo.class.getSimpleName());
}
} }
} catch (SQLException throwables) { } catch (SQLException throwables) {
redisUtil.lSet(DM_FAILED_USER, resultSet.getString(2)); redisUtil.lSet(DM_FAILED_USER, row.getString(2));
log.error("DM数据处理异常[uid:{},mobile:{}],{} - {}", resultSet.getString(1), resultSet.getString(2), log.error("DM数据处理异常[uid:{},mobile:{}],{} - {}", row.getString(1), row.getString(2),
throwables.getErrorCode(), throwables.getMessage()); throwables.getErrorCode(), throwables.getMessage());
} }
} }
num++; num++;
ct -= pSize; ct -= pSize;
} }
......
package com.liquidnet.service.adam.service.processor;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.adam.dto.vo.AdamUserMemberVo;
import com.liquidnet.service.adam.entity.AdamUserMember;
import com.liquidnet.service.adam.mapper.AdamUserMemberMapper;
import com.liquidnet.service.adam.service.DataMigrationProcessorService;
import com.mysql.cj.jdbc.result.ResultSetImpl;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service;
@Slf4j
@Service
public class DMUserMemberProcessor extends DataMigrationProcessorService {
@Autowired
MongoTemplate mongoTemplate;
@Autowired
RedisUtil redisUtil;
@Autowired
AdamUserMemberMapper userMemberMapper;
@SneakyThrows
@Override
protected void dataProcessing(boolean flg) {
String sqlCount = "select count(1) from user_cards where 1=1";
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);
if (flg) {
sqlCount += " and uid in ('2026628','544327','1997335','773650','809406')";
sql += " and uid in ('2026628','544327','1997335','773650','809406')";
}
sql += " limit ?,?";
statement = connection.prepareStatement(sqlCount);
row = (ResultSetImpl) statement.executeQuery();
row.first();
int ct = row.getInt(1), pSize = 2, num = 0;
log.info("DM数据迁移总数:{}", ct);
while (ct > 0) {
statement = connection.prepareStatement(sql);
statement.setInt(1, pSize * num);
statement.setInt(2, pSize);
row = (ResultSetImpl) statement.executeQuery();
log.info("DM.execute.limit:[pNo:{},pSize:{}]", pSize * num, pSize);
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());
userMemberMapper.insert(userMember);
mongoTemplate.insert(vo, AdamUserMemberVo.class.getSimpleName());
}
}
num++;
ct -= pSize;
}
}
}
...@@ -146,7 +146,8 @@ public class DataUtils { ...@@ -146,7 +146,8 @@ public class DataUtils {
} else { } else {
KylinPerformanceVo performanceData = mongoTemplate.findOne(Query.query(Criteria.where("performancesId").is(performanceId)), KylinPerformanceVo.class, KylinPerformanceVo.class.getSimpleName()); KylinPerformanceVo performanceData = mongoTemplate.findOne(Query.query(Criteria.where("performancesId").is(performanceId)), KylinPerformanceVo.class, KylinPerformanceVo.class.getSimpleName());
List<KylinPerformanceVo> roadList = new ArrayList(); List<KylinPerformanceVo> roadList = new ArrayList();
if (Integer.parseInt(performanceData.getRoadShowId()) > 0) {
if (null != performanceData.getRoadShowId() && Integer.parseInt(performanceData.getRoadShowId()) > 0) {
roadList = dataUtils.getRoadList(performanceData.getRoadShowId()); roadList = dataUtils.getRoadList(performanceData.getRoadShowId());
} }
redisUtil.set(KylinRedisConst.PERFORMANCES + performanceId, performanceData); redisUtil.set(KylinRedisConst.PERFORMANCES + performanceId, performanceData);
...@@ -311,9 +312,9 @@ public class DataUtils { ...@@ -311,9 +312,9 @@ public class DataUtils {
//查询 mysql 数据 //查询 mysql 数据
KylinPerformanceVo vo; KylinPerformanceVo vo;
if (null == paramVo) { if (null == paramVo) {
vo = mongoVoUtils.combinePerformanceVoData(performanceIds); vo = mongoVoUtils.combinePerformanceVoData(performanceIds);
} else { } else {
vo = paramVo; vo = paramVo;
} }
if (vo != null) { if (vo != null) {
try { try {
......
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