Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Z
zhichan
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
蒋勇
zhichan
Commits
22b467de
Commit
22b467de
authored
Feb 16, 2020
by
宋毅
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
tj
parent
96ef4a91
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
154 additions
and
88 deletions
+154
-88
center-order/app/base/api/impl/action/order.js
+10
-2
center-order/app/base/db/impl/dbcorder/orderinfoDao.js
+24
-19
center-order/app/base/db/impl/dbcorder/orderproductDao.js
+20
-0
center-order/app/base/db/impl/dbcpay/orderreceiptvoucherDao.js
+26
-0
center-order/app/base/service/impl/dbcorder/orderinfoSve.js
+74
-67
No files found.
center-order/app/base/api/impl/action/order.js
View file @
22b467de
...
...
@@ -4,6 +4,7 @@ var settings = require("../../../../config/settings");
class
OrderAPI
extends
APIBase
{
constructor
()
{
super
();
this
.
orderinfoSve
=
system
.
getObject
(
"service.dbcorder.orderinfoSve"
);
}
/**
* 接口跳转-POST请求
...
...
@@ -13,7 +14,7 @@ class OrderAPI extends APIBase {
*/
async
springBoard
(
pobj
,
qobj
,
req
)
{
if
(
!
pobj
.
userInfo
)
{
return
system
.
getResult
(
system
.
noLogin
,
"user no login!"
);
return
system
.
getResult
Fail
(
system
.
noLogin
,
"user no login!"
);
}
if
(
!
pobj
.
actionType
)
{
return
system
.
getResult
(
null
,
"actionType参数不能为空"
);
...
...
@@ -27,6 +28,12 @@ class OrderAPI extends APIBase {
case
"addOrder"
:
//创建订单
opResult
=
await
this
.
addOrder
(
pobj
,
pobj
.
actionBody
);
break
;
case
"getPayOrderInfo"
:
//获取付款订单信息
opResult
=
await
this
.
orderinfoSve
.
getPayOrderInfo
(
pobj
,
pobj
.
actionBody
);
break
;
case
"putReceiptVoucherInfo"
:
//修改订单收款信息
opResult
=
await
this
.
orderinfoSve
.
putReceiptVoucherInfo
(
pobj
,
pobj
.
actionBody
);
break
;
default
:
opResult
=
system
.
getResult
(
null
,
"action_type参数错误"
);
break
;
...
...
@@ -56,7 +63,8 @@ class OrderAPI extends APIBase {
if
(
!
invokeObj
[
interface_info
.
params
])
{
return
system
.
getResult
(
null
,
"产品接口参数方法信息有误,20130"
);
}
opResult
=
await
invokeObj
[
interface_info
.
params
].
apply
(
invokeObj
,
pobj
);
var
params
=
[
pobj
];
opResult
=
await
invokeObj
[
interface_info
.
params
].
apply
(
invokeObj
,
params
);
}
else
if
(
interface_info
.
interface_type
==
"yc"
)
{
...
...
center-order/app/base/db/impl/dbcorder/orderinfoDao.js
View file @
22b467de
...
...
@@ -4,25 +4,30 @@ class OrderInfoDao extends Dao {
constructor
()
{
super
(
Dao
.
getModelName
(
OrderInfoDao
));
}
buildAttributes
(){
return
[
"orderNo"
,
"channelServiceNo"
,
"needNo"
,
"payTime"
,
"channelUserId"
,
"quantity"
,
"serviceQuantity"
,
"orderPayStatusName"
,
"orderPayStatus"
,
"totalSum"
,
"payTotalSum"
,
"refundSum"
,
"channelProfitSum"
,
"pfSettleProfit"
,
"notes"
,
"opNotes"
];
async
getItemStatusByOrderNo
(
orderNo
,
uapp_id
)
{
return
await
this
.
model
.
findOne
({
where
:
{
orderNo
:
orderNo
,
uapp_id
:
uapp_id
},
attributes
:
[
"orderNo"
,
"channelServiceNo"
,
"channelOrderNo"
,
"channelUserId"
,
"ownerUserId"
,
"needNo"
,
"needNoOrderNo"
,
"payTime"
,
"quantity"
,
"serviceQuantity"
,
"orderStatusName"
,
"orderStatus"
,
"totalSum"
,
"payTotalSum"
,
"refundSum"
,
"invoiceApplyStatus"
],
raw
:
true
});
}
}
module
.
exports
=
OrderInfoDao
;
center-order/app/base/db/impl/dbcorder/orderproductDao.js
View file @
22b467de
...
...
@@ -4,5 +4,25 @@ class OrderProductDao extends Dao {
constructor
()
{
super
(
Dao
.
getModelName
(
OrderProductDao
));
}
async
getItemByOrderNo
(
orderNo
,
uapp_id
)
{
return
await
this
.
model
.
findOne
({
where
:
{
sourceOrderNo
:
orderNo
,
uapp_id
:
uapp_id
},
attributes
:
[
"sourceOrderNo"
,
"productType_id"
,
"pathCode"
,
"itemCode"
,
"itemName"
,
"channelItemCode"
,
"channelItemName"
,
"serviceItemCode"
,
"picUrl"
,
"proPrice"
,
"quantity"
],
raw
:
true
});
}
}
module
.
exports
=
OrderProductDao
;
center-order/app/base/db/impl/dbcpay/orderreceiptvoucherDao.js
View file @
22b467de
...
...
@@ -4,5 +4,31 @@ class OrderReceiptVoucherDao extends Dao {
constructor
()
{
super
(
Dao
.
getModelName
(
OrderReceiptVoucherDao
));
}
async
getItemByOrderNo
(
orderNo
,
uapp_id
)
{
return
await
this
.
model
.
findOne
({
where
:
{
sourceOrderNo
:
orderNo
,
uapp_id
:
uapp_id
,
auditStatus
:
"dsh"
},
attributes
:
[
"id"
,
"uapp_id"
,
"sourceOrderNo"
,
"accountType"
,
"accountTypeName"
,
"payDate"
,
"totalSum"
,
"payOrderNo"
,
"buyerOpenId"
,
"passTradeNo"
,
"buyerAliLogonId"
,
"certifyFileUrl"
,
"wxPayOrderCode"
,
"aliPayOrderCode"
,
"busPayOrderCode"
,
"auditStatusName"
,
"auditStatus"
],
raw
:
true
});
}
}
module
.
exports
=
OrderReceiptVoucherDao
;
center-order/app/base/service/impl/dbcorder/orderinfoSve.js
View file @
22b467de
...
...
@@ -5,31 +5,12 @@ const uuidv4 = require('uuid/v4');
class
OrderInfoService
extends
ServiceBase
{
constructor
()
{
super
(
"dbcorder"
,
ServiceBase
.
getDaoName
(
OrderInfoService
));
this
.
orderproductDao
=
system
.
getObject
(
"db.dbcorder.orderproductDao"
);
this
.
orderReceiptVoucherDao
=
system
.
getObject
(
"db.dbcpay.orderreceiptvoucherDao"
);
this
.
orderRefundVoucherDao
=
system
.
getObject
(
"db.dbcpay.orderrefundvoucherDao"
);
//
this.orderRefundVoucherDao = system.getObject("db.dbcpay.orderrefundvoucherDao");
this
.
moneyJourneyDao
=
system
.
getObject
(
"db.dbcpay.moneyjourneyDao"
);
this
.
pushlogSve
=
system
.
getObject
(
"service.common.pushlogSve"
);
}
/*
* 订单验证
*/
async
isOrderVerify
(
pobj
)
{
var
actionBody
=
pobj
.
actionBody
;
var
price_list
=
actionBody
.
product_info
.
price_list
;
if
(
!
price_list
)
{
return
system
.
getResult
(
null
,
"产品价格列表信息有误,20150"
);
}
var
product_price
=
price_list
.
filter
(
f
=>
f
.
id
==
actionBody
.
id
);
if
(
!
product_price
||
product_price
.
length
==
0
)
{
return
system
.
getResult
(
null
,
"产品价格信息有误,20180"
);
}
var
totalSum
=
Number
(
product_price
[
0
].
price
)
*
Number
(
actionBody
.
quantity
);
if
(
Number
(
actionBody
.
totalSum
)
<
totalSum
)
{
return
system
.
getResult
(
null
,
"订单金额有误,20210"
);
}
pobj
.
actionBody
.
product_info
.
price_item
=
product_price
[
0
];
return
system
.
getResultSuccess
();
}
async
createOrder
(
pobj
,
orderNo
,
t
)
{
var
actionBody
=
pobj
.
actionBody
;
var
channelOrder
=
actionBody
.
channelOrder
;
...
...
@@ -37,7 +18,7 @@ class OrderInfoService extends ServiceBase {
var
totalServiceCharge
=
Number
(
price_item
.
service_charge
||
0
)
*
Number
(
actionBody
.
quantity
);
var
totalPublicExpense
=
Number
(
price_item
.
public_expense
||
0
)
*
Number
(
actionBody
.
quantity
);
var
totalProfitSum
=
Number
(
actionBody
.
totalSum
)
-
(
Number
(
price_item
.
supply_price
||
0
)
*
Number
(
actionBody
.
quantity
));
var
pfProfitSum
=
(
100
-
Number
(
price_item
.
channel_profit_rate
))
/
100
*
totalProfitSum
;
var
pfProfitSum
=
(
100
-
Number
(
price_item
.
channel_profit_rate
||
0
))
/
100
*
totalProfitSum
;
if
(
pfProfitSum
<
0
)
{
pfProfitSum
=
0
;
}
...
...
@@ -57,7 +38,7 @@ class OrderInfoService extends ServiceBase {
serviceQuantity
:
0
,
//int(11) //项目订单交付数量(即与项目订单数量相对应)
orderStatus
:
channelOrder
.
orderStatus
||
1
,
//int //订单状态: 1: 待付款, 2: 已付款, 4: 待服务, 8: 已完成
totalSum
:
actionBody
.
totalSum
,
//decimal(12,2) //订单总额(产品价格×优惠费率×订单件数)
payTotalSum
:
actionBody
.
payTotalSum
,
//decimal(12,2) //
payTotalSum
:
actionBody
.
payTotalSum
||
actionBody
.
totalSum
,
//decimal(12,2) //
refundSum
:
0
,
//decimal(12,2) //退款总额
totalServiceCharge
:
totalServiceCharge
,
//decimal(12,2) //服务费总额(产品配置的服务费*订单件数)
totalPublicExpense
:
totalPublicExpense
,
//decimal(12,2) //官费总额(产品配置的官费*订单件数)
...
...
@@ -68,27 +49,44 @@ class OrderInfoService extends ServiceBase {
totalDiscounts
:
0
,
//decimal(12,2) //优惠总额((服务费总额+官费总额)-订单总额(产品价格×优惠费率×订单件数)>0则有优惠额度)暂时没有用到
pfSettleProfit
:
0
,
//int(11) //平台结算渠道利润,0否,1是
invoiceApplyStatus
:
"00"
,
//varchar(10) //发票状态:00: 未申请, 10: 已申请,20:已开票
notes
:
,
//varchar(255) //
opNotes
:
,
//varchar(255) //操作备注
notes
:
""
,
//varchar(255) //
opNotes
:
""
,
//varchar(255) //操作备注
};
var
order
=
await
this
.
dao
.
create
(
params
,
t
);
//创建订单
var
orderProductObj
=
{
uapp_id
:
pobj
.
appInfo
.
uapp_id
,
sourceOrderNo
:
orderNo
,
// 来源单号
productType_id
:
price_item
.
productType_id
,
//产品类型Id
pathCode
:
price_item
.
path_code
,
//产品路径
itemCode
:
price_item
.
item_code
,
//产品编码
itemName
:
price_item
.
item_name
,
//产品名称
channelItemCode
:
price_item
.
channel_item_code
,
// 渠道产品编码
channelItemName
:
price_item
.
channel_item_name
,
// 渠道产品名称
serviceItemCode
:
price_item
.
service_item_code
,
// 服务商产品编码
picUrl
:
price_item
.
pic_url
,
// 产品图片地址
productType_id
:
actionBody
.
product_info
.
productType_id
,
//产品类型Id
pathCode
:
actionBody
.
product_info
.
path_code
,
//产品路径
itemCode
:
actionBody
.
product_info
.
item_code
,
//产品编码
itemName
:
actionBody
.
product_info
.
item_name
,
//产品名称
channelItemCode
:
actionBody
.
product_info
.
channel_item_code
,
// 渠道产品编码
channelItemName
:
actionBody
.
product_info
.
channel_item_name
,
// 渠道产品名称
serviceItemCode
:
actionBody
.
product_info
.
service_item_code
,
// 服务商产品编码
picUrl
:
actionBody
.
product_info
.
pic_url
,
// 产品图片地址
proPrice
:
actionBody
.
totalSum
,
// 产品总价格
quantity
:
actionBody
.
quantity
,
// 订单数量(即产品的倍数,默认值为1)
opPayType
:
"00"
,
// 操作付款类型:00: 创建订单, 10: 补单
serviceItemSnapshot
:
JSON
.
stringify
(
actionBody
.
product_info
),
//产品快照
};
var
orderProduct
=
await
this
.
orderProductDao
.
create
(
orderProductObj
,
t
);
//订单产品
var
orderProduct
=
await
this
.
orderproductDao
.
create
(
orderProductObj
,
t
);
//订单产品
var
orderReceiptVoucherObj
=
{
uapp_id
:
pobj
.
appInfo
.
uapp_id
,
sourceOrderNo
:
orderNo
,
// 来源单号
accountType
:
"other"
,
payDate
:
payTime
,
//支付时间
totalSum
:
actionBody
.
payTotalSum
||
actionBody
.
totalSum
,
//订单总额
auditStatus
:
"dsh"
,
wxPayOrderCode
:
orderNo
,
//业务微信支付订单号
aliPayOrderCode
:
orderNo
,
//业务支付宝支付订单号
busPayOrderCode
:
orderNo
,
//业务支付订单号
// payOrderNo: DataTypes.STRING, //支付凭证流水单号,如:微信支付凭证单号
// buyerOpenId: DataTypes.STRING,//用户在支付商户appid下的唯一标识或买家在支付宝的用户id
// passTradeNo: DataTypes.STRING,//通道的统一订单号
// buyerAliLogonId: DataTypes.STRING,//买家支付宝账号
// certifyFileUrl: order.orderNo, //支付证明文件Url
};
if
(
channelOrder
.
orderStatus
&&
channelOrder
.
orderStatus
==
2
)
{
//订单状态: 1: 待付款, 2: 已付款, 4: 待服务, 8: 已完成
var
moneyObj
=
{
uapp_id
:
pobj
.
appInfo
.
uapp_id
,
...
...
@@ -98,34 +96,18 @@ class OrderInfoService extends ServiceBase {
accountType
:
"other"
,
//帐户类型( 支付类型):"cash": "现金", "bank": "银行" ,"wx":"微信","alipay":"支付宝","other":"其它"
directionType
:
"sr"
,
//凭单类型,"sr": "收","zc": "支"
voucherDate
:
payTime
,
//凭单时间
recvAmount
:
channelOrder
.
payT
otalSum
,
//收总额
recvAmount
:
actionBody
.
payTotalSum
||
actionBody
.
t
otalSum
,
//收总额
sourceType
:
"orderinfo"
,
//来源类型 "orderinfo": "订单","expensevoucher": "费用单"
auditStatus
:
"tg"
,
//审核状态"dsh": "待审核", "btg": "不通过", "tg": "通过"
};
var
moneyJourney
=
await
this
.
moneyJourneyDao
.
create
(
moneyObj
,
t
);
var
orderReceiptVoucherObj
=
{
uapp_id
:
pobj
.
appInfo
.
uapp_id
,
sourceOrderNo
:
orderNo
,
// 来源单号
accountType
:
"other"
,
payDate
:
payTime
,
//支付时间
totalSum
:
channelOrder
.
payTotalSum
,
//订单总额
auditStatus
:
"tg"
// payOrderNo: DataTypes.STRING, //支付凭证流水单号,如:微信支付凭证单号
// buyerOpenId: DataTypes.STRING,//用户在支付商户appid下的唯一标识或买家在支付宝的用户id
// passTradeNo: DataTypes.STRING,//通道的统一订单号
// buyerAliLogonId: DataTypes.STRING,//买家支付宝账号
// certifyFileUrl: order.orderNo, //支付证明文件Url
// wxPayOrderCode: order.orderNo,//业务微信支付订单号
// aliPayOrderCode: order.orderNo,//业务支付宝支付订单号
// busPayOrderCode: order.orderNo,//业务支付订单号
};
var
orderReceiptVoucher
=
await
this
.
orderReceiptVoucherDao
.
create
(
orderReceiptVoucherObj
,
t
);
orderReceiptVoucherObj
.
auditStatus
=
"tg"
;
}
var
orderReceiptVoucher
=
await
this
.
orderReceiptVoucherDao
.
create
(
orderReceiptVoucherObj
,
t
);
}
/**
* 创建商标订单
* @param {*} pobj
* @param {*} pobj
* {
"actionType": "addOrder",
"actionBody": {
...
...
@@ -139,14 +121,10 @@ class OrderInfoService extends ServiceBase {
}
*/
async
createTmOrder
(
pobj
)
{
var
verifyResult
=
await
this
.
isOrderVerify
(
pobj
);
if
(
verifyResult
.
status
!=
0
)
{
return
verifyResult
;
}
var
self
=
this
;
return
await
self
.
db
.
transaction
(
async
function
(
t
)
{
var
orderNo
=
await
self
.
getBusUid
(
"tm"
+
pobj
.
appInfo
.
uapp_id
);
var
item
=
self
.
createOrder
(
pobj
,
orderNo
,
t
);
var
item
=
await
self
.
createOrder
(
pobj
,
orderNo
,
t
);
return
system
.
getResultSuccess
({
orderNo
:
orderNo
,
channelServiceNo
:
pobj
.
actionBody
.
channelOrder
.
channelServiceNo
||
orderNo
,
...
...
@@ -157,21 +135,17 @@ class OrderInfoService extends ServiceBase {
}
/**
* 创建其他订单
* @param {*} pobj
* @param {*} pobj
*/
async
createOtherOrder
(
pobj
)
{
var
verifyResult
=
await
this
.
isOrderVerify
(
pobj
);
if
(
verifyResult
.
status
!=
0
)
{
return
verifyResult
;
}
var
self
=
this
;
return
await
self
.
db
.
transaction
(
async
function
(
t
)
{
var
orderNo
=
await
self
.
getBusUid
(
"ot"
+
pobj
.
appInfo
.
uapp_id
);
var
item
=
self
.
createOrder
(
pobj
,
orderNo
,
t
);
var
item
=
await
self
.
createOrder
(
pobj
,
orderNo
,
t
);
return
system
.
getResultSuccess
({
orderNo
:
orderNo
,
channelServiceNo
:
pobj
.
actionBody
.
channelOrder
.
channelServiceNo
||
orderNo
,
channelParams
:
o
pobj
.
actionBody
.
channelOrder
.
channelParams
||
""
channelParams
:
pobj
.
actionBody
.
channelOrder
.
channelParams
||
""
});
});
...
...
@@ -188,6 +162,39 @@ class OrderInfoService extends ServiceBase {
// }
}
/**
* 获取付款订单信息
* @param {*} pobj
* @param {*} actionBody {orderNo:XXXX}
*/
async
getPayOrderInfo
(
pobj
,
actionBody
)
{
var
productItem
=
await
this
.
orderproductDao
.
getItemByOrderNo
(
actionBody
.
orderNo
,
pobj
.
appInfo
.
uapp_id
);
if
(
!
productItem
)
{
return
system
.
getResult
(
null
,
"订单产品数据异常,30050"
);
}
var
item
=
await
this
.
orderReceiptVoucherDao
.
getItemByOrderNo
(
actionBody
.
orderNo
,
pobj
.
appInfo
.
uapp_id
);
if
(
!
item
)
{
return
system
.
getResult
(
null
,
"订单已经付款成功,请勿重复支付,30010"
);
}
var
param
=
{
receiptVoucher
:
item
,
orderProduct
:
productItem
}
return
system
.
getResultSuccess
(
param
);
}
/**
* 修改订单收款信息
* @param {*} pobj
* @param {*} actionBody {orderNo:XXXX,trxid:XXX--支付流水号,isPut:1---大于0则进行修改操作,setField:{XXXXX}---修改的字段,receiptVoucherId:XX--收款Id,opType:"wx"}---"wx":"微信","alipay":"支付宝"
*/
async
putReceiptVoucherInfo
(
pobj
,
actionBody
)
{
var
isPut
=
actionBody
.
isPut
||
""
;
if
(
isPut
>
0
)
{
await
this
.
orderReceiptVoucherDao
.
updateByWhere
(
actionBody
.
setField
,
{
where
:
{
id
:
actionBody
.
receiptVoucherId
}
});
}
return
system
.
getResultSuccess
();
}
/**
* 数据推送
*/
// async pushData(requestid, params, url, req) {
...
...
@@ -243,7 +250,7 @@ class OrderInfoService extends ServiceBase {
// if (!orderNo) {
// return system.getResult(null, "订单编号不能为空");
// }
// var app = req.app;
// var app = req.app;
getItemStatusByChannelServiceNo
// if (!app || !app.uAppId) {
// return system.getResult(null, "渠道信息有误");
// }
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment