Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
d8bc1387
提交
d8bc1387
authored
11月 29, 2023
作者:
liuhaiquan
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/test' into test
上级
6a9a2f8c
9849f32b
隐藏空白字符变更
内嵌
并排
正在显示
16 个修改的文件
包含
990 行增加
和
101 行删除
+990
-101
.gitignore
.gitignore
+2
-2
IntegralTruckVO.java
.../main/java/com/clx/performance/vo/pc/IntegralTruckVO.java
+2
-2
ISFJ_v2_0_139_16_BAISC_JDK15.jar
performance-web/libs/gm/ISFJ_v2_0_139_16_BAISC_JDK15.jar
+0
-0
netsignapi.jar
performance-web/libs/gm/netsignapi.jar
+0
-0
openBasicSDK-1.7.0.jar
performance-web/libs/openBasicSDK-1.7.0.jar
+0
-0
openBasicSDK-2.1.230630.jar
performance-web/libs/openBasicSDK-2.1.230630.jar
+0
-0
pom.xml
performance-web/pom.xml
+20
-0
TempBankController.java
...m/clx/performance/controller/temp/TempBankController.java
+210
-0
TempYftBankController.java
...lx/performance/controller/temp/TempYftBankController.java
+569
-0
NbBankController.java
...x/performance/controller/thirdparty/NbBankController.java
+68
-0
IntegralTruckServiceImpl.java
...lx/performance/service/impl/IntegralTruckServiceImpl.java
+2
-0
TruckServiceImpl.java
...va/com/clx/performance/service/impl/TruckServiceImpl.java
+1
-1
bank.txt
performance-web/src/main/resources/bank.txt
+2
-0
config-nbbank.json
performance-web/src/main/resources/bank/config-nbbank.json
+32
-0
config.properties
performance-web/src/main/resources/config.properties
+6
-0
logback.xml
performance-web/src/main/resources/logback.xml
+76
-96
没有找到文件。
.gitignore
浏览文件 @
d8bc1387
...
@@ -27,4 +27,5 @@ mvnw.cmd
...
@@ -27,4 +27,5 @@ mvnw.cmd
/nbbuild/
/nbbuild/
/dist/
/dist/
/nbdist/
/nbdist/
/.nb-gradle/
/.nb-gradle/
\ No newline at end of file
/nbsdk/
performance-api/src/main/java/com/clx/performance/vo/pc/IntegralTruckVO.java
浏览文件 @
d8bc1387
...
@@ -64,8 +64,8 @@ public class IntegralTruckVO {
...
@@ -64,8 +64,8 @@ public class IntegralTruckVO {
return
Arrays
.
asList
(
return
Arrays
.
asList
(
new
IntegralItem
(
"运单完成积分"
,
orderChildCompleteIntegral
),
new
IntegralItem
(
"运单完成积分"
,
orderChildCompleteIntegral
),
new
IntegralItem
(
"平台补偿积分"
,
platformCompensationIntegral
),
new
IntegralItem
(
"平台补偿积分"
,
platformCompensationIntegral
),
new
IntegralItem
(
"运单取消
积分
"
,
orderChildCancelIntegral
),
new
IntegralItem
(
"运单取消
扣减
"
,
orderChildCancelIntegral
),
new
IntegralItem
(
"运单超时
积分
"
,
orderChildTimeoutIntegral
),
new
IntegralItem
(
"运单超时
扣减
"
,
orderChildTimeoutIntegral
),
new
IntegralItem
(
"信息上报积分"
,
reportIntegral
)
new
IntegralItem
(
"信息上报积分"
,
reportIntegral
)
);
);
}
}
...
...
performance-web/libs/gm/ISFJ_v2_0_139_16_BAISC_JDK15.jar
0 → 100644
浏览文件 @
d8bc1387
File added
performance-web/libs/gm/netsignapi.jar
0 → 100644
浏览文件 @
d8bc1387
File added
performance-web/libs/openBasicSDK-1.7.0.jar
0 → 100644
浏览文件 @
d8bc1387
File added
performance-web/libs/openBasicSDK-2.1.230630.jar
0 → 100644
浏览文件 @
d8bc1387
File added
performance-web/pom.xml
浏览文件 @
d8bc1387
...
@@ -240,11 +240,31 @@
...
@@ -240,11 +240,31 @@
<artifactId>
log-spring-boot-starter
</artifactId>
<artifactId>
log-spring-boot-starter
</artifactId>
</dependency>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.nbcb.cz</groupId>-->
<!-- <artifactId>openBasicSDK</artifactId>-->
<!-- <version>2.1.230630</version>-->
<!-- </dependency>-->
<!-- <dependency>-->
<!-- <groupId>com.nbcb.cz</groupId>-->
<!-- <artifactId>openBasicSDK</artifactId>-->
<!-- <version>2.1.230630</version>-->
<!-- <scope>system</scope>-->
<!-- <systemPath>${pom.basedir}/libs/openBasicSDK-2.1.230630.jar</systemPath>-->
<!-- </dependency>-->
<dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-data-mongodb
</artifactId>
<artifactId>
spring-boot-starter-data-mongodb
</artifactId>
</dependency>
</dependency>
<dependency>
<groupId>
com.nbopen
</groupId>
<artifactId>
openBasicSDK
</artifactId>
<version>
1.7.0
</version>
<scope>
system
</scope>
<systemPath>
${pom.basedir}/libs/openBasicSDK-1.7.0.jar
</systemPath>
</dependency>
</dependencies>
</dependencies>
...
...
performance-web/src/main/java/com/clx/performance/controller/temp/TempBankController.java
0 → 100644
浏览文件 @
d8bc1387
//package com.clx.performance.controller.temp;
//
//import com.alibaba.fastjson.JSON;
//import com.clx.performance.service.TempService;
//import com.clx.performance.vo.pc.child.OrderChildLineStatisticsVO;
//import com.msl.common.result.Result;
//import com.nbcb.bouncycastle.util.encoders.Base64;
//import com.nbcb.sdk.OpenSDK;
//import com.nbcb.sdk.file.FileUploadRequest;
//import io.swagger.annotations.ApiOperation;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.data.repository.init.ResourceReader;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RequestMethod;
//import org.springframework.web.bind.annotation.RestController;
//
//import java.io.FileOutputStream;
//import java.io.IOException;
//import java.io.InputStream;
//import java.math.BigDecimal;
//import java.util.HashMap;
//
//
///**
// * @Author: aiqingguo
// * @Description: 临时接口
// * @Date: 2023-8-21 12:10:16
// * @Version: 1.0
// */
//@Slf4j
//@RestController
//@RequestMapping(value="/temp/bank")
//public class TempBankController {
//
// @Autowired
// private TempService tempService;
//
// @ApiOperation(value = "test", notes = "<br>By:艾庆国")
// @RequestMapping(value = "/test", method = RequestMethod.POST)
// public Result<OrderChildLineStatisticsVO> test() throws Exception {
//
// bankTest();
//
//
// return Result.ok();
// }
//
// static void bankTest() throws Exception {
// String priKey = "MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQgTt6OadouxxxSDg/0SZdOIBqtnFGKrpwmL+quEUf+hfSgCgYIKoEcz1UBgi2hRANCAAQGHNN2NO7btp+w1248yk98E0asGC8sG0bmIzdom4M0xp3vc4IfXjmZ8omUz4oVcjzAuyMSSpJM6uPLcU1SH4HZ";
//
// InputStream inputStream = TempBankController.class.getClassLoader().getResourceAsStream("config.properties");
// if (inputStream != null) {
// log.info("存在");
//
// OpenSDK.init(inputStream, priKey);
//
//// singleTransfer();
////
//// querySingleTransferResult();
//
//
// unionPayDirectOrder();
//
// }
// else{
// log.info("文件不存在");
// }
//
// }
//
// static String singleTransfer() throws Exception {
//
// HashMap<String, Object> map = new HashMap();
// HashMap<String, Object> data = new HashMap();
// map.put("Data", data);
//
// data.put("custId", "0000112058"); //客户号 必填
// data.put("serialNo", "2023112300000002"); //交易流水号 必填
// data.put("corpCode", "1000"); //单位代码 必填
// data.put("payAcc", "40010122000156763"); //付款账号 必填
// data.put("rcvAcc", "6223160014441539"); //收款账号 必填
//// data.put("rcvBankName", ""); //收款方行名
//// data.put("rcvBankNo", ""); //收款方联行号
// data.put("rcvName", "石佛寺"); //收款户名 必填
// data.put("purpose", "001-支付货款"); //用途 必填
//// data.put("remark", ""); //备注
//// data.put("isSubscribe", "0"); //是否预约支付
//// data.put("difBank", "1"); //是否同行转账
//// data.put("areaSign", "1"); //同城异地标识
// data.put("amt", new BigDecimal("100")); //金额 必填
//// data.put("wishPayTime", ""); //预约转账时间
//// data.put("isTellRcv", "0"); //是否短信通知收款人
//// data.put("rcvMobile", ""); //收款方手机号
//// data.put("isForIndividual", "0"); //对公对私标识
//// data.put("subaAccountSerial", ""); //统计编号
//// data.put("itemCode", ""); //预算科目代码
//// data.put("budgetMoney", ""); //预算执行金额
//// data.put("subjectName", ""); //智能财报科目
//// data.put("payType", "0"); //支付方式
//// data.put("remarkAcc", ""); //代理/联动账号
//// data.put("erpRemark1", ""); //ERP 备注 1
//// data.put("erpRemark2", ""); //ERP 备注 1
//// data.put("erpRemark3", ""); //ERP 备注 1
//// data.put("erpRemark4", ""); //ERP 备注 1
//
// String res1 = OpenSDK.send("tmsSettle", "singleTransfer", JSON.toJSONString(map));
// log.info("单笔转账接口:{}" , res1);
//
// return res1;
// }
//
// static String querySingleTransferResult() throws Exception {
// HashMap<String, Object> map = new HashMap();
// HashMap<String, Object> data = new HashMap();
// map.put("Data", data);
//
// data.put("custId", "0000112058"); //客户号 必填
// data.put("serialNo", "2023112300000002"); //交易流水号 必填
//
// String res1 = OpenSDK.send("tmsSettle", "querySingleTransferResult", JSON.toJSONString(map));
// log.info("单笔查证接口:{}" , res1);
//
// return res1;
// }
//
//
// /**
// * 易付通
// */
// static String unionPayDirectOrder() throws Exception {
//
// HashMap<String, Object> map = new HashMap();
// HashMap<String, Object> data = new HashMap();
// map.put("Data", data);
//
// data.put("transId", "IP01"); //交易识别码 必填
// data.put("merId", "2023112300000002"); //商户号 必填
// data.put("merSeqNo", "2023112300000001"); //商户流水 必填
// data.put("merDtTm", "2023-11-24 11:00:00"); //商户时间 必填
// data.put("trxAmt", "1.23"); //订单金额 必填
// data.put("orderDesc", "采购"); //订单详情 必填
// data.put("productNam", "小黄鱼"); //商品名称 必填
// data.put("productId", "001"); //商品编号 必填
// data.put("productNum", "1"); //商品数量 必填
//
// data.put("payAcctNo", "6223161100110442"); //付款账号 必填
// data.put("payAcctNm", "刘晓琴"); //付款户名 必填
// data.put("bankType", "00"); //账户类型 必填
// data.put("payAcctOpenBankId", "313332082914"); //开户行号 必填
//// data.put("mobilePhone", "13000000000"); //手机号
//
// String res1 = OpenSDK.send("YFT", "unionPayDirectOrder", JSON.toJSONString(map));
// log.info("银联订单支付收款模式接口:{}" , res1);
//
// return res1;
// }
//
//
// public static void main(String[] args) throws Exception {
//
// bankTest();
//
//// try {
//// callBySepJson();
//// //demo.callByBean();
//// } catch (Exception e) {
//// e.printStackTrace();
//// }
// }
//
// /**
// * @throws Exception
// */
// public static void callBySepJson() throws Exception {
// String priKey = "MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQgTt6OadouxxxSDg/0SZdOIBqtnFGKrpwmL+quEUf+hfSgCgYIKoEcz1UBgi2hRANCAAQGHNN2NO7btp+w1248yk98E0asGC8sG0bmIzdom4M0xp3vc4IfXjmZ8omUz4oVcjzAuyMSSpJM6uPLcU1SH4HZ";
//
// System.out.println(TempBankController.class.getClassLoader().getResource("").getPath());
//
// OpenSDK.init(TempBankController.class.getClassLoader().getResource("config.properties").getPath(), priKey);
//
//
// /*
// * dataJson 是放置具体交易请求业务报文,dataJson报文结构如下: {"Data":{"app_name":"1"}}
// */
//// String dataJson="";
//// // 发送请求并获取响应(第一个填入productId,第二个填入serviceId)
//// String res = OpenSDK.send("", "", dataJson);
//// if (log.isDebugEnabled()) {
//// log.debug("res: " + res);
//// }
//
// //上传文件
// String res1 = OpenSDK.sendFile("", "open-filegateway",TempBankController.class.getClassLoader().getResource("bank.txt").getPath());
//
// System.out.println(res1);
// //下载文件
//// String res = OpenSDK.sendFileDownload( "productId","fcd47917-bc9c-4c11-b217-f7095f5384fe","D:\\ab\\test");
// }
//
// /**
// * JavaBean方式(通过产品SDK提供的JavaBean)
// *
// * @throws Exception
// */
// public void callByBean() throws Exception {
//
// }
//
//}
performance-web/src/main/java/com/clx/performance/controller/temp/TempYftBankController.java
0 → 100644
浏览文件 @
d8bc1387
package
com
.
clx
.
performance
.
controller
.
temp
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.clx.performance.service.TempService
;
import
com.clx.performance.utils.LocalDateTimeUtils
;
import
com.clx.performance.vo.pc.child.OrderChildLineStatisticsVO
;
import
com.msl.common.result.Result
;
import
com.nbopen.api.*
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.core.io.ClassPathResource
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
import
java.util.HashMap
;
/**
* @Author: aiqingguo
* @Description: 临时接口
* @Date: 2023-8-21 12:10:16
* @Version: 1.0
*/
@Slf4j
@RestController
@RequestMapping
(
value
=
"/temp/yftbank"
)
public
class
TempYftBankController
{
@Autowired
private
TempService
tempService
;
@ApiOperation
(
value
=
"test"
,
notes
=
"<br>By:艾庆国"
)
@RequestMapping
(
value
=
"/test"
,
method
=
RequestMethod
.
POST
)
public
Result
<
OrderChildLineStatisticsVO
>
test
()
throws
Exception
{
bankTest
();
return
Result
.
ok
();
}
@ApiOperation
(
value
=
"test1"
,
notes
=
"<br>By:艾庆国"
)
@RequestMapping
(
value
=
"/test1"
,
method
=
RequestMethod
.
POST
)
public
Result
<
OrderChildLineStatisticsVO
>
test1
()
throws
Exception
{
bankTest1
();
return
Result
.
ok
();
}
@ApiOperation
(
value
=
"queryOrder"
,
notes
=
"<br>By:艾庆国"
)
@RequestMapping
(
value
=
"/queryOrderTest"
,
method
=
RequestMethod
.
POST
)
public
Result
queryOrderTest
(
String
merSeqNo
)
throws
Exception
{
queryOrder
(
merSeqNo
);
return
Result
.
ok
();
}
/**
* 订单支付模式
*/
public
static
void
bankTest
()
throws
Exception
{
ClassPathResource
classPathResource
=
new
ClassPathResource
(
"bank/config-nbbank.json"
);
InputStream
inputStream
=
null
;
try
{
inputStream
=
classPathResource
.
getInputStream
();
boolean
initResult
=
NBOpenSDK
.
init
(
inputStream
);
log
.
info
(
"NBSDK初始化状态:{}"
,
initResult
);
log
.
info
(
"sdk版本信息:{}"
,
NBOpenSDK
.
getVersionInfo
());
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
unionPayDirectOrder
();
}
/**
* 订单支付收款模式
* 商户号:EFT33021200556315
* 银行转账:86041110000075918(户名:客户客户)
* 订单支付:结算账号(86041110000075926(户名:客户客户))
* 响应结果:
* {
* "data": {
* "errorCode": "000000",
* "errorMsg": "成功",
* "frontUrl": "",
* "merId": "EFT33021200556315",
* "merSeqNo": "20231129133913",
* "signData": "",
* "transSeqNo": "2023112913391406547689VYvNioNz"
* },
* "head": {
* "rqsJrnlNo": "14414965925389704",
* "rspCode": "000000",
* "rspDate": "2023-11-29",
* "rspMsg": "交易成功",
* "rspTime": "13:39:16:035"
* }
* }
*/
private
static
void
unionPayDirectOrder
()
{
try
{
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"transId"
,
"IP01"
);
//交易识别码 必填
jsonObject
.
put
(
"merId"
,
"EFT33021200556315"
);
//商户号 必填
jsonObject
.
put
(
"merSeqNo"
,
LocalDateTime
.
now
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyyMMddHHmmss"
)));
//商户流水 必填
jsonObject
.
put
(
"merDtTm"
,
LocalDateTimeUtils
.
formatTime
());
//商户时间 必填
jsonObject
.
put
(
"trxAmt"
,
"1.23"
);
//订单金额 必填
jsonObject
.
put
(
"orderDesc"
,
"采购"
);
//订单详情 必填
jsonObject
.
put
(
"productName"
,
"小黄鱼"
);
//商品名称 必填
jsonObject
.
put
(
"productId"
,
"001"
);
//商品编号 必填
jsonObject
.
put
(
"productNum"
,
"1"
);
//商品数量 必填
jsonObject
.
put
(
"payAcctNo"
,
"86041110000075926"
);
//付款账号 必填
jsonObject
.
put
(
"payAcctNm"
,
"客户客户"
);
//付款户名 必填
jsonObject
.
put
(
"bankType"
,
"00"
);
//账户类型 必填
jsonObject
.
put
(
"payAcctOpenBankId"
,
"313332082914"
);
//开户行号 必填
// jsonObject.put("mobilePhone", "13000000000"); //手机号
HashMap
<
String
,
String
>
httpHeader
=
new
HashMap
<>();
RequestApiData
requestApiData
=
new
RequestApiData
();
requestApiData
.
setAppkey
(
"77667c76_3503_4c04_95f7_fc10938c7942"
);
requestApiData
.
setData
(
jsonObject
);
requestApiData
.
setProductId
(
"YFT"
);
requestApiData
.
setServiceId
(
"unionPayDirectOrder"
);
requestApiData
.
setHttpHeader
(
httpHeader
);
RequestHead
requestHead
=
new
RequestHead
();
requestHead
.
setRqsJrnlNo
(
NBOpenSDK
.
getRandom
());
SDKRequest
request
=
new
SDKRequest
();
request
.
setData
(
requestApiData
);
request
.
setHead
(
requestHead
);
log
.
info
(
"SDK请求内容unionPayDirectOrder: "
+
JSON
.
toJSONString
(
request
));
SDKResponse
result
=
NBOpenSDK
.
send
(
request
);
log
.
info
(
"SDK响应结果unionPayDirectOrder: "
+
JSON
.
toJSONString
(
result
));
// queryOrder(JSON.parseObject(JSON.toJSONString(result)).getJSONObject("data").getString("merSeqNo"));
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
/**
* 结果查询
* 商户号:EFT33021200556315
* 返回结果: 90:交易不存在
* {
* "data": {
* "chargesAmt": "",
* "chargesType": "",
* "clearDate": "",
* "errorCode": "000000",
* "errorMsg": "成功",
* "merId": "EFT33021200556315",
* "merSeqNo": "20231129135754",
* "payeeAcctBankName": "",
* "payeeAcctBankNo": "",
* "payeeAcctName": "",
* "payeeAcctNo": "",
* "payMethod": "",
* "pyerInfList": [
* {
* "customerId": "",
* "pyerAcctBankName": "",
* "pyerAcctName": "",
* "pyerAcctNo": "",
* "signNo": "",
* "transAmt": "",
* "transDtTm": ""
* }
* ],
* "realTrxAmt": "",
* "transSeqNo": "",
* "transStatus": "90",
* "trxAmt": ""
* },
* "head": {
* "rqsJrnlNo": "15541586367762936",
* "rspCode": "000000",
* "rspDate": "2023-11-29",
* "rspMsg": "交易成功",
* "rspTime": "13:57:54:343"
* }
* }
* 返回结果: 02:交易已受理
* {
* "data": {
* "chargesAmt": "",
* "chargesType": "",
* "clearDate": "20231129",
* "errorCode": "000000",
* "errorMsg": "成功",
* "merId": "EFT33021200556315",
* "merSeqNo": "20231129142845",
* "payeeAcctBankName": "宁波银行股份有限公司",
* "payeeAcctBankNo": "313332082914",
* "payeeAcctName": "客户客户",
* "payeeAcctNo": "860411100000759182976409",
* "payMethod": "4",
* "pyerInfList": [
* {
* "customerId": "",
* "pyerAcctBankName": "",
* "pyerAcctName": "",
* "pyerAcctNo": "",
* "signNo": "",
* "transAmt": "",
* "transDtTm": ""
* }
* ],
* "realTrxAmt": "0",
* "transSeqNo": "20231129142846065496766yDTQtg2",
* "transStatus": "02",
* "trxAmt": "1.23"
* },
* "head": {
* "rqsJrnlNo": "15543431902274569",
* "rspCode": "000000",
* "rspDate": "2023-11-29",
* "rspMsg": "交易成功",
* "rspTime": "14:28:51:431"
* }
* }
*
* transStatus:
* 00:交易成功
* 01:交易失败
* 02:交易已受理
* 80:订单初始状态
* 90:交易不存在
* 99:交易超时,须发起交易结果查询
*/
private
static
void
queryOrder
(
String
merSeqNo
)
{
try
{
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"transId"
,
"IP01"
);
//交易识别码 必填
jsonObject
.
put
(
"merId"
,
"EFT33021200556315"
);
//商户号 必填
jsonObject
.
put
(
"merSeqNo"
,
merSeqNo
);
//商户流水 必填
HashMap
<
String
,
String
>
httpHeader
=
new
HashMap
<>();
RequestApiData
requestApiData
=
new
RequestApiData
();
requestApiData
.
setAppkey
(
"77667c76_3503_4c04_95f7_fc10938c7942"
);
requestApiData
.
setData
(
jsonObject
);
requestApiData
.
setProductId
(
"YFT"
);
requestApiData
.
setServiceId
(
"queryOrder"
);
requestApiData
.
setHttpHeader
(
httpHeader
);
RequestHead
requestHead
=
new
RequestHead
();
requestHead
.
setRqsJrnlNo
(
NBOpenSDK
.
getRandom
());
SDKRequest
request
=
new
SDKRequest
();
request
.
setData
(
requestApiData
);
request
.
setHead
(
requestHead
);
log
.
info
(
"SDK请求内容queryOrder: "
+
JSON
.
toJSONString
(
request
));
SDKResponse
result
=
NBOpenSDK
.
send
(
request
);
log
.
info
(
"SDK响应结果queryOrder: "
+
JSON
.
toJSONString
(
result
));
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
/**
* 转账直连下单
*/
public
static
void
bankTest1
()
throws
Exception
{
ClassPathResource
classPathResource
=
new
ClassPathResource
(
"bank/config-nbbank.json"
);
InputStream
inputStream
=
null
;
try
{
inputStream
=
classPathResource
.
getInputStream
();
boolean
initResult
=
NBOpenSDK
.
init
(
inputStream
);
log
.
info
(
"NBSDK初始化状态:{}"
,
initResult
);
log
.
info
(
"sdk版本信息:{}"
,
NBOpenSDK
.
getVersionInfo
());
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
directBankTransferOrder
();
}
/**
* 下单
* 商户号:EFT33021200556315
* 银行转账:86041110000075918(户名:客户客户)
* 订单支付:结算账号(86041110000075926(户名:客户客户))
* 响应结果:
*{
* "data": {
* "acctNm": "客户客户",
* "acctOpenBankNm": "宁波银行股份有限公司",
* "bankId": "313332082914",
* "cardNo": "86041110000075918",
* "errorCode": "000000",
* "errorMsg": "成功",
* "signNo": "2976409",
* "transSeqNo": "20231129142846065496766yDTQtg2",
* "virtualDays": "2024-05-26"
* },
* "head": {
* "rqsJrnlNo": "15543427719351510",
* "rspCode": "000000",
* "rspDate": "2023-11-29",
* "rspMsg": "交易成功",
* "rspTime": "14:28:49:600"
* }
* }
*/
private
static
void
directBankTransferOrder
()
{
try
{
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"transId"
,
"IP01"
);
//交易识别码 必填
jsonObject
.
put
(
"merId"
,
"EFT33021200556315"
);
//商户号 必填
jsonObject
.
put
(
"merSeqNo"
,
LocalDateTime
.
now
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyyMMddHHmmss"
)));
//商户流水 必填
jsonObject
.
put
(
"merDtTm"
,
LocalDateTimeUtils
.
formatTime
());
//商户时间 必填
jsonObject
.
put
(
"trxAmt"
,
"1.23"
);
//订单金额 必填
jsonObject
.
put
(
"orderDesc"
,
"采购"
);
//订单详情 必填
jsonObject
.
put
(
"productName"
,
"小黄鱼"
);
//商品名称 必填
jsonObject
.
put
(
"productId"
,
"001"
);
//商品编号 必填
jsonObject
.
put
(
"productNum"
,
"1"
);
//商品数量 必填
// jsonObject.put("closeDtTm", "2023-11-29 13:39:16"); //关单时间
// jsonObject.put("mobilePhone", "13000000000"); //手机号
HashMap
<
String
,
String
>
httpHeader
=
new
HashMap
<>();
RequestApiData
requestApiData
=
new
RequestApiData
();
requestApiData
.
setAppkey
(
"77667c76_3503_4c04_95f7_fc10938c7942"
);
requestApiData
.
setData
(
jsonObject
);
requestApiData
.
setProductId
(
"YFT"
);
requestApiData
.
setServiceId
(
"directBankTransferOrder"
);
requestApiData
.
setHttpHeader
(
httpHeader
);
RequestHead
requestHead
=
new
RequestHead
();
requestHead
.
setRqsJrnlNo
(
NBOpenSDK
.
getRandom
());
SDKRequest
request
=
new
SDKRequest
();
request
.
setData
(
requestApiData
);
request
.
setHead
(
requestHead
);
log
.
info
(
"SDK请求内容directBankTransferOrder: "
+
JSON
.
toJSONString
(
request
));
SDKResponse
result
=
NBOpenSDK
.
send
(
request
);
log
.
info
(
"SDK响应结果directBankTransferOrder: "
+
JSON
.
toJSONString
(
result
));
// queryOrder(jsonObject.getString("merSeqNo"));
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
/**
* 结果查询
* 商户号:EFT33021200556315
* 返回结果:
* {
* "data": {
* "chargesAmt": "",
* "chargesType": "",
* "clearDate": "",
* "errorCode": "000000",
* "errorMsg": "成功",
* "merId": "EFT33021200556315",
* "merSeqNo": "20231129135754",
* "payeeAcctBankName": "",
* "payeeAcctBankNo": "",
* "payeeAcctName": "",
* "payeeAcctNo": "",
* "payMethod": "",
* "pyerInfList": [
* {
* "customerId": "",
* "pyerAcctBankName": "",
* "pyerAcctName": "",
* "pyerAcctNo": "",
* "signNo": "",
* "transAmt": "",
* "transDtTm": ""
* }
* ],
* "realTrxAmt": "",
* "transSeqNo": "",
* "transStatus": "90",
* "trxAmt": ""
* },
* "head": {
* "rqsJrnlNo": "15541586367762936",
* "rspCode": "000000",
* "rspDate": "2023-11-29",
* "rspMsg": "交易成功",
* "rspTime": "13:57:54:343"
* }
* }
* transStatus:
* 00:交易成功
* 01:交易失败
* 02:交易已受理
* 80:订单初始状态
* 90:交易不存在
* 99:交易超时,须发起交易结果查询
*/
private
static
void
queryOrder1
(
String
merSeqNo
)
{
try
{
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"transId"
,
"IP01"
);
//交易识别码 必填
jsonObject
.
put
(
"merId"
,
"EFT33021200556315"
);
//商户号 必填
jsonObject
.
put
(
"merSeqNo"
,
merSeqNo
);
//商户流水 必填
HashMap
<
String
,
String
>
httpHeader
=
new
HashMap
<>();
RequestApiData
requestApiData
=
new
RequestApiData
();
requestApiData
.
setAppkey
(
"77667c76_3503_4c04_95f7_fc10938c7942"
);
requestApiData
.
setData
(
jsonObject
);
requestApiData
.
setProductId
(
"YFT"
);
requestApiData
.
setServiceId
(
"queryOrder"
);
requestApiData
.
setHttpHeader
(
httpHeader
);
RequestHead
requestHead
=
new
RequestHead
();
requestHead
.
setRqsJrnlNo
(
NBOpenSDK
.
getRandom
());
SDKRequest
request
=
new
SDKRequest
();
request
.
setData
(
requestApiData
);
request
.
setHead
(
requestHead
);
log
.
info
(
"SDK请求内容queryOrder: "
+
JSON
.
toJSONString
(
request
));
SDKResponse
result
=
NBOpenSDK
.
send
(
request
);
log
.
info
(
"SDK响应结果queryOrder: "
+
JSON
.
toJSONString
(
result
));
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
private
static
void
testAPI1
()
{
try
{
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"qryType"
,
"3"
);
jsonObject
.
put
(
"idNo"
,
"330125197810053747"
);
jsonObject
.
put
(
"idType"
,
"1"
);
RequestApiData
requestApiData
=
new
RequestApiData
();
requestApiData
.
setAppkey
(
"77667c76_3503_4c04_95f7_fc10938c7942"
);
requestApiData
.
setData
(
jsonObject
);
requestApiData
.
setProductId
(
""
);
requestApiData
.
setServiceId
(
"commontest"
);
HashMap
<
String
,
String
>
httpHeader
=
new
HashMap
<>();
requestApiData
.
setHttpHeader
(
httpHeader
);
SDKRequest
request
=
new
SDKRequest
();
RequestHead
requestHead
=
new
RequestHead
();
requestHead
.
setRqsJrnlNo
(
NBOpenSDK
.
getRandom
());
request
.
setHead
(
requestHead
);
request
.
setData
(
requestApiData
);
System
.
out
.
println
(
"SDK请求内容: "
+
JSON
.
toJSONString
(
request
));
SDKResponse
result
=
NBOpenSDK
.
send
(
request
);
System
.
out
.
println
(
"SDK响应结果: "
+
JSON
.
toJSONString
(
result
));
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
//
// //文件上传测试接口
// private static void testUploadFile(String localFileName,String remoteFileName,String tranCode) throws Exception {
// try{
// SDKRequest request = new SDKRequest();
// RequestHead head = new RequestHead();
// head.setRqsJrnlNo(NBOpenSDK.getRandom());
// request.setHead(head);
// RequestFileData fileData = new RequestFileData();
// fileData.setLocalFilePath("C:\\Users\\k6118\\Downloads\\11.json");
// fileData.setRemoteFileName("11.json");
// fileData.setTranCode("merFileUploadApply");
// fileData.setUid("YITANG");
// request.setData(fileData);
// System.out.println("---SDK请求报文: "+ JSON.toJSONString(request, SerializerFeature.WriteMapNullValue));
// SDKResponse response = NBOpenSDK.putFile(request);
// System.out.println( "---SDK响应结果: "+ JSON.toJSONString(response,SerializerFeature.WriteMapNullValue));
// } catch (Exception e){
// e.printStackTrace();
// }
// }
//
// //文件下载测试接口
// private static void testDownloadFile(String localFileName,String remoteFileName,String tranCode) throws Exception {
// try{
// SDKRequest request = new SDKRequest();
// RequestHead head = new RequestHead();
// head.setRqsJrnlNo(NBOpenSDK.getRandom());
// request.setHead(head);
// RequestFileData fileData = new RequestFileData();
// fileData.setLocalFilePath("C:\\Users\\k6118\\Downloads\\12.json");
// fileData.setRemoteFileName("8374eb1718cf4083a74430ebd9af058f/11.json");
// fileData.setTranCode("merFileDownloadApply");
// fileData.setUid("YITANG");
// request.setData(fileData);
// System.out.println("---SDK请求报文: "+ JSON.toJSONString(request, SerializerFeature.WriteMapNullValue));
// SDKResponse response = NBOpenSDK.getFile(request);
// System.out.println( "---SDK响应结果: "+ JSON.toJSONString(response,SerializerFeature.WriteMapNullValue));
// } catch (Exception e){
// e.printStackTrace();
// }
// }
//
// /**
// * 易付通
// */
// static String unionPayDirectOrder() throws Exception {
//
// HashMap<String, Object> map = new HashMap();
// HashMap<String, Object> data = new HashMap();
// map.put("Data", data);
//
// data.put("transId", "IP01"); //交易识别码 必填
// data.put("merId", "2023112300000002"); //商户号 必填
// data.put("merSeqNo", "2023112300000001"); //商户流水 必填
// data.put("merDtTm", "2023-11-24 11:00:00"); //商户时间 必填
// data.put("trxAmt", "1.23"); //订单金额 必填
// data.put("orderDesc", "采购"); //订单详情 必填
// data.put("productNam", "小黄鱼"); //商品名称 必填
// data.put("productId", "001"); //商品编号 必填
// data.put("productNum", "1"); //商品数量 必填
//
// data.put("payAcctNo", "6223161100110442"); //付款账号 必填
// data.put("payAcctNm", "刘晓琴"); //付款户名 必填
// data.put("bankType", "00"); //账户类型 必填
// data.put("payAcctOpenBankId", "313332082914"); //开户行号 必填
//// data.put("mobilePhone", "13000000000"); //手机号
//
// String res1 = NBOpenSDK.send("YFT", "unionPayDirectOrder", JSON.toJSONString(map));
// log.info("银联订单支付收款模式接口:{}" , res1);
//
// return res1;
// }
//
//
public
static
void
main
(
String
[]
args
)
throws
Exception
{
bankTest
();
}
}
performance-web/src/main/java/com/clx/performance/controller/thirdparty/NbBankController.java
0 → 100644
浏览文件 @
d8bc1387
package
com
.
clx
.
performance
.
controller
.
thirdparty
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.nbopen.api.*
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RestController
;
@Slf4j
@RestController
@RequestMapping
(
value
=
"/nbbank"
)
@Api
(
tags
=
"宁波银行回调"
)
public
class
NbBankController
{
@ApiOperation
(
value
=
"notify"
,
notes
=
"<br>By:艾庆国"
)
@RequestMapping
(
value
=
"/notify"
,
method
=
RequestMethod
.
POST
)
public
SDKResponse
bankNotify
(
String
message
)
throws
Exception
{
log
.
info
(
"宁波银行回调, data:{}"
,
message
);
RequestApiData
requestApiData
=
new
RequestApiData
();
requestApiData
.
setAppkey
(
"77667c76_3503_4c04_95f7_fc10938c7942"
);
requestApiData
.
setData
(
message
);
RequestHead
requestHead
=
new
RequestHead
();
requestHead
.
setRqsJrnlNo
(
NBOpenSDK
.
getRandom
());
SDKRequest
request
=
new
SDKRequest
();
request
.
setData
(
requestApiData
);
request
.
setHead
(
requestHead
);
System
.
out
.
println
(
"SDK请求内容: "
+
JSON
.
toJSONString
(
request
));
SDKResponse
result
=
NBOpenSDK
.
decryptMessage
(
request
);
System
.
out
.
println
(
"SDK响应结果: "
+
JSON
.
toJSONString
(
result
));
return
null
;
}
private
SDKResponse
getResult
()
throws
Exception
{
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"errorCode"
,
"000000"
);
jsonObject
.
put
(
"errorMsg"
,
"响应成功"
);
RequestApiData
requestApiData
=
new
RequestApiData
();
requestApiData
.
setAppkey
(
"77667c76_3503_4c04_95f7_fc10938c7942"
);
requestApiData
.
setData
(
jsonObject
);
RequestHead
requestHead
=
new
RequestHead
();
requestHead
.
setRqsJrnlNo
(
NBOpenSDK
.
getRandom
());
SDKRequest
request
=
new
SDKRequest
();
request
.
setData
(
requestApiData
);
request
.
setHead
(
requestHead
);
log
.
info
(
"加密前: "
+
JSON
.
toJSONString
(
request
));
SDKResponse
result
=
NBOpenSDK
.
encryptMessage
(
request
);
log
.
info
(
"加密后: "
+
JSON
.
toJSONString
(
result
));
return
result
;
}
}
performance-web/src/main/java/com/clx/performance/service/impl/IntegralTruckServiceImpl.java
浏览文件 @
d8bc1387
...
@@ -177,9 +177,11 @@ public class IntegralTruckServiceImpl implements IntegralTruckService {
...
@@ -177,9 +177,11 @@ public class IntegralTruckServiceImpl implements IntegralTruckService {
if
(!
truckNoList
.
isEmpty
())
{
if
(!
truckNoList
.
isEmpty
())
{
List
<
IntegralStatistics
>
statisticsList
=
integralStatisticsDao
.
selectListByStatisticsDateAndTruckNoList
(
time
,
truckNoList
);
List
<
IntegralStatistics
>
statisticsList
=
integralStatisticsDao
.
selectListByStatisticsDateAndTruckNoList
(
time
,
truckNoList
);
Map
<
String
,
Integer
>
rankMap
=
statisticsList
.
stream
().
collect
(
Collectors
.
toMap
(
item
->
item
.
getTruckNo
(),
item
->
item
.
getRank
()));
Map
<
String
,
Integer
>
rankMap
=
statisticsList
.
stream
().
collect
(
Collectors
.
toMap
(
item
->
item
.
getTruckNo
(),
item
->
item
.
getRank
()));
Map
<
String
,
Integer
>
integralMap
=
statisticsList
.
stream
().
collect
(
Collectors
.
toMap
(
item
->
item
.
getTruckNo
(),
item
->
item
.
getIntegral
()));
for
(
IntegralTruckVO
item
:
page
.
getRecords
())
{
for
(
IntegralTruckVO
item
:
page
.
getRecords
())
{
item
.
setRank
(
rankMap
.
get
(
item
.
getTruckNo
()));
item
.
setRank
(
rankMap
.
get
(
item
.
getTruckNo
()));
item
.
setIntegral
(
integralMap
.
get
(
item
.
getTruckNo
()));
}
}
Map
<
String
,
IntegralTruckVO
>
truckMap
=
page
.
getRecords
().
stream
().
collect
(
Collectors
.
toMap
(
item
->
item
.
getTruckNo
(),
item
->
item
));
Map
<
String
,
IntegralTruckVO
>
truckMap
=
page
.
getRecords
().
stream
().
collect
(
Collectors
.
toMap
(
item
->
item
.
getTruckNo
(),
item
->
item
));
...
...
performance-web/src/main/java/com/clx/performance/service/impl/TruckServiceImpl.java
浏览文件 @
d8bc1387
...
@@ -381,7 +381,7 @@ public class TruckServiceImpl implements TruckService {
...
@@ -381,7 +381,7 @@ public class TruckServiceImpl implements TruckService {
}
}
long
seconds
=
Duration
.
between
(
beginTime
,
endTime
).
getSeconds
();
long
seconds
=
Duration
.
between
(
beginTime
,
endTime
).
getSeconds
();
if
(
seconds
>
1296
00
){
if
(
seconds
>
2592
00
){
throw
new
ServiceSystemException
(
ResultEnum
.
PARAM_ERROR
,
"开始时间和结束时间不能相差超于3天"
);
throw
new
ServiceSystemException
(
ResultEnum
.
PARAM_ERROR
,
"开始时间和结束时间不能相差超于3天"
);
}
}
List
<
TruckTraceDTO
>
truckTrace
=
zjxlGpsService
.
getTruckTrace
(
param
.
getTruckNo
(),
param
.
getBeginTime
(),
List
<
TruckTraceDTO
>
truckTrace
=
zjxlGpsService
.
getTruckTrace
(
param
.
getTruckNo
(),
param
.
getBeginTime
(),
...
...
performance-web/src/main/resources/bank.txt
0 → 100644
浏览文件 @
d8bc1387
123
\ No newline at end of file
performance-web/src/main/resources/bank/config-nbbank.json
0 → 100644
浏览文件 @
d8bc1387
{
"api"
:
[
{
"appKey"
:
"77667c76_3503_4c04_95f7_fc10938c7942"
,
"publicUrl"
:
"https://open-test.nbcb.com.cn/sit/nbcb/api"
,
"platfromPublicKeyPath"
:
"/app/clx-performance/nbbank/bankPubKey-test.cer"
,
"merchantPrivateKeyPath"
:
"/app/clx-performance/nbbank/77667c76_3503_4c04_95f7_fc10938c7942.sm2"
,
"merchantPrivateKeyPwd"
:
"cfca"
,
"connectTimeout"
:
10000
,
"readTimeout"
:
30000
,
"merchantName"
:
""
,
"subMerchantName"
:
""
,
"subMerchantId"
:
""
,
"isProxy"
:
false
,
"proxyIp"
:
""
,
"proxyPort"
:
80
}
],
"file"
:
[
{
"uid"
:
"TEST"
,
"publicFileUrl"
:
"https://file-test.nbcb.com.cn/sit"
,
"clientIp"
:
"127.0.0.1"
,
"passwd"
:
"nbcb123456"
,
"apiVersion"
:
"201809101526"
,
"isProxy"
:
false
,
"proxyIp"
:
""
,
"proxyPort"
:
80
}
]
}
\ No newline at end of file
performance-web/src/main/resources/config.properties
0 → 100644
浏览文件 @
d8bc1387
APP_KEY
=
54b3e05c-7983-4e6c-8920-f9ab8a0004a6
PUBLIC_URL
=
http://cz-test.nbcb.com.cn:7070/nbcb/api
PUBLIC_KEY
=
MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEXAt6fxeKlpREIyXoT3jDwGU7L6JkKrzdOKP1cMB14rtNwwlyaUGLrtuHVoArAHP3x7XN2rUw0GxSngYQwOAsjQ==
CONNECT_TIMEOUT
=
10000
READ_TIMEOUT
=
20000
\ No newline at end of file
performance-web/src/main/resources/logback.xml
浏览文件 @
d8bc1387
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<configuration>
<!--
说明:
1、日志级别及文件
日志记录采用分级记录,级别与日志文件名相对应,不同级别的日志信息记录到不同的日志文件中
例如:error级别记录到log_error_xxx.log或log_error.log(该文件为当前记录的日志文件),而log_error_xxx.log为归档日志,
日志文件按日期记录,同一天内,若日志文件大小等于或大于2M,则按0、1、2...顺序分别命名
例如log-level-2013-12-21.0.log
其它级别的日志也是如此。
2、文件路径
若开发、测试用,在Eclipse中运行项目,则到Eclipse的安装路径查找logs文件夹,以相对路径../logs。
若部署到Tomcat下,则在Tomcat下的logs文件中
3、Appender
FILEERROR对应error级别,文件名以log-error-xxx.log形式命名
FILEWARN对应warn级别,文件名以log-warn-xxx.log形式命名
FILEINFO对应info级别,文件名以log-info-xxx.log形式命名
FILEDEBUG对应debug级别,文件名以log-debug-xxx.log形式命名
stdout将日志信息输出到控制上,为方便开发测试使用
-->
<!-- 彩色日志 -->
<!-- 彩色日志 -->
<!-- 彩色日志依赖的渲染类 -->
<!-- 彩色日志依赖的渲染类 -->
<conversionRule
conversionWord=
"clr"
converterClass=
"org.springframework.boot.logging.logback.ColorConverter"
/>
<conversionRule
conversionWord=
"clr"
converterClass=
"org.springframework.boot.logging.logback.ColorConverter"
/>
<conversionRule
conversionWord=
"wex"
converterClass=
"org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"
/>
<conversionRule
conversionWord=
"wex"
<conversionRule
conversionWord=
"wEx"
converterClass=
"org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"
/>
converterClass=
"org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"
/>
<conversionRule
conversionWord=
"wEx"
converterClass=
"org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"
/>
<!-- 彩色日志格式 -->
<!-- 彩色日志格式 -->
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} [%tid] %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<contextName>
order-service
</contextName>
<property
name=
"FILE_LOG_PATTERN"
<property
name=
"LOG_PATH"
value=
"/logs"
/>
value=
"%d{yyyy-MM-dd HH:mm:ss.SSS} [%tid] [%thread] %-5level %logger Line:%-3L - %msg%n"
/>
<!--设置系统日志目录-->
<property
name=
"APPDIR"
value=
"clx-performance"
/>
<!-- 日志记录器,日期滚动记录 -->
<!-- 日志根目录 -->
<appender
name=
"FILEERROR"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<property
name=
"LOG_PATH"
value=
"./logs"
/>
<!-- 正在记录的日志文件的路径及文件名 -->
<!-- 服务名 -->
<file>
${LOG_PATH}/${APPDIR}/log_error.log
</file>
<property
name=
"APP_DIR"
value=
"clx-performance"
/>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<!-- 归档的日志文件的路径,例如今天是2013-12-21日志,当前写的日志文件路径为file节点指定,可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。
而2013-12-21的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->
<fileNamePattern>
${LOG_PATH}/${APPDIR}/error/log-error-%d{yyyy-MM-dd}.%i.log
</fileNamePattern>
<!-- 除按日志记录之外,还配置了日志文件不能超过20M,若超过20M,日志文件会以索引0开始,
命名日志文件,例如log-error-2013-12-21.0.log -->
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<maxFileSize>
20MB
</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<!-- 追加方式记录日志 -->
<append>
true
</append>
<!-- 日志文件的格式 -->
<encoder
class=
"ch.qos.logback.classic.encoder.PatternLayoutEncoder"
>
<pattern>
===%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger Line:%-3L - %msg%n
</pattern>
<charset>
utf-8
</charset>
</encoder>
<!-- 此日志文件只记录info级别的 -->
<filter
class=
"ch.qos.logback.classic.filter.LevelFilter"
>
<level>
error
</level>
<onMatch>
ACCEPT
</onMatch>
<onMismatch>
DENY
</onMismatch>
</filter>
</appender>
<!-- 日志记录器,日期滚动记录 -->
<!-- 日志记录器,日期滚动记录 -->
<appender
name=
"FILE
WARN
"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<appender
name=
"FILE
_INFO
"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!-- 正在记录的日志文件的路径及文件名 -->
<!-- 正在记录的日志文件的路径及文件名 -->
<file>
${LOG_PATH}/${APP
DIR}/log_warn
.log
</file>
<file>
${LOG_PATH}/${APP
_DIR}/log_info
.log
</file>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"
>
<!-- 归档的日志文件的路径,例如今天是2013-12-21日志,当前写的日志文件路径为file节点指定,可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。
<!-- 归档的日志文件的路径,例如今天是2013-12-21日志,当前写的日志文件路径为file节点指定,可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。
而2013-12-21的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->
而2013-12-21的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->
<fileNamePattern>
${LOG_PATH}/${APPDIR}/warn/log-warn-%d{yyyy-MM-dd}.%i.log
</fileNamePattern>
<fileNamePattern>
${LOG_PATH}/${APP_DIR}/info/log-info-%d{yyyy-MM-dd}.%i.log
</fileNamePattern>
<!-- 除按日志记录之外,还配置了日志文件不能超过20M,若超过20M,日志文件会以索引0开始,
<!--最大日志天数-->
命名日志文件,例如log-error-2013-12-21.0.log -->
<maxHistory>
5
</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<!--单个日志文件最大大小-->
<maxFileSize>
20MB
</maxFileSize>
<maxFileSize>
20MB
</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--总日志大小-->
<totalSizeCap>
1GB
</totalSizeCap>
</rollingPolicy>
</rollingPolicy>
<!-- 追加方式记录日志 -->
<!-- 追加方式记录日志 -->
<append>
true
</append>
<append>
true
</append>
<!-- 日志文件的格式 -->
<encoder
class=
"ch.qos.logback.core.encoder.LayoutWrappingEncoder"
>
<encoder
class=
"ch.qos.logback.classic.encoder.PatternLayoutEncoder"
>
<layout
class=
"org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout"
>
<pattern>
===%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger Line:%-3L - %msg%n
</pattern>
<Pattern>
${FILE_LOG_PATTERN}
</Pattern>
</layout>
<charset>
utf-8
</charset>
<charset>
utf-8
</charset>
</encoder>
</encoder>
<!-- 此日志文件只记录info级别的 -->
<!-- 阈值过滤器,记录info及以上级别的日志 -->
<filter
class=
"ch.qos.logback.classic.filter.LevelFilter"
>
<filter
class=
"ch.qos.logback.classic.filter.ThresholdFilter"
>
<level>
warn
</level>
<level>
info
</level>
<onMatch>
ACCEPT
</onMatch>
<onMismatch>
DENY
</onMismatch>
</filter>
</filter>
</appender>
</appender>
<!-- 日志记录器,日期滚动记录 -->
<!-- 日志记录器,日期滚动记录 -->
<appender
name=
"FILE
INFO
"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<appender
name=
"FILE
_ERROR
"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!-- 正在记录的日志文件的路径及文件名 -->
<!-- 正在记录的日志文件的路径及文件名 -->
<file>
${LOG_PATH}/${APP
DIR}/log_info
.log
</file>
<file>
${LOG_PATH}/${APP
_DIR}/log_error
.log
</file>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.
SizeAnd
TimeBasedRollingPolicy"
>
<!-- 归档的日志文件的路径,例如今天是2013-12-21日志,当前写的日志文件路径为file节点指定,可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。
<!-- 归档的日志文件的路径,例如今天是2013-12-21日志,当前写的日志文件路径为file节点指定,可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。
而2013-12-21的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->
而2013-12-21的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->
<fileNamePattern>
${LOG_PATH}/${APPDIR}/info/log-info-%d{yyyy-MM-dd}.%i.log
</fileNamePattern>
<fileNamePattern>
${LOG_PATH}/${APP_DIR}/error/log-error-%d{yyyy-MM-dd}.%i.log
</fileNamePattern>
<!-- 除按日志记录之外,还配置了日志文件不能超过20M,若超过20M,日志文件会以索引0开始,
<!--最大日志天数-->
命名日志文件,例如log-error-2013-12-21.0.log -->
<maxHistory>
5
</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<!--单个日志文件最大大小-->
<maxFileSize>
20MB
</maxFileSize>
<maxFileSize>
20MB
</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--总日志大小-->
<totalSizeCap>
1GB
</totalSizeCap>
</rollingPolicy>
</rollingPolicy>
<!-- 追加方式记录日志 -->
<!-- 追加方式记录日志 -->
<append>
true
</append>
<append>
true
</append>
<!-- 日志文件的格式 -->
<!-- 日志文件的格式 -->
<encoder
class=
"ch.qos.logback.classic.encoder.PatternLayoutEncoder"
>
<encoder
class=
"ch.qos.logback.core.encoder.LayoutWrappingEncoder"
>
<pattern>
===%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger Line:%-3L - %msg%n
</pattern>
<layout
class=
"org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout"
>
<Pattern>
${FILE_LOG_PATTERN}
</Pattern>
</layout>
<charset>
utf-8
</charset>
<charset>
utf-8
</charset>
</encoder>
</encoder>
<!--
此日志文件只记录info级别的
-->
<!--
级别过滤器,只记录error级别的日志
-->
<filter
class=
"ch.qos.logback.classic.filter.LevelFilter"
>
<filter
class=
"ch.qos.logback.classic.filter.LevelFilter"
>
<level>
info
</level>
<level>
error
</level>
<onMatch>
ACCEPT
</onMatch>
<onMatch>
ACCEPT
</onMatch>
<onMismatch>
DENY
</onMismatch>
<onMismatch>
DENY
</onMismatch>
</filter>
</filter>
...
@@ -123,26 +85,43 @@
...
@@ -123,26 +85,43 @@
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!--encoder 默认配置为PatternLayoutEncoder-->
<!--encoder 默认配置为PatternLayoutEncoder-->
<encoder>
<pattern>
${CONSOLE_LOG_PATTERN}
</pattern>
<encoder
class=
"ch.qos.logback.core.encoder.LayoutWrappingEncoder"
>
<layout
class=
"org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout"
>
<Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
</layout>
<charset>
utf-8
</charset>
<charset>
utf-8
</charset>
</encoder>
</encoder>
<!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
<!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
<filter
class=
"ch.qos.logback.classic.filter.ThresholdFilter"
>
<filter
class=
"ch.qos.logback.classic.filter.ThresholdFilter"
>
<level>
INFO
</level>
<level>
debug
</level>
</filter>
</filter>
</appender>
</appender>
<!-- <logger name="org.springframework" level="WARN" /> -->
<!--skywalking收集日志-->
<!-- <logger name="org.hibernate" level="WARN" /> -->
<appender
name=
"GRPC_LOG"
class=
"org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender"
>
<encoder>
<Pattern>
${FILE_LOG_PATTERN}
</Pattern>
</encoder>
</appender>
<!--异步日志-->
<!--<appender name="ASYNC-GRPC" class="ch.qos.logback.classic.AsyncAppender">
<!– 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 –>
<discardingThreshold>0</discardingThreshold>
<!– 更改默认的队列的深度,该值会影响性能.默认值为256 –>
<queueSize>256</queueSize>
<!– 添加附加的appender,最多只能添加一个 –>
<appender-ref ref="GRPC_LOG"/>
</appender>-->
<!-- 生产环境下,将此级别配置为适合的级别,以免日志文件太多或影响程序性能 -->
<!-- 生产环境下,将此级别配置为适合的级别,以免日志文件太多或影响程序性能 -->
<root
level=
"INFO"
>
<root
level=
"INFO"
>
<appender-ref
ref=
"FILEERROR"
/>
<appender-ref
ref=
"FILE_INFO"
/>
<appender-ref
ref=
"FILEWARN"
/>
<appender-ref
ref=
"FILE_ERROR"
/>
<appender-ref
ref=
"FILEINFO"
/>
<appender-ref
ref=
"GRPC_LOG"
/>
<!--控制台-->
生产环境将请stdout,testfile去掉
<appender-ref
ref=
"STDOUT"
/>
<appender-ref
ref=
"STDOUT"
/>
</root>
</root>
</configuration>
</configuration>
\ No newline at end of file
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论