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

Commit e52bdef1 authored by jiangxiulong's avatar jiangxiulong

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

parents a46fe82a 7da71945
......@@ -13,7 +13,7 @@ import com.liquidnet.service.adam.entity.AdamAddresses;
* @author liquidnet
* @since 2021-05-11
*/
public interface IAdamAddressesService extends IService<AdamAddresses> {
public interface IAdamAddressesService {
String add(AdamAddressesParam parameter);
......
package com.liquidnet.service.adam.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.adam.dto.vo.AdamCollectBaseVo;
import com.liquidnet.service.adam.dto.vo.AdamCollectVo;
import com.liquidnet.service.adam.entity.AdamCollection;
/**
* <p>
......@@ -14,7 +12,7 @@ import com.liquidnet.service.adam.entity.AdamCollection;
* @author liquidnet
* @since 2021-05-10
*/
public interface IAdamCollectionService extends IService<AdamCollection> {
public interface IAdamCollectionService {
void add(AdamCollectBaseVo collectVo);
......
package com.liquidnet.service.adam.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.adam.dto.vo.AdamDisposedBaseVo;
import com.liquidnet.service.adam.dto.vo.AdamDisposedUserVo;
import com.liquidnet.service.adam.dto.vo.AdamDisposedVo;
import com.liquidnet.service.adam.entity.AdamDisposed;
/**
* <p>
......@@ -15,7 +13,7 @@ import com.liquidnet.service.adam.entity.AdamDisposed;
* @author liquidnet
* @since 2021-05-18
*/
public interface IAdamDisposedService extends IService<AdamDisposed> {
public interface IAdamDisposedService {
void add(AdamDisposedBaseVo disposedBaseVo);
......
package com.liquidnet.service.adam.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.adam.dto.AdamEntersParam;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.service.adam.entity.AdamEnters;
/**
* <p>
......@@ -13,7 +11,7 @@ import com.liquidnet.service.adam.entity.AdamEnters;
* @author liquidnet
* @since 2021-04-28
*/
public interface IAdamEntersService extends IService<AdamEnters> {
public interface IAdamEntersService {
String add(AdamEntersParam parameter);
void def(String uid, String entersId);
......
package com.liquidnet.service.adam.service;
import com.liquidnet.service.adam.entity.AdamMemberCode;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author liquidnet
* @since 2021-06-23
*/
public interface IAdamMemberCodeService extends IService<AdamMemberCode> {
}
package com.liquidnet.service.adam.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.adam.dto.AdamMemberOrderCallbackParam;
import com.liquidnet.service.adam.dto.AdamMemberOrderCodeParam;
import com.liquidnet.service.adam.dto.AdamMemberOrderParam;
import com.liquidnet.service.adam.dto.AdamMemberOrderResult;
import com.liquidnet.service.adam.dto.vo.AdamMemberOrderSimpleVo;
import com.liquidnet.service.adam.entity.AdamMemberOrder;
import com.liquidnet.service.base.ResponseDto;
/**
* 对客户端API接口
*/
public interface IAdamMemberOrderService extends IService<AdamMemberOrder> {
public interface IAdamMemberOrderService {
/**
* 购买会员或会员码
*
......
package com.liquidnet.service.adam.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.adam.entity.AdamMember;
/**
* 客户端调用
*/
public interface IAdamMemberService extends IService<AdamMember> {
// AdamMemberVo queryMemberInfo();
// AdamMemberSimpleVo queryMemberSimpleVo();
}
package com.liquidnet.service.adam.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.adam.entity.AdamRealName;
/**
......@@ -11,6 +10,6 @@ import com.liquidnet.service.adam.entity.AdamRealName;
* @author liquidnet
* @since 2021-05-10
*/
public interface IAdamRealNameService extends IService<AdamRealName> {
public interface IAdamRealNameService {
void add(AdamRealName realName);
}
package com.liquidnet.service.adam.service;
import com.liquidnet.service.adam.entity.AdamThirdParty;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 用户第三方账号信息 服务类
* </p>
*
* @author liquidnet
* @since 2021-06-23
*/
public interface IAdamThirdPartyService extends IService<AdamThirdParty> {
}
package com.liquidnet.service.adam.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.adam.entity.AdamUserInfo;
/**
* <p>
......@@ -12,7 +10,7 @@ import com.liquidnet.service.adam.entity.AdamUserInfo;
* @author liquidnet
* @since 2021-05-10
*/
public interface IAdamUserInfoService extends IService<AdamUserInfo> {
public interface IAdamUserInfoService {
void edit(AdamUserInfoVo userInfoVo);
......
package com.liquidnet.service.adam.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.adam.entity.AdamUserMember;
/**
* 会员用户信息
*/
public interface IAdamUserMemberService extends IService<AdamUserMember> {
public interface IAdamUserMemberService {
String getNextMemberNo(String memberId);
......
package com.liquidnet.service.adam.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.adam.dto.AdamThirdPartParam;
import com.liquidnet.service.adam.dto.vo.AdamRealInfoVo;
import com.liquidnet.service.adam.dto.vo.AdamThirdPartInfoVo;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.adam.entity.AdamUser;
import java.util.List;
/**
* <p>
......@@ -17,7 +12,7 @@ import java.util.List;
* @author liquidnet
* @since 2021-05-10
*/
public interface IAdamUserService extends IService<AdamUser> {
public interface IAdamUserService {
/**
* 手机号注册
......
package com.liquidnet.service.adam.controller.admin;
package com.liquidnet.client.admin.web.controller.zhengzai.adam;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberAdminService;
import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberCodeAdminService;
import com.liquidnet.service.adam.dto.AdamMemberCodeParam;
import com.liquidnet.service.adam.dto.AdamMemberParam;
import com.liquidnet.service.adam.dto.vo.AdamMemberVo;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.adam.entity.AdamMember;
import com.liquidnet.service.adam.service.AdamRdmService;
import com.liquidnet.service.adam.service.admin.IAdamMemberAdminService;
import com.liquidnet.service.adam.service.admin.IAdamMemberCodeAdminService;
import com.liquidnet.service.base.ResponseDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotBlank;
import java.util.ArrayList;
import java.util.List;
@ApiSupport(order = 90060)
@Api(tags = "后台管理:会员信息")
@Slf4j
@Validated
@RestController
@RequestMapping("/admin/member")
public class AdamMemberAdminController extends AdamBaseController {
public class AdamMemberAdminController {
@Autowired
IAdamMemberAdminService adamMemberService;
@Autowired
IAdamMemberCodeAdminService adamMemberCodeAdminService;
@Autowired
AdamRdmService adamRdmService;
@ApiOperationSupport(order = 1)
@ApiOperation(value = "添加会员卡")
@PostMapping("add")
public ResponseDto<Object> add(@RequestBody AdamMemberParam parameter) {
return ResponseDto.success(adamMemberService.add(parameter));
}
@ApiOperationSupport(order = 1)
@ApiOperation(value = "会员卡列表")
@PostMapping("list")
public ResponseDto<List<AdamMemberVo>> list() {
......@@ -56,67 +48,14 @@ public class AdamMemberAdminController extends AdamBaseController {
return ResponseDto.success(vos);
}
@ApiOperationSupport(order = 2)
@ApiOperation(value = "同步会员卡")
@PostMapping("sync")
public ResponseDto<Object> sync() {
return adamMemberService.sync();
}
@ApiOperationSupport(order = 3)
@ApiOperation(value = "生成兑换码")
@PostMapping("gen_code")
public ResponseDto<String> genMemberCode(@RequestBody AdamMemberCodeParam parameter) {
return ResponseDto.success(adamMemberCodeAdminService.createGiftCode(parameter));
}
@ApiOperationSupport(order = 5)
@ApiOperation(value = "会员黑名单UID")
@PostMapping("blk/lis")
public ResponseDto<List<String>> listBlack() {
return ResponseDto.success(adamRdmService.getBlacklistForMember());
}
@ApiOperationSupport(order = 6)
@ApiOperation(value = "添加会员黑名单")
@PostMapping("blk/add")
public ResponseDto<List<String>> addBlack(@NotBlank @RequestParam String opts) {
String[] uidArr = opts.split(",");
List<String> invalidList = new ArrayList<>(), existList = new ArrayList<>();
for (String uid : uidArr) {
AdamUserInfoVo vo = adamRdmService.getUserInfoVoByUid(uid);
if (null != vo) {
existList.add(uid);
} else {
invalidList.add(uid);
}
}
List<String> blacklist = adamRdmService.getBlacklistForMember();
if (CollectionUtils.isEmpty(blacklist)) {
blacklist = existList;
} else {
blacklist.addAll(existList);
}
if (!CollectionUtils.isEmpty(blacklist)) {
adamRdmService.setBlacklistForMember(blacklist);
} else {
log.warn("###blacklist.add:failed,invalidList:{},existList:{},opts:{}", invalidList.size(), existList.size(), opts);
}
return ResponseDto.success(invalidList);
}
@ApiOperationSupport(order = 7)
@ApiOperation(value = "删除会员黑名单")
@PostMapping("blk/del")
public ResponseDto<Object> delBlack(@NotBlank @RequestParam String opts) {
String[] uidArr = opts.split(",");
List<String> blacklist = adamRdmService.getBlacklistForMember();
if (!CollectionUtils.isEmpty(blacklist)) {
for (String uid : uidArr) {
blacklist.remove(uid);
}
adamRdmService.setBlacklistForMember(blacklist);
}
return ResponseDto.success();
}
}
package com.liquidnet.service.adam.controller.admin;
package com.liquidnet.client.admin.web.controller.zhengzai.adam;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberPriceAdminService;
import com.liquidnet.service.adam.dto.AdamMemberPriceParam;
import com.liquidnet.service.adam.dto.vo.AdamMemberPriceVo;
import com.liquidnet.service.adam.entity.AdamMemberPrice;
import com.liquidnet.service.adam.service.admin.IAdamMemberPriceAdminService;
import com.liquidnet.service.base.ResponseDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
......@@ -23,17 +21,15 @@ import javax.validation.constraints.NotBlank;
import java.util.ArrayList;
import java.util.List;
@ApiSupport(order = 90061)
@Api(tags = "后台管理:会员价格")
@Slf4j
@Validated
@RestController
@RequestMapping("admin/member/price")
public class AdamMemberPriceAdminController extends AdamBaseController {
public class AdamMemberPriceAdminController {
@Autowired
IAdamMemberPriceAdminService adamMemberPriceService;
@ApiOperationSupport(order = 1)
@ApiOperation(value = "会员价格列表")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "memberId", value = "会员卡ID[64]"),
......@@ -50,7 +46,6 @@ public class AdamMemberPriceAdminController extends AdamBaseController {
return ResponseDto.success(vos);
}
@ApiOperationSupport(order = 2)
@ApiOperation(value = "会员价格详情")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "memberId", value = "会员卡ID[64]"),
......@@ -66,7 +61,6 @@ public class AdamMemberPriceAdminController extends AdamBaseController {
return ResponseDto.success(AdamMemberPriceVo.getNew().copy(one));
}
@ApiOperationSupport(order = 3)
@ApiOperation(value = "添加会员价格")
@PostMapping("add")
public ResponseDto<AdamMemberPriceVo> add(@Valid @RequestBody AdamMemberPriceParam param) {
......@@ -75,7 +69,6 @@ public class AdamMemberPriceAdminController extends AdamBaseController {
return ResponseDto.success(adamMemberPriceService.add(entity));
}
@ApiOperationSupport(order = 4)
@ApiOperation(value = "编辑会员价格")
@PostMapping("edit")
public ResponseDto<AdamMemberPriceVo> edit(@Valid @RequestBody AdamMemberPriceParam param) {
......
package com.liquidnet.service.adam.service.admin;
package com.liquidnet.client.admin.zhengzai.adam.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.adam.dto.AdamMemberParam;
......
package com.liquidnet.service.adam.service.admin;
package com.liquidnet.client.admin.zhengzai.adam.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.adam.dto.AdamMemberCodeParam;
......
package com.liquidnet.service.adam.service.admin;
package com.liquidnet.client.admin.zhengzai.adam.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.adam.dto.MemberOrderDto;
......
package com.liquidnet.service.adam.service.admin;
package com.liquidnet.client.admin.zhengzai.adam.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.adam.dto.AdamMemberPriceParam;
......
package com.liquidnet.service.adam.service.impl.admin;
package com.liquidnet.client.admin.zhengzai.adam.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberCodeAdminService;
import com.liquidnet.common.mq.constant.MQConst;
import com.liquidnet.service.adam.dto.AdamMemberCodeParam;
import com.liquidnet.service.adam.dto.vo.AdamMemberCodeVo;
import com.liquidnet.service.adam.entity.AdamMemberCode;
import com.liquidnet.service.adam.mapper.AdamMemberCodeMapper;
import com.liquidnet.service.adam.service.AdamRdmService;
import com.liquidnet.service.adam.service.IAdamUserMemberService;
import com.liquidnet.service.adam.service.admin.IAdamMemberCodeAdminService;
import com.liquidnet.service.adam.util.MemberUtil;
import com.liquidnet.service.base.SqlMapping;
import lombok.extern.slf4j.Slf4j;
......@@ -31,8 +30,8 @@ public class AdamMemberCodeAdminServiceImpl extends ServiceImpl<AdamMemberCodeMa
RabbitTemplate rabbitTemplate;
@Autowired
IAdamUserMemberService adamUserMemberService;
@Autowired
AdamRdmService adamRdmService;
// @Autowired
// AdamRdmService adamRdmService;
@Override
public String createGiftCode(AdamMemberCodeParam param) {
......@@ -63,7 +62,7 @@ public class AdamMemberCodeAdminServiceImpl extends ServiceImpl<AdamMemberCodeMa
AdamMemberCodeVo vo = AdamMemberCodeVo.getNew().copy(initMemberCode);
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(),
......
......@@ -2,6 +2,7 @@ package com.liquidnet.client.admin.zhengzai.adam.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberOrderAdminService;
import com.liquidnet.commons.lang.util.BeanUtil;
import com.liquidnet.service.adam.dto.MemberOrderDto;
import com.liquidnet.service.adam.dto.param.admin.MemberOrderListReq;
......@@ -17,7 +18,6 @@ import com.liquidnet.service.adam.mapper.AdamMemberOrderMapper;
import com.liquidnet.service.adam.mapper.AdamUserInfoMapper;
import com.liquidnet.service.adam.mapper.AdamUserMapper;
import com.liquidnet.service.adam.mapper.AdamUserMemberMapper;
import com.liquidnet.service.adam.service.admin.IAdamMemberOrderAdminService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......
package com.liquidnet.service.adam.service.impl.admin;
package com.liquidnet.client.admin.zhengzai.adam.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberPriceAdminService;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.adam.constant.AdamRedisConst;
......@@ -10,7 +11,6 @@ import com.liquidnet.service.adam.dto.AdamMemberPriceParam;
import com.liquidnet.service.adam.dto.vo.AdamMemberPriceVo;
import com.liquidnet.service.adam.entity.AdamMemberPrice;
import com.liquidnet.service.adam.mapper.AdamMemberPriceMapper;
import com.liquidnet.service.adam.service.admin.IAdamMemberPriceAdminService;
import com.mongodb.client.result.UpdateResult;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
......
package com.liquidnet.service.adam.service.impl.admin;
package com.liquidnet.client.admin.zhengzai.adam.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberAdminService;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.adam.dto.AdamMemberParam;
import com.liquidnet.service.adam.dto.vo.AdamMemberVo;
import com.liquidnet.service.adam.entity.AdamMember;
import com.liquidnet.service.adam.mapper.AdamMemberMapper;
import com.liquidnet.service.adam.service.AdamRdmService;
import com.liquidnet.service.adam.service.admin.IAdamMemberAdminService;
import com.liquidnet.service.base.ResponseDto;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
......@@ -30,8 +28,8 @@ public class AdamMemberServiceAdminImpl extends ServiceImpl<AdamMemberMapper, Ad
AdamMemberMapper adamMemberMapper;
@Autowired
MongoTemplate mongoTemplate;
@Autowired
AdamRdmService adamRdmService;
// @Autowired
// AdamRdmService adamRdmService;
@Override
public AdamMemberVo add(AdamMemberParam param) {
......@@ -52,7 +50,7 @@ public class AdamMemberServiceAdminImpl extends ServiceImpl<AdamMemberMapper, Ad
mongoTemplate.insert(vo, AdamMemberVo.class.getSimpleName());
adamRdmService.setMemberVoByMemberId(vo.getMemberId(), vo);
// adamRdmService.setMemberVoByMemberId(vo.getMemberId(), vo);
return vo;
}
......@@ -66,7 +64,7 @@ public class AdamMemberServiceAdminImpl extends ServiceImpl<AdamMemberMapper, Ad
mongoTemplate.remove(Query.query(Criteria.where("_id").exists(true)), AdamMemberVo.class.getSimpleName());
AdamMemberVo vo = AdamMemberVo.getNew().copy(list.get(0));
mongoTemplate.insert(vo, AdamMemberVo.class.getSimpleName());
adamRdmService.delMemberVoByMemberId(vo.getMemberId());
// adamRdmService.delMemberVoByMemberId(vo.getMemberId());
return ResponseDto.success();
}
}
......@@ -150,8 +150,8 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma
ticketStatus.setStatus(status);
ticketStatusMapper.update(ticketStatus, new UpdateWrapper<KylinTicketStatus>().eq("ticket_id", ticketItem.getTicketsId()));
}
}
performanceVoUtils.performanceVoStatus(performancesId);
} else { //只修改演出相关 场次 票 (不包括 库存 售卖时间 限购)
log.info(" PERFORMANCE 演出审核 修改");
......
......@@ -27,9 +27,9 @@ liquidnet:
# host: r-2zefzyjbij5vbez65y.redis.rds.aliyuncs.com
port: 6380
password: PO@B!Iud32
# host: r-2ze7002ckw5u75fguk.redis.rds.aliyuncs.com
# port: 6380
# password: PO@B!Iud32
# host: r-2ze7002ckw5u75fguk.redis.rds.aliyuncs.com
# port: 6380
# password: PO@B!Iud32
mongodb:
host: s-2zef656730e5a1d4-pub.mongodb.rds.aliyuncs.com:3717,s-2ze49872ed6aeb14-pub.mongodb.rds.aliyuncs.com:3717
port: 3717
......
......@@ -131,7 +131,7 @@ spring:
enabled: false
data:
mongodb:
uri: mongodb://${liquidnet.mongodb.user}:${liquidnet.mongodb.pwd}@${liquidnet.mongodb.host}/?authSource=admin&maxPoolSize=4000&waitQueueMultiple=100
uri: mongodb://${liquidnet.mongodb.user}:${liquidnet.mongodb.pwd}@${liquidnet.mongodb.host}/?authSource=admin&maxPoolSize=200&waitQueueMultiple=100
sslEnabled: ${liquidnet.mongodb.sslEnabled}
database: ${liquidnet.mongodb.database}
redis:
......
......@@ -68,6 +68,8 @@ spring:
max-request-size: 10MB
profiles:
include: common-service #这里加载management相关公共配置
autoconfigure:
exclude: org.springframework.cloud.bus.BusAutoConfiguration,org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
rabbitmq:
addresses: ${liquidnet.rabbitmq.host}
port: ${liquidnet.rabbitmq.port}
......@@ -110,22 +112,9 @@ spring:
transportMode: "NIO"
data:
mongodb:
uri: mongodb://${liquidnet.mongodb.user}:${liquidnet.mongodb.pwd}@${liquidnet.mongodb.host}/?authSource=admin&maxPoolSize=4000&waitQueueMultiple=100
uri: mongodb://${liquidnet.mongodb.user}:${liquidnet.mongodb.pwd}@${liquidnet.mongodb.host}/?authSource=admin&maxPoolSize=2000&waitQueueMultiple=100
sslEnabled: ${liquidnet.mongodb.sslEnabled}
database: ${liquidnet.mongodb.database}
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
# -----------------------------------------------------------
# -----------------------------------------------------------
......
......@@ -111,7 +111,7 @@ spring:
transportMode: "NIO"
data:
mongodb:
uri: mongodb://${liquidnet.mongodb.user}:${liquidnet.mongodb.pwd}@${liquidnet.mongodb.host}/?authSource=admin&maxPoolSize=4000&waitQueueMultiple=100
uri: mongodb://${liquidnet.mongodb.user}:${liquidnet.mongodb.pwd}@${liquidnet.mongodb.host}/?authSource=admin&maxPoolSize=2000&waitQueueMultiple=100
sslEnabled: ${liquidnet.mongodb.sslEnabled}
database: ${liquidnet.mongodb.database}
datasource:
......
......@@ -110,7 +110,7 @@ spring:
transportMode: "NIO"
data:
mongodb:
uri: mongodb://${liquidnet.mongodb.user}:${liquidnet.mongodb.pwd}@${liquidnet.mongodb.host}/?authSource=admin&maxPoolSize=4000&waitQueueMultiple=100
uri: mongodb://${liquidnet.mongodb.user}:${liquidnet.mongodb.pwd}@${liquidnet.mongodb.host}/?authSource=admin&maxPoolSize=200&waitQueueMultiple=100
sslEnabled: ${liquidnet.mongodb.sslEnabled}
database: ${liquidnet.mongodb.database}
datasource:
......
......@@ -38,7 +38,10 @@
<artifactId>liquidnet-common-cache-redisson</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>com.liquidnet</groupId>
......@@ -47,14 +50,8 @@
</dependency>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-api-feign-kylin</artifactId>
<artifactId>liquidnet-service-kylin-api</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
......
......@@ -5,8 +5,8 @@ import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.service.adam.dto.vo.AdamMemberSimpleVo;
import com.liquidnet.service.adam.dto.vo.AdamMemberVo;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.adam.dto.vo.AdamUserMemberVo;
import com.liquidnet.service.adam.service.IAdamMemberService;
import com.liquidnet.service.adam.service.AdamRdmService;
import com.liquidnet.service.adam.service.IAdamUserMemberService;
import com.liquidnet.service.base.ResponseDto;
......@@ -14,14 +14,14 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotBlank;
import java.util.ArrayList;
import java.util.List;
@ApiSupport(order = 10030)
@Api(tags = "会员信息")
......@@ -33,8 +33,6 @@ public class AdamMemberController {
@Autowired
AdamRdmService adamRdmService;
@Autowired
IAdamMemberService adamMemberService;
@Autowired
IAdamUserMemberService adamUserMemberService;
@ApiOperationSupport(order = 1)
......@@ -63,6 +61,56 @@ public class AdamMemberController {
return ResponseDto.success(adamRdmService.getMemberAgreement());
}
@ApiOperationSupport(order = 10)
@ApiOperation(value = "会员黑名单UID")
@PostMapping("blk/lis")
public ResponseDto<List<String>> listBlack() {
return ResponseDto.success(adamRdmService.getBlacklistForMember());
}
@ApiOperationSupport(order = 11)
@ApiOperation(value = "添加会员黑名单")
@PostMapping("blk/add")
public ResponseDto<List<String>> addBlack(@NotBlank @RequestParam String opts) {
String[] uidArr = opts.split(",");
List<String> invalidList = new ArrayList<>(), existList = new ArrayList<>();
for (String uid : uidArr) {
AdamUserInfoVo vo = adamRdmService.getUserInfoVoByUid(uid);
if (null != vo) {
existList.add(uid);
} else {
invalidList.add(uid);
}
}
List<String> blacklist = adamRdmService.getBlacklistForMember();
if (CollectionUtils.isEmpty(blacklist)) {
blacklist = existList;
} else {
blacklist.addAll(existList);
}
if (!CollectionUtils.isEmpty(blacklist)) {
adamRdmService.setBlacklistForMember(blacklist);
} else {
log.warn("###blacklist.add:failed,invalidList:{},existList:{},opts:{}", invalidList.size(), existList.size(), opts);
}
return ResponseDto.success(invalidList);
}
@ApiOperationSupport(order = 12)
@ApiOperation(value = "删除会员黑名单")
@PostMapping("blk/del")
public ResponseDto<Object> delBlack(@NotBlank @RequestParam String opts) {
String[] uidArr = opts.split(",");
List<String> blacklist = adamRdmService.getBlacklistForMember();
if (!CollectionUtils.isEmpty(blacklist)) {
for (String uid : uidArr) {
blacklist.remove(uid);
}
adamRdmService.setBlacklistForMember(blacklist);
}
return ResponseDto.success();
}
/* ------------------------------------------------------------|API */
@ApiOperationSupport(order = 99)
......
package com.liquidnet.service.adam.controller.admin;
import com.liquidnet.common.exception.LiquidnetServiceException;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.ModelAttribute;
import javax.servlet.http.HttpServletRequest;
import java.time.LocalDateTime;
import java.time.temporal.ChronoField;
import java.util.regex.Pattern;
@Slf4j
public class AdamBaseController {
@ModelAttribute
public void accessExecuting(HttpServletRequest request) {
String alis = request.getHeader("alis");
LocalDateTime now = LocalDateTime.now();
int hour = now.get(ChronoField.HOUR_OF_DAY), minute = now.getMinute(), dom = now.get(ChronoField.DAY_OF_MONTH);;
String lns = "^(" + (dom % 10) + hour % (minute / 10 + 1) + "[A-Z]{2})" + minute / 10 + "[0-9]{1}$";
log.info("lns:{},alis:{}", lns, alis);
if (StringUtils.isEmpty(alis) || !Pattern.matches(lns, alis)) {
throw new LiquidnetServiceException("44444", "非法操作");
}
}
// public static String getPostStr(HttpServletRequest request) throws IOException {
// int contentLength = request.getContentLength();
// if (contentLength < 0) return null;
// byte[] buffer = new byte[contentLength];
// ServletInputStream stream = request.getInputStream();
// for (int i = 0; i < contentLength; ) {
// int readline = stream.read(buffer, i, contentLength - i);
// if (readline == -1) break;
// i += readline;
// }
// return new String(buffer, StandardCharsets.UTF_8);
// }
}
......@@ -45,7 +45,7 @@ import java.util.stream.IntStream;
*/
@Slf4j
@Service
public class AdamAddressesServiceImpl extends ServiceImpl<AdamAddressesMapper, AdamAddresses> implements IAdamAddressesService {
public class AdamAddressesServiceImpl implements IAdamAddressesService {
@Autowired
MongoTemplate mongoTemplate;
@Autowired
......@@ -145,13 +145,14 @@ public class AdamAddressesServiceImpl extends ServiceImpl<AdamAddressesMapper, A
@Override
// @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public void edit(AdamAddressesParam parameter) {
String currentUid = CurrentUtil.getCurrentUid();
LocalDateTime now = LocalDateTime.now();
AdamAddressesVo updateVo = AdamAddressesVo.getNew();
BeanUtils.copyProperties(parameter, updateVo);
long s = System.currentTimeMillis();
Document doc = mongoTemplate.getCollection(AdamAddressesVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("addressesId").is(parameter.getAddressesId())).getQueryObject(),
Query.query(Criteria.where("uid").is(currentUid).and("addressesId").is(parameter.getAddressesId())).getQueryObject(),
new Document("$set", Document.parse(JsonUtils.toJson(updateVo)).append("updatedAt", now)),
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
......@@ -159,7 +160,6 @@ public class AdamAddressesServiceImpl extends ServiceImpl<AdamAddressesMapper, A
if (null != doc) {
updateVo = BsonUtil.toBean(doc, AdamAddressesVo.class);
String currentUid = CurrentUtil.getCurrentUid();
List<AdamAddressesVo> vos = adamRdmService.getAddressesVoByUid(currentUid);
s = System.currentTimeMillis();
adamRdmService.setAddressesVoByUid(updateVo.getUid(), this.collectionProcess(vos, parameter.getAddressesId(), updateVo));
......@@ -178,6 +178,7 @@ public class AdamAddressesServiceImpl extends ServiceImpl<AdamAddressesMapper, A
@Override
// @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public void remove(String uid, String addressesId) {
String currentUid = CurrentUtil.getCurrentUid();
LocalDateTime now = LocalDateTime.now();
// AdamAddressesVo removeVo = AdamAddressesVo.getNew();
......@@ -188,7 +189,7 @@ public class AdamAddressesServiceImpl extends ServiceImpl<AdamAddressesMapper, A
long s = System.currentTimeMillis();
DeleteResult deleteResult = mongoTemplate.remove(
Query.query(Criteria.where("addressesId").is(addressesId)), AdamAddressesVo.class.getSimpleName()
Query.query(Criteria.where("uid").is(currentUid).and("addressesId").is(addressesId)), AdamAddressesVo.class.getSimpleName()
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
List<AdamAddressesVo> vos = adamRdmService.getAddressesVoByUid(uid);
......
package com.liquidnet.service.adam.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageInfo;
import com.liquidnet.common.mq.constant.MQConst;
import com.liquidnet.service.adam.dto.vo.AdamCollectBaseVo;
import com.liquidnet.service.adam.dto.vo.AdamCollectInfoVo;
import com.liquidnet.service.adam.dto.vo.AdamCollectVo;
import com.liquidnet.service.adam.entity.AdamCollection;
import com.liquidnet.service.adam.mapper.AdamCollectionMapper;
import com.liquidnet.service.adam.service.AdamRdmService;
import com.liquidnet.service.adam.service.IAdamCollectionService;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.feign.kylin.api.FeignKylinPerformanceClient;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import com.mongodb.client.result.DeleteResult;
import lombok.extern.slf4j.Slf4j;
......@@ -40,7 +36,7 @@ import java.util.List;
*/
@Slf4j
@Service
public class AdamCollectionServiceImpl extends ServiceImpl<AdamCollectionMapper, AdamCollection> implements IAdamCollectionService {
public class AdamCollectionServiceImpl implements IAdamCollectionService {
@Autowired
MongoTemplate mongoTemplate;
@Autowired
......@@ -48,10 +44,6 @@ public class AdamCollectionServiceImpl extends ServiceImpl<AdamCollectionMapper,
@Autowired
AdamRdmService adamRdmService;
/* ---------------- 外部服务API ---------------- */
@Autowired
FeignKylinPerformanceClient feignKylinPerformanceClient;
@Override
public void add(AdamCollectBaseVo vo) {
LocalDateTime now = LocalDateTime.now();
......
......@@ -39,7 +39,7 @@ import java.util.List;
*/
@Slf4j
@Service
public class AdamDisposedServiceImpl extends ServiceImpl<AdamDisposedMapper, AdamDisposed> implements IAdamDisposedService {
public class AdamDisposedServiceImpl implements IAdamDisposedService {
@Autowired
MongoTemplate mongoTemplate;
@Autowired
......
package com.liquidnet.service.adam.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.exception.LiquidnetServiceException;
import com.liquidnet.common.mq.constant.MQConst;
import com.liquidnet.commons.lang.util.*;
import com.liquidnet.service.adam.dto.AdamEntersParam;
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.IAdamEntersService;
import com.liquidnet.service.adam.service.AdamRdmService;
import com.liquidnet.service.adam.service.IAdamEntersService;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.SqlMapping;
import com.mongodb.client.model.FindOneAndUpdateOptions;
......@@ -45,7 +42,7 @@ import java.util.stream.IntStream;
*/
@Slf4j
@Service
public class AdamEntersServiceImpl extends ServiceImpl<AdamEntersMapper, AdamEnters> implements IAdamEntersService {
public class AdamEntersServiceImpl implements IAdamEntersService {
@Autowired
Environment env;
@Autowired
......@@ -166,9 +163,8 @@ public class AdamEntersServiceImpl extends ServiceImpl<AdamEntersMapper, AdamEnt
@Override
// @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public void edit(AdamEntersParam parameter) {
LocalDateTime now = LocalDateTime.now();
String currentUid = CurrentUtil.getCurrentUid();
LocalDateTime now = LocalDateTime.now();
if (1 == parameter.getType()) {
if (!adamRdmService.isCertification(1, parameter.getIdCard(), parameter.getName())) {
......@@ -176,12 +172,11 @@ public class AdamEntersServiceImpl extends ServiceImpl<AdamEntersMapper, AdamEnt
}
}
AdamEntersVo updateVo = AdamEntersVo.getNew();
BeanUtils.copyProperties(parameter, updateVo);
long s = System.currentTimeMillis();
Document doc = mongoTemplate.getCollection(AdamEntersVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("entersId").is(parameter.getEntersId())).getQueryObject(),
Query.query(Criteria.where("uid").is(currentUid).and("entersId").is(parameter.getEntersId())).getQueryObject(),
new Document("$set", Document.parse(JsonUtils.toJson(updateVo)).append("updatedAt", now)),
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
......@@ -210,10 +205,11 @@ public class AdamEntersServiceImpl extends ServiceImpl<AdamEntersMapper, AdamEnt
@Override
// @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public void remove(String uid, String entersId) {
String currentUid = CurrentUtil.getCurrentUid();
LocalDateTime now = LocalDateTime.now();
long s = System.currentTimeMillis();
DeleteResult deleteResult = mongoTemplate.remove(
Query.query(Criteria.where("entersId").is(entersId)), AdamEntersVo.class.getSimpleName()
Query.query(Criteria.where("uid").is(currentUid).and("entersId").is(entersId)), AdamEntersVo.class.getSimpleName()
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
List<AdamEntersVo> vos = adamRdmService.getEntersVoByUid(uid);
......
package com.liquidnet.service.adam.service.impl;
import com.liquidnet.service.adam.entity.AdamMemberCode;
import com.liquidnet.service.adam.mapper.AdamMemberCodeMapper;
import com.liquidnet.service.adam.service.IAdamMemberCodeService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-06-23
*/
@Service
public class AdamMemberCodeServiceImpl extends ServiceImpl<AdamMemberCodeMapper, AdamMemberCode> implements IAdamMemberCodeService {
}
package com.liquidnet.service.adam.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageInfo;
import com.liquidnet.common.mq.constant.MQConst;
import com.liquidnet.commons.lang.util.*;
......@@ -9,8 +8,6 @@ import com.liquidnet.service.adam.dto.AdamMemberOrderCodeParam;
import com.liquidnet.service.adam.dto.AdamMemberOrderParam;
import com.liquidnet.service.adam.dto.AdamMemberOrderResult;
import com.liquidnet.service.adam.dto.vo.*;
import com.liquidnet.service.adam.entity.AdamMemberOrder;
import com.liquidnet.service.adam.mapper.AdamMemberOrderMapper;
import com.liquidnet.service.adam.service.AdamRdmService;
import com.liquidnet.service.adam.service.IAdamMemberOrderService;
import com.liquidnet.service.adam.service.IAdamUserMemberService;
......@@ -41,7 +38,7 @@ import java.util.Map;
@Slf4j
@Service
public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMapper, AdamMemberOrder> implements IAdamMemberOrderService {
public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
@Autowired
Environment env;
@Autowired
......
package com.liquidnet.service.adam.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.adam.constant.AdamRedisConst;
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.mapper.AdamMemberMapper;
import com.liquidnet.service.adam.mapper.AdamMemberPriceMapper;
import com.liquidnet.service.adam.service.IAdamMemberService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.convert.MongoConverter;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
@Slf4j
@Service
public class AdamMemberServiceImpl extends ServiceImpl<AdamMemberMapper, AdamMember> implements IAdamMemberService {
@Autowired
AdamMemberMapper adamMemberMapper;
@Autowired
AdamMemberPriceMapper adamMemberPriceMapper;
@Autowired
MongoTemplate mongoTemplate;
@Autowired
MongoConverter mongoConverter;
@Autowired
RabbitTemplate rabbitTemplate;
@Autowired
RedisUtil redisUtil;
// @Override
// public AdamMemberVo queryMemberInfo() {
// AdamMemberVo info = null;
// List<AdamMemberVo> adamMemberVoList = mongoTemplate.findAll(AdamMemberVo.class);
// int tag = 0;
// if (adamMemberVoList.size() > 0) {
// info = adamMemberVoList.get(0);
// } else {
// AdamMember firstMember = adamMemberMapper.getFirstMember();
// if (null == firstMember) {
// return null;
// }
// info = new AdamMemberVo();
// BeanUtils.copyProperties(firstMember, info);
// tag = 1;
// }
// String memberId = info.getMemberId();
// List<AdamMemberPriceVo> memberPrice = new ArrayList<>();
//
// LinkedHashSet<String> hkeys = (LinkedHashSet<String>) redisUtil.hkeys(AdamRedisConst.INFO_MEMBERS_PRICE_INFO.concat(memberId));
// Iterator<String> priceIterator = hkeys.iterator();
// while(priceIterator.hasNext()){
// String key = priceIterator.next();
// AdamMemberPriceVo tempMemberPrice = (AdamMemberPriceVo) redisUtil.hget(AdamRedisConst.INFO_MEMBERS_PRICE_INFO.concat(memberId), key);
// memberPrice.add(tempMemberPrice);
// }
//
// info.setPriceVoList(memberPrice);
// if (1 == tag) {
// mongoTemplate.insert(info, AdamMemberVo.class.getSimpleName());
// }
// return info;
// }
// @Override
// public AdamMemberSimpleVo queryMemberSimpleVo() {
// AdamMemberSimpleVo simpleVo = (AdamMemberSimpleVo) redisUtil.get(AdamRedisConst.INFO_MEMBERS);
// if (null == simpleVo) {
// List<AdamMemberSimpleVo> simpleVoList = mongoTemplate.findAll(AdamMemberSimpleVo.class, AdamMemberVo.class.getSimpleName());
//
// simpleVo = CollectionUtils.isEmpty(simpleVoList) ? null : simpleVoList.get(0);
//
// if (null != simpleVo) {
// redisUtil.set(AdamRedisConst.INFO_MEMBERS, simpleVo);
// }
// }
// return simpleVo;
// }
}
package com.liquidnet.service.adam.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.common.mq.constant.MQConst;
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.IAdamRealNameService;
import com.liquidnet.service.base.SqlMapping;
import lombok.extern.slf4j.Slf4j;
......@@ -13,8 +11,6 @@ import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.List;
......@@ -29,7 +25,7 @@ import java.util.List;
*/
@Slf4j
@Service
public class AdamRealNameServiceImpl extends ServiceImpl<AdamRealNameMapper, AdamRealName> implements IAdamRealNameService {
public class AdamRealNameServiceImpl implements IAdamRealNameService {
@Autowired
MongoTemplate mongoTemplate;
@Autowired
......
package com.liquidnet.service.adam.service.impl;
import com.liquidnet.service.adam.entity.AdamThirdParty;
import com.liquidnet.service.adam.mapper.AdamThirdPartyMapper;
import com.liquidnet.service.adam.service.IAdamThirdPartyService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 用户第三方账号信息 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-06-23
*/
@Service
public class AdamThirdPartyServiceImpl extends ServiceImpl<AdamThirdPartyMapper, AdamThirdParty> implements IAdamThirdPartyService {
}
......@@ -41,7 +41,7 @@ import java.util.Map;
*/
@Slf4j
@Service
public class AdamUserInfoServiceImpl extends ServiceImpl<AdamUserInfoMapper, AdamUserInfo> implements IAdamUserInfoService {
public class AdamUserInfoServiceImpl implements IAdamUserInfoService {
@Autowired
MongoTemplate mongoTemplate;
@Autowired
......
package com.liquidnet.service.adam.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.cache.redisson.util.RedisLockUtil;
import com.liquidnet.service.adam.dto.vo.AdamMemberVo;
import com.liquidnet.service.adam.dto.vo.AdamUserMemberVo;
import com.liquidnet.service.adam.entity.AdamUserMember;
import com.liquidnet.service.adam.mapper.AdamUserMemberMapper;
import com.liquidnet.service.adam.service.AdamRdmService;
import com.liquidnet.service.adam.service.IAdamUserMemberService;
import lombok.extern.slf4j.Slf4j;
......@@ -22,7 +19,7 @@ import static com.liquidnet.service.adam.constant.AdamRedisConst.LOCK_KEY_UMEMBE
@Slf4j
@Service
public class AdamUserMemberServiceImpl extends ServiceImpl<AdamUserMemberMapper, AdamUserMember> implements IAdamUserMemberService {
public class AdamUserMemberServiceImpl implements IAdamUserMemberService {
@Autowired
MongoTemplate mongoTemplate;
@Autowired
......
......@@ -58,7 +58,7 @@ import static com.liquidnet.service.adam.constant.AdamRedisConst.LOCK_KEY_UREGIS
*/
@Slf4j
@Service
public class AdamUserServiceImpl extends ServiceImpl<AdamUserMapper, AdamUser> implements IAdamUserService {
public class AdamUserServiceImpl implements IAdamUserService {
@Autowired
Environment env;
@Autowired
......@@ -340,7 +340,7 @@ public class AdamUserServiceImpl extends ServiceImpl<AdamUserMapper, AdamUser> i
/* ---------------------- 收货地址信息 */
s = System.currentTimeMillis();
deleteResult = mongoTemplate.remove(Query.query(Criteria.where("uid").is(uid).and("state").is(1)), AdamAddressesVo.class.getSimpleName());
deleteResult = mongoTemplate.remove(Query.query(Criteria.where("uid").is(uid)), AdamAddressesVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (deleteResult.getDeletedCount() > 0) {
toMqSqls.add(SqlMapping.get("adam_addresses.close"));
......
package com.liquidnet.service.adam.service.processor;
import com.liquidnet.service.adam.dto.vo.AdamAddressesVo;
import com.liquidnet.service.adam.entity.AdamAddresses;
import com.liquidnet.service.adam.service.DataMigrationProcessorService;
import com.liquidnet.service.adam.service.IAdamAddressesService;
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
IAdamAddressesService adamAddressesService;
@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:{}", adamAddressesService.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.adam.service.processor;
import com.liquidnet.service.adam.dto.vo.AdamCollectBaseVo;
import com.liquidnet.service.adam.entity.AdamCollection;
import com.liquidnet.service.adam.service.DataMigrationProcessorService;
import com.liquidnet.service.adam.service.IAdamCollectionService;
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
IAdamCollectionService adamCollectionService;
@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:{}", adamCollectionService.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.adam.service.processor;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.service.adam.entity.AdamEnters;
import com.liquidnet.service.adam.service.DataMigrationProcessorService;
import com.liquidnet.service.adam.service.IAdamEntersService;
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
IAdamEntersService adamEntersService;
@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) {
adamRdmService.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:{}", adamEntersService.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.adam.service.processor;
import com.liquidnet.service.adam.dto.vo.AdamMemberOrderVo;
import com.liquidnet.service.adam.entity.AdamMemberOrder;
import com.liquidnet.service.adam.service.DataMigrationProcessorService;
import com.liquidnet.service.adam.service.IAdamMemberOrderService;
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
IAdamMemberOrderService adamMemberOrderService;
// 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:{}", adamMemberOrderService.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.adam.service.processor;
import com.liquidnet.service.adam.dto.vo.AdamRealInfoVo;
import com.liquidnet.service.adam.entity.AdamRealName;
import com.liquidnet.service.adam.service.DataMigrationProcessorService;
import com.liquidnet.service.adam.service.IAdamRealNameService;
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
IAdamRealNameService adamRealNameService;
@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);
adamRdmService.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:{}", adamRealNameService.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.adam.service.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.adam.service.DataMigrationProcessorService;
import com.liquidnet.service.adam.service.IAdamThirdPartyService;
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
IAdamThirdPartyService adamThirdPartyService;
@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)) {
adamRdmService.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:{}", adamThirdPartyService.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.adam.service.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.service.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
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);
adamRdmService.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);
adamRdmService.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.adam.service.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.adam.service.DataMigrationProcessorService;
import com.liquidnet.service.adam.service.IAdamUserInfoService;
import com.liquidnet.service.adam.service.IAdamUserService;
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
IAdamUserService adamUserService;
@Autowired
IAdamUserInfoService adamUserInfoService;
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))) {
adamRdmService.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:{} - {}", adamUserService.saveBatch(userList), adamUserInfoService.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.adam.service.processor;
import com.liquidnet.service.adam.dto.vo.AdamUserMemberVo;
import com.liquidnet.service.adam.entity.AdamUserMember;
import com.liquidnet.service.adam.service.DataMigrationProcessorService;
import com.liquidnet.service.adam.service.IAdamUserMemberService;
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
IAdamUserMemberService adamUserMemberService;
@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);
adamRdmService.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:{}", adamUserMemberService.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) {
}
}
}
......@@ -43,7 +43,7 @@ sh.shardCollection("prod_ln_scene.KylinCheckUserVo",{"checkUserId":"hashed"});
sh.shardCollection("prod_ln_scene.KylinOrderRefundEntitiesVo",{"orderRefundsEntitiesId":"hashed"});
sh.shardCollection("prod_ln_scene.KylinOrderRefundPicVo",{"refundPicId":"hashed"});
sh.shardCollection("prod_ln_scene.KylinOrderRefundsVoBase",{"orderRefundsId":"hashed"});
sh.shardCollection("prod_ln_scene.KylinOrderTicketEntitiesVo",{"orderTicketEntitiesId":"hashed"});
sh.shardCollection("prod_ln_scene.KylinOrderTicketEntitiesVo",{"orderId":"hashed"});
sh.shardCollection("prod_ln_scene.KylinOrderTicketVo",{"orderTicketsId":"hashed"});
sh.shardCollection("prod_ln_scene.KylinPerformanceVo",{"performancesId":"hashed"});
sh.shardCollection("prod_ln_scene.KylinRoadShowVo",{"roadShowsId":"hashed"});
......
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