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

Commit c151e9a0 authored by Administrator's avatar Administrator 🎨

Merge branch 'pre' into 'master'

Pre

See merge request !15
parents ae352386 20a7c0e7
......@@ -2,8 +2,8 @@ package com.liquidnet.service.adam.dto.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.adam.dto.AdamMemberOrderDto;
import com.liquidnet.service.adam.entity.AdamMemberOrder;
import com.liquidnet.service.adam.entity.AdamMemberOrderExt;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -80,6 +80,44 @@ public class AdamMemberOrderVo implements Serializable, Cloneable {
}
}
public AdamMemberOrderVo copy(AdamMemberOrderDto source) {
if (null == source) return this;
this.setOrderNo(source.getOrderNo());
this.setUid(source.getUid());
this.setMode(source.getMode());
this.setMemberId(source.getMemberId());
this.setMemberName(source.getMemberName());
this.setMemberPriceId(source.getMemberPriceId());
this.setDays(source.getDays());
this.setState(source.getState());
this.setMemberNo(source.getMemberNo());
this.setBirthday(source.getBirthday());
this.setDeviceFrom(source.getDeviceFrom());
this.setPayType(source.getPayType());
this.setPayNo(source.getPayNo());
this.setPaymentAt(source.getPaymentAt());
this.setCreatedAt(source.getCreatedAt());
this.setUpdatedAt(source.getUpdatedAt());
this.setPrice(source.getPrice());
this.setPricePaid(source.getPricePaid());
this.setClientIp(source.getClientIp());
this.setSource(source.getSource());
this.setVersion(source.getVersion());
AdamMemberOrderExtVo extVo = AdamMemberOrderExtVo.getNew();
extVo.setOrderNo(source.getOrderNo());
extVo.setExpressStatus(source.getExpressStatus());
extVo.setExpressReceiver(source.getExpressReceiver());
extVo.setExpressPhone(source.getExpressPhone());
extVo.setExpressAddress(source.getExpressAddress());
this.setExtendVo(extVo);
return this;
}
public AdamMemberOrderVo copy(AdamMemberOrder source) {
if (null == source) return this;
this.setOrderNo(source.getOrderNo());
......
package com.liquidnet.service.adam.dto.vo;
import com.liquidnet.service.adam.entity.AdamRealName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -27,8 +28,17 @@ public class AdamRealInfoVo implements Serializable, Cloneable {
try {
return (AdamRealInfoVo) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
return new AdamRealInfoVo();
}
return new AdamRealInfoVo();
}
public AdamRealInfoVo copy(AdamRealName source) {
if (null == source) return this;
this.setUid(source.getUid());
this.setName(source.getName());
this.setIdCard(source.getIdCard());
this.setType(source.getType());
this.setState(source.getState());
return this;
}
}
......@@ -3,6 +3,7 @@ package com.liquidnet.service.adam.dto.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.adam.entity.AdamUserMember;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -42,6 +43,18 @@ public class AdamUserMemberVo implements Serializable, Cloneable {
}
}
public AdamUserMemberVo copy(AdamUserMember source) {
if (null == source) return this;
this.setUid(source.getUid());
this.setMemberId(source.getMemberId());
this.setMemberNo(source.getMemberNo());
this.setState(source.getState());
this.setExpiryAt(source.getExpiryAt());
this.setCreatedAt(source.getCreatedAt());
this.setUpdatedAt(source.getUpdatedAt());
return this;
}
/**
* 会员是否有效
*
......
package com.liquidnet.common.cache.redis.config;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
/**
* Created by Administrator on 2017/2/8.
*/
@Configuration
public class RedisCacheConfig{
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<String, Object>();
redisTemplate.setConnectionFactory(factory);
Jackson2JsonRedisSerializer j2jrs = new Jackson2JsonRedisSerializer(Object.class);
ObjectMapper om = new ObjectMapper();
om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
om.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
om.registerModule(new JavaTimeModule());
om.activateDefaultTyping(om.getPolymorphicTypeValidator(), ObjectMapper.DefaultTyping.NON_FINAL);
j2jrs.setObjectMapper(om);
StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
// key采用String的序列化方式
redisTemplate.setKeySerializer(stringRedisSerializer);
// hash的key也采用String的序列化方式
redisTemplate.setHashKeySerializer(stringRedisSerializer);
// value序列化方式采用jackson
redisTemplate.setValueSerializer(j2jrs);
// hash的value序列化方式采用jackson
redisTemplate.setHashValueSerializer(j2jrs);
redisTemplate.afterPropertiesSet();
return redisTemplate;
}
}
package com.liquidnet.common.cache.redis.config;//package com.liquidnet.common.cache.redis.config;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisStandaloneConfiguration;
import org.springframework.data.redis.connection.lettuce.LettuceClientConfiguration;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import org.springframework.data.redis.connection.lettuce.LettucePoolingClientConfiguration;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import javax.annotation.PostConstruct;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: RedisConfig
* @Package com.liquidnet.common.cache.redis.config
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/8/10 16:28
*/
@Slf4j
@Configuration
public class RedisConfig {
@Value("${spring.redis.host}")
private String host;
@Value("${spring.redis.port}")
private int port;
@Value("${spring.redis.password}")
private String password;
@Value("${spring.redis.lettuce.pool.max-active}")
private int maxActive;
@Value("${spring.redis.lettuce.pool.max-idle}")
private int maxIdle;
@Value("${spring.redis.lettuce.pool.min-idle}")
private int minIdle;
@Value("${spring.redis.lettuce.pool.max-wait}")
private int maxWait;
public static int defaultDb = 0;
public static int totalDbs = 1;
@Value("${spring.redis.dbs:${spring.redis.database}}")
private List<Integer> dbs;
public static Map<Integer, RedisTemplate<String, Object>> redisTemplateMap = new HashMap<>();
@PostConstruct
public void initRedisTemp() throws Exception {
log.info("###### START 初始化 Redis 连接池 START ######");
defaultDb = dbs.get(0);
if(dbs.size()==2&&dbs.get(1)!=null){
totalDbs = dbs.get(1);
log.info("init totalDbs : {}",totalDbs);
for (int i = 0;i < totalDbs; i++) {
log.info("###### 正在加载Redis-db-" + i+ " ######");
redisTemplateMap.put(i, getRedisTemplate(i));
}
}else{
log.info("init defaultDb : {}",defaultDb);
redisTemplateMap.put(defaultDb, getRedisTemplate(defaultDb));
}
log.info("###### END 初始化 Redis 连接池 END ######");
}
private RedisTemplate<String, Object> getRedisTemplate(int dbNo) {
return getRedisTemplate(getDbFactory(dbNo));
}
private LettuceConnectionFactory getDbFactory(int dbNo){
LettuceConnectionFactory factory = new LettuceConnectionFactory(getRedisConfig(dbNo), getClientConfig());
factory.afterPropertiesSet();//必须初始化实例
return factory;
}
private RedisStandaloneConfiguration getRedisConfig(int dbNo) {
RedisStandaloneConfiguration config = new RedisStandaloneConfiguration();
config.setHostName(host);
config.setPort(port);
config.setPassword(password);
config.setDatabase(dbNo);
return config;
}
private LettuceClientConfiguration getClientConfig() {
GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig();
poolConfig.setMaxTotal(maxActive);
poolConfig.setMaxIdle(maxIdle);
poolConfig.setMinIdle(minIdle);
poolConfig.setMaxWaitMillis(maxWait);
return LettucePoolingClientConfiguration.builder().poolConfig(poolConfig).build();
}
private RedisTemplate<String, Object> getRedisTemplate(LettuceConnectionFactory factory) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(factory);
setSerializer(redisTemplate);
redisTemplate.afterPropertiesSet();
return redisTemplate;
}
public RedisTemplate<String, Object> getRedisTemplateByDb(int db){
return redisTemplateMap.get(db);
}
@Bean
public RedisTemplate redisTemplate() {
LettuceConnectionFactory factory = null;
if(totalDbs==1){
factory = getDbFactory(defaultDb);
}else{
factory = getDbFactory(totalDbs-1);
}
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(factory);
setSerializer(redisTemplate);
redisTemplate.afterPropertiesSet();
return redisTemplate;
}
@Bean
public StringRedisTemplate stringRedisTemplate() {
LettuceConnectionFactory factory = null;
if(totalDbs==1){
factory = getDbFactory(defaultDb);
}else{
factory = getDbFactory(totalDbs-1);
}
StringRedisTemplate redisTemplate = new StringRedisTemplate();
redisTemplate.setConnectionFactory(factory);
return redisTemplate;
}
private void setSerializer(RedisTemplate<String, Object> template) {
Jackson2JsonRedisSerializer j2jrs = new Jackson2JsonRedisSerializer(Object.class);
ObjectMapper om = new ObjectMapper();
om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
om.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
om.registerModule(new JavaTimeModule());
om.activateDefaultTyping(om.getPolymorphicTypeValidator(), ObjectMapper.DefaultTyping.NON_FINAL);
j2jrs.setObjectMapper(om);
StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
// key采用String的序列化方式
template.setKeySerializer(stringRedisSerializer);
// hash的key也采用String的序列化方式
template.setHashKeySerializer(stringRedisSerializer);
// value序列化方式采用jackson
template.setValueSerializer(j2jrs);
// hash的value序列化方式采用jackson
template.setHashValueSerializer(j2jrs);
template.afterPropertiesSet();
}
}
\ No newline at end of file
package com.liquidnet.common.cache.redis.util;
import com.liquidnet.common.cache.redis.config.RedisConfig;
import lombok.extern.slf4j.Slf4j;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: MathUtil
* @Package com.liquidnet.common.cache.redis.util
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/8/10 18:03
*/
@Slf4j
public class MathUtil {
public static int getIndex(String key){
log.debug("MathUtil.getIndex key:{} hashcode:{}",key,key.hashCode());
int defaultDb = RedisConfig.defaultDb;
int totalDbs = RedisConfig.totalDbs;
if(totalDbs==1){
log.info("only one db : {} ",defaultDb);
return defaultDb;
}
int mod = 250;
if(totalDbs > 1 && totalDbs < 256){
if(totalDbs==16){
mod = 15;
}else{
mod = totalDbs - 1;
}
}
long value = Long.valueOf(key.hashCode());
int hash=(int)(value ^ (value >>> 32));
int index=hash % mod;
log.debug("MathUtil.getIndex key:{} index:{}",key,index);
return index;
}
public static void main(String[] args) {
RedisConfig redisConfig = new RedisConfig();
redisConfig.getRedisTemplateByDb(MathUtil.getIndex("1"));
}
}
package com.liquidnet.common.cache.redis.util;
/**
* @author AnJiabin <jiabin.an@lightnet.io>
* @version V1.0
* @Description: Redis工具类
* @class: RedisUtil
* @Package com.liquidnet.stellar.utils
* @Copyright: LightNet @ Copyright (c) 2020
* @date 2020/8/26 13:11
*/
import com.liquidnet.common.cache.redis.config.RedisConfig;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
......@@ -20,61 +11,78 @@ import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
/**
* @author AnJiabin <jiabin.an@lightnet.io>
* @version V1.0
* @Description: Redis工具类
* @class: RedisUtil
* @Package com.liquidnet.stellar.utils
* @Copyright: LightNet @ Copyright (c) 2020
* @date 2020/8/26 13:11
*/
@Component("redisUtil")
public final class RedisUtil {
@Autowired
private RedisTemplate<String, Object> redisTemplate;
@Autowired
private RedisConfig redisConfig;
// =============================common============================
/**
* 指定缓存失效时间
*
* @param key 键
* @param key 键
* @param time 时间(秒)
* @return
*/
public boolean expire(String key, long time) {
if (time > 0) {
if (time > 0) {
redisTemplate.expire(key, time, TimeUnit.SECONDS);
redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).expire(key, time, TimeUnit.SECONDS);
}
}
return true;
return true;
}
/**
* 根据key 获取过期时间
*
* @param key 键 不能为null
* @return 时间(秒) 返回0代表为永久有效
*/
public long getExpire(String key) {
return redisTemplate.getExpire(key, TimeUnit.SECONDS);
return redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).getExpire(key, TimeUnit.SECONDS);
}
/**
* 判断key是否存在
*
* @param key 键
* @return true 存在 false不存在
*/
public boolean hasKey(String key) {
return redisTemplate.hasKey(key);
return redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).hasKey(key);
}
......@@ -85,19 +93,23 @@ public final class RedisUtil {
*/
public void delKeysByPrefix(String prefix) {
if (null != prefix && prefix.trim().length() > 0) {
Set<String> keys = redisTemplate.keys(prefix.concat("*"));
for(Integer key: RedisConfig.redisTemplateMap.keySet()){
Set<String> keys = redisConfig.getRedisTemplateByDb(key).keys(prefix.concat("*"));
if (!CollectionUtils.isEmpty(keys)) {
redisTemplate.delete(keys);
if (!CollectionUtils.isEmpty(keys)) {
redisConfig.getRedisTemplateByDb(key).delete(keys);
}
}
}
}
/**
* 删除缓存
*
* 删除缓存(多db情况需要单独实现批量删除-该方法慎重使用)
* @param key 可以传一个值 或多个
*/
@SuppressWarnings("unchecked")
......@@ -108,12 +120,14 @@ public final class RedisUtil {
if (key.length == 1) {
redisTemplate.delete(key[0]);
redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key[0])).delete(key[0]);
} else {
redisTemplate.delete(CollectionUtils.arrayToList(key));
// redisTemplate.delete(CollectionUtils.arrayToList(key));
for(String keyStr:key){
redisConfig.getRedisTemplateByDb(MathUtil.getIndex(keyStr)).delete(keyStr);
}
}
}
......@@ -123,81 +137,100 @@ public final class RedisUtil {
public void delList(List<String> key) {
if (key != null && key.size() > 0) {
redisTemplate.delete(key);
for(String keyStr:key){
redisConfig.getRedisTemplateByDb(MathUtil.getIndex(keyStr)).delete(keyStr);
}
// redisTemplate.delete(key);
}
}
// ============================String=============================
/**
* 普通缓存获取
*
* @param key 键
* @return 值
*/
public Object get(String key) {
return key == null ? null : redisTemplate.opsForValue().get(key);
return key == null ? null : redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForValue().get(key);
}
/**
* 普通缓存放入
*
* @param key 键
* @param key 键
* @param value 值
* @return true成功 false失败
*/
public boolean set(String key, Object value) {
redisTemplate.opsForValue().set(key, value);
redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForValue().set(key, value);
return true;
return true;
}
/**
* 普通缓存放入并设置时间
*
* @param key 键
* @param key 键
* @param value 值
* @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期
* @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期
* @return true成功 false 失败
*/
public boolean set(String key, Object value, long time) {
if (time > 0) {
redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS);
if (time > 0) {
RedisTemplate<String, Object> redisTemplate = redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key));
redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS);
} else {
} else {
set(key, value);
set(key, value);
}
}
return true;
return true;
}
/**
* 递增
*
* @param key 键
* @param key 键
* @param delta 要增加几(大于0)
* @return
*/
public long incr(String key, long delta) {
......@@ -208,17 +241,21 @@ public final class RedisUtil {
}
return redisTemplate.opsForValue().increment(key, delta);
return redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForValue().increment(key, delta);
}
/**
* 递减
*
* @param key 键
* @param key 键
* @param delta 要减少几(小于0)
* @return
*/
public long decr(String key, long delta) {
......@@ -229,7 +266,7 @@ public final class RedisUtil {
}
return redisTemplate.opsForValue().increment(key, -delta);
return redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForValue().increment(key, -delta);
}
......@@ -237,185 +274,229 @@ public final class RedisUtil {
// ================================Map=================================
/**
* HashGet
*
* @param key 键 不能为null
* @param key 键 不能为null
* @param item 项 不能为null
* @return 值
*/
public Object hget(String key, String item) {
return redisTemplate.opsForHash().get(key, item);
return redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForHash().get(key, item);
}
public Object hkeys(String key) {
return redisTemplate.opsForHash().keys(key);
return redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForHash().keys(key);
}
/**
* 获取hashKey对应的所有键值
*
* @param key 键
* @return 对应的多个键值
*/
public Map<Object, Object> hmget(String key) {
return redisTemplate.opsForHash().entries(key);
return redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForHash().entries(key);
}
/**
* HashSet
*
* @param key 键
* @param map 对应多个键值
* @return true 成功 false 失败
*/
public boolean hmset(String key, Map<String, Object> map) {
redisTemplate.opsForHash().putAll(key, map);
redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForHash().putAll(key, map);
return true;
return true;
}
/**
* HashSet 并设置时间
*
* @param key 键
* @param map 对应多个键值
* @param key 键
* @param map 对应多个键值
* @param time 时间(秒)
* @return true成功 false失败
*/
public boolean hmset(String key, Map<String, Object> map, long time) {
redisTemplate.opsForHash().putAll(key, map);
redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForHash().putAll(key, map);
if (time > 0) {
if (time > 0) {
expire(key, time);
expire(key, time);
}
}
return true;
return true;
}
/**
* 向一张hash表中放入数据,如果不存在将创建
*
* @param key 键
* @param item 项
* @param key 键
* @param item 项
* @param value 值
* @return true 成功 false失败
*/
public boolean hset(String key, String item, Object value) {
redisTemplate.opsForHash().put(key, item, value);
redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForHash().put(key, item, value);
return true;
return true;
}
/**
* 向一张hash表中放入数据,如果不存在将创建
*
* @param key 键
* @param item 项
* @param key 键
* @param item 项
* @param value 值
* @param time 时间(秒) 注意:如果已存在的hash表有时间,这里将会替换原有的时间
* @param time 时间(秒) 注意:如果已存在的hash表有时间,这里将会替换原有的时间
* @return true 成功 false失败
*/
public boolean hset(String key, String item, Object value, long time) {
redisTemplate.opsForHash().put(key, item, value);
redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForHash().put(key, item, value);
if (time > 0) {
if (time > 0) {
expire(key, time);
expire(key, time);
}
}
return true;
return true;
}
/**
* 删除hash表中的值
*
* @param key 键 不能为null
* @param key 键 不能为null
* @param item 项 可以使多个 不能为null
*/
public void hdel(String key, Object... item) {
redisTemplate.opsForHash().delete(key, item);
redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForHash().delete(key, item);
}
/**
* 判断hash表中是否有该项的值
*
* @param key 键 不能为null
* @param key 键 不能为null
* @param item 项 不能为null
* @return true 存在 false不存在
*/
public boolean hHasKey(String key, String item) {
return redisTemplate.opsForHash().hasKey(key, item);
return redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForHash().hasKey(key, item);
}
/**
* hash递增 如果不存在,就会创建一个 并把新增后的值返回
*
* @param key 键
* @param key 键
* @param item 项
* @param by 要增加几(大于0)
* @param by 要增加几(大于0)
* @return
*/
public double hincr(String key, String item, double by) {
return redisTemplate.opsForHash().increment(key, item, by);
return redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForHash().increment(key, item, by);
}
/**
* hash递减
*
* @param key 键
* @param key 键
* @param item 项
* @param by 要减少记(小于0)
* @param by 要减少记(小于0)
* @return
*/
public double hdecr(String key, String item, double by) {
return redisTemplate.opsForHash().increment(key, item, -by);
return redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForHash().increment(key, item, -by);
}
......@@ -423,109 +504,132 @@ public final class RedisUtil {
// ============================set=============================
/**
* 根据key获取Set中的所有值
*
* @param key 键
* @return
*/
public Set<Object> sGet(String key) {
return redisTemplate.opsForSet().members(key);
return redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForSet().members(key);
}
/**
* 根据value从一个set中查询,是否存在
*
* @param key 键
* @param key 键
* @param value 值
* @return true 存在 false不存在
*/
public boolean sHasKey(String key, Object value) {
return redisTemplate.opsForSet().isMember(key, value);
return redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForSet().isMember(key, value);
}
/**
* 将数据放入set缓存
*
* @param key 键
* @param key 键
* @param values 值 可以是多个
* @return 成功个数
*/
public long sSet(String key, Object... values) {
return redisTemplate.opsForSet().add(key, values);
return redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForSet().add(key, values);
}
/**
* 将set数据放入缓存
*
* @param key 键
* @param time 时间(秒)
* @param key 键
* @param time 时间(秒)
* @param values 值 可以是多个
* @return 成功个数
*/
public long sSetAndTime(String key, long time, Object... values) {
Long count = redisTemplate.opsForSet().add(key, values);
Long count = redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForSet().add(key, values);
if (time > 0)
if (time > 0)
expire(key, time);
expire(key, time);
return count;
return count;
}
/**
* 获取set缓存的长度
*
* @param key 键
* @return
*/
public long sGetSetSize(String key) {
return redisTemplate.opsForSet().size(key);
return redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForSet().size(key);
}
/**
* 移除值为value的
*
* @param key 键
* @param key 键
* @param values 值 可以是多个
* @return 移除的个数
*/
public long setRemove(String key, Object... values) {
Long count = redisTemplate.opsForSet().remove(key, values);
Long count = redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForSet().remove(key, values);
return count;
return count;
}
......@@ -534,51 +638,63 @@ public final class RedisUtil {
/**
* 获取list缓存的内容
*
* @param key 键
* @param key 键
* @param start 开始
* @param end 结束 0 到 -1代表所有值
* @param end 结束 0 到 -1代表所有值
* @return
*/
public List<Object> lGet(String key, long start, long end) {
return redisTemplate.opsForList().range(key, start, end);
return redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForList().range(key, start, end);
}
/**
* 获取list缓存的长度
*
* @param key 键
* @return
*/
public long lGetListSize(String key) {
return redisTemplate.opsForList().size(key);
return redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForList().size(key);
}
/**
* 通过索引 获取list中的值
*
* @param key 键
* @param key 键
* @param index 索引 index>=0时, 0 表头,1 第二个元素,依次类推;index<0时,-1,表尾,-2倒数第二个元素,依次类推
* @return
*/
public Object lGetIndex(String key, long index) {
return redisTemplate.opsForList().index(key, index);
return redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForList().index(key, index);
}
......@@ -586,7 +702,6 @@ public final class RedisUtil {
/**
* 将list放入缓存
*
* @param key
* @param value
* @return
......@@ -594,33 +709,38 @@ public final class RedisUtil {
public boolean lSet(String key, Object value) {
redisTemplate.opsForList().rightPush(key, value);
redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForList().rightPush(key, value);
return true;
return true;
}
/**
* 将list放入缓存
*
* @param key 键
* @param key 键
* @param value 值
* @param time 时间(秒)
* @param time 时间(秒)
* @return
*/
public boolean lSet(String key, Object value, long time) {
redisTemplate.opsForList().rightPush(key, value);
redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForList().rightPush(key, value);
if (time > 0)
if (time > 0)
expire(key, time);
expire(key, time);
return true;
return true;
}
......@@ -628,7 +748,6 @@ public final class RedisUtil {
/**
* 将list放入缓存
*
* @param key
* @param value
* @return
......@@ -636,75 +755,96 @@ public final class RedisUtil {
public boolean lSet(String key, List<Object> value) {
redisTemplate.opsForList().rightPushAll(key, value);
redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForList().rightPushAll(key, value);
return true;
return true;
}
/**
* 将list放入缓存
*
* @param key 键
* @param key 键
* @param value 值
* @param time 时间(秒)
* @param time 时间(秒)
* @return
*/
public boolean lSet(String key, List<Object> value, long time) {
redisTemplate.opsForList().rightPushAll(key, value);
redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForList().rightPushAll(key, value);
if (time > 0)
if (time > 0)
expire(key, time);
expire(key, time);
return true;
return true;
}
/**
* 根据索引修改list中的某条数据
*
* @param key 键
* @param key 键
* @param index 索引
* @param value 值
* @return
*/
public boolean lUpdateIndex(String key, long index, Object value) {
redisTemplate.opsForList().set(key, index, value);
redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForList().set(key, index, value);
return true;
return true;
}
/**
* 移除N个值为value
*
* @param key 键
* @param key 键
* @param count 移除多少个
* @param value 值
* @return 移除的个数
*/
public long lRemove(String key, long count, Object value) {
Long remove = redisTemplate.opsForList().remove(key, count, value);
Long remove = redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForList().remove(key, count, value);
return remove;
return remove;
}
public RedisTemplate<String, Object> getRedisTemplateByDb(int db){
return redisConfig.getRedisTemplateByDb(db);
}
}
......@@ -31,6 +31,7 @@ liquidnet:
knife4j:
disable: false
redis:
dbs: 0,16
host: 39.106.122.201
port: 6379
password: 3Xa%8p
......
......@@ -31,6 +31,7 @@ liquidnet:
knife4j:
disable: false
redis:
dbs: 0,256
host: r-2ze7002ckw5u75fgukpd.redis.rds.aliyuncs.com
port: 6380
password: PO@B!Iud32
......
......@@ -21,5 +21,8 @@ liquidnet:
mongodb:
sslEnabled: false
database: dev_ln_scene
dragon:
redis:
database: 15
#以下为spring各环境个性配置
\ No newline at end of file
......@@ -21,5 +21,7 @@ liquidnet:
mongodb:
sslEnabled: false
database: test_ln_scene
dragon:
redis:
database: 255
#以下为spring各环境个性配置
......@@ -57,7 +57,7 @@ spring:
profiles:
include: common-service #这里加载management相关公共配置
redis:
database: 0
database: ${liquidnet.dragon.redis.database}
port: ${liquidnet.redis.dragon.port}
host: ${liquidnet.redis.dragon.host}
password: ${liquidnet.redis.dragon.password}
......
......@@ -75,6 +75,9 @@ spring:
- org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
redis:
database: 0
#如果配置了dbs,则database配置失效 格式为0,16 0为分库初始索引(目前只支持从0开始),16为redis总的db数,队列会自动创建在db15
#如果配置了dbs为具体dbNo 如:0 则作用同database配置一样
dbs: ${liquidnet.redis.dbs}
port: ${liquidnet.redis.dragon.port}
host: ${liquidnet.redis.dragon.host}
password: ${liquidnet.redis.dragon.password}
......
......@@ -82,6 +82,9 @@ spring:
connection-timeout: ${liquidnet.rabbitmq.connection-timeout}
redis:
database: 0
#如果配置了dbs,则database配置失效 格式为0,16 0为分库初始索引(目前只支持从0开始),16为redis总的db数,队列会自动创建在db15
#如果配置了dbs为具体dbNo 如:0 则作用同database配置一样
dbs: ${liquidnet.redis.dbs}
port: ${liquidnet.redis.dragon.port}
host: ${liquidnet.redis.dragon.host}
password: ${liquidnet.redis.dragon.password}
......
package com.liquidnet.service.adam.dto;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
public class AdamMemberOrderDto {
private String orderNo;
private String uid;
private Integer mode;
private String memberId;
private String memberName;
private String memberPriceId;
private Integer days;
private Integer state;
private String memberNo;
private String birthday;
private String deviceFrom;
private String payType;
private String payNo;
private LocalDateTime paymentAt;
private LocalDateTime createdAt;
private LocalDateTime updatedAt;
private BigDecimal price;
private BigDecimal pricePaid;
private String clientIp;
private String source;
private String version;
private Integer expressStatus;
private String expressReceiver;
private String expressPhone;
private String expressAddress;
}
package com.liquidnet.service.adam.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.liquidnet.service.adam.dto.AdamMemberOrderDto;
import com.liquidnet.service.adam.dto.MemberOrderDto;
import com.liquidnet.service.adam.entity.AdamMemberOrder;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
import java.util.Map;
public interface AdamMemberOrderMapper extends BaseMapper<AdamMemberOrder> {
List<MemberOrderDto> getMemberOrderList(Map<String, Object> map);
@Select({"select amo.mid," +
"amo.order_no as orderNo," +
"amo.uid," +
"amo.mode," +
"amo.price," +
"amo.price_paid as pricePaid," +
"amo.member_name as memberName," +
"amo.member_id as memberId," +
"amo.member_price_id as memberPriceId," +
"amo.days," +
"amo.state," +
"amo.member_no as memberNo," +
"amo.birthday," +
"amo.device_from as deviceFrom," +
"amo.pay_type as payType," +
"amo.pay_no as payNo," +
"amo.payment_at as paymentAt," +
"amo.created_at as createdAt," +
"amo.updated_at as updatedAt," +
"amo.client_ip as clientIp," +
"amo.source," +
"amo.version," +
"amoe.express_status as expressStatus," +
"amoe.express_receiver as expressReceiver," +
"amoe.express_phone as expressPhone," +
"amoe.express_address as expressAddress " +
"from adam_member_order amo " +
"left join adam_member_order_ext amoe on amo.order_no = amoe.order_no " +
"order by amo.mid " +
"limit #{rows},#{offset}"
})
List<AdamMemberOrderDto> selectMultiForMemberOrderDto(@Param("rows") int rows, @Param("offset") int offset);
}
......@@ -291,6 +291,7 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
initMemberCodeVo.getBuyOrderNo(), initMemberCodeVo.getBuyUid(), initMemberCodeVo.getBuyAt()
});
}
handleMemberOrderVo.setPricePaid(parameter.getPrice());
handleMemberOrderVo.setPaymentAt(DateUtil.Formatter.yyyyMMddHHmmss.parse(parameter.getPaymentAt()));
handleMemberOrderVo.setUpdatedAt(now);
handleMemberOrderVo.setState(1);// 1-已支付
......@@ -308,7 +309,8 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
handleMemberOrderVo.getPricePaid(), handleMemberOrderVo.getMemberName(), handleMemberOrderVo.getMemberId(), handleMemberOrderVo.getMemberPriceId(),
handleMemberOrderVo.getDays(), handleMemberOrderVo.getState(), handleMemberOrderVo.getMemberNo(), handleMemberOrderVo.getBirthday(),
handleMemberOrderVo.getDeviceFrom(), handleMemberOrderVo.getPayType(), handleMemberOrderVo.getPayNo(), handleMemberOrderVo.getPaymentAt(),
handleMemberOrderVo.getCreatedAt(), handleMemberOrderVo.getUpdatedAt(),
handleMemberOrderVo.getCreatedAt(),
handleMemberOrderVo.getUpdatedAt(),
handleMemberOrderVo.getClientIp(), handleMemberOrderVo.getSource(), handleMemberOrderVo.getVersion()
});
......@@ -461,7 +463,9 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
initMemberOrderVo.getPricePaid(), initMemberOrderVo.getMemberName(), initMemberOrderVo.getMemberId(), initMemberOrderVo.getMemberPriceId(),
initMemberOrderVo.getDays(), initMemberOrderVo.getState(), initMemberOrderVo.getMemberNo(), initMemberOrderVo.getBirthday(),
initMemberOrderVo.getDeviceFrom(), initMemberOrderVo.getPayType(), initMemberOrderVo.getPayNo(), initMemberOrderVo.getPaymentAt(),
initMemberOrderVo.getCreatedAt(), initMemberOrderVo.getClientIp(), initMemberOrderVo.getSource(), initMemberOrderVo.getVersion()
initMemberOrderVo.getCreatedAt(),
initMemberOrderVo.getUpdatedAt(),
initMemberOrderVo.getClientIp(), initMemberOrderVo.getSource(), initMemberOrderVo.getVersion()
});
s = System.currentTimeMillis();
......
......@@ -68,7 +68,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
new Object[]{code, refundCode, orderRefundCode, price, reason, notifyUrl, paymentType, nowTime, nowTime},
DragonConstant.MysqlRedisQueueEnum.DRAGON_REFUND_KEY.getCode()
);
dataUtils.setRefundNotifyUrl(DragonConstant.REFUND_REDIS_KET + orderRefundCode, notifyUrl);
dataUtils.setRefundNotifyUrl(orderRefundCode, notifyUrl);
DragonRefundChannelDto dto = null;
String localWePayCallBackUrl = url + "/refund/callBack/wepay";
if (insertResult) {
......@@ -536,7 +536,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
params.add("refundError", notifyUrlDto.getRefundError());
params.add("refundPrice", notifyUrlDto.getRefundPrice());
params.add("status", notifyUrlDto.getStatus().toString());
String response = HttpUtil.post(url == null ? dataUtils.getRefundNotifyUrl(DragonConstant.REFUND_REDIS_KET + notifyUrlDto.getOrderRefundCode()) : url, params);
String response = HttpUtil.post(url == null ? dataUtils.getRefundNotifyUrl(notifyUrlDto.getOrderRefundCode()) : url, params);
log.info("RETURN RESPONSE=" + response);
if (response.equals("success")) {
mqHandleUtil.sendMySqlRedis(
......
package com.liquidnet.service;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.dragon.dto.DragonOrdersDto;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: TestRedis
* @Package com.liquidnet.service.adam.test
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/7/29 13:36
*/
@Slf4j
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class TestRedis {
@Autowired
private RedisUtil redisUtil;
@Test
public void getPayCodeList(){
// List<Object> payCodeList = this.getPrefixKeyValue("dragon:pay:code:*");
// for(Object payCode:payCodeList){
// System.out.println("object=== "+ JsonUtils.toJson(payCode));
// }
//设置新的redis
List<String> keys = getPrefixKeys("dragon:pay:code:*");
log.info("总共迁移数据条数==="+keys.size());
DragonOrdersDto dragonOrdersDto = DragonOrdersDto.getNew();
for(String key:keys){
Object obj = redisUtil.getRedisTemplateByDb(0).opsForValue().get(key);
if(obj!=null){
dragonOrdersDto = (DragonOrdersDto) obj;
}
redisUtil.set(key,dragonOrdersDto);
}
// System.out.println(redisUtil.sGet("kylin:agent:info"));
// System.out.println(redisUtil.sHasKey("kylin:agent:info",14));
// System.out.println(redisUtil.getRedisTemplateByDb(0).opsForValue().get("dragon:pay:code:PAY20210810193315191566757"));
//
// List<Object> values = null;
// // 获取所有的key
// Set<String> keys = redisUtil.getRedisTemplateByDb(0).keys("dragon:pay:code:*");
// if (null != keys){
// for(String ss:keys){
// System.out.println("ss====="+ss);
// }
// // 批量获取数据
// values = redisUtil.getRedisTemplateByDb(0).opsForValue().multiGet(keys);
// }
// for(Object payCode:values){
// System.out.println("object=== "+ JsonUtils.toJson(payCode));
// }
}
@Test
public void getRefundList(){
// List<Object> payCodeList = this.getPrefixKeyValue("dragon:pay:code:*");
// for(Object payCode:payCodeList){
// System.out.println("object=== "+ JsonUtils.toJson(payCode));
// }
//设置新的redis
List<String> keys = getPrefixKeys("dragon:refund:refundCode:dragon:refund:refundCode:*");
String url = "";
log.info("总共迁移数据条数==="+keys.size());
for(String key:keys){
Object obj = redisUtil.getRedisTemplateByDb(0).opsForValue().get(key);
if(obj!=null){
url = (String) obj;
}
key = key.substring(25,key.length());
redisUtil.set(key,url);
}
// System.out.println(redisUtil.sGet("kylin:agent:info"));
// System.out.println(redisUtil.sHasKey("kylin:agent:info",14));
// System.out.println(redisUtil.getRedisTemplateByDb(0).opsForValue().get("dragon:pay:code:PAY20210810193315191566757"));
//
// List<Object> values = null;
// // 获取所有的key
// Set<String> keys = redisUtil.getRedisTemplateByDb(0).keys("dragon:pay:code:*");
// if (null != keys){
// for(String ss:keys){
// System.out.println("ss====="+ss);
// }
// // 批量获取数据
// values = redisUtil.getRedisTemplateByDb(0).opsForValue().multiGet(keys);
// }
// for(Object payCode:values){
// System.out.println("object=== "+ JsonUtils.toJson(payCode));
// }
}
@Test
public void deleteDataFromDb(){
}
/**
* 获取指定前缀的值
* @param prefix key前缀
* @return
*/
public List<Object> getPrefixKeyValue(String prefix) {
List<Object> values = null;
// 获取所有的key
Set<String> keys = redisUtil.getRedisTemplateByDb(0).keys(prefix);
if (null != keys){
for(String ss:keys){
System.out.println("ss====="+ss);
}
// 批量获取数据
values = redisUtil.getRedisTemplateByDb(0).opsForValue().multiGet(keys);
}
return values;
}
/**
* 获取指定前缀的key
* @param prefix key前缀
* @return
*/
public List<String> getPrefixKeys(String prefix) {
List<String> keysList = new ArrayList<>();
// 获取所有的key
Set<String> keys = redisUtil.getRedisTemplateByDb(0).keys(prefix);
if (null != keys){
for(String ss:keys){
keysList.add(ss);
}
}
return keysList;
}
private void switchRedisDbs(){
}
}
......@@ -111,7 +111,8 @@ public class KylinStationController {
log.info("###logout:checkUserId:{}\nssoKey:{}\ntoken:{}", checkUserId, ssoUidM5TokenKey, token);
redisUtil.set(ssoUidM5TokenKey, 0);
// redisUtil.set(ssoUidM5TokenKey, 0);
redisUtil.del(ssoUidM5TokenKey);
}
/* ------------------------------------------------------------------ */
......
......@@ -68,7 +68,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
new Object[]{code, refundCode, orderRefundCode, price, reason, notifyUrl, paymentType, nowTime, nowTime},
DragonConstant.MysqlRedisQueueEnum.DRAGON_REFUND_KEY.getCode()
);
dataUtils.setRefundNotifyUrl(DragonConstant.REFUND_REDIS_KET + orderRefundCode, notifyUrl);
dataUtils.setRefundNotifyUrl(orderRefundCode, notifyUrl);
DragonRefundChannelDto dto = null;
String localWePayCallBackUrl = url + "/refund/callBack/wepay";
if (insertResult) {
......@@ -94,32 +94,37 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
case DragonConstant.REFUND_TYPE_JS_WEPAY:
dto = weyPayRefund(code, orderRefundCode, code, reason, price, priceTotal, paymentId, paymentType, localWePayCallBackUrl, nowTime);
break;
case DragonConstant.REFUND_TYPE_APPLET_WEPAY:
dto = weyPayRefund(code, orderRefundCode, code, reason, price, priceTotal, paymentId, paymentType, localWePayCallBackUrl, nowTime);
break;
}
if (dto.getResult().equalsIgnoreCase("refunding")) {
log.info("");
log.info("dto = " + JSON.toJSONString(dto));
if (dto == null) {
return ResponseDto.failure("退款失败:参数异常");
} else if (dto.getResult().equalsIgnoreCase("refunding")) {
} else if (dto.getResult().equalsIgnoreCase("refunded")) {
//调用回调
log.info("");
} else if (dto.getResult().equalsIgnoreCase("error")) {
//调用回调
log.error("");
return ResponseDto.failure("退款失败:" + dto.getMessage());
} else if (dto.getResult().equalsIgnoreCase("exception")) {
log.error("");
}
DragonRefundAppDto refundAppDto = new DragonRefundAppDto();
refundAppDto.setOrderCode(orderCode);
refundAppDto.setCode(code);
refundAppDto.setOrderRefundCode(orderRefundCode);
refundAppDto.setRefundCode(refundCode);
log.info("refundAppDto = " + JSON.toJSONString(refundAppDto));
return ResponseDto.success(refundAppDto);
} else {
return ResponseDto.failure("退款失败");
}
} catch (Exception e) {
e.printStackTrace();
log.error("");
log.info("orderCode = " + orderCode + "", e);
return ResponseDto.failure("退款失败:" + e.getMessage());
}
}
......@@ -155,7 +160,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
String sign = PayWepayUtils.getInstance().createSign(parameters);
parameters.put("sign", sign);
String data = PayWepayUtils.getInstance().getRequestXml(parameters);
log.debug("XMLSTRING = " + data);
String refundError = "";
try {
HttpPost httpost = new HttpPost("https://api.mch.weixin.qq.com/secapi/pay/refund");
httpost.setEntity(new StringEntity(data, "UTF-8"));
......@@ -164,20 +169,18 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
HttpEntity entity = response.getEntity();
entity.getContent();
String jsonStr = EntityUtils.toString(entity, "UTF-8");
log.debug("JSONSTR = " + jsonStr);
log.info("JSONSTR = " + jsonStr);
WePayRefundReturnDto wePayRefundReturnDto = XmlUtil.toBean(jsonStr, WePayRefundReturnDto.class);
if (wePayRefundReturnDto.getErrCodeDes() != null) {
channelDto.setResult("error");
channelDto.setMessage(paymentType + " refund error: " + wePayRefundReturnDto.getErrCodeDes());
channelDto.setMessage(wePayRefundReturnDto.getErrCodeDes());
contentDto.setRequest(data);
contentDto.setResponse(jsonStr);
channelDto.setContent(contentDto);
return channelDto;
}
log.debug("BEAN = " + wePayRefundReturnDto);
if (!wePayRefundReturnDto.getReturnCode().equalsIgnoreCase("SUCCESS") || wePayRefundReturnDto.getReturnCode() == null) {
try {
String refundError = "";
refundStatus = DragonConstant.RefundStatusEnum.STATUS_ERROR.getCode();
if (null == wePayRefundReturnDto.getReturnMsg()) {
refundError = "退款失败,原因未知";
......@@ -202,7 +205,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
return channelDto;
}
channelDto.setResult("error");
channelDto.setMessage(paymentType + " refund error: ");
channelDto.setMessage(refundError);
contentDto.setRequest(data);
contentDto.setResponse(jsonStr);
channelDto.setContent(contentDto);
......@@ -261,6 +264,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
RefundContentDto contentDto = new RefundContentDto();
AlipayTradeRefundRequest request = new AlipayTradeRefundRequest();//创建API对应的request类
try {
String refundError = "";
request.setBizContent("{" +
"\"out_trade_no\":\"" + code + "\"," +
"\"trade_no\":\"" + paymentId + "\"," +
......@@ -268,9 +272,8 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
"\"refund_reason\":\"" + reason + "\"," +
"\"refund_amount\":\"" + price.doubleValue() + "\"}"); //设置业务参数
AlipayTradeRefundResponse response = PayAlipayUtils.getInstance().getHttpClient().execute(request);
if (response.getFundChange().equals("N") || response.getFundChange() == null) {
if (response.getFundChange() == null || response.getFundChange().equals("N")) {
try {
String refundError = "";
refundStatus = DragonConstant.RefundStatusEnum.STATUS_ERROR.getCode();
if (null == response.getSubMsg()) {
refundError = "退款失败,原因未知";
......@@ -295,7 +298,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
return channelDto;
}
channelDto.setResult("error");
channelDto.setMessage(paymentType + " refund error: ");
channelDto.setMessage(refundError);
contentDto.setRequest(JSON.toJSONString(response.getParams()));
contentDto.setResponse(response.getBody());
channelDto.setContent(contentDto);
......@@ -323,7 +326,6 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
);
} catch (Exception e) {
e.printStackTrace();
log.error("");
channelDto.setResult("exception");
channelDto.setMessage("update order refund with db error: " + e.getMessage());
contentDto.setRequest(JSON.toJSONString(response.getParams()));
......@@ -361,17 +363,14 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
String jsonStr = new String(outSteam.toByteArray(), "utf-8");
outSteam.close();
inStream.close();
log.debug("JSON = " + jsonStr);
WePayRefundReturnCallBackDto callBackDto = XmlUtil.toBean(jsonStr, WePayRefundReturnCallBackDto.class);
log.debug("DATA = " + callBackDto);
log.info("callBackDto = " + callBackDto);
if (callBackDto.getReturnCode().equalsIgnoreCase("SUCCESS")) {
String reqInfo = PayWepayUtils.getInstance().unCodeReqInfo(callBackDto.getReqInfo());
log.debug("REQINFO = " + reqInfo);
WePayRefundReturnCallBackInfoDto info = XmlUtil.toBean(reqInfo, WePayRefundReturnCallBackInfoDto.class);
String outRefundNo = info.getOutRefundNo();
String refundAt = info.getSuccessTime();
try {
NotifyUrlDto dto = new NotifyUrlDto();
if (info.getRefundStatus().equalsIgnoreCase("SUCCESS")) {
dto.setStatus(1);
......@@ -383,8 +382,8 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
dto.setRefundPrice(new BigDecimal(info.getRefundFee()).divide(BigDecimal.valueOf(100)).toString());
dto.setRefundAt(refundAt);
dto.setRefundError(callBackDto.getReturnMsg());
log.debug("SEND WEPAY NOTIFTURL = " + JSON.toJSONString(dto));
sendNotifyUrl(dto);
log.info("SEND WEPAY NOTIFTURL = " + JSON.toJSONString(dto));
sendNotifyUrl(dto, null);
mqHandleUtil.sendMySqlRedis(
SqlMapping.get("dragon_order_refund_log.insert"),
......@@ -413,7 +412,61 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
}
@Override
public String aliPayRefundCodeStatus(String outTradeNo, String tradeNo, String outBizNo,String callBackUrl) {
public String aliPayRefundCodeStatus(String outTradeNo, String tradeNo, String outBizNo, String callBackUrl) {
try {
LocalDateTime nowTime = LocalDateTime.now();
AlipayTradeFastpayRefundQueryRequest request = new AlipayTradeFastpayRefundQueryRequest();//创建API对应的request类
request.setBizContent("{" +
"\"out_trade_no\":\"" + outTradeNo + "\"," +
"\"trade_no\":\"" + tradeNo + "\"," +
"\"out_request_no\":\"" + outBizNo + "\"}"); //设置业务参数
AlipayTradeFastpayRefundQueryResponse response = PayAlipayUtils.getInstance().getHttpClient().execute(request);
log.info("AlipayTradeFastpayRefundQueryRequest -> data = " + response);
if (response.isSuccess()) {
try {
NotifyUrlDto dto = new NotifyUrlDto();
if (response.getMsg().equalsIgnoreCase("SUCCESS")) {
dto.setStatus(1);
} else {
dto.setStatus(0);
}
dto.setOrderRefundCode(response.getOutRequestNo());
dto.setRefundCode(response.getOutTradeNo());
dto.setRefundPrice(response.getRefundAmount());
dto.setRefundAt(DateUtil.Formatter.yyyyMMddHHmmss.format(LocalDateTime.now()));
dto.setRefundPrice(response.getRefundAmount());
dto.setRefundError("");
sendNotifyUrl(dto, callBackUrl);
log.debug("SEND ALIPAY NOTIFTURL2 = " + JSON.toJSONString(dto));
mqHandleUtil.sendMySqlRedis(
SqlMapping.get("dragon_order_refund_log.insert"),
new Object[]{outBizNo, "ALIPAY", JSON.toJSONString(response), nowTime, nowTime},
DragonConstant.MysqlRedisQueueEnum.DRAGON_REFUND_KEY.getCode()
);
mqHandleUtil.sendMySqlRedis(
SqlMapping.get("dragon_order_refund_success.update"),
new Object[]{nowTime, DateUtil.format(response.getGmtRefundPay(), DateUtil.Formatter.yyyyMMddHHmmss), DragonConstant.RefundStatusEnum.STATUS_REFUNDED.getCode(), response.getOutRequestNo()},
DragonConstant.MysqlRedisQueueEnum.DRAGON_REFUND_KEY.getCode()
);
return "success";
} catch (Exception e) {
e.printStackTrace();
log.error("");
return "fail";
}
} else {
log.error("response.isSuccess() -> fail ");
return "fail";
}
} catch (Exception e) {
}
return null;
}
......@@ -427,11 +480,10 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
"\"trade_no\":\"" + callBackDto.getTradeNo() + "\"," +
"\"out_request_no\":\"" + callBackDto.getOutBizNo() + "\"}"); //设置业务参数
AlipayTradeFastpayRefundQueryResponse response = PayAlipayUtils.getInstance().getHttpClient().execute(request);
log.debug("AlipayTradeFastpayRefundQueryRequest -> data = " + JSON.toJSONString(response));
log.info("AlipayTradeFastpayRefundQueryRequest -> data = " + JSON.toJSONString(response));
if (response.isSuccess()) {
try {
NotifyUrlDto dto = new NotifyUrlDto();
if (response.getMsg().equalsIgnoreCase("SUCCESS")) {
dto.setStatus(1);
......@@ -444,8 +496,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
dto.setRefundAt(callBackDto.getGmtRefund());
dto.setRefundPrice(response.getRefundAmount());
dto.setRefundError("");
log.debug("SEND ALIPAY NOTIFTURL = " + JSON.toJSONString(dto));
sendNotifyUrl(dto);
sendNotifyUrl(dto, null);
mqHandleUtil.sendMySqlRedis(
SqlMapping.get("dragon_order_refund_log.insert"),
......@@ -476,7 +527,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
}
}
private void sendNotifyUrl(NotifyUrlDto notifyUrlDto) {
private void sendNotifyUrl(NotifyUrlDto notifyUrlDto, String url) {
LocalDateTime nowTime = LocalDateTime.now();
MultiValueMap<String, String> params = new LinkedMultiValueMap();
params.add("orderRefundCode", notifyUrlDto.getOrderRefundCode());
......@@ -485,8 +536,8 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
params.add("refundError", notifyUrlDto.getRefundError());
params.add("refundPrice", notifyUrlDto.getRefundPrice());
params.add("status", notifyUrlDto.getStatus().toString());
String response = HttpUtil.post(dataUtils.getRefundNotifyUrl(DragonConstant.REFUND_REDIS_KET + notifyUrlDto.getOrderRefundCode()), params);
log.debug("RETURN RESPONSE=" + response);
String response = HttpUtil.post(url == null ? dataUtils.getRefundNotifyUrl(notifyUrlDto.getOrderRefundCode()) : url, params);
log.info("RETURN RESPONSE=" + response);
if (response.equals("success")) {
mqHandleUtil.sendMySqlRedis(
SqlMapping.get("dragon_order_refund_call_back.update"),
......@@ -501,4 +552,5 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
);
}
}
}
......@@ -999,7 +999,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
return true;
} else {
AlibabaDamaiMevOpenBatchpushticketResponse rsp = client.execute(req);
log.info("error data ="+ rsp.getBody());
log.info("error data =" + rsp.getBody());
return rsp.getResult().getSuccess();
}
}
......
package com.liquidnet.service.platform.controller.adam;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.liquidnet.common.exception.LiquidnetServiceException;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.platform.service.impl.adam.sync.processor.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.time.LocalDateTime;
import java.time.temporal.ChronoField;
import java.util.regex.Pattern;
@ApiSupport(order = 90061)
@Api(tags = "@SYNC")
@Slf4j
@Validated
@RestController
@RequestMapping("adam/sync")
public class PlatformAdamSyncController {
@Autowired
SyncUserInformationProcessor syncUserInformationProcessor;
@Autowired
SyncThirdPartyProcessor syncThirdPartyProcessor;
@Autowired
SyncRealNameProcessor syncRealNameProcessor;
@Autowired
SyncUserMemberProcessor syncUserMemberProcessor;
@Autowired
SyncMemberOrderProcessor syncMemberOrderProcessor;
@Autowired
SyncAddressesProcessor syncAddressesProcessor;
@Autowired
SyncEntersProcessor syncEntersProcessor;
@Autowired
SyncMemberRelatedProcessor syncMemberRelatedProcessor;
@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", "非法操作");
}
log.info("uri:[{}],Parameter:{}", request.getRequestURI(), request.getParameterMap());
}
@ApiOperationSupport(order = 1)
@ApiOperation(value = "T - MTR")
@GetMapping(value = {"mr/{vn}"})
public ResponseDto<Object> fromMysqlToRedisHandler(@PathVariable String vn, @RequestParam int stp) {
switch (vn) {
case "user":
syncUserInformationProcessor.dataProcessing(stp);
break;
case "tpa":
syncThirdPartyProcessor.dataProcessing(stp);
break;
case "real":
syncRealNameProcessor.dataProcessing(stp);
break;
case "umember":
syncUserMemberProcessor.dataProcessing(stp);
break;
case "morder":
syncMemberOrderProcessor.dataProcessing(stp);
break;
case "address":
syncAddressesProcessor.dataProcessing(stp);
break;
case "enters":
syncEntersProcessor.dataProcessing(stp);
break;
case "mrelated":
syncMemberRelatedProcessor.dataProcessing(stp);
break;
case "rds":
break;
default:
return ResponseDto.failure(vn);
}
return ResponseDto.success(vn);
}
}
......@@ -16,6 +16,7 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.validation.constraints.Max;
import java.time.LocalDateTime;
import java.time.temporal.ChronoField;
import java.util.concurrent.ExecutorService;
......@@ -27,7 +28,7 @@ import java.util.regex.Pattern;
@Slf4j
@Validated
@RestController
@RequestMapping("dm")
@RequestMapping("adam/dm")
public class PlatformDMController {
@Autowired
DMUserInformationProcessor dmUserInformationProcessor;
......@@ -69,7 +70,7 @@ public class PlatformDMController {
@ApiImplicitParam(type = "form", name = "dG", example = "220"),
})
@GetMapping(value = {"user"})
public ResponseDto<Object> dataMigrationForUser(@RequestParam(required = false) Integer dG,
public ResponseDto<Object> dataMigrationForUser(@Max(5) @RequestParam(required = false) Integer dG,
@RequestParam(required = false) String incrDt,
@RequestParam(required = false) String flg,
@RequestParam(required = false) String flu
......@@ -98,7 +99,7 @@ public class PlatformDMController {
@ApiImplicitParam(type = "form", name = "dG", example = "45"),
})
@GetMapping(value = {"tpa"})
public ResponseDto<Object> dataMigrationForTpa(@RequestParam(required = false) Integer dG,
public ResponseDto<Object> dataMigrationForTpa(@Max(5) @RequestParam(required = false) Integer dG,
@RequestParam(required = false) String incrDt,
@RequestParam(required = false) String flg,
@RequestParam(required = false) String flu
......@@ -126,7 +127,7 @@ public class PlatformDMController {
@ApiImplicitParam(type = "form", name = "dG", example = "2"),
})
@GetMapping(value = {"real"})
public ResponseDto<Object> dataMigrationForReal(@RequestParam(required = false) Integer dG,
public ResponseDto<Object> dataMigrationForReal(@Max(5) @RequestParam(required = false) Integer dG,
@RequestParam(required = false) String incrDt,
@RequestParam(required = false) String flg,
@RequestParam(required = false) String flu
......@@ -154,7 +155,7 @@ public class PlatformDMController {
@ApiImplicitParam(type = "form", name = "dG", example = "15"),
})
@GetMapping(value = {"collect"})
public ResponseDto<Object> dataMigrationForCollect(@RequestParam(required = false) Integer dG,
public ResponseDto<Object> dataMigrationForCollect(@Max(5) @RequestParam(required = false) Integer dG,
@RequestParam(required = false) String incrDt,
@RequestParam(required = false) String flg,
@RequestParam(required = false) String flu
......@@ -182,7 +183,7 @@ public class PlatformDMController {
@ApiImplicitParam(type = "form", name = "dG", example = "93"),
})
@GetMapping(value = {"enters"})
public ResponseDto<Object> dataMigrationForEnters(@RequestParam(required = false) Integer dG,
public ResponseDto<Object> dataMigrationForEnters(@Max(5) @RequestParam(required = false) Integer dG,
@RequestParam(required = false) String incrDt,
@RequestParam(required = false) String flg,
@RequestParam(required = false) String flu
......@@ -210,7 +211,7 @@ public class PlatformDMController {
@ApiImplicitParam(type = "form", name = "dG", example = "27"),
})
@GetMapping(value = {"addr"})
public ResponseDto<Object> dataMigrationForAddr(@RequestParam(required = false) Integer dG,
public ResponseDto<Object> dataMigrationForAddr(@Max(5) @RequestParam(required = false) Integer dG,
@RequestParam(required = false) String incrDt,
@RequestParam(required = false) String flg,
@RequestParam(required = false) String flu
......@@ -238,7 +239,7 @@ public class PlatformDMController {
@ApiImplicitParam(type = "form", name = "dG", example = "2"),
})
@GetMapping(value = {"vip"})
public ResponseDto<Object> dataMigrationForVip(@RequestParam(required = false) Integer dG,
public ResponseDto<Object> dataMigrationForVip(@Max(5) @RequestParam(required = false) Integer dG,
@RequestParam(required = false) String incrDt,
@RequestParam(required = false) String flg,
@RequestParam(required = false) String flu
......@@ -263,7 +264,7 @@ public class PlatformDMController {
@ApiOperationSupport(order = 8)
@ApiOperation(value = "morder")
@GetMapping(value = {"morder"})
public ResponseDto<Object> dataMigrationForMOrder(@RequestParam(required = false) Integer dG,
public ResponseDto<Object> dataMigrationForMOrder(@Max(5) @RequestParam(required = false) Integer dG,
@RequestParam(required = false) String incrDt,
@RequestParam(required = false) String flg,
@RequestParam(required = false) String flu
......@@ -275,7 +276,7 @@ public class PlatformDMController {
@ApiOperationSupport(order = 9)
@ApiOperation(value = "mcode")
@GetMapping(value = {"mcode"})
public ResponseDto<Object> dataMigrationForMCode(@RequestParam(required = false) Integer dG,
public ResponseDto<Object> dataMigrationForMCode(@Max(5) @RequestParam(required = false) Integer dG,
@RequestParam(required = false) String incrDt,
@RequestParam(required = false) String flg,
@RequestParam(required = false) String flu
......@@ -287,7 +288,7 @@ public class PlatformDMController {
@ApiOperationSupport(order = 10)
@ApiOperation(value = "traces")
@GetMapping(value = {"traces"})
public ResponseDto<Object> dataMigrationForTraces(@RequestParam(required = false) Integer dG,
public ResponseDto<Object> dataMigrationForTraces(@Max(5) @RequestParam(required = false) Integer dG,
@RequestParam(required = false) String incrDt,
@RequestParam(required = false) String flg,
@RequestParam(required = false) String flu
......
......@@ -55,7 +55,6 @@ public class DMRdmService {
public String getUidByMobile(String mobile) {
String key = AdamRedisConst.IDENTITY_MOBILE.concat(mobile);
long s = System.currentTimeMillis();
String val = (String) redisUtil.get(key);
// if (StringUtils.isEmpty(val)) {
// Query query = Query.query(Criteria.where("mobile").is(mobile).and("state").is(1));
......@@ -68,7 +67,6 @@ public class DMRdmService {
// redisUtil.set(key, vo.getUid());
// }
// }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return val;
}
......@@ -82,7 +80,6 @@ public class DMRdmService {
public String getUidByPlatformOpenId(String platform, String openId) {
String key = AdamRedisConst.IDENTITY_THIRD_PARTY + platform + ":" + openId;
long s = System.currentTimeMillis();
String val = (String) redisUtil.get(key);
// if (StringUtils.isEmpty(val)) {
// Query query = Query.query(Criteria.where("openId").is(openId).and("platform").is(platform).and("state").is(1));
......@@ -95,7 +92,6 @@ public class DMRdmService {
// redisUtil.set(key, vo.getUid());
// }
// }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return val;
}
......@@ -111,7 +107,6 @@ public class DMRdmService {
public AdamUserInfoVo getUserInfoVoByUid(String uid) {
String rk = AdamRedisConst.INFO_USER.concat(uid);
long s = System.currentTimeMillis();
AdamUserInfoVo vo = (AdamUserInfoVo) redisUtil.get(rk);
// if (null == vo) {
// s = System.currentTimeMillis();
......@@ -121,7 +116,6 @@ public class DMRdmService {
//
// if (null != vo) redisUtil.set(rk, vo);
// }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo;
}
......@@ -137,7 +131,6 @@ public class DMRdmService {
public AdamRealInfoVo getRealInfoVoByUid(String uid) {
String rk = AdamRedisConst.INFO_REAL_NAME.concat(uid);
long s = System.currentTimeMillis();
AdamRealInfoVo vo = (AdamRealInfoVo) redisUtil.get(rk);
// if (null == vo) {
// s = System.currentTimeMillis();
......@@ -151,7 +144,6 @@ public class DMRdmService {
vo.setName(SensitizeUtil.chineseName(vo.getName()));
vo.setIdCard(SensitizeUtil.custom(vo.getIdCard(), 3, 2));
}
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo;
}
......@@ -174,7 +166,6 @@ public class DMRdmService {
public List<AdamThirdPartInfoVo> getThirdPartVoListByUid(String uid) {
String rk = AdamRedisConst.INFO_THIRD_PARTY.concat(uid);
long s = System.currentTimeMillis();
List<AdamThirdPartInfoVo> thirdPartInfoVos = (List<AdamThirdPartInfoVo>) redisUtil.get(rk);
// if (CollectionUtils.isEmpty(thirdPartInfoVos)) {
// s = System.currentTimeMillis();
......@@ -184,7 +175,6 @@ public class DMRdmService {
//
// if (!CollectionUtils.isEmpty(thirdPartInfoVos)) redisUtil.set(rk, thirdPartInfoVos);
// }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return thirdPartInfoVos;
}
......@@ -206,7 +196,10 @@ public class DMRdmService {
public AdamThirdPartInfoVo getThirdPartVoByUidPlatform(List<AdamThirdPartInfoVo> vos, String platform) {
if (!CollectionUtils.isEmpty(vos)) {
return vos.stream().filter(r -> r.getPlatform().equals(platform)).findAny().orElse(null);
Optional<AdamThirdPartInfoVo> any = vos.stream().filter(r -> r.getPlatform().equals(platform)).findAny();
if (any.isPresent()) {
return any.get();
}
}
return null;
}
......@@ -216,7 +209,10 @@ public class DMRdmService {
if (!CollectionUtils.isEmpty(vos)) {
// for (AdamThirdPartInfoVo r : vos)
// if (platform.equals(r.getPlatform())) return r;
return vos.stream().filter(r -> r.getPlatform().equals(platform)).findAny().orElse(null);
Optional<AdamThirdPartInfoVo> any = vos.stream().filter(r -> r.getPlatform().equals(platform)).findAny();
if (any.isPresent()) {
return any.get();
}
}
return null;
}
......@@ -233,7 +229,6 @@ public class DMRdmService {
public List<AdamEntersVo> getEntersVoByUid(String uid) {
String rk = AdamRedisConst.INFO_ENTERS.concat(uid);
long s = System.currentTimeMillis();
ArrayList<AdamEntersVo> vos = (ArrayList<AdamEntersVo>) redisUtil.get(rk);
// if (CollectionUtils.isEmpty(vos)) {
// s = System.currentTimeMillis();
......@@ -245,7 +240,6 @@ public class DMRdmService {
//
// if (!CollectionUtils.isEmpty(vos)) redisUtil.set(rk, vos);
// }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vos;
}
......@@ -266,18 +260,16 @@ public class DMRdmService {
}
public AdamEntersVo getEntersVoByUidEntersId(List<AdamEntersVo> vos, String entersId) {
return CollectionUtils.isEmpty(vos) ? null : vos.stream().filter(r -> r.getEntersId().equals(entersId)).findAny().orElse(null);
return vos.stream().filter(r -> r.getEntersId().equals(entersId)).findAny().orElse(null);
}
public AdamEntersVo getEntersVoByUidEntersId(String uid, String entersId) {
List<AdamEntersVo> vos = this.getEntersVoByUid(uid);
return CollectionUtils.isEmpty(vos) ? null : vos.stream().filter(r -> r.getEntersId().equals(entersId)).findAny().orElse(null);
return this.getEntersVoByUid(uid).stream().filter(r -> r.getEntersId().equals(entersId)).findAny().orElse(null);
}
public List<AdamEntersVo> getEntersVoByUidEntersIds(String uid, String... entersIds) {
List<String> entersIdList = Arrays.asList(entersIds);
List<AdamEntersVo> vos = this.getEntersVoByUid(uid);
return CollectionUtils.isEmpty(vos) ? null : vos.stream().filter(r -> entersIdList.contains(r.getEntersId())).collect(Collectors.toList());
return this.getEntersVoByUid(uid).stream().filter(r -> entersIdList.contains(r.getEntersId())).collect(Collectors.toList());
}
public void delEntersVoByUid(String uid) {
......@@ -292,7 +284,6 @@ public class DMRdmService {
public List<AdamAddressesVo> getAddressesVoByUid(String uid) {
String rk = AdamRedisConst.INFO_ADDRESSES.concat(uid);
long s = System.currentTimeMillis();
List<AdamAddressesVo> vos = (List<AdamAddressesVo>) redisUtil.get(rk);
// if (CollectionUtils.isEmpty(vos)) {
// s = System.currentTimeMillis();
......@@ -304,7 +295,6 @@ public class DMRdmService {
//
// if (!CollectionUtils.isEmpty(vos)) redisUtil.set(rk, vos);
// }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vos;
}
......@@ -325,12 +315,11 @@ public class DMRdmService {
}
public AdamAddressesVo getAddressesVoByUidAddressesId(List<AdamAddressesVo> vos, String addressesId) {
return CollectionUtils.isEmpty(vos) ? null : vos.stream().filter(r -> r.getAddressesId().equals(addressesId)).findAny().orElse(null);
return vos.stream().filter(r -> r.getAddressesId().equals(addressesId)).findAny().orElse(null);
}
public AdamAddressesVo getAddressesVoByUidAddressesId(String uid, String addressesId) {
List<AdamAddressesVo> vos = this.getAddressesVoByUid(uid);
return CollectionUtils.isEmpty(vos) ? null : vos.stream().filter(r -> r.getAddressesId().equals(addressesId)).findAny().orElse(null);
return this.getAddressesVoByUid(uid).stream().filter(r -> r.getAddressesId().equals(addressesId)).findAny().orElse(null);
}
public void delAddressesVoByUid(String uid) {
......@@ -355,7 +344,6 @@ public class DMRdmService {
public AdamUserMemberVo getUserMemberVoByUid(String uid) {
String rk = AdamRedisConst.INFO_USER_MEMBER.concat(uid);
long s = System.currentTimeMillis();
AdamUserMemberVo vo = (AdamUserMemberVo) redisUtil.get(rk);
// if (null == vo) {
// s = System.currentTimeMillis();
......@@ -367,7 +355,6 @@ public class DMRdmService {
if (null != vo) {
vo.setState(vo.getState() == 1 ? (vo.getExpiryAt().isAfter(LocalDateTime.now()) ? 1 : 2) : vo.getState());
}
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo;
}
......@@ -382,7 +369,6 @@ public class DMRdmService {
}
public AdamMemberSimpleVo getMemberSimpleVo() {
long s = System.currentTimeMillis();
AdamMemberSimpleVo vo = (AdamMemberSimpleVo) redisUtil.get(AdamRedisConst.INFO_MEMBER_SIMPLE);
// if (null == vo) {
// long s = System.currentTimeMillis();
......@@ -396,7 +382,6 @@ public class DMRdmService {
//
// if (null != vo) redisUtil.set(AdamRedisConst.INFO_MEMBER_SIMPLE, vo);
// }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo;
}
......@@ -408,7 +393,6 @@ public class DMRdmService {
public AdamMemberVo getMemberVoByMemberId(String memberId) {
String key = AdamRedisConst.INFO_MEMBER_CATEGORY.concat(memberId);
long s = System.currentTimeMillis();
AdamMemberVo vo = (AdamMemberVo) redisUtil.get(key);
// if (null == vo) {
// s = System.currentTimeMillis();
......@@ -419,7 +403,6 @@ public class DMRdmService {
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (null != vo) redisUtil.set(key, vo);
// }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo;
}
......@@ -435,7 +418,6 @@ public class DMRdmService {
public List<AdamMemberPriceVo> getMemberPriceVoByMemberId(String memberId) {
String key = AdamRedisConst.INFO_MEMBER_PRICE.concat(memberId);
long s = System.currentTimeMillis();
List<AdamMemberPriceVo> vos = (List<AdamMemberPriceVo>) redisUtil.get(key);
// if (CollectionUtils.isEmpty(vos)) {
// s = System.currentTimeMillis();
......@@ -447,13 +429,23 @@ public class DMRdmService {
//
// if (!CollectionUtils.isEmpty(vos)) redisUtil.set(key, vos);
// }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vos;
}
public AdamMemberPriceVo getMemberPriceVoByPriceId(String memberId, String memberPriceId) {
List<AdamMemberPriceVo> vos = this.getMemberPriceVoByMemberId(memberId);
return CollectionUtils.isEmpty(vos) ? null : vos.stream().filter(r -> r.getMemberPriceId().equals(memberPriceId)).findAny().orElse(null);
if (!CollectionUtils.isEmpty(vos)) {
// for (AdamMemberPriceVo r : vos) {
// if (memberPriceId.equals(r.getMemberPriceId())) {
// return r;
// }
// }
Optional<AdamMemberPriceVo> any = vos.stream().filter(r -> r.getMemberPriceId().equals(memberPriceId)).findAny();
if (any.isPresent()) {
return any.get();
}
}
return null;
}
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | <MEMBER_ID, List<AdamMemberRightsVo>> */
......@@ -499,9 +491,7 @@ public class DMRdmService {
}
public ArrayList<AdamMemberOrderVo> getMemberOrderVosByUid(String uid) {
long s = System.currentTimeMillis();
ArrayList<AdamMemberOrderVo> vos = (ArrayList<AdamMemberOrderVo>) redisUtil.get(AdamRedisConst.INFO_MEMBER_ORDER + uid);
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vos;
}
......@@ -521,10 +511,6 @@ public class DMRdmService {
return redisUtil.set(AdamRedisConst.INFO_MEMBER_ORDER + uid, vos);
}
public AdamMemberOrderVo getMemberOrderVoByOrderNo(List<AdamMemberOrderVo> vos, String orderNo) {
return CollectionUtils.isEmpty(vos) ? null : vos.stream().filter(r -> r.getOrderNo().equals(orderNo)).findAny().orElse(null);
}
public void delMemberOrderVoByUid(String uid) {
redisUtil.del(AdamRedisConst.INFO_MEMBER_ORDER + uid);
}
......@@ -537,7 +523,6 @@ public class DMRdmService {
public AdamMemberOrderVo getShotMemberOrderVoByOrderNo(String orderNo) {
String key = AdamRedisConst.SHOT_MEMBER_ORDER + orderNo;
long s = System.currentTimeMillis();
AdamMemberOrderVo vo = (AdamMemberOrderVo) redisUtil.get(key);
// if (null == vo) {
// s = System.currentTimeMillis();
......@@ -549,7 +534,6 @@ public class DMRdmService {
//
// if (null != vo) redisUtil.set(key, vo);
// }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo;
}
......@@ -580,7 +564,6 @@ public class DMRdmService {
public AdamMemberCodeVo getMemberCodeVoByCode(String memberCode) {
String key = AdamRedisConst.INFO_MEMBER_CODE.concat(memberCode);
long s = System.currentTimeMillis();
AdamMemberCodeVo vo = (AdamMemberCodeVo) redisUtil.get(key);
// if (null == vo) {
// s = System.currentTimeMillis();
......@@ -591,7 +574,6 @@ public class DMRdmService {
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (null != vo && vo.getState() == 0) redisUtil.set(AdamRedisConst.INFO_MEMBER_CODE.concat(memberCode), vo);
// }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo;
}
......
package com.liquidnet.service.platform.service.impl.adam.sync;
import com.liquidnet.service.platform.service.impl.adam.dm.DMRdmService;
import org.springframework.beans.factory.annotation.Autowired;
public abstract class SyncDataProcessorService {
@Autowired
public DMRdmService dmRdmService;
protected abstract void dataProcessing(int stp);
}
package com.liquidnet.service.platform.service.impl.adam.sync.processor;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.pagehelper.PageHelper;
import com.liquidnet.service.adam.dto.vo.AdamAddressesVo;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.adam.entity.AdamAddresses;
import com.liquidnet.service.adam.mapper.AdamAddressesMapper;
import com.liquidnet.service.platform.service.impl.adam.sync.SyncDataProcessorService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Slf4j
@Service
public class SyncAddressesProcessor extends SyncDataProcessorService {
@Autowired
AdamAddressesMapper addressesMapper;
@Override
public void dataProcessing(int stp) {
LambdaQueryWrapper<AdamAddresses> lambdaQueryWrapper =
Wrappers.lambdaQuery(AdamAddresses.class).eq(AdamAddresses::getState, 1)
.orderByDesc(AdamAddresses::getMid);
Integer totalCount = addressesMapper.selectCount(lambdaQueryWrapper);
int totalRows = null == totalCount ? 0 : totalCount, nth = 0, offset = 5000, pct = 0;
log.info("Sync.processing.begin:{}/{}, {} ~ {}", totalCount, offset, nth, pct);
while (totalRows > 0) {
int rows = nth * offset;
log.info("Sync.processing.limit {},{} - {} begin", rows, offset, nth);
PageHelper.startPage(nth + 1, offset);
List<AdamAddresses> dtos = addressesMapper.selectList(lambdaQueryWrapper);
if (!CollectionUtils.isEmpty(dtos)) {
int size = dtos.size();
for (int i = 0; i < size; i++) {
AdamAddresses dto = dtos.get(i);
AdamUserInfoVo userInfoVo = dmRdmService.getUserInfoVoByUid(dto.getUid());
if (null != userInfoVo) {
AdamAddressesVo vo = AdamAddressesVo.getNew().copy(dto);
//log.info("vo:{}", JsonUtils.toJson(vo));
dmRdmService.addAddressesVoByUid(dto.getUid(), dmRdmService.getAddressesVoByUid(dto.getUid()), vo);
pct++;
}
}
}
log.info("Sync.processing.limit {},{} - {} handle.counts:{}", rows, offset, nth, pct);
nth++;
totalRows -= offset;
}
log.info("Sync.processing.end:{} / {},{} ~ {}", totalCount, nth, offset, pct);
}
}
package com.liquidnet.service.platform.service.impl.adam.sync.processor;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.pagehelper.PageHelper;
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.platform.service.impl.adam.sync.SyncDataProcessorService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Slf4j
@Service
public class SyncEntersProcessor extends SyncDataProcessorService {
@Autowired
AdamEntersMapper entersMapper;
@Override
public void dataProcessing(int stp) {
LambdaQueryWrapper<AdamEnters> lambdaQueryWrapper =
Wrappers.lambdaQuery(AdamEnters.class).eq(AdamEnters::getState, 1)
.orderByDesc(AdamEnters::getMid);
Integer totalCount = entersMapper.selectCount(lambdaQueryWrapper);
int totalRows = null == totalCount ? 0 : totalCount, nth = 0, offset = 5000, pct = 0;
log.info("Sync.processing.begin:{}/{}, {} ~ {}", totalCount, offset, nth, pct);
while (totalRows > 0) {
int rows = nth * offset;
log.info("Sync.processing.limit {},{} - {} begin", rows, offset, nth);
PageHelper.startPage(nth + 1, offset);
List<AdamEnters> dtos = entersMapper.selectList(lambdaQueryWrapper);
if (!CollectionUtils.isEmpty(dtos)) {
int size = dtos.size();
for (int i = 0; i < size; i++) {
AdamEnters dto = dtos.get(i);
AdamEntersVo vo = AdamEntersVo.getNew().copy(dto);
//log.info("vo:{}", JsonUtils.toJson(vo));
if (dto.getType() == 1) {
dmRdmService.setCertification(1, dto.getIdCard(), dto.getName());
}
dmRdmService.addEntersVoByUid(dto.getUid(), dmRdmService.getEntersVoByUid(dto.getUid()), vo);
pct++;
}
}
log.info("Sync.processing.limit {},{} - {} handle.counts:{}", rows, offset, nth, pct);
nth++;
totalRows -= offset;
}
log.info("Sync.processing.end:{} / {},{} ~ {}", totalCount, nth, offset, pct);
}
}
package com.liquidnet.service.platform.service.impl.adam.sync.processor;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.liquidnet.service.adam.dto.AdamMemberOrderDto;
import com.liquidnet.service.adam.dto.vo.AdamMemberOrderVo;
import com.liquidnet.service.adam.entity.AdamMemberOrder;
import com.liquidnet.service.adam.mapper.AdamMemberOrderMapper;
import com.liquidnet.service.platform.service.impl.adam.sync.SyncDataProcessorService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Slf4j
@Service
public class SyncMemberOrderProcessor extends SyncDataProcessorService {
@Autowired
AdamMemberOrderMapper memberOrderMapper;
@Override
public void dataProcessing(int stp) {
Integer totalCount = memberOrderMapper.selectCount(Wrappers.lambdaQuery(AdamMemberOrder.class));
int totalRows = null == totalCount ? 0 : totalCount, nth = 0, offset = 5000, pct = 0;
log.info("Sync.processing.begin:{} / {},{} ~ {}", totalCount, nth, offset, pct);
while (totalRows > 0) {
int rows = nth * offset;
log.info("Sync.processing.limit {},{} - begin", rows, offset);
List<AdamMemberOrderDto> dtos = memberOrderMapper.selectMultiForMemberOrderDto(rows, offset);
if (!CollectionUtils.isEmpty(dtos)) {
int size = dtos.size();
for (int i = 0; i < size; i++) {
AdamMemberOrderDto dto = dtos.get(i);
AdamMemberOrderVo vo = AdamMemberOrderVo.getNew().copy(dto);
//log.info("vo:{}", JsonUtils.toJson(vo));
dmRdmService.addMemberOrderVoByUid(dto.getUid(), dmRdmService.getMemberOrderVosByUid(dto.getUid()), vo);
pct++;
}
}
nth++;
totalRows -= offset;
log.info("Sync.processing.limit {},{} - handle.counts:{}", rows, offset, pct);
}
log.info("Sync.processing.end:{} / {},{} ~ {}", totalCount, nth, offset, pct);
}
}
package com.liquidnet.service.platform.service.impl.adam.sync.processor;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.pagehelper.PageHelper;
import com.liquidnet.service.adam.dto.vo.AdamMemberCodeVo;
import com.liquidnet.service.adam.dto.vo.AdamMemberPriceVo;
import com.liquidnet.service.adam.dto.vo.AdamMemberSimpleVo;
import com.liquidnet.service.adam.dto.vo.AdamMemberVo;
import com.liquidnet.service.adam.entity.AdamMember;
import com.liquidnet.service.adam.entity.AdamMemberCode;
import com.liquidnet.service.adam.entity.AdamMemberPrice;
import com.liquidnet.service.adam.mapper.AdamMemberCodeMapper;
import com.liquidnet.service.adam.mapper.AdamMemberMapper;
import com.liquidnet.service.adam.mapper.AdamMemberPriceMapper;
import com.liquidnet.service.platform.service.impl.adam.sync.SyncDataProcessorService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Slf4j
@Service
public class SyncMemberRelatedProcessor extends SyncDataProcessorService {
@Autowired
AdamMemberMapper memberMapper;
@Autowired
AdamMemberPriceMapper memberPriceMapper;
@Autowired
AdamMemberCodeMapper memberCodeMapper;
@Override
public void dataProcessing(int stp) {
switch (stp) {
case 1:
this.memberHandler();
break;
case 2:
this.memberPriceHandler();
break;
case 3:
this.memberCodeHandler();
break;
default:
log.warn("Invalid operation[stp:{}]", stp);
break;
}
}
private void memberHandler() {
List<AdamMember> dtos = memberMapper.selectList(Wrappers.lambdaQuery(AdamMember.class).eq(AdamMember::getState, 1));
int size = 0, pct = 0;
if (CollectionUtils.isNotEmpty(dtos)) {
size = dtos.size();
log.info("Sync.processing.begin:{}", size);
for (int i = 0; i < size; i++) {
AdamMember dto = dtos.get(i);
AdamMemberVo vo = AdamMemberVo.getNew().copy(dto);
//log.info("vo:{}", JsonUtils.toJson(vo));
AdamMemberSimpleVo simpleVo = AdamMemberSimpleVo.getNew().copy(vo);
//log.info("simpleVo:{}", JsonUtils.toJson(simpleVo));
dmRdmService.setMemberVoByMemberId(vo.getMemberId(), vo);
dmRdmService.setMemberSimpleVo(AdamMemberSimpleVo.getNew().copy(vo));
pct++;
}
}
log.info("Sync.processing.end:{} ~ {}", size, pct);
}
private void memberPriceHandler() {
List<AdamMemberPrice> dtos = memberPriceMapper.selectList(Wrappers.lambdaQuery(AdamMemberPrice.class).eq(AdamMemberPrice::getState, 1));
int size = 0, pct = 0;
if (CollectionUtils.isNotEmpty(dtos)) {
size = dtos.size();
log.info("Sync.processing.begin:{}", size);
for (int i = 0; i < size; i++) {
AdamMemberPrice dto = dtos.get(i);
AdamMemberPriceVo vo = AdamMemberPriceVo.getNew().copy(dto);
//log.info("vo:{}", JsonUtils.toJson(vo));
List<AdamMemberPriceVo> vos = dmRdmService.getMemberPriceVoByMemberId(dto.getMemberId());
if (null == vos) {
vos = new ArrayList<>();
}
vos.add(vo);
dmRdmService.setMemberPriceVoByMemberId(vo.getMemberId(), vos);
pct++;
}
}
log.info("Sync.processing.end:{} ~ {}", size, pct);
}
private void memberCodeHandler() {
LambdaQueryWrapper<AdamMemberCode> lambdaQueryWrapper =
Wrappers.lambdaQuery(AdamMemberCode.class).eq(AdamMemberCode::getState, 0)
.orderByDesc(AdamMemberCode::getMid);
Integer totalCount = memberCodeMapper.selectCount(lambdaQueryWrapper);
int totalRows = null == totalCount ? 0 : totalCount, nth = 0, offset = 5000, pct = 0;
log.info("Sync.processing.begin:{}/{}, {} ~ {}", totalCount, offset, nth, pct);
while (totalRows > 0) {
int rows = nth * offset;
log.info("Sync.processing.limit {},{} - {} begin", rows, offset, nth);
PageHelper.startPage(nth + 1, offset);
List<AdamMemberCode> dtos = memberCodeMapper.selectList(lambdaQueryWrapper);
if (!CollectionUtils.isEmpty(dtos)) {
int size = dtos.size();
for (int i = 0; i < size; i++) {
AdamMemberCode dto = dtos.get(i);
AdamMemberCodeVo vo = AdamMemberCodeVo.getNew().copy(dto);
//log.info("vo:{}", JsonUtils.toJson(vo));
dmRdmService.setMemberCodeVoByCode(dto.getCode(), vo);
pct++;
}
}
log.info("Sync.processing.limit {},{} - {} handle.counts:{}", rows, offset, nth, pct);
nth++;
totalRows -= offset;
}
log.info("Sync.processing.end:{} / {},{} ~ {}", totalCount, nth, offset, pct);
}
}
package com.liquidnet.service.platform.service.impl.adam.sync.processor;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.pagehelper.PageHelper;
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.platform.service.impl.adam.sync.SyncDataProcessorService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Slf4j
@Service
public class SyncRealNameProcessor extends SyncDataProcessorService {
@Autowired
AdamRealNameMapper realNameMapper;
@Override
public void dataProcessing(int stp) {
LambdaQueryWrapper<AdamRealName> lambdaQueryWrapper =
Wrappers.lambdaQuery(AdamRealName.class).eq(AdamRealName::getState, 1)
.orderByDesc(AdamRealName::getMid);
Integer totalCount = realNameMapper.selectCount(lambdaQueryWrapper);
int totalRows = null == totalCount ? 0 : totalCount, nth = 0, offset = 5000, pct = 0;
log.info("Sync.processing.begin:{}/{}, {} ~ {}", totalCount, offset, nth, pct);
while (totalRows > 0) {
int rows = nth * offset;
log.info("Sync.processing.limit {},{} - {} begin", rows, offset, nth);
PageHelper.startPage(nth + 1, offset);
List<AdamRealName> dtos = realNameMapper.selectList(lambdaQueryWrapper);
if (!CollectionUtils.isEmpty(dtos)) {
int size = dtos.size();
for (int i = 0; i < size; i++) {
AdamRealName dto = dtos.get(i);
AdamRealInfoVo vo = AdamRealInfoVo.getNew().copy(dto);
//log.info("vo:{}", JsonUtils.toJson(vo));
dmRdmService.setRealInfoVoByUid(dto.getUid(), vo);
dmRdmService.setCertification(1, dto.getIdCard(), dto.getName());
pct++;
}
}
log.info("Sync.processing.limit {},{} - {} handle.counts:{}", rows, offset, nth, pct);
nth++;
totalRows -= offset;
}
log.info("Sync.processing.end:{} / {},{} ~ {}", totalCount, nth, offset, pct);
}
}
package com.liquidnet.service.platform.service.impl.adam.sync.processor;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.pagehelper.PageHelper;
import com.liquidnet.service.adam.dto.vo.AdamThirdPartInfoVo;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.adam.entity.AdamThirdParty;
import com.liquidnet.service.adam.mapper.AdamThirdPartyMapper;
import com.liquidnet.service.platform.service.impl.adam.sync.SyncDataProcessorService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Slf4j
@Service
public class SyncThirdPartyProcessor extends SyncDataProcessorService {
@Autowired
AdamThirdPartyMapper thirdPartyMapper;
@Override
public void dataProcessing(int stp) {
LambdaQueryWrapper<AdamThirdParty> lambdaQueryWrapper =
Wrappers.lambdaQuery(AdamThirdParty.class).eq(AdamThirdParty::getState, 1)
.orderByDesc(AdamThirdParty::getMid);
Integer totalCount = thirdPartyMapper.selectCount(lambdaQueryWrapper);
int totalRows = null == totalCount ? 0 : totalCount, nth = 0, offset = 5000, pct = 0;
log.info("Sync.processing.begin:{}/{}, {} ~ {}", totalCount, offset, nth, pct);
while (totalRows > 0) {
int rows = nth * offset;
log.info("Sync.processing.limit {},{} - {} begin", rows, offset, nth);
PageHelper.startPage(nth + 1, offset);
List<AdamThirdParty> dtos = thirdPartyMapper.selectList(lambdaQueryWrapper);
if (!CollectionUtils.isEmpty(dtos)) {
int size = dtos.size();
for (int i = 0; i < size; i++) {
AdamThirdParty dto = dtos.get(i);
AdamUserInfoVo userInfoVo = dmRdmService.getUserInfoVoByUid(dto.getUid());
if (null != userInfoVo) {
AdamThirdPartInfoVo vo = AdamThirdPartInfoVo.getNew().copy(dto);
//log.info("vo:{}", JsonUtils.toJson(vo));
dmRdmService.setUidByPlatformOpenId(dto.getPlatform(), dto.getOpenId(), dto.getUid());
dmRdmService.addThirdPartVoListByUid(dto.getUid(), dmRdmService.getThirdPartVoListByUid(dto.getUid()), vo);
pct++;
}
}
}
log.info("Sync.processing.limit {},{} - {} handle.counts:{}", rows, offset, nth, pct);
nth++;
totalRows -= offset;
}
log.info("Sync.processing.end:{} / {},{} ~ {}", totalCount, nth, offset, pct);
}
}
package com.liquidnet.service.platform.service.impl.adam.sync.processor;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.liquidnet.service.adam.dto.AdamUserInfoDto;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.adam.entity.AdamUser;
import com.liquidnet.service.adam.mapper.AdamUserMapper;
import com.liquidnet.service.platform.service.impl.adam.sync.SyncDataProcessorService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Slf4j
@Service
public class SyncUserInformationProcessor extends SyncDataProcessorService {
@Autowired
AdamUserMapper userMapper;
@Override
public void dataProcessing(int stp) {
Integer totalCount = userMapper.selectCount(Wrappers.lambdaQuery(AdamUser.class).eq(AdamUser::getState, 1));
int totalRows = null == totalCount ? 0 : totalCount, nth = 0, offset = 5000, pct = 0;
log.info("Sync.processing.begin:{} / {},{} ~ {}", totalCount, nth, offset, pct);
while (totalRows > 0) {
int rows = nth * offset;
log.info("Sync.processing.limit {},{} - begin", rows, offset);
List<AdamUserInfoDto> dtos = userMapper.selectMultiForUserInfoDto(rows, offset);
if (!CollectionUtils.isEmpty(dtos)) {
int size = dtos.size();
for (int i = 0; i < size; i++) {
AdamUserInfoDto dto = dtos.get(i);
AdamUserInfoVo vo = AdamUserInfoVo.getNew().copy(dto);
//log.info("vo:{}", JsonUtils.toJson(vo));
dmRdmService.setUidByMobile(dto.getMobile(), dto.getUid());
dmRdmService.setUserInfoVoByUid(dto.getUid(), vo);
pct++;
}
}
nth++;
totalRows -= offset;
log.info("Sync.processing.limit {},{} - handle.counts:{}", rows, offset, pct);
}
log.info("Sync.processing.end:{} / {},{} ~ {}", totalCount, nth, offset, pct);
}
}
package com.liquidnet.service.platform.service.impl.adam.sync.processor;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.pagehelper.PageHelper;
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.platform.service.impl.adam.sync.SyncDataProcessorService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Slf4j
@Service
public class SyncUserMemberProcessor extends SyncDataProcessorService {
@Autowired
AdamUserMemberMapper userMemberMapper;
@Override
public void dataProcessing(int stp) {
LambdaQueryWrapper<AdamUserMember> lambdaQueryWrapper =
Wrappers.lambdaQuery(AdamUserMember.class).orderByDesc(AdamUserMember::getMid);
Integer totalCount = userMemberMapper.selectCount(lambdaQueryWrapper);
int totalRows = null == totalCount ? 0 : totalCount, nth = 0, offset = 5000, pct = 0;
log.info("Sync.processing.begin:{}/{}, {} ~ {}", totalCount, offset, nth, pct);
while (totalRows > 0) {
int rows = nth * offset;
log.info("Sync.processing.limit {},{} - {} begin", rows, offset, nth);
PageHelper.startPage(nth + 1, offset);
List<AdamUserMember> dtos = userMemberMapper.selectList(lambdaQueryWrapper);
if (!CollectionUtils.isEmpty(dtos)) {
int size = dtos.size();
for (int i = 0; i < size; i++) {
AdamUserMember dto = dtos.get(i);
AdamUserMemberVo vo = AdamUserMemberVo.getNew().copy(dto);
//log.info("vo:{}", JsonUtils.toJson(vo));
dmRdmService.setUserMemberVoByUid(dto.getUid(), vo);
pct++;
}
}
log.info("Sync.processing.limit {},{} - {} handle.counts:{}", rows, offset, nth, pct);
nth++;
totalRows -= offset;
}
log.info("Sync.processing.end:{} / {},{} ~ {}", totalCount, nth, offset, pct);
}
}
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