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
a0c994c3
Commit
a0c994c3
authored
Feb 28, 2025
by
chenjinjing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
20250227日修改上传
parent
7d47315d
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
252 additions
and
47 deletions
+252
-47
apply.ts
src/biz/member/apply.ts
+60
-17
examine.ts
src/biz/member/examine.ts
+4
-4
homePage.ts
src/biz/member/homePage.ts
+57
-3
memberFees.ts
src/biz/member/memberFees.ts
+1
-1
order.ts
src/biz/member/order.ts
+10
-9
officialWebsite.ts
src/biz/officialWebsite.ts
+87
-7
register.ts
src/biz/register.ts
+1
-1
enum.ts
src/config/enum.ts
+14
-3
router.ts
src/routers/member/router.ts
+10
-1
router.ts
src/routers/public/router.ts
+7
-0
router.ts
src/routers/router.ts
+1
-1
No files found.
src/biz/member/apply.ts
View file @
a0c994c3
...
...
@@ -358,14 +358,20 @@ export async function outPutApply() {
//==========================资料变更
/**
* 列表 success
* @param userId
* 资料审批列表 success
* @param name 名称关键词
* @param changeState 审核状态
* @param unitMemberType 会员类别
* @param uscc 统一信用代码
* @param legalPerson 法人代表
* @param legalPersonPhone 法人联系电话
* @param legalPersonMail 法人邮箱
* @returns
*/
export
async
function
infomationChangeList
({
name
,
changeState
,
pageSize
,
pageNumber
})
{
export
async
function
infomationChangeList
({
name
,
changeState
,
unitMemberType
,
uscc
,
legalPerson
,
legalPersonPhone
,
legalPersonMail
,
pageSize
,
pageNumber
})
{
let
selectParam
:
any
=
{
memberType
:
MEMBERTYPE
.
单位会员
,
infoChangeId
:{
"$ne"
:
null
}};
let
selectHistoryParam
:
any
=
{}
if
(
name
)
{
selectParam
.
unitName
=
{
"$regex"
:
name
}
}
...
...
@@ -373,6 +379,10 @@ export async function infomationChangeList({name, changeState, pageSize, pageNum
selectParam
.
infoChangeOptionType
=
changeState
;
}
if
(
unitMemberType
)
{
selectParam
}
let
dbList
=
await
findToSortToPage
(
TABLEENUM
.
用户表
,
selectParam
,
[
"userId"
,
"memberType"
,
"userId"
,
"unitName"
,
"infoChangeId"
,
"uscc"
,
"legalPerson"
,
"unitMemberType"
,
"yuanXiaoBanXueLeiXing"
],
{
infoChangeMs
:
-
1
},
pageNumber
,
pageSize
);
let
dataCount
=
await
findCount
(
TABLEENUM
.
用户表
,
selectParam
);
...
...
@@ -413,6 +423,7 @@ export async function infomationChangeList({name, changeState, pageSize, pageNum
if
(
logInfo
.
yuanXiaoBanXueLeiXing
!=
info
.
yuanXiaoBanXueLeiXing
)
item
.
yuanXiaoBanXueLeiXingChange
=
true
;
if
(
logInfo
.
legalPersonMail
!=
info
.
legalPersonMail
)
item
.
legalPersonMailChange
=
true
;
if
(
logInfo
.
legalPersonPhone
!=
info
.
legalPersonPhone
)
item
.
legalPersonPhoneChange
=
true
;
if
(
item
.
infoChangeOptionType
==
"驳回修改"
)
item
.
infoChangeOptionType
=
"已驳回"
;
// 2025.02.25【驳回修改】文字修改为【已驳回】
dataList
.
push
(
item
);
}
...
...
@@ -478,8 +489,8 @@ export async function infomationChangeOut({infoChangeId, rejectRemarks}) {
let
onceData
=
await
findOnceToSort
(
TABLEENUM
.
资料变更审批历史表
,
selectParam
,
{
createTimeMs
:
-
1
},
fileList
);
if
(
!
onceData
||
!
onceData
.
infoChangeId
)
throw
new
BizError
(
ERRORENUM
.
目标数据不存在
);
let
userInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
userId
:
onceData
.
userId
},
[
"infoChangeId"
,
"infoChangeOptionType"
]);
if
(
userInfo
.
infoChangeOptionType
==
INFOCHANGEAPPLYTYPE
.
驳回修改
)
{
//
let userInfo = await findOnce(TABLEENUM.用户表, {userId:onceData.userId}, ["infoChangeId", "infoChangeOptionType"]);
if
(
onceData
.
infoChangeOptionType
==
INFOCHANGEAPPLYTYPE
.
驳回修改
)
{
throw
new
BizError
(
ERRORENUM
.
不可重复提交
);
}
...
...
@@ -543,15 +554,46 @@ export async function infomationChangeLog({infoChangeId}) {
infoChangeOptionType
=
"审核-通过"
;
}
let
updateInfoStr
=
"修改了:"
;
if
(
info
.
unitName
!=
userInfo
.
unitName
)
updateInfoStr
+=
"单位名称"
;
if
(
info
.
uscc
!=
userInfo
.
uscc
)
updateInfoStr
+=
"统一信用代码"
;
if
(
info
.
unitMemberType
!=
userInfo
.
unitMemberType
)
updateInfoStr
+=
"单位类型"
;
if
(
info
.
legalPerson
!=
userInfo
.
legalPerson
)
updateInfoStr
+=
"法人代表"
;
if
(
info
.
yuanXiaoBanXueLeiXing
!=
userInfo
.
yuanXiaoBanXueLeiXing
)
updateInfoStr
+=
"办学类型"
;
if
(
info
.
legalPersonMail
!=
userInfo
.
legalPersonMail
)
updateInfoStr
+=
"法人联系邮箱"
;
if
(
info
.
legalPersonPhone
!=
userInfo
.
legalPersonPhone
)
updateInfoStr
+=
"法人联系电话"
;
// let updateInfoStr = "修改了:";
// if (info.unitName != userInfo.unitName) updateInfoStr += "单位名称";
// if (info.uscc != userInfo.uscc) updateInfoStr += "统一信用代码";
// if (info.unitMemberType != userInfo.unitMemberType) updateInfoStr += "单位类型";
// if (info.legalPerson != userInfo.legalPerson) updateInfoStr += "法人代表";
// if (info.yuanXiaoBanXueLeiXing != userInfo.yuanXiaoBanXueLeiXing) updateInfoStr += "办学类型";
// if (info.legalPersonMail != userInfo.legalPersonMail) updateInfoStr += "法人联系邮箱";
// if (info.legalPersonPhone != userInfo.legalPersonPhone) updateInfoStr += "法人联系电话";
let
updateConf
=
{
"unitName"
:
"单位名称"
,
"uscc"
:
"统一信用代码"
,
"unitMemberType"
:
"单位类型"
,
"legalPerson"
:
"法人代表"
,
"yuanXiaoBanXueLeiXing"
:
"办学类型"
,
"legalPersonMail"
:
"法人联系邮箱"
,
"legalPersonPhone"
:
"法人联系电话"
};
let
updateAddress
=
""
;
let
updateInfo
=
[]
for
(
let
key
in
updateConf
)
{
/**修改前 */
let
updateBeforeInfoStr
=
""
/**修改后 */
let
updateInfoStr
=
""
;
if
(
info
[
key
]
!=
userInfo
[
key
])
{
if
(
!
userInfo
[
key
])
updateBeforeInfoStr
=
"修改前:-"
;
else
updateBeforeInfoStr
=
`修改后:
${
userInfo
[
key
]}
`
;
if
(
!
info
[
key
])
updateInfoStr
=
"修改后:-"
;
else
updateInfoStr
=
`修改后:
${
info
[
key
]}
`
;
updateAddress
+=
`
${
updateConf
[
key
]}
、`
;
updateInfo
.
push
({
updateBeforeInfoStr
,
//修改前
updateInfoStr
,
//修改后
updateAddress
:
updateConf
[
key
]
//修改位置
});
}
}
let
item
=
{
infoChangeOptionType
,
...
...
@@ -565,12 +607,13 @@ export async function infomationChangeLog({infoChangeId}) {
yuanXiaoBanXueLeiXing
:
info
.
yuanXiaoBanXueLeiXing
,
desc
,
time
:
moment
(
info
.
createTimeMs
).
format
(
"YYYY-MM-DD HH:mm:SS"
),
updateInfoStr
updateAddress
:
updateAddress
.
replace
(
/、
([^
、
]
*
)
$/
,
"$1"
),
//去除末尾的、
updateInfo
};
dataList
.
push
(
item
);
}
return
{
dataList
};
}
...
...
src/biz/member/examine.ts
View file @
a0c994c3
...
...
@@ -66,12 +66,12 @@ export async function pendingReviewList({name, memberType, documentId, phone, ma
selectParam
[
"$or"
].
push
(
{
"$or"
:[
{
memberType
:
MEMBERTYPE
.
个人会员
,
userRegisterState
:
USERREGISTERSTATE
.
待审核
,
registerFlow
:
REGISTERFLOW
.
完成第二步
},
{
memberType
:
MEMBERTYPE
.
个人会员
,
userRegisterState
:
USERREGISTERSTATE
.
驳回修改
,
registerFlow
:
REGISTERFLOW
.
完成第一步
},
//
{ memberType:MEMBERTYPE.个人会员, userRegisterState:USERREGISTERSTATE.驳回修改, registerFlow:REGISTERFLOW.完成第一步 },
{
memberType
:
MEMBERTYPE
.
个人会员
,
userRegisterState
:
USERREGISTERSTATE
.
重新提交
,
registerFlow
:
REGISTERFLOW
.
完成第二步
}
]},
{
"$or"
:[
{
memberType
:
MEMBERTYPE
.
单位会员
,
userRegisterState
:
USERREGISTERSTATE
.
待审核
,
registerFlow
:
REGISTERFLOW
.
完成第三步
},
{
memberType
:
MEMBERTYPE
.
单位会员
,
userRegisterState
:
USERREGISTERSTATE
.
驳回修改
,
registerFlow
:
REGISTERFLOW
.
完成第一步
},
//
{ memberType:MEMBERTYPE.单位会员, userRegisterState:USERREGISTERSTATE.驳回修改, registerFlow:REGISTERFLOW.完成第一步 },
{
memberType
:
MEMBERTYPE
.
单位会员
,
userRegisterState
:
USERREGISTERSTATE
.
重新提交
,
registerFlow
:
REGISTERFLOW
.
完成第三步
},
]}
);
...
...
@@ -81,7 +81,7 @@ export async function pendingReviewList({name, memberType, documentId, phone, ma
// selectParam.memberType = MEMBERTYPE.个人会员;
selectParam
[
"$or"
].
push
(
{
memberType
:
MEMBERTYPE
.
个人会员
,
userRegisterState
:
USERREGISTERSTATE
.
待审核
,
registerFlow
:
REGISTERFLOW
.
完成第二步
},
{
memberType
:
MEMBERTYPE
.
个人会员
,
userRegisterState
:
USERREGISTERSTATE
.
驳回修改
,
registerFlow
:
REGISTERFLOW
.
完成第一步
},
//
{ memberType:MEMBERTYPE.个人会员, userRegisterState:USERREGISTERSTATE.驳回修改, registerFlow:REGISTERFLOW.完成第一步 },
{
memberType
:
MEMBERTYPE
.
个人会员
,
userRegisterState
:
USERREGISTERSTATE
.
重新提交
,
registerFlow
:
REGISTERFLOW
.
完成第二步
}
);
}
...
...
@@ -89,7 +89,7 @@ export async function pendingReviewList({name, memberType, documentId, phone, ma
// selectParam.unitMemberType = {"$in":memberType};
selectParam
[
"$or"
].
push
(
{
unitMemberType
:{
"$in"
:
memberType
},
userRegisterState
:
USERREGISTERSTATE
.
待审核
,
registerFlow
:
REGISTERFLOW
.
完成第三步
},
{
unitMemberType
:{
"$in"
:
memberType
},
userRegisterState
:
USERREGISTERSTATE
.
驳回修改
,
registerFlow
:
REGISTERFLOW
.
完成第一步
},
//
{ unitMemberType:{"$in":memberType}, userRegisterState:USERREGISTERSTATE.驳回修改, registerFlow:REGISTERFLOW.完成第一步 },
{
unitMemberType
:{
"$in"
:
memberType
},
userRegisterState
:
USERREGISTERSTATE
.
重新提交
,
registerFlow
:
REGISTERFLOW
.
完成第三步
},
);
}
...
...
src/biz/member/homePage.ts
View file @
a0c994c3
...
...
@@ -77,6 +77,7 @@ export async function getMemberData({userId}) {
if
(
topInfo
.
userRegisterState
==
USERREGISTERSTATE
.
通过
)
topInfo
.
userRegisterState
=
"已入会"
;
else
topInfo
.
userRegisterState
=
"未入会"
;
// if(topInfo.memberLevel) topInfo.memberLevel = changeEnumValue(MEMBERLEVEL, topInfo.memberLevel);
// if(baseInfo.sex) baseInfo.sex = changeEnumValue(SEX, baseInfo.sex);
// if(baseInfo.documentType) baseInfo.documentType = changeEnumValue(DOCUMENTTYPE, baseInfo.documentType);
...
...
@@ -85,6 +86,10 @@ export async function getMemberData({userId}) {
// if(majorInfo.unitMemberType) majorInfo.unitMemberType = changeEnumValue(UNITMEMBERTYPE, majorInfo.unitMemberType);
// if(majorInfo.yuanXiaoBanXueLeiXing) majorInfo.yuanXiaoBanXueLeiXing = changeEnumValue(BANXUELEIXING, majorInfo.yuanXiaoBanXueLeiXing);
if
(
baseInfo
.
sheng
)
baseInfo
.
shengName
=
getCityNameByCode
(
baseInfo
.
sheng
);
if
(
baseInfo
.
shi
)
baseInfo
.
shiName
=
getCityNameByCode
(
baseInfo
.
shi
);
if
(
baseInfo
.
qu
)
baseInfo
.
quName
=
getCityNameByCode
(
baseInfo
.
qu
);
return
{
topInfo
,
baseInfo
,
majorInfo
,
otherAttachment
};
}
...
...
@@ -424,6 +429,7 @@ export async function memberlevelUpdate({memberLevel, userId}) {
* 是否需要补充用户信息
* 判断注册资料是否完整,不完整返回false(需要补充用户信息)
* @param userId 登录的userid
* @param isChangeLevel 是否职务变更
*/
export
async
function
isNeedSupplement
({
userId
})
{
let
oldInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
userId
});
...
...
@@ -434,9 +440,22 @@ export async function isNeedSupplement({userId}) {
"其他附件"
:
[
"cardUrlJust"
,
"cardUrlBack"
,
"academicCERTUrl"
]
};
/**职务变更 */
// const ZyRequiredConf = {
// "资料变更填写字段":["unitName", "uscc", "legalPerson", "legalPersonPhone", "legalPersonMail", "unitMemberType", "yuanXiaoBanXueLeiXing", "uusinessLicenseUrl",
// "applicationForm"]
// }
// const DwRequiredConf = {
// "基本信息": ["sheng", "shi", "qu", "addres", "contactPerson", "contactPersonDuties", "contactPersonPhone"],
// "单位信息": ["yuanXiaoZhuGuanBuMen", "yuanXiaoFuZeRen", "yuanXiaoFuZeRenZhiWu",
// "yuanXiaoFuZeRenDianHua", "yuanXiaoBanGongFuZeRen", "yuanXiaoBanGongFuZeRenDianHua", "ZhuYaoFuZeRenYouXiang", "yuanXiaoKeYanFuZeRen",
// "yuanXiaoKeYanFuZeRenDianHua", "jiaoXueFuZeRenXinMing", "jiaoXueFuZeRenDianHua"]
// };
/**资料变更 */
const
DwRequiredConf
=
{
"基本信息"
:
[
"unitName"
,
"sheng"
,
"shi"
,
"qu"
,
"addres"
,
"uscc"
,
"legalPerson"
,
"legalPersonPhone"
,
"legalPersonMail"
,
"contactPerson"
,
"contactPersonDuties"
,
"contactPersonPhone"
,
"uusinessLicenseUrl"
],
"contactPersonDuties"
,
"contactPersonPhone"
,
"uusinessLicenseUrl"
,
"applicationForm"
],
"单位信息"
:
[
"unitMemberType"
,
"yuanXiaoBanXueLeiXing"
,
"yuanXiaoZhuGuanBuMen"
,
"yuanXiaoFuZeRen"
,
"yuanXiaoFuZeRenZhiWu"
,
"yuanXiaoFuZeRenDianHua"
,
"yuanXiaoBanGongFuZeRen"
,
"yuanXiaoBanGongFuZeRenDianHua"
,
"ZhuYaoFuZeRenYouXiang"
,
"yuanXiaoKeYanFuZeRen"
,
"yuanXiaoKeYanFuZeRenDianHua"
,
"jiaoXueFuZeRenXinMing"
,
"jiaoXueFuZeRenDianHua"
]
...
...
@@ -449,6 +468,7 @@ export async function isNeedSupplement({userId}) {
let
dwshzycjInfo
=
await
findOnce
(
TABLEENUM
.
单位所获得科研成果表
,
{
userId
});
let
infoCompleteData
=
{};
let
isZwbgtxzd
=
{};
//职务变更判断资料变更重要字段是否填写完整,true:资料变更填写字段完整。false:资料变更填写字段不全。
let
changeApplyType
=
CHANGEAPPLYTYPE
.
注册信息补充完成
;
if
(
oldInfo
.
memberType
==
MEMBERTYPE
.
个人会员
)
{
for
(
let
key
in
GrRequiredConf
)
{
...
...
@@ -473,6 +493,7 @@ export async function isNeedSupplement({userId}) {
}
}
}
for
(
let
i
=
0
;
i
<
Dwshzycj
.
单位所获主要成绩及科研成果
.
length
;
i
++
)
{
if
(
!
dwshzycjInfo
)
{
infoCompleteData
[
"单位所获主要成绩及科研成果"
]
=
false
;
...
...
@@ -498,6 +519,37 @@ export async function isNeedSupplement({userId}) {
/**
* 职务变更-资料填写是否完整
* @param param0
* @returns
*/
export
async
function
isZwbgtxzd
({
userId
})
{
let
oldInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
userId
});
/**职务变更 */
const
ZyRequiredConf
=
{
"资料变更填写字段"
:[
"unitName"
,
"uscc"
,
"legalPerson"
,
"legalPersonPhone"
,
"legalPersonMail"
,
"unitMemberType"
,
"yuanXiaoBanXueLeiXing"
,
"uusinessLicenseUrl"
,
"applicationForm"
]
}
let
isZwbgtxzd
=
false
;
//职务变更判断资料变更重要字段是否填写完整,true:资料变更填写字段完整。false:资料变更填写字段不全。
let
changeApplyType
=
CHANGEAPPLYTYPE
.
注册信息补充完成
;
for
(
let
key
in
ZyRequiredConf
)
{
for
(
let
i
=
0
;
i
<
ZyRequiredConf
[
key
].
length
;
i
++
)
{
if
(
!
oldInfo
[
ZyRequiredConf
[
key
][
i
]])
{
isZwbgtxzd
=
false
;
changeApplyType
=
CHANGEAPPLYTYPE
.
注册信息待补充
}
else
{
isZwbgtxzd
=
true
;
}
}
}
return
{
isZwbgtxzd
};
}
/**
* 个人会员用户注册信息补充
* @param userId 登录的userid
* @param form 补充的信息表单
...
...
@@ -615,8 +667,10 @@ export async function infomationChangeUpdate({userId, unitName, uscc, legalPerso
let
applyToSort
=
await
findOnceToSort
(
TABLEENUM
.
资料变更审批历史表
,
{
userId
},
{
createTimeMs
:
-
1
});
let
infoChangeOptionType
=
INFOCHANGEAPPLYTYPE
.
待审批
;
if
(
applyToSort
)
{
//新增了状态:驳回提交,当上次审批状态为驳回修改时,当前提交状态为驳回提交
if
(
applyToSort
.
infoChangeOptionType
==
INFOCHANGEAPPLYTYPE
.
驳回修改
)
infoChangeOptionType
=
INFOCHANGEAPPLYTYPE
.
驳回提交
;
}
//添加日志
/**添加审批历史 */
...
...
@@ -638,7 +692,7 @@ export async function infomationChangeUpdate({userId, unitName, uscc, legalPerso
createTimeMs
:
new
Date
().
valueOf
()
};
await
updateOneData
(
TABLEENUM
.
用户表
,
{
userId
},
{
infoChangeId
:
applyInfo
.
infoChangeId
,
infoChangeMs
:
new
Date
().
valueOf
(),
infoChangeOptionType
:
INFOCHANGEAPPLYTYPE
.
待审批
});
await
updateOneData
(
TABLEENUM
.
用户表
,
{
userId
},
{
infoChangeId
:
applyInfo
.
infoChangeId
,
infoChangeMs
:
new
Date
().
valueOf
(),
infoChangeOptionType
});
await
addOneData
(
TABLEENUM
.
资料变更审批历史表
,
applyInfo
);
return
successResult
();
...
...
@@ -681,7 +735,7 @@ export async function infomationChangeInfo({userId}) {
legalPersonMail
:
infomationChangeHistoryInfo
.
legalPersonMail
,
legalPersonPhone
:
infomationChangeHistoryInfo
.
legalPersonPhone
,
};
if
(
infomationChangeHistoryInfo
.
infoChangeOptionType
==
INFOCHANGEAPPLYTYPE
.
待审批
)
{
if
(
infomationChangeHistoryInfo
.
infoChangeOptionType
==
INFOCHANGEAPPLYTYPE
.
待审批
||
infomationChangeHistoryInfo
.
infoChangeOptionType
==
INFOCHANGEAPPLYTYPE
.
驳回提交
)
{
isUpdate
=
false
;
}
else
isUpdate
=
true
;
...
...
src/biz/member/memberFees.ts
View file @
a0c994c3
...
...
@@ -476,7 +476,7 @@ export async function getRenewalPeriod({name, memberType, documentId, phone, mai
/**
*
线下付款
会费管理 success
*
后台上传
会费管理 success
* @param param0
*/
export
async
function
offlinePayment
({
orderId
,
paymentNum
,
offlinePaymentUrl
})
{
...
...
src/biz/member/order.ts
View file @
a0c994c3
...
...
@@ -416,7 +416,7 @@ export async function getInvoiceStatus({id}) {
paymentNum
:
weChartPR
,
offlinePaymentUrl
,
state
:
ORDERSTATE
.
已支付
,
paymentMethod
:
PAYMENTTYPE
.
后台上传
,
paymentMethod
:
PAYMENTTYPE
.
银行转账
,
payTime
:
new
Date
().
valueOf
(),
confirmReceipt
:
RECEIPTCONFIRMATION
.
待确认
,
invoiceMail
,
...
...
@@ -733,22 +733,23 @@ export async function refundOut({id, desc}) {
let
{
operationTime
,
operationBehavior
,
isReceiveMoney
,
remarks
}
=
info
;
let
desc
=
""
;
let
operationBehaviorStr
=
""
;
let
operationBehaviorStr
=
changeEnumValue
(
ORDEREXAMINE
,
operationBehavior
)
;
if
(
operationBehavior
==
ORDEREXAMINE
.
用户提交
)
desc
=
"未收到/已收到"
;
//线下付款
else
{
if
(
isReceiveMoney
)
{
operationBehaviorStr
=
"不需退款"
;
desc
=
"未收到/
已收到"
if
(
isReceiveMoney
)
{
//判断是否收到款项
if
(
info
.
operationBehavior
==
ORDEREXAMINE
.
驳回
)
operationBehaviorStr
=
`
${
changeEnumValue
(
ORDEREXAMINE
,
info
.
operationBehavior
)}
"-需退款"`
;
isReceiveMoney
=
"
已收到"
}
else
{
operationBehaviorStr
=
"需退款"
;
desc
=
"
已收到"
if
(
info
.
operationBehavior
==
ORDEREXAMINE
.
驳回
)
operationBehaviorStr
=
`
${
changeEnumValue
(
ORDEREXAMINE
,
info
.
operationBehavior
)}
"-不需退款"`
;
isReceiveMoney
=
"未收到/
已收到"
}
// desc = isReceiveMoney ? changeEnumValue(ISRECEIVE, ISRECEIVE.未收到款项_xg其他) : changeEnumValue(ISRECEIVE, ISRECEIVE.提供账户_zkh需退款_ykh)
}
let
addInfo
:
any
=
{
operationTime
,
// operationTime:moment(operationTime).format("YYYY-MM-DD HH:mm:SS"),
operationBehavior
:
operationBehaviorStr
,
// operationBehavior:operationBehaviorStr,
operationBehavior
:
changeEnumValue
(
ORDEREXAMINE
,
operationBehavior
),
desc
,
other
:
remarks
};
...
...
@@ -808,7 +809,7 @@ export async function reconfirm({id, weChartPR, offlinePaymentUrl, desc}) {
paymentNum
:
weChartPR
,
offlinePaymentUrl
,
state
:
ORDERSTATE
.
已支付
,
paymentMethod
:
PAYMENTTYPE
.
后台上传
,
paymentMethod
:
PAYMENTTYPE
.
银行转账
,
//后台上传改成银行转账
payTime
:
new
Date
().
valueOf
(),
confirmReceipt
:
RECEIPTCONFIRMATION
.
待确认
,
desc
...
...
src/biz/officialWebsite.ts
View file @
a0c994c3
...
...
@@ -3,13 +3,15 @@
*/
import
moment
=
require
(
"moment"
);
import
{
ARTICLEPOSITION
,
BANNERPOSITION
,
BRANCHPOSITION
,
CODPARTICIPANT
,
DANGJIANVIDEO
,
DONGTAIZIXUNSUBTYPE
,
IMGEDITFUNENUM
,
MEMBERTYPE
,
PARTYBUILDSUBTYPEENUM
,
PARTYBUILDTYPEENUM
,
STATE
,
TONGZHIGONGGAO
,
UNITMEMBERTYP
E
,
XUEHUILINGDAOZHIWEI
}
from
"../config/enum"
;
import
{
ARTICLEPOSITION
,
BANNERPOSITION
,
BRANCHPOSITION
,
CODPARTICIPANT
,
DANGJIANVIDEO
,
DONGTAIZIXUNSUBTYPE
,
IMGEDITFUNENUM
,
INDIVIDUALMEMBERTYPE
,
MEMBERTYPE
,
PARTYBUILDSUBTYPEENUM
,
PARTYBUILDTYPEENUM
,
PAYMENTSTATUS
,
STATE
,
TONGZHIGONGGAO
,
UNITMEMBERTYPE
,
USERREGISTERSTAT
E
,
XUEHUILINGDAOZHIWEI
}
from
"../config/enum"
;
import
{
TABLEENUM
}
from
"../data/models/model"
;
import
{
find
,
findCount
,
findOnce
,
findToPage
,
findToSort
,
findToSortToPage
}
from
"../data/select"
;
import
{
extractData
}
from
"../util/piecemeal"
;
import
{
changeEnumValue
,
eccEnumValue
}
from
"../util/verificationEnum"
;
import
{
BizError
}
from
"../util/bizError"
;
import
{
ERRORENUM
}
from
"../config/errorEnum"
;
import
{
getCityNameByCode
}
from
"../config/cityConfig"
;
import
{
getEdition
}
from
"../tools/system"
;
export
async
function
banner
()
{
let
result
=
{
...
...
@@ -763,22 +765,100 @@ export async function xueXiYuanDiShiPinType() {
return
{
dataList
};
}
export
async
function
zhengShuChaXun
({
memberType
,
name
,
carId
})
{
/**原证书查询,跳出弹窗显示到期时间 */
// export async function zhengShuChaXun({memberType, name, carId }) {
// eccEnumValue("证书查询", "会员类型", MEMBERTYPE, memberType);
// let selectParam = {};
// if (memberType == MEMBERTYPE.个人会员) selectParam = {name, documentId:carId};
// else selectParam = {unitName:name, uscc:carId}
// let userInfo = await findOnce(TABLEENUM.用户表, selectParam, ["userId", "lifespanEndTime", "lifespanStartTime", "unitMemberType"]);
// if (!userInfo || !userInfo.userId) return {success:false, msg:"无法查询到该信息,请联系学会工作人员"};
// if (userInfo.unitMemberType == UNITMEMBERTYPE.院校) {
// let diffYearNum = moment().diff(moment(userInfo.lifespanStartTime), 'years');
// let startTimeStr = moment(userInfo.lifespanStartTime).add(diffYearNum, 'years').format("YYYY年MM月DD日");
// let endTimeStr = moment(userInfo.lifespanStartTime).add(diffYearNum+1, 'years').format("YYYY年MM月DD日");
// return {success:true, msg:`证书有效期至${endTimeStr}`};
// }
// if ( new Date().valueOf() > userInfo.lifespanEndTime ){
// return {success:true, msg:`会员到期,请续会员`};
// }
// return {success:true, msg:`证书有效期至${moment(userInfo.lifespanEndTime).format("YYYY年MM月DD日")}`};
// }
export
async
function
zhengShuChaXun
({
memberType
,
name
,
carId
})
{
eccEnumValue
(
"证书查询"
,
"会员类型"
,
MEMBERTYPE
,
memberType
);
let
selectParam
=
{};
if
(
memberType
==
MEMBERTYPE
.
个人会员
)
selectParam
=
{
name
,
documentId
:
carId
};
else
selectParam
=
{
unitName
:
name
,
uscc
:
carId
}
let
userInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
selectParam
,
[
"userId"
,
"lifespanEndTime"
,
"lifespanStartTime"
,
"unitMemberType"
]);
let
userInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
selectParam
,
[
"userId"
,
"lifespanEndTime"
,
"lifespanStartTime"
,
"unitMemberType"
,
"userRegisterState"
,
"paymentStatus"
,
"memberLevel"
,
"changeApplyType"
,
"applyApplicationTime"
,
"unitName"
,
"name"
,
"beforeChange"
,
"memberType"
,
"individualMemberType"
,
"sheng"
,
"documentId"
,
"memberNum"
,
"shi"
,
"qu"
,
"addres"
,
"session"
]);
if
(
!
userInfo
||
!
userInfo
.
userId
)
return
{
success
:
false
,
msg
:
"无法查询到该信息,请联系学会工作人员"
};
let
certificate
=
false
;
//是否可以下载
let
cefaInfo
:
any
=
{};
let
msg
=
'会员注册尚未审核通过,无法下载证书'
;
//判断是否审批通过
if
(
userInfo
.
userRegisterState
==
USERREGISTERSTATE
.
通过
)
{
if
(
userInfo
.
memberType
==
MEMBERTYPE
.
个人会员
)
{
//个人会员已支付可下载
if
(
userInfo
.
individualMemberType
==
INDIVIDUALMEMBERTYPE
.
普通会员
&&
userInfo
.
paymentStatus
!=
PAYMENTSTATUS
.
未支付
)
certificate
=
true
;
//个人会员专家无需支付可下载
if
(
userInfo
.
individualMemberType
==
INDIVIDUALMEMBERTYPE
.
专家会员
)
certificate
=
true
;
if
(
certificate
)
{
cefaInfo
=
{
name
:
userInfo
.
name
,
area
:
getCityNameByCode
(
userInfo
.
sheng
),
documentId
:
userInfo
.
documentId
,
memberNum
:
userInfo
.
memberNum
,
session
:
getEdition
(
Math
.
floor
(
userInfo
.
session
/
100
),
userInfo
.
session
%
100
),
lifespanTime
:
`
${
moment
(
userInfo
.
lifespanStartTime
).
format
(
"YYYY年MM月DD日"
)}
至
${
moment
(
userInfo
.
lifespanEndTime
).
format
(
"YYYY年MM月DD日"
)}
`
}
msg
=
``
;
}
else
{
msg
=
`会员注册尚未缴费,无法下载证书`
;
}
}
else
if
(
userInfo
.
memberType
==
MEMBERTYPE
.
单位会员
)
{
//院校无需支付可下载
if
(
userInfo
.
unitMemberType
==
UNITMEMBERTYPE
.
院校
)
certificate
=
true
;
//机构和其他已支付可下载
else
if
(
userInfo
.
paymentStatus
!=
PAYMENTSTATUS
.
未支付
)
{
certificate
=
true
;
}
if
(
certificate
)
{
let
addresStr
=
""
;
if
(
getCityNameByCode
(
userInfo
.
sheng
)
==
getCityNameByCode
(
userInfo
.
shi
))
{
addresStr
=
`
${
getCityNameByCode
(
userInfo
.
shi
)}${
getCityNameByCode
(
userInfo
.
qu
)}${
userInfo
.
addres
}
`
;
}
else
{
addresStr
=
`
${
getCityNameByCode
(
userInfo
.
sheng
)}${
getCityNameByCode
(
userInfo
.
shi
)}${
getCityNameByCode
(
userInfo
.
qu
)}${
userInfo
.
addres
}
`
;
}
cefaInfo
=
{
unitName
:
userInfo
.
unitName
,
addres
:
addresStr
,
memberNum
:
userInfo
.
memberNum
,
session
:
getEdition
(
Math
.
floor
(
userInfo
.
session
/
100
),
userInfo
.
session
%
100
),
lifespanTime
:
`
${
moment
(
userInfo
.
lifespanStartTime
).
format
(
"YYYY年MM月DD日"
)}
至
${
moment
(
userInfo
.
lifespanEndTime
).
format
(
"YYYY年MM月DD日"
)}
`
}
if
(
userInfo
.
unitMemberType
==
UNITMEMBERTYPE
.
院校
)
{
let
diffYearNum
=
moment
().
diff
(
moment
(
userInfo
.
lifespanStartTime
),
'years'
);
let
startTimeStr
=
moment
(
userInfo
.
lifespanStartTime
).
add
(
diffYearNum
,
'years'
).
format
(
"YYYY年MM月DD日"
);
let
endTimeStr
=
moment
(
userInfo
.
lifespanStartTime
).
add
(
diffYearNum
+
1
,
'years'
).
format
(
"YYYY年MM月DD日"
);
return
{
success
:
true
,
msg
:
`证书有效期至
${
endTimeStr
}
`
};
cefaInfo
.
lifespanTime
=
`
${
startTimeStr
}
至
${
endTimeStr
}
`
;
}
msg
=
``
;
}
else
{
msg
=
`会员注册尚未缴费,无法下载证书`
;
}
}
if
(
new
Date
().
valueOf
()
>
userInfo
.
lifespanEndTime
){
return
{
success
:
true
,
msg
:
`会员到期,请续会员`
};
}
return
{
success
:
true
,
msg
:
`证书有效期至
${
moment
(
userInfo
.
lifespanEndTime
).
format
(
"YYYY年MM月DD日"
)}
`
};
return
{
certificate
,
cefaInfo
,
msg
};
}
src/biz/register.ts
View file @
a0c994c3
...
...
@@ -368,7 +368,7 @@ const UnitBasicConfig = ["userId", "unitName", "sheng", "shi", "qu", "addres", "
"contactPerson"
,
"contactPersonDuties"
,
"contactPersonPhone"
,
"uusinessLicenseUrl"
,
"unitMail"
];
const
UnitConfig
=
[
"unitMemberType"
,
"yuanXiaoBanXueLeiXing"
,
"yuanXiaoZhuGuanBuMen"
,
"yuanXiaoFuZeRen"
,
"yuanXiaoFuZeRenZhiWu"
,
"yuanXiaoBanGongFuZeRenZhiWu"
,
"yuanXiaoFuZeRenDianHua"
,
"yuanXiaoBanGongFuZeRen"
,
"yuanXiaoBanGongFuZeRenDianHua"
,
"ZhuYaoFuZeRenYouXiang"
,
"yuanXiaoKeYanFuZeRen"
,
"yuanXiaoKeYanFuZeRenDianHua"
,
"jiaoXueFuZeRenXinMing"
,
"yuanXiaoXueShengZongRenShu"
,
"yuanXiaoJiaoZhiGongZongRenShu"
,
"jiaoXueFuZeRenDianHua"
,
"kaishezhuanYe"
,
"danWeiJianJie"
];
"jiaoXueFuZeRenXinMing"
,
"yuanXiaoXueShengZongRenShu"
,
"yuanXiaoJiaoZhiGongZongRenShu"
,
"jiaoXueFuZeRenDianHua"
,
"kaishezhuanYe"
,
"danWeiJianJie"
,
"applicationForm"
];
export
async
function
unitMemberEcho2
({
id
})
{
let
oldInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
userId
:
id
});
...
...
src/config/enum.ts
View file @
a0c994c3
...
...
@@ -600,12 +600,14 @@ export enum ADMINLV {
审批管理
,
会费管理
,
发票管理
,
变更管理
,
// 变更管理, 205
管理设置
=
206
,
// 管理权限 = 206,
标签系统
,
通知管理
=
208
,
会员信息修改
=
209
,
单位会员申请表
=
210
单位会员申请表
=
210
,
会员权限
=
211
,
}
...
...
@@ -822,7 +824,16 @@ export enum INFOCHANGEAPPLYTYPE {
}
/**
* 资料变更审批-前端用
*/
export
enum
INFOCHANGEAPPLYTYPECLIENT
{
全部
=
0
,
通过
=
1
,
待审批
,
驳回修改
,
驳回提交
,
//2025.02.24新增状态
}
/**
...
...
src/routers/member/router.ts
View file @
a0c994c3
...
...
@@ -730,7 +730,7 @@ export const Config = {
bindBiz
:
memberFeesBiz
.
memberArrearsList
},
{
apiName
:
"
线下付款
"
,
apiName
:
"
后台上传
"
,
subUrl
:
'/memberfees/offlinepayment'
,
param
:[
{
key
:
"orderId"
,
type
:
"String"
,
desc
:
"订单id"
,
isNull
:
true
},
...
...
@@ -1093,10 +1093,18 @@ export const Config = {
apiName
:
"是否需要补充用户信息"
,
subUrl
:
'/homepage/isneedsupplement'
,
param
:[
// {key:"isChangeLevel", type:"Number", desc:"是否职务变更"}
],
bindBiz
:
homePageBiz
.
isNeedSupplement
},
{
apiName
:
"职务变更是否前往资料变更补充信息"
,
subUrl
:
'/homepage/iszwbgtxzd'
,
param
:[
],
bindBiz
:
homePageBiz
.
isZwbgtxzd
},
{
apiName
:
"个人会员用户注册信息补充"
,
subUrl
:
'/homepage/infosupplement'
,
param
:[
...
...
@@ -1158,6 +1166,7 @@ export const Config = {
contactPersonDuties
:{
type
:
'String'
,
desc
:
'日常联系人职务'
,
notMustHave
:
false
},
contactPersonPhone
:{
type
:
'String'
,
desc
:
'日常联系人手机'
,
notMustHave
:
false
},
uusinessLicenseUrl
:{
type
:
'String'
,
desc
:
'营业执照复印件'
,
notMustHave
:
false
},
applicationForm
:{
type
:
'String'
,
desc
:
'申请表'
,
notMustHave
:
false
},
//2025.2.26日加上
/**单位信息 */
unitMemberType
:{
type
:
'Number'
,
desc
:
'单位信息类型,枚举'
,
notMustHave
:
false
},
yuanXiaoBanXueLeiXing
:{
type
:
'Number'
,
desc
:
'院校办学类型,枚举'
,
notMustHave
:
false
},
...
...
src/routers/public/router.ts
View file @
a0c994c3
...
...
@@ -364,6 +364,13 @@ export const Config = {
param
:[],
defaultParam
:
outPutConfig
.
CLIENTMAILTYPE
,
bindBiz
:
publicBiz
.
setEnumInterface
},
{
apiName
:
"资料审批状态-前端用"
,
subUrl
:
'/infochangeoptiontype'
,
param
:[],
defaultParam
:
enumConfig
.
INFOCHANGEAPPLYTYPECLIENT
,
bindBiz
:
publicBiz
.
setEnumInterface
}
],
...
...
src/routers/router.ts
View file @
a0c994c3
...
...
@@ -75,7 +75,7 @@ let permissionConfig = {
"会员库"
:{
adminPermission
:
true
,
lv
:
ADMINLV
.
会员库
},
"审批管理"
:{
adminPermission
:
true
,
lv
:
ADMINLV
.
审批管理
},
"会费管理"
:{
adminPermission
:
true
,
lv
:
ADMINLV
.
会费管理
},
"会员管理"
:{
adminPermission
:
true
,
lv
:
ADMINLV
.
变更管理
},
//
"会员管理":{adminPermission:true, lv:ADMINLV.变更管理},
"权限管理"
:{
adminPermission
:
true
,
lv
:
ADMINLV
.
管理设置
},
"个人首页展示"
:{
adminPermission
:
false
,
lv
:
ADMINLV
.
会员库
},
"oss授权"
:{
adminPermission
:
false
},
...
...
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