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
b36b4141
Commit
b36b4141
authored
Dec 02, 2024
by
lixinming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
no message
parent
a9942723
Show whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
193 additions
and
36 deletions
+193
-36
authority.ts
src/biz/member/authority.ts
+16
-8
cost.ts
src/biz/member/cost.ts
+5
-4
examine.ts
src/biz/member/examine.ts
+3
-1
memberFees.ts
src/biz/member/memberFees.ts
+24
-0
order.ts
src/biz/member/order.ts
+8
-4
user.ts
src/biz/member/user.ts
+1
-2
public.ts
src/biz/public.ts
+1
-0
register.ts
src/biz/register.ts
+28
-1
task.ts
src/biz/task.ts
+19
-0
enum.ts
src/config/enum.ts
+4
-1
errorEnum.ts
src/config/errorEnum.ts
+4
-2
outPutConfig.ts
src/config/outPutConfig.ts
+21
-5
model.ts
src/data/models/model.ts
+10
-1
httpErrorHandler.ts
src/middleware/httpErrorHandler.ts
+9
-4
user.ts
src/middleware/user.ts
+5
-0
router.ts
src/routers/member/router.ts
+25
-0
router.ts
src/routers/public/router.ts
+7
-0
router.ts
src/routers/router.ts
+3
-3
No files found.
src/biz/member/authority.ts
View file @
b36b4141
...
...
@@ -2,7 +2,7 @@
* 会员管理 【权限管理】success
*/
import
{
INDIVIDUALMEMBERTYPE
,
MEMBERLEVEL
,
MEMBERSTATE
,
MEMBERTYPE
,
STATE
,
UNITMEMBERTYPE
}
from
"../../config/enum"
;
import
{
INDIVIDUALMEMBERTYPE
,
MEMBERLEVEL
,
MEMBERSTATE
,
MEMBERTYPE
,
STATE
,
UNITMEMBERTYPE
,
USERREGISTERSTATE
}
from
"../../config/enum"
;
import
{
ERRORENUM
}
from
"../../config/errorEnum"
;
import
{
TABLEENUM
}
from
"../../data/models/model"
;
import
{
findCount
,
findOnce
,
findToPage
}
from
"../../data/select"
;
...
...
@@ -16,31 +16,39 @@ import { changeEnumValue, eccEnumValue } from "../../util/verificationEnum";
/**
* 会员权限列表 success
* @param unitName 单位名称
* @param unitName 单位名称
//改成了名称关键词
* @param memberLevel 会员等级、职务 MEMBERLEVEL
* @param memberCategory 会员类别、会员级别 UNITMEMBERTYPE、INDIVIDUALMEMBERTYPE 前端用MEMBERTYPEECCENUM
* @param pageNumber 当前页
*/
export
async
function
getAuthority
({
unitName
,
memberLevel
,
memberCategory
,
pageNumber
})
{
/**查询条件 */
let
selectParam
:
any
=
{
isAdmin
:
STATE
.
否
};
if
(
unitName
)
selectParam
.
unitName
=
unitName
;
let
selectParam
:
any
=
{
isAdmin
:
STATE
.
否
,
userRegisterState
:
USERREGISTERSTATE
.
通过
,
isBlackUser
:
STATE
.
否
};
if
(
unitName
)
{
selectParam
[
"$or"
]
=
[{
unitName
:{
"$regex"
:
`
${
unitName
}
`
}},
{
name
:{
"$regex"
:
`
${
unitName
}
`
}}];
}
if
(
memberLevel
)
selectParam
.
memberLevel
=
memberLevel
;
if
(
memberCategory
)
{
if
(
memberCategory
>=
9
)
selectParam
.
unitMemberType
=
memberCategory
;
else
selectParam
.
individualMemberType
=
memberCategory
;
}
const
SelectFiles
=
[
"userId"
,
"memberState"
,
"unitName"
,
"name"
,
"memberLevel"
,
"memberType"
,
"individualMemberType"
,
"unitMemberType"
,
"memberCategory"
];
const
SelectFiles
=
[
"userId"
,
"memberState"
,
"unitName"
,
"name"
,
"memberLevel"
,
"memberType"
,
"individualMemberType"
,
"unitMemberType"
,
"memberCategory"
,
"name"
];
let
dbList
=
await
findToPage
(
TABLEENUM
.
用户表
,
selectParam
,
SelectFiles
,
pageNumber
);
let
dataCount
=
await
findCount
(
TABLEENUM
.
用户表
,
selectParam
);
const
ResultFiles
=
[
"userId"
,
"memberState"
,
"memberLevel"
,
"memberType"
,
"unitName"
];
const
ResultFiles
=
[
"userId"
,
"memberState"
,
"memberLevel"
,
"memberType"
,
"unitName"
,
"name"
];
let
dataList
=
[];
dbList
.
forEach
(
info
=>
{
let
item
:
any
=
extractData
(
info
,
ResultFiles
);
if
(
info
.
memberType
==
MEMBERTYPE
.
个人会员
)
{
item
.
memberCategory
=
changeEnumValue
(
INDIVIDUALMEMBERTYPE
,
info
.
individualMemberType
);
//会员类别/级别
//会员类别/级别 2024年11月29甘明说的,个人会员这里显示个人会员不显示类别
// item.memberCategory = changeEnumValue(INDIVIDUALMEMBERTYPE, info.individualMemberType);
if
(
info
.
individualMemberType
==
INDIVIDUALMEMBERTYPE
.
普通会员
)
item
.
memberCategory
=
changeEnumValue
(
MEMBERTYPE
,
info
.
memberType
);
else
item
.
memberCategory
=
changeEnumValue
(
INDIVIDUALMEMBERTYPE
,
info
.
individualMemberType
);
}
else
{
item
.
memberCategory
=
changeEnumValue
(
UNITMEMBERTYPE
,
info
.
unitMemberType
);
//会员类别/级别
...
...
src/biz/member/cost.ts
View file @
b36b4141
...
...
@@ -2,7 +2,7 @@
* 收费
*/
import
{
MEMBERSTATE
,
ORDEREXAMINE
,
ORDERSTATE
,
PAYMENTSTATUS
,
PAYMENTTYPE
,
RECEIPTCONFIRMATION
,
STATE
,
WEICHARTPAYSTATE
}
from
"../../config/enum"
;
import
{
INVOICESTATUS
,
MEMBERSTATE
,
ORDEREXAMINE
,
ORDERSTATE
,
PAYMENTSTATUS
,
PAYMENTTYPE
,
RECEIPTCONFIRMATION
,
STATE
,
WEICHARTPAYSTATE
}
from
"../../config/enum"
;
import
{
TABLEENUM
}
from
"../../data/models/model"
;
import
{
findCount
,
findOnce
,
findOnceToSort
}
from
"../../data/select"
;
import
*
as
path
from
"path"
;
...
...
@@ -52,8 +52,8 @@ export async function placeAnOrder({id}) {
description
:
desc
,
out_trade_no
,
//订单号
amount
:{
//金额
total
:
orderInfo
.
money
*
100
//微信支付的单位是分 金额要乘100
//
total:1
//
total:orderInfo.money * 100 //微信支付的单位是分 金额要乘100
total
:
1
},
notify_url
:
systemConfig
.
weChartNotifyUrl
,
//订单回调
};
...
...
@@ -141,7 +141,8 @@ export async function payCallback(body) {
payTime
:
new
Date
().
valueOf
(),
weChartState
:
WEICHARTPAYSTATE
.
已支付
,
confirmReceipt
:
RECEIPTCONFIRMATION
.
收款确认
,
confirmReceiptMs
:
new
Date
().
valueOf
()
confirmReceiptMs
:
new
Date
().
valueOf
(),
invoiceStatus
:
INVOICESTATUS
.
未开发票
};
await
updateOneData
(
TABLEENUM
.
订单表
,
{
weChartPR
:
wechartCallbackData
.
out_trade_no
},
updateInfo
);
...
...
src/biz/member/examine.ts
View file @
b36b4141
...
...
@@ -267,7 +267,9 @@ export async function reject({id, remarks}) {
/**驳回修改,修改该会员注册流程回到第二步 */
let
updateParam
=
{
userRegisterState
:
USERREGISTERSTATE
.
驳回修改
,
registerFlow
:
REGISTERFLOW
.
完成第一步
registerFlow
:
REGISTERFLOW
.
完成第一步
,
firstStep
:
new
Date
().
valueOf
(),
saveUnsubmitted
:
STATE
.
否
}
await
updateOneData
(
TABLEENUM
.
用户表
,
{
userId
},
updateParam
);
...
...
src/biz/member/memberFees.ts
View file @
b36b4141
...
...
@@ -17,6 +17,30 @@ import { addOneData } from "../../data/add";
/**
* 导出会费管理表格
* @param param0
*/
export
async
function
outPutDataForExcel
({
type
,
files
})
{
if
(
type
==
1
)
{
//未缴费名单
}
else
if
(
type
==
2
)
{
//已缴费名单
}
else
if
(
type
==
3
)
{
//缴费期名单
}
else
{
//宽限期名单
}
return
{
dataList
:[[
"测试"
,
"测试2"
]]};
}
/**
* 已缴费列表 success
* @param name 名称关键字:个人会员匹配真实姓名,单位会员匹配单位名称
* @param memberType 会员类别 unitMemberType、individualMemberType 多选
...
...
src/biz/member/order.ts
View file @
b36b4141
...
...
@@ -343,7 +343,7 @@ export async function outPutConfirmReceipt({exportColumns}) {
let
dataList
=
[
selectTitle
];
for
(
let
i
=
0
;
i
<
dbList
.
length
;
i
++
)
{
let
info
=
dbList
[
i
];
let
userInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
userId
:
info
.
userId
},
[
"memberState"
,
"name"
,
"unitName"
,
"documentId"
,
"uscc"
,
"mail"
,
"unitMail"
]);
let
userInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
userId
:
info
.
userId
},
[
"memberState"
,
"name"
,
"unitName"
,
"documentId"
,
"uscc"
,
"mail"
,
"unitMail"
,
"memberLevel"
,
"phone"
]);
let
subList
=
[];
for
(
let
i
=
0
;
i
<
selectConf
.
length
;
i
++
)
{
let
key
=
selectConf
[
i
];
...
...
@@ -390,6 +390,7 @@ export async function confirmReceiptHistory({id}) {
let
dbList
=
await
find
(
TABLEENUM
.
订单审批历史表
,
{
orderId
:
id
});
let
dataList
=
[];
dbList
.
sort
((
a
,
b
)
=>
{
return
b
.
operationTime
-
a
.
operationTime
});
dbList
.
forEach
(
info
=>
{
let
item
:
any
=
extractData
(
info
,
[
"operationTime"
,
"operationBehavior"
,
"remarks"
,
"refundImgUrl"
]);
item
.
operationTime
=
moment
(
item
.
operationTime
).
format
(
"YYYY-MM-DD HH:mm:SS"
);
...
...
@@ -557,7 +558,7 @@ export async function backInvoice({id}) {
let
dataList
=
[
selectTitle
];
for
(
let
i
=
0
;
i
<
dbList
.
length
;
i
++
)
{
let
info
=
dbList
[
i
];
let
userInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
userId
:
info
.
userId
},
[
"memberState"
,
"name"
,
"unitName"
,
"documentId"
,
"uscc"
,
"mail"
,
"unitMail"
]);
let
userInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
userId
:
info
.
userId
},
[
"memberState"
,
"name"
,
"unitName"
,
"documentId"
,
"uscc"
,
"mail"
,
"unitMail"
,
"memberLevel"
,
"phone"
]);
let
subList
=
[];
for
(
let
i
=
0
;
i
<
selectConf
.
length
;
i
++
)
{
let
key
=
selectConf
[
i
];
...
...
@@ -607,6 +608,7 @@ export async function billStateHistory({id}) {
let
dbList
=
await
find
(
TABLEENUM
.
订单审批历史表
,
{
orderId
:
id
});
let
dataList
=
[];
dbList
.
sort
((
a
,
b
)
=>
{
return
b
.
operationTime
-
a
.
operationTime
});
dbList
.
forEach
(
info
=>
{
let
item
:
any
=
extractData
(
info
,
[
"operationTime"
,
"operationBehavior"
,
"remarks"
,
"refundImgUrl"
]);
item
.
operationTime
=
moment
(
item
.
operationTime
).
format
(
"YYYY-MM-DD HH:mm:SS"
);
...
...
@@ -749,7 +751,7 @@ export async function invoicedList({name, memberType, documentId, phone, mail, j
let
dataList
=
[
selectTitle
];
for
(
let
i
=
0
;
i
<
dbList
.
length
;
i
++
)
{
let
info
=
dbList
[
i
];
let
userInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
userId
:
info
.
userId
},
[
"memberState"
,
"name"
,
"unitName"
,
"documentId"
,
"uscc"
,
"mail"
,
"unitMail"
]);
let
userInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
userId
:
info
.
userId
},
[
"memberState"
,
"name"
,
"unitName"
,
"documentId"
,
"uscc"
,
"mail"
,
"unitMail"
,
"memberLevel"
,
"phone"
]);
let
subList
=
[];
for
(
let
i
=
0
;
i
<
selectConf
.
length
;
i
++
)
{
let
key
=
selectConf
[
i
];
...
...
@@ -796,6 +798,7 @@ export async function invoicedHistory({id}) {
let
dbList
=
await
find
(
TABLEENUM
.
订单审批历史表
,
{
orderId
:
id
});
let
dataList
=
[];
dbList
.
sort
((
a
,
b
)
=>
{
return
b
.
operationTime
-
a
.
operationTime
});
dbList
.
forEach
(
info
=>
{
let
item
:
any
=
extractData
(
info
,
[
"operationTime"
,
"operationBehavior"
,
"remarks"
,
"refundImgUrl"
]);
item
.
operationTime
=
moment
(
item
.
operationTime
).
format
(
"YYYY-MM-DD HH:mm:SS"
);
...
...
@@ -1173,7 +1176,7 @@ export async function refundApprove({id, refundImgUrl}) {
let
dataList
=
[
selectTitle
];
for
(
let
i
=
0
;
i
<
dbList
.
length
;
i
++
)
{
let
info
=
dbList
[
i
];
let
userInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
userId
:
info
.
userId
},
[
"memberState"
,
"name"
,
"unitName"
]);
let
userInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
userId
:
info
.
userId
},
[
"memberState"
,
"name"
,
"unitName"
,
"memberLevel"
,
"phone"
]);
let
subList
=
[];
for
(
let
i
=
0
;
i
<
selectConf
.
length
;
i
++
)
{
let
key
=
selectConf
[
i
];
...
...
@@ -1193,6 +1196,7 @@ export async function refundApprove({id, refundImgUrl}) {
if
(
value
)
{
if
(
timeChnageList
.
indexOf
(
key
)
!=
-
1
)
value
=
moment
(
value
).
format
(
"YYYY-MM-DD"
);
else
if
(
key
==
"memberCategory"
)
value
=
changeEnumValue
(
MEMBERTYPE
,
value
);
else
if
(
key
==
"memberLevel"
)
value
=
changeEnumValue
(
MEMBERLEVEL
,
value
);
}
subList
.
push
(
value
);
}
...
...
src/biz/member/user.ts
View file @
b36b4141
...
...
@@ -2,7 +2,7 @@
* 用户逻辑
*/
import
{
ADMINTYPE
,
CODETYPE
,
MEMBERSTATE
,
STATE
,
USERREGISTERSTATE
}
from
"../../config/enum"
;
import
{
ADMINTYPE
,
CODETYPE
,
MEMBERSTATE
,
REGISTERSTART
,
STATE
,
USERREGISTERSTATE
}
from
"../../config/enum"
;
import
{
ERRORENUM
}
from
"../../config/errorEnum"
;
import
{
addOneData
}
from
"../../data/add"
;
import
{
TABLEENUM
}
from
"../../data/models/model"
;
...
...
@@ -136,4 +136,3 @@ export async function memberChangePwdSendCode({phone}) {
return
{
code
:
""
};
}
src/biz/public.ts
View file @
b36b4141
...
...
@@ -103,6 +103,7 @@ export async function getSession() {
value
:(
i
*
100
)
+
7
});
}
session
.
sort
(
(
a
,
b
)
=>
{
return
b
.
value
-
a
.
value
});
return
{
session
}
}
...
...
src/biz/register.ts
View file @
b36b4141
...
...
@@ -2,7 +2,7 @@
* 注册流程 success
*/
import
{
BANXUELEIXING
,
CODETYPE
,
DOCUMENTTYPE
,
INDIVIDUALMEMBERTYPE
,
MEMBERLEVEL
,
MEMBERTYPE
,
NATION
,
OPERATIONREHAVIOR
,
PROFCATEGORY
,
REGISTERFLOW
,
SEX
,
STATE
,
UNITMEMBERTYPE
,
USERREGISTERSTATE
}
from
"../config/enum"
;
import
{
BANXUELEIXING
,
CODETYPE
,
DOCUMENTTYPE
,
INDIVIDUALMEMBERTYPE
,
MEMBERLEVEL
,
MEMBERTYPE
,
NATION
,
OPERATIONREHAVIOR
,
PROFCATEGORY
,
REGISTERFLOW
,
REGISTERSTART
,
SEX
,
STATE
,
UNITMEMBERTYPE
,
USERREGISTERSTATE
}
from
"../config/enum"
;
import
{
ERRORENUM
}
from
"../config/errorEnum"
;
import
{
addManyData
,
addOneData
}
from
"../data/add"
;
import
{
deleteManyData
,
deleteOneData
}
from
"../data/delete"
;
...
...
@@ -17,6 +17,33 @@ import { changeEnumValue, eccEnumValue } from "../util/verificationEnum";
import
{
eccFormParam
}
from
"../util/verificationParam"
;
import
{
sendALSMS
}
from
"./sms"
;
/**
* 注册状态
*/
let
RegisterStartQueue
=
false
;
export
async
function
updateRegisterStart
({
start
})
{
let
updateInfo
=
""
;
if
(
start
==
true
)
{
RegisterStartQueue
=
true
;
updateInfo
=
"true"
;
}
else
{
RegisterStartQueue
=
false
;
updateInfo
=
"false"
;
}
await
updateOneData
(
TABLEENUM
.
系统表
,
{
key
:
"注册开放时间"
},
{
value
:
updateInfo
});
return
{
isSuccess
:
true
}
}
export
function
updateRegisterStartQueue
(
start
)
{
RegisterStartQueue
=
start
;
}
export
function
findRegisterStart
()
{
return
{
data
:
RegisterStartQueue
}
}
/**
* 会员注册【个人会员】【流程一】success
...
...
src/biz/task.ts
View file @
b36b4141
...
...
@@ -4,6 +4,8 @@ import { TABLEENUM } from "../data/models/model";
import
{
find
,
findCount
,
findOnce
,
findOnceToSort
}
from
"../data/select"
;
import
{
createOrder
}
from
"./member/order"
;
import
{
updateOneData
}
from
"../data/update"
;
import
{
addOneData
}
from
"../data/add"
;
import
{
updateRegisterStartQueue
}
from
"./register"
;
/**
* 初始化任务
...
...
@@ -17,6 +19,23 @@ export async function initSystemTask() {
await
createUserOrder
();
},
24
*
3600
*
1000
);
//注册状态
let
registerStart
=
await
findOnce
(
TABLEENUM
.
系统表
,
{
key
:
"注册开放时间"
});
if
(
!
registerStart
||
!
registerStart
.
key
)
{
addOneData
(
TABLEENUM
.
系统表
,
{
key
:
"注册开放时间"
,
value
:
"true"
});
}
else
{
//现有的
if
(
registerStart
.
value
==
"true"
)
{
updateRegisterStartQueue
(
true
);
}
else
if
(
registerStart
.
value
==
"false"
)
{
updateRegisterStartQueue
(
false
);
}
}
console
.
log
(
`systemTask init success`
);
}
...
...
src/config/enum.ts
View file @
b36b4141
...
...
@@ -799,7 +799,10 @@ export enum CHANGEAPPLYTYPE {
}
export
enum
REGISTERSTART
{
关闭注册
=
1
,
开放注册
}
...
...
src/config/errorEnum.ts
View file @
b36b4141
...
...
@@ -67,7 +67,8 @@ export enum ERRORENUM {
该类型退款无需确认
,
注册信息待补充
,
超出可申请范围
,
权限错误
权限错误
,
注册已暂时关闭
,
}
export
enum
ERRORCODEENUM
{
...
...
@@ -77,7 +78,8 @@ export enum ERRORCODEENUM {
code
无效
=
40029
,
频繁操作请稍后再试
=
45011
,
高风险等级用户
=
40226
,
系统繁忙
=
40227
系统繁忙
=
40227
,
黑名单用户不允许登录
=
40228
}
let
bizErrorMsgMap
=
{};
...
...
src/config/outPutConfig.ts
View file @
b36b4141
...
...
@@ -83,6 +83,8 @@ export enum CONFIRMRECEIPTCOLUMNS {
发票邮箱
=
"invoiceMail"
,
"单位/个人邮箱"
=
"mail"
,
提交时间
=
"operationTime"
,
//上传转账凭证的时间
会员职务
=
"memberLevel"
,
注册手机号
=
"phone"
}
...
...
@@ -102,7 +104,9 @@ export enum BILLSTATECOLUMNS {
"单位/个人邮箱"
=
"mail"
,
审核时间
=
"confirmReceiptMs"
,
//什么时候从费用核对通过审核时间
提交时间
=
"operationTime"
,
//上传转账凭证的时间
支付时间
=
"payTime"
//微信支付的时间
支付时间
=
"payTime"
,
//微信支付的时间
会员职务
=
"memberLevel"
,
注册手机号
=
"phone"
}
...
...
@@ -122,7 +126,9 @@ export enum INVOICEDCOLUMNS {
"单位/个人邮箱"
=
"mail"
,
审核时间
=
"confirmReceiptMs"
,
//什么时候从费用核对通过审核时间
提交时间
=
"operationTime"
,
//上传转账凭证的时间
支付时间
=
"payTime"
//微信支付的时间
支付时间
=
"payTime"
,
//微信支付的时间
会员职务
=
"memberLevel"
,
注册手机号
=
"phone"
}
...
...
@@ -137,12 +143,22 @@ export enum REFUNDCOLUMNS {
所缴周期
=
"orderCycle"
,
退款金额
=
"money"
,
退款账号
=
"refundBankCarId"
,
开户行
=
"refundBankName"
开户行
=
"refundBankName"
,
会员职务
=
"memberLevel"
,
注册手机号
=
"phone"
}
//会费管理
export
enum
MEMBERFEESDCOLUMNS
{
状态
=
"memberState"
,
会员类别
=
"memberType"
,
"单位/个人名称"
=
"name"
,
会员职务
=
"memberLevel"
,
入会时间
=
"joinTime"
,
缴费金额
=
"Money"
,
"欠费年限/份"
=
"duration"
}
...
...
src/data/models/model.ts
View file @
b36b4141
...
...
@@ -94,7 +94,8 @@ enum TABLEENUM {
消息已读状态表
=
"massageReads"
,
活动通知表
=
"activityNotice"
,
活动报名表
=
"activityEnroll"
,
理事变更审批历史表
=
"applyHistoryList"
理事变更审批历史表
=
"applyHistoryList"
,
系统表
=
"systemConfig"
}
...
...
@@ -630,6 +631,14 @@ const ModelArray = [
rejectRemarks
:
'String'
,
//变更理事驳回理由
}
},
{
tableName
:
TABLEENUM
.
系统表
,
source
:
TABLESOURCEENUM
.
mongo
,
schema
:{
key
:{
type
:
'String'
,
index
:
true
},
//键
value
:{
type
:
'String'
,
index
:
true
},
//值
}
},
];
...
...
src/middleware/httpErrorHandler.ts
View file @
b36b4141
...
...
@@ -13,14 +13,19 @@ export function httpErrorHandler(err, req, res, next) {
//todo 自定义错误编码
if
(
err
)
{
if
(
ERRORCODEENUM
[
err
.
message
]
)
{
res
.
success
({
success
:
false
,
msg
:
err
.
message
,
code
:
ERRORCODEENUM
[
err
.
message
]});
let
resultData
=
{
success
:
false
,
msg
:
err
.
message
,
code
:
ERRORCODEENUM
[
err
.
message
]};
if
(
err
.
message
==
"黑名单用户不允许登录"
)
{
resultData
.
msg
=
"您的会员服务已过期,如需恢复请联系秘书处:010-86208681"
;
}
res
.
success
(
resultData
);
next
();
}
else
{
let
resultData
=
{
success
:
false
,
msg
:
err
.
message
,
code
:
500
};
if
(
resultData
.
msg
==
"黑名单用户不允许登录"
)
{
resultData
.
msg
=
"您的会员服务已过期,如需恢复请联系秘书处:010-86208681"
;
}
//
if ( resultData.msg == "黑名单用户不允许登录") {
//
resultData.msg = "您的会员服务已过期,如需恢复请联系秘书处:010-86208681";
//
}
res
.
success
(
resultData
);
next
();
...
...
src/middleware/user.ts
View file @
b36b4141
...
...
@@ -5,6 +5,7 @@ import { findOnce } from "../data/select";
import
{
updateOneData
}
from
"../data/update"
;
import
{
BizError
}
from
"../util/bizError"
;
import
{
STATE
}
from
"../config/enum"
;
/**
* 中间件
...
...
@@ -26,6 +27,10 @@ export async function checkUser(req, res, next) {
if
(
userInfo
.
token
!=
reqToken
)
return
next
(
new
BizError
(
ERRORENUM
.
身份验证过期
));
if
(
userInfo
.
isBlackUser
==
STATE
.
是
)
{
return
next
(
new
BizError
(
ERRORENUM
.
黑名单用户不允许登录
));
}
let
checkToken
=
''
;
//30分钟更新token
if
(
(
userInfo
.
tokenMs
-
new
Date
().
valueOf
())
>=
(
30
*
60
*
1000
)
)
{
...
...
src/routers/member/router.ts
View file @
b36b4141
...
...
@@ -14,6 +14,13 @@ export const FirstRouter = '/manage/member';
export
const
Config
=
{
"用户注册"
:[
{
apiName
:
"是否开放注册"
,
notMiddleware
:
true
,
subUrl
:
'/memberdb/memberregister/isopen'
,
param
:[],
bindBiz
:
registerBiz
.
findRegisterStart
},
{
apiName
:
"个人入会流程1"
,
notMiddleware
:
true
,
subUrl
:
'/memberdb/memberregister1'
,
...
...
@@ -520,6 +527,14 @@ export const Config = {
],
"审批管理"
:[
{
apiName
:
"开放或关闭注册"
,
subUrl
:
'/examine/user/register/changestart'
,
param
:[
{
key
:
"start"
,
type
:
"Boolean"
,
desc
:
"是否开放注册"
},
],
bindBiz
:
registerBiz
.
updateRegisterStart
},
{
apiName
:
"待审核列表"
,
subUrl
:
'/examine/pendingreview'
,
param
:[
...
...
@@ -578,6 +593,16 @@ export const Config = {
],
"会费管理"
:[
{
apiName
:
"会费管理导出"
,
subUrl
:
'/memberfees/outputdata'
,
param
:[
{
key
:
"type"
,
type
:
"Number"
,
desc
:
"导出类型"
},
{
key
:
"exportColumns"
,
type
:
"[]"
,
desc
:
"导出数据列"
}
],
bindBiz
:
memberFeesBiz
.
outPutDataForExcel
},
{
apiName
:
"已缴费名单列表"
,
subUrl
:
'/memberfees/paid'
,
param
:[
...
...
src/routers/public/router.ts
View file @
b36b4141
...
...
@@ -343,6 +343,13 @@ export const Config = {
param
:[],
defaultParam
:
outPutConfig
.
REFUNDCOLUMNS
,
bindBiz
:
publicBiz
.
setEnumInterface
},
{
apiName
:
"会费管理-列表导出"
,
subUrl
:
'/memberfeesdcolumns'
,
param
:[],
defaultParam
:
outPutConfig
.
MEMBERFEESDCOLUMNS
,
bindBiz
:
publicBiz
.
setEnumInterface
}
],
...
...
src/routers/router.ts
View file @
b36b4141
...
...
@@ -21,7 +21,7 @@ import * as msgActivityRouter from "./msgActivity/router";
import
*
as
applyRouter
from
"./apply/router"
;
import
*
as
asyncHandler
from
'express-async-handler'
;
import
{
payCallback
}
from
"../biz/member/cost"
;
import
{
checkUser
,
checkPermission
,
notCheck
}
from
"../middleware/user"
;
import
{
checkUser
}
from
"../middleware/user"
;
import
{
ADMINLV
}
from
"../config/enum"
;
const
Look
=
false
;
//true更新文档
...
...
@@ -30,8 +30,8 @@ export async function setRouter(httpServer){
if
(
Look
)
{
await
getDoc
();
// 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
(
publicRouter
.
FirstName
,
publicRouter
.
Config
,
publicRouter
.
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 initDoc(costRouter.FirstName, costRouter.Config, costRouter.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