Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wenHuaBu_adminServer
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
node_server
wenHuaBu_adminServer
Commits
3ec9112b
Commit
3ec9112b
authored
Mar 15, 2024
by
lixinming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
no message
parent
a11acf6f
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
165 additions
and
48 deletions
+165
-48
order.ts
src/biz/member/order.ts
+127
-30
enum.ts
src/config/enum.ts
+17
-2
errorEnum.ts
src/config/errorEnum.ts
+4
-1
model.ts
src/data/models/model.ts
+12
-10
router.ts
src/routers/public/router.ts
+1
-1
router.ts
src/routers/router.ts
+4
-4
No files found.
src/biz/member/order.ts
View file @
3ec9112b
...
...
@@ -2,7 +2,7 @@
* 订单相关
*/
import
moment
=
require
(
"moment"
);
import
{
COSTTYPE
,
INVOICESTATUS
,
ISPAYENUM
,
MEMBERLEVEL
,
MEMBERTYPE
,
ORDERSTATE
,
PAYMENT
TYPE
,
RECEIPTCONFIRMATION
}
from
"../../config/enum"
;
import
{
COSTTYPE
,
INVOICESTATUS
,
ISPAYENUM
,
MEMBERLEVEL
,
MEMBERTYPE
,
ORDERSTATE
,
PAYMENT
STATUS
,
PAYMENTTYPE
,
RECEIPTCONFIRMATION
,
STATE
}
from
"../../config/enum"
;
import
{
generateOrderId
,
successResult
}
from
"../../tools/system"
;
import
{
changeEnumValue
,
eccEnumValue
}
from
"../../util/verificationEnum"
;
import
{
addOneData
}
from
"../../data/add"
;
...
...
@@ -57,10 +57,12 @@ export async function createOrder(userId:string, unitName:string, orderStartMs:n
/**
* 初始订单
* 初始订单 success
* 会员管理-待支付页
*/
export
async
function
firstOrderList
({
unitName
,
joinTime
,
memberType
,
orderState
,
pageNumber
})
{
let
findParam
:
any
=
{
isFirst
:
true
};
/** 首次订单 并且未通过待支付页的审核 */
let
findParam
:
any
=
{
"$or"
:[{
isFirst
:
true
,
firstPayExamine
:
false
}]
};
if
(
unitName
)
findParam
.
unitName
=
{
"$regex"
:
unitName
};
if
(
memberType
)
findParam
.
memberCategory
=
memberType
;
if
(
orderState
)
findParam
.
state
=
orderState
;
...
...
@@ -75,7 +77,13 @@ export async function firstOrderList({unitName, joinTime, memberType, orderState
itemData
.
joinTime
=
moment
(
info
.
orderCycleStart
).
format
(
"YYYY-MM-DD"
);
itemData
.
memberType
=
changeEnumValue
(
MEMBERTYPE
,
itemData
.
memberCategory
);
itemData
.
paymentMethod
=
changeEnumValue
(
MEMBERTYPE
,
itemData
.
paymentMethod
);
itemData
.
cycle
=
`
${
moment
(
info
.
orderCycleStart
).
format
(
"YYYY-MM-DD"
)}
至
${
moment
(
info
.
orderCycleEnd
).
format
(
"YYYY-MM-DD"
)}
`
itemData
.
cycle
=
`
${
moment
(
info
.
orderCycleStart
).
format
(
"YYYY-MM-DD"
)}
至
${
moment
(
info
.
orderCycleEnd
).
format
(
"YYYY-MM-DD"
)}
`
;
if
(
info
.
state
==
ORDERSTATE
.
未支付
)
{
itemData
.
state
=
"未支付"
;
}
else
{
if
(
info
.
paymentMethod
==
PAYMENTTYPE
.
银行转账
)
itemData
.
state
=
"银行转账"
;
else
itemData
.
state
=
"已支付"
;
}
dataList
.
push
(
itemData
);
});
...
...
@@ -84,13 +92,33 @@ export async function firstOrderList({unitName, joinTime, memberType, orderState
/**
* 财务核对列表
* 会员管理-待支付页-通过审核 success
* @param param0
*/
export
async
function
checkOrder
({
id
})
{
let
orderInfo
=
await
findOnce
(
TABLEENUM
.
订单表
,
{
id
});
if
(
!
orderInfo
||
!
orderInfo
.
id
)
throw
new
BizError
(
ERRORENUM
.
目标数据不存在
);
if
(
!
orderInfo
.
isFirst
||
orderInfo
.
firstPayExamine
)
throw
new
BizError
(
ERRORENUM
.
重复提交
);
await
updateOneData
(
TABLEENUM
.
订单表
,
{
id
},
{
firstPayExamine
:
true
,
confirmReceipt
:
RECEIPTCONFIRMATION
.
待确认
});
return
successResult
();
}
/**
* 发票管理-财务核对列表 success
* @param param0
*/
export
async
function
paidList
({
unitName
,
paymentType
,
costType
,
pageNumber
})
{
eccEnumValue
(
"财务核对列表"
,
"支付类型"
,
PAYMENTTYPE
,
paymentType
);
eccEnumValue
(
"财务核对列表"
,
"会费类别"
,
COSTTYPE
,
costType
);
let
findParam
:
any
=
{
isFirst
:
true
};
let
findParam
:
any
=
{
"$or"
:[{
isFirst
:
false
},
{
isFirst
:
true
,
firstPayExamine
:
true
}],
confirmReceipt
:
RECEIPTCONFIRMATION
.
待确认
,
state
:
ORDERSTATE
.
已支付
};
if
(
unitName
)
findParam
.
unitName
=
{
"$regex"
:
unitName
};
if
(
paymentType
)
findParam
.
paymentMethod
=
paymentType
;
if
(
costType
)
findParam
.
isFirst
=
costType
==
COSTTYPE
.
首次
;
...
...
@@ -117,14 +145,54 @@ export async function paidList({unitName, paymentType, costType, pageNumber }) {
/**
* 待开发票和已开发票
* 发票管理-财务核对页-收款确认 success
* @param param0
*/
export
async
function
confirmReceiptPass
({
id
})
{
let
orderInfo
=
await
findOnce
(
TABLEENUM
.
订单表
,
{
id
});
if
(
!
orderInfo
||
!
orderInfo
.
id
)
throw
new
BizError
(
ERRORENUM
.
目标数据不存在
);
if
(
orderInfo
.
isFirst
&&
!
orderInfo
.
firstPayExamine
)
throw
new
BizError
(
ERRORENUM
.
重复提交
,
'发票管理-财务核对页-收款确认'
,
`提交通过时订单未通过待支付页的校验`
);
if
(
orderInfo
.
confirmReceipt
!=
RECEIPTCONFIRMATION
.
待确认
)
throw
new
BizError
(
ERRORENUM
.
重复提交
,
'发票管理-财务核对页-收款确认'
,
`提交通过时订单已经不是待确认 是
${
orderInfo
.
confirmReceipt
}
`
);
await
updateOneData
(
TABLEENUM
.
订单表
,
{
id
},
{
confirmReceipt
:
RECEIPTCONFIRMATION
.
收款确认
,
invoiceStatus
:
INVOICESTATUS
.
未开发票
});
return
successResult
();
}
/**
* 发票管理-财务核对页-收款退回 success
* @param param0
*/
export
async
function
confirmReceiptOut
({
id
})
{
let
orderInfo
=
await
findOnce
(
TABLEENUM
.
订单表
,
{
id
});
if
(
!
orderInfo
||
!
orderInfo
.
id
)
throw
new
BizError
(
ERRORENUM
.
目标数据不存在
);
if
(
orderInfo
.
isFirst
&&
!
orderInfo
.
firstPayExamine
)
throw
new
BizError
(
ERRORENUM
.
重复提交
,
'发票管理-财务核对页-收款确认'
,
`提交通过时订单未通过待支付页的校验`
);
if
(
orderInfo
.
confirmReceipt
!=
RECEIPTCONFIRMATION
.
待确认
)
throw
new
BizError
(
ERRORENUM
.
重复提交
,
'发票管理-财务核对页-收款确认'
,
`提交通过时订单已经不是待确认 是
${
orderInfo
.
confirmReceipt
}
`
);
if
(
orderInfo
.
paymentMethod
==
PAYMENTTYPE
.
微信支付
)
throw
new
BizError
(
ERRORENUM
.
微信支付无法被退回
);
let
updateInfo
:
any
=
{
confirmReceipt
:
RECEIPTCONFIRMATION
.
退回
};
if
(
orderInfo
.
isFirst
==
true
)
{
updateInfo
.
firstPayExamine
=
false
;
}
await
updateOneData
(
TABLEENUM
.
订单表
,
{
id
},
{
confirmReceipt
:
RECEIPTCONFIRMATION
.
退回
});
return
successResult
();
}
/**
* 发票管理-待开发票 success
* @param param0
*/
export
async
function
billStateList
({
unitName
,
paymentType
,
isPay
,
pageNumber
,
invoiceStatus
})
{
export
async
function
billStateList
({
unitName
,
paymentType
,
isPay
,
pageNumber
})
{
eccEnumValue
(
"发票列表"
,
"支付类型"
,
PAYMENTTYPE
,
paymentType
);
eccEnumValue
(
"发票列表"
,
"是否支付"
,
ISPAYENUM
,
isPay
);
eccEnumValue
(
"发票列表"
,
"发票类型"
,
INVOICESTATUS
,
invoiceStatus
)
let
findParam
:
any
=
{
isFirst
:
true
};
let
findParam
:
any
=
{
invoiceStatus
:
INVOICESTATUS
.
未开发票
};
if
(
unitName
)
findParam
.
unitName
=
{
"$regex"
:
unitName
};
if
(
paymentType
)
findParam
.
paymentMethod
=
paymentType
;
if
(
isPay
)
findParam
.
state
=
isPay
...
...
@@ -150,60 +218,89 @@ export async function billStateList({unitName, paymentType, isPay, pageNumber, i
/**
*
待支付-通过审核
*
上传发票 success
* @param param0
*/
export
async
function
checkOrder
({
id
})
{
export
async
function
upInvoice
({
id
,
invoiceUrl
})
{
let
orderInfo
=
await
findOnce
(
TABLEENUM
.
订单表
,
{
id
});
if
(
!
orderInfo
||
!
orderInfo
.
id
)
throw
new
BizError
(
ERRORENUM
.
目标数据不存在
);
if
(
orderInfo
.
firstExamine
)
throw
new
BizError
(
ERRORENUM
.
重复提交
);
await
updateOneData
(
TABLEENUM
.
订单表
,
{
id
},
{
firstExamine
:
true
});
if
(
!
orderInfo
||
!
orderInfo
.
id
)
throw
new
BizError
(
ERRORENUM
.
目标数据不存在
);
if
(
orderInfo
.
invoiceStatus
!=
INVOICESTATUS
.
未开发票
)
throw
new
BizError
(
ERRORENUM
.
订单状态无法开具发票
,
`
${
orderInfo
.
id
}
无法开具发票,因为发票状态为
${
orderInfo
.
invoiceStatus
}
`
);
let
updateInfo
=
{
invoiceStatus
:
INVOICESTATUS
.
已开发票
,
invoiceAdd
:
invoiceUrl
};
await
updateOneData
(
TABLEENUM
.
订单表
,
{
id
},
updateInfo
);
return
successResult
();
}
/**
*
收款确认通过
*
退回发票 success
* @param param0
*/
export
async
function
confirmReceiptPass
({
id
})
{
export
async
function
backInvoice
({
id
})
{
let
orderInfo
=
await
findOnce
(
TABLEENUM
.
订单表
,
{
id
});
if
(
!
orderInfo
||
!
orderInfo
.
id
)
throw
new
BizError
(
ERRORENUM
.
目标数据不存在
);
if
(
orderInfo
.
confirmReceipt
!=
RECEIPTCONFIRMATION
.
待确认
)
throw
new
BizError
(
ERRORENUM
.
重复提交
,
`收款确认通过时 状态处于
${
orderInfo
.
confirmReceipt
}
`
);
if
(
!
orderInfo
||
!
orderInfo
.
id
)
throw
new
BizError
(
ERRORENUM
.
目标数据不存在
);
if
(
orderInfo
.
invoiceStatus
!=
INVOICESTATUS
.
未开发票
)
throw
new
BizError
(
ERRORENUM
.
订单状态无法开具发票
,
`
${
orderInfo
.
id
}
无法开具发票,因为发票状态为
${
orderInfo
.
invoiceStatus
}
`
);
await
updateOneData
(
TABLEENUM
.
订单表
,
{
id
},
{
confirmReceipt
:
RECEIPTCONFIRMATION
.
收款确认
}
);
if
(
orderInfo
.
paymentMethod
==
PAYMENTTYPE
.
微信支付
)
throw
new
BizError
(
ERRORENUM
.
微信支付无法退回发票请求
);
let
updateInfo
:
any
=
{
invoiceStatus
:
INVOICESTATUS
.
退回
,
};
if
(
orderInfo
.
state
==
ORDERSTATE
.
已支付
)
updateInfo
.
confirmReceipt
=
RECEIPTCONFIRMATION
.
待确认
await
updateOneData
(
TABLEENUM
.
订单表
,
{
id
},
updateInfo
);
return
successResult
();
}
/**
*
收款确认失败
*
发票管理-已开发票
* @param param0
*/
export
async
function
confirmReceiptOut
({
id
})
{
let
orderInfo
=
await
findOnce
(
TABLEENUM
.
订单表
,
{
id
}
);
if
(
!
orderInfo
||
!
orderInfo
.
id
)
throw
new
BizError
(
ERRORENUM
.
目标数据不存在
);
export
async
function
InvoicedList
({
unitName
,
paymentType
,
isPay
,
pageNumber
})
{
eccEnumValue
(
"发票列表"
,
"支付类型"
,
PAYMENTTYPE
,
paymentType
);
eccEnumValue
(
"发票列表"
,
"是否支付"
,
ISPAYENUM
,
isPay
);
if
(
orderInfo
.
confirmReceipt
!=
RECEIPTCONFIRMATION
.
待确认
)
throw
new
BizError
(
ERRORENUM
.
重复提交
,
`收款确认通过时 状态处于
${
orderInfo
.
confirmReceipt
}
`
);
let
findParam
:
any
=
{
invoiceStatus
:
INVOICESTATUS
.
已开发票
};
if
(
unitName
)
findParam
.
unitName
=
{
"$regex"
:
unitName
};
if
(
paymentType
)
findParam
.
paymentMethod
=
paymentType
;
if
(
isPay
)
findParam
.
state
=
isPay
await
updateOneData
(
TABLEENUM
.
订单表
,
{
id
},
{
confirmReceipt
:
RECEIPTCONFIRMATION
.
退回
});
let
selectFile
=
[
"id"
,
"unitName"
,
"orderCycleStart"
,
"orderCycleEnd"
,
"money"
,
"paymentMethod"
,
"memberCategory"
,
"state"
,
"paymentNum"
];
let
dbList
=
await
findToPage
(
TABLEENUM
.
订单表
,
findParam
,
selectFile
,
pageNumber
);
let
dataCount
=
await
findCount
(
TABLEENUM
.
订单表
,
findParam
);
return
successResult
();
let
dataList
=
[];
let
itemFile
=
[
"unitName"
,
"money"
,
"paymentNum"
];
dbList
.
forEach
(
info
=>
{
let
itemData
:
any
=
extractData
(
info
,
itemFile
);
itemData
.
joinTime
=
moment
(
info
.
orderCycleStart
).
format
(
"YYYY-MM-DD"
);
itemData
.
memberType
=
changeEnumValue
(
MEMBERTYPE
,
itemData
.
memberCategory
);
itemData
.
paymentMethod
=
changeEnumValue
(
MEMBERTYPE
,
itemData
.
paymentMethod
);
itemData
.
cycle
=
`
${
moment
(
info
.
orderCycleStart
).
format
(
"YYYY-MM-DD"
)}
至
${
moment
(
info
.
orderCycleEnd
).
format
(
"YYYY-MM-DD"
)}
`
dataList
.
push
(
itemData
);
});
return
{
dataList
,
dataCount
};
}
/**
* 个人页待订单列表
* 个人页待订单列表
success
* @param param0
*/
export
async
function
orderList
({
userId
,
type
})
{
eccEnumValue
(
"个人页待订单列表"
,
"类型"
,
ISPAYENUM
,
type
);
let
findParam
:
any
=
{};
let
findParam
:
any
=
{
userId
};
if
(
type
==
ORDERSTATE
.
已支付
)
findParam
.
state
=
ORDERSTATE
.
已支付
;
else
if
(
type
==
ORDERSTATE
.
未支付
)
findParam
.
state
=
ORDERSTATE
.
未支付
;
...
...
src/config/enum.ts
View file @
3ec9112b
...
...
@@ -402,11 +402,26 @@ export enum ISPAYENUM {
未支付
}
/**
* 发票状态
*/
export
enum
INVOICESTATUS
{
未开发票
=
1
,
已开发票
不具备开票条件
=
1
,
已开发票
=
2
,
未开发票
,
退回
}
/**
* 发票状态 前端用
*/
export
enum
INVOICESTATUSCLIENT
{
全部
=
0
,
已开发票
=
2
,
未开发票
,
}
/*
* 短信类型
...
...
src/config/errorEnum.ts
View file @
3ec9112b
...
...
@@ -26,7 +26,10 @@ export enum ERRORENUM {
验证码失效
,
验证码过期
,
重复提交
,
无法获取未来届次
无法获取未来届次
,
微信支付无法被退回
,
订单状态无法开具发票
,
微信支付无法退回发票请求
}
export
enum
ERRORCODEENUM
{
...
...
src/data/models/model.ts
View file @
3ec9112b
...
...
@@ -53,7 +53,7 @@
},
*/
import
{
MEMBERSTATE
,
RECEIPTCONFIRMATION
,
REGISTERFLOW
,
USERREGISTERSTATE
}
from
"../../config/enum"
;
import
{
INVOICESTATUS
,
MEMBERSTATE
,
RECEIPTCONFIRMATION
,
REGISTERFLOW
,
USERREGISTERSTATE
}
from
"../../config/enum"
;
...
...
@@ -434,21 +434,23 @@ const ModelArray = [
unitName
:
'String'
,
//单位名称
orderCycleStart
:
'Number'
,
//订单周期开始时间
orderCycleEnd
:
'Number'
,
//订单周期结束时间
money
:
'String'
,
//金额
memberId
:
'String'
,
//会员id
loginId
:
'String'
,
//登陆名
money
:
'String'
,
//金额
userId
:{
type
:
'String'
,
index
:
true
}
,
//会员id
loginId
:
{
type
:
'String'
,
index
:
true
}
,
//登陆名
phone
:
"String"
,
//登陆手机号
paymentNum
:
'String'
,
//支付单号(与订单号不一样)
// membershipFeesType:'Number',//会费类别 枚举
invoiceAdd
:
'String'
,
//发票图片地址
state
:
'Number'
,
//状态 是否支付 枚举 ORDERSTATE
firstExamine
:{
type
:
'Boolean'
,
default
:
false
},
//首次订单的审批开关
isFirst
:{
type
:
'Boolean'
,
default
:
true
},
//首次订单
invoiceStatus
:{
type
:
'Number'
,
index
:
true
},
//发票状态 枚举 INVOICESTATUS
state
:
'Number'
,
//状态 是否支付 枚举 ORDERSTATE
paymentMethod
:
'Number'
,
//付款方式 枚举 PAYMENTTYPE
memberCategory
:
'Number'
,
//会员类别 枚举 MEMBERTYPE
confirmReceipt
:{
type
:
'Number'
,
default
:
RECEIPTCONFIRMATION
.
待确认
},
//收款确认
weChartPR
:
"String"
,
//微信订单号
firstPayExamine
:{
type
:
'Boolean'
,
default
:
false
},
//首次订单的审批开关【待支付页审批开关】
confirmReceipt
:{
type
:
'Number'
,
default
:
RECEIPTCONFIRMATION
.
待确认
},
//收款确认【财务核对页收款确认】
invoiceStatus
:{
type
:
'Number'
,
default
:
INVOICESTATUS
.
不具备开票条件
,
index
:
true
},
//发票状态 枚举 INVOICESTATUS 【待开发票页上传发票之后更新状态】
advanceInvoice
:{
type
:
'Boolean'
,
default
:
false
},
//是否提前开票 【个人列表页提交开发票按钮】
// memberCategory:'Number',//会员类别 枚举 MEMBERTYPE
// weChartPR:"String",//微信订单号
}
},
{
...
...
src/routers/public/router.ts
View file @
3ec9112b
...
...
@@ -140,7 +140,7 @@ export const Config = {
apiName
:
"发票状态"
,
subUrl
:
'/invoicestate'
,
param
:[],
defaultParam
:
enumConfig
.
INVOICESTATUS
,
defaultParam
:
enumConfig
.
INVOICESTATUS
CLIENT
,
bindBiz
:
publicBiz
.
setEnumInterface
},
{
...
...
src/routers/router.ts
View file @
3ec9112b
...
...
@@ -15,15 +15,15 @@ import * as officalWebsiteRouter from "./officalWebsite/router";
import
*
as
orderRouter
from
"./order/router"
;
import
*
as
asyncHandler
from
'express-async-handler'
;
const
Look
=
tru
e
;
//true更新文档
const
Look
=
fals
e
;
//true更新文档
export
async
function
setRouter
(
httpServer
){
if
(
Look
)
{
await
getDoc
();
//
await initDoc(portalRouter.FirstName, portalRouter.Config, portalRouter.FirstRouter);//网站编辑
await
initDoc
(
portalRouter
.
FirstName
,
portalRouter
.
Config
,
portalRouter
.
FirstRouter
);
//网站编辑
await
initDoc
(
publicRouter
.
FirstName
,
publicRouter
.
Config
,
publicRouter
.
FirstRouter
);
//公用组件
//
await initDoc(memberRouter.FirstName, memberRouter.Config, memberRouter.FirstRouter);//用户路由
//
await initDoc(officalWebsiteRouter.FirstName, officalWebsiteRouter.Config, officalWebsiteRouter.FirstRouter);//官网路由
await
initDoc
(
memberRouter
.
FirstName
,
memberRouter
.
Config
,
memberRouter
.
FirstRouter
);
//用户路由
await
initDoc
(
officalWebsiteRouter
.
FirstName
,
officalWebsiteRouter
.
Config
,
officalWebsiteRouter
.
FirstRouter
);
//官网路由
await
initDoc
(
orderRouter
.
FirstName
,
orderRouter
.
Config
,
orderRouter
.
FirstRouter
);
//会费相关
}
await
analysisRouter
(
httpServer
,
portalRouter
.
Config
,
portalRouter
.
FirstRouter
);
//网站编辑
...
...
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