fix: 优化代码
This commit is contained in:
parent
3b078cfd6b
commit
0b6aa9e857
@ -1,2 +0,0 @@
|
|||||||
/** 店铺--默认页面是否开启**/
|
|
||||||
ALTER TABLE li_store ADD page_show bit(1) DEFAULT NULL COMMENT '默认页面是否开启';
|
|
@ -46,3 +46,6 @@ CREATE TABLE `li_wholesale`
|
|||||||
|
|
||||||
ALTER TABLE li_wholesale
|
ALTER TABLE li_wholesale
|
||||||
ADD template_id bigint DEFAULT NULL COMMENT '商品模版id';
|
ADD template_id bigint DEFAULT NULL COMMENT '商品模版id';
|
||||||
|
|
||||||
|
/** 店铺--默认页面是否开启**/
|
||||||
|
ALTER TABLE li_store ADD page_show bit(1) DEFAULT NULL COMMENT '默认页面是否开启';
|
@ -1,30 +0,0 @@
|
|||||||
package cn.lili.common.fulu.core;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Auther: chenYing
|
|
||||||
* @Date: 2019/8/26 0026 15:08
|
|
||||||
*/
|
|
||||||
public interface MethodConst {
|
|
||||||
//卡密下单接口method方法
|
|
||||||
String OPEN_API_CARD_ORDER_ADD = "fulu.order.card.add";
|
|
||||||
// 根据话费查询归属地和城市编码,面值,城市等信息
|
|
||||||
String OPEN_API_CHECK_PHONE = "fulu.mobile.info.get";
|
|
||||||
// 直充下单接口method方法
|
|
||||||
String OPEN_API_DIRECT_ORDER_ADD = "fulu.order.direct.add";
|
|
||||||
// 获取商品信息接口method方法
|
|
||||||
String OPEN_API_GOODS_GET = "fulu.goods.info.get";
|
|
||||||
// 获取商品模板信息接口method方法
|
|
||||||
String OPEN_API_GOODS_TEMPLATE_GET = "fulu.goods.template.get";
|
|
||||||
// 查单接口method方法
|
|
||||||
String OPEN_API_ORDER_GET = "fulu.order.info.get";
|
|
||||||
// 话费下单接口method方法
|
|
||||||
String OPEN_API_PHONE_ORDER_ADD = "fulu.order.mobile.add";
|
|
||||||
// 流量下单接口method方法
|
|
||||||
String OPEN_API_TRAFFIC_ORDER_ADD = "fulu.order.data.add";
|
|
||||||
// 获取用户信息接口method方法
|
|
||||||
String OPEN_API_USER_INFO_GET = "fulu.user.info.get";
|
|
||||||
//获取商品列表method方法
|
|
||||||
String OPEN_API_GOODS_LIST = "fulu.goods.list.get";
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -1,58 +0,0 @@
|
|||||||
package cn.lili.common.fulu.core.http;
|
|
||||||
|
|
||||||
|
|
||||||
import cn.lili.common.fulu.core.utils.HttpUtil;
|
|
||||||
|
|
||||||
import java.util.concurrent.Callable;
|
|
||||||
import java.util.concurrent.ExecutorService;
|
|
||||||
import java.util.concurrent.Executors;
|
|
||||||
import java.util.concurrent.Future;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Auther: chenYing
|
|
||||||
* @Date: 2019/8/19 0019 16:16
|
|
||||||
*/
|
|
||||||
public class FuluClient implements IFuluClient {
|
|
||||||
private static volatile ExecutorService executor;
|
|
||||||
private String url;
|
|
||||||
|
|
||||||
public FuluClient() {
|
|
||||||
this.url = "http://openapi.fulu.com/api/getway";
|
|
||||||
}
|
|
||||||
|
|
||||||
public FuluClient(String url) {
|
|
||||||
this.url = url;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 创建线程池
|
|
||||||
*/
|
|
||||||
private static void createThreadPool() {
|
|
||||||
if (executor == null) {
|
|
||||||
synchronized (FuluClient.class) {
|
|
||||||
if (executor == null) {
|
|
||||||
executor = Executors.newCachedThreadPool();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String send(final String postData) {
|
|
||||||
String result = HttpUtil.sendPostJson(this.url, postData);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Future<String> sendAsync(final String postData) {
|
|
||||||
createThreadPool();
|
|
||||||
return executor.submit(new Callable<String>() {
|
|
||||||
@Override
|
|
||||||
public String call() throws Exception {
|
|
||||||
String result = HttpUtil.sendPostJson(url, postData);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,27 +0,0 @@
|
|||||||
package cn.lili.common.fulu.core.http;
|
|
||||||
|
|
||||||
import java.util.concurrent.Future;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Auther: chenYing
|
|
||||||
* @Date: 2019/8/19 0019 16:15
|
|
||||||
*/
|
|
||||||
public interface IFuluClient {
|
|
||||||
/**
|
|
||||||
* 同步请求openapi2.0
|
|
||||||
*
|
|
||||||
* @param postData
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
String send(final String postData);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 异步请求openapi2.0
|
|
||||||
*
|
|
||||||
* @param postData
|
|
||||||
* @return Future<String>
|
|
||||||
*/
|
|
||||||
Future<String> sendAsync(final String postData);
|
|
||||||
|
|
||||||
}
|
|
@ -1,47 +0,0 @@
|
|||||||
package cn.lili.common.fulu.core.utils;
|
|
||||||
|
|
||||||
import javax.crypto.Cipher;
|
|
||||||
import javax.crypto.spec.SecretKeySpec;
|
|
||||||
import java.security.Security;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Auther: chenYing
|
|
||||||
* @Date: 2019/8/27 0027 17:38
|
|
||||||
*/
|
|
||||||
public class CardUtil {
|
|
||||||
private static final String ALGORITHM = "AES/ECB/PKCS7Padding";
|
|
||||||
|
|
||||||
|
|
||||||
private CardUtil() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String cardDecode(String str, byte[] key) {
|
|
||||||
byte[] bytes = org.apache.commons.codec.binary.Base64.decodeBase64(str);
|
|
||||||
String result = null;
|
|
||||||
try {
|
|
||||||
Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
|
|
||||||
Cipher cipher = Cipher.getInstance(ALGORITHM, "BC");
|
|
||||||
SecretKeySpec keySpec = new SecretKeySpec(key, "AES");
|
|
||||||
cipher.init(Cipher.DECRYPT_MODE, keySpec);
|
|
||||||
byte[] decoded = cipher.doFinal(bytes);
|
|
||||||
result = new String(decoded, "UTF-8");
|
|
||||||
} catch (Exception e) {
|
|
||||||
throw new RuntimeException(e.getMessage(), e);
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String cardEncode(String str, byte[] key) {
|
|
||||||
byte[] result = null;
|
|
||||||
try {
|
|
||||||
Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
|
|
||||||
Cipher cipher = Cipher.getInstance(ALGORITHM, "BC");
|
|
||||||
SecretKeySpec keySpec = new SecretKeySpec(key, "AES");
|
|
||||||
cipher.init(Cipher.ENCRYPT_MODE, keySpec);
|
|
||||||
result = cipher.doFinal(str.getBytes("UTF-8"));
|
|
||||||
} catch (Exception e) {
|
|
||||||
throw new RuntimeException(e.getMessage(), e);
|
|
||||||
}
|
|
||||||
return new String(org.apache.commons.codec.binary.Base64.encodeBase64(result));
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,19 +0,0 @@
|
|||||||
package cn.lili.common.fulu.core.utils;
|
|
||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Auther: chenYing
|
|
||||||
* @Date: 2019/8/19 0019 15:17
|
|
||||||
*/
|
|
||||||
public class DateFormatUtil {
|
|
||||||
private static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
|
|
||||||
|
|
||||||
private DateFormatUtil() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String currentDateTime() {
|
|
||||||
return new SimpleDateFormat(DATE_FORMAT).format(new Date());
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,206 +0,0 @@
|
|||||||
package cn.lili.common.fulu.core.utils;
|
|
||||||
|
|
||||||
|
|
||||||
import org.apache.http.HttpResponse;
|
|
||||||
import org.apache.http.NameValuePair;
|
|
||||||
import org.apache.http.client.HttpClient;
|
|
||||||
import org.apache.http.client.entity.UrlEncodedFormEntity;
|
|
||||||
import org.apache.http.client.methods.HttpPost;
|
|
||||||
import org.apache.http.impl.client.DefaultHttpClient;
|
|
||||||
import org.apache.http.message.BasicNameValuePair;
|
|
||||||
import org.apache.http.protocol.HTTP;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
|
||||||
import java.io.InputStreamReader;
|
|
||||||
import java.io.PrintWriter;
|
|
||||||
import java.net.*;
|
|
||||||
import java.util.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author cheny
|
|
||||||
*/
|
|
||||||
public class HttpUtil {
|
|
||||||
private static Logger log = LoggerFactory.getLogger(HttpUtil.class);
|
|
||||||
|
|
||||||
public final static int CONNECT_TIMEOUT = 10000;
|
|
||||||
public final static int READ_TIMEOUT = 10000;
|
|
||||||
|
|
||||||
private static final String ENCODING_GBK = "GBK";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* POST请求,json字符串形式数据
|
|
||||||
*
|
|
||||||
* @param url 请求地址
|
|
||||||
* @param param 请求的json数据
|
|
||||||
* @return response body
|
|
||||||
* @throws Exception
|
|
||||||
*/
|
|
||||||
public static String sendPostJson(String url, String param) {
|
|
||||||
return sendPostWithHeads(url, param, "application/json", null);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static String sendPostWithHeads(String url, String param, String contentType, Map<String, String> heads) {
|
|
||||||
PrintWriter out = null;
|
|
||||||
BufferedReader in = null;
|
|
||||||
StringBuilder result = new StringBuilder();
|
|
||||||
HttpURLConnection conn = null;
|
|
||||||
|
|
||||||
try {
|
|
||||||
URL realUrl = new URL(url);
|
|
||||||
// 打开和URL之间的连接
|
|
||||||
conn = (HttpURLConnection) realUrl.openConnection();
|
|
||||||
// 设置通用的请求属性
|
|
||||||
conn.setRequestMethod("POST");// 提交模式
|
|
||||||
conn.setConnectTimeout(CONNECT_TIMEOUT);// 连接超时 单位毫秒
|
|
||||||
conn.setReadTimeout(READ_TIMEOUT);// 读取超时 单位毫秒
|
|
||||||
if (contentType != null && !contentType.isEmpty()) {
|
|
||||||
conn.setRequestProperty("Content-Type", contentType);
|
|
||||||
}
|
|
||||||
conn.setRequestProperty("accept", "*/*");
|
|
||||||
conn.setRequestProperty("connection", "Keep-Alive");
|
|
||||||
conn.setRequestProperty("user-agent",
|
|
||||||
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36");
|
|
||||||
|
|
||||||
// 添加头信息
|
|
||||||
if (heads != null && !heads.isEmpty()) {
|
|
||||||
for (String key : heads.keySet()) {
|
|
||||||
conn.setRequestProperty(key, heads.get(key));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 发送POST请求必须设置如下两行
|
|
||||||
conn.setDoOutput(true);
|
|
||||||
conn.setDoInput(true);
|
|
||||||
// 获取URLConnection对象对应的输出流
|
|
||||||
out = new PrintWriter(conn.getOutputStream());
|
|
||||||
// 发送请求参数
|
|
||||||
out.print(param);
|
|
||||||
// flush输出流的缓冲
|
|
||||||
out.flush();
|
|
||||||
// 定义BufferedReader输入流来读取URL的响应
|
|
||||||
in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
|
|
||||||
String line;
|
|
||||||
while ((line = in.readLine()) != null) {
|
|
||||||
result.append(line);
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
throw new RuntimeException("send POST request exception :" + e.getMessage(), e);
|
|
||||||
} finally {
|
|
||||||
try {
|
|
||||||
if (out != null) {
|
|
||||||
out.close();
|
|
||||||
}
|
|
||||||
if (in != null) {
|
|
||||||
in.close();
|
|
||||||
}
|
|
||||||
if (conn != null) {
|
|
||||||
conn.disconnect();
|
|
||||||
}
|
|
||||||
} catch (Exception e2) {
|
|
||||||
throw new RuntimeException("close Connection exception :" + e2.getMessage(), e2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return result.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* POST请求,String字符串形式数据
|
|
||||||
*
|
|
||||||
* @param url
|
|
||||||
* @param paramXmlStr
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public static String sendPostXmlStr(String url, String paramXmlStr) {
|
|
||||||
String tmpparamXmlStr = "";
|
|
||||||
try {
|
|
||||||
tmpparamXmlStr = URLEncoder.encode(paramXmlStr, ENCODING_GBK);
|
|
||||||
tmpparamXmlStr = sendPostWithHeads(url, tmpparamXmlStr, "application/xml", null);
|
|
||||||
tmpparamXmlStr = URLDecoder.decode(tmpparamXmlStr,ENCODING_GBK);
|
|
||||||
|
|
||||||
}catch (Exception e){
|
|
||||||
e.printStackTrace();
|
|
||||||
log.error("post请求URL数据转码报错,{}", e.getMessage());
|
|
||||||
}
|
|
||||||
return tmpparamXmlStr;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* POST请求,String字符串形式数据
|
|
||||||
*
|
|
||||||
* @param url
|
|
||||||
* @param paramXmlStr
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public static String sendPostXmlUrlencode(String url, String paramXmlStr) {
|
|
||||||
String tmpparamXmlStr = "";
|
|
||||||
Map<String, String> rspMap = new LinkedHashMap<>();
|
|
||||||
rspMap.put("req", paramXmlStr);
|
|
||||||
|
|
||||||
try {
|
|
||||||
tmpparamXmlStr = URLEncoder.encode(paramXmlStr, ENCODING_GBK);
|
|
||||||
tmpparamXmlStr = doPostMapParams(url, rspMap);
|
|
||||||
tmpparamXmlStr = URLDecoder.decode(tmpparamXmlStr,ENCODING_GBK);
|
|
||||||
}catch (Exception e){
|
|
||||||
e.printStackTrace();
|
|
||||||
log.error("post请求URL数据转码报错,{}", e.getMessage());
|
|
||||||
}
|
|
||||||
return tmpparamXmlStr;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 发送POST请求
|
|
||||||
* @param url String对象为 目的地址
|
|
||||||
* @param parameters 请求参数,Map类型。
|
|
||||||
* @return 远程响应结果
|
|
||||||
*/
|
|
||||||
public static String doPostMapParams(String url, Map<String, String> parameters) {
|
|
||||||
|
|
||||||
BufferedReader in = null;
|
|
||||||
try {
|
|
||||||
// 定义HttpClient
|
|
||||||
HttpClient client = new DefaultHttpClient();
|
|
||||||
// 实例化HTTP方法
|
|
||||||
HttpPost request = new HttpPost();
|
|
||||||
request.setURI(new URI(url));
|
|
||||||
|
|
||||||
//设置参数
|
|
||||||
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
|
|
||||||
for (Iterator iter = parameters.keySet().iterator(); iter.hasNext();) {
|
|
||||||
String name = (String) iter.next();
|
|
||||||
String value = String.valueOf(parameters.get(name));
|
|
||||||
nvps.add(new BasicNameValuePair(name, value));
|
|
||||||
}
|
|
||||||
request.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
|
|
||||||
|
|
||||||
HttpResponse response = client.execute(request);
|
|
||||||
int code = response.getStatusLine().getStatusCode();
|
|
||||||
if(code == 200){ //请求成功
|
|
||||||
in = new BufferedReader(new InputStreamReader(response.getEntity()
|
|
||||||
.getContent(),"UTF-8"));
|
|
||||||
StringBuffer sb = new StringBuffer("");
|
|
||||||
String line = "";
|
|
||||||
String NL = System.getProperty("line.separator");
|
|
||||||
while ((line = in.readLine()) != null) {
|
|
||||||
sb.append(line + NL);
|
|
||||||
}
|
|
||||||
|
|
||||||
in.close();
|
|
||||||
return sb.toString();
|
|
||||||
}else{
|
|
||||||
System.out.println("状态码:" + code);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch(Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -1,41 +0,0 @@
|
|||||||
package cn.lili.common.fulu.core.utils;
|
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
|
||||||
import com.google.gson.reflect.TypeToken;
|
|
||||||
|
|
||||||
public class JSONUtil {
|
|
||||||
private static Gson gson = new Gson();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 将 JSON 字符串转为 Java 对象
|
|
||||||
*/
|
|
||||||
public static <T> T fromJSON(String json, Class<T> type) {
|
|
||||||
T obj;
|
|
||||||
try {
|
|
||||||
obj = gson.fromJson(json, type);
|
|
||||||
} catch (Exception e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
return obj;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* json字符串转list或者map
|
|
||||||
*/
|
|
||||||
public static <T> T fromJSON(String json, TypeToken<T> typeToken) {
|
|
||||||
return gson.fromJson(json, typeToken.getType());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 将 Java 对象转为 JSON 字符串
|
|
||||||
*/
|
|
||||||
public static <T> String toJSON(T obj) {
|
|
||||||
String jsonStr;
|
|
||||||
try {
|
|
||||||
jsonStr = gson.toJson(obj);
|
|
||||||
} catch (Exception e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
return jsonStr;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,342 +0,0 @@
|
|||||||
package cn.lili.common.fulu.core.utils;
|
|
||||||
|
|
||||||
import cn.lili.common.fulu.core.MethodConst;
|
|
||||||
import cn.lili.common.fulu.model.*;
|
|
||||||
import cn.lili.common.fulu.sdk.DefaultOpenApiClient;
|
|
||||||
import cn.lili.modules.store.entity.dto.FuLuConfigureDTO;
|
|
||||||
import com.alibaba.fastjson.JSON;
|
|
||||||
import com.google.gson.reflect.TypeToken;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
import java.util.*;
|
|
||||||
import java.util.concurrent.*;
|
|
||||||
|
|
||||||
public class Test {
|
|
||||||
private final static String APP_KEY = "lzHi7ewuTkplx2ePX0eQzN65TIFRk1zFClcoj1Jim/MHmu0X7ZqxMtSLENhvr1xD";
|
|
||||||
private final static Logger LOGGER = LoggerFactory.getLogger(Test.class);
|
|
||||||
private final static String SYS_SECRET = "9da68b0f8bcb470e84c3d30e343727e2";
|
|
||||||
private final static String URL = "http://openapi.fulu.com/api/getway";
|
|
||||||
|
|
||||||
// private final static String APP_KEY = "i4esv1l+76l/7NQCL3QudG90Fq+YgVfFGJAWgT+7qO1Bm9o/adG/1iwO2qXsAXNB";
|
|
||||||
// private final static Logger LOGGER = LoggerFactory.getLogger(Test.class);
|
|
||||||
// private final static String SYS_SECRET = "0a091b3aa4324435aab703142518a8f7";
|
|
||||||
// private final static String URL = "http://pre.openapi.fulu.com/api/getway";
|
|
||||||
|
|
||||||
private static String repeat(String ch, int num) {
|
|
||||||
StringBuilder str = new StringBuilder();
|
|
||||||
for (int i = 0; i < num; i++) {
|
|
||||||
str.append(ch);
|
|
||||||
}
|
|
||||||
return str.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void waitFor(Future<String> future) throws Exception {
|
|
||||||
while (!future.isDone()) {
|
|
||||||
TimeUnit.MILLISECONDS.sleep(500);
|
|
||||||
}
|
|
||||||
LOGGER.info("excuteAsync:\n{}", future.get());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 卡密下单
|
|
||||||
*
|
|
||||||
* @throws Exception
|
|
||||||
*/
|
|
||||||
public static void cardOrderAddTest(FuLuConfigureDTO fuLuConfigureDTO, Integer productId, Integer buyNum,String orderSn) throws Exception {
|
|
||||||
LOGGER.info("\n卡密下单{}", repeat("=", 100));
|
|
||||||
DefaultOpenApiClient client =
|
|
||||||
new DefaultOpenApiClient(URL, fuLuConfigureDTO.getAppMerchantKey(), fuLuConfigureDTO.getAppSecretKey(), MethodConst.OPEN_API_CARD_ORDER_ADD);
|
|
||||||
InputCardOrderDto dto = new InputCardOrderDto();
|
|
||||||
dto.setProductId(productId);
|
|
||||||
dto.setCustomerOrderNo(orderSn);
|
|
||||||
dto.setBuyNum(buyNum);
|
|
||||||
|
|
||||||
client.setBizObject(dto);
|
|
||||||
LOGGER.info("excute:\n{}\n{}", client.excute(), repeat("-", 100));
|
|
||||||
dto.setCustomerOrderNo(UUID.randomUUID().toString());
|
|
||||||
waitFor(client.excuteAsync());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 直充下单
|
|
||||||
*
|
|
||||||
* @throws Exception
|
|
||||||
*/
|
|
||||||
public static void directOrderAddTest(FuLuConfigureDTO fuLuConfigureDTO, Integer productId, Integer buyNum,String qrCode,String orderSn) throws Exception {
|
|
||||||
LOGGER.info("\n直充下单{}", repeat("=", 100));
|
|
||||||
DefaultOpenApiClient client =
|
|
||||||
new DefaultOpenApiClient(URL, fuLuConfigureDTO.getAppMerchantKey(), fuLuConfigureDTO.getAppSecretKey(), MethodConst.OPEN_API_DIRECT_ORDER_ADD);
|
|
||||||
InputDirectOrderDto dto = new InputDirectOrderDto();
|
|
||||||
dto.setProductId(productId);
|
|
||||||
dto.setBuyNum(buyNum);
|
|
||||||
client.setBizObject(dto);
|
|
||||||
int count = 1;
|
|
||||||
|
|
||||||
for (String chargeAccount : Arrays.asList(qrCode)) {
|
|
||||||
dto.setChargeAccount(chargeAccount);
|
|
||||||
dto.setCustomerOrderNo(orderSn);
|
|
||||||
|
|
||||||
LOGGER.info("excute:\n{}\n{}", client.excute(), repeat("-", 100));
|
|
||||||
if (count++ >= 3) {
|
|
||||||
waitFor(client.excuteAsync());
|
|
||||||
} else {
|
|
||||||
LOGGER.info("excuteAsync:\n{}\n{}", client.excuteAsync().get(), repeat("-", 100));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 手机号归属地
|
|
||||||
*
|
|
||||||
* @throws Exception
|
|
||||||
*/
|
|
||||||
public void matchPhoneProducGetTest(FuLuConfigureDTO fuLuConfigureDTO) throws Exception {
|
|
||||||
LOGGER.info("\n手机号归属地{}", repeat("=", 100));
|
|
||||||
DefaultOpenApiClient client = new DefaultOpenApiClient(URL, fuLuConfigureDTO.getAppMerchantKey(), fuLuConfigureDTO.getAppSecretKey(), MethodConst.OPEN_API_CHECK_PHONE);
|
|
||||||
InputMatchPhoneProductListDto dto = new InputMatchPhoneProductListDto();
|
|
||||||
dto.setFaceValue(50D);
|
|
||||||
|
|
||||||
int count = 1;
|
|
||||||
for (String phone : Arrays.asList("15972368779", "13971553804")) {
|
|
||||||
dto.setPhone(phone);
|
|
||||||
|
|
||||||
client.setBizObject(dto);
|
|
||||||
|
|
||||||
LOGGER.info("excute:\n{}\n{}", client.excute(), repeat("-", 100));
|
|
||||||
if (count++ >= 2) {
|
|
||||||
waitFor(client.excuteAsync());
|
|
||||||
} else {
|
|
||||||
LOGGER.info("excuteAsync:\n{}\n{}", client.excuteAsync().get(), repeat("-", 100));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 订单查单
|
|
||||||
*
|
|
||||||
* @throws Exception
|
|
||||||
*/
|
|
||||||
public void orderInfoGetTest(FuLuConfigureDTO fuLuConfigureDTO) throws Exception {
|
|
||||||
LOGGER.info("\n订单查单{}", repeat("=", 100));
|
|
||||||
DefaultOpenApiClient client = new DefaultOpenApiClient(URL, fuLuConfigureDTO.getAppMerchantKey(), fuLuConfigureDTO.getAppSecretKey(), MethodConst.OPEN_API_ORDER_GET);
|
|
||||||
InputOrderGetDto dto = new InputOrderGetDto();
|
|
||||||
client.setBizObject(dto);
|
|
||||||
int count = 1;
|
|
||||||
|
|
||||||
for (String customerOrderNo : Arrays
|
|
||||||
.asList("0d19f8e4-5af3-490d-a8d8-47fd457da7de", "31b6b96b-a21e-4bc4-bc0c-6e77a2ffb698")) {
|
|
||||||
dto.setCustomerOrderNo(customerOrderNo);
|
|
||||||
|
|
||||||
LOGGER.info("excute:\n{}\n{}", client.excute(), repeat("-", 100));
|
|
||||||
if (count++ >= 2) {
|
|
||||||
Future<String> future = client.excuteAsync();
|
|
||||||
waitFor(future);
|
|
||||||
Map<String, String> result = JSONUtil.fromJSON(future.get(), new TypeToken<Map>() {
|
|
||||||
});
|
|
||||||
Map<String, Object> resultMap = JSONUtil.fromJSON(result.get("result"), new TypeToken<Map<String, Object>>() {
|
|
||||||
});
|
|
||||||
|
|
||||||
List<Map<String, String>> cardList = (List<Map<String, String>>) resultMap.get("cards");
|
|
||||||
StringBuilder decodeStr = new StringBuilder();
|
|
||||||
for (Map<String, String> map : cardList) {
|
|
||||||
decodeStr.append("card_number:").append(map.get("card_number")).append(";desc_card_number:")
|
|
||||||
.append(CardUtil.cardDecode(map.get("card_number"), SYS_SECRET.getBytes("UTF-8")));
|
|
||||||
decodeStr.append(" card_pwd:").append(map.get("card_pwd")).append(";card_pwd:")
|
|
||||||
.append(CardUtil.cardDecode(map.get("card_pwd"), SYS_SECRET.getBytes("UTF-8")));
|
|
||||||
decodeStr.append("\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
System.out.println(decodeStr.toString());
|
|
||||||
System.out.println(CardUtil.cardEncode("CD10002502019061217430016421", SYS_SECRET.getBytes("UTF-8")));
|
|
||||||
} else {
|
|
||||||
LOGGER.info("excuteAsync:\n{}\n{}", client.excuteAsync().get(), repeat("-", 100));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 话费下单
|
|
||||||
*
|
|
||||||
* @throws Exception
|
|
||||||
*/
|
|
||||||
public void phoneOrderAddTest(FuLuConfigureDTO fuLuConfigureDTO) throws Exception {
|
|
||||||
LOGGER.info("\n话费下单{}", repeat("=", 100));
|
|
||||||
DefaultOpenApiClient client =
|
|
||||||
new DefaultOpenApiClient(URL, fuLuConfigureDTO.getAppMerchantKey(), fuLuConfigureDTO.getAppSecretKey(), MethodConst.OPEN_API_PHONE_ORDER_ADD);
|
|
||||||
InputPhoneOrderDto dto = new InputPhoneOrderDto();
|
|
||||||
dto.setChargeValue(Double.valueOf(50));
|
|
||||||
int count = 1;
|
|
||||||
|
|
||||||
for (String chargePhone : Arrays.asList("15972368779", "13971553804")) {
|
|
||||||
dto.setCustomerOrderNo(UUID.randomUUID().toString());
|
|
||||||
dto.setChargePhone(chargePhone);
|
|
||||||
client.setBizObject(dto);
|
|
||||||
|
|
||||||
LOGGER.info("excute:\n{}\n{}", client.excute(), repeat("-", 100));
|
|
||||||
dto.setCustomerOrderNo(UUID.randomUUID().toString());
|
|
||||||
if (count++ >= 2) {
|
|
||||||
waitFor(client.excuteAsync());
|
|
||||||
} else {
|
|
||||||
LOGGER.info("excuteAsync:\n{}\n{}", client.excuteAsync().get(), repeat("-", 100));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获得商品信息
|
|
||||||
*
|
|
||||||
* @throws Exception
|
|
||||||
*/
|
|
||||||
public static Map<String, Object> productInfoGetTest(FuLuConfigureDTO fuLuConfigureDTO,String productIdS) throws Exception {
|
|
||||||
LOGGER.info("\n获得商品信息{}", repeat("=", 100));
|
|
||||||
DefaultOpenApiClient client = new DefaultOpenApiClient(URL, fuLuConfigureDTO.getAppMerchantKey(), fuLuConfigureDTO.getAppSecretKey(), MethodConst.OPEN_API_GOODS_GET);
|
|
||||||
InputProductDto dto = new InputProductDto();
|
|
||||||
int count = 1;
|
|
||||||
Map<String, Object> maps = new HashMap();
|
|
||||||
for (String productId : Arrays.asList(productIdS)) {
|
|
||||||
dto.setProductId(productId);
|
|
||||||
client.setBizObject(dto);
|
|
||||||
maps = (Map) JSON.parse(client.excute());
|
|
||||||
LOGGER.info("excute:\n{}\n{}", client.excute(), repeat("-", 100));
|
|
||||||
if (count++ >= 10) {
|
|
||||||
waitFor(client.excuteAsync());
|
|
||||||
} else {
|
|
||||||
LOGGER.info("excuteAsync:\n{}\n{}", client.excuteAsync().get(), repeat("-", 100));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return maps;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获得商品模板信息
|
|
||||||
*
|
|
||||||
* @throws Exception
|
|
||||||
*/
|
|
||||||
public void productTemplateGetTest(FuLuConfigureDTO fuLuConfigureDTO) throws Exception {
|
|
||||||
LOGGER.info("\n获得商品模板信息{}", repeat("=", 100));
|
|
||||||
DefaultOpenApiClient client =
|
|
||||||
new DefaultOpenApiClient(URL, fuLuConfigureDTO.getAppMerchantKey(), fuLuConfigureDTO.getAppSecretKey(), MethodConst.OPEN_API_GOODS_TEMPLATE_GET);
|
|
||||||
InputProductTemplateDto dto = new InputProductTemplateDto();
|
|
||||||
dto.setTemplateId("e1dac0ea-dc86-4c9d-a778-c9e19203ecb8");
|
|
||||||
client.setBizObject(dto);
|
|
||||||
LOGGER.info("excute:\n{}\n{}", client.excute(), repeat("-", 100));
|
|
||||||
waitFor(client.excuteAsync());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 流量下单
|
|
||||||
*
|
|
||||||
* @throws Exception
|
|
||||||
*/
|
|
||||||
public void trafficOrderAddTest(FuLuConfigureDTO fuLuConfigureDTO) throws Exception {
|
|
||||||
LOGGER.info("\n流量下单{}", repeat("=", 100));
|
|
||||||
DefaultOpenApiClient client =
|
|
||||||
new DefaultOpenApiClient(URL, fuLuConfigureDTO.getAppMerchantKey(), fuLuConfigureDTO.getAppSecretKey(), MethodConst.OPEN_API_TRAFFIC_ORDER_ADD);
|
|
||||||
InputTrafficOrderDto dto = new InputTrafficOrderDto();
|
|
||||||
dto.setChargeValue(Double.valueOf(1024));
|
|
||||||
dto.setPacketKind(4);
|
|
||||||
|
|
||||||
int count = 1;
|
|
||||||
for (String chargePhone : Arrays.asList("15972368779", "13971553804")) {
|
|
||||||
client.setBizObject(dto);
|
|
||||||
dto.setChargePhone(chargePhone);
|
|
||||||
dto.setCustomerOrderNo(UUID.randomUUID().toString());
|
|
||||||
|
|
||||||
LOGGER.info("excute:\n{}\n{}", client.excute(), repeat("-", 100));
|
|
||||||
dto.setCustomerOrderNo(UUID.randomUUID().toString());
|
|
||||||
if (count++ >= 2) {
|
|
||||||
waitFor(client.excuteAsync());
|
|
||||||
} else {
|
|
||||||
LOGGER.info("excuteAsync:\n{}\n{}", client.excuteAsync().get(), repeat("-", 100));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 用户信息
|
|
||||||
*
|
|
||||||
* @throws Exception
|
|
||||||
*/
|
|
||||||
public static void userInfoGetTest(FuLuConfigureDTO fuLuConfigureDTO) throws Exception {
|
|
||||||
LOGGER.info("\n用户信息{}", repeat("=", 100));
|
|
||||||
DefaultOpenApiClient client =
|
|
||||||
new DefaultOpenApiClient(URL, fuLuConfigureDTO.getAppMerchantKey(), fuLuConfigureDTO.getAppSecretKey(), MethodConst.OPEN_API_USER_INFO_GET);
|
|
||||||
InputUserDto dto = new InputUserDto();
|
|
||||||
client.setBizObject(dto);
|
|
||||||
|
|
||||||
LOGGER.info("excute:\n{}\n{}", client.excute(), repeat("-", 100));
|
|
||||||
waitFor(client.excuteAsync());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 用户信息:高并发场景
|
|
||||||
*
|
|
||||||
* @throws Exception
|
|
||||||
*/
|
|
||||||
public static void userInfoGetTest2(FuLuConfigureDTO fuLuConfigureDTO) throws Exception {
|
|
||||||
LOGGER.info("\n用户信息:高并发场景{}", repeat("=", 100));
|
|
||||||
Executor executor = Executors.newCachedThreadPool();
|
|
||||||
|
|
||||||
final int count = 10;
|
|
||||||
final CountDownLatch downLatch = new CountDownLatch(count);
|
|
||||||
|
|
||||||
for (int i = 0; i < count; ++i) {
|
|
||||||
executor.execute(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
try {
|
|
||||||
String name = Thread.currentThread().getName();
|
|
||||||
LOGGER.info("\n线程名:{}{}", name, repeat("+", 100));
|
|
||||||
|
|
||||||
DefaultOpenApiClient client =
|
|
||||||
new DefaultOpenApiClient(URL, fuLuConfigureDTO.getAppMerchantKey(), fuLuConfigureDTO.getAppSecretKey(), MethodConst.OPEN_API_USER_INFO_GET);
|
|
||||||
InputUserDto dto = new InputUserDto();
|
|
||||||
client.setBizObject(dto);
|
|
||||||
|
|
||||||
LOGGER.info("\n线程名:{}\n{}\n{}", name, client.excute(), repeat("+", 100));
|
|
||||||
waitFor(client.excuteAsync());
|
|
||||||
} catch (Exception ex) {
|
|
||||||
LOGGER.error(ex.getMessage(), ex);
|
|
||||||
} finally {
|
|
||||||
downLatch.countDown();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
downLatch.await();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* 获得商品信息列表
|
|
||||||
*
|
|
||||||
* @throws Exception
|
|
||||||
*/
|
|
||||||
public static String getGoodsInfoList(FuLuConfigureDTO fuLuConfigureDTO) throws Exception {
|
|
||||||
LOGGER.info("\n获得商品信息{}", repeat("=", 100));
|
|
||||||
DefaultOpenApiClient client = new DefaultOpenApiClient(URL, fuLuConfigureDTO.getAppMerchantKey(), fuLuConfigureDTO.getAppSecretKey(), MethodConst.OPEN_API_GOODS_LIST);
|
|
||||||
InputProductDto dto = new InputProductDto();
|
|
||||||
client.setBizObject(dto);
|
|
||||||
return client.excute().toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
try {
|
|
||||||
// productInfoGetTest();
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,159 +0,0 @@
|
|||||||
package cn.lili.common.fulu.model;
|
|
||||||
|
|
||||||
import cn.lili.common.fulu.core.utils.DateFormatUtil;
|
|
||||||
import cn.lili.common.fulu.core.utils.JSONUtil;
|
|
||||||
import com.google.gson.annotations.SerializedName;
|
|
||||||
import com.google.gson.reflect.TypeToken;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Auther: chenYing
|
|
||||||
* @Date: 2019/8/19 0019 10:49
|
|
||||||
*/
|
|
||||||
public class CommonRequest implements Serializable {
|
|
||||||
private static final long serialVersionUID = 2L;
|
|
||||||
|
|
||||||
@SerializedName(value = "app_auth_token")
|
|
||||||
private String appAuthToken = "";
|
|
||||||
@SerializedName(value = "app_key")
|
|
||||||
private String appKey;
|
|
||||||
@SerializedName(value = "biz_content")
|
|
||||||
private String bizContent = "{}";
|
|
||||||
private transient Map<String, Object> bizContentMap = Collections.emptyMap();
|
|
||||||
private String charset;
|
|
||||||
private String format;
|
|
||||||
private String method;
|
|
||||||
private String sign;
|
|
||||||
@SerializedName(value = "sign_type")
|
|
||||||
private String signType;
|
|
||||||
private String timestamp;
|
|
||||||
private String version;
|
|
||||||
|
|
||||||
public CommonRequest() {
|
|
||||||
format = "json";
|
|
||||||
version = "2.0";
|
|
||||||
charset = "utf-8";
|
|
||||||
signType = "md5";
|
|
||||||
// timestamp = "2019-08-20 13:59:38";
|
|
||||||
timestamp = DateFormatUtil.currentDateTime();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public String getAppAuthToken() {
|
|
||||||
return appAuthToken;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAppAuthToken(String appAuthToken) {
|
|
||||||
this.appAuthToken = appAuthToken;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getAppKey() {
|
|
||||||
return appKey;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAppKey(String appKey) {
|
|
||||||
this.appKey = appKey;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getBizContent() {
|
|
||||||
if (!bizContentMap.isEmpty()) {
|
|
||||||
bizContent = JSONUtil.toJSON(bizContentMap);
|
|
||||||
}
|
|
||||||
return bizContent;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 直接将变量以json格式保存
|
|
||||||
*
|
|
||||||
* @param bizContent bizContent
|
|
||||||
*/
|
|
||||||
public void setBizContent(String bizContent) {
|
|
||||||
if (bizContent != null && !"".equals(bizContent.trim())) {
|
|
||||||
Map<String, Object> dataMap = JSONUtil.fromJSON(bizContent, new TypeToken<Map<String, Object>>() {
|
|
||||||
});
|
|
||||||
|
|
||||||
if (bizContentMap.isEmpty()) {
|
|
||||||
bizContentMap = new HashMap<String, Object>();
|
|
||||||
}
|
|
||||||
bizContentMap.putAll(dataMap);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCharset() {
|
|
||||||
return charset;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCharset(String charset) {
|
|
||||||
this.charset = charset;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getFormat() {
|
|
||||||
return format;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFormat(String format) {
|
|
||||||
this.format = format;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getMethod() {
|
|
||||||
return method;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMethod(String method) {
|
|
||||||
this.method = method;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getSign() {
|
|
||||||
return sign;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSign(String sign) {
|
|
||||||
this.sign = sign;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getSignType() {
|
|
||||||
return signType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSignType(String signType) {
|
|
||||||
this.signType = signType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getTimestamp() {
|
|
||||||
return timestamp;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTimestamp(String timestamp) {
|
|
||||||
this.timestamp = timestamp;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getVersion() {
|
|
||||||
return version;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setVersion(String version) {
|
|
||||||
this.version = version;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 以key:value形式保存,程序会转换为json格式
|
|
||||||
*
|
|
||||||
* @param key key
|
|
||||||
* @param value value
|
|
||||||
*/
|
|
||||||
public void setBizContent(String key, Object value) {
|
|
||||||
if (bizContentMap.isEmpty()) {
|
|
||||||
bizContentMap = new HashMap<String, Object>();
|
|
||||||
}
|
|
||||||
bizContentMap.put(key, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected Object getBizContentValue(String key) {
|
|
||||||
return bizContentMap.get(key);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,56 +0,0 @@
|
|||||||
package cn.lili.common.fulu.model;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 卡密订单input dto
|
|
||||||
*
|
|
||||||
* @Auther: chenYing
|
|
||||||
* @Date: 2019/8/19 0019 15:35
|
|
||||||
*/
|
|
||||||
public class InputCardOrderDto extends CommonRequest {
|
|
||||||
public InputCardOrderDto() {
|
|
||||||
super();
|
|
||||||
setMethod("fulu.order.card.add");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 购买数量
|
|
||||||
*
|
|
||||||
* @return Integer
|
|
||||||
*/
|
|
||||||
public Integer getBuyNum() {
|
|
||||||
Object value = getBizContentValue("buy_num");
|
|
||||||
return value != null ? Integer.valueOf(value.toString()) : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setBuyNum(Integer buyNum) {
|
|
||||||
setBizContent("buy_num", buyNum);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 外部订单号
|
|
||||||
*
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
public String getCustomerOrderNo() {
|
|
||||||
Object value = getBizContentValue("customer_order_no");
|
|
||||||
return value != null ? String.valueOf(value) : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCustomerOrderNo(String customerOrderNo) {
|
|
||||||
setBizContent("customer_order_no", customerOrderNo);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 商品编号
|
|
||||||
*
|
|
||||||
* @return Integer
|
|
||||||
*/
|
|
||||||
public Integer getProductId() {
|
|
||||||
Object value = getBizContentValue("product_id");
|
|
||||||
return value != null ? Integer.valueOf(value.toString()) : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setProductId(Integer productId) {
|
|
||||||
setBizContent("product_id", productId);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,213 +0,0 @@
|
|||||||
package cn.lili.common.fulu.model;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 直充商品订单input dto
|
|
||||||
*
|
|
||||||
* @Auther: chenYing
|
|
||||||
* @Date: 2019/8/19 0019 15:39
|
|
||||||
*/
|
|
||||||
public class InputDirectOrderDto extends CommonRequest {
|
|
||||||
|
|
||||||
public InputDirectOrderDto() {
|
|
||||||
super();
|
|
||||||
setMethod("fulu.order.direct.add");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 购买数量
|
|
||||||
*
|
|
||||||
* @return Integer
|
|
||||||
*/
|
|
||||||
public Integer getBuyNum() {
|
|
||||||
Object value = getBizContentValue("buy_num");
|
|
||||||
return value != null ? Integer.valueOf(value.toString()) : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setBuyNum(Integer buyNum) {
|
|
||||||
setBizContent("buy_num", buyNum);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 充值账号
|
|
||||||
*
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
public String getChargeAccount() {
|
|
||||||
Object value = getBizContentValue("charge_account");
|
|
||||||
return value != null ? String.valueOf(value) : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setChargeAccount(String chargeAccount) {
|
|
||||||
setBizContent("charge_account", chargeAccount);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 充值游戏名称
|
|
||||||
*
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
public String getChargeGameName() {
|
|
||||||
Object value = getBizContentValue("charge_game_name");
|
|
||||||
return value != null ? String.valueOf(value) : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setChargeGameName(String chargeGameName) {
|
|
||||||
setBizContent("charge_game_name", chargeGameName);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 充值游戏区
|
|
||||||
*
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
public String getChargeGameRegion() {
|
|
||||||
Object value = getBizContentValue("charge_game_region");
|
|
||||||
return value != null ? String.valueOf(value) : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setChargeGameRegion(String chargeGameRegion) {
|
|
||||||
setBizContent("charge_game_region", chargeGameRegion);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 充值游戏角色
|
|
||||||
*
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
public String getChargeGameRole() {
|
|
||||||
Object value = getBizContentValue("charge_game_role");
|
|
||||||
return value != null ? String.valueOf(value) : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setChargeGameRole(String chargeGameRole) {
|
|
||||||
setBizContent("charge_game_role", chargeGameRole);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 充值游戏服
|
|
||||||
*
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
public String getChargeGameSrv() {
|
|
||||||
Object value = getBizContentValue("charge_game_srv");
|
|
||||||
return value != null ? String.valueOf(value) : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setChargeGameSrv(String chargeGameSrv) {
|
|
||||||
setBizContent("charge_game_srv", chargeGameSrv);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 下单真实Ip,区域商品要传
|
|
||||||
*
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
public String getChargeIp() {
|
|
||||||
Object value = getBizContentValue("charge_ip");
|
|
||||||
return value != null ? String.valueOf(value) : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setChargeIp(String chargeIp) {
|
|
||||||
setBizContent("charge_ip", chargeIp);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 充值密码,部分游戏类要传
|
|
||||||
*
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
public String getChargePassword() {
|
|
||||||
Object value = getBizContentValue("charge_password");
|
|
||||||
return value != null ? String.valueOf(value) : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setChargePassword(String chargePassword) {
|
|
||||||
setBizContent("charge_password", chargePassword);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 充值类型
|
|
||||||
*
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
public String getChargeType() {
|
|
||||||
Object value = getBizContentValue("charge_type");
|
|
||||||
return value != null ? String.valueOf(value) : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setChargeType(String chargeType) {
|
|
||||||
setBizContent("charge_type", chargeType);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 联系QQ
|
|
||||||
*
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
public String getContactQq() {
|
|
||||||
Object value = getBizContentValue("contact_qq");
|
|
||||||
return value != null ? String.valueOf(value) : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setContactQq(String contactQq) {
|
|
||||||
setBizContent("contact_qq", contactQq);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 联系电话
|
|
||||||
*
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
public String getContactTel() {
|
|
||||||
Object value = getBizContentValue("contact_tel");
|
|
||||||
return value != null ? String.valueOf(value) : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setContactTel(String contactTel) {
|
|
||||||
setBizContent("contact_tel", contactTel);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 外部订单号
|
|
||||||
*
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
public String getCustomerOrderNo() {
|
|
||||||
Object value = getBizContentValue("customer_order_no");
|
|
||||||
return value != null ? String.valueOf(value) : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCustomerOrderNo(String customerOrderNo) {
|
|
||||||
setBizContent("customer_order_no", customerOrderNo);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 商品编号
|
|
||||||
*
|
|
||||||
* @return Integer
|
|
||||||
*/
|
|
||||||
public Integer getProductId() {
|
|
||||||
Object value = getBizContentValue("product_id");
|
|
||||||
return value != null ? Integer.valueOf(value.toString()) : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setProductId(Integer productId) {
|
|
||||||
setBizContent("product_id", productId);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 剩余数量
|
|
||||||
*
|
|
||||||
* @return Integer
|
|
||||||
*/
|
|
||||||
public Integer getRemainingNumber() {
|
|
||||||
Object value = getBizContentValue("remaining_number");
|
|
||||||
return value != null ? Integer.valueOf(value.toString()) : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRemainingNumber(Integer remainingNumber) {
|
|
||||||
setBizContent("remaining_number", remainingNumber);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -1,44 +0,0 @@
|
|||||||
package cn.lili.common.fulu.model;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 手机号归属地input dto
|
|
||||||
*
|
|
||||||
* @Auther: chenYing
|
|
||||||
* @Date: 2019/8/19 0019 16:08
|
|
||||||
*/
|
|
||||||
public class InputMatchPhoneProductListDto extends CommonRequest {
|
|
||||||
|
|
||||||
public InputMatchPhoneProductListDto() {
|
|
||||||
super();
|
|
||||||
setMethod("fulu.mobile.info.get");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 面值
|
|
||||||
*
|
|
||||||
* @return Double
|
|
||||||
*/
|
|
||||||
public Double getFaceValue() {
|
|
||||||
Object value = getBizContentValue("face_value");
|
|
||||||
return value != null ? Double.valueOf(value.toString()) : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFaceValue(Double faceValue) {
|
|
||||||
setBizContent("face_value", faceValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 手机号
|
|
||||||
*
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
public String getPhone() {
|
|
||||||
Object value = getBizContentValue("phone");
|
|
||||||
return value != null ? String.valueOf(value) : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPhone(String phone) {
|
|
||||||
setBizContent("phone", phone);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,31 +0,0 @@
|
|||||||
package cn.lili.common.fulu.model;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 订单查单input dto
|
|
||||||
*
|
|
||||||
* @Auther: chenYing
|
|
||||||
* @Date: 2019/8/19 0019 15:23
|
|
||||||
*/
|
|
||||||
public class InputOrderGetDto extends CommonRequest {
|
|
||||||
|
|
||||||
public InputOrderGetDto() {
|
|
||||||
super();
|
|
||||||
setMethod("fulu.order.info.get");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 外部订单号
|
|
||||||
*
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
public String getCustomerOrderNo() {
|
|
||||||
Object value = getBizContentValue("customer_order_no");
|
|
||||||
return value != null ? String.valueOf(value) : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCustomerOrderNo(String customerOrderNo) {
|
|
||||||
setBizContent("customer_order_no", customerOrderNo);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -1,57 +0,0 @@
|
|||||||
package cn.lili.common.fulu.model;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 话费订单input dto
|
|
||||||
*
|
|
||||||
* @Auther: chenYing
|
|
||||||
* @Date: 2019/8/19 0019 15:31
|
|
||||||
*/
|
|
||||||
public class InputPhoneOrderDto extends CommonRequest {
|
|
||||||
|
|
||||||
public InputPhoneOrderDto() {
|
|
||||||
super();
|
|
||||||
setMethod("fulu.order.mobile.add");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 充值手机号
|
|
||||||
*
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
public String getChargePhone() {
|
|
||||||
Object value = getBizContentValue("charge_phone");
|
|
||||||
return value != null ? String.valueOf(value) : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setChargePhone(String chargePhone) {
|
|
||||||
setBizContent("charge_phone", chargePhone);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 充值数额
|
|
||||||
*
|
|
||||||
* @return Double
|
|
||||||
*/
|
|
||||||
public Double getChargeValue() {
|
|
||||||
Object value = getBizContentValue("charge_value");
|
|
||||||
return value != null ? Double.valueOf(value.toString()) : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setChargeValue(Double chargeValue) {
|
|
||||||
setBizContent("charge_value", chargeValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 外部订单号
|
|
||||||
*
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
public String getCustomerOrderNo() {
|
|
||||||
Object value = getBizContentValue("customer_order_no");
|
|
||||||
return value != null ? String.valueOf(value) : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCustomerOrderNo(String customerOrderNo) {
|
|
||||||
setBizContent("customer_order_no", customerOrderNo);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,30 +0,0 @@
|
|||||||
package cn.lili.common.fulu.model;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 商品信息input dto
|
|
||||||
*
|
|
||||||
* @Auther: chenYing
|
|
||||||
* @Date: 2019/8/19 0019 16:04
|
|
||||||
*/
|
|
||||||
public class InputProductDto extends CommonRequest {
|
|
||||||
|
|
||||||
public InputProductDto() {
|
|
||||||
super();
|
|
||||||
setMethod("fulu.goods.info.get");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 商品编号
|
|
||||||
*
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
public String getProductId() {
|
|
||||||
Object value = getBizContentValue("product_id");
|
|
||||||
return value != null ? String.valueOf(value) : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setProductId(String productId) {
|
|
||||||
setBizContent("product_id", productId);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,29 +0,0 @@
|
|||||||
package cn.lili.common.fulu.model;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 商品模板信息input dto
|
|
||||||
*
|
|
||||||
* @Auther: chenYing
|
|
||||||
* @Date: 2019/8/19 0019 16:01
|
|
||||||
*/
|
|
||||||
public class InputProductTemplateDto extends CommonRequest {
|
|
||||||
|
|
||||||
public InputProductTemplateDto() {
|
|
||||||
super();
|
|
||||||
setMethod("fulu.goods.template.get");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 商品模板编号
|
|
||||||
*
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
public String getTemplateId() {
|
|
||||||
Object value = getBizContentValue("template_id");
|
|
||||||
return value != null ? String.valueOf(value) : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTemplateId(String templateId) {
|
|
||||||
setBizContent("template_id", templateId);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,72 +0,0 @@
|
|||||||
package cn.lili.common.fulu.model;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 流量订单input dto
|
|
||||||
*
|
|
||||||
* @Auther: chenYing
|
|
||||||
* @Date: 2019/8/19 0019 13:50
|
|
||||||
*/
|
|
||||||
public class InputTrafficOrderDto extends CommonRequest {
|
|
||||||
|
|
||||||
public InputTrafficOrderDto() {
|
|
||||||
super();
|
|
||||||
setMethod("fulu.order.data.add");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 充值手机号
|
|
||||||
*
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
public String getChargePhone() {
|
|
||||||
Object value = getBizContentValue("charge_phone");
|
|
||||||
return value != null ? String.valueOf(value) : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setChargePhone(String chargePhone) {
|
|
||||||
setBizContent("charge_phone", chargePhone);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 充值数额(M)
|
|
||||||
*
|
|
||||||
* @return Double
|
|
||||||
*/
|
|
||||||
public Double getChargeValue() {
|
|
||||||
Object value = getBizContentValue("charge_value");
|
|
||||||
return value != null ? Double.valueOf(value.toString()) : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setChargeValue(Double chargeValue) {
|
|
||||||
setBizContent("charge_value", chargeValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 外部订单号
|
|
||||||
*
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
public String getCustomerOrderNo() {
|
|
||||||
Object value = getBizContentValue("customer_order_no");
|
|
||||||
return value != null ? String.valueOf(value) : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCustomerOrderNo(String customerOrderNo) {
|
|
||||||
setBizContent("customer_order_no", customerOrderNo);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 流量性质 1:小时 2:日 3:7天 4:月 5:季度 6:半年 7:年
|
|
||||||
*
|
|
||||||
* @return Integer
|
|
||||||
*/
|
|
||||||
public Integer getPacketKind() {
|
|
||||||
Object value = getBizContentValue("packet_kind");
|
|
||||||
return value != null ? Integer.valueOf(value.toString()) : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPacketKind(Integer packetKind) {
|
|
||||||
setBizContent("packet_kind", packetKind);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
package cn.lili.common.fulu.model;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 用户信息input dto
|
|
||||||
*
|
|
||||||
* @Auther: chenYing
|
|
||||||
* @Date: 2019/8/19 0019 16:06
|
|
||||||
*/
|
|
||||||
public class InputUserDto extends CommonRequest {
|
|
||||||
|
|
||||||
public InputUserDto() {
|
|
||||||
super();
|
|
||||||
setMethod("fulu.user.info.get");
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,46 +0,0 @@
|
|||||||
package cn.lili.common.fulu.model.response;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 响应对象
|
|
||||||
*
|
|
||||||
* @Auther: chenYing
|
|
||||||
* @Date: 2019/8/19 0019 15:06
|
|
||||||
*/
|
|
||||||
public class DefaultClientResponse {
|
|
||||||
private String code;
|
|
||||||
private String message;
|
|
||||||
private String result;
|
|
||||||
private String sign;
|
|
||||||
|
|
||||||
public String getCode() {
|
|
||||||
return code;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCode(String code) {
|
|
||||||
this.code = code;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getMessage() {
|
|
||||||
return message;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMessage(String message) {
|
|
||||||
this.message = message;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getResult() {
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setResult(String result) {
|
|
||||||
this.result = result;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getSign() {
|
|
||||||
return sign;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSign(String sign) {
|
|
||||||
this.sign = sign;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,129 +0,0 @@
|
|||||||
package cn.lili.common.fulu.sdk;
|
|
||||||
|
|
||||||
import cn.lili.common.fulu.core.http.FuluClient;
|
|
||||||
import cn.lili.common.fulu.core.http.IFuluClient;
|
|
||||||
import cn.lili.common.fulu.core.utils.JSONUtil;
|
|
||||||
import cn.lili.common.fulu.model.CommonRequest;
|
|
||||||
import org.apache.commons.codec.digest.DigestUtils;
|
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.concurrent.Future;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 默认OpenApi客户请求实现
|
|
||||||
*
|
|
||||||
* @Auther: chenYing
|
|
||||||
* @Date: 2019/8/19 0019 16:45
|
|
||||||
*/
|
|
||||||
public class DefaultOpenApiClient implements IDefaultOpenApiClient {
|
|
||||||
/**
|
|
||||||
* 商户AppKey
|
|
||||||
*/
|
|
||||||
private String appKey;
|
|
||||||
/**
|
|
||||||
* 业务参数
|
|
||||||
*/
|
|
||||||
private CommonRequest bizContent;
|
|
||||||
/**
|
|
||||||
* http请求
|
|
||||||
*/
|
|
||||||
private IFuluClient fuluClient;
|
|
||||||
/**
|
|
||||||
* 方法
|
|
||||||
*/
|
|
||||||
private String method;
|
|
||||||
/**
|
|
||||||
* 应用秘钥
|
|
||||||
*/
|
|
||||||
private String sysSecret;
|
|
||||||
|
|
||||||
// public DefaultOpenApiClient(String url, String appKey, String sysSecret) {
|
|
||||||
// this.appKey = appKey;
|
|
||||||
// this.sysSecret = sysSecret;
|
|
||||||
//
|
|
||||||
// if (url == null || "".equals(url.trim())) {
|
|
||||||
// this.fuluClient = new FuluClient();
|
|
||||||
// } else {
|
|
||||||
// this.fuluClient = new FuluClient(url);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 如果url没改变,可以使用这个构造
|
|
||||||
*
|
|
||||||
* @param appKey appKey
|
|
||||||
* @param sysSecret sysSecret
|
|
||||||
*/
|
|
||||||
// public DefaultOpenApiClient(String appKey, String sysSecret) {
|
|
||||||
// this.appKey = appKey;
|
|
||||||
// this.fuluClient = new FuluClient();
|
|
||||||
// this.sysSecret = sysSecret;
|
|
||||||
// }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 使用public void setBizContent(String bizContent)此方法,method不能为空,必填
|
|
||||||
* 或者使用其它构造,调用fulu.sup.open.api.model.CommonRequest的setMethod也可以
|
|
||||||
*
|
|
||||||
* @param url url
|
|
||||||
* @param appKey appKey
|
|
||||||
* @param sysSecret sysSecret
|
|
||||||
* @param method method
|
|
||||||
*/
|
|
||||||
public DefaultOpenApiClient(String url, String appKey, String sysSecret, String method) {
|
|
||||||
this.appKey = appKey;
|
|
||||||
this.sysSecret = sysSecret;
|
|
||||||
this.method = method;
|
|
||||||
|
|
||||||
if (url == null || "".equals(url.trim())) {
|
|
||||||
this.fuluClient = new FuluClient();
|
|
||||||
} else {
|
|
||||||
this.fuluClient = new FuluClient(url);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String excute() {
|
|
||||||
doSign();
|
|
||||||
return fuluClient.send(JSONUtil.toJSON(this.bizContent));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Future<String> excuteAsync() {
|
|
||||||
doSign();
|
|
||||||
return fuluClient.sendAsync(JSONUtil.toJSON(this.bizContent));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setBizContent(String bizContent) {
|
|
||||||
this.bizContent = new CommonRequest();
|
|
||||||
this.bizContent.setBizContent(bizContent);
|
|
||||||
this.bizContent.setAppKey(this.appKey);
|
|
||||||
this.bizContent.setMethod(this.method);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setBizObject(CommonRequest bizModel) {
|
|
||||||
this.bizContent = bizModel;
|
|
||||||
this.bizContent.setAppKey(this.appKey);
|
|
||||||
|
|
||||||
if (method != null && !"".equals(method)) {
|
|
||||||
this.bizContent.setMethod(this.method);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void doSign() {
|
|
||||||
if (bizContent.getMethod() == null || "".equals(bizContent.getMethod().trim())) {
|
|
||||||
throw new RuntimeException("param \"method\" can not blank!");
|
|
||||||
}
|
|
||||||
|
|
||||||
this.bizContent.setSign(null);
|
|
||||||
this.bizContent.getBizContent();
|
|
||||||
String json = JSONUtil.toJSON(this.bizContent);
|
|
||||||
char[] charArray = json.toCharArray();
|
|
||||||
Arrays.sort(charArray);
|
|
||||||
String signStr = new String(charArray);
|
|
||||||
signStr = String.format("%s%s", signStr, sysSecret);
|
|
||||||
this.bizContent.setSign(DigestUtils.md5Hex(signStr));
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,44 +0,0 @@
|
|||||||
package cn.lili.common.fulu.sdk;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
import cn.lili.common.fulu.model.CommonRequest;
|
|
||||||
|
|
||||||
import java.util.concurrent.Future;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 默认OpenApi客户请求接口
|
|
||||||
*
|
|
||||||
* @Auther: chenYing
|
|
||||||
* @Date: 2019/8/19 0019 16:40
|
|
||||||
*/
|
|
||||||
public interface IDefaultOpenApiClient {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 执行请求,同步方法
|
|
||||||
*
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
String excute();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 执行请求,异步方法
|
|
||||||
*
|
|
||||||
* @return Future<String>
|
|
||||||
*/
|
|
||||||
Future<String> excuteAsync();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 设置业务参数
|
|
||||||
*
|
|
||||||
* @param bizContent
|
|
||||||
*/
|
|
||||||
@Deprecated
|
|
||||||
void setBizContent(String bizContent);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 设置业务参数
|
|
||||||
*/
|
|
||||||
void setBizObject(CommonRequest bizModel);
|
|
||||||
|
|
||||||
}
|
|
@ -1,34 +0,0 @@
|
|||||||
package cn.lili.modules.file.plugin;
|
|
||||||
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public interface QiNiuManagerPlugin {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 文件流上传
|
|
||||||
*
|
|
||||||
* @param inputStream
|
|
||||||
* @param key
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
String inputStreamUpload(InputStream inputStream, String key);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 删除文件
|
|
||||||
*
|
|
||||||
* @param key
|
|
||||||
*/
|
|
||||||
void deleteFile(List<String> key);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据原图生成规定尺寸的图片
|
|
||||||
*
|
|
||||||
* @param url 连接
|
|
||||||
* @param width 宽
|
|
||||||
* @param height 高
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
String getUrl(String url, Integer width, Integer height);
|
|
||||||
}
|
|
@ -1,143 +0,0 @@
|
|||||||
package cn.lili.modules.file.plugin.impl;
|
|
||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
|
||||||
import cn.lili.common.enums.ResultCode;
|
|
||||||
import cn.lili.common.exception.ServiceException;
|
|
||||||
import cn.lili.modules.file.plugin.QiNiuManagerPlugin;
|
|
||||||
import cn.lili.modules.system.entity.dos.Setting;
|
|
||||||
import cn.lili.modules.system.entity.dto.OssSetting;
|
|
||||||
import cn.lili.modules.system.entity.enums.SettingEnum;
|
|
||||||
import cn.lili.modules.system.service.SettingService;
|
|
||||||
import com.aliyun.oss.ClientException;
|
|
||||||
import com.aliyun.oss.OSS;
|
|
||||||
import com.aliyun.oss.OSSClientBuilder;
|
|
||||||
import com.aliyun.oss.OSSException;
|
|
||||||
import com.aliyun.oss.model.DeleteObjectsRequest;
|
|
||||||
import com.google.gson.Gson;
|
|
||||||
import com.qiniu.common.QiniuException;
|
|
||||||
import com.qiniu.http.Response;
|
|
||||||
import com.qiniu.storage.BucketManager;
|
|
||||||
import com.qiniu.storage.Configuration;
|
|
||||||
import com.qiniu.storage.UploadManager;
|
|
||||||
import com.qiniu.util.Auth;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 阿里oss 文件操作
|
|
||||||
*
|
|
||||||
* @author Chopper
|
|
||||||
*/
|
|
||||||
|
|
||||||
@Component
|
|
||||||
@Slf4j
|
|
||||||
public class QiNiuFileManagerPlugin implements QiNiuManagerPlugin {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private SettingService settingService;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 下一个初始化配置参数的时间
|
|
||||||
* 这里为了防止多次调用redis,减少与redis的交互时间
|
|
||||||
*/
|
|
||||||
private static Long nextInitSetting;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 暂时设定3分账请求一次设置
|
|
||||||
*/
|
|
||||||
private static final Long INTERVAL = 60 * 3 * 1000L;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 静态设置,最快三分钟更新一次
|
|
||||||
*/
|
|
||||||
private static OssSetting ossSetting;
|
|
||||||
|
|
||||||
private Auth auth;
|
|
||||||
private UploadManager uploadManager;
|
|
||||||
private BucketManager bucketManager;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取oss client
|
|
||||||
*
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
private OSS getQiNiuOssClient() {
|
|
||||||
OssSetting ossSetting = getSetting();
|
|
||||||
|
|
||||||
return new OSSClientBuilder().build(
|
|
||||||
ossSetting.getEndPoint(),
|
|
||||||
ossSetting.getAccessKeyId(),
|
|
||||||
ossSetting.getAccessKeySecret());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取配置
|
|
||||||
*
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
private OssSetting getSetting() {
|
|
||||||
//如果没有配置,或者没有下次刷新时间,或者下次刷新时间小于当前时间,则从redis 更新一次
|
|
||||||
if (ossSetting == null || nextInitSetting == null || nextInitSetting < System.currentTimeMillis()) {
|
|
||||||
Setting setting = settingService.get(SettingEnum.OSS_SETTING.name());
|
|
||||||
if (setting == null || StrUtil.isBlank(setting.getSettingValue())) {
|
|
||||||
throw new ServiceException(ResultCode.OSS_NOT_EXIST);
|
|
||||||
}
|
|
||||||
nextInitSetting = System.currentTimeMillis() + INTERVAL;
|
|
||||||
ossSetting = new Gson().fromJson(setting.getSettingValue(), OssSetting.class);
|
|
||||||
return ossSetting;
|
|
||||||
}
|
|
||||||
return ossSetting;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String inputStreamUpload(InputStream inputStream, String key) {
|
|
||||||
OssSetting ossSetting = getSetting();
|
|
||||||
auth = Auth.create(ossSetting.getAccessKeyId(), ossSetting.getAccessKeySecret());
|
|
||||||
uploadManager = new UploadManager(new Configuration());
|
|
||||||
String upToken = auth.uploadToken(ossSetting.getBucketName());
|
|
||||||
|
|
||||||
try {
|
|
||||||
Response response = uploadManager.put(inputStream, ossSetting.getPicLocation() +"/"+ key, upToken, null, "image/jpg");
|
|
||||||
if (response.statusCode == 200) {
|
|
||||||
return ossSetting.getEndPoint() + "/"+ ossSetting.getPicLocation() + "/" + key;
|
|
||||||
}
|
|
||||||
} catch (QiniuException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void deleteFile(List<String> key) {
|
|
||||||
OssSetting ossSetting = getSetting();
|
|
||||||
if (bucketManager == null) {
|
|
||||||
if (auth == null) {
|
|
||||||
auth = Auth.create(ossSetting.getAccessKeyId(), ossSetting.getAccessKeySecret());
|
|
||||||
}
|
|
||||||
bucketManager = new BucketManager(auth, new Configuration());
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// for (int i = 0; 0 < key.size(); i++) {
|
|
||||||
// try {
|
|
||||||
// bucketManager.delete(ossSetting.getBucketName()+ "/"+ ossSetting.getPicLocation(), key.get(i));
|
|
||||||
// } catch (Exception e) {
|
|
||||||
// e.printStackTrace();
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getUrl(String url, Integer width, Integer height) {
|
|
||||||
//缩略图全路径
|
|
||||||
//返回缩略图全路径
|
|
||||||
return url + "?x-oss-process=style/" + width + "X" + height;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,14 +1,12 @@
|
|||||||
package cn.lili.controller.goods;
|
package cn.lili.controller.goods;
|
||||||
|
|
||||||
import cn.lili.common.enums.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.fulu.core.utils.Test;
|
|
||||||
import cn.lili.common.security.OperationalJudgment;
|
import cn.lili.common.security.OperationalJudgment;
|
||||||
import cn.lili.common.security.context.UserContext;
|
import cn.lili.common.security.context.UserContext;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
import cn.lili.modules.goods.entity.dos.Goods;
|
import cn.lili.modules.goods.entity.dos.Goods;
|
||||||
import cn.lili.modules.goods.entity.dos.GoodsSku;
|
import cn.lili.modules.goods.entity.dos.GoodsSku;
|
||||||
import cn.lili.modules.goods.entity.dto.GoodsOperationDTO;
|
import cn.lili.modules.goods.entity.dto.GoodsOperationDTO;
|
||||||
import cn.lili.modules.goods.entity.dto.GoodsOperationFuLuDTO;
|
|
||||||
import cn.lili.modules.goods.entity.dto.GoodsSearchParams;
|
import cn.lili.modules.goods.entity.dto.GoodsSearchParams;
|
||||||
import cn.lili.modules.goods.entity.dto.GoodsSkuStockDTO;
|
import cn.lili.modules.goods.entity.dto.GoodsSkuStockDTO;
|
||||||
import cn.lili.modules.goods.entity.enums.GoodsStatusEnum;
|
import cn.lili.modules.goods.entity.enums.GoodsStatusEnum;
|
||||||
@ -18,10 +16,6 @@ import cn.lili.modules.goods.entity.vos.StockWarningVO;
|
|||||||
import cn.lili.modules.goods.service.GoodsService;
|
import cn.lili.modules.goods.service.GoodsService;
|
||||||
import cn.lili.modules.goods.service.GoodsSkuService;
|
import cn.lili.modules.goods.service.GoodsSkuService;
|
||||||
import cn.lili.modules.store.entity.dos.StoreDetail;
|
import cn.lili.modules.store.entity.dos.StoreDetail;
|
||||||
import cn.lili.modules.store.entity.dto.FuLuConfigureDTO;
|
|
||||||
import cn.lili.modules.store.service.StoreDetailService;
|
|
||||||
import com.alibaba.fastjson.JSON;
|
|
||||||
import com.alibaba.fastjson.JSONArray;
|
|
||||||
import cn.lili.modules.store.service.StoreDetailService;
|
import cn.lili.modules.store.service.StoreDetailService;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
@ -33,7 +27,6 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import java.util.*;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user