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
36106559
Commit
36106559
authored
Feb 13, 2020
by
宋毅
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
tj
parent
e47c3eb3
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
468 additions
and
234 deletions
+468
-234
center-order/app/base/api/impl/action/order.js
+33
-3
center-order/app/base/db/metadata/apps/platform.js
+1
-1
center-order/app/base/db/models/dbcorder/orderinfo.js
+5
-5
center-order/app/base/db/models/dbcorder/orderproduct.js
+1
-1
center-order/app/base/service/impl/dbcorder/orderinfoSve.js
+424
-220
center-order/app/config/localsettings.js
+1
-1
center-order/app/config/settings.js
+3
-3
No files found.
center-order/app/base/api/impl/action/order.js
View file @
36106559
...
...
@@ -4,7 +4,6 @@ var settings = require("../../../../config/settings");
class
OrderAPI
extends
APIBase
{
constructor
()
{
super
();
this
.
utilsProductSve
=
system
.
getObject
(
"service.utilsSve.utilsProductSve"
);
}
/**
* 接口跳转-POST请求
...
...
@@ -24,9 +23,9 @@ class OrderAPI extends APIBase {
}
async
opActionProcess
(
pobj
,
action_type
,
req
)
{
var
opResult
=
null
;
switch
(
action_type
)
{
switch
(
action_type
)
{
case
"addOrder"
:
//创建订单
opResult
=
await
this
.
utilsProductSve
.
findByTypeCode
(
pobj
,
pobj
.
actionBody
);
opResult
=
await
this
.
addOrder
(
pobj
,
pobj
.
actionBody
);
break
;
default
:
opResult
=
system
.
getResult
(
null
,
"action_type参数错误"
);
...
...
@@ -34,6 +33,36 @@ class OrderAPI extends APIBase {
}
return
opResult
;
}
async
addOrder
(
pobj
,
actionBody
)
{
if
(
!
actionBody
.
product_info
)
{
return
system
.
getResult
(
null
,
"产品信息有误,20010"
);
}
var
interface_info
=
actionBody
.
product_info
.
interface_info
;
if
(
!
interface_info
)
{
return
system
.
getResult
(
null
,
"产品接口信息有误,20030"
);
}
if
(
!
interface_info
.
interface_type
)
{
return
system
.
getResult
(
null
,
"产品接口类型信息有误,20050"
);
}
if
(
!
interface_info
.
interface_url
)
{
return
system
.
getResult
(
null
,
"产品接口地址信息有误,20080"
);
}
var
opResult
=
null
;
if
(
interface_info
.
interface_type
==
"bd"
)
{
if
(
!
interface_info
.
params
)
{
return
system
.
getResult
(
null
,
"产品接口参数信息有误,20110"
);
}
//操作的方法名称
var
invokeObj
=
system
.
getObject
(
interface_info
.
interface_url
);
if
(
!
invokeObj
[
interface_info
.
params
])
{
return
system
.
getResult
(
null
,
"产品接口参数方法信息有误,20130"
);
}
opResult
=
await
invokeObj
[
interface_info
.
params
].
apply
(
invokeObj
,
pobj
);
}
else
if
(
interface_info
.
interface_type
==
"yc"
)
{
}
return
opResult
;
}
}
module
.
exports
=
OrderAPI
;
\ No newline at end of file
center-order/app/base/db/metadata/apps/platform.js
View file @
36106559
...
...
@@ -28,7 +28,7 @@ module.exports = {
//订单类型
"order_type"
:
{
"zzdd"
:
"自主订单"
,
"dkxd"
:
"代客下单"
},
//订单付款状态
"order_
pay_
status"
:
{
1
:
"待付款"
,
2
:
"已付款"
,
4
:
"待服务"
,
8
:
"已完成"
},
"order_status"
:
{
1
:
"待付款"
,
2
:
"已付款"
,
4
:
"待服务"
,
8
:
"已完成"
},
//帐户类型( 支付类型)
"pay_account_type"
:
{
"cash"
:
"现金"
,
"bank"
:
"银行"
,
"wx"
:
"微信"
,
"alipay"
:
"支付宝"
,
"other"
:
"其它"
},
//订单服务付款状态
...
...
center-order/app/base/db/models/dbcorder/orderinfo.js
View file @
36106559
...
...
@@ -14,14 +14,14 @@ module.exports = (db, DataTypes) => {
payTime
:
DataTypes
.
DATE
,
// 渠道有支付时间则用渠道的支付时间
quantity
:
DataTypes
.
INTEGER
,
// 订单数量(即产品的倍数,默认值为1)
serviceQuantity
:
DataTypes
.
INTEGER
,
// 订单服务数量(即与订单数量相对应)
order
Pay
StatusName
:
DataTypes
.
STRING
(
50
),
//
order
Pay
Status
:{
orderStatusName
:
DataTypes
.
STRING
(
50
),
//
orderStatus
:{
type
:
DataTypes
.
INTEGER
,
set
:
function
(
val
)
{
this
.
setDataValue
(
"order
Pay
Status"
,
val
);
this
.
setDataValue
(
"order
PayStatusName"
,
uiconfig
.
config
.
pdict
.
order_pay
_status
[
val
]);
this
.
setDataValue
(
"orderStatus"
,
val
);
this
.
setDataValue
(
"order
StatusName"
,
uiconfig
.
config
.
pdict
.
order
_status
[
val
]);
}
},
// 订单
付款状态dfk: 待付款, zfpz: 已上传支付凭证, yfk: 已付款, bfyfk: 部分已付款, ddqx: 订单取消, tkclz: 退款处理中, bfytk: 部分已退款, ytk: 已退款,zfshbtg:支付审核不通过
},
// 订单
状态dfk: 1: 待付款, 2: 已付款, 4: 待服务, 8: 已完成
totalSum
:
DataTypes
.
DECIMAL
(
12
,
2
),
// 订单总额(产品价格×优惠费率×订单件数)
payTotalSum
:
DataTypes
.
DECIMAL
(
12
,
2
),
// 订单付款总额
refundSum
:
DataTypes
.
DECIMAL
(
12
,
2
),
// 退款金额
...
...
center-order/app/base/db/models/dbcorder/orderproduct.js
View file @
36106559
...
...
@@ -6,7 +6,7 @@ module.exports = (db, DataTypes) => {
uapp_id
:
DataTypes
.
INTEGER
,
//
sourceOrderNo
:
DataTypes
.
STRING
(
64
),
//来源单号
productType_id
:
DataTypes
.
INTEGER
,
//产品类型Id
p
roductOneType_id
:
DataTypes
.
INTEGER
,
//产品大类Id
p
athCode
:
DataTypes
.
STRING
(
512
),
//产品类型编码路径,如:1/2
itemCode
:
DataTypes
.
STRING
(
64
),
//产品编码
itemName
:
DataTypes
.
STRING
(
100
),
//产品名称
channelItemCode
:
DataTypes
.
STRING
(
100
),
// 渠道产品编码
...
...
center-order/app/base/service/impl/dbcorder/orderinfoSve.js
View file @
36106559
...
...
@@ -5,8 +5,6 @@ const uuidv4 = require('uuid/v4');
class
OrderInfoService
extends
ServiceBase
{
constructor
()
{
super
(
"dbcorder"
,
ServiceBase
.
getDaoName
(
OrderInfoService
));
this
.
appproductDao
=
system
.
getObject
(
"db.dbapp.appproductDao"
);
this
.
orderProductDao
=
system
.
getObject
(
"db.dbcorder.orderproductDao"
);
this
.
orderReceiptVoucherDao
=
system
.
getObject
(
"db.dbcpay.orderreceiptvoucherDao"
);
this
.
orderRefundVoucherDao
=
system
.
getObject
(
"db.dbcpay.orderrefundvoucherDao"
);
this
.
moneyJourneyDao
=
system
.
getObject
(
"db.dbcpay.moneyjourneyDao"
);
...
...
@@ -20,163 +18,358 @@ class OrderInfoService extends ServiceBase {
/*
* 订单验证
*/
async
isOrderVerify
(
serviceitem
,
buyProductCount
,
buyPrice
)
{
var
sveItemRateConfig
=
serviceitem
.
rateConfig
?
Number
(
serviceitem
.
rateConfig
)
:
0
;
//产品费率
var
fwf
=
serviceitem
.
serviceCharge
?
Number
(
serviceitem
.
serviceCharge
)
:
0
;
//服务费
var
yhfl
=
serviceitem
.
discountsRateConfig
?
Number
(
serviceitem
.
discountsRateConfig
)
:
0
;
//最大优惠费率
var
gf
=
serviceitem
.
publicExpense
?
Number
(
serviceitem
.
publicExpense
)
:
0
;
//产品官费
var
productCount
=
1
;
//产品数量
var
gfze
=
0
;
//官费总额
var
qdfcbl
=
serviceitem
.
channelProfitRate
?
Number
(
serviceitem
.
channelProfitRate
)
:
0
;
//渠道利润分成比率
productCount
=
Number
(
buyProductCount
);
//购买产品数量
buyPrice
=
Number
(
buyPrice
);
//购买价格
gfze
=
gf
*
Number
(
productCount
);
var
fwfze
=
Number
(
fwf
)
*
Number
(
productCount
);
//服务费总额
var
sfze
=
Number
(
buyPrice
)
/
(
sveItemRateConfig
+
100
)
*
sveItemRateConfig
;
//totalTaxes 税费总额
sfze
=
sfze
.
toFixed
(
2
);
sfze
=
Number
(
sfze
);
var
zdyhe
=
(
gfze
+
fwfze
)
*
yhfl
/
100
;
//最大优惠额
zdyhe
=
zdyhe
.
toFixed
(
2
);
zdyhe
=
Number
(
zdyhe
);
//毛利总额=应付总额-官费总额
var
mlze
=
Number
(
buyPrice
)
-
gfze
;
//totalProfitSum 毛利总额
mlze
=
mlze
.
toFixed
(
2
);
mlze
=
Number
(
mlze
);
//优惠金额=服务费+官费总额-应付总额(服务费、官费之和小于等于应付总额时,优惠金额为零)
var
yhje
=
fwfze
+
gfze
-
Number
(
buyPrice
);
if
(
yhje
<
0
)
{
yhje
=
0
;
async
isOrderVerify
(
pobj
)
{
var
actionBody
=
pobj
.
actionBody
;
var
price_list
=
actionBody
.
product_info
.
price_list
;
if
(
!
price_list
)
{
return
system
.
getResult
(
null
,
"产品价格列表信息有误,20150"
);
}
yhje
=
yhje
.
toFixed
(
2
);
yhje
=
Number
(
yhje
);
if
(
yhje
>
zdyhe
)
{
return
{
code
:
-
205
,
msg
:
"优惠总额有误"
};
var
product_price
=
price_list
.
filter
(
f
=>
f
.
id
==
actionBody
.
id
);
if
(
!
product_price
||
product_price
.
length
==
0
)
{
return
system
.
getResult
(
null
,
"产品价格信息有误,20180"
);
}
var
fcmlze_channel
=
mlze
*
qdfcbl
;
//订单渠道分成毛利润总额
var
fcmlze_platform
=
mlze
-
fcmlze_channel
;
//订单平台毛利润总额
return
{
code
:
1
,
data
:{
totalServiceCharge
:
fwfze
,
// 服务费总额(产品配置的服务费*订单件数)
totalPublicExpense
:
gfze
,
// 官费总额(产品配置的官费*订单件数)
totalTaxes
:
sfze
,
// 税费总额(订单总额-(订单总额/(1+产品费率)))
totalSum
:
buyPrice
,
// 订单总额(产品价格×优惠费率×订单件数)
totalProfitSum
:
mlze
,
// 订单毛利润总额(订单总额-官费总额)
totalDiscounts
:
yhje
,
// 优惠总额((服务费总额+官费总额)-订单总额(产品价格×优惠费率×订单件数)>0则有优惠额度)
pfProfitSum
:
fcmlze_platform
,
// 订单平台毛利润总额(订单毛利润总额-订单渠道分成毛利润总额)
channelProfitSum
:
fcmlze_channel
,
// 订单渠道分成毛利润总额((订单总额-官费总额)*渠道利润分成比率)
}};
}
/**
* 创建订单
*/
async
createOrder
(
obj
,
req
){
var
self
=
this
;
var
app
=
req
.
app
;
var
user
=
req
.
user
;
if
(
!
app
||
!
app
.
uAppId
){
return
system
.
getResult
(
null
,
"渠道信息有误"
);
var
totalSum
=
Number
(
product_price
[
0
].
price
)
*
Number
(
actionBody
.
quantity
);
if
(
Number
(
actionBody
.
totalSum
)
<
totalSum
)
{
return
system
.
getResult
(
null
,
"订单金额有误,20210"
);
}
if
(
!
user
){
return
system
.
getResult
(
null
,
"用户信息有误"
);
}
var
channelItemCode
=
obj
.
itemCode
;
if
(
!
channelItemCode
){
return
system
.
getResult
(
null
,
"未知的产品码"
);
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
;
var
price_item
=
actionBody
.
product_info
.
price_item
;
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
;
if
(
pfProfitSum
<
0
)
{
pfProfitSum
=
0
;
}
var
productItem
=
await
this
.
appproductDao
.
findOneByChannelItemCode
(
channelItemCode
,
app
.
id
);
//通过ChannelItemCode获取产品
// if (!productItem) {
// return system.getResult(null, "未知的产品");
// }
var
verifyResult
=
null
;
if
(
productItem
)
{
if
(
productItem
.
status
!=
1
){
return
system
.
getResult
(
null
,
"产品已禁用"
);
var
channelProfitSum
=
Number
(
totalProfitSum
)
-
Number
(
pfProfitSum
);
var
params
=
{
uapp_id
:
pobj
.
appInfo
.
uapp_id
,
//int(11) //
orderNo
:
orderNo
,
//varchar(64) //订单号
channelServiceNo
:
channelOrder
.
channelServiceNo
||
""
,
//varchar(64) //渠道服务单号
channelOrderNo
:
channelOrder
.
channelOrderNo
||
""
,
//varchar(1024) //渠道订单号列表,多个以,隔开
channelUserId
:
pobj
.
userInfo
.
channel_userId
,
//varchar(64) //
ownerUserId
:
pobj
.
userInfo
.
channel_userId
,
//varchar(20) //
needNo
:
channelOrder
.
needNo
||
""
,
//varchar(64) //需求单号
needNoOrderNo
:
channelOrder
.
needNoOrderNo
||
""
,
//varchar(64) //需求订单号
payTime
:
channelOrder
.
orderStatus
&&
channelOrder
.
orderStatus
==
1
?
new
Date
()
:
null
,
//datetime //
quantity
:
actionBody
.
quantity
,
//int(11) //项目订单数量(即服务项目的倍数,默认值为1)
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) //
refundSum
:
0
,
//decimal(12,2) //退款总额
totalServiceCharge
:
totalServiceCharge
,
//decimal(12,2) //服务费总额(产品配置的服务费*订单件数)
totalPublicExpense
:
totalPublicExpense
,
//decimal(12,2) //官费总额(产品配置的官费*订单件数)
totalProfitSum
:
totalProfitSum
,
//decimal(12,2) //订单毛利润总额(产品价格-供货价格))
pfProfitSum
:
pfProfitSum
,
//decimal(12,2) //订单平台毛利润总额((100-渠道利润分成比例)/100 * 订单毛利润总额)
channelProfitSum
:
channelProfitSum
,
//decimal(12,2) //订单渠道分成毛利润总额(订单毛利润总额-平台毛利润总额)
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) //操作备注
};
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
,
// 产品图片地址
proPrice
:
actionBody
.
totalSum
,
// 产品总价格
quantity
:
actionBody
.
quantity
,
// 订单数量(即产品的倍数,默认值为1)
opPayType
:
"00"
,
// 操作付款类型:00: 创建订单, 10: 补单
serviceItemSnapshot
:
JSON
.
stringify
(
actionBody
.
product_info
),
//产品快照
};
var
orderProduct
=
await
self
.
orderProductDao
.
create
(
orderProductObj
,
t
);
//订单产品
if
(
channelOrder
.
orderStatus
==
2
)
{
var
moneyObj
=
{
uapp_id
:
pobj
.
appInfo
.
uapp_id
,
sourceOrderNo
:
orderNo
,
// 来源单号
channelUserId
:
pobj
.
userInfo
.
channel_userId
,
ownerUserId
:
pobj
.
userInfo
.
channel_userId
,
accountType
:
"other"
,
//帐户类型( 支付类型):"cash": "现金", "bank": "银行" ,"wx":"微信","alipay":"支付宝","other":"其它"
directionType
:
"sr"
,
//凭单类型,"sr": "收","zc": "支"
voucherDate
:
channelOrder
.
payTime
,
//凭单时间
recvAmount
:
channelOrder
.
totalSum
,
//收总额
sourceType
:
"orderinfo"
,
//来源类型 "orderinfo": "订单","expensevoucher": "费用单"
auditStatus
:
"tg"
,
//审核状态"dsh": "待审核", "btg": "不通过", "tg": "通过"
};
var
moneyJourney
=
await
self
.
moneyJourneyDao
.
create
(
moneyObj
,
t
);
var
orderReceiptVoucherObj
=
{
uapp_id
:
pobj
.
appInfo
.
uapp_id
,
sourceOrderNo
:
orderNo
,
// 来源单号
accountType
:
"other"
,
payDate
:
channelOrder
.
payTime
,
//支付时间
totalSum
:
channelOrder
.
totalSum
,
//订单总额
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,//业务支付订单号
};
if
(
channelOrder
.
payStatus
==
'yfk'
||
channelOrder
.
payStatus
==
'bfyfk'
)
{
orderReceiptVoucherObj
.
auditStatus
=
"tg"
;
}
var
orderReceiptVoucher
=
await
self
.
orderReceiptVoucherDao
.
create
(
orderReceiptVoucherObj
,
t
);
}
var
channelUser
=
obj
.
channelUser
;
if
(
!
channelUser
||
!
channelUser
.
channelUserId
){
return
system
.
getResult
(
null
,
"渠道用户信息有误"
);
}
var
channelOrder
=
obj
.
channelOrder
;
if
(
!
channelOrder
||
!
channelOrder
.
channelServiceNo
){
return
system
.
getResult
(
null
,
"渠道订单信息有误"
);
}
if
(
!
channelOrder
.
quantity
){
return
system
.
getResult
(
null
,
"渠道订单产品数量不能为空"
);
}
if
(
!
channelOrder
.
totalSum
){
return
system
.
getResult
(
null
,
"渠道订单支付金额不能为空"
);
}
if
(
productItem
)
{
verifyResult
=
await
self
.
isOrderVerify
(
productItem
,
channelOrder
.
quantity
,
channelOrder
.
totalSum
);
if
(
verifyResult
&&
verifyResult
.
code
!=
1
)
{
return
system
.
getResult
(
null
,
verifyResult
.
msg
);
}
/**
* 创建商标订单
* @param {*} pobj
* {
"actionType": "addOrder",
"actionBody": {
"channelItemCode":"zzsbzc",
"id":1,
"quantity":1,
"totalSum":300,
"channelOrder":null,
"deliveryData":null
}
}
*/
async
createTmOrder
(
pobj
)
{
var
verifyResult
=
await
this
.
isOrderVerify
(
pobj
);
if
(
verifyResult
.
status
!=
0
)
{
return
verifyResult
;
}
var
beforeOrder
=
await
this
.
dao
.
model
.
findOne
({
where
:{
channelServiceNo
:
channelOrder
.
channelServiceNo
,
uapp_id
:
app
.
uAppId
},
raw
:
true
var
orderNo
=
await
self
.
getBusUid
(
"tm"
+
pobj
.
appInfo
.
uapp_id
);
return
await
self
.
db
.
transaction
(
async
function
(
t
)
{
var
orderNo
=
await
self
.
getBusUid
(
"o"
);
//创建订单
var
orderObj
=
{
uapp_id
:
app
.
uAppId
,
orderNo
:
orderNo
,
channelServiceNo
:
channelOrder
.
channelServiceNo
,
channelUserId
:
channelUser
.
channelUserId
,
channelOrderNo
:
channelOrder
.
channelOrderNo
,
ownerUserId
:
channelUser
.
channelUserId
,
quantity
:
channelOrder
.
quantity
,
needNo
:
channelOrder
.
needNo
,
payTime
:
channelOrder
.
payTime
,
orderPayStatus
:
channelOrder
.
payStatus
,
totalSum
:
channelOrder
.
totalSum
,
payTotalSum
:
channelOrder
.
payTotalSum
,
totalServiceCharge
:
0
,
// 服务费总额(产品配置的服务费*订单件数)
totalPublicExpense
:
0
,
// 官费总额(产品配置的官费*订单件数)
totalTaxes
:
0
,
// 税费总额(订单总额-(订单总额/(1+产品费率)))
totalProfitSum
:
0
,
// 订单毛利润总额(订单总额-官费总额)
totalDiscounts
:
0
,
// 优惠总额((服务费总额+官费总额)-订单总额(产品价格×优惠费率×订单件数)>0则有优惠额度)
pfProfitSum
:
0
,
// 订单平台毛利润总额(订单毛利润总额-订单渠道分成毛利润总额)
channelProfitSum
:
0
,
// 订单渠道分成毛利润总额((订单总额-官费总额)*渠道利润分成比率)
// pfSettleProfit :DataTypes.INTEGER,// 平台结算渠道利润,0否,1是
invoiceApplyStatus
:
"00"
,
// 发票状态:00: 未申请, 10: 已申请,20:已开票
};
if
(
verifyResult
&&
verifyResult
.
code
==
1
&&
verifyResult
.
data
)
{
var
orderCostObj
=
verifyResult
.
data
;
orderObj
.
totalServiceCharge
=
orderCostObj
.
totalServiceCharge
||
0
;
orderObj
.
totalPublicExpense
=
orderCostObj
.
totalPublicExpense
||
0
;
orderObj
.
totalTaxes
=
orderCostObj
.
totalTaxes
||
0
;
orderObj
.
totalProfitSum
=
orderCostObj
.
totalProfitSum
||
0
;
orderObj
.
totalDiscounts
=
orderCostObj
.
totalDiscounts
||
0
;
orderObj
.
pfProfitSum
=
orderCostObj
.
pfProfitSum
||
0
;
orderObj
.
channelProfitSum
=
orderCostObj
.
channelProfitSum
||
0
;
}
var
order
=
await
self
.
dao
.
create
(
orderObj
,
t
);
//创建订单
//var orderProductNo = await self.getBusUid("op");
if
(
productItem
)
{
var
orderProductObj
=
{
uapp_id
:
app
.
uAppId
,
sourceOrderNo
:
order
.
orderNo
,
// 来源单号
productType_id
:
productItem
.
productType_id
,
//产品类型Id
productOneType_id
:
productItem
.
productOneType_id
,
//产品大类Id
itemCode
:
productItem
.
itemCode
,
//产品编码
itemName
:
productItem
.
itemName
,
//产品名称
channelItemCode
:
productItem
.
channelItemCode
,
// 渠道产品编码
channelItemName
:
productItem
.
channelItemName
,
// 渠道产品名称
serviceItemCode
:
productItem
.
serviceItemCode
,
// 服务商产品编码
picUrl
:
productItem
.
picUrl
,
// 产品图片地址
proPrice
:
productItem
.
proPrice
,
// 产品价格
quantity
:
channelOrder
.
quantity
,
// 订单数量(即产品的倍数,默认值为1)
opPayType
:
"00"
,
// 操作付款类型:00: 创建订单, 10: 补单
serviceItemSnapshot
:
JSON
.
stringify
(
productItem
),
//产品快照
};
var
orderProduct
=
await
self
.
orderProductDao
.
create
(
orderProductObj
,
t
);
//订单产品
}
if
(
order
.
totalSum
>
0
)
{
//支付成功
var
moneyObj
=
{
uapp_id
:
app
.
uAppId
,
sourceOrderNo
:
order
.
orderNo
,
// 来源单号
channelUserId
:
channelUser
.
channelUserId
,
ownerUserId
:
channelUser
.
channelUserId
,
accountType
:
"other"
,
//帐户类型( 支付类型):"cash": "现金", "bank": "银行" ,"wx":"微信","alipay":"支付宝","other":"其它"
directionType
:
"sr"
,
//凭单类型,"sr": "收","zc": "支"
voucherDate
:
channelOrder
.
payTime
,
//凭单时间
recvAmount
:
channelOrder
.
totalSum
,
//收总额
sourceType
:
"orderinfo"
,
//来源类型 "orderinfo": "订单","expensevoucher": "费用单"
auditStatus
:
"dsh"
,
//审核状态"dsh": "待审核", "btg": "不通过", "tg": "通过"
};
if
(
channelOrder
.
payStatus
==
'yfk'
||
channelOrder
.
payStatus
==
'bfyfk'
)
{
moneyObj
.
auditStatus
=
"tg"
;
}
var
moneyJourney
=
await
self
.
moneyJourneyDao
.
create
(
moneyObj
,
t
);
var
orderReceiptVoucherObj
=
{
uapp_id
:
app
.
uAppId
,
sourceOrderNo
:
order
.
orderNo
,
// 来源单号
accountType
:
"other"
,
payDate
:
channelOrder
.
payTime
,
//支付时间
totalSum
:
channelOrder
.
totalSum
,
//订单总额
// 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
,
//业务支付订单号
auditStatus
:
"dsh"
};
if
(
channelOrder
.
payStatus
==
'yfk'
||
channelOrder
.
payStatus
==
'bfyfk'
)
{
orderReceiptVoucherObj
.
auditStatus
=
"tg"
;
}
var
orderReceiptVoucher
=
await
self
.
orderReceiptVoucherDao
.
create
(
orderReceiptVoucherObj
,
t
);
}
var
requestid
=
self
.
getUUID
();
if
(
productItem
&&
productItem
.
deliveryUrl
)
{
obj
[
"orderNo"
]
=
order
.
orderNo
;
self
.
pushData
(
requestid
,
obj
,
productItem
.
deliveryUrl
,
req
);
}
return
system
.
getResultSuccess
({
orderNo
:
order
.
orderNo
,
channelServiceNo
:
order
.
channelServiceNo
,
channelParams
:
obj
.
channelParams
,
requestid
:
requestid
});
});
if
(
beforeOrder
){
//订单已存在
return
system
.
getResultFail
(
2
,
"订单已存在"
,
beforeOrder
.
orderNo
);
}
/**
* 创建其他订单
* @param {*} pobj
*/
async
createOtherOrder
(
pobj
)
{
var
verifyResult
=
await
this
.
isOrderVerify
(
pobj
);
if
(
verifyResult
.
status
!=
0
)
{
return
verifyResult
;
}
var
orderNo
=
await
self
.
getBusUid
(
"o"
+
pobj
.
appInfo
.
uapp_id
);
var
params
=
{
uapp_id
:
pobj
.
appInfo
.
uapp_id
,
//int(11) //
orderNo
:
,
//varchar(64) //订单号
channelServiceNo
:
,
//varchar(64) //渠道服务单号
channelOrderNo
:
,
//varchar(1024) //渠道订单号列表,多个以,隔开
channelUserId
:
,
//varchar(64) //
ownerUserId
:
,
//varchar(20) //
needNo
:
,
//varchar(64) //需求单号
needNoOrderNo
:
,
//varchar(64) //需求订单号
payTime
:
,
//datetime //
quantity
:
,
//int(11) //项目订单数量(即服务项目的倍数,默认值为1)
serviceQuantity
:
,
//int(11) //项目订单交付数量(即与项目订单数量相对应)
orderPayStatusName
:
,
//varchar(50) //
orderPayStatus
:
,
//enum //订单付款状态dfk: 待付款, zfpz: 已上传支付凭证, yfk: 已付款, ddqx: 订单取消, tkclz: 退款处理中, bfytk: 部分已退款, ytk: 已退款,zfshbtg:支付审核不通过
totalSum
:
,
//decimal(12,2) //订单总额(产品价格×优惠费率×订单件数)
payTotalSum
:
,
//decimal(12,2) //
refundSum
:
,
//decimal(12,2) //订单总额(产品价格×优惠费率×订单件数)
totalServiceCharge
:
,
//decimal(12,2) //服务费总额(产品配置的服务费*订单件数)
totalPublicExpense
:
,
//decimal(12,2) //官费总额(产品配置的官费*订单件数)
totalProfitSum
:
,
//decimal(12,2) //订单毛利润总额(订单总额-官费总额)
totalDiscounts
:
,
//decimal(12,2) //优惠总额((服务费总额+官费总额)-订单总额(产品价格×优惠费率×订单件数)>0则有优惠额度)暂时没有用到
pfProfitSum
:
,
//decimal(12,2) //订单平台毛利润总额(订单毛利润总额-订单渠道分成毛利润总额)
channelProfitSum
:
,
//decimal(12,2) //订单渠道分成毛利润总额((订单总额-官费总额)*渠道利润分成比率)
pfSettleProfit
:
,
//int(11) //平台结算渠道利润,0否,1是
invoiceApplyStatus
:
,
//varchar(10) //发票状态:00: 未申请, 10: 已申请,20:已开票
notes
:
,
//varchar(255) //
opNotes
:
,
//varchar(255) //操作备注
created_at
:
,
//datetime //
updated_at
:
,
//datetime //
deleted_at
:
,
//datetime //
version
:
,
//int(11) //
};
return
await
self
.
db
.
transaction
(
async
function
(
t
)
{
var
orderNo
=
await
self
.
getBusUid
(
"o"
);
//创建订单
var
orderObj
=
{
uapp_id
:
app
.
uAppId
,
orderNo
:
orderNo
,
channelServiceNo
:
channelOrder
.
channelServiceNo
,
channelUserId
:
channelUser
.
channelUserId
,
channelOrderNo
:
channelOrder
.
channelOrderNo
,
ownerUserId
:
channelUser
.
channelUserId
,
quantity
:
channelOrder
.
quantity
,
needNo
:
channelOrder
.
needNo
,
payTime
:
channelOrder
.
payTime
,
orderPayStatus
:
channelOrder
.
payStatus
,
totalSum
:
channelOrder
.
totalSum
,
payTotalSum
:
channelOrder
.
payTotalSum
,
totalServiceCharge
:
0
,
// 服务费总额(产品配置的服务费*订单件数)
totalPublicExpense
:
0
,
// 官费总额(产品配置的官费*订单件数)
totalTaxes
:
0
,
// 税费总额(订单总额-(订单总额/(1+产品费率)))
totalProfitSum
:
0
,
// 订单毛利润总额(订单总额-官费总额)
totalDiscounts
:
0
,
// 优惠总额((服务费总额+官费总额)-订单总额(产品价格×优惠费率×订单件数)>0则有优惠额度)
pfProfitSum
:
0
,
// 订单平台毛利润总额(订单毛利润总额-订单渠道分成毛利润总额)
channelProfitSum
:
0
,
// 订单渠道分成毛利润总额((订单总额-官费总额)*渠道利润分成比率)
var
orderObj
=
{
uapp_id
:
app
.
uAppId
,
orderNo
:
orderNo
,
channelServiceNo
:
channelOrder
.
channelServiceNo
,
channelUserId
:
channelUser
.
channelUserId
,
channelOrderNo
:
channelOrder
.
channelOrderNo
,
ownerUserId
:
channelUser
.
channelUserId
,
quantity
:
channelOrder
.
quantity
,
needNo
:
channelOrder
.
needNo
,
payTime
:
channelOrder
.
payTime
,
orderPayStatus
:
channelOrder
.
payStatus
,
totalSum
:
channelOrder
.
totalSum
,
payTotalSum
:
channelOrder
.
payTotalSum
,
totalServiceCharge
:
0
,
// 服务费总额(产品配置的服务费*订单件数)
totalPublicExpense
:
0
,
// 官费总额(产品配置的官费*订单件数)
totalTaxes
:
0
,
// 税费总额(订单总额-(订单总额/(1+产品费率)))
totalProfitSum
:
0
,
// 订单毛利润总额(订单总额-官费总额)
totalDiscounts
:
0
,
// 优惠总额((服务费总额+官费总额)-订单总额(产品价格×优惠费率×订单件数)>0则有优惠额度)
pfProfitSum
:
0
,
// 订单平台毛利润总额(订单毛利润总额-订单渠道分成毛利润总额)
channelProfitSum
:
0
,
// 订单渠道分成毛利润总额((订单总额-官费总额)*渠道利润分成比率)
// pfSettleProfit :DataTypes.INTEGER,// 平台结算渠道利润,0否,1是
invoiceApplyStatus
:
"00"
,
// 发票状态:00: 未申请, 10: 已申请,20:已开票
invoiceApplyStatus
:
"00"
,
// 发票状态:00: 未申请, 10: 已申请,20:已开票
};
if
(
verifyResult
&&
verifyResult
.
code
==
1
&&
verifyResult
.
data
)
{
var
orderCostObj
=
verifyResult
.
data
;
orderObj
.
totalServiceCharge
=
orderCostObj
.
totalServiceCharge
||
0
;
orderObj
.
totalPublicExpense
=
orderCostObj
.
totalPublicExpense
||
0
;
orderObj
.
totalTaxes
=
orderCostObj
.
totalTaxes
||
0
;
orderObj
.
totalProfitSum
=
orderCostObj
.
totalProfitSum
||
0
;
orderObj
.
totalDiscounts
=
orderCostObj
.
totalDiscounts
||
0
;
orderObj
.
pfProfitSum
=
orderCostObj
.
pfProfitSum
||
0
;
orderObj
.
channelProfitSum
=
orderCostObj
.
channelProfitSum
||
0
;
if
(
verifyResult
&&
verifyResult
.
code
==
1
&&
verifyResult
.
data
)
{
var
orderCostObj
=
verifyResult
.
data
;
orderObj
.
totalServiceCharge
=
orderCostObj
.
totalServiceCharge
||
0
;
orderObj
.
totalPublicExpense
=
orderCostObj
.
totalPublicExpense
||
0
;
orderObj
.
totalTaxes
=
orderCostObj
.
totalTaxes
||
0
;
orderObj
.
totalProfitSum
=
orderCostObj
.
totalProfitSum
||
0
;
orderObj
.
totalDiscounts
=
orderCostObj
.
totalDiscounts
||
0
;
orderObj
.
pfProfitSum
=
orderCostObj
.
pfProfitSum
||
0
;
orderObj
.
channelProfitSum
=
orderCostObj
.
channelProfitSum
||
0
;
}
var
order
=
await
self
.
dao
.
create
(
orderObj
,
t
);
//创建订单
var
order
=
await
self
.
dao
.
create
(
orderObj
,
t
);
//创建订单
//var orderProductNo = await self.getBusUid("op");
if
(
productItem
)
{
if
(
productItem
)
{
var
orderProductObj
=
{
uapp_id
:
app
.
uAppId
,
sourceOrderNo
:
order
.
orderNo
,
// 来源单号
productType_id
:
productItem
.
productType_id
,
//产品类型Id
productOneType_id
:
productItem
.
productOneType_id
,
//产品大类Id
itemCode
:
productItem
.
itemCode
,
//产品编码
itemName
:
productItem
.
itemName
,
//产品名称
channelItemCode
:
productItem
.
channelItemCode
,
// 渠道产品编码
channelItemName
:
productItem
.
channelItemName
,
// 渠道产品名称
serviceItemCode
:
productItem
.
serviceItemCode
,
// 服务商产品编码
picUrl
:
productItem
.
picUrl
,
// 产品图片地址
proPrice
:
productItem
.
proPrice
,
// 产品价格
quantity
:
channelOrder
.
quantity
,
// 订单数量(即产品的倍数,默认值为1)
opPayType
:
"00"
,
// 操作付款类型:00: 创建订单, 10: 补单
serviceItemSnapshot
:
JSON
.
stringify
(
productItem
),
//产品快照
uapp_id
:
app
.
uAppId
,
sourceOrderNo
:
order
.
orderNo
,
// 来源单号
productType_id
:
productItem
.
productType_id
,
//产品类型Id
productOneType_id
:
productItem
.
productOneType_id
,
//产品大类Id
itemCode
:
productItem
.
itemCode
,
//产品编码
itemName
:
productItem
.
itemName
,
//产品名称
channelItemCode
:
productItem
.
channelItemCode
,
// 渠道产品编码
channelItemName
:
productItem
.
channelItemName
,
// 渠道产品名称
serviceItemCode
:
productItem
.
serviceItemCode
,
// 服务商产品编码
picUrl
:
productItem
.
picUrl
,
// 产品图片地址
proPrice
:
productItem
.
proPrice
,
// 产品价格
quantity
:
channelOrder
.
quantity
,
// 订单数量(即产品的倍数,默认值为1)
opPayType
:
"00"
,
// 操作付款类型:00: 创建订单, 10: 补单
serviceItemSnapshot
:
JSON
.
stringify
(
productItem
),
//产品快照
};
var
orderProduct
=
await
self
.
orderProductDao
.
create
(
orderProductObj
,
t
);
//订单产品
var
orderProduct
=
await
self
.
orderProductDao
.
create
(
orderProductObj
,
t
);
//订单产品
}
if
(
order
.
totalSum
>
0
)
{
//支付成功
var
moneyObj
=
{
uapp_id
:
app
.
uAppId
,
sourceOrderNo
:
order
.
orderNo
,
// 来源单号
channelUserId
:
channelUser
.
channelUserId
,
ownerUserId
:
channelUser
.
channelUserId
,
if
(
order
.
totalSum
>
0
)
{
//支付成功
var
moneyObj
=
{
uapp_id
:
app
.
uAppId
,
sourceOrderNo
:
order
.
orderNo
,
// 来源单号
channelUserId
:
channelUser
.
channelUserId
,
ownerUserId
:
channelUser
.
channelUserId
,
accountType
:
"other"
,
//帐户类型( 支付类型):"cash": "现金", "bank": "银行" ,"wx":"微信","alipay":"支付宝","other":"其它"
directionType
:
"sr"
,
//凭单类型,"sr": "收","zc": "支"
voucherDate
:
channelOrder
.
payTime
,
//凭单时间
...
...
@@ -184,13 +377,13 @@ class OrderInfoService extends ServiceBase {
sourceType
:
"orderinfo"
,
//来源类型 "orderinfo": "订单","expensevoucher": "费用单"
auditStatus
:
"dsh"
,
//审核状态"dsh": "待审核", "btg": "不通过", "tg": "通过"
};
if
(
channelOrder
.
payStatus
==
'yfk'
||
channelOrder
.
payStatus
==
'bfyfk'
)
{
moneyObj
.
auditStatus
=
"tg"
;
if
(
channelOrder
.
payStatus
==
'yfk'
||
channelOrder
.
payStatus
==
'bfyfk'
)
{
moneyObj
.
auditStatus
=
"tg"
;
}
var
moneyJourney
=
await
self
.
moneyJourneyDao
.
create
(
moneyObj
,
t
);
var
orderReceiptVoucherObj
=
{
uapp_id
:
app
.
uAppId
,
sourceOrderNo
:
order
.
orderNo
,
// 来源单号
var
moneyJourney
=
await
self
.
moneyJourneyDao
.
create
(
moneyObj
,
t
);
var
orderReceiptVoucherObj
=
{
uapp_id
:
app
.
uAppId
,
sourceOrderNo
:
order
.
orderNo
,
// 来源单号
accountType
:
"other"
,
payDate
:
channelOrder
.
payTime
,
//支付时间
totalSum
:
channelOrder
.
totalSum
,
//订单总额
...
...
@@ -198,130 +391,141 @@ class OrderInfoService extends ServiceBase {
// buyerOpenId: DataTypes.STRING,//用户在支付商户appid下的唯一标识或买家在支付宝的用户id
// passTradeNo: DataTypes.STRING,//通道的统一订单号
// buyerAliLogonId: DataTypes.STRING,//买家支付宝账号
// certifyFileUrl: order.orderNo, //支付证明文件Url
wxPayOrderCode
:
order
.
orderNo
,
//业务微信支付订单号
aliPayOrderCode
:
order
.
orderNo
,
//业务支付宝支付订单号
aliPayOrderCode
:
order
.
orderNo
,
//业务支付宝支付订单号
busPayOrderCode
:
order
.
orderNo
,
//业务支付订单号
auditStatus
:
"dsh"
auditStatus
:
"dsh"
};
if
(
channelOrder
.
payStatus
==
'yfk'
||
channelOrder
.
payStatus
==
'bfyfk'
)
{
orderReceiptVoucherObj
.
auditStatus
=
"tg"
;
if
(
channelOrder
.
payStatus
==
'yfk'
||
channelOrder
.
payStatus
==
'bfyfk'
)
{
orderReceiptVoucherObj
.
auditStatus
=
"tg"
;
}
var
orderReceiptVoucher
=
await
self
.
orderReceiptVoucherDao
.
create
(
orderReceiptVoucherObj
,
t
);
var
orderReceiptVoucher
=
await
self
.
orderReceiptVoucherDao
.
create
(
orderReceiptVoucherObj
,
t
);
}
var
requestid
=
self
.
getUUID
();
if
(
productItem
&&
productItem
.
deliveryUrl
)
{
obj
[
"orderNo"
]
=
order
.
orderNo
;
self
.
pushData
(
requestid
,
obj
,
productItem
.
deliveryUrl
,
req
);
var
requestid
=
self
.
getUUID
();
if
(
productItem
&&
productItem
.
deliveryUrl
)
{
obj
[
"orderNo"
]
=
order
.
orderNo
;
self
.
pushData
(
requestid
,
obj
,
productItem
.
deliveryUrl
,
req
);
}
return
system
.
getResultSuccess
({
orderNo
:
order
.
orderNo
,
channelServiceNo
:
order
.
channelServiceNo
,
channelParams
:
obj
.
channelParams
,
requestid
:
requestid
orderNo
:
order
.
orderNo
,
channelServiceNo
:
order
.
channelServiceNo
,
channelParams
:
obj
.
channelParams
,
requestid
:
requestid
});
});
}
async
createChannelSource
(
pobj
)
{
//创建渠道来源订单
var
orderNo
=
await
self
.
getBusUid
(
"oc"
+
pobj
.
appInfo
.
uapp_id
);
// var beforeOrder = await this.dao.model.findOne({
// where: { channelServiceNo: channelOrder.channelServiceNo, uapp_id: app.uAppId },
// raw: true
// });
// if (beforeOrder) {//订单已存在
// return system.getResultFail(2, "订单已存在", beforeOrder.orderNo);
// }
}
/**
* 数据推送
*/
async
pushData
(
requestid
,
params
,
url
,
req
)
{
async
pushData
(
requestid
,
params
,
url
,
req
)
{
var
rc
=
system
.
getObject
(
"util.execClient"
);
var
obj
=
params
;
var
rtn
=
null
;
try
{
rtn
=
await
rc
.
execPushDataPost
(
obj
,
url
,
req
.
headers
[
"token"
],
req
.
headers
[
"request-id"
]);
var
returnType
=
"0"
;
if
(
rtn
.
stdout
)
{
var
j
=
JSON
.
parse
(
rtn
.
stdout
);
if
(
j
&&
j
.
status
==
0
)
{
returnType
=
"1"
;
}
rtn
=
await
rc
.
execPushDataPost
(
obj
,
url
,
req
.
headers
[
"token"
],
req
.
headers
[
"request-id"
]);
var
returnType
=
"0"
;
if
(
rtn
.
stdout
)
{
var
j
=
JSON
.
parse
(
rtn
.
stdout
);
if
(
j
&&
j
.
status
==
0
)
{
returnType
=
"1"
;
}
this
.
pushlogSve
.
createDb
({
appid
:
req
.
app
.
id
,
requestId
:
requestid
,
op
:
url
,
content
:
JSON
.
stringify
(
obj
),
resultInfo
:
JSON
.
stringify
(
rtn
),
clientIp
:
req
.
clientIp
,
returnType
:
returnType
,
agent
:
req
.
uagent
,
opTitle
:
"数据推送-创建订单"
,
});
}
this
.
pushlogSve
.
createDb
({
appid
:
req
.
app
.
id
,
requestId
:
requestid
,
op
:
url
,
content
:
JSON
.
stringify
(
obj
),
resultInfo
:
JSON
.
stringify
(
rtn
),
clientIp
:
req
.
clientIp
,
returnType
:
returnType
,
agent
:
req
.
uagent
,
opTitle
:
"数据推送-创建订单"
,
});
}
catch
(
e
)
{
this
.
pushlogSve
.
createDb
({
appid
:
req
.
app
.
id
,
requestId
:
requestid
,
op
:
url
,
content
:
JSON
.
stringify
(
obj
),
resultInfo
:
JSON
.
stringify
(
e
.
stack
),
clientIp
:
req
.
clientIp
,
returnType
:
'0'
,
agent
:
req
.
uagent
,
opTitle
:
"数据推送-创建订单"
,
});
this
.
pushlogSve
.
createDb
({
appid
:
req
.
app
.
id
,
requestId
:
requestid
,
op
:
url
,
content
:
JSON
.
stringify
(
obj
),
resultInfo
:
JSON
.
stringify
(
e
.
stack
),
clientIp
:
req
.
clientIp
,
returnType
:
'0'
,
agent
:
req
.
uagent
,
opTitle
:
"数据推送-创建订单"
,
});
}
}
async
findAndCountAll
(
obj
,
req
)
{
async
findAndCountAll
(
obj
,
req
)
{
var
app
=
req
.
app
;
if
(
!
app
||
!
app
.
uAppId
)
{
if
(
!
app
||
!
app
.
uAppId
)
{
return
system
.
getResult
(
null
,
"渠道信息有误"
);
}
obj
[
"search"
][
"uapp_id"
]
=
app
.
uAppId
;
obj
[
"search"
][
"uapp_id"
]
=
app
.
uAppId
;
const
result
=
await
this
.
dao
.
findAndCountAll
(
obj
);
return
system
.
getResultSuccess
(
result
);
}
async
getOrderDetailByOrderNo
(
obj
,
req
)
{
async
getOrderDetailByOrderNo
(
obj
,
req
)
{
var
orderNo
=
obj
.
orderNo
;
if
(
!
orderNo
)
{
if
(
!
orderNo
)
{
return
system
.
getResult
(
null
,
"订单编号不能为空"
);
}
var
app
=
req
.
app
;
if
(
!
app
||
!
app
.
uAppId
)
{
if
(
!
app
||
!
app
.
uAppId
)
{
return
system
.
getResult
(
null
,
"渠道信息有误"
);
}
var
order
=
await
this
.
dao
.
model
.
findOne
({
where
:
{
orderNo
:
orderNo
,
uapp_id
:
app
.
uAppId
},
attributes
:
[
"orderNo"
,
"channelServiceNo"
,
"channelOrderNo"
,
"channelUserId"
,
"ownerUserId"
,
"needNo"
,
"payTime"
,
"quantity"
,
"serviceQuantity"
,
"orderPayStatus"
,
"orderPayStatusName"
,
"totalSum"
,
"payTotalSum"
,
"refundSum"
,
"created_at"
,
"opNotes"
,
"notes"
where
:
{
orderNo
:
orderNo
,
uapp_id
:
app
.
uAppId
},
attributes
:
[
"orderNo"
,
"channelServiceNo"
,
"channelOrderNo"
,
"channelUserId"
,
"ownerUserId"
,
"needNo"
,
"payTime"
,
"quantity"
,
"serviceQuantity"
,
"orderPayStatus"
,
"orderPayStatusName"
,
"totalSum"
,
"payTotalSum"
,
"refundSum"
,
"created_at"
,
"opNotes"
,
"notes"
],
raw
:
true
raw
:
true
});
if
(
order
&&
order
.
orderNo
)
{
if
(
order
&&
order
.
orderNo
)
{
var
orderproducts
=
await
this
.
orderProductDao
.
model
.
findAll
({
where
:
{
sourceOrderNo
:
order
.
orderNo
},
attributes
:
[
"sourceOrderNo"
,
"itemCode"
,
"itemName"
,
"channelItemCode"
,
"channelItemName"
,
"serviceItemCode"
,
"picUrl"
,
"proPrice"
,
"quantity"
,
"opPayType"
,
"serviceItemSnapshot"
,
where
:
{
sourceOrderNo
:
order
.
orderNo
},
attributes
:
[
"sourceOrderNo"
,
"itemCode"
,
"itemName"
,
"channelItemCode"
,
"channelItemName"
,
"serviceItemCode"
,
"picUrl"
,
"proPrice"
,
"quantity"
,
"opPayType"
,
"serviceItemSnapshot"
,
"created_at"
],
raw
:
true
raw
:
true
});
order
[
"orderproducts"
]
=
orderproducts
;
order
[
"orderproducts"
]
=
orderproducts
;
var
receptvouchers
=
await
this
.
orderReceiptVoucherDao
.
model
.
findAll
({
where
:
{
sourceOrderNo
:
order
.
orderNo
},
attributes
:[
"sourceOrderNo"
,
"accountType"
,
"accountTypeName"
,
"payDate"
,
"totalSum"
,
"payOrderNo"
,
"buyerOpenId"
,
"passTradeNo"
,
"buyerAliLogonId"
,
"certifyFileUrl"
,
"wxPayOrderCode"
,
"aliPayOrderCode"
,
"busPayOrderCode"
,
"auditStatusName"
,
"auditStatus"
where
:
{
sourceOrderNo
:
order
.
orderNo
},
attributes
:
[
"sourceOrderNo"
,
"accountType"
,
"accountTypeName"
,
"payDate"
,
"totalSum"
,
"payOrderNo"
,
"buyerOpenId"
,
"passTradeNo"
,
"buyerAliLogonId"
,
"certifyFileUrl"
,
"wxPayOrderCode"
,
"aliPayOrderCode"
,
"busPayOrderCode"
,
"auditStatusName"
,
"auditStatus"
],
raw
:
true
raw
:
true
});
order
[
"receptvouchers"
]
=
receptvouchers
;
order
[
"receptvouchers"
]
=
receptvouchers
;
var
refundvouchers
=
await
this
.
orderRefundVoucherDao
.
model
.
findAll
({
where
:
{
sourceOrderNo
:
order
.
orderNo
},
attributes
:[
where
:
{
sourceOrderNo
:
order
.
orderNo
},
attributes
:
[
"busPayOrderCode"
,
"sourceOrderNo"
,
"accountType"
,
"accountTypeName"
,
"payDate"
,
"totalSum"
,
"payOrderNo"
,
"buyerOpenId"
,
"passTradeNo"
,
"certifyFileUrl"
,
"auditStatusName"
,
"auditStatus"
"sourceOrderNo"
,
"accountType"
,
"accountTypeName"
,
"payDate"
,
"totalSum"
,
"payOrderNo"
,
"buyerOpenId"
,
"passTradeNo"
,
"certifyFileUrl"
,
"auditStatusName"
,
"auditStatus"
],
raw
:
true
raw
:
true
});
order
[
"refundvouchers"
]
=
refundvouchers
;
order
[
"refundvouchers"
]
=
refundvouchers
;
}
return
system
.
getResultSuccess
(
order
);
}
...
...
center-order/app/config/localsettings.js
View file @
36106559
...
...
@@ -3,7 +3,7 @@ var settings={
host
:
"43.247.184.32"
,
port
:
8967
,
password
:
"Gongsibao2018"
,
db
:
8
,
db
:
9
,
},
database
:{
dbname
:
"center_order"
,
...
...
center-order/app/config/settings.js
View file @
36106559
...
...
@@ -4,11 +4,11 @@ var ENVINPUT = {
DB_PORT
:
process
.
env
.
DB_PORT
,
DB_USER
:
process
.
env
.
DB_USER
,
DB_PWD
:
process
.
env
.
DB_PWD
,
DB_NAME
:
process
.
env
.
CENTER_
CHANNEL
_DB_NAME
,
DB_NAME
:
process
.
env
.
CENTER_
ORDER
_DB_NAME
,
REDIS_HOST
:
process
.
env
.
REDIS_HOST
,
REDIS_PORT
:
process
.
env
.
REDIS_PORT
,
REDIS_PWD
:
process
.
env
.
REDIS_PWD
,
REDIS_DB
:
process
.
env
.
CENTER_
CHANNEL
_REDIS_DB
,
REDIS_DB
:
process
.
env
.
CENTER_
ORDER
_REDIS_DB
,
APP_ENV
:
process
.
env
.
APP_ENV
?
process
.
env
.
APP_ENV
:
"dev"
};
var
settings
=
{
...
...
@@ -16,7 +16,7 @@ var settings = {
appKey
:
"201911061250"
,
secret
:
"f99d413b767f09b5dff0b3610366cc46"
,
salt
:
"%iatpD1gcxz7iF#B"
,
cacheprefix
:
"center
Channel
"
,
cacheprefix
:
"center
Order
"
,
usertimeout
:
3600
,
//单位秒
basepath
:
path
.
normalize
(
path
.
join
(
__dirname
,
'../..'
)),
port
:
process
.
env
.
NODE_PORT
||
4011
,
...
...
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