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

Commit 9229d978 authored by 胡佳晨's avatar 胡佳晨

Merge branch 'pre' into dev_member_voucher_refund

parents ae352386 f2d40c14
...@@ -2,8 +2,8 @@ package com.liquidnet.service.adam.dto.vo; ...@@ -2,8 +2,8 @@ package com.liquidnet.service.adam.dto.vo;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.liquidnet.commons.lang.util.DateUtil; 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.AdamMemberOrder;
import com.liquidnet.service.adam.entity.AdamMemberOrderExt;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
...@@ -80,6 +80,44 @@ public class AdamMemberOrderVo implements Serializable, Cloneable { ...@@ -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) { public AdamMemberOrderVo copy(AdamMemberOrder source) {
if (null == source) return this; if (null == source) return this;
this.setOrderNo(source.getOrderNo()); this.setOrderNo(source.getOrderNo());
......
package com.liquidnet.service.adam.dto.vo; package com.liquidnet.service.adam.dto.vo;
import com.liquidnet.service.adam.entity.AdamRealName;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
...@@ -27,8 +28,17 @@ public class AdamRealInfoVo implements Serializable, Cloneable { ...@@ -27,8 +28,17 @@ public class AdamRealInfoVo implements Serializable, Cloneable {
try { try {
return (AdamRealInfoVo) obj.clone(); return (AdamRealInfoVo) obj.clone();
} catch (CloneNotSupportedException e) { } 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; ...@@ -3,6 +3,7 @@ package com.liquidnet.service.adam.dto.vo;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.liquidnet.commons.lang.util.DateUtil; import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.adam.entity.AdamUserMember;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
...@@ -42,6 +43,18 @@ public class AdamUserMemberVo implements Serializable, Cloneable { ...@@ -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; package com.liquidnet.common.cache.redis.util;
/** import com.liquidnet.common.cache.redis.config.RedisConfig;
* @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 org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -20,29 +11,40 @@ import java.util.Map; ...@@ -20,29 +11,40 @@ import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.concurrent.TimeUnit; 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") @Component("redisUtil")
public final class RedisUtil { public final class RedisUtil {
@Autowired @Autowired
private RedisTemplate<String, Object> redisTemplate; private RedisConfig redisConfig;
// =============================common============================ // =============================common============================
/** /**
* 指定缓存失效时间 * 指定缓存失效时间
*
* @param key 键 * @param key 键
* @param time 时间(秒) * @param time 时间(秒)
* @return * @return
*/ */
public boolean expire(String key, long time) { 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);
} }
...@@ -52,29 +54,35 @@ public final class RedisUtil { ...@@ -52,29 +54,35 @@ public final class RedisUtil {
/** /**
* 根据key 获取过期时间 * 根据key 获取过期时间
*
* @param key 键 不能为null * @param key 键 不能为null
* @return 时间(秒) 返回0代表为永久有效 * @return 时间(秒) 返回0代表为永久有效
*/ */
public long getExpire(String key) { public long getExpire(String key) {
return redisTemplate.getExpire(key, TimeUnit.SECONDS); return redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).getExpire(key, TimeUnit.SECONDS);
} }
/** /**
* 判断key是否存在 * 判断key是否存在
*
* @param key 键 * @param key 键
* @return true 存在 false不存在 * @return true 存在 false不存在
*/ */
public boolean hasKey(String key) { 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 { ...@@ -85,19 +93,23 @@ public final class RedisUtil {
*/ */
public void delKeysByPrefix(String prefix) { public void delKeysByPrefix(String prefix) {
if (null != prefix && prefix.trim().length() > 0) { 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)) { if (!CollectionUtils.isEmpty(keys)) {
redisTemplate.delete(keys); redisConfig.getRedisTemplateByDb(key).delete(keys);
}
} }
} }
} }
/** /**
* 删除缓存
* * 删除缓存(多db情况需要单独实现批量删除-该方法慎重使用)
* @param key 可以传一个值 或多个 * @param key 可以传一个值 或多个
*/ */
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
...@@ -108,12 +120,14 @@ public final class RedisUtil { ...@@ -108,12 +120,14 @@ public final class RedisUtil {
if (key.length == 1) { if (key.length == 1) {
redisTemplate.delete(key[0]); redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key[0])).delete(key[0]);
} else { } else {
redisTemplate.delete(CollectionUtils.arrayToList(key)); // redisTemplate.delete(CollectionUtils.arrayToList(key));
for(String keyStr:key){
redisConfig.getRedisTemplateByDb(MathUtil.getIndex(keyStr)).delete(keyStr);
}
} }
} }
...@@ -123,61 +137,76 @@ public final class RedisUtil { ...@@ -123,61 +137,76 @@ public final class RedisUtil {
public void delList(List<String> key) { public void delList(List<String> key) {
if (key != null && key.size() > 0) { if (key != null && key.size() > 0) {
redisTemplate.delete(key); for(String keyStr:key){
redisConfig.getRedisTemplateByDb(MathUtil.getIndex(keyStr)).delete(keyStr);
} }
// redisTemplate.delete(key);
} }
}
// ============================String============================= // ============================String=============================
/** /**
* 普通缓存获取 * 普通缓存获取
*
* @param key 键 * @param key 键
* @return 值 * @return 值
*/ */
public Object get(String key) { 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 值 * @param value 值
* @return true成功 false失败 * @return true成功 false失败
*/ */
public boolean set(String key, Object value) { 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 value 值
* @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期 * @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期
* @return true成功 false 失败 * @return true成功 false 失败
*/ */
public boolean set(String key, Object value, long time) { public boolean set(String key, Object value, long time) {
if (time > 0) { if (time > 0) {
RedisTemplate<String, Object> redisTemplate = redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key));
redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS); redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS);
} else { } else {
...@@ -193,11 +222,15 @@ public final class RedisUtil { ...@@ -193,11 +222,15 @@ public final class RedisUtil {
/** /**
* 递增 * 递增
*
* @param key 键 * @param key 键
* @param delta 要增加几(大于0) * @param delta 要增加几(大于0)
* @return * @return
*/ */
public long incr(String key, long delta) { public long incr(String key, long delta) {
...@@ -208,17 +241,21 @@ public final class RedisUtil { ...@@ -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) * @param delta 要减少几(小于0)
* @return * @return
*/ */
public long decr(String key, long delta) { public long decr(String key, long delta) {
...@@ -229,7 +266,7 @@ public final class RedisUtil { ...@@ -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,48 +274,59 @@ public final class RedisUtil { ...@@ -237,48 +274,59 @@ public final class RedisUtil {
// ================================Map================================= // ================================Map=================================
/** /**
* HashGet * HashGet
*
* @param key 键 不能为null * @param key 键 不能为null
* @param item 项 不能为null * @param item 项 不能为null
* @return 值 * @return 值
*/ */
public Object hget(String key, String item) { 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) { public Object hkeys(String key) {
return redisTemplate.opsForHash().keys(key); return redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForHash().keys(key);
} }
/** /**
* 获取hashKey对应的所有键值 * 获取hashKey对应的所有键值
*
* @param key 键 * @param key 键
* @return 对应的多个键值 * @return 对应的多个键值
*/ */
public Map<Object, Object> hmget(String key) { public Map<Object, Object> hmget(String key) {
return redisTemplate.opsForHash().entries(key); return redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForHash().entries(key);
} }
/** /**
* HashSet * HashSet
*
* @param key 键 * @param key 键
* @param map 对应多个键值 * @param map 对应多个键值
* @return true 成功 false 失败 * @return true 成功 false 失败
*/ */
public boolean hmset(String key, Map<String, Object> map) { 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;
...@@ -287,18 +335,23 @@ public final class RedisUtil { ...@@ -287,18 +335,23 @@ public final class RedisUtil {
/** /**
* HashSet 并设置时间 * HashSet 并设置时间
*
* @param key 键 * @param key 键
* @param map 对应多个键值 * @param map 对应多个键值
* @param time 时间(秒) * @param time 时间(秒)
* @return true成功 false失败 * @return true成功 false失败
*/ */
public boolean hmset(String key, Map<String, Object> map, long time) { 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) {
...@@ -313,18 +366,23 @@ public final class RedisUtil { ...@@ -313,18 +366,23 @@ public final class RedisUtil {
/** /**
* 向一张hash表中放入数据,如果不存在将创建 * 向一张hash表中放入数据,如果不存在将创建
*
* @param key 键 * @param key 键
* @param item 项 * @param item 项
* @param value 值 * @param value 值
* @return true 成功 false失败 * @return true 成功 false失败
*/ */
public boolean hset(String key, String item, Object value) { 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;
...@@ -333,19 +391,25 @@ public final class RedisUtil { ...@@ -333,19 +391,25 @@ public final class RedisUtil {
/** /**
* 向一张hash表中放入数据,如果不存在将创建 * 向一张hash表中放入数据,如果不存在将创建
*
* @param key 键 * @param key 键
* @param item 项 * @param item 项
* @param value 值 * @param value 值
* @param time 时间(秒) 注意:如果已存在的hash表有时间,这里将会替换原有的时间 * @param time 时间(秒) 注意:如果已存在的hash表有时间,这里将会替换原有的时间
* @return true 成功 false失败 * @return true 成功 false失败
*/ */
public boolean hset(String key, String item, Object value, long time) { 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) {
...@@ -360,62 +424,79 @@ public final class RedisUtil { ...@@ -360,62 +424,79 @@ public final class RedisUtil {
/** /**
* 删除hash表中的值 * 删除hash表中的值
*
* @param key 键 不能为null * @param key 键 不能为null
* @param item 项 可以使多个 不能为null * @param item 项 可以使多个 不能为null
*/ */
public void hdel(String key, Object... item) { public void hdel(String key, Object... item) {
redisTemplate.opsForHash().delete(key, item); redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForHash().delete(key, item);
} }
/** /**
* 判断hash表中是否有该项的值 * 判断hash表中是否有该项的值
*
* @param key 键 不能为null * @param key 键 不能为null
* @param item 项 不能为null * @param item 项 不能为null
* @return true 存在 false不存在 * @return true 存在 false不存在
*/ */
public boolean hHasKey(String key, String item) { public boolean hHasKey(String key, String item) {
return redisTemplate.opsForHash().hasKey(key, item); return redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForHash().hasKey(key, item);
} }
/** /**
* hash递增 如果不存在,就会创建一个 并把新增后的值返回 * hash递增 如果不存在,就会创建一个 并把新增后的值返回
*
* @param key 键 * @param key 键
* @param item 项 * @param item 项
* @param by 要增加几(大于0) * @param by 要增加几(大于0)
* @return * @return
*/ */
public double hincr(String key, String item, double by) { 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递减 * hash递减
*
* @param key 键 * @param key 键
* @param item 项 * @param item 项
* @param by 要减少记(小于0) * @param by 要减少记(小于0)
* @return * @return
*/ */
public double hdecr(String key, String item, double by) { 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,68 +504,84 @@ public final class RedisUtil { ...@@ -423,68 +504,84 @@ public final class RedisUtil {
// ============================set============================= // ============================set=============================
/** /**
* 根据key获取Set中的所有值 * 根据key获取Set中的所有值
*
* @param key 键 * @param key 键
* @return * @return
*/ */
public Set<Object> sGet(String key) { public Set<Object> sGet(String key) {
return redisTemplate.opsForSet().members(key); return redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForSet().members(key);
} }
/** /**
* 根据value从一个set中查询,是否存在 * 根据value从一个set中查询,是否存在
*
* @param key 键 * @param key 键
* @param value 值 * @param value 值
* @return true 存在 false不存在 * @return true 存在 false不存在
*/ */
public boolean sHasKey(String key, Object value) { public boolean sHasKey(String key, Object value) {
return redisTemplate.opsForSet().isMember(key, value); return redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForSet().isMember(key, value);
} }
/** /**
* 将数据放入set缓存 * 将数据放入set缓存
*
* @param key 键 * @param key 键
* @param values 值 可以是多个 * @param values 值 可以是多个
* @return 成功个数 * @return 成功个数
*/ */
public long sSet(String key, Object... values) { public long sSet(String key, Object... values) {
return redisTemplate.opsForSet().add(key, values); return redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForSet().add(key, values);
} }
/** /**
* 将set数据放入缓存 * 将set数据放入缓存
*
* @param key 键 * @param key 键
* @param time 时间(秒) * @param time 时间(秒)
* @param values 值 可以是多个 * @param values 值 可以是多个
* @return 成功个数 * @return 成功个数
*/ */
public long sSetAndTime(String key, long time, Object... values) { 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)
...@@ -497,33 +594,40 @@ public final class RedisUtil { ...@@ -497,33 +594,40 @@ public final class RedisUtil {
/** /**
* 获取set缓存的长度 * 获取set缓存的长度
*
* @param key 键 * @param key 键
* @return * @return
*/ */
public long sGetSetSize(String key) { public long sGetSetSize(String key) {
return redisTemplate.opsForSet().size(key); return redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForSet().size(key);
} }
/** /**
* 移除值为value的 * 移除值为value的
*
* @param key 键 * @param key 键
* @param values 值 可以是多个 * @param values 值 可以是多个
* @return 移除的个数 * @return 移除的个数
*/ */
public long setRemove(String key, Object... values) { 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 { ...@@ -534,51 +638,63 @@ public final class RedisUtil {
/** /**
* 获取list缓存的内容 * 获取list缓存的内容
*
* @param key 键 * @param key 键
* @param start 开始 * @param start 开始
* @param end 结束 0 到 -1代表所有值 * @param end 结束 0 到 -1代表所有值
* @return * @return
*/ */
public List<Object> lGet(String key, long start, long end) { 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缓存的长度 * 获取list缓存的长度
*
* @param key 键 * @param key 键
* @return * @return
*/ */
public long lGetListSize(String key) { public long lGetListSize(String key) {
return redisTemplate.opsForList().size(key); return redisConfig.getRedisTemplateByDb(MathUtil.getIndex(key)).opsForList().size(key);
} }
/** /**
* 通过索引 获取list中的值 * 通过索引 获取list中的值
*
* @param key 键 * @param key 键
* @param index 索引 index>=0时, 0 表头,1 第二个元素,依次类推;index<0时,-1,表尾,-2倒数第二个元素,依次类推 * @param index 索引 index>=0时, 0 表头,1 第二个元素,依次类推;index<0时,-1,表尾,-2倒数第二个元素,依次类推
* @return * @return
*/ */
public Object lGetIndex(String key, long index) { 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 { ...@@ -586,7 +702,6 @@ public final class RedisUtil {
/** /**
* 将list放入缓存 * 将list放入缓存
*
* @param key * @param key
* @param value * @param value
* @return * @return
...@@ -594,7 +709,7 @@ public final class RedisUtil { ...@@ -594,7 +709,7 @@ public final class RedisUtil {
public boolean lSet(String key, Object value) { 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;
...@@ -603,18 +718,23 @@ public final class RedisUtil { ...@@ -603,18 +718,23 @@ public final class RedisUtil {
/** /**
* 将list放入缓存 * 将list放入缓存
*
* @param key 键 * @param key 键
* @param value 值 * @param value 值
* @param time 时间(秒) * @param time 时间(秒)
* @return * @return
*/ */
public boolean lSet(String key, Object value, long time) { 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)
...@@ -628,7 +748,6 @@ public final class RedisUtil { ...@@ -628,7 +748,6 @@ public final class RedisUtil {
/** /**
* 将list放入缓存 * 将list放入缓存
*
* @param key * @param key
* @param value * @param value
* @return * @return
...@@ -636,7 +755,7 @@ public final class RedisUtil { ...@@ -636,7 +755,7 @@ public final class RedisUtil {
public boolean lSet(String key, List<Object> value) { 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;
...@@ -645,18 +764,25 @@ public final class RedisUtil { ...@@ -645,18 +764,25 @@ public final class RedisUtil {
/** /**
* 将list放入缓存 * 将list放入缓存
* *
* @param key 键 * @param key 键
* @param value 值 * @param value 值
* @param time 时间(秒) * @param time 时间(秒)
* @return * @return
*/ */
public boolean lSet(String key, List<Object> value, long time) { 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)
...@@ -669,18 +795,23 @@ public final class RedisUtil { ...@@ -669,18 +795,23 @@ public final class RedisUtil {
/** /**
* 根据索引修改list中的某条数据 * 根据索引修改list中的某条数据
*
* @param key 键 * @param key 键
* @param index 索引 * @param index 索引
* @param value 值 * @param value 值
* @return * @return
*/ */
public boolean lUpdateIndex(String key, long index, Object value) { 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;
...@@ -689,22 +820,31 @@ public final class RedisUtil { ...@@ -689,22 +820,31 @@ public final class RedisUtil {
/** /**
* 移除N个值为value * 移除N个值为value
*
* @param key 键 * @param key 键
* @param count 移除多少个 * @param count 移除多少个
* @param value 值 * @param value 值
* @return 移除的个数 * @return 移除的个数
*/ */
public long lRemove(String key, long count, Object value) { 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: ...@@ -31,6 +31,7 @@ liquidnet:
knife4j: knife4j:
disable: false disable: false
redis: redis:
dbs: 0,16
host: 39.106.122.201 host: 39.106.122.201
port: 6379 port: 6379
password: 3Xa%8p password: 3Xa%8p
......
...@@ -31,6 +31,7 @@ liquidnet: ...@@ -31,6 +31,7 @@ liquidnet:
knife4j: knife4j:
disable: false disable: false
redis: redis:
dbs: 0,256
host: r-2ze7002ckw5u75fgukpd.redis.rds.aliyuncs.com host: r-2ze7002ckw5u75fgukpd.redis.rds.aliyuncs.com
port: 6380 port: 6380
password: PO@B!Iud32 password: PO@B!Iud32
......
...@@ -21,5 +21,8 @@ liquidnet: ...@@ -21,5 +21,8 @@ liquidnet:
mongodb: mongodb:
sslEnabled: false sslEnabled: false
database: dev_ln_scene database: dev_ln_scene
dragon:
redis:
database: 15
#以下为spring各环境个性配置 #以下为spring各环境个性配置
\ No newline at end of file
...@@ -21,5 +21,7 @@ liquidnet: ...@@ -21,5 +21,7 @@ liquidnet:
mongodb: mongodb:
sslEnabled: false sslEnabled: false
database: test_ln_scene database: test_ln_scene
dragon:
redis:
database: 255
#以下为spring各环境个性配置 #以下为spring各环境个性配置
...@@ -57,7 +57,7 @@ spring: ...@@ -57,7 +57,7 @@ spring:
profiles: profiles:
include: common-service #这里加载management相关公共配置 include: common-service #这里加载management相关公共配置
redis: redis:
database: 0 database: ${liquidnet.dragon.redis.database}
port: ${liquidnet.redis.dragon.port} port: ${liquidnet.redis.dragon.port}
host: ${liquidnet.redis.dragon.host} host: ${liquidnet.redis.dragon.host}
password: ${liquidnet.redis.dragon.password} password: ${liquidnet.redis.dragon.password}
......
...@@ -75,6 +75,9 @@ spring: ...@@ -75,6 +75,9 @@ spring:
- org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration - org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
redis: redis:
database: 0 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} port: ${liquidnet.redis.dragon.port}
host: ${liquidnet.redis.dragon.host} host: ${liquidnet.redis.dragon.host}
password: ${liquidnet.redis.dragon.password} password: ${liquidnet.redis.dragon.password}
......
...@@ -82,6 +82,9 @@ spring: ...@@ -82,6 +82,9 @@ spring:
connection-timeout: ${liquidnet.rabbitmq.connection-timeout} connection-timeout: ${liquidnet.rabbitmq.connection-timeout}
redis: redis:
database: 0 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} port: ${liquidnet.redis.dragon.port}
host: ${liquidnet.redis.dragon.host} host: ${liquidnet.redis.dragon.host}
password: ${liquidnet.redis.dragon.password} 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; package com.liquidnet.service.adam.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; 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.dto.MemberOrderDto;
import com.liquidnet.service.adam.entity.AdamMemberOrder; 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.List;
import java.util.Map; import java.util.Map;
public interface AdamMemberOrderMapper extends BaseMapper<AdamMemberOrder> { public interface AdamMemberOrderMapper extends BaseMapper<AdamMemberOrder> {
List<MemberOrderDto> getMemberOrderList(Map<String, Object> map); 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 { ...@@ -291,6 +291,7 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
initMemberCodeVo.getBuyOrderNo(), initMemberCodeVo.getBuyUid(), initMemberCodeVo.getBuyAt() initMemberCodeVo.getBuyOrderNo(), initMemberCodeVo.getBuyUid(), initMemberCodeVo.getBuyAt()
}); });
} }
handleMemberOrderVo.setPricePaid(parameter.getPrice());
handleMemberOrderVo.setPaymentAt(DateUtil.Formatter.yyyyMMddHHmmss.parse(parameter.getPaymentAt())); handleMemberOrderVo.setPaymentAt(DateUtil.Formatter.yyyyMMddHHmmss.parse(parameter.getPaymentAt()));
handleMemberOrderVo.setUpdatedAt(now); handleMemberOrderVo.setUpdatedAt(now);
handleMemberOrderVo.setState(1);// 1-已支付 handleMemberOrderVo.setState(1);// 1-已支付
...@@ -308,7 +309,8 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService { ...@@ -308,7 +309,8 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
handleMemberOrderVo.getPricePaid(), handleMemberOrderVo.getMemberName(), handleMemberOrderVo.getMemberId(), handleMemberOrderVo.getMemberPriceId(), handleMemberOrderVo.getPricePaid(), handleMemberOrderVo.getMemberName(), handleMemberOrderVo.getMemberId(), handleMemberOrderVo.getMemberPriceId(),
handleMemberOrderVo.getDays(), handleMemberOrderVo.getState(), handleMemberOrderVo.getMemberNo(), handleMemberOrderVo.getBirthday(), handleMemberOrderVo.getDays(), handleMemberOrderVo.getState(), handleMemberOrderVo.getMemberNo(), handleMemberOrderVo.getBirthday(),
handleMemberOrderVo.getDeviceFrom(), handleMemberOrderVo.getPayType(), handleMemberOrderVo.getPayNo(), handleMemberOrderVo.getPaymentAt(), handleMemberOrderVo.getDeviceFrom(), handleMemberOrderVo.getPayType(), handleMemberOrderVo.getPayNo(), handleMemberOrderVo.getPaymentAt(),
handleMemberOrderVo.getCreatedAt(), handleMemberOrderVo.getUpdatedAt(), handleMemberOrderVo.getCreatedAt(),
handleMemberOrderVo.getUpdatedAt(),
handleMemberOrderVo.getClientIp(), handleMemberOrderVo.getSource(), handleMemberOrderVo.getVersion() handleMemberOrderVo.getClientIp(), handleMemberOrderVo.getSource(), handleMemberOrderVo.getVersion()
}); });
...@@ -461,7 +463,9 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService { ...@@ -461,7 +463,9 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
initMemberOrderVo.getPricePaid(), initMemberOrderVo.getMemberName(), initMemberOrderVo.getMemberId(), initMemberOrderVo.getMemberPriceId(), initMemberOrderVo.getPricePaid(), initMemberOrderVo.getMemberName(), initMemberOrderVo.getMemberId(), initMemberOrderVo.getMemberPriceId(),
initMemberOrderVo.getDays(), initMemberOrderVo.getState(), initMemberOrderVo.getMemberNo(), initMemberOrderVo.getBirthday(), initMemberOrderVo.getDays(), initMemberOrderVo.getState(), initMemberOrderVo.getMemberNo(), initMemberOrderVo.getBirthday(),
initMemberOrderVo.getDeviceFrom(), initMemberOrderVo.getPayType(), initMemberOrderVo.getPayNo(), initMemberOrderVo.getPaymentAt(), 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(); s = System.currentTimeMillis();
......
...@@ -68,7 +68,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService ...@@ -68,7 +68,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
new Object[]{code, refundCode, orderRefundCode, price, reason, notifyUrl, paymentType, nowTime, nowTime}, new Object[]{code, refundCode, orderRefundCode, price, reason, notifyUrl, paymentType, nowTime, nowTime},
DragonConstant.MysqlRedisQueueEnum.DRAGON_REFUND_KEY.getCode() DragonConstant.MysqlRedisQueueEnum.DRAGON_REFUND_KEY.getCode()
); );
dataUtils.setRefundNotifyUrl(DragonConstant.REFUND_REDIS_KET + orderRefundCode, notifyUrl); dataUtils.setRefundNotifyUrl(orderRefundCode, notifyUrl);
DragonRefundChannelDto dto = null; DragonRefundChannelDto dto = null;
String localWePayCallBackUrl = url + "/refund/callBack/wepay"; String localWePayCallBackUrl = url + "/refund/callBack/wepay";
if (insertResult) { if (insertResult) {
...@@ -536,7 +536,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService ...@@ -536,7 +536,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
params.add("refundError", notifyUrlDto.getRefundError()); params.add("refundError", notifyUrlDto.getRefundError());
params.add("refundPrice", notifyUrlDto.getRefundPrice()); params.add("refundPrice", notifyUrlDto.getRefundPrice());
params.add("status", notifyUrlDto.getStatus().toString()); 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); log.info("RETURN RESPONSE=" + response);
if (response.equals("success")) { if (response.equals("success")) {
mqHandleUtil.sendMySqlRedis( 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(){
}
}
...@@ -68,7 +68,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService ...@@ -68,7 +68,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
new Object[]{code, refundCode, orderRefundCode, price, reason, notifyUrl, paymentType, nowTime, nowTime}, new Object[]{code, refundCode, orderRefundCode, price, reason, notifyUrl, paymentType, nowTime, nowTime},
DragonConstant.MysqlRedisQueueEnum.DRAGON_REFUND_KEY.getCode() DragonConstant.MysqlRedisQueueEnum.DRAGON_REFUND_KEY.getCode()
); );
dataUtils.setRefundNotifyUrl(DragonConstant.REFUND_REDIS_KET + orderRefundCode, notifyUrl); dataUtils.setRefundNotifyUrl(orderRefundCode, notifyUrl);
DragonRefundChannelDto dto = null; DragonRefundChannelDto dto = null;
String localWePayCallBackUrl = url + "/refund/callBack/wepay"; String localWePayCallBackUrl = url + "/refund/callBack/wepay";
if (insertResult) { if (insertResult) {
...@@ -94,32 +94,37 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService ...@@ -94,32 +94,37 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
case DragonConstant.REFUND_TYPE_JS_WEPAY: case DragonConstant.REFUND_TYPE_JS_WEPAY:
dto = weyPayRefund(code, orderRefundCode, code, reason, price, priceTotal, paymentId, paymentType, localWePayCallBackUrl, nowTime); dto = weyPayRefund(code, orderRefundCode, code, reason, price, priceTotal, paymentId, paymentType, localWePayCallBackUrl, nowTime);
break; 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("dto = " + JSON.toJSONString(dto));
log.info("");
if (dto == null) {
return ResponseDto.failure("退款失败:参数异常");
} else if (dto.getResult().equalsIgnoreCase("refunding")) {
} else if (dto.getResult().equalsIgnoreCase("refunded")) { } else if (dto.getResult().equalsIgnoreCase("refunded")) {
//调用回调 //调用回调
log.info("");
} else if (dto.getResult().equalsIgnoreCase("error")) { } else if (dto.getResult().equalsIgnoreCase("error")) {
//调用回调 //调用回调
log.error("");
return ResponseDto.failure("退款失败:" + dto.getMessage()); return ResponseDto.failure("退款失败:" + dto.getMessage());
} else if (dto.getResult().equalsIgnoreCase("exception")) { } else if (dto.getResult().equalsIgnoreCase("exception")) {
log.error("");
} }
DragonRefundAppDto refundAppDto = new DragonRefundAppDto(); DragonRefundAppDto refundAppDto = new DragonRefundAppDto();
refundAppDto.setOrderCode(orderCode); refundAppDto.setOrderCode(orderCode);
refundAppDto.setCode(code); refundAppDto.setCode(code);
refundAppDto.setOrderRefundCode(orderRefundCode); refundAppDto.setOrderRefundCode(orderRefundCode);
refundAppDto.setRefundCode(refundCode); refundAppDto.setRefundCode(refundCode);
log.info("refundAppDto = " + JSON.toJSONString(refundAppDto));
return ResponseDto.success(refundAppDto); return ResponseDto.success(refundAppDto);
} else { } else {
return ResponseDto.failure("退款失败"); return ResponseDto.failure("退款失败");
} }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
log.error(""); log.info("orderCode = " + orderCode + "", e);
return ResponseDto.failure("退款失败:" + e.getMessage()); return ResponseDto.failure("退款失败:" + e.getMessage());
} }
} }
...@@ -155,7 +160,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService ...@@ -155,7 +160,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
String sign = PayWepayUtils.getInstance().createSign(parameters); String sign = PayWepayUtils.getInstance().createSign(parameters);
parameters.put("sign", sign); parameters.put("sign", sign);
String data = PayWepayUtils.getInstance().getRequestXml(parameters); String data = PayWepayUtils.getInstance().getRequestXml(parameters);
log.debug("XMLSTRING = " + data); String refundError = "";
try { try {
HttpPost httpost = new HttpPost("https://api.mch.weixin.qq.com/secapi/pay/refund"); HttpPost httpost = new HttpPost("https://api.mch.weixin.qq.com/secapi/pay/refund");
httpost.setEntity(new StringEntity(data, "UTF-8")); httpost.setEntity(new StringEntity(data, "UTF-8"));
...@@ -164,20 +169,18 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService ...@@ -164,20 +169,18 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
HttpEntity entity = response.getEntity(); HttpEntity entity = response.getEntity();
entity.getContent(); entity.getContent();
String jsonStr = EntityUtils.toString(entity, "UTF-8"); String jsonStr = EntityUtils.toString(entity, "UTF-8");
log.debug("JSONSTR = " + jsonStr); log.info("JSONSTR = " + jsonStr);
WePayRefundReturnDto wePayRefundReturnDto = XmlUtil.toBean(jsonStr, WePayRefundReturnDto.class); WePayRefundReturnDto wePayRefundReturnDto = XmlUtil.toBean(jsonStr, WePayRefundReturnDto.class);
if (wePayRefundReturnDto.getErrCodeDes() != null) { if (wePayRefundReturnDto.getErrCodeDes() != null) {
channelDto.setResult("error"); channelDto.setResult("error");
channelDto.setMessage(paymentType + " refund error: " + wePayRefundReturnDto.getErrCodeDes()); channelDto.setMessage(wePayRefundReturnDto.getErrCodeDes());
contentDto.setRequest(data); contentDto.setRequest(data);
contentDto.setResponse(jsonStr); contentDto.setResponse(jsonStr);
channelDto.setContent(contentDto); channelDto.setContent(contentDto);
return channelDto; return channelDto;
} }
log.debug("BEAN = " + wePayRefundReturnDto);
if (!wePayRefundReturnDto.getReturnCode().equalsIgnoreCase("SUCCESS") || wePayRefundReturnDto.getReturnCode() == null) { if (!wePayRefundReturnDto.getReturnCode().equalsIgnoreCase("SUCCESS") || wePayRefundReturnDto.getReturnCode() == null) {
try { try {
String refundError = "";
refundStatus = DragonConstant.RefundStatusEnum.STATUS_ERROR.getCode(); refundStatus = DragonConstant.RefundStatusEnum.STATUS_ERROR.getCode();
if (null == wePayRefundReturnDto.getReturnMsg()) { if (null == wePayRefundReturnDto.getReturnMsg()) {
refundError = "退款失败,原因未知"; refundError = "退款失败,原因未知";
...@@ -202,7 +205,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService ...@@ -202,7 +205,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
return channelDto; return channelDto;
} }
channelDto.setResult("error"); channelDto.setResult("error");
channelDto.setMessage(paymentType + " refund error: "); channelDto.setMessage(refundError);
contentDto.setRequest(data); contentDto.setRequest(data);
contentDto.setResponse(jsonStr); contentDto.setResponse(jsonStr);
channelDto.setContent(contentDto); channelDto.setContent(contentDto);
...@@ -261,6 +264,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService ...@@ -261,6 +264,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
RefundContentDto contentDto = new RefundContentDto(); RefundContentDto contentDto = new RefundContentDto();
AlipayTradeRefundRequest request = new AlipayTradeRefundRequest();//创建API对应的request类 AlipayTradeRefundRequest request = new AlipayTradeRefundRequest();//创建API对应的request类
try { try {
String refundError = "";
request.setBizContent("{" + request.setBizContent("{" +
"\"out_trade_no\":\"" + code + "\"," + "\"out_trade_no\":\"" + code + "\"," +
"\"trade_no\":\"" + paymentId + "\"," + "\"trade_no\":\"" + paymentId + "\"," +
...@@ -268,9 +272,8 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService ...@@ -268,9 +272,8 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
"\"refund_reason\":\"" + reason + "\"," + "\"refund_reason\":\"" + reason + "\"," +
"\"refund_amount\":\"" + price.doubleValue() + "\"}"); //设置业务参数 "\"refund_amount\":\"" + price.doubleValue() + "\"}"); //设置业务参数
AlipayTradeRefundResponse response = PayAlipayUtils.getInstance().getHttpClient().execute(request); AlipayTradeRefundResponse response = PayAlipayUtils.getInstance().getHttpClient().execute(request);
if (response.getFundChange().equals("N") || response.getFundChange() == null) { if (response.getFundChange() == null || response.getFundChange().equals("N")) {
try { try {
String refundError = "";
refundStatus = DragonConstant.RefundStatusEnum.STATUS_ERROR.getCode(); refundStatus = DragonConstant.RefundStatusEnum.STATUS_ERROR.getCode();
if (null == response.getSubMsg()) { if (null == response.getSubMsg()) {
refundError = "退款失败,原因未知"; refundError = "退款失败,原因未知";
...@@ -295,7 +298,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService ...@@ -295,7 +298,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
return channelDto; return channelDto;
} }
channelDto.setResult("error"); channelDto.setResult("error");
channelDto.setMessage(paymentType + " refund error: "); channelDto.setMessage(refundError);
contentDto.setRequest(JSON.toJSONString(response.getParams())); contentDto.setRequest(JSON.toJSONString(response.getParams()));
contentDto.setResponse(response.getBody()); contentDto.setResponse(response.getBody());
channelDto.setContent(contentDto); channelDto.setContent(contentDto);
...@@ -323,7 +326,6 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService ...@@ -323,7 +326,6 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
); );
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
log.error("");
channelDto.setResult("exception"); channelDto.setResult("exception");
channelDto.setMessage("update order refund with db error: " + e.getMessage()); channelDto.setMessage("update order refund with db error: " + e.getMessage());
contentDto.setRequest(JSON.toJSONString(response.getParams())); contentDto.setRequest(JSON.toJSONString(response.getParams()));
...@@ -361,17 +363,14 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService ...@@ -361,17 +363,14 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
String jsonStr = new String(outSteam.toByteArray(), "utf-8"); String jsonStr = new String(outSteam.toByteArray(), "utf-8");
outSteam.close(); outSteam.close();
inStream.close(); inStream.close();
log.debug("JSON = " + jsonStr);
WePayRefundReturnCallBackDto callBackDto = XmlUtil.toBean(jsonStr, WePayRefundReturnCallBackDto.class); WePayRefundReturnCallBackDto callBackDto = XmlUtil.toBean(jsonStr, WePayRefundReturnCallBackDto.class);
log.debug("DATA = " + callBackDto); log.info("callBackDto = " + callBackDto);
if (callBackDto.getReturnCode().equalsIgnoreCase("SUCCESS")) { if (callBackDto.getReturnCode().equalsIgnoreCase("SUCCESS")) {
String reqInfo = PayWepayUtils.getInstance().unCodeReqInfo(callBackDto.getReqInfo()); String reqInfo = PayWepayUtils.getInstance().unCodeReqInfo(callBackDto.getReqInfo());
log.debug("REQINFO = " + reqInfo);
WePayRefundReturnCallBackInfoDto info = XmlUtil.toBean(reqInfo, WePayRefundReturnCallBackInfoDto.class); WePayRefundReturnCallBackInfoDto info = XmlUtil.toBean(reqInfo, WePayRefundReturnCallBackInfoDto.class);
String outRefundNo = info.getOutRefundNo(); String outRefundNo = info.getOutRefundNo();
String refundAt = info.getSuccessTime(); String refundAt = info.getSuccessTime();
try { try {
NotifyUrlDto dto = new NotifyUrlDto(); NotifyUrlDto dto = new NotifyUrlDto();
if (info.getRefundStatus().equalsIgnoreCase("SUCCESS")) { if (info.getRefundStatus().equalsIgnoreCase("SUCCESS")) {
dto.setStatus(1); dto.setStatus(1);
...@@ -383,8 +382,8 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService ...@@ -383,8 +382,8 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
dto.setRefundPrice(new BigDecimal(info.getRefundFee()).divide(BigDecimal.valueOf(100)).toString()); dto.setRefundPrice(new BigDecimal(info.getRefundFee()).divide(BigDecimal.valueOf(100)).toString());
dto.setRefundAt(refundAt); dto.setRefundAt(refundAt);
dto.setRefundError(callBackDto.getReturnMsg()); dto.setRefundError(callBackDto.getReturnMsg());
log.debug("SEND WEPAY NOTIFTURL = " + JSON.toJSONString(dto)); log.info("SEND WEPAY NOTIFTURL = " + JSON.toJSONString(dto));
sendNotifyUrl(dto); sendNotifyUrl(dto, null);
mqHandleUtil.sendMySqlRedis( mqHandleUtil.sendMySqlRedis(
SqlMapping.get("dragon_order_refund_log.insert"), SqlMapping.get("dragon_order_refund_log.insert"),
...@@ -413,7 +412,61 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService ...@@ -413,7 +412,61 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
} }
@Override @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; return null;
} }
...@@ -427,11 +480,10 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService ...@@ -427,11 +480,10 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
"\"trade_no\":\"" + callBackDto.getTradeNo() + "\"," + "\"trade_no\":\"" + callBackDto.getTradeNo() + "\"," +
"\"out_request_no\":\"" + callBackDto.getOutBizNo() + "\"}"); //设置业务参数 "\"out_request_no\":\"" + callBackDto.getOutBizNo() + "\"}"); //设置业务参数
AlipayTradeFastpayRefundQueryResponse response = PayAlipayUtils.getInstance().getHttpClient().execute(request); AlipayTradeFastpayRefundQueryResponse response = PayAlipayUtils.getInstance().getHttpClient().execute(request);
log.debug("AlipayTradeFastpayRefundQueryRequest -> data = " + JSON.toJSONString(response)); log.info("AlipayTradeFastpayRefundQueryRequest -> data = " + JSON.toJSONString(response));
if (response.isSuccess()) { if (response.isSuccess()) {
try { try {
NotifyUrlDto dto = new NotifyUrlDto(); NotifyUrlDto dto = new NotifyUrlDto();
if (response.getMsg().equalsIgnoreCase("SUCCESS")) { if (response.getMsg().equalsIgnoreCase("SUCCESS")) {
dto.setStatus(1); dto.setStatus(1);
...@@ -444,8 +496,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService ...@@ -444,8 +496,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
dto.setRefundAt(callBackDto.getGmtRefund()); dto.setRefundAt(callBackDto.getGmtRefund());
dto.setRefundPrice(response.getRefundAmount()); dto.setRefundPrice(response.getRefundAmount());
dto.setRefundError(""); dto.setRefundError("");
log.debug("SEND ALIPAY NOTIFTURL = " + JSON.toJSONString(dto)); sendNotifyUrl(dto, null);
sendNotifyUrl(dto);
mqHandleUtil.sendMySqlRedis( mqHandleUtil.sendMySqlRedis(
SqlMapping.get("dragon_order_refund_log.insert"), SqlMapping.get("dragon_order_refund_log.insert"),
...@@ -476,7 +527,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService ...@@ -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(); LocalDateTime nowTime = LocalDateTime.now();
MultiValueMap<String, String> params = new LinkedMultiValueMap(); MultiValueMap<String, String> params = new LinkedMultiValueMap();
params.add("orderRefundCode", notifyUrlDto.getOrderRefundCode()); params.add("orderRefundCode", notifyUrlDto.getOrderRefundCode());
...@@ -485,8 +536,8 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService ...@@ -485,8 +536,8 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
params.add("refundError", notifyUrlDto.getRefundError()); params.add("refundError", notifyUrlDto.getRefundError());
params.add("refundPrice", notifyUrlDto.getRefundPrice()); params.add("refundPrice", notifyUrlDto.getRefundPrice());
params.add("status", notifyUrlDto.getStatus().toString()); params.add("status", notifyUrlDto.getStatus().toString());
String response = HttpUtil.post(dataUtils.getRefundNotifyUrl(DragonConstant.REFUND_REDIS_KET + notifyUrlDto.getOrderRefundCode()), params); String response = HttpUtil.post(url == null ? dataUtils.getRefundNotifyUrl(notifyUrlDto.getOrderRefundCode()) : url, params);
log.debug("RETURN RESPONSE=" + response); log.info("RETURN RESPONSE=" + response);
if (response.equals("success")) { if (response.equals("success")) {
mqHandleUtil.sendMySqlRedis( mqHandleUtil.sendMySqlRedis(
SqlMapping.get("dragon_order_refund_call_back.update"), SqlMapping.get("dragon_order_refund_call_back.update"),
...@@ -501,4 +552,5 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService ...@@ -501,4 +552,5 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
); );
} }
} }
} }
...@@ -999,7 +999,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ ...@@ -999,7 +999,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
return true; return true;
} else { } else {
AlibabaDamaiMevOpenBatchpushticketResponse rsp = client.execute(req); AlibabaDamaiMevOpenBatchpushticketResponse rsp = client.execute(req);
log.info("error data ="+ rsp.getBody()); log.info("error data =" + rsp.getBody());
return rsp.getResult().getSuccess(); 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;
@Autowired
SyncRdsModProcessor syncRdsModProcessor;
@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":
syncRdsModProcessor.dataProcessing(stp);
break;
default:
return ResponseDto.failure(vn);
}
return ResponseDto.success(vn);
}
}
...@@ -16,6 +16,7 @@ import org.springframework.validation.annotation.Validated; ...@@ -16,6 +16,7 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.validation.constraints.Max;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.temporal.ChronoField; import java.time.temporal.ChronoField;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
...@@ -27,7 +28,7 @@ import java.util.regex.Pattern; ...@@ -27,7 +28,7 @@ import java.util.regex.Pattern;
@Slf4j @Slf4j
@Validated @Validated
@RestController @RestController
@RequestMapping("dm") @RequestMapping("adam/dm")
public class PlatformDMController { public class PlatformDMController {
@Autowired @Autowired
DMUserInformationProcessor dmUserInformationProcessor; DMUserInformationProcessor dmUserInformationProcessor;
...@@ -69,7 +70,7 @@ public class PlatformDMController { ...@@ -69,7 +70,7 @@ public class PlatformDMController {
@ApiImplicitParam(type = "form", name = "dG", example = "220"), @ApiImplicitParam(type = "form", name = "dG", example = "220"),
}) })
@GetMapping(value = {"user"}) @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 incrDt,
@RequestParam(required = false) String flg, @RequestParam(required = false) String flg,
@RequestParam(required = false) String flu @RequestParam(required = false) String flu
...@@ -98,7 +99,7 @@ public class PlatformDMController { ...@@ -98,7 +99,7 @@ public class PlatformDMController {
@ApiImplicitParam(type = "form", name = "dG", example = "45"), @ApiImplicitParam(type = "form", name = "dG", example = "45"),
}) })
@GetMapping(value = {"tpa"}) @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 incrDt,
@RequestParam(required = false) String flg, @RequestParam(required = false) String flg,
@RequestParam(required = false) String flu @RequestParam(required = false) String flu
...@@ -126,7 +127,7 @@ public class PlatformDMController { ...@@ -126,7 +127,7 @@ public class PlatformDMController {
@ApiImplicitParam(type = "form", name = "dG", example = "2"), @ApiImplicitParam(type = "form", name = "dG", example = "2"),
}) })
@GetMapping(value = {"real"}) @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 incrDt,
@RequestParam(required = false) String flg, @RequestParam(required = false) String flg,
@RequestParam(required = false) String flu @RequestParam(required = false) String flu
...@@ -154,7 +155,7 @@ public class PlatformDMController { ...@@ -154,7 +155,7 @@ public class PlatformDMController {
@ApiImplicitParam(type = "form", name = "dG", example = "15"), @ApiImplicitParam(type = "form", name = "dG", example = "15"),
}) })
@GetMapping(value = {"collect"}) @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 incrDt,
@RequestParam(required = false) String flg, @RequestParam(required = false) String flg,
@RequestParam(required = false) String flu @RequestParam(required = false) String flu
...@@ -182,7 +183,7 @@ public class PlatformDMController { ...@@ -182,7 +183,7 @@ public class PlatformDMController {
@ApiImplicitParam(type = "form", name = "dG", example = "93"), @ApiImplicitParam(type = "form", name = "dG", example = "93"),
}) })
@GetMapping(value = {"enters"}) @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 incrDt,
@RequestParam(required = false) String flg, @RequestParam(required = false) String flg,
@RequestParam(required = false) String flu @RequestParam(required = false) String flu
...@@ -210,7 +211,7 @@ public class PlatformDMController { ...@@ -210,7 +211,7 @@ public class PlatformDMController {
@ApiImplicitParam(type = "form", name = "dG", example = "27"), @ApiImplicitParam(type = "form", name = "dG", example = "27"),
}) })
@GetMapping(value = {"addr"}) @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 incrDt,
@RequestParam(required = false) String flg, @RequestParam(required = false) String flg,
@RequestParam(required = false) String flu @RequestParam(required = false) String flu
...@@ -238,7 +239,7 @@ public class PlatformDMController { ...@@ -238,7 +239,7 @@ public class PlatformDMController {
@ApiImplicitParam(type = "form", name = "dG", example = "2"), @ApiImplicitParam(type = "form", name = "dG", example = "2"),
}) })
@GetMapping(value = {"vip"}) @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 incrDt,
@RequestParam(required = false) String flg, @RequestParam(required = false) String flg,
@RequestParam(required = false) String flu @RequestParam(required = false) String flu
...@@ -263,7 +264,7 @@ public class PlatformDMController { ...@@ -263,7 +264,7 @@ public class PlatformDMController {
@ApiOperationSupport(order = 8) @ApiOperationSupport(order = 8)
@ApiOperation(value = "morder") @ApiOperation(value = "morder")
@GetMapping(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 incrDt,
@RequestParam(required = false) String flg, @RequestParam(required = false) String flg,
@RequestParam(required = false) String flu @RequestParam(required = false) String flu
...@@ -275,7 +276,7 @@ public class PlatformDMController { ...@@ -275,7 +276,7 @@ public class PlatformDMController {
@ApiOperationSupport(order = 9) @ApiOperationSupport(order = 9)
@ApiOperation(value = "mcode") @ApiOperation(value = "mcode")
@GetMapping(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 incrDt,
@RequestParam(required = false) String flg, @RequestParam(required = false) String flg,
@RequestParam(required = false) String flu @RequestParam(required = false) String flu
...@@ -287,7 +288,7 @@ public class PlatformDMController { ...@@ -287,7 +288,7 @@ public class PlatformDMController {
@ApiOperationSupport(order = 10) @ApiOperationSupport(order = 10)
@ApiOperation(value = "traces") @ApiOperation(value = "traces")
@GetMapping(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 incrDt,
@RequestParam(required = false) String flg, @RequestParam(required = false) String flg,
@RequestParam(required = false) String flu @RequestParam(required = false) String flu
......
...@@ -55,7 +55,6 @@ public class DMRdmService { ...@@ -55,7 +55,6 @@ public class DMRdmService {
public String getUidByMobile(String mobile) { public String getUidByMobile(String mobile) {
String key = AdamRedisConst.IDENTITY_MOBILE.concat(mobile); String key = AdamRedisConst.IDENTITY_MOBILE.concat(mobile);
long s = System.currentTimeMillis();
String val = (String) redisUtil.get(key); String val = (String) redisUtil.get(key);
// if (StringUtils.isEmpty(val)) { // if (StringUtils.isEmpty(val)) {
// Query query = Query.query(Criteria.where("mobile").is(mobile).and("state").is(1)); // Query query = Query.query(Criteria.where("mobile").is(mobile).and("state").is(1));
...@@ -68,7 +67,6 @@ public class DMRdmService { ...@@ -68,7 +67,6 @@ public class DMRdmService {
// redisUtil.set(key, vo.getUid()); // redisUtil.set(key, vo.getUid());
// } // }
// } // }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return val; return val;
} }
...@@ -82,7 +80,6 @@ public class DMRdmService { ...@@ -82,7 +80,6 @@ public class DMRdmService {
public String getUidByPlatformOpenId(String platform, String openId) { public String getUidByPlatformOpenId(String platform, String openId) {
String key = AdamRedisConst.IDENTITY_THIRD_PARTY + platform + ":" + openId; String key = AdamRedisConst.IDENTITY_THIRD_PARTY + platform + ":" + openId;
long s = System.currentTimeMillis();
String val = (String) redisUtil.get(key); String val = (String) redisUtil.get(key);
// if (StringUtils.isEmpty(val)) { // if (StringUtils.isEmpty(val)) {
// Query query = Query.query(Criteria.where("openId").is(openId).and("platform").is(platform).and("state").is(1)); // Query query = Query.query(Criteria.where("openId").is(openId).and("platform").is(platform).and("state").is(1));
...@@ -95,7 +92,6 @@ public class DMRdmService { ...@@ -95,7 +92,6 @@ public class DMRdmService {
// redisUtil.set(key, vo.getUid()); // redisUtil.set(key, vo.getUid());
// } // }
// } // }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return val; return val;
} }
...@@ -111,7 +107,6 @@ public class DMRdmService { ...@@ -111,7 +107,6 @@ public class DMRdmService {
public AdamUserInfoVo getUserInfoVoByUid(String uid) { public AdamUserInfoVo getUserInfoVoByUid(String uid) {
String rk = AdamRedisConst.INFO_USER.concat(uid); String rk = AdamRedisConst.INFO_USER.concat(uid);
long s = System.currentTimeMillis();
AdamUserInfoVo vo = (AdamUserInfoVo) redisUtil.get(rk); AdamUserInfoVo vo = (AdamUserInfoVo) redisUtil.get(rk);
// if (null == vo) { // if (null == vo) {
// s = System.currentTimeMillis(); // s = System.currentTimeMillis();
...@@ -121,7 +116,6 @@ public class DMRdmService { ...@@ -121,7 +116,6 @@ public class DMRdmService {
// //
// if (null != vo) redisUtil.set(rk, vo); // if (null != vo) redisUtil.set(rk, vo);
// } // }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo; return vo;
} }
...@@ -137,7 +131,6 @@ public class DMRdmService { ...@@ -137,7 +131,6 @@ public class DMRdmService {
public AdamRealInfoVo getRealInfoVoByUid(String uid) { public AdamRealInfoVo getRealInfoVoByUid(String uid) {
String rk = AdamRedisConst.INFO_REAL_NAME.concat(uid); String rk = AdamRedisConst.INFO_REAL_NAME.concat(uid);
long s = System.currentTimeMillis();
AdamRealInfoVo vo = (AdamRealInfoVo) redisUtil.get(rk); AdamRealInfoVo vo = (AdamRealInfoVo) redisUtil.get(rk);
// if (null == vo) { // if (null == vo) {
// s = System.currentTimeMillis(); // s = System.currentTimeMillis();
...@@ -151,7 +144,6 @@ public class DMRdmService { ...@@ -151,7 +144,6 @@ public class DMRdmService {
vo.setName(SensitizeUtil.chineseName(vo.getName())); vo.setName(SensitizeUtil.chineseName(vo.getName()));
vo.setIdCard(SensitizeUtil.custom(vo.getIdCard(), 3, 2)); vo.setIdCard(SensitizeUtil.custom(vo.getIdCard(), 3, 2));
} }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo; return vo;
} }
...@@ -174,7 +166,6 @@ public class DMRdmService { ...@@ -174,7 +166,6 @@ public class DMRdmService {
public List<AdamThirdPartInfoVo> getThirdPartVoListByUid(String uid) { public List<AdamThirdPartInfoVo> getThirdPartVoListByUid(String uid) {
String rk = AdamRedisConst.INFO_THIRD_PARTY.concat(uid); String rk = AdamRedisConst.INFO_THIRD_PARTY.concat(uid);
long s = System.currentTimeMillis();
List<AdamThirdPartInfoVo> thirdPartInfoVos = (List<AdamThirdPartInfoVo>) redisUtil.get(rk); List<AdamThirdPartInfoVo> thirdPartInfoVos = (List<AdamThirdPartInfoVo>) redisUtil.get(rk);
// if (CollectionUtils.isEmpty(thirdPartInfoVos)) { // if (CollectionUtils.isEmpty(thirdPartInfoVos)) {
// s = System.currentTimeMillis(); // s = System.currentTimeMillis();
...@@ -184,7 +175,6 @@ public class DMRdmService { ...@@ -184,7 +175,6 @@ public class DMRdmService {
// //
// if (!CollectionUtils.isEmpty(thirdPartInfoVos)) redisUtil.set(rk, thirdPartInfoVos); // if (!CollectionUtils.isEmpty(thirdPartInfoVos)) redisUtil.set(rk, thirdPartInfoVos);
// } // }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return thirdPartInfoVos; return thirdPartInfoVos;
} }
...@@ -206,7 +196,10 @@ public class DMRdmService { ...@@ -206,7 +196,10 @@ public class DMRdmService {
public AdamThirdPartInfoVo getThirdPartVoByUidPlatform(List<AdamThirdPartInfoVo> vos, String platform) { public AdamThirdPartInfoVo getThirdPartVoByUidPlatform(List<AdamThirdPartInfoVo> vos, String platform) {
if (!CollectionUtils.isEmpty(vos)) { 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; return null;
} }
...@@ -216,7 +209,10 @@ public class DMRdmService { ...@@ -216,7 +209,10 @@ public class DMRdmService {
if (!CollectionUtils.isEmpty(vos)) { if (!CollectionUtils.isEmpty(vos)) {
// for (AdamThirdPartInfoVo r : vos) // for (AdamThirdPartInfoVo r : vos)
// if (platform.equals(r.getPlatform())) return r; // 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; return null;
} }
...@@ -233,7 +229,6 @@ public class DMRdmService { ...@@ -233,7 +229,6 @@ public class DMRdmService {
public List<AdamEntersVo> getEntersVoByUid(String uid) { public List<AdamEntersVo> getEntersVoByUid(String uid) {
String rk = AdamRedisConst.INFO_ENTERS.concat(uid); String rk = AdamRedisConst.INFO_ENTERS.concat(uid);
long s = System.currentTimeMillis();
ArrayList<AdamEntersVo> vos = (ArrayList<AdamEntersVo>) redisUtil.get(rk); ArrayList<AdamEntersVo> vos = (ArrayList<AdamEntersVo>) redisUtil.get(rk);
// if (CollectionUtils.isEmpty(vos)) { // if (CollectionUtils.isEmpty(vos)) {
// s = System.currentTimeMillis(); // s = System.currentTimeMillis();
...@@ -245,7 +240,6 @@ public class DMRdmService { ...@@ -245,7 +240,6 @@ public class DMRdmService {
// //
// if (!CollectionUtils.isEmpty(vos)) redisUtil.set(rk, vos); // if (!CollectionUtils.isEmpty(vos)) redisUtil.set(rk, vos);
// } // }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vos; return vos;
} }
...@@ -266,18 +260,16 @@ public class DMRdmService { ...@@ -266,18 +260,16 @@ public class DMRdmService {
} }
public AdamEntersVo getEntersVoByUidEntersId(List<AdamEntersVo> vos, String entersId) { 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) { public AdamEntersVo getEntersVoByUidEntersId(String uid, String entersId) {
List<AdamEntersVo> vos = this.getEntersVoByUid(uid); return this.getEntersVoByUid(uid).stream().filter(r -> r.getEntersId().equals(entersId)).findAny().orElse(null);
return CollectionUtils.isEmpty(vos) ? null : vos.stream().filter(r -> r.getEntersId().equals(entersId)).findAny().orElse(null);
} }
public List<AdamEntersVo> getEntersVoByUidEntersIds(String uid, String... entersIds) { public List<AdamEntersVo> getEntersVoByUidEntersIds(String uid, String... entersIds) {
List<String> entersIdList = Arrays.asList(entersIds); List<String> entersIdList = Arrays.asList(entersIds);
List<AdamEntersVo> vos = this.getEntersVoByUid(uid); return this.getEntersVoByUid(uid).stream().filter(r -> entersIdList.contains(r.getEntersId())).collect(Collectors.toList());
return CollectionUtils.isEmpty(vos) ? null : vos.stream().filter(r -> entersIdList.contains(r.getEntersId())).collect(Collectors.toList());
} }
public void delEntersVoByUid(String uid) { public void delEntersVoByUid(String uid) {
...@@ -292,7 +284,6 @@ public class DMRdmService { ...@@ -292,7 +284,6 @@ public class DMRdmService {
public List<AdamAddressesVo> getAddressesVoByUid(String uid) { public List<AdamAddressesVo> getAddressesVoByUid(String uid) {
String rk = AdamRedisConst.INFO_ADDRESSES.concat(uid); String rk = AdamRedisConst.INFO_ADDRESSES.concat(uid);
long s = System.currentTimeMillis();
List<AdamAddressesVo> vos = (List<AdamAddressesVo>) redisUtil.get(rk); List<AdamAddressesVo> vos = (List<AdamAddressesVo>) redisUtil.get(rk);
// if (CollectionUtils.isEmpty(vos)) { // if (CollectionUtils.isEmpty(vos)) {
// s = System.currentTimeMillis(); // s = System.currentTimeMillis();
...@@ -304,7 +295,6 @@ public class DMRdmService { ...@@ -304,7 +295,6 @@ public class DMRdmService {
// //
// if (!CollectionUtils.isEmpty(vos)) redisUtil.set(rk, vos); // if (!CollectionUtils.isEmpty(vos)) redisUtil.set(rk, vos);
// } // }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vos; return vos;
} }
...@@ -325,12 +315,11 @@ public class DMRdmService { ...@@ -325,12 +315,11 @@ public class DMRdmService {
} }
public AdamAddressesVo getAddressesVoByUidAddressesId(List<AdamAddressesVo> vos, String addressesId) { 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) { public AdamAddressesVo getAddressesVoByUidAddressesId(String uid, String addressesId) {
List<AdamAddressesVo> vos = this.getAddressesVoByUid(uid); return this.getAddressesVoByUid(uid).stream().filter(r -> r.getAddressesId().equals(addressesId)).findAny().orElse(null);
return CollectionUtils.isEmpty(vos) ? null : vos.stream().filter(r -> r.getAddressesId().equals(addressesId)).findAny().orElse(null);
} }
public void delAddressesVoByUid(String uid) { public void delAddressesVoByUid(String uid) {
...@@ -355,7 +344,6 @@ public class DMRdmService { ...@@ -355,7 +344,6 @@ public class DMRdmService {
public AdamUserMemberVo getUserMemberVoByUid(String uid) { public AdamUserMemberVo getUserMemberVoByUid(String uid) {
String rk = AdamRedisConst.INFO_USER_MEMBER.concat(uid); String rk = AdamRedisConst.INFO_USER_MEMBER.concat(uid);
long s = System.currentTimeMillis();
AdamUserMemberVo vo = (AdamUserMemberVo) redisUtil.get(rk); AdamUserMemberVo vo = (AdamUserMemberVo) redisUtil.get(rk);
// if (null == vo) { // if (null == vo) {
// s = System.currentTimeMillis(); // s = System.currentTimeMillis();
...@@ -367,7 +355,6 @@ public class DMRdmService { ...@@ -367,7 +355,6 @@ public class DMRdmService {
if (null != vo) { if (null != vo) {
vo.setState(vo.getState() == 1 ? (vo.getExpiryAt().isAfter(LocalDateTime.now()) ? 1 : 2) : vo.getState()); vo.setState(vo.getState() == 1 ? (vo.getExpiryAt().isAfter(LocalDateTime.now()) ? 1 : 2) : vo.getState());
} }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo; return vo;
} }
...@@ -382,7 +369,6 @@ public class DMRdmService { ...@@ -382,7 +369,6 @@ public class DMRdmService {
} }
public AdamMemberSimpleVo getMemberSimpleVo() { public AdamMemberSimpleVo getMemberSimpleVo() {
long s = System.currentTimeMillis();
AdamMemberSimpleVo vo = (AdamMemberSimpleVo) redisUtil.get(AdamRedisConst.INFO_MEMBER_SIMPLE); AdamMemberSimpleVo vo = (AdamMemberSimpleVo) redisUtil.get(AdamRedisConst.INFO_MEMBER_SIMPLE);
// if (null == vo) { // if (null == vo) {
// long s = System.currentTimeMillis(); // long s = System.currentTimeMillis();
...@@ -396,7 +382,6 @@ public class DMRdmService { ...@@ -396,7 +382,6 @@ public class DMRdmService {
// //
// if (null != vo) redisUtil.set(AdamRedisConst.INFO_MEMBER_SIMPLE, vo); // if (null != vo) redisUtil.set(AdamRedisConst.INFO_MEMBER_SIMPLE, vo);
// } // }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo; return vo;
} }
...@@ -408,7 +393,6 @@ public class DMRdmService { ...@@ -408,7 +393,6 @@ public class DMRdmService {
public AdamMemberVo getMemberVoByMemberId(String memberId) { public AdamMemberVo getMemberVoByMemberId(String memberId) {
String key = AdamRedisConst.INFO_MEMBER_CATEGORY.concat(memberId); String key = AdamRedisConst.INFO_MEMBER_CATEGORY.concat(memberId);
long s = System.currentTimeMillis();
AdamMemberVo vo = (AdamMemberVo) redisUtil.get(key); AdamMemberVo vo = (AdamMemberVo) redisUtil.get(key);
// if (null == vo) { // if (null == vo) {
// s = System.currentTimeMillis(); // s = System.currentTimeMillis();
...@@ -419,7 +403,6 @@ public class DMRdmService { ...@@ -419,7 +403,6 @@ public class DMRdmService {
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s); // log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (null != vo) redisUtil.set(key, vo); // if (null != vo) redisUtil.set(key, vo);
// } // }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo; return vo;
} }
...@@ -435,7 +418,6 @@ public class DMRdmService { ...@@ -435,7 +418,6 @@ public class DMRdmService {
public List<AdamMemberPriceVo> getMemberPriceVoByMemberId(String memberId) { public List<AdamMemberPriceVo> getMemberPriceVoByMemberId(String memberId) {
String key = AdamRedisConst.INFO_MEMBER_PRICE.concat(memberId); String key = AdamRedisConst.INFO_MEMBER_PRICE.concat(memberId);
long s = System.currentTimeMillis();
List<AdamMemberPriceVo> vos = (List<AdamMemberPriceVo>) redisUtil.get(key); List<AdamMemberPriceVo> vos = (List<AdamMemberPriceVo>) redisUtil.get(key);
// if (CollectionUtils.isEmpty(vos)) { // if (CollectionUtils.isEmpty(vos)) {
// s = System.currentTimeMillis(); // s = System.currentTimeMillis();
...@@ -447,13 +429,23 @@ public class DMRdmService { ...@@ -447,13 +429,23 @@ public class DMRdmService {
// //
// if (!CollectionUtils.isEmpty(vos)) redisUtil.set(key, vos); // if (!CollectionUtils.isEmpty(vos)) redisUtil.set(key, vos);
// } // }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vos; return vos;
} }
public AdamMemberPriceVo getMemberPriceVoByPriceId(String memberId, String memberPriceId) { public AdamMemberPriceVo getMemberPriceVoByPriceId(String memberId, String memberPriceId) {
List<AdamMemberPriceVo> vos = this.getMemberPriceVoByMemberId(memberId); 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>> */ /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | <MEMBER_ID, List<AdamMemberRightsVo>> */
...@@ -499,9 +491,7 @@ public class DMRdmService { ...@@ -499,9 +491,7 @@ public class DMRdmService {
} }
public ArrayList<AdamMemberOrderVo> getMemberOrderVosByUid(String uid) { public ArrayList<AdamMemberOrderVo> getMemberOrderVosByUid(String uid) {
long s = System.currentTimeMillis();
ArrayList<AdamMemberOrderVo> vos = (ArrayList<AdamMemberOrderVo>) redisUtil.get(AdamRedisConst.INFO_MEMBER_ORDER + uid); ArrayList<AdamMemberOrderVo> vos = (ArrayList<AdamMemberOrderVo>) redisUtil.get(AdamRedisConst.INFO_MEMBER_ORDER + uid);
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vos; return vos;
} }
...@@ -521,10 +511,6 @@ public class DMRdmService { ...@@ -521,10 +511,6 @@ public class DMRdmService {
return redisUtil.set(AdamRedisConst.INFO_MEMBER_ORDER + uid, vos); 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) { public void delMemberOrderVoByUid(String uid) {
redisUtil.del(AdamRedisConst.INFO_MEMBER_ORDER + uid); redisUtil.del(AdamRedisConst.INFO_MEMBER_ORDER + uid);
} }
...@@ -537,7 +523,6 @@ public class DMRdmService { ...@@ -537,7 +523,6 @@ public class DMRdmService {
public AdamMemberOrderVo getShotMemberOrderVoByOrderNo(String orderNo) { public AdamMemberOrderVo getShotMemberOrderVoByOrderNo(String orderNo) {
String key = AdamRedisConst.SHOT_MEMBER_ORDER + orderNo; String key = AdamRedisConst.SHOT_MEMBER_ORDER + orderNo;
long s = System.currentTimeMillis();
AdamMemberOrderVo vo = (AdamMemberOrderVo) redisUtil.get(key); AdamMemberOrderVo vo = (AdamMemberOrderVo) redisUtil.get(key);
// if (null == vo) { // if (null == vo) {
// s = System.currentTimeMillis(); // s = System.currentTimeMillis();
...@@ -549,7 +534,6 @@ public class DMRdmService { ...@@ -549,7 +534,6 @@ public class DMRdmService {
// //
// if (null != vo) redisUtil.set(key, vo); // if (null != vo) redisUtil.set(key, vo);
// } // }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo; return vo;
} }
...@@ -580,7 +564,6 @@ public class DMRdmService { ...@@ -580,7 +564,6 @@ public class DMRdmService {
public AdamMemberCodeVo getMemberCodeVoByCode(String memberCode) { public AdamMemberCodeVo getMemberCodeVoByCode(String memberCode) {
String key = AdamRedisConst.INFO_MEMBER_CODE.concat(memberCode); String key = AdamRedisConst.INFO_MEMBER_CODE.concat(memberCode);
long s = System.currentTimeMillis();
AdamMemberCodeVo vo = (AdamMemberCodeVo) redisUtil.get(key); AdamMemberCodeVo vo = (AdamMemberCodeVo) redisUtil.get(key);
// if (null == vo) { // if (null == vo) {
// s = System.currentTimeMillis(); // s = System.currentTimeMillis();
...@@ -591,7 +574,6 @@ public class DMRdmService { ...@@ -591,7 +574,6 @@ public class DMRdmService {
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s); // log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (null != vo && vo.getState() == 0) redisUtil.set(AdamRedisConst.INFO_MEMBER_CODE.concat(memberCode), vo); // if (null != vo && vo.getState() == 0) redisUtil.set(AdamRedisConst.INFO_MEMBER_CODE.concat(memberCode), vo);
// } // }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo; 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.commons.lang.util.JsonUtils;
import com.liquidnet.service.adam.dto.vo.AdamAddressesVo;
import com.liquidnet.service.adam.dto.vo.AdamRealInfoVo;
import com.liquidnet.service.adam.entity.AdamAddresses;
import com.liquidnet.service.adam.entity.AdamRealName;
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);
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.commons.lang.util.JsonUtils;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.service.adam.dto.vo.AdamRealInfoVo;
import com.liquidnet.service.adam.entity.AdamEnters;
import com.liquidnet.service.adam.entity.AdamRealName;
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.liquidnet.common.cache.redis.util.RedisUtil;
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;
@Slf4j
@Service
public class SyncRdsModProcessor extends SyncDataProcessorService {
@Autowired
RedisUtil redisUtil;
@Override
public void dataProcessing(int stp) {
// TODO: 2021/8/16
}
}
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.commons.lang.util.JsonUtils;
import com.liquidnet.service.adam.dto.vo.AdamRealInfoVo;
import com.liquidnet.service.adam.dto.vo.AdamThirdPartInfoVo;
import com.liquidnet.service.adam.entity.AdamRealName;
import com.liquidnet.service.adam.entity.AdamThirdParty;
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.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.pagehelper.PageHelper;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.adam.dto.vo.AdamThirdPartInfoVo;
import com.liquidnet.service.adam.entity.AdamThirdParty;
import com.liquidnet.service.adam.mapper.AdamThirdPartyMapper;
import com.liquidnet.service.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);
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.commons.lang.util.JsonUtils;
import com.liquidnet.service.adam.dto.vo.AdamRealInfoVo;
import com.liquidnet.service.adam.dto.vo.AdamUserMemberVo;
import com.liquidnet.service.adam.entity.AdamRealName;
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