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
a1e5d4ab
Commit
a1e5d4ab
authored
Dec 13, 2024
by
chenjinjing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
no message
parent
01d1bdf4
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
168 additions
and
40 deletions
+168
-40
homePage.ts
src/biz/member/homePage.ts
+52
-2
memberFees.ts
src/biz/member/memberFees.ts
+85
-36
outPutConfig.ts
src/config/outPutConfig.ts
+17
-2
router.ts
src/routers/member/router.ts
+7
-0
router.ts
src/routers/public/router.ts
+7
-0
No files found.
src/biz/member/homePage.ts
View file @
a1e5d4ab
...
...
@@ -4,7 +4,7 @@
*/
import
moment
=
require
(
"moment"
);
import
{
CHANGEAPPLYTYPE
,
CLIENTMSGLABLE
,
DOCUMENTTYPE
,
INDIVIDUALMEMBERTYPE
,
MEMBERLEVEL
,
MEMBERLEVELCHANGE
,
MEMBERSTATE
,
MEMBERTYPE
,
NATION
,
PAYMENTSTATUS
,
PROFCATEGORY
,
SEX
,
STATE
,
UNITMEMBERTYPE
,
USERREGISTERSTATE
}
from
"../../config/enum"
;
import
{
CHANGEAPPLYTYPE
,
CLIENTMSGLABLE
,
CODPARTICIPANT
,
DOCUMENTTYPE
,
INDIVIDUALMEMBERTYPE
,
MEMBERLEVEL
,
MEMBERLEVELCHANGE
,
MEMBERSTATE
,
MEMBERTYPE
,
NATION
,
PAYMENTSTATUS
,
PROFCATEGORY
,
SEX
,
STATE
,
UNITMEMBERTYPE
,
USERREGISTERSTATE
}
from
"../../config/enum"
;
import
{
ERRORENUM
}
from
"../../config/errorEnum"
;
import
{
addManyData
,
addOneData
}
from
"../../data/add"
;
import
{
deleteManyData
}
from
"../../data/delete"
;
...
...
@@ -14,7 +14,7 @@ import { updateOneData } from "../../data/update";
import
{
generateSystemId
,
getEdition
,
successErrorResult
,
successResult
}
from
"../../tools/system"
;
import
{
BizError
}
from
"../../util/bizError"
;
import
{
extractData
}
from
"../../util/piecemeal"
;
import
{
eccEnumValue
}
from
"../../util/verificationEnum"
;
import
{
changeEnumValue
,
eccEnumValue
}
from
"../../util/verificationEnum"
;
import
{
eccFormParam
}
from
"../../util/verificationParam"
;
import
{
getCityNameByCode
}
from
"../../config/cityConfig"
;
...
...
@@ -315,6 +315,56 @@ export async function getSheng ({userId}) {
/**
* 理事、常务理事证明函下载
* @param param0
* @returns
*/
export
async
function
getCertificateType
({
userId
})
{
const
Files
=
[
"userId"
,
"memberLevel"
,
"changeApplyType"
,
"applyApplicationTime"
,
"unitName"
,
"name"
,
"beforeChange"
,
"memberType"
];
let
userInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
userId
},
Files
);
if
(
!
userInfo
||
!
userInfo
.
userId
)
throw
new
BizError
(
ERRORENUM
.
目标数据不存在
);
let
certificate
=
false
;
//是否可以下载
let
cefaInfo
:
any
=
{};
let
msg
=
'会员理事审核未通过,无法下载证明函'
;
//判断是否审批通过
if
(
userInfo
.
beforeChange
)
{
if
(
userInfo
.
changeApplyType
==
CHANGEAPPLYTYPE
.
通过
)
{
if
(
userInfo
.
memberLevel
==
MEMBERLEVEL
.
理事会员
||
userInfo
.
certificateType
==
MEMBERLEVEL
.
常务理事会员
)
certificate
=
true
if
(
certificate
)
{
cefaInfo
=
{
memberLevel
:
changeEnumValue
(
MEMBERLEVEL
,
userInfo
.
memberLevel
),
name
:
userInfo
.
name
,
unitName
:
userInfo
.
unitName
,
applyApplicationTime
:
moment
(
userInfo
.
applyApplicationTime
).
format
(
"YYYY年MM月DD日"
)
}
msg
=
``
;
}
}
else
if
(
userInfo
.
changeApplyType
==
CHANGEAPPLYTYPE
.
注册信息待补充
)
{
msg
=
`会员注册信息待补充,无法下载证明函`
;
}
else
if
(
userInfo
.
changeApplyType
==
CHANGEAPPLYTYPE
.
待审批
)
{
msg
=
`会员理事审核中,无法下载证明函`
;
}
}
else
{
if
(
userInfo
.
memberLevel
==
MEMBERLEVEL
.
理事会员
||
userInfo
.
certificateType
==
MEMBERLEVEL
.
常务理事会员
)
certificate
=
true
if
(
certificate
)
{
let
name
=
""
;
if
(
userInfo
.
memberType
==
MEMBERTYPE
.
个人会员
)
name
=
userInfo
.
name
;
else
name
=
userInfo
.
unitName
;
cefaInfo
=
{
memberLevel
:
changeEnumValue
(
MEMBERLEVEL
,
userInfo
.
memberLevel
),
name
,
applyApplicationTime
:
moment
(
userInfo
.
applyApplicationTime
).
format
(
"YYYY年MM月DD日"
)
}
msg
=
``
;
}
}
return
{
certificate
,
cefaInfo
,
msg
};
}
/**
* 能否申请变更理事
* @param userId 登录的userid
* @returns
...
...
src/biz/member/memberFees.ts
View file @
a1e5d4ab
...
...
@@ -81,7 +81,7 @@ export async function outPutDataForExcel({type, exportColumns}) {
let
subList
=
[];
let
orderItemList
=
[];
if
(
isSelectOrder
)
{
orderItemList
=
await
find
(
TABLEENUM
.
订单表
,
{
userId
:
info
.
userId
},
[
"orderCycleStart"
,
"money"
]);
orderItemList
=
await
find
(
TABLEENUM
.
订单表
,
{
userId
:
info
.
userId
},
[
"orderCycleStart"
,
"money"
,
"state"
]);
}
valueKeyList
.
forEach
(
key
=>
{
let
item
;
...
...
@@ -89,16 +89,45 @@ export async function outPutDataForExcel({type, exportColumns}) {
item
=
info
.
name
||
info
.
unitName
;
}
else
if
(
key
==
"Money"
)
{
let
itemCount
=
0
;
// 已缴费和缴费期不累计金额
if
(
type
==
2
&&
type
==
3
)
{
orderItemList
.
forEach
(
orderItem
=>
{
itemCount
=
orderItem
.
money
;
});
}
else
{
orderItemList
.
forEach
(
orderItem
=>
{
itemCount
+=
orderItem
.
money
;
});
}
item
=
itemCount
;
}
else
if
(
key
==
"paymentYear"
)
{
let
缴费
Year
=
0
;
// 已缴费和缴费期显示缴费年限
if
(
type
==
2
&&
type
==
3
)
{
orderItemList
.
forEach
(
orderItem
=>
{
if
(
orderItem
.
state
==
ORDERSTATE
.
已支付
)
{
缴费
Year
+=
1
;
}
});
item
=
缴费
Year
;
}
}
else
if
(
key
==
"duration"
)
{
let
itemCount
=
''
;
orderItemList
.
forEach
(
orderItem
=>
{
itemCount
+=
`
${
new
Date
(
orderItem
.
orderCycleStart
).
getFullYear
()}
`
;
});
item
=
itemCount
;
}
else
if
(
key
==
"durationYear"
)
{
let
欠费
Year
=
0
;
// 已缴费和缴费期显示欠费年限
if
(
type
==
2
&&
type
==
3
)
{
orderItemList
.
forEach
(
orderItem
=>
{
if
(
orderItem
.
state
==
ORDERSTATE
.
未支付
)
{
欠费
Year
+=
1
;
}
});
item
=
欠费
Year
;
}
}
else
if
(
key
==
"code"
)
{
item
=
info
.
documentId
||
info
.
uscc
;
}
else
{
...
...
@@ -114,7 +143,6 @@ export async function outPutDataForExcel({type, exportColumns}) {
dataList
.
push
(
subList
);
}
return
{
dataList
};
}
...
...
@@ -184,15 +212,14 @@ export async function getPaid({name, memberType, documentId, phone, mail, joinSt
item
.
joinTime
=
moment
(
item
.
joinTime
).
format
(
"YYYY-MM-DD"
);
item
.
memberState
=
changeEnumValue
(
MEMBERSTATE
,
item
.
memberState
);
item
.
memberLevel
=
changeEnumValue
(
MEMBERLEVEL
,
memberLevel
);
if
(
i
tem
.
individualMemberType
)
{
if
(
i
nfo
.
individualMemberType
)
{
item
.
memberType
=
changeEnumValue
(
MEMBERTYPEECCENUM
,
info
.
individualMemberType
);
}
if
(
i
tem
.
unitMemberType
)
{
if
(
i
nfo
.
unitMemberType
)
{
item
.
memberType
=
changeEnumValue
(
MEMBERTYPEECCENUM
,
info
.
unitMemberType
);
}
let
orderDbList
=
await
find
(
TABLEENUM
.
订单表
,
{
userId
:
info
.
userId
},
[
"money"
])
// state 缴费状态
orderDbList
.
forEach
(
orderItem
=>
{
item
.
money
=
orderItem
.
money
;
});
...
...
@@ -277,32 +304,43 @@ export async function unpaidList({name, memberType, documentId, phone, mail, joi
}
}
const
SelectFiles
=
[
"userId"
,
"memberState"
,
"unitName"
,
"loginId"
,
"phone"
,
"joinTime"
,
"memberType"
,
"lifespanStartTime"
,
"lifespanEndTime"
,
"individualMemberType"
,
"unitMemberType"
];
//
const SelectFiles = ["userId", "memberState", "unitName", "loginId", "phone", "joinTime", "memberType", "lifespanStartTime", "lifespanEndTime", "individualMemberType",
//
"unitMemberType"];
// let dbList = await findToPage(TABLEENUM.用户表, selectParam, SelectFiles, pageNumber, 10);
const
SelectFiles
=
[
"userId"
,
"memberState"
,
"individualMemberType"
,
"unitMemberType"
,
"unitName"
,
"name"
,
"memberLevel"
,
"joinTime"
,
"lifespanStartTime"
,
"lifespanEndTime"
];
let
dbList
=
await
findToSortToPage
(
TABLEENUM
.
用户表
,
selectParam
,
SelectFiles
,
{
joinTime
:
-
1
},
pageNumber
);
let
dataCount
=
await
findCount
(
TABLEENUM
.
用户表
,
selectParam
);
let
dataList
=
[];
const
itemFiles
=
[
"userId"
,
"memberState"
,
"unitName"
,
"loginId"
,
"phone"
,
"joinTime"
,
"individualMemberType"
,
"unitMemberType"
];
dbList
.
forEach
(
info
=>
{
// const itemFiles = ["userId", "memberState", "unitName", "loginId", "phone", "joinTime", "individualMemberType", "unitMemberType"];
const
itemFiles
=
[
"userId"
,
"memberState"
,
"unitName"
,
"name"
,
"joinTime"
,
"memberType"
,
"memberLevel"
,
"lifespanTime"
,
"nextPayment"
,
"money"
,
"nextLifespanTime"
];
for
(
let
i
=
0
;
i
<
dbList
.
length
;
i
++
)
{
let
info
=
dbList
[
i
];
let
item
:
any
=
extractData
(
info
,
itemFiles
);
item
.
lifespanTime
=
`
${
moment
(
info
.
lifespanStartTime
).
format
(
"YYYY-MM-DD"
)}
至
${
moment
(
info
.
lifespanEndTime
).
format
(
"YYYY-MM-DD"
)}
`
;
item
.
joinTime
=
`
${
moment
(
info
.
joinTime
).
format
(
"YYYY-MM-DD"
)}
`
;
item
.
lifespanTime
=
`
${
moment
(
info
.
lifespanStartTime
).
format
(
"YYYY-MM-DD"
)}
至
${
moment
(
info
.
lifespanEndTime
).
format
(
"YYYY-MM-DD"
)}
`
;
//会员有效期
item
.
nextPayment
=
moment
(
info
.
lifespanEndTime
).
format
(
"YYYY-MM-DD"
);
//下次缴费时间
item
.
nextLifespanTime
=
"不足90天"
;
if
(
info
.
lifespanEndTime
<
(
NowMs
+
(
30
*
24
*
3600
*
1000
)
)
)
item
.
nextLifespanTime
=
"不足30天"
;
item
.
joinTime
=
moment
(
item
.
joinTime
).
format
(
"YYYY-MM-DD"
);
item
.
memberState
=
changeEnumValue
(
MEMBERSTATE
,
item
.
memberState
);
if
(
item
.
individualMemberType
)
{
item
.
memberLevel
=
changeEnumValue
(
MEMBERLEVEL
,
memberLevel
);
if
(
info
.
individualMemberType
)
{
item
.
memberType
=
changeEnumValue
(
MEMBERTYPEECCENUM
,
info
.
individualMemberType
);
}
if
(
i
tem
.
unitMemberType
)
{
if
(
i
nfo
.
unitMemberType
)
{
item
.
memberType
=
changeEnumValue
(
MEMBERTYPEECCENUM
,
info
.
unitMemberType
);
}
// item.memberType = changeEnumValue(MEMBERTYPE, item.memberType);
dataList
.
push
(
item
);
let
orderDbList
=
await
find
(
TABLEENUM
.
订单表
,
{
userId
:
info
.
userId
},
[
"money"
])
// state 缴费状态
orderDbList
.
forEach
(
orderItem
=>
{
item
.
money
=
orderItem
.
money
;
});
dataList
.
push
(
item
);
};
return
{
dataList
,
dataCount
};
}
...
...
@@ -374,7 +412,7 @@ export async function getRenewalPeriod({name, memberType, documentId, phone, mai
let
dataCount
=
await
findCount
(
TABLEENUM
.
用户表
,
selectParam
);
let
dataList
=
[];
const
itemFiles
=
[
"userId"
,
"memberState"
,
"
individualMemberType"
,
"unitMemberType"
,
"unitName"
,
"name"
,
"memberLevel"
,
"joinTime"
,
"orderCycleStart"
,
"money
"
];
const
itemFiles
=
[
"userId"
,
"memberState"
,
"
memberType"
,
"unitName"
,
"name"
,
"memberLevel"
,
"joinTime"
,
"orderCycleStart"
,
"money"
,
"durationYear
"
];
for
(
let
i
=
0
;
i
<
dbList
.
length
;
i
++
)
{
let
info
=
dbList
[
i
];
let
item
:
any
=
extractData
(
info
,
itemFiles
);
...
...
@@ -387,19 +425,24 @@ export async function getRenewalPeriod({name, memberType, documentId, phone, mai
item
.
joinTime
=
moment
(
item
.
joinTime
).
format
(
"YYYY-MM-DD"
);
item
.
memberState
=
changeEnumValue
(
MEMBERSTATE
,
item
.
memberState
);
item
.
memberLevel
=
changeEnumValue
(
MEMBERLEVEL
,
item
.
memberLevel
);
if
(
i
tem
.
individualMemberType
)
{
if
(
i
nfo
.
individualMemberType
)
{
item
.
memberType
=
changeEnumValue
(
MEMBERTYPEECCENUM
,
info
.
individualMemberType
);
}
if
(
i
tem
.
unitMemberType
)
{
if
(
i
nfo
.
unitMemberType
)
{
item
.
memberType
=
changeEnumValue
(
MEMBERTYPEECCENUM
,
info
.
unitMemberType
);
}
let
orderDbList
=
await
find
(
TABLEENUM
.
订单表
,
{
userId
:
info
.
userId
},
[
"orderCycleStart"
,
"money"
])
let
orderDbList
=
await
find
(
TABLEENUM
.
订单表
,
{
userId
:
info
.
userId
},
[
"orderCycleStart"
,
"money"
,
"state"
]);
if
(
!
item
.
money
)
item
.
money
=
0
;
if
(
!
item
.
durationYear
)
item
.
durationYear
=
0
;
orderDbList
.
forEach
(
orderItem
=>
{
item
.
money
+=
orderItem
.
money
;
if
(
!
item
.
orderCycleStart
)
item
.
orderCycleStart
=
new
Date
(
orderItem
.
orderCycleStart
).
getFullYear
();
else
item
.
orderCycleStart
+=
`
${
new
Date
(
orderItem
.
orderCycleStart
).
getFullYear
()}
`
;
if
(
orderItem
.
state
==
ORDERSTATE
.
未支付
)
{
item
.
durationYear
+=
1
;
//欠费年限
}
});
dataList
.
push
(
item
);
...
...
@@ -533,35 +576,41 @@ export async function getGracePeriod({name, memberType, documentId, phone, mail,
if
(
mail
)
selectParam
.
mail
=
mail
;
if
(
memberLevel
.
length
)
selectParam
.
memberLevel
=
{
"$in"
:
memberLevel
};
const
SelectFiles
=
[
"userId"
,
"memberState"
,
"unitName"
,
"loginId"
,
"phone"
,
"joinTime"
,
"memberType"
,
"joinTime"
,
"lifespanEndTime"
,
"individualMemberType"
,
"unitMemberType"
];
// const SelectFiles = [ "userId", "memberState", "unitName", "loginId", "phone", "joinTime", "memberType", "joinTime", "lifespanEndTime", "individualMemberType", "unitMemberType"];
const
SelectFiles
=
[
"userId"
,
"memberState"
,
"individualMemberType"
,
"unitMemberType"
,
"unitName"
,
"name"
,
"memberLevel"
,
"joinTime"
,
"lifespanEndTime"
,
"lifespanEndTime"
];
let
dbList
=
await
findToPage
(
TABLEENUM
.
用户表
,
selectParam
,
SelectFiles
,
pageNumber
,
10
);
let
dataCount
=
await
findCount
(
TABLEENUM
.
用户表
,
selectParam
);
let
dataList
=
[];
// const itemFiles = ["userId", "memberState", "loginId", "phone", "joinTime", "memberType", "unitName"];
dbList
.
forEach
(
info
=>
{
let
dataInfo
:
any
=
{
userId
:
info
.
userId
,
memberState
:
changeEnumValue
(
MEMBERSTATE
,
info
.
memberState
),
loginId
:
info
.
loginId
,
phone
:
info
.
phone
,
unitName
:
info
.
unitName
,
joinTime
:
`
${
moment
(
info
.
joinTime
).
format
(
"YYYY-MM-DD"
)}
`
,
lifespanTime
:
`
${
moment
(
info
.
lifespanEndTime
).
format
(
"YYYY-MM-DD"
)}
`
,
nextLifespanTime
:
"宽限期中"
,
// memberType:changeEnumValue(MEMBERTYPE, info.memberType)
};
const
itemFiles
=
[
"userId"
,
"memberState"
,
"memberType"
,
"unitName"
,
"name"
,
"memberLevel"
,
"joinTime"
,
"money"
,
"lifespanTime"
,
"nextPayment"
,
"nextLifespanTime"
];
for
(
let
i
=
0
;
i
<
dbList
.
length
;
i
++
)
{
let
info
=
dbList
[
i
];
let
item
:
any
=
extractData
(
info
,
itemFiles
);
item
.
lifespanTime
=
`
${
moment
(
info
.
lifespanStartTime
).
format
(
"YYYY-MM-DD"
)}
至
${
moment
(
info
.
lifespanEndTime
).
format
(
"YYYY-MM-DD"
)}
`
;
//会员有效期
item
.
nextPayment
=
moment
(
info
.
lifespanEndTime
).
format
(
"YYYY-MM-DD"
);
//下次缴费时间
item
.
nextLifespanTime
=
"宽限期中"
;
item
.
joinTime
=
moment
(
item
.
joinTime
).
format
(
"YYYY-MM-DD"
);
item
.
memberState
=
changeEnumValue
(
MEMBERSTATE
,
item
.
memberState
);
item
.
memberLevel
=
changeEnumValue
(
MEMBERLEVEL
,
memberLevel
);
if
(
info
.
individualMemberType
)
{
dataInfo
.
memberType
=
changeEnumValue
(
MEMBERTYPEECCENUM
,
info
.
individualMemberType
);
item
.
memberType
=
changeEnumValue
(
MEMBERTYPEECCENUM
,
info
.
individualMemberType
);
}
if
(
info
.
unitMemberType
)
{
dataInfo
.
memberType
=
changeEnumValue
(
MEMBERTYPEECCENUM
,
info
.
unitMemberType
);
item
.
memberType
=
changeEnumValue
(
MEMBERTYPEECCENUM
,
info
.
unitMemberType
);
}
dataList
.
push
(
dataInfo
);
let
orderDbList
=
await
find
(
TABLEENUM
.
订单表
,
{
userId
:
info
.
userId
},
[
"money"
])
// state 缴费状态
orderDbList
.
forEach
(
orderItem
=>
{
item
.
money
=
orderItem
.
money
;
});
dataList
.
push
(
item
);
}
return
{
dataList
,
dataCount
};
}
...
...
src/config/outPutConfig.ts
View file @
a1e5d4ab
...
...
@@ -149,7 +149,7 @@ export enum REFUNDCOLUMNS {
}
//会费管理
//会费管理
-未缴费
export
enum
MEMBERFEESDCOLUMNS
{
状态
=
"memberState"
,
会员类别
=
"memberType"
,
...
...
@@ -159,9 +159,24 @@ export enum MEMBERFEESDCOLUMNS {
会员职务
=
"memberLevel"
,
入会时间
=
"joinTime"
,
缴费金额
=
"Money"
,
"欠费
年限/
份"
=
"duration"
"欠费
具体年
份"
=
"duration"
}
//会费管理-已缴费、缴费期
export
enum
MEMBERPAYMENTCOLUMNS
{
状态
=
"memberState"
,
会员类别
=
"memberType"
,
注册手机号
=
"phone"
,
"单位代码/身份证"
=
"code"
,
"单位/个人名称"
=
"name"
,
会员职务
=
"memberLevel"
,
入会时间
=
"joinTime"
,
缴费金额
=
"Money"
,
缴费年限
=
"paymentYear"
,
欠费具体年份
=
"duration"
,
欠费年限
=
"durationYear"
}
src/routers/member/router.ts
View file @
a1e5d4ab
...
...
@@ -991,6 +991,13 @@ export const Config = {
bindBiz
:
homePageBiz
.
getCertificate
},
{
apiName
:
"获取可下载理事、常务理事证明函"
,
subUrl
:
'/homepage/getcertificatetype'
,
param
:[
],
bindBiz
:
homePageBiz
.
getCertificateType
},
{
apiName
:
"变更职位"
,
subUrl
:
'/homepage/getapply'
,
param
:[
...
...
src/routers/public/router.ts
View file @
a1e5d4ab
...
...
@@ -350,6 +350,13 @@ export const Config = {
param
:[],
defaultParam
:
outPutConfig
.
MEMBERFEESDCOLUMNS
,
bindBiz
:
publicBiz
.
setEnumInterface
},
{
apiName
:
"会费管理-列表导出"
,
subUrl
:
'/memberpaymentcolumns'
,
param
:[],
defaultParam
:
outPutConfig
.
MEMBERPAYMENTCOLUMNS
,
bindBiz
:
publicBiz
.
setEnumInterface
}
],
...
...
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