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
c186d73c
Commit
c186d73c
authored
Oct 18, 2024
by
chenjinjing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
理事变更申请
parent
7f160a5f
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
549 additions
and
86 deletions
+549
-86
apply.ts
src/biz/member/apply.ts
+269
-0
authority.ts
src/biz/member/authority.ts
+1
-0
homePage.ts
src/biz/member/homePage.ts
+97
-37
msgActivity.ts
src/biz/member/msgActivity.ts
+2
-1
enum.ts
src/config/enum.ts
+38
-0
errorEnum.ts
src/config/errorEnum.ts
+3
-1
model.ts
src/data/models/model.ts
+8
-1
router.ts
src/routers/apply/router.ts
+67
-0
router.ts
src/routers/member/router.ts
+51
-43
router.ts
src/routers/public/router.ts
+7
-0
router.ts
src/routers/router.ts
+6
-3
No files found.
src/biz/member/apply.ts
0 → 100644
View file @
c186d73c
/**
* 变更审批
*/
import
moment
=
require
(
"moment"
);
import
{
CERTIFICATETYPE
,
CHANGEAPPLYTYPE
,
CLIENTMSGLABLE
,
INDIVIDUALMEMBERTYPE
,
MEMBERLEVEL
,
MEMBERSTATE
,
MEMBERTYPE
,
STATE
,
UNITMEMBERTYPE
}
from
"../../config/enum"
;
import
{
TABLEENUM
}
from
"../../data/models/model"
;
import
{
find
,
findCount
,
findOnce
,
findToSortToPage
}
from
"../../data/select"
;
import
{
extractData
}
from
"../../util/piecemeal"
;
import
{
changeEnumValue
}
from
"../../util/verificationEnum"
;
import
{
BizError
}
from
"../../util/bizError"
;
import
{
ERRORENUM
}
from
"../../config/errorEnum"
;
import
{
getMenberNum
,
successResult
}
from
"../../tools/system"
;
import
{
updateOneData
}
from
"../../data/update"
;
import
{
setEnumInterface
}
from
"../public"
;
/**
* 变更审批列表
* @param name 单位名称,名称
* @param joinStartTime 入会开始时间
* @param joinEndTime 入会结束时间
* @param memberCategory 会员类别 UNITMEMBERTYPE INDIVIDUALMEMBERTYPE 前端用:MEMBERTYPEECCENUM
* @param beforeChange 变更前会员
* @param memberLevel 申请变更会员
* @returns
*/
export
async
function
applyList
({
name
,
joinStartTime
,
joinEndTime
,
memberCategory
,
beforeChange
,
memberLevel
,
pageNumber
})
{
let
selectParam
:
any
=
{
isBlackUser
:
STATE
.
否
,
changeApplyType
:{
"$gt"
:
CHANGEAPPLYTYPE
.
注册信息补充完成
}
//返回除了补充注册信息之外的所有状态数据
};
if
(
name
)
selectParam
[
"$or"
]
=
[{
name
:
name
},
{
unitName
:
name
}];
if
(
joinStartTime
)
{
selectParam
[
"joinTime"
]
=
{
"$gt"
:
joinStartTime
};
}
if
(
joinEndTime
)
{
if
(
!
selectParam
[
"joinTime"
])
selectParam
[
"joinTime"
]
=
{};
selectParam
[
"joinTime"
][
"$lt"
]
=
joinEndTime
;
}
if
(
memberCategory
)
{
if
(
memberCategory
>=
9
)
selectParam
.
unitMemberType
=
memberCategory
;
else
selectParam
.
individualMemberType
=
memberCategory
;
}
if
(
memberLevel
&&
memberLevel
.
length
)
selectParam
.
applyMemberLevel
=
{
"$in"
:
memberLevel
};
if
(
beforeChange
&&
beforeChange
.
length
)
selectParam
.
beforeChange
=
{
"$in"
:
beforeChange
};
let
selectConf
=
[
"userId"
,
"changeApplyType"
,
"unitName"
,
"name"
,
"beforeChange"
,
"applyMemberLevel"
,
"applyStr"
,
"applyApplicationTime"
,
"applyReviewTime"
,
"individualMemberType"
,
"unitMemberType"
,
"memberType"
];
let
dbList
=
await
findToSortToPage
(
TABLEENUM
.
用户表
,
selectParam
,
selectConf
,
{
applyApplicationTime
:
-
1
},
pageNumber
);
let
dataCount
=
await
findCount
(
TABLEENUM
.
用户表
,
selectParam
);
let
dataList
=
[];
let
itemConf
=
[
"userId"
,
"changeApplyType"
,
"unitName"
,
"name"
,
"beforeChange"
,
"applyMemberLevel"
,
"applyStr"
,
"applyApplicationTime"
,
"applyReviewTime"
,
"memberType"
];
for
(
let
i
=
0
;
i
<
dbList
.
length
;
i
++
)
{
let
info
=
dbList
[
i
];
let
item
:
any
=
extractData
(
info
,
itemConf
);
item
.
changeApplyType
=
changeEnumValue
(
CHANGEAPPLYTYPE
,
item
.
changeApplyType
);
item
.
memberType
=
changeEnumValue
(
MEMBERTYPE
,
item
.
memberType
);
let
applyMemberLevel
=
""
;
if
(
!
item
.
applyMemberLevel
)
applyMemberLevel
=
"未选择"
;
else
applyMemberLevel
=
changeEnumValue
(
MEMBERLEVEL
,
item
.
applyMemberLevel
)
if
(
!
item
.
beforeChange
)
item
.
beforeChange
=
"未选择"
;
else
item
.
beforeChange
=
changeEnumValue
(
MEMBERLEVEL
,
item
.
beforeChange
)
// MEMBERTYPEECCENUM
let
memberCategory
=
""
;
if
(
info
.
memberType
==
MEMBERTYPE
.
个人会员
)
{
memberCategory
=
changeEnumValue
(
INDIVIDUALMEMBERTYPE
,
info
.
individualMemberType
);
//会员类别/级别
}
else
{
memberCategory
=
changeEnumValue
(
UNITMEMBERTYPE
,
info
.
unitMemberType
);
//会员类别/级别
}
item
.
memberCategory
=
`
${
memberCategory
}${
applyMemberLevel
}
`
;
item
.
applyApplicationTime
=
moment
(
item
.
applyApplicationTime
).
format
(
"YYYY-MM-DD"
)
item
.
applyReviewTime
=
moment
(
item
.
applyReviewTime
).
format
(
"YYYY-MM-DD"
)
dataList
.
push
(
item
);
}
return
{
dataList
,
dataCount
};
}
/**
* 通过
* @param id 待审核列表返回的用户id
* @returns
*/
export
async
function
applyAdopt
({
id
})
{
// let selectConf = [];
let
userInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
userId
:
id
,
isAdmin
:
STATE
.
否
});
if
(
!
userInfo
||
!
userInfo
.
userId
)
throw
new
BizError
(
ERRORENUM
.
目标数据不存在
);
if
(
userInfo
.
changeApplyType
==
CHANGEAPPLYTYPE
.
注册信息待补充
)
{
throw
new
BizError
(
ERRORENUM
.
注册信息待补充
,
`
${
userInfo
.
userId
}
用户注册信息未补充完整`
);
}
if
(
userInfo
.
changeApplyType
==
CHANGEAPPLYTYPE
.
驳回修改
)
{
throw
new
BizError
(
ERRORENUM
.
不具备审批条件
,
`
${
userInfo
.
userId
}
当前状态为驳回修改`
);
}
if
(
userInfo
.
changeApplyType
==
CHANGEAPPLYTYPE
.
通过
)
{
throw
new
BizError
(
ERRORENUM
.
重复提交
,
`
${
userInfo
.
userId
}
当前状态为已通过`
);
}
let
thisDate
=
new
Date
();
const
NowMs
=
thisDate
.
valueOf
();
let
lableInfo
=
userInfo
.
lableId
.
toObject
()
||
[];
let
newLable
=
lableInfo
.
filter
(
(
item
)
=>
{
return
item
!==
CLIENTMSGLABLE
.
驳回申请
;
})
if
(
!
newLable
.
includes
(
CLIENTMSGLABLE
.
通过申请
))
{
newLable
.
push
(
CLIENTMSGLABLE
.
通过申请
);
}
let
lableId
=
newLable
;
let
updateInfo
:
any
=
{
memberLevel
:
userInfo
.
applyMemberLevel
,
applyReviewTime
:
NowMs
,
changeApplyType
:
CHANGEAPPLYTYPE
.
通过
,
lableId
};
await
updateOneData
(
TABLEENUM
.
用户表
,
{
userId
:
id
},
updateInfo
);
return
successResult
();
}
/**
* 批量通过
* @param param0
*/
export
async
function
applyBatchAdopt
({
idList
})
{
//限制长度
if
(
idList
.
length
>=
10
)
throw
new
BizError
(
ERRORENUM
.
批量操作超过个数限制
);
let
thisDate
=
new
Date
();
const
NowMs
=
thisDate
.
valueOf
();
for
(
let
i
=
0
;
i
<
idList
.
length
;
i
++
)
{
let
id
=
idList
[
i
];
if
(
!
id
)
continue
;
//空id跳过
let
userInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
userId
:
id
,
isAdmin
:
STATE
.
否
});
if
(
!
userInfo
||
!
userInfo
.
userId
)
throw
new
BizError
(
ERRORENUM
.
目标数据不存在
);
if
(
userInfo
.
changeApplyType
==
CHANGEAPPLYTYPE
.
注册信息待补充
)
{
throw
new
BizError
(
ERRORENUM
.
注册信息待补充
,
`
${
userInfo
.
userId
}
用户注册信息未补充完整`
);
}
if
(
userInfo
.
changeApplyType
==
CHANGEAPPLYTYPE
.
驳回修改
)
{
throw
new
BizError
(
ERRORENUM
.
不具备审批条件
,
`
${
userInfo
.
userId
}
当前状态为驳回修改`
);
}
if
(
userInfo
.
changeApplyType
==
CHANGEAPPLYTYPE
.
通过
)
{
throw
new
BizError
(
ERRORENUM
.
重复提交
,
`
${
userInfo
.
userId
}
当前状态为已通过`
);
}
let
lableInfo
=
userInfo
.
lableId
.
toObject
()
||
[];
let
newLable
=
lableInfo
.
filter
(
(
item
)
=>
{
return
item
!==
CLIENTMSGLABLE
.
驳回申请
;
})
if
(
!
newLable
.
includes
(
CLIENTMSGLABLE
.
通过申请
))
{
newLable
.
push
(
CLIENTMSGLABLE
.
通过申请
);
}
let
lableId
=
newLable
;
let
updateInfo
:
any
=
{
memberLevel
:
userInfo
.
applyMemberLevel
,
applyReviewTime
:
NowMs
,
changeApplyType
:
CHANGEAPPLYTYPE
.
通过
,
lableId
,
};
await
updateOneData
(
TABLEENUM
.
用户表
,
{
userId
:
id
},
updateInfo
);
}
return
successResult
();
}
/**
* 驳回 success
* @param userId
* @param remarks 驳回理由
* @returns
*/
export
async
function
applyReject
({
id
,
remarks
})
{
let
userInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
userId
:
id
,
isAdmin
:
STATE
.
否
});
if
(
!
userInfo
||
!
userInfo
.
userId
)
throw
new
BizError
(
ERRORENUM
.
目标数据不存在
);
if
(
userInfo
.
changeApplyType
==
CHANGEAPPLYTYPE
.
注册信息待补充
)
{
throw
new
BizError
(
ERRORENUM
.
注册信息待补充
,
`
${
userInfo
.
userId
}
用户注册信息未补充完整`
);
}
if
(
userInfo
.
changeApplyType
==
CHANGEAPPLYTYPE
.
驳回修改
)
{
throw
new
BizError
(
ERRORENUM
.
不具备审批条件
,
`
${
userInfo
.
userId
}
当前状态为驳回修改`
);
}
if
(
userInfo
.
changeApplyType
==
CHANGEAPPLYTYPE
.
通过
)
{
throw
new
BizError
(
ERRORENUM
.
重复提交
,
`
${
userInfo
.
userId
}
当前状态为已通过`
);
}
let
thisDate
=
new
Date
();
const
NowMs
=
thisDate
.
valueOf
();
let
lableInfo
=
userInfo
.
lableId
.
toObject
()
||
[];
let
newLable
=
lableInfo
.
filter
(
(
item
)
=>
{
return
item
!==
CLIENTMSGLABLE
.
通过申请
;
})
if
(
!
newLable
.
includes
(
CLIENTMSGLABLE
.
驳回申请
))
{
newLable
.
push
(
CLIENTMSGLABLE
.
驳回申请
);
}
let
lableId
=
newLable
;
let
updateInfo
:
any
=
{
applyReviewTime
:
NowMs
,
changeApplyType
:
CHANGEAPPLYTYPE
.
驳回修改
,
lableId
,
rejectRemarks
:
remarks
};
await
updateOneData
(
TABLEENUM
.
用户表
,
{
userId
:
id
},
updateInfo
);
return
successResult
();
}
/**
* 变更审批数据导出
* @param param0
* @returns
*/
export
async
function
outPutApply
()
{
// let exportColumns:any = setEnumInterface({defaultParam:APPLYCOLUMNS});
let
selectParam
=
{
isAdmin
:
STATE
.
否
,
changeApplyType
:{
"$gt"
:
CHANGEAPPLYTYPE
.
注册信息补充完成
}
//返回除了补充注册信息之外的所有状态数据
};
let
selectTitle
=
[
"状态"
,
"单位/个人名称"
,
"变更前职位"
,
"申请变更职位"
,
"申请理由"
,
"申请时间"
,
"审核时间"
];
let
selectConf
=
[
"changeApplyType"
,
"unitName"
,
"name"
,
"memberType"
,
"beforeChange"
,
"applyMemberLevel"
,
"applyStr"
,
"applyApplicationTime"
,
"applyReviewTime"
];
let
dbList
=
await
find
(
TABLEENUM
.
用户表
,
selectParam
,
selectConf
);
let
timeChnageList
=
[
"applyApplicationTime"
,
"applyReviewTime"
];
let
dataList
=
[
selectTitle
];
let
dataConf
=
[
"changeApplyType"
,
"name"
,
"beforeChange"
,
"applyMemberLevel"
,
"applyStr"
,
"applyApplicationTime"
,
"applyReviewTime"
];
for
(
let
i
=
0
;
i
<
dbList
.
length
;
i
++
)
{
let
info
=
dbList
[
i
];
let
subList
=
[];
for
(
let
i
=
0
;
i
<
dataConf
.
length
;
i
++
)
{
let
key
=
dataConf
[
i
];
let
value
=
info
[
key
]
||
""
;
if
(
key
==
"name"
)
{
if
(
info
.
memberType
==
MEMBERTYPE
.
个人会员
)
value
=
info
.
name
;
else
if
(
info
.
memberType
==
MEMBERTYPE
.
单位会员
)
value
=
info
.
unitName
;
}
if
(
value
)
{
if
(
timeChnageList
.
indexOf
(
key
)
!=
-
1
)
value
=
moment
(
value
).
format
(
"YYYY-MM-DD"
);
else
if
(
key
==
"applyMemberLevel"
)
value
=
changeEnumValue
(
MEMBERLEVEL
,
value
);
else
if
(
key
==
"beforeChange"
)
value
=
changeEnumValue
(
MEMBERLEVEL
,
value
);
else
if
(
key
==
"changeApplyType"
)
value
=
changeEnumValue
(
CHANGEAPPLYTYPE
,
value
);
}
subList
.
push
(
value
);
}
dataList
.
push
(
subList
);
}
return
{
dataList
};
}
src/biz/member/authority.ts
View file @
c186d73c
...
@@ -46,6 +46,7 @@ export async function getAuthority({unitName, memberLevel, memberCategory, pageN
...
@@ -46,6 +46,7 @@ export async function getAuthority({unitName, memberLevel, memberCategory, pageN
item
.
memberCategory
=
changeEnumValue
(
UNITMEMBERTYPE
,
info
.
unitMemberType
);
//会员类别/级别
item
.
memberCategory
=
changeEnumValue
(
UNITMEMBERTYPE
,
info
.
unitMemberType
);
//会员类别/级别
}
}
item
.
memberState
=
changeEnumValue
(
MEMBERSTATE
,
item
.
memberState
);
item
.
memberState
=
changeEnumValue
(
MEMBERSTATE
,
item
.
memberState
);
// if(!item.beforeChange && item.changeApplyType != CHANGEAPPLYTYPE.通过) topInfo.memberLevel = oldInfo.beforeChange;
item
.
memberLevel
=
changeEnumValue
(
MEMBERLEVEL
,
item
.
memberLevel
);
//会员等级、职务
item
.
memberLevel
=
changeEnumValue
(
MEMBERLEVEL
,
item
.
memberLevel
);
//会员等级、职务
dataList
.
push
(
item
);
dataList
.
push
(
item
);
...
...
src/biz/member/homePage.ts
View file @
c186d73c
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
*/
*/
import
moment
=
require
(
"moment"
);
import
moment
=
require
(
"moment"
);
import
{
INDIVIDUALMEMBERTYPE
,
MEMBERSTATE
,
MEMBERTYPE
,
PAYMENTSTATUS
,
STATE
,
UNITMEMBERTYPE
,
USERREGISTERSTATE
}
from
"../../config/enum"
;
import
{
CHANGEAPPLYTYPE
,
CLIENTMSGLABLE
,
DOCUMENTTYPE
,
INDIVIDUALMEMBERTYPE
,
MEMBERLEVEL
,
MEMBERLEVELCHANGE
,
MEMBERSTATE
,
MEMBERTYPE
,
NATION
,
PAYMENTSTATUS
,
PROFCATEGORY
,
SEX
,
STATE
,
UNITMEMBERTYPE
,
USERREGISTERSTATE
}
from
"../../config/enum"
;
import
{
ERRORENUM
}
from
"../../config/errorEnum"
;
import
{
ERRORENUM
}
from
"../../config/errorEnum"
;
import
{
addManyData
}
from
"../../data/add"
;
import
{
addManyData
}
from
"../../data/add"
;
import
{
deleteManyData
}
from
"../../data/delete"
;
import
{
deleteManyData
}
from
"../../data/delete"
;
...
@@ -62,6 +62,8 @@ export async function getMemberData({userId}) {
...
@@ -62,6 +62,8 @@ export async function getMemberData({userId}) {
/**返回指定配置字段 */
/**返回指定配置字段 */
let
topInfo
:
any
=
extractData
(
oldInfo
,
topSelectFiles
);
let
topInfo
:
any
=
extractData
(
oldInfo
,
topSelectFiles
);
// 变更申请职位不为空并且状态不等于通过的时候,代表提交了变更理事申请,并且还未通过审批,需要先使用变更前职位
// if(!oldInfo.beforeChange && oldInfo.changeApplyType != CHANGEAPPLYTYPE.通过) topInfo.memberLevel = oldInfo.beforeChange;
let
baseInfo
:
any
=
extractData
(
oldInfo
,
baseSelectFiles
);
let
baseInfo
:
any
=
extractData
(
oldInfo
,
baseSelectFiles
);
let
majorInfo
:
any
=
extractData
(
oldInfo
,
majorSelectFiles
);
let
majorInfo
:
any
=
extractData
(
oldInfo
,
majorSelectFiles
);
...
@@ -313,18 +315,26 @@ export async function getSheng ({userId}) {
...
@@ -313,18 +315,26 @@ export async function getSheng ({userId}) {
/**
/**
* 变更申请,判断注册资料是否完整,不完整返回false(需要补充用户信息)
* 变更理事申请,职位未发生变更不需要走当前流程
* @param param0
* @param memberLevel 变更理事
* @param userId 登录的userid
* @returns
* @returns
*/
*/
export
async
function
memberlevelUpdate
({
memberLevel
Change
,
userId
})
{
export
async
function
memberlevelUpdate
({
memberLevel
,
userId
})
{
let
oldInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
userId
});
let
oldInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
userId
});
if
(
!
oldInfo
||
!
oldInfo
.
userId
)
throw
new
BizError
(
ERRORENUM
.
目标数据不存在
);
if
(
!
oldInfo
||
!
oldInfo
.
userId
)
throw
new
BizError
(
ERRORENUM
.
目标数据不存在
);
if
(
oldInfo
.
memberLever
==
memberLevelChange
)
throw
new
BizError
(
ERRORENUM
.
当前变更申请未发生变化
);
if
(
oldInfo
.
memberLevel
==
memberLevel
)
throw
new
BizError
(
ERRORENUM
.
当前变更申请未发生变化
);
if
(
memberLevel
>
oldInfo
.
memberLevel
+
1
)
throw
new
BizError
(
`当前职位为:
${
oldInfo
.
memberLevel
}
,申请
${
memberLevel
}${
ERRORENUM
.
超出可申请范围
}
`
);
/**添加至变更职位 */
/**添加至变更职位 */
await
updateOneData
(
TABLEENUM
.
用户表
,
{
userId
},
{
memberLevelChange
});
eccEnumValue
(
"变更申请"
,
'变更申请职位'
,
MEMBERLEVELCHANGE
,
memberLevel
);
//校验枚举
let
param
=
{
applyMemberLevel
:
memberLevel
,
beforeChange
:
oldInfo
.
memberLevel
,
}
await
updateOneData
(
TABLEENUM
.
用户表
,
{
userId
},
param
);
return
successResult
();
return
successResult
();
}
}
...
@@ -332,62 +342,98 @@ export async function memberlevelUpdate({memberLevelChange, userId}) {
...
@@ -332,62 +342,98 @@ export async function memberlevelUpdate({memberLevelChange, userId}) {
/**
/**
* 是否需要补充用户信息
* 是否需要补充用户信息
* @param userId
* 判断注册资料是否完整,不完整返回false(需要补充用户信息)
* @param userId 登录的userid
*/
*/
export
async
function
isNeedSupplement
(
userId
)
{
export
async
function
isNeedSupplement
(
{
userId
}
)
{
let
oldInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
userId
});
let
oldInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
userId
});
let
g
rRequiredConf
=
{
const
G
rRequiredConf
=
{
"基本信息"
:
[
"name"
,
"sex"
,
"documentId"
,
"documentType"
,
"birth"
,
"nation"
,
"sheng"
,
"shi"
,
"qu"
,
"addres"
,
"education"
,
"photoUrl"
],
"基本信息"
:
[
"name"
,
"sex"
,
"documentId"
,
"documentType"
,
"birth"
,
"nation"
,
"sheng"
,
"shi"
,
"qu"
,
"addres"
,
"education"
,
"photoUrl"
],
"专业信息"
:
[
"duties"
,
"workTitle"
,
"studyResume"
,
"workResume"
,
"profAchievement"
,
"otherEMP"
,
"otherPROF"
,
"profCategory"
],
"专业信息"
:
[
"duties"
,
"workTitle"
,
"studyResume"
,
"workResume"
,
"profAchievement"
,
"otherEMP"
,
"otherPROF"
,
"profCategory"
],
"其他附件"
:
[
"cardUrlJust"
,
"cardUrlBack"
,
"academicCERTUrl"
,
"professionalCERTUrl"
,
"auxiliaryMaterial"
]
"其他附件"
:
[
"cardUrlJust"
,
"cardUrlBack"
,
"academicCERTUrl"
]
};
};
let
d
wRequiredConf
=
{
const
D
wRequiredConf
=
{
"基本信息"
:
[
"unitName"
,
"
uscc"
,
"legalPerson"
,
"legalPersonPhone"
,
"legalPersonMail"
,
"unitMail"
,
"contactPerson"
,
"contactPersonDuties
"
,
"基本信息"
:
[
"unitName"
,
"
sheng"
,
"shi"
,
"qu"
,
"addres"
,
"uscc"
,
"legalPerson"
,
"legalPersonPhone"
,
"legalPersonMail"
,
"contactPerson
"
,
"contactPerson
Phone"
,
"uusinessLicenseUrl"
,
"sheng"
,
"shi"
,
"qu"
,
"addres
"
],
"contactPerson
Duties"
,
"contactPersonPhone"
,
"uusinessLicenseUrl
"
],
"单位信息"
:
[
"unitMemberType"
,
"yuanXiaoBanXueLeiXing"
,
"yuanXiaoZhuGuanBuMen"
,
"yuanXiaoFuZeRen"
,
"yuanXiaoFuZeRenZhiWu"
,
"yuanXiaoFuZeRenDianHua"
,
"单位信息"
:
[
"unitMemberType"
,
"yuanXiaoBanXueLeiXing"
,
"yuanXiaoZhuGuanBuMen"
,
"yuanXiaoFuZeRen"
,
"yuanXiaoFuZeRenZhiWu"
,
"yuanXiao
BanGongFuZeRen"
,
"yuanXiaoBanGongFuZeRenDianHua"
,
"ZhuYaoFuZeRenYouXiang"
,
"yuanXiaoKeYanFuZeRen"
,
"yuanXiaoKeYanFuZeRenDianHua
"
,
"yuanXiao
FuZeRenDianHua"
,
"yuanXiaoBanGongFuZeRen"
,
"yuanXiaoBanGongFuZeRenDianHua"
,
"ZhuYaoFuZeRenYouXiang"
,
"yuanXiaoKeYanFuZeRen
"
,
"
jiaoXueFuZeRenXinMing"
,
"yuanXiaoXueShengZongRenShu"
,
"yuanXiaoJiaoZhiGongZongRenShu"
,
"jiaoXueFuZeRenDianHua"
,
"kaishezhuanYe"
,
"danWeiJianJie
"
]
"
yuanXiaoKeYanFuZeRenDianHua"
,
"jiaoXueFuZeRenXinMing"
,
"jiaoXueFuZeRenDianHua
"
]
};
};
let
dwshzycj
=
{
const
Dwshzycj
=
{
"单位所获主要成绩及科研成果"
:
[
"startTime"
,
"endTime"
,
"describe"
]
"单位所获主要成绩及科研成果"
:
[
"startTime"
,
"endTime"
,
"describe"
]
};
};
let
dwshzycjInfo
=
await
findOnce
(
TABLEENUM
.
单位所获得科研成果表
,
{
userId
});
let
dwshzycjInfo
=
await
findOnce
(
TABLEENUM
.
单位所获得科研成果表
,
{
userId
});
let
infoComplete
=
{};
let
infoCompleteData
=
{};
let
changeApplyType
=
CHANGEAPPLYTYPE
.
注册信息补充完成
;
if
(
oldInfo
.
memberType
==
MEMBERTYPE
.
个人会员
)
{
if
(
oldInfo
.
memberType
==
MEMBERTYPE
.
个人会员
)
{
for
(
let
key
in
grRequiredConf
)
{
for
(
let
key
in
GrRequiredConf
)
{
for
(
let
i
=
0
;
i
<
grRequiredConf
[
key
].
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
GrRequiredConf
[
key
].
length
;
i
++
)
{
if
(
!
oldInfo
[
grRequiredConf
[
key
][
i
]])
infoComplete
[
key
]
=
false
;
if
(
!
oldInfo
[
GrRequiredConf
[
key
][
i
]])
{
infoCompleteData
[
key
]
=
false
;
changeApplyType
=
CHANGEAPPLYTYPE
.
注册信息待补充
}
else
{
infoCompleteData
[
key
]
=
true
;
}
}
}
}
}
}
else
{
}
else
{
for
(
let
key
in
dwRequiredConf
)
{
for
(
let
key
in
DwRequiredConf
)
{
for
(
let
i
=
0
;
i
<
dwRequiredConf
[
key
].
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
DwRequiredConf
[
key
].
length
;
i
++
)
{
if
(
!
oldInfo
[
dwRequiredConf
[
key
][
i
]])
infoComplete
[
key
]
=
false
;
if
(
!
oldInfo
[
DwRequiredConf
[
key
][
i
]])
{
infoCompleteData
[
key
]
=
false
;
changeApplyType
=
CHANGEAPPLYTYPE
.
注册信息待补充
}
else
{
infoCompleteData
[
key
]
=
true
;
}
}
}
}
for
(
let
i
=
0
;
i
<
dwshzycj
.
单位所获主要成绩及科研成果
.
length
;
i
++
)
{
}
if
(
!
dwshzycjInfo
[
dwshzycj
.
单位所获主要成绩及科研成果
[
i
]])
infoComplete
[
"单位所获主要成绩及科研成果"
]
=
false
;
for
(
let
i
=
0
;
i
<
Dwshzycj
.
单位所获主要成绩及科研成果
.
length
;
i
++
)
{
if
(
!
dwshzycjInfo
)
{
infoCompleteData
[
"单位所获主要成绩及科研成果"
]
=
false
;
}
else
{
if
(
!
dwshzycjInfo
[
Dwshzycj
.
单位所获主要成绩及科研成果
[
i
]])
{
infoCompleteData
[
"单位所获主要成绩及科研成果"
]
=
false
;
changeApplyType
=
CHANGEAPPLYTYPE
.
注册信息待补充
}
else
{
infoCompleteData
[
"单位所获主要成绩及科研成果"
]
=
true
;
}
}
}
}
}
}
let
infoComplete
=
[];
for
(
let
key
in
infoCompleteData
)
{
infoComplete
.
push
({
key
,
value
:
infoCompleteData
[
key
]})
}
return
infoComplete
;
return
infoComplete
;
}
}
/**
/**
* 个人会员用户注册信息补充
* 个人会员用户注册信息补充
* @param userId 登录的
用户
id
* @param userId 登录的
user
id
* @param form
修改
信息表单
* @param form
补充的
信息表单
* @returns
* @returns
*/
*/
export
async
function
infoSupplement
({
form
,
userId
})
{
export
async
function
infoSupplement
({
form
,
userId
})
{
let
oldInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
userId
});
let
oldInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
userId
});
if
(
!
oldInfo
||
!
oldInfo
.
userId
)
throw
new
BizError
(
ERRORENUM
.
目标数据不存在
);
if
(
!
oldInfo
||
!
oldInfo
.
userId
)
throw
new
BizError
(
ERRORENUM
.
目标数据不存在
);
/**校验枚举 */
const
EccFuncName
=
'个人会员用户注册信息补充'
;
eccEnumValue
(
EccFuncName
,
'性别'
,
SEX
,
form
.
sex
);
eccEnumValue
(
EccFuncName
,
'证件类型'
,
DOCUMENTTYPE
,
form
.
documentType
);
eccEnumValue
(
EccFuncName
,
'民族'
,
NATION
,
form
.
nation
);
eccEnumValue
(
EccFuncName
,
'专业类别'
,
PROFCATEGORY
,
form
.
profCategory
);
await
updateOneData
(
TABLEENUM
.
用户表
,
{
userId
},
form
);
await
updateOneData
(
TABLEENUM
.
用户表
,
{
userId
},
form
);
return
successResult
();
return
successResult
();
...
@@ -397,7 +443,7 @@ export async function infoSupplement({form, userId}) {
...
@@ -397,7 +443,7 @@ export async function infoSupplement({form, userId}) {
/**
/**
* 单位会员用户注册信息补充
* 单位会员用户注册信息补充
* @param userId 登录的用户id
* @param userId 登录的用户id
* @param form
修改
信息表单
* @param form
补充的
信息表单
* @returns
* @returns
*/
*/
export
async
function
unitInfoSupplement
({
form
,
keyanForm
,
userId
})
{
export
async
function
unitInfoSupplement
({
form
,
keyanForm
,
userId
})
{
...
@@ -407,19 +453,19 @@ export async function unitInfoSupplement({form, keyanForm, userId}) {
...
@@ -407,19 +453,19 @@ export async function unitInfoSupplement({form, keyanForm, userId}) {
describe
:
'String'
describe
:
'String'
};
};
keyanForm
.
forEach
(
item
=>
{
keyanForm
.
forEach
(
item
=>
{
eccFormParam
(
"单位会员
修改
"
,
keyanFormItemConfig
,
item
);
eccFormParam
(
"单位会员
用户注册信息补充
"
,
keyanFormItemConfig
,
item
);
});
});
let
oldInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
userId
});
let
oldInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
userId
});
if
(
!
oldInfo
||
!
oldInfo
.
userId
)
throw
new
BizError
(
ERRORENUM
.
目标数据不存在
);
if
(
!
oldInfo
||
!
oldInfo
.
userId
)
throw
new
BizError
(
ERRORENUM
.
目标数据不存在
);
/**校验枚举 */
/**校验枚举 */
const
EccFuncName
=
'单位会员
修改
'
;
const
EccFuncName
=
'单位会员
用户注册信息补充
'
;
eccEnumValue
(
EccFuncName
,
'单位信息类型'
,
UNITMEMBERTYPE
,
form
.
unitMemberType
);
eccEnumValue
(
EccFuncName
,
'单位信息类型'
,
UNITMEMBERTYPE
,
form
.
unitMemberType
);
/**确保邮箱的唯一性 */
/**确保邮箱的唯一性 */
let
distinctMailInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
mail
:
form
.
unitMail
},
[
"userId"
]);
//
let distinctMailInfo = await findOnce(TABLEENUM.用户表, {mail:form.unitMail}, ["userId"]);
if
(
distinctMailInfo
&&
distinctMailInfo
.
userId
&&
distinctMailInfo
.
userId
!=
oldInfo
.
userId
)
throw
new
BizError
(
ERRORENUM
.
邮箱重复
,
oldInfo
.
loginId
,
oldInfo
.
mail
);
//
if (distinctMailInfo && distinctMailInfo.userId && distinctMailInfo.userId != oldInfo.userId) throw new BizError(ERRORENUM.邮箱重复, oldInfo.loginId, oldInfo.mail );
form
.
mail
=
form
.
unitMail
;
form
.
mail
=
form
.
unitMail
;
/**修改会员用户信息 */
/**修改会员用户信息 */
await
updateOneData
(
TABLEENUM
.
用户表
,
{
userId
},
form
);
await
updateOneData
(
TABLEENUM
.
用户表
,
{
userId
},
form
);
...
@@ -430,7 +476,6 @@ export async function unitInfoSupplement({form, keyanForm, userId}) {
...
@@ -430,7 +476,6 @@ export async function unitInfoSupplement({form, keyanForm, userId}) {
await
deleteManyData
(
TABLEENUM
.
单位所获得科研成果表
,
{
userId
});
await
deleteManyData
(
TABLEENUM
.
单位所获得科研成果表
,
{
userId
});
}
}
/**添加新的科研信息 */
/**添加新的科研信息 */
let
addList
=
[];
let
addList
=
[];
for
(
let
i
=
0
;
i
<
keyanForm
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
keyanForm
.
length
;
i
++
)
{
...
@@ -447,11 +492,26 @@ export async function unitInfoSupplement({form, keyanForm, userId}) {
...
@@ -447,11 +492,26 @@ export async function unitInfoSupplement({form, keyanForm, userId}) {
}
}
/**
* 变更理事申请理由
* @param applyStr 变更申请理由
* @param userId 登录的userid
* @returns
*/
export
async
function
applyReason
({
applyStr
,
userId
})
{
let
oldInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
userId
});
if
(
!
oldInfo
||
!
oldInfo
.
userId
)
throw
new
BizError
(
ERRORENUM
.
目标数据不存在
);
const
Now
=
new
Date
().
valueOf
();
let
param
=
{
applyStr
,
changeApplyType
:
CHANGEAPPLYTYPE
.
待审批
,
applyApplicationTime
:
Now
,
}
await
updateOneData
(
TABLEENUM
.
用户表
,
{
userId
},
param
);
return
successResult
();
}
...
...
src/biz/member/msgActivity.ts
View file @
c186d73c
...
@@ -234,7 +234,8 @@ export async function noticeMessage({userId}) {
...
@@ -234,7 +234,8 @@ export async function noticeMessage({userId}) {
let
dataList
=
[];
let
dataList
=
[];
const
SelectFiles
=
[
"msgId"
,
"msgTitle"
,
"effectiveTime"
,
"msgContent"
,
"isPop"
];
const
SelectFiles
=
[
"msgId"
,
"msgTitle"
,
"effectiveTime"
,
"msgContent"
,
"isPop"
];
let
msgInfo
=
await
find
(
TABLEENUM
.
消息通知表
,
selectParam
,
SelectFiles
);
let
msgInfo
=
await
findToSort
(
TABLEENUM
.
消息通知表
,
selectParam
,
{
createTime
:
-
1
},
SelectFiles
);
// let msgInfo = await find(TABLEENUM.消息通知表, selectParam, SelectFiles);
// if (!msgInfo || !msgInfo.msgId) throw new BizError(ERRORENUM.目标数据不存在);
// if (!msgInfo || !msgInfo.msgId) throw new BizError(ERRORENUM.目标数据不存在);
if
(
msgInfo
)
{
if
(
msgInfo
)
{
msgInfo
.
forEach
(
info
=>
{
msgInfo
.
forEach
(
info
=>
{
...
...
src/config/enum.ts
View file @
c186d73c
...
@@ -699,6 +699,8 @@ export enum CLIENTMSGLABLE {
...
@@ -699,6 +699,8 @@ export enum CLIENTMSGLABLE {
单位会员
=
"单位会员"
,
单位会员
=
"单位会员"
,
理事
=
"理事会员"
,
理事
=
"理事会员"
,
常务理事
=
"常务理事会员"
,
常务理事
=
"常务理事会员"
,
驳回申请
=
"驳回理事申请"
,
通过申请
=
"通过理事申请"
,
}
}
...
@@ -758,3 +760,39 @@ export enum ORDEREXAMINE {
...
@@ -758,3 +760,39 @@ export enum ORDEREXAMINE {
用户提交
=
1
,
用户提交
=
1
,
退回
退回
}
}
/**
* 会员等级 会员职务【变更理事】
*/
export
enum
MEMBERLEVELCHANGE
{
申请理事
=
MEMBERLEVEL
.
理事会员
,
申请常务理事
=
MEMBERLEVEL
.
常务理事会员
,
}
/**
* 变更审批状态
*/
export
enum
CHANGEAPPLYTYPE
{
注册信息待补充
=
1
,
注册信息补充完成
,
通过
,
待审批
,
驳回修改
,
}
src/config/errorEnum.ts
View file @
c186d73c
...
@@ -64,7 +64,9 @@ export enum ERRORENUM {
...
@@ -64,7 +64,9 @@ export enum ERRORENUM {
当前变更申请未发生变化
,
当前变更申请未发生变化
,
不可重复提交
,
不可重复提交
,
订单非退回状态
,
订单非退回状态
,
该类型退款无需确认
该类型退款无需确认
,
注册信息待补充
,
超出可申请范围
}
}
export
enum
ERRORCODEENUM
{
export
enum
ERRORCODEENUM
{
...
...
src/data/models/model.ts
View file @
c186d73c
...
@@ -445,7 +445,14 @@ const ModelArray = [
...
@@ -445,7 +445,14 @@ const ModelArray = [
/**注册第二步保存未提交 */
/**注册第二步保存未提交 */
saveUnsubmitted
:{
type
:
'Number'
,
default
:
STATE
.
否
},
//是否提交注册完成 0:否, 1:是 STATE
saveUnsubmitted
:{
type
:
'Number'
,
default
:
STATE
.
否
},
//是否提交注册完成 0:否, 1:是 STATE
firstStep
:
'Number'
,
//第一步完成时间
firstStep
:
'Number'
,
//第一步完成时间
memberLevelChange
:
'Number'
,
//会员等级、职务 枚举 MEMBERLEVEL 【变更申请职位】
/**变更理事 */
applyMemberLevel
:
'Number'
,
//申请变更的职位
beforeChange
:
'Number'
,
//会员等级、职务 枚举 MEMBERLEVEL 【变更申请前的职位】
applyStr
:
'String'
,
//变更理事申请理由
changeApplyType
:
'Number'
,
//变更审批状态
applyApplicationTime
:
'Number'
,
//变更理事申请时间
applyReviewTime
:
'Number'
,
//变更理事审核时间
rejectRemarks
:
'String'
,
//变更理事驳回理由
}
}
},
},
{
{
...
...
src/routers/apply/router.ts
0 → 100644
View file @
c186d73c
/**
* 变更审批
*/
import
*
as
applyBiz
from
"../../biz/member/apply"
;
export
const
FirstName
=
'变更审批'
;
export
const
FirstRouter
=
'/manage/apply'
;
export
const
Config
=
{
"变更审批管理"
:[
{
apiName
:
"变更审批列表"
,
subUrl
:
'/applydb/applylist'
,
param
:[
// name, joinStartTime, joinEndTime, beforeChange, memberLevel, pageNumber
{
key
:
"name"
,
type
:
"String"
,
desc
:
"单位/个人名称"
,
isNull
:
true
},
{
key
:
"joinStartTime"
,
type
:
"Number"
,
desc
:
"入会开始时间"
,
isNull
:
true
},
{
key
:
"joinEndTime"
,
type
:
"Number"
,
desc
:
"入会结束时间"
,
isNull
:
true
},
{
key
:
"beforeChange"
,
type
:
"[Number]"
,
desc
:
"变更前会员等级职务"
,
isNull
:
true
},
{
key
:
"memberLevel"
,
type
:
"[Number]"
,
desc
:
"变更后会员等级职务"
,
isNull
:
true
},
{
key
:
"memberCategory"
,
type
:
"Number"
,
desc
:
"会员类别"
,
isNull
:
true
},
{
key
:
"pageNumber"
,
type
:
"Number"
,
desc
:
"当前页"
}
],
bindBiz
:
applyBiz
.
applyList
},
{
apiName
:
"变更审批通过"
,
subUrl
:
'/applydb/applyadopt'
,
param
:[
{
key
:
"id"
,
type
:
"String"
,
desc
:
"用户id"
},
],
bindBiz
:
applyBiz
.
applyAdopt
},
{
apiName
:
"批量通过"
,
subUrl
:
'/applydb/applybatchadopt'
,
param
:[
{
key
:
"idList"
,
type
:
"[String]"
,
desc
:
"批量通过的用户列表"
},
],
bindBiz
:
applyBiz
.
applyBatchAdopt
},
{
apiName
:
"驳回"
,
subUrl
:
'/applydb/applyreject'
,
param
:[
{
key
:
"id"
,
type
:
"String"
,
desc
:
"用户id"
},
{
key
:
"remarks"
,
type
:
"String"
,
desc
:
"驳回理由"
}
],
bindBiz
:
applyBiz
.
applyReject
},
{
apiName
:
"数据导出"
,
subUrl
:
'/applydb/outputapply'
,
param
:[
],
bindBiz
:
applyBiz
.
outPutApply
},
]
}
\ No newline at end of file
src/routers/member/router.ts
View file @
c186d73c
...
@@ -959,20 +959,20 @@ export const Config = {
...
@@ -959,20 +959,20 @@ export const Config = {
apiName
:
"变更职位"
,
apiName
:
"变更职位"
,
subUrl
:
'/homepage/memberlevelupdate'
,
subUrl
:
'/homepage/memberlevelupdate'
,
param
:[
param
:[
{
key
:
"memberLevel
Change
"
,
type
:
"Number"
,
desc
:
"变更职位"
}
{
key
:
"memberLevel"
,
type
:
"Number"
,
desc
:
"变更职位"
}
],
],
bindBiz
:
homePageBiz
.
memberlevelUpdate
bindBiz
:
homePageBiz
.
memberlevelUpdate
},
},
{
{
apiName
:
"是否需要补充用户信息"
,
apiName
:
"是否需要补充用户信息"
,
subUrl
:
'/homepage/
getcertificate
'
,
subUrl
:
'/homepage/
isneedsupplement
'
,
param
:[
param
:[
],
],
bindBiz
:
homePageBiz
.
isNeedSupplement
bindBiz
:
homePageBiz
.
isNeedSupplement
},
},
{
{
apiName
:
"个人会员用户注册信息补充"
,
apiName
:
"个人会员用户注册信息补充"
,
subUrl
:
'/homepage/
getcertificate
'
,
subUrl
:
'/homepage/
infosupplement
'
,
param
:[
param
:[
{
{
key
:
"form"
,
type
:
"Object"
,
sub
:
key
:
"form"
,
type
:
"Object"
,
sub
:
...
@@ -980,34 +980,32 @@ export const Config = {
...
@@ -980,34 +980,32 @@ export const Config = {
/**基本信息 */
/**基本信息 */
name
:{
type
:
'String'
,
desc
:
'真实姓名'
},
name
:{
type
:
'String'
,
desc
:
'真实姓名'
},
sex
:{
type
:
'Number'
,
desc
:
'性别'
},
sex
:{
type
:
'Number'
,
desc
:
'性别'
},
nation
:{
type
:
'Number'
,
desc
:
'民族'
},
birth
:{
type
:
'Number'
,
desc
:
'出身年月'
},
documentType
:{
type
:
'Number'
,
desc
:
'证件类型'
},
documentType
:{
type
:
'Number'
,
desc
:
'证件类型'
},
documentId
:{
type
:
'String'
,
desc
:
'证件号码'
},
documentId
:{
type
:
'String'
,
desc
:
'证件号码'
},
birth
:{
type
:
'Number'
,
desc
:
'出生年月'
},
nation
:{
type
:
'Number'
,
desc
:
'民族'
},
sheng
:{
type
:
'String'
,
desc
:
'省'
},
sheng
:{
type
:
'String'
,
desc
:
'省'
},
shi
:{
type
:
'String'
,
desc
:
'市'
},
shi
:{
type
:
'String'
,
desc
:
'市'
},
qu
:{
type
:
'String'
,
desc
:
'区'
},
qu
:{
type
:
'String'
,
desc
:
'区'
},
phone
:{
type
:
'String'
,
desc
:
'手机号码'
},
mail
:{
type
:
'String'
,
desc
:
'电子邮箱'
},
addres
:{
type
:
'String'
,
desc
:
'通信地址'
},
addres
:{
type
:
'String'
,
desc
:
'通信地址'
},
photoUrl
:{
type
:
'String'
,
desc
:
'蓝底证件照'
},
education
:{
type
:
'Number'
,
desc
:
'学历'
},
/**专业信息 */
/**专业信息 */
education
:{
type
:
'Number'
,
desc
:
'学历'
},
photoUrl
:{
type
:
'String'
,
desc
:
'蓝底证件照'
},
unitName
:{
type
:
'String'
,
desc
:
'工作单位'
},
unitName
:{
type
:
'String'
,
desc
:
'工作单位'
},
duties
:{
type
:
'String'
,
desc
:
'职务'
},
duties
:{
type
:
'String'
,
desc
:
'职务'
},
workTitle
:{
type
:
'String'
,
desc
:
'职称'
},
workTitle
:{
type
:
'String'
,
desc
:
'职称'
},
profCategory
:{
type
:
'[Number]'
,
desc
:
'专业类别'
},
profCategory
:{
type
:
'[Number]'
,
desc
:
'专业类别'
},
studyResume
:{
type
:
'String'
,
desc
:
'学习简历'
},
studyResume
:{
type
:
'String'
,
desc
:
'学习简历'
},
workResume
:{
type
:
'String'
,
desc
:
'工作简历'
},
workResume
:{
type
:
'String'
,
desc
:
'工作简历'
},
profAchievement
:{
type
:
'String'
,
desc
:
'
教研
成果'
},
profAchievement
:{
type
:
'String'
,
desc
:
'
专业
成果'
},
otherEMP
:{
type
:
'String'
,
desc
:
'
其他
组织任职情况'
},
otherEMP
:{
type
:
'String'
,
desc
:
'
在其他社会
组织任职情况'
},
otherPROF
:{
type
:
'String'
,
desc
:
'其他情况'
},
otherPROF
:{
type
:
'String'
,
desc
:
'其他
与本学会专业有关的
情况'
},
/**其他附件 */
/**其他附件 */
cardUrlJust
:{
type
:
'String'
,
desc
:
'个人身份证扫描件正面'
},
cardUrlJust
:{
type
:
'String'
,
desc
:
'个人身份证扫描件正面'
},
cardUrlBack
:{
type
:
'String'
,
desc
:
'个人身份证扫描件反面'
},
cardUrlBack
:{
type
:
'String'
,
desc
:
'个人身份证扫描件反面'
},
academicCERTUrl
:{
type
:
'String'
,
desc
:
'个人学历证明扫描件'
},
academicCERTUrl
:{
type
:
'String'
,
desc
:
'个人学历证明扫描件'
},
professionalCERTUrl
:{
type
:
'String'
,
desc
:
'个人工作证明扫描件'
},
professionalCERTUrl
:{
type
:
'String'
,
desc
:
'个人工作证明扫描件'
,
notMustHave
:
true
},
auxiliaryMaterial
:{
type
:
'[String]'
,
desc
:
'论文发表
或成绩材料'
},
auxiliaryMaterial
:{
type
:
'[String]'
,
desc
:
'论文发表
等证明工作成果或成绩的材料'
,
notMustHave
:
true
},
}
}
}
}
],
],
...
@@ -1015,41 +1013,43 @@ export const Config = {
...
@@ -1015,41 +1013,43 @@ export const Config = {
},
},
{
{
apiName
:
"单位会员用户注册信息补充"
,
apiName
:
"单位会员用户注册信息补充"
,
subUrl
:
'/homepage/
getcertificate
'
,
subUrl
:
'/homepage/
unitinfosupplement
'
,
param
:[
param
:[
{
{
key
:
"form"
,
type
:
"Object"
,
sub
:
key
:
"form"
,
type
:
"Object"
,
sub
:
{
{
/**基本信息 */
unitName
:{
type
:
'String'
,
desc
:
'单位名称'
,
notMustHave
:
false
},
unitName
:{
type
:
'String'
,
desc
:
'单位名称'
},
sheng
:{
type
:
'String'
,
desc
:
'省'
,
notMustHave
:
false
},
addres
:{
type
:
'String'
,
desc
:
'通信地址'
},
shi
:{
type
:
'String'
,
desc
:
'市'
,
notMustHave
:
false
},
legalPerson
:{
type
:
'String'
,
desc
:
'法人代表'
},
qu
:{
type
:
'String'
,
desc
:
'区'
,
notMustHave
:
false
},
legalPersonPhone
:{
type
:
'String'
,
desc
:
'法人联系电话'
},
addres
:{
type
:
'String'
,
desc
:
'通信地址'
,
notMustHave
:
false
},
legalPersonMail
:{
type
:
'String'
,
desc
:
'法人邮箱'
},
uscc
:{
type
:
'String'
,
desc
:
'单位信用代码'
,
notMustHave
:
false
},
unitMail
:{
type
:
'String'
,
desc
:
'单位电子邮箱'
},
legalPerson
:{
type
:
'String'
,
desc
:
'法人代表'
,
notMustHave
:
false
},
contactPerson
:{
type
:
'String'
,
desc
:
'日常联系人'
},
legalPersonPhone
:{
type
:
'String'
,
desc
:
'法人联系电话'
,
notMustHave
:
false
},
contactPersonDuties
:{
type
:
'String'
,
desc
:
'日常联系人职务'
},
legalPersonMail
:{
type
:
'String'
,
desc
:
'法人邮箱'
,
notMustHave
:
false
},
contactPersonPhone
:{
type
:
'String'
,
desc
:
'日常联系人电话'
},
// unitMail:{type:'String', desc:'单位电子邮箱', notMustHave:false}, 2024.4.22日的需求 去掉
sheng
:{
type
:
'String'
,
desc
:
'省'
},
contactPerson
:{
type
:
'String'
,
desc
:
'日常联系人'
,
notMustHave
:
false
},
shi
:{
type
:
'String'
,
desc
:
'市'
},
contactPersonDuties
:{
type
:
'String'
,
desc
:
'日常联系人职务'
,
notMustHave
:
false
},
qu
:{
type
:
'String'
,
desc
:
'区'
},
contactPersonPhone
:{
type
:
'String'
,
desc
:
'日常联系人手机'
,
notMustHave
:
false
},
uusinessLicenseUrl
:{
type
:
'String'
,
desc
:
'营业执照
'
},
uusinessLicenseUrl
:{
type
:
'String'
,
desc
:
'营业执照
复印件'
,
notMustHave
:
false
},
/**单位信息 */
/**单位信息 */
unitMemberType
:{
type
:
'Number'
,
desc
:
'单位类型'
},
unitMemberType
:{
type
:
'Number'
,
desc
:
'单位信息类型,枚举'
,
notMustHave
:
false
},
yuanXiaoBanXueLeiXing
:{
type
:
'Number'
,
desc
:
'办学类型'
},
yuanXiaoBanXueLeiXing
:{
type
:
'Number'
,
desc
:
'院校办学类型,枚举'
,
notMustHave
:
false
},
yuanXiaoZhuGuanBuMen
:{
type
:
'String'
,
desc
:
'主管部门'
},
yuanXiaoZhuGuanBuMen
:{
type
:
'String'
,
desc
:
'院校主管部门'
,
notMustHave
:
false
},
yuanXiaoFuZeRen
:{
type
:
'String'
,
desc
:
'主要负责人姓名'
},
yuanXiaoFuZeRen
:{
type
:
'String'
,
desc
:
'院校主要负责人'
,
notMustHave
:
false
},
yuanXiaoFuZeRenZhiWu
:{
type
:
'String'
,
desc
:
'主要负责人职位'
},
yuanXiaoFuZeRenZhiWu
:{
type
:
'String'
,
desc
:
'院校主要负责人职务'
,
notMustHave
:
false
},
yuanXiaoFuZeRenDianHua
:{
type
:
'String'
,
desc
:
'主要负责人电话'
},
yuanXiaoFuZeRenDianHua
:{
type
:
'String'
,
desc
:
'院校主要负责人电话'
,
notMustHave
:
false
},
ZhuYaoFuZeRenYouXiang
:{
type
:
'String'
,
desc
:
'主要负责人邮箱'
},
yuanXiaoBanGongFuZeRen
:{
type
:
'String'
,
desc
:
'院校办公负责人'
,
notMustHave
:
false
},
yuanXiaoBanGongFuZeRen
:{
type
:
'String'
,
desc
:
'办公负责人姓名'
},
yuanXiaoBanGongFuZeRenDianHua
:{
type
:
'String'
,
desc
:
'院校办公负责人电话'
,
notMustHave
:
false
},
yuanXiaoBanGongFuZeRenDianHua
:{
type
:
'String'
,
desc
:
'办公负责人电话'
},
ZhuYaoFuZeRenYouXiang
:{
type
:
'String'
,
desc
:
'主要负责人邮箱'
,
notMustHave
:
false
},
yuanXiaoKeYanFuZeRen
:{
type
:
'String'
,
desc
:
'科研负责人姓名'
},
yuanXiaoKeYanFuZeRen
:{
type
:
'String'
,
desc
:
'院校科研负责人'
,
notMustHave
:
false
},
yuanXiaoKeYanFuZeRenDianHua
:{
type
:
'String'
,
desc
:
'科研负责人电话'
},
yuanXiaoKeYanFuZeRenDianHua
:{
type
:
'String'
,
desc
:
'院校科研负责人电话'
,
notMustHave
:
false
},
jiaoXueFuZeRenXinMing
:{
type
:
'String'
,
desc
:
'教学负责人姓名'
},
jiaoXueFuZeRenXinMing
:{
type
:
'String'
,
desc
:
'教学负责人姓名'
,
notMustHave
:
false
},
jiaoXueFuZeRenDianHua
:{
type
:
'String'
,
desc
:
'教学负责人电话'
},
yuanXiaoXueShengZongRenShu
:{
type
:
'Number'
,
desc
:
'院校学生总人数'
,
notMustHave
:
true
},
yuanXiaoJiaoZhiGongZongRenShu
:{
type
:
'Number'
,
desc
:
'院校教职工总人数'
,
notMustHave
:
true
},
jiaoXueFuZeRenDianHua
:{
type
:
'String'
,
desc
:
'教学负责人电话'
,
notMustHave
:
false
},
kaishezhuanYe
:{
type
:
'String'
,
desc
:
'开设专业'
,
notMustHave
:
true
},
kaishezhuanYe
:{
type
:
'String'
,
desc
:
'开设专业'
,
notMustHave
:
true
},
danWeiJianJie
:{
type
:
'String'
,
desc
:
'单位简介'
,
notMustHave
:
true
}
danWeiJianJie
:{
type
:
'String'
,
desc
:
'单位简介'
,
notMustHave
:
true
}
,
},
},
desc
:
"表单"
desc
:
"表单"
},
},
...
@@ -1065,6 +1065,14 @@ export const Config = {
...
@@ -1065,6 +1065,14 @@ export const Config = {
],
],
bindBiz
:
homePageBiz
.
unitInfoSupplement
bindBiz
:
homePageBiz
.
unitInfoSupplement
},
},
{
apiName
:
"变更申请理由"
,
subUrl
:
'/homepage/applyreason'
,
param
:[
{
key
:
"applyStr"
,
type
:
"String"
,
desc
:
"变更申请理由"
}
],
bindBiz
:
homePageBiz
.
applyReason
},
],
],
"oss授权"
:[
"oss授权"
:[
{
{
...
...
src/routers/public/router.ts
View file @
c186d73c
...
@@ -308,6 +308,13 @@ export const Config = {
...
@@ -308,6 +308,13 @@ export const Config = {
param
:[],
param
:[],
defaultParam
:
enumConfig
.
ISRECEIVE
,
defaultParam
:
enumConfig
.
ISRECEIVE
,
bindBiz
:
publicBiz
.
setEnumInterface
bindBiz
:
publicBiz
.
setEnumInterface
},
{
apiName
:
"变更理事"
,
subUrl
:
'/memberlevelchange'
,
param
:[],
defaultParam
:
enumConfig
.
MEMBERLEVELCHANGE
,
bindBiz
:
publicBiz
.
setEnumInterface
}
}
],
],
...
...
src/routers/router.ts
View file @
c186d73c
...
@@ -18,6 +18,7 @@ import * as outPutRouter from "./outPut/routers";
...
@@ -18,6 +18,7 @@ import * as outPutRouter from "./outPut/routers";
import
*
as
labelRouter
from
"./lable/router"
;
import
*
as
labelRouter
from
"./lable/router"
;
import
*
as
blacklistRouter
from
"./blackList/router"
;
import
*
as
blacklistRouter
from
"./blackList/router"
;
import
*
as
msgActivityRouter
from
"./msgActivity/router"
;
import
*
as
msgActivityRouter
from
"./msgActivity/router"
;
import
*
as
applyRouter
from
"./apply/router"
;
import
*
as
asyncHandler
from
'express-async-handler'
;
import
*
as
asyncHandler
from
'express-async-handler'
;
import
{
payCallback
}
from
"../biz/member/cost"
;
import
{
payCallback
}
from
"../biz/member/cost"
;
import
{
checkUser
}
from
"../middleware/user"
;
import
{
checkUser
}
from
"../middleware/user"
;
...
@@ -28,16 +29,17 @@ export async function setRouter(httpServer){
...
@@ -28,16 +29,17 @@ export async function setRouter(httpServer){
if
(
Look
)
{
if
(
Look
)
{
await
getDoc
();
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
(
publicRouter
.
FirstName
,
publicRouter
.
Config
,
publicRouter
.
FirstRouter
);
//公用组件
//
await initDoc(memberRouter.FirstName, memberRouter.Config, memberRouter.FirstRouter);//用户路由
await
initDoc
(
memberRouter
.
FirstName
,
memberRouter
.
Config
,
memberRouter
.
FirstRouter
);
//用户路由
// await initDoc(officalWebsiteRouter.FirstName, officalWebsiteRouter.Config, officalWebsiteRouter.FirstRouter);//官网路由
// await initDoc(officalWebsiteRouter.FirstName, officalWebsiteRouter.Config, officalWebsiteRouter.FirstRouter);//官网路由
await
initDoc
(
orderRouter
.
FirstName
,
orderRouter
.
Config
,
orderRouter
.
FirstRouter
);
//会费相关
//
await initDoc(orderRouter.FirstName, orderRouter.Config, orderRouter.FirstRouter);//会费相关
// await initDoc(costRouter.FirstName, costRouter.Config, costRouter.FirstRouter);//支付
// await initDoc(costRouter.FirstName, costRouter.Config, costRouter.FirstRouter);//支付
// await initDoc(outPutRouter.FirstName, outPutRouter.Config, outPutRouter.FirstRouter);//导出路由
// await initDoc(outPutRouter.FirstName, outPutRouter.Config, outPutRouter.FirstRouter);//导出路由
// await initDoc(labelRouter.FirstName, labelRouter.Config, labelRouter.FirstRouter);//标签路由
// await initDoc(labelRouter.FirstName, labelRouter.Config, labelRouter.FirstRouter);//标签路由
// await initDoc("2.0", labelRouter.Config, labelRouter.FirstRouter);//标签路由
// await initDoc("2.0", labelRouter.Config, labelRouter.FirstRouter);//标签路由
// await initDoc("2.0", blacklistRouter.Config, blacklistRouter.FirstRouter);//黑名单路由
// await initDoc("2.0", blacklistRouter.Config, blacklistRouter.FirstRouter);//黑名单路由
// await initDoc("2.0", msgActivityRouter.Config, msgActivityRouter.FirstRouter);//消息活动通知路由
// await initDoc("2.0", msgActivityRouter.Config, msgActivityRouter.FirstRouter);//消息活动通知路由
await
initDoc
(
applyRouter
.
FirstName
,
applyRouter
.
Config
,
applyRouter
.
FirstRouter
);
//变更审批路由
}
}
analysisRouter
(
httpServer
,
portalRouter
.
Config
,
portalRouter
.
FirstRouter
,
true
);
//网站编辑
analysisRouter
(
httpServer
,
portalRouter
.
Config
,
portalRouter
.
FirstRouter
,
true
);
//网站编辑
analysisRouter
(
httpServer
,
publicRouter
.
Config
,
publicRouter
.
FirstRouter
,
false
);
//公用组件
analysisRouter
(
httpServer
,
publicRouter
.
Config
,
publicRouter
.
FirstRouter
,
false
);
//公用组件
...
@@ -49,6 +51,7 @@ export async function setRouter(httpServer){
...
@@ -49,6 +51,7 @@ export async function setRouter(httpServer){
analysisRouter
(
httpServer
,
labelRouter
.
Config
,
labelRouter
.
FirstRouter
,
true
);
//标签相关
analysisRouter
(
httpServer
,
labelRouter
.
Config
,
labelRouter
.
FirstRouter
,
true
);
//标签相关
analysisRouter
(
httpServer
,
blacklistRouter
.
Config
,
blacklistRouter
.
FirstRouter
,
true
);
//黑名单相关
analysisRouter
(
httpServer
,
blacklistRouter
.
Config
,
blacklistRouter
.
FirstRouter
,
true
);
//黑名单相关
analysisRouter
(
httpServer
,
msgActivityRouter
.
Config
,
msgActivityRouter
.
FirstRouter
,
true
);
//消息活动通知
analysisRouter
(
httpServer
,
msgActivityRouter
.
Config
,
msgActivityRouter
.
FirstRouter
,
true
);
//消息活动通知
analysisRouter
(
httpServer
,
applyRouter
.
Config
,
applyRouter
.
FirstRouter
,
true
);
//消息活动通知
}
}
...
...
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