Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yfsxcx
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
yfsxcx
Commits
7a7c6def
Commit
7a7c6def
authored
May 18, 2023
by
孙香冬
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
组织生活、党员信息
parent
42da2466
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
567 additions
and
158 deletions
+567
-158
organizationalLife.ts
src/biz/abi/organizationalLife.ts
+1
-0
base.ts
src/biz/applet/base.ts
+10
-8
organizationalLife.ts
src/biz/applet/partyMember/organizationalLife.ts
+11
-9
partyMember.ts
src/biz/applet/partyMember/partyMember.ts
+143
-3
enum.ts
src/config/enum.ts
+82
-3
splitResultConfig.ts
src/config/splitResultConfig.ts
+63
-3
systemClass.ts
src/config/systemClass.ts
+2
-0
systemConfig.ts
src/config/systemConfig.ts
+2
-1
organizationalLife.ts
src/data/organizationalLife.ts
+3
-4
partyInformation.ts
src/data/partyInformation.ts
+4
-4
partyMember.ts
src/data/partyMember.ts
+31
-7
http_server.ts
src/net/http_server.ts
+1
-1
base.ts
src/routers/applet/base.ts
+10
-2
organizationalLife.ts
src/routers/applet/organizationalLife.ts
+11
-3
partyMember.ts
src/routers/applet/partyMember.ts
+46
-4
public.ts
src/routers/public.ts
+65
-37
verificationParam.ts
src/util/verificationParam.ts
+82
-69
No files found.
src/biz/abi/organizationalLife.ts
View file @
7a7c6def
...
@@ -26,3 +26,4 @@ export async function getActivityCount() {
...
@@ -26,3 +26,4 @@ export async function getActivityCount() {
return
{
activityCount
:{
title
:
"活动开展次数"
,
value
:
activityCount
},
dataList
:{
title
:
"组织生活扇形图"
,
list
:
activityList
}};
return
{
activityCount
:{
title
:
"活动开展次数"
,
value
:
activityCount
},
dataList
:{
title
:
"组织生活扇形图"
,
list
:
activityList
}};
}
}
src/biz/applet/base.ts
View file @
7a7c6def
...
@@ -11,6 +11,7 @@ import { extractData } from '../../util/piecemeal';
...
@@ -11,6 +11,7 @@ import { extractData } from '../../util/piecemeal';
import
{
changeEnumValue
,
eccEnumValue
}
from
'../../util/verificationEnum'
;
import
{
changeEnumValue
,
eccEnumValue
}
from
'../../util/verificationEnum'
;
import
{
BizError
}
from
'../../util/bizError'
;
import
{
BizError
}
from
'../../util/bizError'
;
import
{
ERRORENUM
}
from
'../../config/errorEnum'
;
import
{
ERRORENUM
}
from
'../../config/errorEnum'
;
import
{
systemConfig
}
from
'../../config/systemConfig'
;
/**
/**
...
@@ -18,10 +19,10 @@ import { ERRORENUM } from '../../config/errorEnum';
...
@@ -18,10 +19,10 @@ import { ERRORENUM } from '../../config/errorEnum';
* @param branchName 支部id
* @param branchName 支部id
* @returns {支部名称, 党员总数, 党建指令指数, 党内职务人员列表}
* @returns {支部名称, 党员总数, 党建指令指数, 党内职务人员列表}
*/
*/
export
async
function
homeData
(
branchName
:
number
)
{
export
async
function
homeData
(
branchName
)
{
if
(
branchName
)
eccEnumValue
(
"党建资讯列表查询"
,
"支部名称"
,
configEnum
.
BRANCHNAMETYPE
,
branchName
);
if
(
branchName
&&
branchName
.
length
>
0
)
eccEnumValue
(
"党建资讯列表查询"
,
"支部名称"
,
configEnum
.
BRANCHNAMETYPE
,
branchName
);
let
branch
=
changeEnumValue
(
configEnum
.
BRANCHNAMETYPE
,
branchName
);
//支部名称
let
branch
=
changeEnumValue
(
configEnum
.
BRANCHNAMETYPE
,
branchName
);
//支部名称
let
partyMemberNum
=
await
partyMemberData
.
groupFindPartyMemberCount
({
branchName
});
//党员总数
let
partyMemberNum
=
await
partyMemberData
.
groupFindPartyMemberCount
({
branchName
:{
$in
:
branchName
}
});
//党员总数
let
massIndex
=
87.6
;
//党建指令指数
let
massIndex
=
87.6
;
//党建指令指数
let
partyPositions
=
[];
//党内职务人员
let
partyPositions
=
[];
//党内职务人员
...
@@ -29,7 +30,7 @@ export async function homeData(branchName:number) {
...
@@ -29,7 +30,7 @@ export async function homeData(branchName:number) {
let
anyKey
:
any
=
key
;
let
anyKey
:
any
=
key
;
if
(
isNaN
(
anyKey
))
{
//枚举key key = string
if
(
isNaN
(
anyKey
))
{
//枚举key key = string
const
EnumValue
=
parseInt
(
configEnum
.
PARTYPOSITIONS
[
key
])
const
EnumValue
=
parseInt
(
configEnum
.
PARTYPOSITIONS
[
key
])
let
dataBaseList
=
await
partyMemberData
.
getBaseListByPartyPositions
(
[
EnumValue
],
branchName
);
let
dataBaseList
=
await
partyMemberData
.
getBaseListByPartyPositions
(
[
EnumValue
],
[
branchName
]
);
let
nameList
=
[];
let
nameList
=
[];
dataBaseList
.
forEach
(
info
=>
{
dataBaseList
.
forEach
(
info
=>
{
...
@@ -57,9 +58,9 @@ export async function homeData(branchName:number) {
...
@@ -57,9 +58,9 @@ export async function homeData(branchName:number) {
* @param branchName 支部id
* @param branchName 支部id
* @returns
* @returns
*/
*/
export
async
function
informationData
(
informationType
:
number
,
branchName
:
number
)
{
export
async
function
informationData
(
informationType
:
number
,
branchName
)
{
if
(
informationType
)
eccEnumValue
(
"党建资讯列表查询"
,
"资讯类型"
,
configEnum
.
INFORMATIONTYPE
,
informationType
);
if
(
informationType
)
eccEnumValue
(
"党建资讯列表查询"
,
"资讯类型"
,
configEnum
.
INFORMATIONTYPE
,
informationType
);
if
(
branchName
)
eccEnumValue
(
"党建资讯列表查询"
,
"支部名称"
,
configEnum
.
BRANCHNAMETYPE
,
branchName
);
if
(
branchName
&&
branchName
.
length
>
0
)
eccEnumValue
(
"党建资讯列表查询"
,
"支部名称"
,
configEnum
.
BRANCHNAMETYPE
,
branchName
);
let
partyInformationInfo
=
await
partyInformationData
.
findPartyInformationListByType
(
informationType
,
branchName
);
let
partyInformationInfo
=
await
partyInformationData
.
findPartyInformationListByType
(
informationType
,
branchName
);
if
(
!
partyInformationInfo
)
throw
new
BizError
(
ERRORENUM
.
未找到数据
,
`库中不存在党建资讯类型为
${
informationType
}
, 支部为
${
branchName
}
的党建资讯列表`
);
if
(
!
partyInformationInfo
)
throw
new
BizError
(
ERRORENUM
.
未找到数据
,
`库中不存在党建资讯类型为
${
informationType
}
, 支部为
${
branchName
}
的党建资讯列表`
);
...
@@ -67,8 +68,9 @@ export async function informationData(informationType:number, branchName:number)
...
@@ -67,8 +68,9 @@ export async function informationData(informationType:number, branchName:number)
let
dataList
=
[];
let
dataList
=
[];
partyInformationInfo
.
forEach
(
info
=>
{
partyInformationInfo
.
forEach
(
info
=>
{
let
changeData
:
any
=
extractData
(
splitResultConfig
.
partyInformationConfig
,
info
,
true
);
let
changeData
:
any
=
extractData
(
splitResultConfig
.
partyInformationConfig
,
info
,
true
);
changeData
.
informationType
=
changeEnumValue
(
configEnum
.
INFORMATIONTYPE
,
info
.
informationType
);
changeData
.
img
=
systemConfig
.
imgUrl
+
changeData
.
img
;
changeData
.
branchName
=
changeEnumValue
(
configEnum
.
BRANCHNAMETYPE
,
info
.
branchName
);
changeData
.
informationType
=
changeEnumValue
(
configEnum
.
INFORMATIONTYPE
,
changeData
.
informationType
);
changeData
.
branchName
=
changeEnumValue
(
configEnum
.
BRANCHNAMETYPE
,
changeData
.
branchName
);
dataList
.
push
(
changeData
);
dataList
.
push
(
changeData
);
})
})
...
...
src/biz/applet/partyMember/organizationalLife.ts
View file @
7a7c6def
...
@@ -20,12 +20,12 @@ moment.suppressDeprecationWarnings = true;
...
@@ -20,12 +20,12 @@ moment.suppressDeprecationWarnings = true;
/**
/**
* 组织生活列表
* 组织生活列表
*
todo 接口协议不对
*
@param type 组织生活活动类型
* @param
status 活动状态 全部、正在进行、即将开展、已经开展
* @param
partyActivityType 活动名称(党建活动类型)
* @
returns data
* @
param branchName 支部名称
*
返回说明
根据传入的活动状态返回不同的列表
*
@returns
根据传入的活动状态返回不同的列表
*/
*/
export
async
function
getOrganizationalLifeList
(
type
:
number
,
partyActivityType
:
number
,
branchName
:
number
)
{
export
async
function
getOrganizationalLifeList
(
type
:
number
,
partyActivityType
:
number
,
branchName
)
{
/**将枚举值转为枚举文本 */
/**将枚举值转为枚举文本 */
let
partyActivityTypeStr
=
verificationEnumTools
.
changeEnumValue
(
clientConfigEnum
.
TYPE
,
type
);
let
partyActivityTypeStr
=
verificationEnumTools
.
changeEnumValue
(
clientConfigEnum
.
TYPE
,
type
);
...
@@ -38,7 +38,7 @@ export async function getOrganizationalLifeList(type:number, partyActivityType:n
...
@@ -38,7 +38,7 @@ export async function getOrganizationalLifeList(type:number, partyActivityType:n
else
selectParam
=
{
"$and"
:[
{
"activityStartTime"
:{
"$lt"
:
NowMs
}},
{
"activityEndTime"
:{
"$gt"
:
NowMs
}}
]}
else
selectParam
=
{
"$and"
:[
{
"activityStartTime"
:{
"$lt"
:
NowMs
}},
{
"activityEndTime"
:{
"$gt"
:
NowMs
}}
]}
}
else
partyActivityTypeStr
=
""
;
}
else
partyActivityTypeStr
=
""
;
if
(
partyActivityType
)
selectParam
[
"partyActivityType"
]
=
partyActivityType
;
if
(
partyActivityType
)
selectParam
[
"partyActivityType"
]
=
partyActivityType
;
if
(
branchName
)
selectParam
[
"branchName"
]
=
branchName
;
if
(
branchName
&&
branchName
.
length
>
0
)
selectParam
[
"branchName"
]
=
{
$in
:
branchName
}
;
let
dbList
=
await
organizationalLifeData
.
findOrganizationalLifeList
(
selectParam
);
let
dbList
=
await
organizationalLifeData
.
findOrganizationalLifeList
(
selectParam
);
...
@@ -64,9 +64,9 @@ export async function getOrganizationalLifeList(type:number, partyActivityType:n
...
@@ -64,9 +64,9 @@ export async function getOrganizationalLifeList(type:number, partyActivityType:n
* 参数类型 { number, number, number, string, [string], [string], [number], [number], string}
* 参数类型 { number, number, number, string, [string], [string], [number], [number], string}
* @returns {isSuccess: true}
* @returns {isSuccess: true}
*/
*/
export
async
function
createOrganizationalLife
(
branchName
:
number
,
param
)
{
export
async
function
createOrganizationalLife
(
branchName
,
param
)
{
eccFormParam
(
"创建组织生活活动"
,
eccFormParamConfig
.
CreateActivityConfig
,
param
)
eccFormParam
(
"创建组织生活活动"
,
eccFormParamConfig
.
CreateActivityConfig
,
param
)
if
(
branchName
)
verificationEnumTools
.
eccEnumValue
(
"创建组织生活活动"
,
"支部名称"
,
configEnum
.
BRANCHNAMETYPE
,
branchName
);
if
(
branchName
&&
branchName
.
length
>
0
)
verificationEnumTools
.
eccEnumValue
(
"创建组织生活活动"
,
"支部名称"
,
configEnum
.
BRANCHNAMETYPE
,
branchName
);
verificationEnumTools
.
eccEnumValue
(
'创建组织生活活动的党建活动类型'
,
'partyActivityType'
,
configEnum
.
ACTIVITYTYPE
,
param
.
partyActivityType
);
verificationEnumTools
.
eccEnumValue
(
'创建组织生活活动的党建活动类型'
,
'partyActivityType'
,
configEnum
.
ACTIVITYTYPE
,
param
.
partyActivityType
);
param
.
branchName
=
branchName
;
param
.
branchName
=
branchName
;
await
organizationalLifeData
.
createActivity
(
param
);
await
organizationalLifeData
.
createActivity
(
param
);
...
@@ -157,7 +157,7 @@ export async function getAllPartyMember() {
...
@@ -157,7 +157,7 @@ export async function getAllPartyMember() {
let
partyMemberList
=
await
partyMemberData
.
findPartyMemberAll
({});
let
partyMemberList
=
await
partyMemberData
.
findPartyMemberAll
({});
let
data
=
[];
let
data
=
[];
partyMemberList
.
forEach
(
info
=>
{
partyMemberList
.
forEach
(
info
=>
{
let
changeData
:
any
=
extractData
(
splitResultConfig
.
partyMember
Config
,
info
,
false
);
let
changeData
:
any
=
extractData
(
splitResultConfig
.
organizationallife
Config
,
info
,
false
);
switch
(
changeData
.
entryType
)
{
switch
(
changeData
.
entryType
)
{
case
1
:
case
1
:
changeData
.
color
=
"#C62A23"
;
changeData
.
color
=
"#C62A23"
;
...
@@ -172,6 +172,8 @@ export async function getAllPartyMember() {
...
@@ -172,6 +172,8 @@ export async function getAllPartyMember() {
changeData
.
partyPositions
=
verificationEnumTools
.
changeEnumValue
(
configEnum
.
ENTRYTYPE
,
info
.
entryType
);
changeData
.
partyPositions
=
verificationEnumTools
.
changeEnumValue
(
configEnum
.
ENTRYTYPE
,
info
.
entryType
);
break
;
break
;
}
}
// changeData.partyPositions = verificationEnumTools.changeEnumValue(configEnum.PARTYPOSITIONSICON, changeData.partyPositions);
data
.
push
(
changeData
);
data
.
push
(
changeData
);
})
})
...
...
src/biz/applet/partyMember/partyMember.ts
View file @
7a7c6def
...
@@ -9,6 +9,56 @@ import * as verificationEnumTools from "../../../util/verificationEnum";
...
@@ -9,6 +9,56 @@ import * as verificationEnumTools from "../../../util/verificationEnum";
import
{
eccFormParam
}
from
"../../../util/verificationParam"
;
import
{
eccFormParam
}
from
"../../../util/verificationParam"
;
import
*
as
eccFormParamConfig
from
"../../../config/eccFormParamConfig"
;
import
*
as
eccFormParamConfig
from
"../../../config/eccFormParamConfig"
;
import
{
getPwdMd5
,
getToken
}
from
"../../../tools/system"
;
import
{
getPwdMd5
,
getToken
}
from
"../../../tools/system"
;
import
{
extractData
}
from
"../../../util/piecemeal"
;
import
*
as
splitResultConfig
from
"../../../config/splitResultConfig"
;
import
moment
=
require
(
"moment"
);
import
{
BizError
}
from
"../../../util/bizError"
;
import
{
ERRORENUM
}
from
"../../../config/errorEnum"
;
/**
* 获取党员名册
* @param branchName 支部id
* @returns
*/
export
async
function
getPartyMemberName
(
branchName
)
{
let
partyBranchName
=
verificationEnumTools
.
changeEnumValue
(
configEnum
.
BRANCHNAMETYPE
,
branchName
);
let
partyMemberNum
=
await
partyMemberData
.
groupFindPartyMemberCount
({
branchName
:{
$in
:
branchName
}});
//党员总数
let
partyMemberCount
=
{
key
:
partyBranchName
+
"目前党员人数"
,
value
:
partyMemberNum
};
let
partyMemberList
=
await
partyMemberData
.
findPartyMemberAll
({
branchName
:{
$in
:
branchName
}});
let
nameList
=
[];
partyMemberList
.
forEach
(
info
=>
{
let
changeData
:
any
=
extractData
(
splitResultConfig
.
partyMemberConfig
,
info
,
false
);
switch
(
changeData
.
entryType
)
{
case
1
:
changeData
.
color
=
"#C62A23"
;
changeData
.
partyPositions
=
verificationEnumTools
.
changeEnumValue
(
configEnum
.
PARTYPOSITIONSICON
,
info
.
partyPositions
);
break
;
case
2
:
changeData
.
color
=
"#3549B0"
;
changeData
.
partyPositions
=
verificationEnumTools
.
changeEnumValue
(
configEnum
.
ENTRYTYPE
,
info
.
entryType
);
break
;
case
3
:
changeData
.
color
=
"#E4B386"
;
changeData
.
partyPositions
=
verificationEnumTools
.
changeEnumValue
(
configEnum
.
ENTRYTYPE
,
info
.
entryType
);
break
;
}
let
time
=
moment
(
new
Date
()).
format
(
"YYYY"
);
let
partyJoiningTime
=
moment
(
info
.
partyJoiningTime
).
format
(
"YYYY"
);
changeData
.
partyStanding
=
parseInt
(
time
)
-
parseInt
(
partyJoiningTime
)
+
"年"
;
changeData
.
department
=
verificationEnumTools
.
changeEnumValue
(
configEnum
.
DEDPARTMENT
,
changeData
.
department
);
nameList
.
push
(
changeData
);
})
return
{
nameList
,
partyMemberCount
};
}
/**
/**
...
@@ -17,14 +67,18 @@ import { getPwdMd5, getToken } from "../../../tools/system";
...
@@ -17,14 +67,18 @@ import { getPwdMd5, getToken } from "../../../tools/system";
* remarks: "备注", entryType: 名册录入类型, partyPositions: [党内职务, ...], listedAsActivistsTime: 列为积极份子时间, talkTime: 谈话时间, loginId: "登录账号"}
* remarks: "备注", entryType: 名册录入类型, partyPositions: [党内职务, ...], listedAsActivistsTime: 列为积极份子时间, talkTime: 谈话时间, loginId: "登录账号"}
* @return {isSuccess: true}
* @return {isSuccess: true}
*/
*/
export
async
function
createPartyMember
(
param
)
{
export
async
function
createPartyMember
(
param
,
entryType
)
{
eccFormParam
(
"创建正式党员录入"
,
eccFormParamConfig
.
CreatePartyMemberFormConfig
,
param
);
eccFormParam
(
"创建正式党员录入"
,
eccFormParamConfig
.
CreatePartyMemberFormConfig
,
param
);
verificationEnumTools
.
eccEnumValue
(
'正式党员录入性别'
,
'partyActivityType'
,
configEnum
.
SEX
,
param
.
partyActivityType
);
verificationEnumTools
.
eccEnumValue
(
'正式党员录入性别'
,
'partyActivityType'
,
configEnum
.
SEX
,
param
.
partyActivityType
);
verificationEnumTools
.
eccEnumValue
(
'正式党员录入党内职务图例'
,
'partyPositionsIcon'
,
configEnum
.
PARTYPOSITIONSICON
,
param
.
partyPositions
);
verificationEnumTools
.
eccEnumValue
(
'正式党员录入党内职务图例'
,
'partyPositionsIcon'
,
configEnum
.
PARTYPOSITIONSICON
,
param
.
partyPositions
);
verificationEnumTools
.
eccEnumValue
(
'正式党员录入党内职务'
,
'partyPositions'
,
configEnum
.
PARTYPOSITIONS
,
param
.
partyPositions
);
verificationEnumTools
.
eccEnumValue
(
'正式党员录入党内职务'
,
'partyPositions'
,
configEnum
.
PARTYPOSITIONS
,
param
.
partyPositions
);
verificationEnumTools
.
eccEnumValue
(
'正式党员名册录入类型'
,
'entryType'
,
configEnum
.
ENTRYTYPE
,
param
.
entryType
);
verificationEnumTools
.
eccEnumValue
(
'正式党员名册录入类型'
,
'entryType'
,
configEnum
.
ENTRYTYPE
,
param
.
entryType
);
if
(
entryType
)
param
.
entryType
=
entryType
;
let
partyMemberInfo
:
any
=
await
partyMemberData
.
createPartyMember
(
param
);
let
partyMemberInfo
:
any
=
await
partyMemberData
.
createPartyMember
(
param
);
partyMemberInfo
.
loginId
=
param
.
phone
;
if
(
!
param
.
pwd
)
partyMemberInfo
.
pwd
=
getPwdMd5
(
param
.
phone
,
param
.
phone
.
slice
(
5
,
11
));
if
(
!
param
.
pwd
)
partyMemberInfo
.
pwd
=
getPwdMd5
(
param
.
phone
,
param
.
phone
.
slice
(
5
,
11
));
else
partyMemberInfo
.
pwd
=
getPwdMd5
(
param
.
phone
,
param
.
pwd
);
else
partyMemberInfo
.
pwd
=
getPwdMd5
(
param
.
phone
,
param
.
pwd
);
partyMemberInfo
.
token
=
getToken
(
param
.
phone
);
partyMemberInfo
.
token
=
getToken
(
param
.
phone
);
...
@@ -33,4 +87,91 @@ import { getPwdMd5, getToken } from "../../../tools/system";
...
@@ -33,4 +87,91 @@ import { getPwdMd5, getToken } from "../../../tools/system";
await
partyMemberInfo
.
save
();
await
partyMemberInfo
.
save
();
return
{
isSuccess
:
true
};
return
{
isSuccess
:
true
};
}
}
\ No newline at end of file
/**
* 党员详情
* @param id 党员id
* @return
*/
export
async
function
partyMemberDetails
(
id
:
number
)
{
let
partyMemberList
=
await
partyMemberData
.
findPartyMemberById
(
id
);
let
changeData
:
any
=
{};
partyMemberList
.
forEach
(
info
=>
{
changeData
=
extractData
(
splitResultConfig
.
partyMemberDetailsConfig
,
info
,
false
);
switch
(
changeData
.
entryType
)
{
case
1
:
changeData
.
color
=
"#C62A23"
;
changeData
.
partyPositions
=
verificationEnumTools
.
changeEnumValue
(
configEnum
.
PARTYPOSITIONSICON
,
info
.
partyPositions
);
break
;
case
2
:
changeData
.
color
=
"#3549B0"
;
changeData
.
partyPositions
=
verificationEnumTools
.
changeEnumValue
(
configEnum
.
ENTRYTYPE
,
info
.
entryType
);
break
;
case
3
:
changeData
.
color
=
"#E4B386"
;
changeData
.
partyPositions
=
verificationEnumTools
.
changeEnumValue
(
configEnum
.
ENTRYTYPE
,
info
.
entryType
);
break
;
}
changeData
.
department
=
verificationEnumTools
.
changeEnumValue
(
configEnum
.
DEDPARTMENT
,
info
.
department
);
changeData
.
sex
=
verificationEnumTools
.
changeEnumValue
(
configEnum
.
SEX
,
info
.
sex
);
changeData
.
administrativePosition
=
verificationEnumTools
.
changeEnumValue
(
configEnum
.
ADMINISTRATIVEPOSITION
,
info
.
administrativePosition
);
changeData
.
partyState
=
verificationEnumTools
.
changeEnumValue
(
configEnum
.
PARTYSTATE
,
info
.
partyState
);
changeData
.
birthDate
=
moment
(
info
.
birthDate
).
format
(
"YYYY年MM月DD日"
);
changeData
.
partyJoiningTime
=
moment
(
info
.
partyJoiningTime
).
format
(
"YYYY年MM月DD日"
);
changeData
.
study
=
[
{
key
:
"学习排名"
,
value
:
getValueByLength
(
1
)},
{
key
:
"学习课时"
,
value
:
getValueByLength
(
2
)},
{
key
:
"学习进度"
,
value
:
getValueByLength
(
2
)
+
"%"
}
];
let
time
=
moment
(
new
Date
()).
format
(
"YYYY"
);
let
partyJoiningTime
=
moment
(
info
.
partyJoiningTime
).
format
(
"YYYY"
);
changeData
.
partyStanding
=
parseInt
(
time
)
-
parseInt
(
partyJoiningTime
)
+
"年"
;
})
return
changeData
;
}
/**
* 删除党员
* @param id 党员id
* @returns {isSuccess:true}
*/
export
async
function
deletePartyMember
(
id
:
number
)
{
let
activityInfo
=
await
partyMemberData
.
findPartyMemberById
(
id
);
if
(
!
activityInfo
)
throw
new
BizError
(
ERRORENUM
.
未找到数据
,
`库中不存在id为
${
id
}
党员信息`
);
await
partyMemberData
.
deletePartyMember
(
id
);
return
{
isSuccess
:
true
};
}
/**
* 随机数生成假数据
* @param length 假数据长度
* @returns
*/
function
getValueByLength
(
length
)
{
let
i
=
1
;
getPlaByLength
(
length
,
()
=>
{
i
=
i
*
10
;
});
return
Math
.
floor
(
Math
.
random
()
*
i
);
}
function
getPlaByLength
(
num
,
callback
)
{
for
(
let
i
=
0
;
i
<
num
;
i
++
)
{
callback
();
}
}
src/config/enum.ts
View file @
7a7c6def
...
@@ -6,7 +6,8 @@ export let clientEnumConfig = {
...
@@ -6,7 +6,8 @@ export let clientEnumConfig = {
* 支部名称 branchName
* 支部名称 branchName
*/
*/
export
enum
BRANCHNAMETYPE
{
export
enum
BRANCHNAMETYPE
{
牙防所第一支部
=
1
,
党总支
=
1
,
牙防所第一支部
,
牙防所第二支部
,
牙防所第二支部
,
牙防所第三支部
,
牙防所第三支部
,
牙防所第四支部
牙防所第四支部
...
@@ -14,7 +15,7 @@ export enum BRANCHNAMETYPE {
...
@@ -14,7 +15,7 @@ export enum BRANCHNAMETYPE {
/**
/**
* 党内职务
Party p
ositions
* 党内职务
partyP
ositions
*/
*/
export
enum
PARTYPOSITIONSICON
{
export
enum
PARTYPOSITIONSICON
{
支部书记
=
1
,
支部书记
=
1
,
...
@@ -27,8 +28,9 @@ export enum PARTYPOSITIONSICON {
...
@@ -27,8 +28,9 @@ export enum PARTYPOSITIONSICON {
预备党员
,
预备党员
,
}
}
/**
/**
* 党内职务
Party p
ositions
* 党内职务
partyP
ositions
*/
*/
export
enum
PARTYPOSITIONS
{
export
enum
PARTYPOSITIONS
{
支部书记
=
1
,
支部书记
=
1
,
...
@@ -40,6 +42,18 @@ export enum PARTYPOSITIONSICON {
...
@@ -40,6 +42,18 @@ export enum PARTYPOSITIONSICON {
/**
/**
* 行政职务 administrativePosition
*/
export
enum
ADMINISTRATIVEPOSITION
{
职员
=
1
,
护理部主任
,
康健分所主任
,
口腔颌面外科副主任
,
医务科副科长
}
/**
* 名册录入类型
* 名册录入类型
*/
*/
export
enum
ENTRYTYPE
{
export
enum
ENTRYTYPE
{
...
@@ -61,6 +75,7 @@ export enum ACTIVITYTYPE {
...
@@ -61,6 +75,7 @@ export enum ACTIVITYTYPE {
三会一课
三会一课
}
}
/**
/**
* 党建资讯类型
* 党建资讯类型
*/
*/
...
@@ -71,6 +86,7 @@ export enum INFORMATIONTYPE {
...
@@ -71,6 +86,7 @@ export enum INFORMATIONTYPE {
先进典型
先进典型
}
}
/**
/**
* 性别
* 性别
*/
*/
...
@@ -87,3 +103,65 @@ export enum CODETYPE {
...
@@ -87,3 +103,65 @@ export enum CODETYPE {
修改密码
=
1
,
修改密码
=
1
,
}
}
/**
* 文化程度
*/
export
enum
DEGREE
{
初中
=
1
,
高中
,
大专
,
本科
,
硕士
,
博士
}
/**
* 所属科室 department
*/
export
enum
DEDPARTMENT
{
口腔科
=
1
,
正畸科
,
口腔恢复科
,
颁面外科
,
牙体牙髓科
,
牙周科
,
儿童口腔科
}
/**
* 党建先锋 荣誉类型 honorType
*/
export
enum
HONORTYPE
{
支部先锋
=
1
,
模范党员
,
}
/**
* 党建先锋 荣誉类型 honorLevel
*/
export
enum
HONORLEVEL
{
区级荣誉
=
1
,
市级荣誉
,
}
/**
* 党建先锋 模范类型 modelType
*/
export
enum
MODELTYPE
{
支部先锋
=
1
,
模范党员
,
}
/**
* 党员状态 partyState
*/
export
enum
PARTYSTATE
{
在党
=
1
,
退党
}
\ No newline at end of file
src/config/splitResultConfig.ts
View file @
7a7c6def
...
@@ -60,10 +60,71 @@ export const moveAboutInfoConfig = {
...
@@ -60,10 +60,71 @@ export const moveAboutInfoConfig = {
* 场景: 选择党员
* 场景: 选择党员
* 备注:
* 备注:
*/
*/
export
const
organizationallifeConfig
=
{
id
:{
key
:
"id"
},
name
:{
key
:
"姓名"
},
entryType
:{
key
:
"名册录入类型"
},
partyPositions
:{
key
:
"党内职务"
},
color
:{
key
:
"颜色"
},
}
/**
* 使用端: 小程序_党员入口
* 场景: 选择党员
* 备注:
*/
export
const
partyMemberConfig
=
{
export
const
partyMemberConfig
=
{
id
:{
key
:
"id"
},
id
:{
key
:
"id"
},
name
:{
key
:
"姓名"
},
name
:{
key
:
"姓名"
},
entryType
:{
key
:
"党员
类型"
},
entryType
:{
key
:
"名册录入
类型"
},
partyPositions
:{
key
:
"党内职务"
},
partyPositions
:{
key
:
"党内职务"
},
partyStanding
:{
key
:
"党龄"
},
department
:{
key
:
"所属科室"
},
color
:{
key
:
"颜色"
},
color
:{
key
:
"颜色"
},
}
}
\ No newline at end of file
/**
* 使用端: 小程序_党员入口
* 场景: 党员详情
* 备注:
*/
export
const
partyMemberDetailsConfig
=
{
id
:{
key
:
"id"
},
entryType
:{
key
:
"名册录入类型"
},
name
:{
key
:
"姓名"
},
partyPositions
:{
key
:
"党内职务"
},
partyStanding
:{
key
:
"党龄"
},
department
:{
key
:
"所属科室"
},
study
:{
key
:
"学习情况"
},
sex
:{
key
:
"性别"
},
birthDate
:{
key
:
"出生年月"
,
changeDate
:
true
},
phone
:{
key
:
"手机号码"
},
levelOfEducation
:{
key
:
"文化程度"
},
partyJoiningTime
:{
key
:
"入党时间"
,
changeDate
:
true
},
administrativePosition
:{
key
:
"行政职务"
},
remarks
:{
key
:
"备注"
},
partyState
:{
key
:
"党员状态"
},
color
:{
key
:
"颜色"
},
}
/**
* 使用端: 小程序_党员入口
* 场景: 党建先锋列表
* 备注:
*/
export
const
partyVanguardConfig
=
{
pvId
:{
key
:
"党建先锋id"
},
honorType
:{
key
:
"荣誉类型"
},
honorLevel
:{
key
:
"荣誉级别"
},
honorName
:{
key
:
"荣誉名称"
},
grantingUnit
:{
key
:
"授予单位"
},
grantTime
:{
key
:
"授予时间"
},
honorsIntroduction
:{
key
:
"荣誉简介"
},
grantParty
:{
key
:
"授予党员"
},
grantReason
:{
key
:
"授予原因"
},
}
src/config/systemClass.ts
View file @
7a7c6def
...
@@ -11,4 +11,5 @@ export class ServerConfig {
...
@@ -11,4 +11,5 @@ export class ServerConfig {
/**小程序相关配置 */
/**小程序相关配置 */
getOpenIdUrl
:
string
;
getOpenIdUrl
:
string
;
appId
:
string
;
appId
:
string
;
imgUrl
:
string
;
}
}
\ No newline at end of file
src/config/systemConfig.ts
View file @
7a7c6def
...
@@ -17,12 +17,13 @@ export async function initConfig() {
...
@@ -17,12 +17,13 @@ export async function initConfig() {
if
(
!
configInfo
||
!
configInfo
.
config
)
throw
new
BizError
(
'xml中无配置'
);
if
(
!
configInfo
||
!
configInfo
.
config
)
throw
new
BizError
(
'xml中无配置'
);
else
{
else
{
let
{
port
,
mongodb
,
secret
,
getOpenIdUrl
,
appId
,
sms
}
=
configInfo
.
config
;
let
{
port
,
mongodb
,
secret
,
getOpenIdUrl
,
appId
,
imgUrl
}
=
configInfo
.
config
;
systemConfig
.
port
=
parseInt
(
port
[
0
]);
systemConfig
.
port
=
parseInt
(
port
[
0
]);
systemConfig
.
secret
=
secret
[
0
];
systemConfig
.
secret
=
secret
[
0
];
systemConfig
.
getOpenIdUrl
=
getOpenIdUrl
[
0
];
systemConfig
.
getOpenIdUrl
=
getOpenIdUrl
[
0
];
systemConfig
.
appId
=
appId
[
0
];
systemConfig
.
appId
=
appId
[
0
];
systemConfig
.
imgUrl
=
imgUrl
[
0
];
const
MongoPath
=
mongodb
[
0
].
path
[
0
];
const
MongoPath
=
mongodb
[
0
].
path
[
0
];
const
MongoPort
=
mongodb
[
0
].
port
[
0
];
const
MongoPort
=
mongodb
[
0
].
port
[
0
];
...
...
src/data/organizationalLife.ts
View file @
7a7c6def
...
@@ -18,8 +18,7 @@ const organizationalLifeSchema = new Schema({
...
@@ -18,8 +18,7 @@ const organizationalLifeSchema = new Schema({
leavePartyMember
:{
type
:[
String
],
default
:[]},
//请假党员 非必填
leavePartyMember
:{
type
:[
String
],
default
:[]},
//请假党员 非必填
participatingPartyMember
:{
type
:[
String
],
default
:[]},
//参与党员
participatingPartyMember
:{
type
:[
String
],
default
:[]},
//参与党员
participationRecord
:
String
,
//活动记录
participationRecord
:
String
,
//活动记录
branchName
:
Number
,
//支部名称
branchName
:
{
type
:[
Number
],
default
:[]},
//支部名称
})
})
var
organizationalLifeModel
;
var
organizationalLifeModel
;
...
@@ -103,4 +102,5 @@ export async function deleteActivity(oId:number) {
...
@@ -103,4 +102,5 @@ export async function deleteActivity(oId:number) {
*/
*/
export
async
function
groupFindActivityCount
(
param
:
object
)
{
export
async
function
groupFindActivityCount
(
param
:
object
)
{
return
await
organizationalLifeModel
.
find
(
param
).
countDocuments
();
return
await
organizationalLifeModel
.
find
(
param
).
countDocuments
();
}
}
\ No newline at end of file
src/data/partyInformation.ts
View file @
7a7c6def
...
@@ -11,7 +11,7 @@ const partyInformationSchema = new Schema({
...
@@ -11,7 +11,7 @@ const partyInformationSchema = new Schema({
pId
:
{
type
:
Number
,
index
:{
unique
:
true
}},
//自增的id
pId
:
{
type
:
Number
,
index
:{
unique
:
true
}},
//自增的id
informationType
:
Number
,
//党建资讯类型 1:医院文化、2:精神文明、3:科普知识、4、先进典型
informationType
:
Number
,
//党建资讯类型 1:医院文化、2:精神文明、3:科普知识、4、先进典型
title
:
String
,
//资讯标题
title
:
String
,
//资讯标题
branchName
:
Number
,
//支部名称
branchName
:
{
type
:[
Number
],
default
:[]}
,
//支部名称
informationTime
:
Number
,
//资讯时间
informationTime
:
Number
,
//资讯时间
detailedInformation
:
String
,
//资讯详细
detailedInformation
:
String
,
//资讯详细
img
:
{
type
:
String
,
data
:
Buffer
},
//图片
img
:
{
type
:
String
,
data
:
Buffer
},
//图片
...
@@ -56,10 +56,10 @@ export async function save(throwError=false) {
...
@@ -56,10 +56,10 @@ export async function save(throwError=false) {
* @param branchName 支部id
* @param branchName 支部id
* @returns
* @returns
*/
*/
export
async
function
findPartyInformationListByType
(
informationType
:
number
,
branchName
:
number
)
{
export
async
function
findPartyInformationListByType
(
informationType
:
number
,
branchName
)
{
return
await
partyInformationModel
.
find
({
informationType
,
branchName
});
return
await
partyInformationModel
.
find
({
informationType
,
branchName
:{
$in
:
branchName
}
});
}
}
/**
/**
* 创建党建资讯
* 创建党建资讯
...
...
src/data/partyMember.ts
View file @
7a7c6def
...
@@ -14,14 +14,17 @@ const partyMemberSchema = new Schema({
...
@@ -14,14 +14,17 @@ const partyMemberSchema = new Schema({
phone
:
String
,
//手机号码
phone
:
String
,
//手机号码
levelOfEducation
:
String
,
//文化程度
levelOfEducation
:
String
,
//文化程度
partyJoiningTime
:
Number
,
//入党时间
partyJoiningTime
:
Number
,
//入党时间
administrativePosition
:
Number
,
//行政职务 1
:
administrativePosition
:
{
type
:
Number
,
default
:
1
},
//行政职务 1:职员、2
:
remarks
:
String
,
//备注
remarks
:
String
,
//备注
entryType
:
Number
,
//名册录入类型 1:正式党员录入、2:入党积极分子录入、3:入党申请录入
entryType
:
Number
,
//名册录入类型 1:正式党员录入、2:入党积极分子录入、3:入党申请录入
partyPositions
:
[
Number
]
,
//党内职务 多选 --正式党员录入 1:书记、2:副书记、3:纪检委员、4:组织委员、5:宣传委员
partyPositions
:
{
type
:[
Number
],
default
:[]}
,
//党内职务 多选 --正式党员录入 1:书记、2:副书记、3:纪检委员、4:组织委员、5:宣传委员
listedAsActivistsTime
:
Number
,
//列为积极份子时间 --入党积极份子录入
listedAsActivistsTime
:
Number
,
//列为积极份子时间 --入党积极份子录入
askForTime
:
Number
,
//申请入党时间 --入党积极份子录入、入党申请录入
talkTime
:
Number
,
//谈话时间 --入党申请录入
talkTime
:
Number
,
//谈话时间 --入党申请录入
branchName
:
Number
,
//支部名称
branchName
:
{
type
:[
Number
],
default
:[]},
//支部名称
department
:
{
type
:[
Number
],
default
:[]},
//所属科室 1:口腔科、2:正畸科、3:口腔修复科、4:颁面外科, 5:牙体牙髓科、6:牙周科、7儿童口腔科
partyState
:
Number
,
/**-----用户相关----- */
/**-----用户相关----- */
loginId
:
{
type
:
String
,
index
:
true
},
//登录账号
loginId
:
{
type
:
String
,
index
:
true
},
//登录账号
pwd
:
String
,
//密码
pwd
:
String
,
//密码
...
@@ -36,7 +39,7 @@ export function initModel(){
...
@@ -36,7 +39,7 @@ export function initModel(){
partyMemberSchema
.
plugin
(
autoIncrement
.
plugin
,
{
partyMemberSchema
.
plugin
(
autoIncrement
.
plugin
,
{
model
:
'partyMemberSchema'
,
model
:
'partyMemberSchema'
,
field
:
'id'
,
field
:
'id'
,
startAt
:
1
,
//初始化id从1开始
startAt
:
1
000
,
//初始化id从1开始
incrementBy
:
1
//每次自增1
incrementBy
:
1
//每次自增1
});
});
...
@@ -98,8 +101,8 @@ export async function groupFindPartyMemberCount(param:object) {
...
@@ -98,8 +101,8 @@ export async function groupFindPartyMemberCount(param:object) {
* @param partyPositions 党内职务 [1, 2]
* @param partyPositions 党内职务 [1, 2]
* @returns
* @returns
*/
*/
export
async
function
getBaseListByPartyPositions
(
partyPositions
:[
number
],
branchName
:
number
)
{
export
async
function
getBaseListByPartyPositions
(
partyPositions
:[
number
],
branchName
)
{
return
await
partyMemberModel
.
find
({
partyPositions
:{
$in
:
partyPositions
},
branchName
});
return
await
partyMemberModel
.
find
({
partyPositions
:{
$in
:
partyPositions
},
branchName
:{
$in
:
branchName
}
});
}
}
...
@@ -130,3 +133,23 @@ export async function getPartyMemberListByEntryType(param:object) {
...
@@ -130,3 +133,23 @@ export async function getPartyMemberListByEntryType(param:object) {
export
async
function
createPartyMember
(
param
:
object
)
{
export
async
function
createPartyMember
(
param
:
object
)
{
return
await
partyMemberModel
.
create
(
param
);
return
await
partyMemberModel
.
create
(
param
);
}
}
/**
* 根据id获取符合条件的党员详情
* @param param 查询参数
* @returns
*/
export
async
function
findPartyMemberById
(
id
:
number
)
{
return
await
partyMemberModel
.
find
({
id
});
}
/**
* 删除党员
* @param id 党员id
* @returns
*/
export
async
function
deletePartyMember
(
id
:
number
)
{
return
await
partyMemberModel
.
deleteOne
({
id
}).
exec
();
}
\ No newline at end of file
src/net/http_server.ts
View file @
7a7c6def
...
@@ -27,7 +27,7 @@ export class httpServer {
...
@@ -27,7 +27,7 @@ export class httpServer {
// }
// }
});
});
httpServer
.
use
(
express
.
static
(
"./static"
)
);
httpServer
.
use
(
express
.
static
(
path
.
join
(
__dirname
,
"../../img"
)
)
);
const
root
=
path
.
join
(
__dirname
,
"../../public"
);
const
root
=
path
.
join
(
__dirname
,
"../../public"
);
httpServer
.
use
(
express
.
static
(
root
));
httpServer
.
use
(
express
.
static
(
root
));
httpServer
.
use
(
fallback
(
'index.html'
,
{
root
}));
httpServer
.
use
(
fallback
(
'index.html'
,
{
root
}));
...
...
src/routers/applet/base.ts
View file @
7a7c6def
...
@@ -19,7 +19,11 @@ export function setRouter(httpServer) {
...
@@ -19,7 +19,11 @@ export function setRouter(httpServer) {
* @param res
* @param res
*/
*/
async
function
homeBase
(
req
,
res
)
{
async
function
homeBase
(
req
,
res
)
{
let
branchName
=
parseInt
(
req
.
headers
.
branchid
);
let
branchidData
=
req
.
headers
.
branchid
;
let
branchName
=
[];
branchidData
=
branchidData
.
slice
(
1
,
branchidData
.
length
-
1
);
branchName
=
branchidData
.
split
(
','
);
let
baseInfo
=
await
baseBiz
.
homeData
(
branchName
);
let
baseInfo
=
await
baseBiz
.
homeData
(
branchName
);
res
.
success
(
baseInfo
);
res
.
success
(
baseInfo
);
}
}
...
@@ -31,7 +35,11 @@ async function homeBase(req, res) {
...
@@ -31,7 +35,11 @@ async function homeBase(req, res) {
* @param res
* @param res
*/
*/
async
function
informationBase
(
req
,
res
)
{
async
function
informationBase
(
req
,
res
)
{
let
branchName
=
req
.
headers
.
branchid
;
let
branchidData
=
req
.
headers
.
branchid
;
let
branchName
=
[];
branchidData
=
branchidData
.
slice
(
1
,
branchidData
.
length
-
1
);
branchName
=
branchidData
.
split
(
','
);
let
reqConf
=
{
informationType
:
'Number'
};
let
reqConf
=
{
informationType
:
'Number'
};
let
{
informationType
}
=
eccReqParamater
(
reqConf
,
req
.
body
);
let
{
informationType
}
=
eccReqParamater
(
reqConf
,
req
.
body
);
...
...
src/routers/applet/organizationalLife.ts
View file @
7a7c6def
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
import
*
as
organizationalLifeBiz
from
'../../biz/applet/partyMember/organizationalLife'
;
import
*
as
organizationalLifeBiz
from
'../../biz/applet/partyMember/organizationalLife'
;
import
*
as
asyncHandler
from
'express-async-handler'
;
import
*
as
asyncHandler
from
'express-async-handler'
;
import
{
eccReqParamater
,
testEccReqParamater
}
from
'../../util/verificationParam'
;
import
{
eccReqParamater
}
from
'../../util/verificationParam'
;
import
{
checkAppletToken
}
from
'../../middleware/user'
;
import
{
checkAppletToken
}
from
'../../middleware/user'
;
export
function
setRouter
(
httpServer
)
{
export
function
setRouter
(
httpServer
)
{
...
@@ -26,7 +26,11 @@ export function setRouter(httpServer) {
...
@@ -26,7 +26,11 @@ export function setRouter(httpServer) {
async
function
organizationalLifeList
(
req
,
res
)
{
async
function
organizationalLifeList
(
req
,
res
)
{
let
reqConf
=
{
type
:
'Number'
,
name
:
'Number'
};
let
reqConf
=
{
type
:
'Number'
,
name
:
'Number'
};
let
{
type
,
name
}
=
eccReqParamater
(
reqConf
,
req
.
body
,
[
"name"
]);
let
{
type
,
name
}
=
eccReqParamater
(
reqConf
,
req
.
body
,
[
"name"
]);
let
branchName
=
req
.
headers
.
branchid
;
let
branchidData
=
req
.
headers
.
branchid
;
let
branchName
=
[];
branchidData
=
branchidData
.
slice
(
1
,
branchidData
.
length
-
1
);
branchName
=
branchidData
.
split
(
','
);
let
result
=
await
organizationalLifeBiz
.
getOrganizationalLifeList
(
type
,
name
,
branchName
);
let
result
=
await
organizationalLifeBiz
.
getOrganizationalLifeList
(
type
,
name
,
branchName
);
res
.
success
(
result
);
res
.
success
(
result
);
...
@@ -41,7 +45,11 @@ async function organizationalLifeList(req, res) {
...
@@ -41,7 +45,11 @@ async function organizationalLifeList(req, res) {
async
function
createOrganizationalLife
(
req
,
res
)
{
async
function
createOrganizationalLife
(
req
,
res
)
{
let
reqConf
=
{
form
:
'Object'
};
let
reqConf
=
{
form
:
'Object'
};
let
{
form
}
=
eccReqParamater
(
reqConf
,
req
.
body
);
let
{
form
}
=
eccReqParamater
(
reqConf
,
req
.
body
);
let
branchName
=
req
.
headers
.
branchid
;
let
branchidData
=
req
.
headers
.
branchid
;
let
branchName
=
[];
branchidData
=
branchidData
.
slice
(
1
,
branchidData
.
length
-
1
);
branchName
=
branchidData
.
split
(
','
);
let
result
=
await
organizationalLifeBiz
.
createOrganizationalLife
(
branchName
,
form
);
let
result
=
await
organizationalLifeBiz
.
createOrganizationalLife
(
branchName
,
form
);
res
.
success
(
result
);
res
.
success
(
result
);
...
...
src/routers/applet/partyMember.ts
View file @
7a7c6def
...
@@ -8,10 +8,27 @@
...
@@ -8,10 +8,27 @@
import
{
checkAppletToken
}
from
'../../middleware/user'
;
import
{
checkAppletToken
}
from
'../../middleware/user'
;
export
function
setRouter
(
httpServer
)
{
export
function
setRouter
(
httpServer
)
{
httpServer
.
post
(
'/partymember/partymember/create'
,
checkAppletToken
,
asyncHandler
(
createPartyMenber
));
httpServer
.
post
(
'/partymember/partymember/partymembername'
,
asyncHandler
(
getPartyMemberName
));
httpServer
.
post
(
'/partymember/partymember/create'
,
asyncHandler
(
createPartyMenber
));
httpServer
.
post
(
'/partymember/partymember/detsils'
,
asyncHandler
(
partyDetsils
));
httpServer
.
post
(
'/partymember/partymember/delete'
,
asyncHandler
(
deletePartyMember
));
}
}
/**
* 党员名册
* @param req
* @param res
*/
async
function
getPartyMemberName
(
req
,
res
)
{
let
branchidData
=
req
.
headers
.
branchid
;
let
branchName
=
[];
branchidData
=
branchidData
.
slice
(
1
,
branchidData
.
length
-
1
);
branchName
=
branchidData
.
split
(
','
);
let
result
=
await
partyMemberBiz
.
getPartyMemberName
(
branchName
);
res
.
success
(
result
);
}
/**
/**
...
@@ -20,9 +37,33 @@ import { checkAppletToken } from '../../middleware/user';
...
@@ -20,9 +37,33 @@ import { checkAppletToken } from '../../middleware/user';
* @param res
* @param res
*/
*/
async
function
createPartyMenber
(
req
,
res
)
{
async
function
createPartyMenber
(
req
,
res
)
{
let
reqConf
=
{
form
:
'Object'
};
let
reqConf
=
{
form
:
'Object'
,
entryType
:
'number'
};
let
{
form
}
=
eccReqParamater
(
reqConf
,
req
.
body
);
let
{
form
,
entryType
}
=
eccReqParamater
(
reqConf
,
req
.
body
);
let
result
=
await
partyMemberBiz
.
createPartyMember
(
form
);
let
result
=
await
partyMemberBiz
.
createPartyMember
(
form
,
entryType
);
res
.
success
(
result
);
res
.
success
(
result
);
}
}
/**
* 党员详情
* @param req
* @param res
*/
async
function
partyDetsils
(
req
,
res
)
{
let
reqConf
=
{
id
:
'Number'
};
let
{
id
}
=
eccReqParamater
(
reqConf
,
req
.
body
);
let
result
=
await
partyMemberBiz
.
partyMemberDetails
(
id
);
res
.
success
(
result
);
}
async
function
deletePartyMember
(
req
,
res
)
{
let
reqConf
=
{
id
:
'Number'
};
let
{
id
}
=
eccReqParamater
(
reqConf
,
req
.
body
);
let
result
=
await
partyMemberBiz
.
deletePartyMember
(
id
);
res
.
success
(
result
);
}
\ No newline at end of file
src/routers/public.ts
View file @
7a7c6def
...
@@ -12,6 +12,11 @@ export function setRouter(httpServer) {
...
@@ -12,6 +12,11 @@ export function setRouter(httpServer) {
httpServer
.
post
(
'/public/entrytype'
,
asyncHandler
(
entryType
));
httpServer
.
post
(
'/public/entrytype'
,
asyncHandler
(
entryType
));
httpServer
.
post
(
'/public/activitytype'
,
asyncHandler
(
activityType
));
httpServer
.
post
(
'/public/activitytype'
,
asyncHandler
(
activityType
));
httpServer
.
post
(
'/public/informationtype'
,
asyncHandler
(
informationType
));
httpServer
.
post
(
'/public/informationtype'
,
asyncHandler
(
informationType
));
httpServer
.
post
(
'/public/sex'
,
asyncHandler
(
sexType
));
httpServer
.
post
(
'/public/degree'
,
asyncHandler
(
degreeType
));
httpServer
.
post
(
'/public/administrativeposition'
,
asyncHandler
(
administrativePosition
));
httpServer
.
post
(
'/public/department'
,
asyncHandler
(
department
));
httpServer
.
post
(
'/public/degreetype'
,
asyncHandler
(
degreeType
));
}
}
...
@@ -21,14 +26,7 @@ export function setRouter(httpServer) {
...
@@ -21,14 +26,7 @@ export function setRouter(httpServer) {
* @param res
* @param res
*/
*/
function
partyPositions
(
req
,
res
)
{
function
partyPositions
(
req
,
res
)
{
let
dataList
=
[];
let
dataList
=
getEnumList
(
configEnum
.
PARTYPOSITIONS
);
for
(
let
key
in
configEnum
.
PARTYPOSITIONS
)
{
let
anyKey
:
any
=
key
;
if
(
isNaN
(
anyKey
))
{
let
keyStr
=
key
;
dataList
.
push
({
key
:
keyStr
,
value
:
configEnum
.
PARTYPOSITIONS
[
key
]});
}
}
res
.
success
(
dataList
);
res
.
success
(
dataList
);
}
}
...
@@ -39,14 +37,7 @@ function partyPositions(req, res) {
...
@@ -39,14 +37,7 @@ function partyPositions(req, res) {
* @param res
* @param res
*/
*/
function
type
(
req
,
res
)
{
function
type
(
req
,
res
)
{
let
dataList
=
[];
let
dataList
=
getEnumList
(
clientConfigEnum
.
TYPE
);
for
(
let
key
in
clientConfigEnum
.
TYPE
)
{
let
anyKey
:
any
=
key
;
if
(
isNaN
(
anyKey
))
{
let
keyStr
=
key
;
dataList
.
push
({
key
:
keyStr
,
value
:
clientConfigEnum
.
TYPE
[
key
]});
}
}
res
.
success
(
dataList
);
res
.
success
(
dataList
);
}
}
...
@@ -57,14 +48,7 @@ function partyPositions(req, res) {
...
@@ -57,14 +48,7 @@ function partyPositions(req, res) {
* @param res
* @param res
*/
*/
function
entryType
(
req
,
res
)
{
function
entryType
(
req
,
res
)
{
let
dataList
=
[];
let
dataList
=
getEnumList
(
clientConfigEnum
.
ENTRYTYPE
);
for
(
let
key
in
configEnum
.
ENTRYTYPE
)
{
let
anyKey
:
any
=
key
;
if
(
isNaN
(
anyKey
))
{
let
keyStr
=
key
;
dataList
.
push
({
key
:
keyStr
,
value
:
configEnum
.
ENTRYTYPE
[
key
]});
}
}
res
.
success
(
dataList
);
res
.
success
(
dataList
);
}
}
...
@@ -75,14 +59,7 @@ function partyPositions(req, res) {
...
@@ -75,14 +59,7 @@ function partyPositions(req, res) {
* @param res
* @param res
*/
*/
function
activityType
(
req
,
res
)
{
function
activityType
(
req
,
res
)
{
let
dataList
=
[];
let
dataList
=
getEnumList
(
configEnum
.
ACTIVITYTYPE
);
for
(
let
key
in
configEnum
.
ACTIVITYTYPE
)
{
let
anyKey
:
any
=
key
;
if
(
isNaN
(
anyKey
))
{
let
keyStr
=
key
;
dataList
.
push
({
key
:
keyStr
,
value
:
configEnum
.
ACTIVITYTYPE
[
key
]});
}
}
res
.
success
(
dataList
);
res
.
success
(
dataList
);
}
}
...
@@ -93,14 +70,64 @@ function partyPositions(req, res) {
...
@@ -93,14 +70,64 @@ function partyPositions(req, res) {
* @param res
* @param res
*/
*/
function
informationType
(
req
,
res
)
{
function
informationType
(
req
,
res
)
{
let
dataList
=
[];
let
dataList
=
getEnumList
(
configEnum
.
INFORMATIONTYPE
);
for
(
let
key
in
configEnum
.
INFORMATIONTYPE
)
{
res
.
success
(
dataList
);
}
/**
* 性别类型
* @param req
* @param res
*/
function
sexType
(
req
,
res
)
{
let
dataList
=
getEnumList
(
configEnum
.
SEX
);
res
.
success
(
dataList
);
}
/**
* 文化程度类型
* @param req
* @param res
*/
function
degreeType
(
req
,
res
)
{
let
dataList
=
getEnumList
(
configEnum
.
DEGREE
);
res
.
success
(
dataList
);
}
/**
* 行政职务类型
* @param req
* @param res
*/
function
administrativePosition
(
req
,
res
)
{
let
dataList
=
getEnumList
(
configEnum
.
ADMINISTRATIVEPOSITION
);
res
.
success
(
dataList
);
}
/**
* 所属科室类型
* @param req
* @param res
*/
function
department
(
req
,
res
)
{
let
dataList
=
getEnumList
(
configEnum
.
DEDPARTMENT
);
res
.
success
(
dataList
);
}
function
getEnumList
(
enumData
)
{
let
dataList
=
[];
for
(
let
key
in
enumData
)
{
let
anyKey
:
any
=
key
;
let
anyKey
:
any
=
key
;
if
(
isNaN
(
anyKey
))
{
if
(
isNaN
(
anyKey
))
{
let
keyStr
=
key
;
let
keyStr
=
key
;
dataList
.
push
({
key
:
keyStr
,
value
:
configEnum
.
INFORMATIONTYPE
[
key
]});
dataList
.
push
({
key
:
keyStr
,
value
:
enumData
[
key
]});
}
}
}
}
res
.
success
(
dataList
);
}
return
dataList
;
}
\ No newline at end of file
src/util/verificationParam.ts
View file @
7a7c6def
...
@@ -30,23 +30,27 @@ import { BizError } from "./bizError";
...
@@ -30,23 +30,27 @@ import { BizError } from "./bizError";
* @returns true 无需关注返回
* @returns true 无需关注返回
*/
*/
export
function
eccFormParam
(
name
:
string
,
keyTypeConf
:
object
,
param
:
object
)
{
export
function
eccFormParam
(
name
:
string
,
keyTypeConf
:
object
,
param
:
object
)
{
/**校验多余字段 */
for
(
let
key
in
param
)
{
if
(
!
keyTypeConf
[
key
])
throw
new
BizError
(
ERRORENUM
.
参数错误
,
`多余
${
key
}
字段`
);
}
/**校验已填参数 */
for
(
let
key
in
keyTypeConf
)
{
for
(
let
key
in
keyTypeConf
)
{
let
{
type
,
notMustHave
}
=
keyTypeConf
[
key
];
let
{
type
,
notMustHave
}
=
keyTypeConf
[
key
];
let
isError
=
false
;
//校验是否异常
let
isError
=
false
;
//校验是否异常
let
errorStr
=
""
;
//异常说明
let
errorStr
=
""
;
//异常说明
if
(
(
typeof
param
[
key
]
!=
'boolean'
&&
!
param
[
key
]
)
)
{
let
value
=
param
[
key
];
if
(
!
notMustHave
)
{
let
valueType
=
typeof
value
;
isError
=
true
;
errorStr
=
`缺失
${
key
}
字段`
;
if
(
value
==
null
||
value
==
undefined
)
{
}
if
(
!
notMustHave
)
throw
new
BizError
(
ERRORENUM
.
参数错误
,
`缺失
${
key
}
字段`
);
}
else
if
(
param
[
key
])
{
}
else
{
let
paramType
=
typeof
param
[
key
];
switch
(
type
)
{
let
confType
=
keyTypeConf
[
key
].
type
;
switch
(
confType
)
{
case
'Number'
:
case
'Number'
:
if
(
paramType
!=
'number'
)
{
if
(
type
.
toLowerCase
()
!=
valueType
)
{
isError
=
true
;
isError
=
true
;
}
else
{
}
else
{
if
((
""
+
param
[
key
]).
indexOf
(
'.'
)
>
-
1
)
{
if
((
""
+
param
[
key
]).
indexOf
(
'.'
)
>
-
1
)
{
...
@@ -55,10 +59,8 @@ import { BizError } from "./bizError";
...
@@ -55,10 +59,8 @@ import { BizError } from "./bizError";
}
}
break
;
break
;
case
'String'
:
case
'String'
:
if
(
paramType
!=
'string'
)
isError
=
true
;
break
;
case
'Boolean'
:
case
'Boolean'
:
if
(
paramType
!=
'boolean'
)
isError
=
true
;
if
(
type
.
toLowerCase
()
!=
valueType
)
isError
=
true
;
break
;
break
;
case
'[Number]'
:
case
'[Number]'
:
if
(
!
Array
.
isArray
(
param
[
key
])
)
isError
=
true
;
if
(
!
Array
.
isArray
(
param
[
key
])
)
isError
=
true
;
...
@@ -70,16 +72,6 @@ import { BizError } from "./bizError";
...
@@ -70,16 +72,6 @@ import { BizError } from "./bizError";
}
}
}
}
break
;
break
;
case
'[String]'
:
if
(
!
Array
.
isArray
(
param
[
key
])
)
isError
=
true
;
for
(
let
i
=
0
;
i
<
param
[
key
].
length
;
i
++
)
{
let
item
=
param
[
key
][
i
];
if
(
typeof
item
!=
'string'
)
{
isError
=
true
;
errorStr
=
`
${
key
}
应是string型数组其中下标
${
i
}
是
${
typeof
item
}
`
;
}
}
break
;
case
'[Object]'
:
case
'[Object]'
:
if
(
!
Array
.
isArray
(
param
[
key
])
)
isError
=
true
;
if
(
!
Array
.
isArray
(
param
[
key
])
)
isError
=
true
;
for
(
let
i
=
0
;
i
<
param
[
key
].
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
param
[
key
].
length
;
i
++
)
{
...
@@ -121,18 +113,14 @@ import { BizError } from "./bizError";
...
@@ -121,18 +113,14 @@ import { BizError } from "./bizError";
nullIndex
=
i
;
nullIndex
=
i
;
}
}
}
}
break
;
break
;
}
}
errorStr
=
isError
&&
errorStr
==
""
?
`
${
key
}
应该是
${
type
}
型 而不是
${
param
Type
}
`
:
errorStr
;
errorStr
=
isError
&&
errorStr
==
""
?
`
${
key
}
应该是
${
type
}
型 而不是
${
value
Type
}
`
:
errorStr
;
if
(
isError
)
throw
new
BizError
(
ERRORENUM
.
表单校验失败
,
name
,
errorStr
);
}
}
if
(
isError
)
throw
new
BizError
(
ERRORENUM
.
表单校验失败
,
name
,
errorStr
);
}
/**判断多余的参数 */
for
(
let
key
in
param
)
{
if
(
!
keyTypeConf
[
key
])
throw
new
BizError
(
ERRORENUM
.
表单校验失败
,
name
,
`多余
${
key
}
字段`
);
}
}
return
true
;
return
true
;
}
}
...
@@ -145,33 +133,41 @@ import { BizError } from "./bizError";
...
@@ -145,33 +133,41 @@ import { BizError } from "./bizError";
* @param skipKeys []不必填的字段
* @param skipKeys []不必填的字段
*/
*/
export
function
eccReqParamater
(
conf
:
object
,
param
,
skipKeys
?)
{
export
function
eccReqParamater
(
conf
:
object
,
param
,
skipKeys
?)
{
skipKeys
=
skipKeys
||
[];
skipKeys
=
skipKeys
||
[];
for
(
let
key
in
conf
)
{
let
type
=
conf
[
key
];
let
value
=
param
[
key
];
let
isError
=
false
;
//校验是否异常
let
skipMap
=
{};
let
errorStr
=
""
;
//异常说明
skipKeys
.
forEach
(
keyName
=>
{
skipMap
[
keyName
]
=
1
;
});
if
(
(
type
!=
'Boolean'
)
&&
!
value
)
{
/**校验多余字段 */
if
(
skipKeys
.
indexOf
(
key
)
<
0
)
{
for
(
let
key
in
param
)
{
isError
=
true
;
if
(
!
conf
[
key
])
throw
new
BizError
(
ERRORENUM
.
参数错误
,
`多余
${
key
}
字段`
);
errorStr
=
`缺少
${
key
}
字段`
;
}
}
}
else
if
(
param
[
key
])
{
/**校验必填和缺失字段 */
let
paramType
=
typeof
param
[
key
];
for
(
let
key
in
conf
)
{
switch
(
conf
[
key
])
{
let
confType
=
conf
[
key
];
let
value
=
param
[
key
];
let
valueType
=
typeof
value
;
if
(
value
==
null
||
value
==
undefined
)
{
if
(
!
skipMap
[
key
])
throw
new
BizError
(
ERRORENUM
.
参数错误
,
`缺失
${
key
}
字段`
);
}
else
{
let
isError
=
false
;
let
errorStr
=
""
;
switch
(
confType
)
{
case
'Number'
:
case
'Number'
:
if
(
paramType
!=
'number'
)
{
if
(
confType
.
toLowerCase
()
!=
valueType
)
isError
=
true
;
isError
=
true
;
else
{
if
((
""
+
param
[
key
]).
indexOf
(
'.'
)
>
-
1
)
{
param
[
key
]
=
parseInt
(
`
${
param
[
key
]
*
100
}
`
)
/
100
;
}
}
}
break
;
break
;
case
'String'
:
case
'String'
:
if
(
paramType
!=
'string'
)
isError
=
true
;
break
;
case
'Boolean'
:
case
'Boolean'
:
if
(
paramType
!=
'boolean'
)
isError
=
true
;
if
(
confType
.
toLowerCase
()
!=
valueType
)
isError
=
true
;
break
;
break
;
case
'[Number]'
:
case
'[Number]'
:
if
(
!
Array
.
isArray
(
param
[
key
])
)
isError
=
true
;
if
(
!
Array
.
isArray
(
param
[
key
])
)
isError
=
true
;
...
@@ -193,27 +189,45 @@ export function eccReqParamater(conf:object, param, skipKeys?) {
...
@@ -193,27 +189,45 @@ export function eccReqParamater(conf:object, param, skipKeys?) {
}
}
}
}
break
;
break
;
case
'Address'
:
/**地址类型 基本数据类型为数组字符串但是要判断层级关系 */
if
(
!
Array
.
isArray
(
param
[
key
])
)
{
isError
=
true
;
errorStr
=
`
${
key
}
应是数组形`
;
}
if
(
param
[
key
].
length
!=
4
)
{
isError
=
true
;
errorStr
=
`
${
key
}
超过特定长度4 目前长度
${
param
[
key
].
length
}
`
;
}
for
(
let
i
=
0
;
i
<
param
[
key
].
length
;
i
++
)
{
let
item
=
param
[
key
][
i
];
if
(
typeof
item
!=
'string'
)
{
isError
=
true
;
errorStr
=
`
${
key
}
应是string型数组其中下标
${
i
}
是
${
typeof
item
}
`
;
}
}
/** 不符合规则的 */
let
nullIndex
=
-
1
;
for
(
let
i
=
0
;
i
<
param
[
key
].
length
;
i
++
)
{
if
(
nullIndex
!=
-
1
)
{
//出现过空 第一次出现后的位置 都不能有值
if
(
param
[
key
])
{
//做一个特化
throw
new
BizError
(
ERRORENUM
.
地址数据不完整
,
`
${
key
}
下标
${
nullIndex
}
为空 `
);
}
}
if
(
nullIndex
==
-
1
&&
!
param
[
key
][
i
])
{
/**按顺序第一次赋值 */
nullIndex
=
i
;
}
}
break
;
}
}
errorStr
=
isError
&&
errorStr
==
""
?
`
${
key
}
应该是
${
type
}
型 而不是
${
paramType
}
`
:
errorStr
;
errorStr
=
isError
&&
errorStr
==
""
?
`
${
key
}
应该是
${
confType
}
型 而不是
${
valueType
}
`
:
errorStr
;
if
(
isError
)
throw
new
BizError
(
ERRORENUM
.
参数错误
,
errorStr
);
}
}
if
(
isError
)
throw
new
BizError
(
ERRORENUM
.
参数错误
,
errorStr
);
}
for
(
let
key
in
param
)
{
if
(
!
conf
[
key
])
throw
new
BizError
(
ERRORENUM
.
参数错误
,
`多余
${
key
}
字段`
);
}
return
param
;
}
export
function
testEccReqParamater
(
conf
:
object
,
param
,
skipKeys
?)
{
skipKeys
=
skipKeys
||
[];
let
confKey
=
[];
for
(
let
key
in
conf
)
{
confKey
.
push
(
key
);
}
}
return
param
;
return
param
;
}
}
\ No newline at end of file
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