Commit 19837bd3 by 王昆

gsb

parent 4a177d0f
...@@ -5,6 +5,16 @@ class TradeCtl extends CtlBase { ...@@ -5,6 +5,16 @@ class TradeCtl extends CtlBase {
constructor() { constructor() {
super(); super();
this.tradeSve = system.getObject("service.trade.tradeSve"); this.tradeSve = system.getObject("service.trade.tradeSve");
this.redisClient = system.getObject("util.redisClient");
}
async orderPage(params, pobj2, req) {
try {
this.doTimeCondition(params, ["createBegin", "createEnd"]);
return await this.tradeSve.orderPage(params);
} catch (error) {
return system.getResult(null, `系统错误 错误信息 ${error}`);
}
} }
async parseItems(params, pobj2, req) { async parseItems(params, pobj2, req) {
...@@ -24,6 +34,22 @@ class TradeCtl extends CtlBase { ...@@ -24,6 +34,22 @@ class TradeCtl extends CtlBase {
} }
} }
async offlinePay(params, pobj2, req) {
try {
return await this.tradeSve.offlinePay(params);
} catch (error) {
return system.getResult(null, `系统错误 错误信息 ${error}`);
}
}
async itemPage(params, pobj2, req) {
try {
this.doTimeCondition(params, ["createBegin", "createEnd"]);
return await this.tradeSve.itemPage(params);
} catch (error) {
return system.getResult(null, `系统错误 错误信息 ${error}`);
}
}
} }
module.exports = TradeCtl; module.exports = TradeCtl;
\ No newline at end of file
const system = require("../../../system");
const Dao = require("../../dao.base");
class SynlogDao extends Dao {
constructor() {
super(Dao.getModelName(SynlogDao));
}
}
module.exports = SynlogDao;
\ No newline at end of file
const system = require("../../../system");
const settings = require("../../../../config/settings");
const uiconfig = system.getUiConfig2(settings.appKey);
module.exports = (db, DataTypes) => {
return db.define("synlog", {
apiUrl: DataTypes.STRING,
apiName: DataTypes.STRING,
apiReq: DataTypes.STRING,
apiRes: DataTypes.STRING,
}, {
paranoid: true, //假的删除
underscored: true,
version: true,
freezeTableName: true,
//freezeTableName: true,
// define the table's name
tableName: 'xgg_syn_log',
validate: {},
indexes: [
// Create a unique index on email
// {
// unique: true,
// fields: ['email']
// },
//
// // Creates a gin index on data with the jsonb_path_ops operator
// {
// fields: ['data'],
// using: 'gin',
// operator: 'jsonb_path_ops'
// },
//
// // By default index name will be [table]_[fields]
// // Creates a multi column partial index
// {
// name: 'public_by_author',
// fields: ['author', 'status'],
// where: {
// status: 'public'
// }
// },
//
// // A BTREE index with a ordered field
// {
// name: 'title_index',
// method: 'BTREE',
// fields: ['author', {attribute: 'title', collate: 'en_US', order: 'DESC', length: 5}]
// }
]
});
}
\ No newline at end of file
...@@ -12,6 +12,26 @@ class TradeService extends ServiceBase { ...@@ -12,6 +12,26 @@ class TradeService extends ServiceBase {
this.redisClient = system.getObject("util.redisClient"); this.redisClient = system.getObject("util.redisClient");
} }
async orderPage(params) {
params.currentPage = Number(params.currentPage || 1);
params.pageSize = Number(params.pageSize || 10);
let rs = await this.callms("trade", "orderPage", params) || {};
if(rs.data && rs.data.rows) {
this.transFields(rs.data.rows);
}
return rs;
}
async itemPage(params) {
params.currentPage = Number(params.currentPage || 1);
params.pageSize = Number(params.pageSize || 10);
let rs = await this.callms("trade", "itemPage", params) || {};
if(rs.data && rs.data.rows) {
this.transFields(rs.data.rows);
}
return rs;
}
async lockOrder(params) { async lockOrder(params) {
params.acc_type = this.trim(params.acc_type); params.acc_type = this.trim(params.acc_type);
params.fileUrl = this.trim(params.fileUrl); params.fileUrl = this.trim(params.fileUrl);
...@@ -48,7 +68,7 @@ class TradeService extends ServiceBase { ...@@ -48,7 +68,7 @@ class TradeService extends ServiceBase {
saas_id: params.saas_id, saas_id: params.saas_id,
saas_merchant_id: params.saas_merchant_id, saas_merchant_id: params.saas_merchant_id,
out_trade_no: out_trade_no, out_trade_no: out_trade_no,
service_rate: system.f2y(info.trans_service_rate), service_rate: system.y2f(info.trans_service_rate),
amt: system.y2f(result.actual_amt), amt: system.y2f(result.actual_amt),
actual_amt: system.y2f(result.actual_amt), actual_amt: system.y2f(result.actual_amt),
deduct_amt: system.y2f(result.deduct_amt), deduct_amt: system.y2f(result.deduct_amt),
...@@ -63,7 +83,20 @@ class TradeService extends ServiceBase { ...@@ -63,7 +83,20 @@ class TradeService extends ServiceBase {
pay_bank_no: main.bank_no, pay_bank_no: main.bank_no,
itemList: itemList itemList: itemList
}; };
let rs = await this.callms("trade", "saveOrder", order); let rs = await this.callms("trade", "orderAdd", order);
return rs;
}
async offlinePay(params) {
params.type = "offline";
params.pay_voucher = this.trim(params.pay_voucher);
params.pay_bank_account = this.trim(params.pay_bank_account);
params.pay_bank_name = this.trim(params.pay_bank_name);
params.pay_bank_no = this.trim(params.pay_bank_no);
if (!params.pay_voucher) {
return system.getResult(null, "请上传凭证");
}
let rs = await this.callms("trade", "orderPay", params);
return rs; return rs;
} }
...@@ -87,7 +120,7 @@ class TradeService extends ServiceBase { ...@@ -87,7 +120,7 @@ class TradeService extends ServiceBase {
} }
async countAmt(itemList, info) { async countAmt(itemList, info) {
let result = {amt:0, actual_amt: 0, deduct_amt: 0, service_tax: 0}; let result = {amt: 0, actual_amt: 0, deduct_amt: 0, service_tax: 0};
if (!itemList) { if (!itemList) {
return result; return result;
} }
...@@ -106,11 +139,11 @@ class TradeService extends ServiceBase { ...@@ -106,11 +139,11 @@ class TradeService extends ServiceBase {
result.service_tax = Number(result.service_tax) + Number(data.service_tax); result.service_tax = Number(result.service_tax) + Number(data.service_tax);
// 总实发 // 总实发
result.actual_amt = Number(result.actual_amt) + Number(data.actual_amt); result.actual_amt = Number(result.actual_amt) + Number(data.actual_amt);
// 总扣款
result.deduct_amt = Number(result.service_tax) + Number(data.deduct_amt);
// 总请求打款 // 总请求打款
result.amt = Number(result.amt) + amt; result.amt = Number(result.amt) + amt;
} }
// 总扣款
result.deduct_amt = Number(result.service_tax) + Number(result.actual_amt);
return result; return result;
} }
...@@ -221,6 +254,19 @@ class TradeService extends ServiceBase { ...@@ -221,6 +254,19 @@ class TradeService extends ServiceBase {
} }
} }
transFields(rows) {
if(!rows || rows.length == 0) {
return;
}
for(let row of rows) {
row.amt = system.f2y(row.amt);
row.actual_amt = system.f2y(row.actual_amt);
row.deduct_amt = system.f2y(row.deduct_amt);
row.service_tax = system.f2y(row.service_tax);
row.service_rate = system.f2y(row.service_rate);
}
}
} }
module.exports = TradeService; module.exports = TradeService;
\ No newline at end of file
...@@ -8,6 +8,7 @@ const axios = require('axios'); ...@@ -8,6 +8,7 @@ const axios = require('axios');
class ServiceBase { class ServiceBase {
constructor() { constructor() {
this.restClient = system.getObject("util.restClient"); this.restClient = system.getObject("util.restClient");
this.synlogDao = system.getObject("db.log.synlogDao");
this.micro = system.microsetting(); this.micro = system.microsetting();
} }
...@@ -251,6 +252,27 @@ class ServiceBase { ...@@ -251,6 +252,27 @@ class ServiceBase {
} }
} }
async callApi(url, data, name) {
let log = await this.synlogDao.create({
apiUrl: url,
apiName: name,
apiReq: JSON.stringify(data),
apiRes: "",
});
let res = await axios({
method: 'post',
url: url,
data: data
});
console.log(res);
console.log(res.data);
log.apiRes = JSON.stringify(res.data);
log.save();
return res.data;
}
trim(o) { trim(o) {
if (!o) { if (!o) {
return ""; return "";
......
...@@ -119,6 +119,10 @@ var settings = { ...@@ -119,6 +119,10 @@ var settings = {
getCustomerById: domain + "/nga-api/getCustomerById", getCustomerById: domain + "/nga-api/getCustomerById",
// 上传发票 // 上传发票
uploadDetail: domain + "/nga-api/uploadDetail", uploadDetail: domain + "/nga-api/uploadDetail",
// 月报表
getReportData: domain + "/nga-api/report/getReportData",
// 季报表
getReportDataQuarter: domain + "/nga-api/report/getReportDataQuarter",
} }
}, },
redis: function () { redis: function () {
......
<a name="menu">目录</a> <a name="menu">目录</a>
1. [批量打款列表](#page) 1. [批量打款列表](#orderPage)
1. [上传数据](#parseItems) 1. [上传数据](#parseItems)
1. [锁定批次](#lockOrder) 1. [锁定批次](#lockOrder)
1. [付款申请](#payVoucher) 1. [付款申请](#offlinePay)
1. [查看详情](#orderInfo)
1. [交易列表](#itemPage)
## **<a name="page"> 订单列表</a>** ## **<a name="orderPage"> 批量打款列表</a>**
[返回到目录](#menu) [返回到目录](#menu)
##### URL ##### URL
[/web/trade/tradeCtl/parseItems] [/web/trade/tradeCtl/orderPage]
#### 参数格式 `JSON` #### 参数格式 `JSON`
#### HTTP请求方式 `POST` #### HTTP请求方式 `POST`
...@@ -16,58 +18,54 @@ ...@@ -16,58 +18,54 @@
{ {
"currentPage": "1", "currentPage": "1",
"pageSize": "10", "pageSize": "10",
"saas_merchant_id": "", // 商户id 查询条件使用商户字典下拉选择 "out_trade_no": "", // 商户订单号
"createBegin": "", // 创建时间 开始 "trade_status": "", // 交易状态 00成功 01待处理 02失败 03部分成功
"createEnd": "" // 创建时间 结束 "check_status": "", // 审核状态 00待处理 01一审 02一审失败 03二审 04二审失败 05审核通过
"legal_idno": "" // 身份证号码 "createBegin": "", // 创建时间-开始 可以只选开始,也可以只选结束,格式:2020-04-03
"status": "" // 订单状态 "createEnd": "" // 创建时间-结束
} }
``` ```
#### 返回结果 #### 返回结果
```javascript ```javascript
{ {
"status": 0, "status": 0,
"msg": "success", "msg": "success",
"data": { "data": {
"count": 0, "count": 21,
"rows": [ "rows": [
{ {
"id": "1726724188001516", // 订单编号 "id": "1298463038002876", // id
"price": 1500, // 订单价格 "out_trade_no": "13695922219233720", // 商户订单号
"pay_voucher_img": "0", // 付款凭证 "service_rate": 0, // 服务费比率
"audit_remark": "", // 审核凭证 "created_at": "2020-04-02 14:16:21", // 创建时间
"deliver_man": "", // 交付联系人 "item_count": 4, // 打款记录
"deliver_mobile": "", // 交付联系电话 "amt": 131083.32, // 商户请求打款金额
"deliver_addr": "", // 邮寄地址 "actual_amt": 131083.32, // 实发金额
"created_at": "2020-03-21 07:45:18", // 创建时间 "service_tax": 2621.66, // 服务费
"status": "3030", // 订单状态 "deduct_amt": 128535.56, // 总扣款金额
"status_name": "已交付" // 订单状态名称 "check_status": "00", // 审核状态 00待处理 01一审 02一审失败 03二审 04二审失败 05二审通过
// 订单信息 "check_status_name": "待处理", // 审核状态名称
"bminfo": { "trade_status": "01", // 打款状态 00成功 01待处理 02失败 03部分成功
"idcard_front": "11111", // 身份证正面 "trade_status_name": "待处理", // 打款状态名称
"idcard_back": "11111", // 身份证反面
"legal_name": "11111", // 法人名称 "pay_voucher": "", // 支付凭证图
"legal_mobile": "11111", // 手机号 "acc_type": "00", // 打款通道
"legal_idno": "11111", // 身份证号码 "acc_type_name": "银行", // 打款通道名称
"company_names": "11111", // 个体户名称 "trade_mode": "00", // 打款模式 00未设置 01系统打款 02手工打款
"bank_front": "11111", // 银行卡正面图 "trade_mode_name": "未设置", // 打款模式名称
"bank_back": "11111", // 银行卡反面图 "check1_remark": "", // 一审备注
"bank_name": "11111", // 开户行 "check2_remark": "", // 二审备注
"bank_no": "11111", // 银行卡号
"bank_mobile": "11111", // 预留手机号 "pay_bank_account": "111xxx", // 订单付款账户名称
"domicile_id": "", // 注册地id "pay_bank_name": "1231234", // 订单付款开户银行
"domicile_name": "", // 注册地 "pay_bank_no": "123456" // 订单付款银行账户
"business_scope_id": "", // 经营范围id
"business_type": "", // 经营范围类型
"business_scope": "", // 经营范围详情
}
} }
], ]
"total": 1
}, },
"requestid": "00521a0a0f094c8d982bf4375fbe91b1" "requestid": "09cd6abe34da475cb676b550ff9b282d"
} }
...@@ -190,10 +188,10 @@ ...@@ -190,10 +188,10 @@
## **<a name="offlinePay"> 订单支付</a>** ## **<a name="offlinePay"> 付款申请</a>**
[返回到目录](#menu) [返回到目录](#menu)
##### URL ##### URL
[/web/saas/orderCtl/offlinePay] [/web/trade/tradeCtl/offlinePay]
#### 参数格式 `JSON` #### 参数格式 `JSON`
#### HTTP请求方式 `POST` #### HTTP请求方式 `POST`
...@@ -201,11 +199,8 @@ ...@@ -201,11 +199,8 @@
``` javascript ``` javascript
{ {
"ids": ['172...', '172..', ''], // 订单多选 "id": "1298475347002331", // 订单id,锁定批次时返回的id(列表中也有返回)
"pay_voucher_img": "", // 付款凭证图 "pay_voucher": "https://gsb........" // 付款凭证
"merchant_deliver_man": "", // 联系人
"merchant_deliver_mobile": "", // 联系电话
"merchant_deliver_addr": "" // 邮寄地址
} }
``` ```
...@@ -222,3 +217,133 @@ ...@@ -222,3 +217,133 @@
``` ```
1. [查看详情](#orderInfo)
## **<a name="orderInfo"> 查看详情</a>**
[返回到目录](#menu)
##### URL
[/web/trade/tradeCtl/orderInfo]
#### 参数格式 `JSON`
#### HTTP请求方式 `POST`
``` javascript
{
"currentPage": "1",
"pageSize": "10",
"out_trade_no": "", // 商户订单号
"trade_status": "", // 交易状态 00成功 01待处理 02失败 03部分成功
"check_status": "", // 审核状态 00待处理 01一审 02一审失败 03二审 04二审失败 05审核通过
"createBegin": "", // 创建时间-开始 可以只选开始,也可以只选结束,格式:2020-04-03
"createEnd": "" // 创建时间-结束
}
```
#### 返回结果
```javascript
{
"status": 0,
"msg": "success",
"data": {
"count": 21,
"rows": [
{
"id": "1298463038002876", // id
"out_trade_no": "13695922219233720", // 商户订单号
"service_rate": 0, // 服务费比率
"created_at": "2020-04-02 14:16:21", // 创建时间
"item_count": 4, // 打款记录
"amt": 131083.32, // 商户请求打款金额
"actual_amt": 131083.32, // 实发金额
"service_tax": 2621.66, // 服务费
"deduct_amt": 128535.56, // 总扣款金额
"check_status": "00", // 审核状态 00待处理 01一审 02一审失败 03二审 04二审失败 05二审通过
"check_status_name": "待处理", // 审核状态名称
"trade_status": "01", // 打款状态 00成功 01待处理 02失败 03部分成功
"trade_status_name": "待处理", // 打款状态名称
"pay_voucher": "", // 支付凭证图
"acc_type": "00", // 打款通道
"acc_type_name": "银行", // 打款通道名称
"trade_mode": "00", // 打款模式 00未设置 01系统打款 02手工打款
"trade_mode_name": "未设置", // 打款模式名称
"check1_remark": "", // 一审备注
"check2_remark": "", // 二审备注
"pay_bank_account": "111xxx", // 订单付款账户名称
"pay_bank_name": "1231234", // 订单付款开户银行
"pay_bank_no": "123456" // 订单付款银行账户
}
]
},
"requestid": "09cd6abe34da475cb676b550ff9b282d"
}
```
## **<a name="itemPage"> 交易列表</a>**
[返回到目录](#menu)
##### URL
[/web/trade/tradeCtl/itemPage]
#### 参数格式 `JSON`
#### HTTP请求方式 `POST`
``` javascript
{
"currentPage": 1,
"pageSize": 10,
"out_trade_no": "", // 商户订单号
"acc_name": "", // 收款户名
"acc_no": "", // 收款账户
"credit_code": "", // 信用代码
"trade_status": "", // 交易状态 00成功 01待处理 02失败
"createBegin": "", // 创建时间-开始 可以只选开始,也可以只选结束,格式:2020-04-03
"createEnd": "" // 创建时间-结束
}
```
#### 返回结果
```javascript
{
"status": 0,
"msg": "success",
"data": {
"count": 1493,
"rows": [
{
"id": "1298463038002876", // id
"trade_no": "T10014949456718", // 打款编号
"acc_name": "11", // 收款户名
"acc_no": "3", // 收款账号
"trade_status": "01", // 交易状态
"trade_status_name": "待处理", // 交易状态名称
"trade_desc": "", // 交易描述
"trade_receipt": "", // 回执图片,判断为空时不显示按钮
"amt": 131083.32, // 商户请求打款金额
"actual_amt": 131083.32, // 实发金额
"service_tax": 2621.66, // 服务费
"deduct_amt": 128535.56, // 总扣款金额
"credit_code": "92321311MA205KN92J", // 信用代码
"out_trade_no": "13695922219233720", // 商户订单号
"created_at": "2020-04-03 11:38:19", // 创建时间
"order_id": "1298386120003945", // 订单id
"open_bank": "4", // 开户行全称
"trade_time": null, // 交易时间
"remark": "6", // 打款备注
"service_rate": 0, // 服务费比率
}
]
},
"requestid": "d14ae10263ec45ab8cd3be23ab59faf2"
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment