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
79efc42c
Commit
79efc42c
authored
Mar 26, 2024
by
lixinming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
no message
parent
d793fb9c
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
185 additions
and
146 deletions
+185
-146
authority.ts
src/biz/member/authority.ts
+10
-14
cost.ts
src/biz/member/cost.ts
+38
-16
homePage.ts
src/biz/member/homePage.ts
+51
-39
member.ts
src/biz/member/member.ts
+30
-14
order.ts
src/biz/member/order.ts
+16
-23
rightsMgmt.ts
src/biz/member/rightsMgmt.ts
+2
-1
user.ts
src/biz/member/user.ts
+10
-5
officialWebsite.ts
src/biz/officialWebsite.ts
+0
-1
enum.ts
src/config/enum.ts
+3
-2
errorEnum.ts
src/config/errorEnum.ts
+2
-1
model.ts
src/data/models/model.ts
+2
-0
router.ts
src/routers/member/router.ts
+21
-30
No files found.
src/biz/member/authority.ts
View file @
79efc42c
...
...
@@ -2,7 +2,7 @@
* 会员管理 【权限管理】success
*/
import
{
INDIVIDUALMEMBERTYPE
,
MEMBERLEVEL
,
MEMBERSTATE
,
MEMBERTYPE
,
MEMBERTYPEECCENUM
,
UNITMEMBERTYPE
}
from
"../../config/enum"
;
import
{
INDIVIDUALMEMBERTYPE
,
MEMBERLEVEL
,
MEMBERSTATE
,
MEMBERTYPE
,
MEMBERTYPEECCENUM
,
STATE
,
UNITMEMBERTYPE
}
from
"../../config/enum"
;
import
{
ERRORENUM
}
from
"../../config/errorEnum"
;
import
{
TABLEENUM
}
from
"../../data/models/model"
;
import
{
findCount
,
findOnce
,
findToPage
}
from
"../../data/select"
;
...
...
@@ -23,7 +23,7 @@ import { changeEnumValue, eccEnumValue } from "../../util/verificationEnum";
*/
export
async
function
getAuthority
({
unitName
,
memberLevel
,
memberCategory
,
pageNumber
})
{
/**查询条件 */
let
selectParam
:
any
=
{};
let
selectParam
:
any
=
{
isAdmin
:
STATE
.
否
};
if
(
unitName
)
selectParam
.
unitName
=
unitName
;
if
(
memberLevel
)
selectParam
.
memberLevel
=
memberLevel
;
if
(
memberCategory
)
{
...
...
@@ -31,20 +31,18 @@ export async function getAuthority({unitName, memberLevel, memberCategory, pageN
else
selectParam
.
individualMemberType
=
memberCategory
;
}
const
SelectFiles
=
[
"userId"
,
"memberState"
,
"unitName"
,
"name"
,
"memberLevel"
,
"memberType"
,
"individualMemberType"
,
"unitMemberType"
];
const
SelectFiles
=
[
"userId"
,
"memberState"
,
"unitName"
,
"name"
,
"memberLevel"
,
"memberType"
,
"individualMemberType"
,
"unitMemberType"
,
"memberCategory"
];
let
dbList
=
await
findToPage
(
TABLEENUM
.
用户表
,
selectParam
,
SelectFiles
,
pageNumber
);
let
dataCount
=
await
findCount
(
TABLEENUM
.
用户表
,
selectParam
);
const
ResultFiles
=
[
"userId"
,
"memberState"
,
"memberLevel"
,
"memberType"
];
const
ResultFiles
=
[
"userId"
,
"memberState"
,
"memberLevel"
,
"memberType"
,
"unitName"
];
let
dataList
=
[];
dbList
.
forEach
(
info
=>
{
let
item
:
any
=
extractData
(
info
,
ResultFiles
);
if
(
info
.
memberType
==
MEMBERTYPE
.
个人会员
)
{
item
.
unitName
=
info
.
name
;
item
.
memberCategory
=
changeEnumValue
(
INDIVIDUALMEMBERTYPE
,
info
.
individualMemberType
);
//会员类别/级别
}
else
{
item
.
unitName
=
info
.
unitName
;
item
.
memberCategory
=
changeEnumValue
(
UNITMEMBERTYPE
,
info
.
unitMemberType
);
//会员类别/级别
}
item
.
memberState
=
changeEnumValue
(
MEMBERSTATE
,
item
.
memberState
);
...
...
@@ -108,21 +106,19 @@ export async function freeze({id}) {
*/
export
async
function
authorityEcho
({
id
})
{
const
SelectFiles
=
[
"userId"
,
"unitName"
,
"name"
,
"memberLevel"
,
"memberType"
,
"individualMemberType"
,
"unitMemberType"
];
let
db
List
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
userId
:
id
},
SelectFiles
);
if
(
!
db
List
||
!
dbList
.
userId
)
throw
new
BizError
(
ERRORENUM
.
目标数据不存在
);
let
db
Info
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
userId
:
id
},
SelectFiles
);
if
(
!
db
Info
||
!
dbInfo
.
userId
)
throw
new
BizError
(
ERRORENUM
.
目标数据不存在
);
const
ResultFiles
=
[
"unitName"
,
"name"
,
"memberLevel"
,
"memberType"
];
let
dataInfo
:
any
=
extractData
(
db
List
,
ResultFiles
);
let
dataInfo
:
any
=
extractData
(
db
Info
,
ResultFiles
);
if
(
dataInfo
.
memberType
==
MEMBERTYPE
.
个人会员
)
{
dataInfo
.
unitName
=
dataInfo
.
name
;
dataInfo
.
memberCategory
=
changeEnumValue
(
INDIVIDUALMEMBERTYPE
,
dataInfo
.
individualMemberType
);
//会员类别/级别
dataInfo
.
memberCategory
=
changeEnumValue
(
INDIVIDUALMEMBERTYPE
,
dbInfo
.
individualMemberType
);
//会员类别/级别
}
else
{
dataInfo
.
unitName
=
dataInfo
.
unitName
;
dataInfo
.
memberCategory
=
changeEnumValue
(
UNITMEMBERTYPE
,
dataInfo
.
unitMemberType
);
//会员类别/级别
dataInfo
.
memberCategory
=
changeEnumValue
(
UNITMEMBERTYPE
,
dbInfo
.
unitMemberType
);
//会员类别/级别
}
dataInfo
.
memberLevel
=
changeEnumValue
(
MEMBERLEVEL
,
d
ata
Info
.
memberLevel
);
//会员等级、职务
dataInfo
.
memberLevel
=
changeEnumValue
(
MEMBERLEVEL
,
d
b
Info
.
memberLevel
);
//会员等级、职务
return
{
dataInfo
};
}
...
...
src/biz/member/cost.ts
View file @
79efc42c
...
...
@@ -5,7 +5,6 @@
import
{
MEMBERSTATE
,
ORDERSTATE
,
PAYMENTSTATUS
,
PAYMENTTYPE
,
RECEIPTCONFIRMATION
,
STATE
,
WEICHARTPAYSTATE
}
from
"../../config/enum"
;
import
{
TABLEENUM
}
from
"../../data/models/model"
;
import
{
findCount
,
findOnce
,
findOnceToSort
}
from
"../../data/select"
;
import
{
eccEnumValue
}
from
"../../util/verificationEnum"
;
import
*
as
path
from
"path"
;
const
WxPay
=
require
(
'wechatpay-node-v3'
);
import
*
as
fs
from
'fs'
;
...
...
@@ -32,10 +31,13 @@ const pay = new WxPay({
* @returns
*/
export
async
function
placeAnOrder
({
id
})
{
let
orderInfo
=
await
findOnce
(
TABLEENUM
.
订单表
,
{
id
},
[
"id"
,
"loginId"
,
"userId"
,
"memberCategory"
,
"money"
,
"orderCycleStart"
,
"orderCycleEnd"
,
"weChartState"
,
"state"
]);
let
orderInfo
=
await
findOnce
(
TABLEENUM
.
订单表
,
{
id
},
[
"id"
,
"loginId"
,
"userId"
,
"memberCategory"
,
"money"
,
"orderCycleStart"
,
"orderCycleEnd"
,
"weChartState"
,
"state"
,
"weChartCreatePayMs"
]);
if
(
!
orderInfo
||
!
orderInfo
.
id
)
throw
new
BizError
(
ERRORENUM
.
订单不存在
);
if
(
orderInfo
.
state
==
ORDERSTATE
.
已支付
)
throw
new
BizError
(
ERRORENUM
.
该订单已支付
);
if
(
orderInfo
.
weChartState
!=
WEICHARTPAYSTATE
.
未提交
)
throw
new
BizError
(
ERRORENUM
.
该订单正在支付
);
if
(
orderInfo
.
weChartCreatePayMs
&&
orderInfo
.
weChartState
==
WEICHARTPAYSTATE
.
未支付
)
{
if
(
new
Date
(
orderInfo
.
weChartCreatePayMs
).
valueOf
()
<
(
new
Date
().
valueOf
()
+
(
15
*
60
*
1000
))
)
throw
new
BizError
(
ERRORENUM
.
该订单正在支付
);
}
/**生成 out_trade_no */
let
out_trade_no
=
generateWXOrderId
(
orderInfo
.
memberCategory
,
orderInfo
.
userId
);
let
desc
=
`
${
orderInfo
.
loginId
}
_
${
moment
(
orderInfo
.
orderCycleStart
).
format
(
"YYYY-MM-DD"
)}
至
${
moment
(
orderInfo
.
orderCycleEnd
).
format
(
"YYYY-MM-DD"
)}
`
;
...
...
@@ -55,29 +57,48 @@ export async function placeAnOrder({id}) {
const
result
=
await
pay
.
transactions_native
(
Param
);
if
(
result
.
status
!=
200
)
throw
new
BizError
(
ERRORENUM
.
调起微信支付失败
);
await
updateOneData
(
TABLEENUM
.
订单表
,
{
id
},
{
weChartPR
:
out_trade_no
,
paymentMethod
:
PAYMENTTYPE
.
微信支付
,
weChartState
:
WEICHARTPAYSTATE
.
未支付
});
let
updateInfo
=
{
weChartCreatePayMs
:
new
Date
().
valueOf
(),
weChartPR
:
out_trade_no
,
paymentMethod
:
PAYMENTTYPE
.
微信支付
,
weChartState
:
WEICHARTPAYSTATE
.
未支付
};
await
updateOneData
(
TABLEENUM
.
订单表
,
{
id
},
updateInfo
);
return
{
code_url
:
result
.
code_url
,
weChartPR
:
out_trade_no
};
}
async
function
close
(
id
:
string
)
{
await
updateOneData
(
TABLEENUM
.
订单表
,
{
id
},
{
weChartState
:
WEICHARTPAYSTATE
.
未提交
,
weChartCreatePayMs
:
0
});
return
{
state
:
WEICHARTPAYSTATE
.
未提交
,
msg
:
"订单已关闭"
};
}
/**
* 订单查询状态【前端调用】
*/
export
async
function
orderState
({
id
,
weChartPR
})
{
let
orderInfo
=
await
findOnce
(
TABLEENUM
.
订单表
,
{
id
,
weChartPR
},
[
"id"
]);
let
orderInfo
=
await
findOnce
(
TABLEENUM
.
订单表
,
{
id
,
weChartPR
},
[
"id"
,
"state"
,
"weChartCreatePayMs"
,
"weChartState"
]);
if
(
!
orderInfo
||
!
orderInfo
.
id
)
throw
new
BizError
(
ERRORENUM
.
订单不存在
);
if
(
orderInfo
.
state
==
ORDERSTATE
.
已支付
)
{
return
{
state
:
WEICHARTPAYSTATE
.
已支付
,
msg
:
"已支付"
};
//已支付
}
const
result
=
await
pay
.
query
({
out_trade_no
:
weChartPR
});
if
(
result
.
status
!=
200
&&
result
.
status
!=
204
)
throw
new
BizError
(
ERRORENUM
.
查看微信支付状态失败
);
if
(
result
.
trade_state
==
'CLOSED'
)
{
await
updateOneData
(
TABLEENUM
.
订单表
,
{
id
},
{
weChartState
:
WEICHARTPAYSTATE
.
未支付
});
return
{
state
:
WEICHARTPAYSTATE
.
未提交
,
msg
:
"订单已关闭"
};
if
(
orderInfo
.
weChartState
==
WEICHARTPAYSTATE
.
未支付
)
{
if
(
!
orderInfo
.
weChartCreatePayMs
)
return
{
state
:
WEICHARTPAYSTATE
.
未提交
,
msg
:
"订单未提交"
};
if
(
(
new
Date
(
orderInfo
.
weChartCreatePayMs
).
valueOf
()
+
(
15
*
60
*
1000
))
>
new
Date
().
valueOf
()
)
{
const
weChartResult
=
await
pay
.
query
({
out_trade_no
:
weChartPR
});
if
(
weChartResult
.
status
!=
200
&&
weChartResult
.
status
!=
204
)
throw
new
BizError
(
ERRORENUM
.
查看微信支付状态失败
);
if
(
weChartResult
.
trade_state
==
'CLOSED'
)
{
await
updateOneData
(
TABLEENUM
.
订单表
,
{
id
},
{
weChartState
:
WEICHARTPAYSTATE
.
未提交
,
weChartCreatePayMs
:
0
});
let
result
=
await
close
(
id
);
return
result
;
}
return
{
state
:
WEICHARTPAYSTATE
.
未支付
,
msg
:
result
.
trade_state_desc
};
return
{
state
:
WEICHARTPAYSTATE
.
未支付
,
msg
:
weChartResult
.
trade_state_desc
};
}
else
{
/**超过15分钟主动关闭订单 */
let
result
=
await
close
(
id
);
return
result
;
}
}
return
{
state
:
WEICHARTPAYSTATE
.
未提交
,
msg
:
"订单未提交"
};
}
...
...
@@ -90,7 +111,7 @@ export async function orderClose({id, weChartPR}) {
await
pay
.
close
(
weChartPR
);
await
updateOneData
(
TABLEENUM
.
订单表
,
{
id
},
{
weChartState
:
WEICHARTPAYSTATE
.
未提交
}
);
await
close
(
id
);
return
successResult
();
}
...
...
@@ -113,6 +134,7 @@ export async function payCallback(body) {
state
:
ORDERSTATE
.
已支付
,
paymentMethod
:
PAYMENTTYPE
.
微信支付
,
payTime
:
new
Date
().
valueOf
(),
weChartState
:
WEICHARTPAYSTATE
.
已支付
};
if
(
!
oldInfo
.
isFirst
)
updateInfo
.
confirmReceipt
=
RECEIPTCONFIRMATION
.
待确认
;
...
...
@@ -128,6 +150,7 @@ export async function payCallback(body) {
gracePeriodEndTime
:
0
,
memberState
:
MEMBERSTATE
.
正常
,
paymentStatus
:
PAYMENTSTATUS
.
已支付
};
if
(
oldInfo
.
isFirst
)
{
updateUserInfo
.
isFirstPay
=
true
;
...
...
@@ -135,14 +158,13 @@ export async function payCallback(body) {
await
updateOneData
(
TABLEENUM
.
用户表
,
{
userId
:
oldInfo
.
userId
},
updateUserInfo
);
}
return
{
code
:
"SUCCESS"
,
message
:
"成功"
}
}
else
{
await
pay
.
close
(
wechartCallbackData
.
out_trade_no
);
await
updateOneData
(
TABLEENUM
.
订单表
,
{
weChartPR
:
wechartCallbackData
.
out_trade_no
},
{
weChartState
:
WEICHARTPAYSTATE
.
未提交
,
weChartCreatePayMs
:
0
});
throw
new
BizError
(
ERRORENUM
.
支付失败
,
wechartCallbackData
.
trade_state_desc
);
}
}
else
{
...
...
src/biz/member/homePage.ts
View file @
79efc42c
...
...
@@ -15,6 +15,7 @@ import { generateSystemId, successResult } from "../../tools/system";
import
{
BizError
}
from
"../../util/bizError"
;
import
{
extractData
}
from
"../../util/piecemeal"
;
import
{
eccEnumValue
}
from
"../../util/verificationEnum"
;
import
{
eccFormParam
}
from
"../../util/verificationParam"
;
/**
...
...
@@ -30,7 +31,7 @@ export async function getMemberData({userId}) {
let
topSelectFiles
=
[
"loginId"
,
"memberType"
,
"userRegisterState"
,
"integral"
,
"joinTime"
,
"lifespanStartTime"
,
"lifespanEndTime"
,
"memberLevel"
];
let
baseSelectFiles
=
[];
let
majorSelectFiles
=
[];
let
otherAttachment
Files
=
[]
;
let
otherAttachment
:
any
=
{}
;
/**判断会员类型,个人会员与单位会员返回不同字段 */
if
(
oldInfo
.
memberType
==
MEMBERTYPE
.
单位会员
)
{
baseSelectFiles
=
[
"userId"
,
"unitName"
,
"uscc"
,
"legalPerson"
,
"legalPersonPhone"
,
"legalPersonMail"
,
"unitMail"
,
"contactPerson"
,
...
...
@@ -40,12 +41,12 @@ export async function getMemberData({userId}) {
"yuanXiaoKeYanFuZeRenDianHua"
,
"jiaoXueFuZeRenXinMing"
,
"jiaoXueFuZeRenDianHua"
];
/**获取单位科研成果数据 */
let
oldKeYanList
=
await
find
(
TABLEENUM
.
单位所获得科研成果表
,
{
userId
},
[
"id"
,
"startTime"
,
"endTime"
,
"describe"
]);
let
otherAttachmentFiles
=
[];
if
(
!
otherAttachment
.
dataList
)
otherAttachment
.
dataList
=
[];
oldKeYanList
.
forEach
(
info
=>
{
otherAttachment
Files
.
push
({
otherAttachment
.
dataList
.
push
({
id
:
info
.
id
,
startTime
:
moment
(
info
.
startTime
).
format
(
"YYYY-MM-DD"
)
,
endTime
:
moment
(
info
.
endTime
).
format
(
"YYYY-MM-DD"
)
,
startTime
:
info
.
startTime
,
endTime
:
info
.
endTime
,
describe
:
info
.
describe
});
})
...
...
@@ -54,14 +55,15 @@ export async function getMemberData({userId}) {
baseSelectFiles
=
[
"userId"
,
"name"
,
"sex"
,
"nation"
,
"birth"
,
"documentType"
,
"documentId"
,
"sheng"
,
"shi"
,
"qu"
,
"phone"
,
"mail"
,
"addres"
,
"photoUrl"
,
"education"
,
"uscc"
,
"unitName"
];
majorSelectFiles
=
[
"unitName"
,
"duties"
,
"workTitle"
,
"profCategory"
,
"studyResume"
,
"workResume"
,
"profAchievement"
,
"otherEMP"
,
"otherPROF"
];
otherAttachmentFiles
=
[
"cardUrl"
,
"academicCERTUrl"
,
"professionalCERTUrl"
,
"auxiliaryMaterial"
];
let
otherAttachmentFiles
=
[
"cardUrl"
,
"academicCERTUrl"
,
"professionalCERTUrl"
,
"auxiliaryMaterial"
];
otherAttachment
=
extractData
(
oldInfo
,
otherAttachmentFiles
);
}
/**返回指定配置字段 */
let
topInfo
:
any
=
extractData
(
oldInfo
,
topSelectFiles
);
let
baseInfo
:
any
=
extractData
(
oldInfo
,
baseSelectFiles
);
let
majorInfo
:
any
=
extractData
(
oldInfo
,
majorSelectFiles
);
let
otherAttachment
:
any
=
extractData
(
oldInfo
,
otherAttachmentFiles
);
/**处理枚举值 */
topInfo
.
integral
=
0
;
...
...
@@ -89,6 +91,15 @@ export async function getMemberData({userId}) {
* @returns
*/
export
async
function
unitMemberUpdate
({
form
,
keyanForm
,
userId
})
{
const
keyanFormItemConfig
=
{
startTime
:
'Number'
,
endTime
:
'Number'
,
describe
:
'String'
};
keyanForm
.
forEach
(
item
=>
{
eccFormParam
(
"单位会员修改"
,
keyanFormItemConfig
,
item
);
});
let
oldInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
userId
});
if
(
!
oldInfo
||
!
oldInfo
.
userId
)
throw
new
BizError
(
ERRORENUM
.
目标数据不存在
);
...
...
@@ -100,16 +111,21 @@ export async function unitMemberUpdate({form, keyanForm, userId}) {
await
updateOneData
(
TABLEENUM
.
用户表
,
{
userId
},
form
);
/**删除对应userId科研成果 */
let
oldKeYanList
=
await
find
(
TABLEENUM
.
单位所获得科研成果表
,
{
userId
});
if
(
!
oldKeYanList
||
!
oldKeYanList
.
id
)
throw
new
BizError
(
ERRORENUM
.
目标数据不存在
);
let
oldKeYanList
=
await
find
(
TABLEENUM
.
单位所获得科研成果表
,
{
userId
});
if
(
oldKeYanList
&&
oldKeYanList
.
length
)
{
await
deleteManyData
(
TABLEENUM
.
单位所获得科研成果表
,
{
userId
});
}
/**添加新的科研信息 */
let
addList
=
[];
for
(
let
i
=
0
;
i
<
keyanForm
.
length
;
i
++
)
{
keyanForm
[
i
].
id
=
generateSystemId
(
TABLEENUM
.
单位所获得科研成果表
,
userId
);
keyanForm
[
i
].
userId
=
userId
;
addList
.
push
(
keyanForm
);
let
{
startTime
,
endTime
,
describe
}
=
keyanForm
[
i
];
addList
.
push
({
id
:
generateSystemId
(
TABLEENUM
.
单位所获得科研成果表
,
userId
),
userId
,
startTime
,
endTime
,
describe
});
}
await
addManyData
(
TABLEENUM
.
单位所获得科研成果表
,
addList
);
...
...
@@ -137,42 +153,38 @@ export async function unitMemberUpdate({form, keyanForm, userId}) {
* 缴费消息提醒
* @param userId 登录的用户id
*/
export
async
function
getXiaoXiZhongXin
({
userId
})
{
let
oldInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
userId
},
[
"userId"
,
"lifespanEndTime"
,
"isGracePeriod"
,
"gracePeriodEndTime"
,
"lifespanStartTime"
])
;
if
(
!
oldInfo
||
!
oldInfo
.
userId
)
throw
new
BizError
(
ERRORENUM
.
目标数据不存在
);
export
async
function
getXiaoXiZhongXin
({
userId
})
{
const
SelectFiles
=
[
"userId"
,
"lifespanEndTime"
,
"isGracePeriod"
,
"gracePeriodEndTime"
,
"lifespanStartTime"
]
;
let
oldInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
userId
,
isAdmin
:
STATE
.
否
},
SelectFiles
);
let
dataInfo
:
any
=
extractData
(
oldInfo
,
[
"lifespanStartTime"
,
"lifespanEndTime"
]);
const
NowMs
=
new
Date
().
valueOf
();
/**判断是否宽限期 */
if
(
dataInfo
.
isGracePeriod
==
STATE
.
否
)
{
/**
* 判断会费到期时间
*/
switch
(
oldInfo
.
lifespanEndTime
)
{
case
oldInfo
.
lifespanEndTime
>
NowMs
+
(
90
*
24
*
3600
*
1000
):
dataInfo
[
"membershipFees"
]
=
"大于90天"
;
break
;
case
oldInfo
.
lifespanEndTime
-
(
90
*
24
*
3600
*
1000
)
<=
NowMs
&&
oldInfo
.
lifespanEndTime
>
NowMs
-
(
24
*
3600
*
1000
):
dataInfo
[
"membershipFees"
]
=
"不足90天"
;
break
;
case
NowMs
<=
oldInfo
.
lifespanEndTime
+
(
30
*
24
*
3600
*
1000
)
&&
NowMs
>
oldInfo
.
lifespanEndTime
+
(
24
*
3600
*
1000
):
dataInfo
[
"membershipFees"
]
=
"过期30天内"
;
break
;
case
NowMs
>
oldInfo
.
lifespanEndTime
+
(
30
*
24
*
3600
*
1000
)
&&
NowMs
<=
oldInfo
.
lifespanEndTime
+
(
90
*
24
*
3600
*
1000
):
dataInfo
[
"membershipFees"
]
=
"过期90天内"
;
break
;
case
NowMs
>
oldInfo
.
lifespanEndTime
+
(
90
*
24
*
3600
*
1000
)
&&
NowMs
<=
oldInfo
.
lifespanEndTime
+
(
365
*
24
*
3600
*
1000
):
dataInfo
[
"membershipFees"
]
=
"过期1年内"
;
break
;
case
NowMs
>
oldInfo
.
lifespanEndTime
+
(
365
*
24
*
3600
*
1000
):
dataInfo
[
"membershipFees"
]
=
"过期1年外"
;
break
;
let
str
=
''
;
if
(
oldInfo
.
isGracePeriod
==
STATE
.
是
&&
oldInfo
.
gracePeriodEndTime
>
NowMs
)
str
=
"宽限期中"
;
else
{
if
(
NowMs
>
oldInfo
.
lifespanEndTime
)
{
str
=
'过期'
;
if
(
NowMs
>
oldInfo
.
lifespanEndTime
+
(
90
*
24
*
3600
*
1000
)){
str
+=
'1年外'
;
}
else
if
(
NowMs
>
oldInfo
.
lifespanEndTime
+
(
90
*
24
*
3600
*
1000
)
)
{
str
+=
'1年内'
;
}
else
if
(
NowMs
>
oldInfo
.
lifespanEndTime
+
(
30
*
24
*
3600
*
1000
))
{
str
+=
'90天内'
;
}
else
{
str
+=
'30天内'
;
}
}
else
{
if
(
oldInfo
.
gracePeriodEndTime
>
NowMs
)
dataInfo
[
"membershipFees"
]
=
"宽限期中"
;
if
(
NowMs
>
oldInfo
.
lifespanEndTime
-
(
90
*
24
*
3600
*
1000
)
)
{
str
=
"不足90天"
;
}
else
{
str
=
"大于90天"
;
}
}
}
dataInfo
.
membershipFees
=
str
;
return
{
dataInfo
};
}
...
...
src/biz/member/member.ts
View file @
79efc42c
...
...
@@ -2,7 +2,7 @@
* 会员管理逻辑
*/
import
{
MEMBERSTATE
,
MEMBERLEVEL
,
DOCUMENTTYPE
,
NATION
,
PROFCATEGORY
,
MEMBERTYPE
,
USERREGISTERSTATE
,
STATE
,
UNITMEMBERTYPE
,
ADMINLV
}
from
"../../config/enum"
;
import
{
MEMBERSTATE
,
MEMBERLEVEL
,
DOCUMENTTYPE
,
NATION
,
PROFCATEGORY
,
MEMBERTYPE
,
USERREGISTERSTATE
,
STATE
,
UNITMEMBERTYPE
,
ADMINLV
,
ADMINTYPE
}
from
"../../config/enum"
;
import
{
ERRORENUM
}
from
"../../config/errorEnum"
;
import
{
TABLEENUM
}
from
"../../data/models/model"
;
import
{
find
,
findCount
,
findOnce
,
findOnceToSort
,
findToPage
,
findToSort
}
from
"../../data/select"
;
...
...
@@ -15,6 +15,7 @@ import { addManyData, addOneData } from "../../data/add";
import
{
deleteManyData
,
deleteOneData
}
from
"../../data/delete"
;
import
moment
=
require
(
"moment"
);
import
{
getCityNameByCode
}
from
"../../config/cityConfig"
;
import
{
eccFormParam
}
from
"../../util/verificationParam"
;
/**
...
...
@@ -104,8 +105,8 @@ export async function unitMemberDetails({id}) {
oldKeYanList
.
forEach
(
info
=>
{
scientificResearch
.
push
({
id
:
info
.
id
,
startTime
:
moment
(
info
.
startTime
).
format
(
"YYYY-MM-DD"
)
,
endTime
:
moment
(
info
.
endTime
).
format
(
"YYYY-MM-DD"
)
,
startTime
:
info
.
startTime
,
endTime
:
info
.
endTime
,
describe
:
info
.
describe
});
})
...
...
@@ -122,6 +123,15 @@ export async function unitMemberDetails({id}) {
* @returns
*/
export
async
function
unitMemberUpdate
({
form
,
keyanForm
,
id
})
{
const
keyanFormItemConfig
=
{
startTime
:
'Number'
,
endTime
:
'Number'
,
describe
:
'String'
};
keyanForm
.
forEach
(
item
=>
{
eccFormParam
(
"单位会员修改"
,
keyanFormItemConfig
,
item
);
});
let
oldInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
userId
:
id
});
if
(
!
oldInfo
||
!
oldInfo
.
userId
)
throw
new
BizError
(
ERRORENUM
.
目标数据不存在
);
...
...
@@ -133,16 +143,21 @@ export async function unitMemberUpdate({form, keyanForm, id}) {
await
updateOneData
(
TABLEENUM
.
用户表
,
{
userId
:
id
},
form
);
/**删除对应userId科研成果 */
let
oldKeYan
Info
=
await
find
(
TABLEENUM
.
单位所获得科研成果表
,
{
userId
:
id
});
if
(
!
oldKeYanInfo
||
!
oldKeYanInfo
.
id
)
throw
new
BizError
(
ERRORENUM
.
目标数据不存在
);
let
oldKeYan
List
=
await
find
(
TABLEENUM
.
单位所获得科研成果表
,
{
userId
:
id
});
if
(
oldKeYanList
&&
oldKeYanList
.
length
)
{
await
deleteManyData
(
TABLEENUM
.
单位所获得科研成果表
,
{
userId
:
id
});
}
/**添加新的科研信息 */
let
addList
=
[];
for
(
let
i
=
0
;
i
<
keyanForm
.
length
;
i
++
)
{
keyanForm
[
i
].
id
=
generateSystemId
(
TABLEENUM
.
单位所获得科研成果表
,
id
);
keyanForm
[
i
].
userId
=
id
;
addList
.
push
(
keyanForm
);
let
{
startTime
,
endTime
,
describe
}
=
keyanForm
[
i
];
addList
.
push
({
id
:
generateSystemId
(
TABLEENUM
.
单位所获得科研成果表
,
id
),
userId
:
id
,
startTime
,
endTime
,
describe
});
}
await
addManyData
(
TABLEENUM
.
单位所获得科研成果表
,
addList
);
...
...
@@ -229,10 +244,10 @@ export async function individualMemberDetails({id}) {
topInfo
.
memberLevel
=
changeEnumValue
(
MEMBERLEVEL
,
topInfo
.
memberLevel
);
let
basicInfo
:
any
=
extractData
(
oldInfo
,
IndividualBasicConfig
);
basicInfo
.
documentType
=
changeEnumValue
(
DOCUMENTTYPE
,
basicInfo
.
documentType
);
basicInfo
.
nation
=
changeEnumValue
(
NATION
,
basicInfo
.
nation
);
//
basicInfo.documentType = changeEnumValue(DOCUMENTTYPE, basicInfo.documentType);
//
basicInfo.nation = changeEnumValue(NATION, basicInfo.nation);
/**获取订单表新社会信用代码和新发票抬头 */
let
orderInfo
=
await
findOnce
(
TABLEENUM
.
订单表
,
{
userId
:
id
});
let
orderInfo
=
await
findOnce
ToSort
(
TABLEENUM
.
订单表
,
{
userId
:
id
},
{
ct
:
-
1
});
if
(
!
orderInfo
||
!
orderInfo
.
userId
)
{
basicInfo
.
newUscc
=
"-"
;
basicInfo
.
newUnitName
=
"-"
;
...
...
@@ -242,7 +257,7 @@ export async function individualMemberDetails({id}) {
}
let
specialityInfo
:
any
=
extractData
(
oldInfo
,
SpecialityConfig
);
basicInfo
.
profCategory
=
changeEnumValue
(
PROFCATEGORY
,
basicInfo
.
profCategory
);
//
basicInfo.profCategory = changeEnumValue(PROFCATEGORY, basicInfo.profCategory);
let
otherAttachment
:
any
=
extractData
(
oldInfo
,
[
"cardUrl"
,
"academicCERTUrl"
,
"professionalCERTUrl"
,
"auxiliaryMaterial"
]);
...
...
@@ -277,11 +292,12 @@ export async function systemBase({userId}) {
});
let
dataInfo
=
{
isAdmin
:
userInfo
.
isAdmin
==
STATE
.
是
,
name
:
userInfo
.
name
,
name
:
userInfo
.
isAdmin
?
changeEnumValue
(
ADMINTYPE
,
userInfo
.
adminType
)
:
userInfo
.
name
,
userId
:
userInfo
.
userId
,
token
:
userInfo
.
token
,
adminLv
,
superAdmin
superAdmin
,
timeMs
:
moment
(
userInfo
.
lastLoginMs
).
format
(
"YYYY-MM-DD HH:mm:SS"
),
}
return
{
dataInfo
}
...
...
src/biz/member/order.ts
View file @
79efc42c
...
...
@@ -256,17 +256,19 @@ export async function confirmReceiptOut({id}) {
* @param param0
*/
export
async
function
billStateList
({
unitName
,
paymentType
,
isPay
,
pageNumber
})
{
eccEnumValue
(
"发票列表"
,
"支付类型"
,
PAYMENTTYPE
,
paymentType
);
eccEnumValue
(
"发票列表"
,
"是否支付"
,
ISPAYENUM
,
isPay
);
let
findParam
:
any
=
{
invoiceStatus
:
INVOICESTATUS
.
未开发票
};
if
(
unitName
)
findParam
.
unitName
=
{
"$regex"
:
unitName
};
if
(
paymentType
)
findParam
.
paymentMethod
=
paymentType
;
if
(
isPay
)
findParam
.
state
=
isPay
if
(
paymentType
)
{
eccEnumValue
(
"发票列表"
,
"支付类型"
,
PAYMENTTYPE
,
paymentType
);
findParam
.
paymentMethod
=
paymentType
;
}
if
(
isPay
)
findParam
.
state
=
isPay
;
let
selectFile
=
[
"id"
,
"unitName"
,
"orderCycleStart"
,
"orderCycleEnd"
,
"money"
,
"paymentMethod"
,
"memberCategory"
,
"state"
,
"paymentNum"
];
let
selectFile
=
[
"id"
,
"unitName"
,
"orderCycleStart"
,
"orderCycleEnd"
,
"money"
,
"paymentMethod"
,
"memberCategory"
,
"state"
,
"paymentNum"
,
"userId"
];
let
dbList
=
await
findToPage
(
TABLEENUM
.
订单表
,
findParam
,
selectFile
,
pageNumber
);
let
dataCount
=
await
findCount
(
TABLEENUM
.
订单表
,
findParam
);
...
...
@@ -401,15 +403,6 @@ export async function transferScreenshot({id}) {
}
/**
* 个人页待订单列表 success
* @param param0
...
...
@@ -420,16 +413,16 @@ export async function orderList({userId, type}) {
if
(
type
==
ORDERSTATE
.
已支付
)
findParam
.
state
=
ORDERSTATE
.
已支付
;
else
if
(
type
==
ORDERSTATE
.
未支付
)
findParam
.
state
=
ORDERSTATE
.
未支付
;
const
SelectFile
=
[
"orderCycleStart"
,
"orderCycleEnd"
,
"money"
,
"state"
,
"id"
,
"advanceInvoice"
,
"invoiceStatus"
,
"unitName"
,
"confirmReceipt"
];
const
SelectFile
=
[
"orderCycleStart"
,
"orderCycleEnd"
,
"money"
,
"state"
,
"id"
,
"advanceInvoice"
,
"invoiceStatus"
,
"unitName"
,
"confirmReceipt"
,
"newUscc"
];
let
dbList
=
await
find
(
TABLEENUM
.
订单表
,
findParam
,
SelectFile
);
/**查询证明函需要字段会员等级 */
let
myOldInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
userId
},
[
"memberLevel"
,
"userId"
]);
let
myOldInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
userId
},
[
"memberLevel"
,
"userId"
,
"uscc"
]);
if
(
!
myOldInfo
||
!
myOldInfo
.
userId
)
throw
new
BizError
(
ERRORENUM
.
目标数据不存在
);
let
memberLevel
=
changeEnumValue
(
MEMBERLEVEL
,
myOldInfo
.
memberLevel
);
let
dataList
=
[];
dbList
.
forEach
(
info
=>
{
let
{
orderCycleStart
,
orderCycleEnd
,
money
,
state
,
id
,
unitName
,
confirmReceipt
}
=
info
;
let
{
orderCycleStart
,
orderCycleEnd
,
money
,
state
,
id
,
unitName
,
confirmReceipt
,
newUscc
}
=
info
;
let
payState
;
if
(
state
==
ORDERSTATE
.
已支付
)
{
if
(
!
confirmReceipt
)
{
/**首次支付 待确认未审核*/
...
...
@@ -454,6 +447,7 @@ export async function orderList({userId, type}) {
cycle
:
`
${
moment
(
orderCycleStart
).
format
(
"YYYY-MM-DD"
)}
至
${
moment
(
orderCycleEnd
).
format
(
"YYYY-MM-DD"
)}
`
,
money
:
money
,
id
,
uscc
:
newUscc
||
myOldInfo
.
uscc
,
invoiceStatus
:
invoiceState
,
invoiceStatusStr
:
changeEnumValue
(
MYORDERLISTSTATE
,
invoiceState
),
unitName
,
...
...
@@ -478,13 +472,12 @@ export async function orderList({userId, type}) {
* @param newUnitName 发票抬头
*/
export
async
function
applicationInvoice
({
id
,
newUscc
,
newUnitName
})
{
let
orderInfo
=
await
find
(
TABLEENUM
.
订单表
,
{
id
},
[
"id"
,
"invoiceStatus"
,
"advanceInvoice"
,
"invoiceAdd"
,
"state"
,
"advanceInvoice"
]);
let
orderInfo
=
await
find
Once
(
TABLEENUM
.
订单表
,
{
id
},
[
"id"
,
"invoiceStatus"
,
"advanceInvoice"
,
"invoiceAdd"
,
"state"
,
"advanceInvoice"
]);
if
(
!
orderInfo
||
!
orderInfo
.
id
)
throw
new
BizError
(
ERRORENUM
.
目标数据不存在
);
if
(
orderInfo
.
invoiceStatus
==
INVOICESTATUS
.
已开发票
)
throw
new
BizError
(
ERRORENUM
.
发票已开具不可重复提交
);
if
(
orderInfo
.
invoiceStatus
==
INVOICESTATUS
.
退回
)
throw
new
BizError
(
ERRORENUM
.
请求已被退回请重新申请
);
let
updateInfo
:
any
=
{
invoiceStatus
:
INVOICESTATUS
.
未开发票
,
newUscc
,
newUnitName
};
if
(
orderInfo
.
state
!=
ORDERSTATE
.
已支付
)
updateInfo
.
advanceInvoice
=
true
;
let
updateInfo
:
any
=
{
invoiceStatus
:
INVOICESTATUS
.
未开发票
,
newUscc
,
newUnitName
,
advanceInvoice
:
true
};
await
updateOneData
(
TABLEENUM
.
订单表
,
{
id
},
updateInfo
);
...
...
@@ -529,8 +522,8 @@ export async function downInvoice({id}) {
* @param id 会员缴费列表返回的id
*/
export
async
function
getInvoiceStatus
({
id
})
{
let
oldInfo
=
await
findOnce
(
TABLEENUM
.
订单表
,
{
id
},
[
"invoiceStatus"
,
"userId"
]);
if
(
!
oldInfo
||
!
oldInfo
.
i
nvoiceAd
d
)
throw
new
BizError
(
ERRORENUM
.
目标数据不存在
);
let
oldInfo
=
await
findOnce
(
TABLEENUM
.
订单表
,
{
id
},
[
"invoiceStatus"
,
"userId"
,
"id"
]);
if
(
!
oldInfo
||
!
oldInfo
.
id
)
throw
new
BizError
(
ERRORENUM
.
目标数据不存在
);
let
dataInfo
=
{
state
:
AUDITINGCLIENT
.
已申请
,
remark
:
""
};
if
(
oldInfo
.
invoiceStatus
==
INVOICESTATUS
.
已开发票
)
dataInfo
.
state
=
AUDITINGCLIENT
.
审核通过
;
...
...
@@ -538,8 +531,8 @@ export async function getInvoiceStatus({id}) {
if
(
oldInfo
.
invoiceStatus
!=
INVOICESTATUS
.
退回
)
dataInfo
.
state
=
AUDITINGCLIENT
.
审核失败
;
/**获取驳回理由 */
let
userOldInfo
=
await
findOnce
(
TABLEENUM
.
审批历史表
,
{
userId
:
oldInfo
.
userId
,
operationBehavior
:
OPERATIONREHAVIOR
.
驳回修改
},
[
"remarks"
]);
dataInfo
.
remark
=
userOldInfo
.
remark
;
let
userOldInfo
=
await
findOnce
ToSort
(
TABLEENUM
.
审批历史表
,
{
userId
:
oldInfo
.
userId
,
operationBehavior
:
OPERATIONREHAVIOR
.
驳回修改
},{
operationTime
:
-
1
},
[
"userId"
,
"remarks"
]);
if
(
userOldInfo
&&
userOldInfo
.
userId
)
dataInfo
.
remark
=
userOldInfo
.
remark
;
return
{
dataInfo
};
}
...
...
src/biz/member/rightsMgmt.ts
View file @
79efc42c
...
...
@@ -32,7 +32,8 @@ export async function adminList({pageNumber}) {
memberState
:
memberStateStr
,
loginId
,
adminType
:
changeEnumValue
(
ADMINTYPE
,
adminType
),
adminLv
:
changeEnumValue
(
ADMINLV
,
adminLv
)
adminLv
:
changeEnumValue
(
ADMINLV
,
adminLv
),
superAdmin
:
loginId
==
"admin"
});
});
...
...
src/biz/member/user.ts
View file @
79efc42c
...
...
@@ -2,7 +2,7 @@
* 用户逻辑
*/
import
{
DOCUMENTTYPE
,
MEMBERLEVEL
,
MEMBERTYPE
,
NATION
,
PROFCATEGORY
,
SEX
,
STATE
,
USERREGISTERSTATE
}
from
"../../config/enum"
;
import
{
ADMINTYPE
,
DOCUMENTTYPE
,
MEMBERLEVEL
,
MEMBERSTATE
,
MEMBERTYPE
,
NATION
,
PROFCATEGORY
,
SEX
,
STATE
,
USERREGISTERSTATE
}
from
"../../config/enum"
;
import
{
ERRORCODEENUM
,
ERRORENUM
}
from
"../../config/errorEnum"
;
import
{
addOneData
}
from
"../../data/add"
;
import
{
TABLEENUM
}
from
"../../data/models/model"
;
...
...
@@ -10,7 +10,7 @@ import { findOnce } from "../../data/select";
import
{
updateOneData
}
from
"../../data/update"
;
import
{
generateToken
,
generateUserId
,
successResult
}
from
"../../tools/system"
;
import
{
BizError
}
from
"../../util/bizError"
;
import
{
eccEnumValue
}
from
"../../util/verificationEnum"
;
import
{
changeEnumValue
,
eccEnumValue
}
from
"../../util/verificationEnum"
;
...
...
@@ -27,18 +27,23 @@ export async function login({loginId, pwd}) {
if
(
userInfo
.
pwd
!=
pwd
)
throw
new
BizError
(
ERRORENUM
.
账号或密码错误
);
let
token
=
""
;
const
Now
=
new
Date
().
valueOf
();
if
(
userInfo
.
isAdmin
==
STATE
.
是
||
(
userInfo
.
userRegisterState
==
USERREGISTERSTATE
.
通过
&&
userInfo
.
isAdmin
==
STATE
.
否
))
{
token
=
generateToken
(
userInfo
.
userId
);
await
updateOneData
(
TABLEENUM
.
用户表
,
{
userId
:
userInfo
.
userId
},
{
token
,
tokenMs
:
new
Date
().
valueOf
()});
await
updateOneData
(
TABLEENUM
.
用户表
,
{
userId
:
userInfo
.
userId
},
{
token
,
tokenMs
:
Now
,
lastLoginMs
:
Now
});
}
if
(
userInfo
.
memberState
>=
MEMBERSTATE
.
冻结
)
{
throw
new
BizError
(
ERRORENUM
.
该账号已被冻结
);
}
let
dataInfo
=
{
isAdmin
:
userInfo
.
isAdmin
==
STATE
.
是
,
name
:
userInfo
.
name
,
name
:
userInfo
.
isAdmin
?
changeEnumValue
(
ADMINTYPE
,
userInfo
.
adminType
)
:
userInfo
.
name
,
userId
:
userInfo
.
userId
,
token
:
token
,
adminLv
:
userInfo
.
adminLv
,
timeMs
:
new
Date
().
valueOf
()
,
timeMs
:
Now
,
isPass
:
userInfo
.
userRegisterState
==
USERREGISTERSTATE
.
通过
,
memberType
:
userInfo
.
memberType
};
...
...
src/biz/officialWebsite.ts
View file @
79efc42c
...
...
@@ -213,7 +213,6 @@ export async function dongTaiZiXun({type, pageNumber}) {
*/
export
async
function
wenZhangXiangQing
({
id
})
{
let
dataBaseInfo
=
await
findOnce
(
TABLEENUM
.
文章管理
,
{
id
,
display
:
STATE
.
是
});
let
dataInfo
:
any
=
extractData
(
dataBaseInfo
,
[
"articleTime"
,
"imgUrl"
,
"title"
,
"desc"
]);
dataInfo
.
articleTime
=
moment
(
dataInfo
.
articleTime
).
format
(
"YYYY-MM-DD"
);
dataInfo
.
source
=
"中国艺术职业教育学会"
;
...
...
src/config/enum.ts
View file @
79efc42c
...
...
@@ -397,8 +397,9 @@ export enum CERTIFICATETYPE {
* 订单状态
*/
export
enum
ORDERSTATE
{
未支付
=
1
,
已支付
已支付
=
1
,
未支付
,
}
...
...
src/config/errorEnum.ts
View file @
79efc42c
...
...
@@ -45,7 +45,8 @@ export enum ERRORENUM {
该订单正在支付
,
微信支付回调错误
,
支付失败
,
地址数据错误
地址数据错误
,
该账号已被冻结
}
export
enum
ERRORCODEENUM
{
...
...
src/data/models/model.ts
View file @
79efc42c
...
...
@@ -341,6 +341,7 @@ const ModelArray = [
lifespanEndTime
:{
type
:
'Number'
,
index
:
true
},
//会员有效期结束时间 时间戳 每次缴费成功更新
token
:{
type
:
'String'
,
default
:
''
},
//token
tokenMs
:{
type
:
'Number'
,
default
:
0
},
//token过期时间
lastLoginMs
:
'Number'
,
//上次登陆时间
session
:
'Number'
,
//届次
paymentStatus
:
'Number'
,
//支付状态 PAYMENTSTATUS
/**管理员字段 */
...
...
@@ -452,6 +453,7 @@ const ModelArray = [
memberCategory
:
'Number'
,
//会员类别 枚举 MEMBERTYPE
weChartPR
:{
type
:
'String'
,
default
:
""
},
//微信订单号 微信支付用
weChartState
:{
type
:
'Number'
,
default
:
WEICHARTPAYSTATE
.
未提交
},
//微信支付状态 WEICHARTPAYSTATE
weChartCreatePayMs
:{
type
:
'Number'
},
//微信创建订单时间
// membershipFeesType:'Number',//会费类别 枚举
invoiceAdd
:
'String'
,
//发票图片地址
isFirst
:{
type
:
'Boolean'
,
default
:
true
},
//首次订单
...
...
src/routers/member/router.ts
View file @
79efc42c
...
...
@@ -295,7 +295,6 @@ export const Config = {
{
/**基本信息 */
unitName
:{
type
:
'String'
,
desc
:
'单位名称'
},
uscc
:{
type
:
'String'
,
desc
:
'单位信用代码'
},
addres
:{
type
:
'String'
,
desc
:
'通信地址'
},
legalPerson
:{
type
:
'String'
,
desc
:
'法人代表'
},
legalPersonPhone
:{
type
:
'String'
,
desc
:
'法人联系电话'
},
...
...
@@ -310,7 +309,7 @@ export const Config = {
uusinessLicenseUrl
:{
type
:
'String'
,
desc
:
'营业执照'
},
/**单位信息 */
unitMemberType
:{
type
:
'Number'
,
desc
:
'单位类型'
},
yuanXiaoBanXueLeiXing
:{
type
:
'
String
'
,
desc
:
'办学类型'
},
yuanXiaoBanXueLeiXing
:{
type
:
'
Number
'
,
desc
:
'办学类型'
},
yuanXiaoZhuGuanBuMen
:{
type
:
'String'
,
desc
:
'主管部门'
},
yuanXiaoFuZeRen
:{
type
:
'String'
,
desc
:
'主要负责人姓名'
},
yuanXiaoFuZeRenZhiWu
:{
type
:
'String'
,
desc
:
'主要负责人职位'
},
...
...
@@ -622,9 +621,6 @@ export const Config = {
pwd
:{
type
:
'String'
,
desc
:
'密码'
},
confirmation
:{
type
:
'String'
,
desc
:
'确认密码'
},
}
},
{
key
:
"userId"
,
type
:
"String"
,
desc
:
"登录用户id"
}
],
bindBiz
:
rightsMgmtBiz
.
changeAdminPwd
...
...
@@ -689,33 +685,31 @@ export const Config = {
/**基本信息 */
unitName
:{
type
:
'String'
,
desc
:
'单位名称'
},
addres
:{
type
:
'String'
,
desc
:
'通信地址'
},
uscc
:{
type
:
'String'
,
desc
:
'单位信用代码'
},
legalPerson
:{
type
:
'String'
,
desc
:
'法人代表'
},
legalPersonPhone
:{
type
:
'String'
,
desc
:
'法人联系电话'
},
legalPersonMail
:{
type
:
'String'
,
desc
:
'法人邮箱'
},
unitMail
:{
type
:
'String'
,
desc
:
'单位电子邮箱'
},
contactPerson
:{
type
:
'String'
,
desc
:
'日常联系人'
},
contactPersonDuties
:{
type
:
'String'
,
desc
:
'日常联系人职务'
},
contactPersonPhone
:{
type
:
'String'
,
desc
:
'日常联系人电话'
},
sheng
:{
type
:
'String'
,
desc
:
'省'
},
shi
:{
type
:
'String'
,
desc
:
'市'
},
qu
:{
type
:
'String'
,
desc
:
'区'
},
uusinessLicenseUrl
:{
type
:
'String'
,
desc
:
'营业执照'
},
/**单位信息 */
unitMemberType
:{
type
:
'Number'
,
desc
:
'单位信息类型'
},
yuanXiaoBanXueLeiXing
:{
type
:
'String'
,
desc
:
'院校办学类型'
},
yuanXiaoZhuGuanBuMen
:{
type
:
'String'
,
desc
:
'院校主管部门'
},
yuanXiaoFuZeRen
:{
type
:
'String'
,
desc
:
'院校主要负责人'
},
yuanXiaoFuZeRenZhiWu
:{
type
:
'String'
,
desc
:
'院校主要负责人职位'
},
yuanXiaoFuZeRenDianHua
:{
type
:
'String'
,
desc
:
'院校主要负责人电话'
},
yuanXiaoBanGongFuZeRen
:{
type
:
'String'
,
desc
:
'院校办公负责人'
},
yuanXiaoBanGongFuZeRenZhiWu
:{
type
:
'String'
,
desc
:
'院校办公负责人职位'
},
yuanXiaoBanGongFuZeRenDianHua
:{
type
:
'String'
,
desc
:
'院校办公负责人电话'
},
yuanXiaoKeYanFuZeRen
:{
type
:
'String'
,
desc
:
'院校科研负责人'
},
yuanXiaoKeYanFuZeRenZhiWu
:{
type
:
'String'
,
desc
:
'院校科研负责人职位'
},
yuanXiaoKeYanFuZeRenDianHua
:{
type
:
'String'
,
desc
:
'院校科研负责人电话'
},
yuanXiaoXueShengZongRenShu
:{
type
:
'String'
,
desc
:
'院校学生总数'
},
yuanXiaoJiaoZhiGongZongRenShu
:{
type
:
'String'
,
desc
:
'院校教职工总人数'
},
yuanXiaoJianZhuMianJi
:{
type
:
'String'
,
desc
:
'院校建筑总面积'
},
yuanXiaoGaoJiZhiCheng
:{
type
:
'String'
,
desc
:
'院校高级职称人数'
},
yuanXiaoKaiSheZhuanYe
:{
type
:
'String'
,
desc
:
'院校专业总数'
},
unitMemberType
:{
type
:
'Number'
,
desc
:
'单位类型'
},
yuanXiaoBanXueLeiXing
:{
type
:
'Number'
,
desc
:
'办学类型'
},
yuanXiaoZhuGuanBuMen
:{
type
:
'String'
,
desc
:
'主管部门'
},
yuanXiaoFuZeRen
:{
type
:
'String'
,
desc
:
'主要负责人姓名'
},
yuanXiaoFuZeRenZhiWu
:{
type
:
'String'
,
desc
:
'主要负责人职位'
},
yuanXiaoFuZeRenDianHua
:{
type
:
'String'
,
desc
:
'主要负责人电话'
},
ZhuYaoFuZeRenYouXiang
:{
type
:
'String'
,
desc
:
'主要负责人邮箱'
},
yuanXiaoBanGongFuZeRen
:{
type
:
'String'
,
desc
:
'办公负责人姓名'
},
yuanXiaoBanGongFuZeRenDianHua
:{
type
:
'String'
,
desc
:
'办公负责人电话'
},
yuanXiaoKeYanFuZeRen
:{
type
:
'String'
,
desc
:
'科研负责人姓名'
},
yuanXiaoKeYanFuZeRenDianHua
:{
type
:
'String'
,
desc
:
'科研负责人电话'
},
jiaoXueFuZeRenXinMing
:{
type
:
'String'
,
desc
:
'教学负责人姓名'
},
jiaoXueFuZeRenDianHua
:{
type
:
'String'
,
desc
:
'教学负责人电话'
},
},
desc
:
"表单"
},
...
...
@@ -727,9 +721,6 @@ export const Config = {
describe
:{
type
:
'String'
,
desc
:
'科研描述'
},
},
desc
:
"单位所获得科研成果表单"
},
{
key
:
"userId"
,
type
:
"String"
,
desc
:
"用户id"
}
],
bindBiz
:
homePageBiz
.
unitMemberUpdate
...
...
@@ -751,11 +742,14 @@ export const Config = {
sheng
:{
type
:
'String'
,
desc
:
'省'
},
shi
:{
type
:
'String'
,
desc
:
'市'
},
qu
:{
type
:
'String'
,
desc
:
'区'
},
phone
:{
type
:
'String'
,
desc
:
'手机号码'
},
mail
:{
type
:
'String'
,
desc
:
'电子邮箱'
},
addres
:{
type
:
'String'
,
desc
:
'通信地址'
},
photoUrl
:{
type
:
'String'
,
desc
:
'蓝底证件照'
},
education
:{
type
:
'Number'
,
desc
:
'学历'
},
/**专业信息 */
unitName
:{
type
:
'String'
,
desc
:
'工作单位'
},
memberLevel
:{
type
:
'Number'
,
desc
:
'会员等级
职务'
},
duties
:{
type
:
'String'
,
desc
:
'
职务'
},
workTitle
:{
type
:
'String'
,
desc
:
'职称'
},
profCategory
:{
type
:
'Number'
,
desc
:
'专业类别'
},
studyResume
:{
type
:
'String'
,
desc
:
'学习简历'
},
...
...
@@ -769,9 +763,6 @@ export const Config = {
professionalCERTUrl
:{
type
:
'String'
,
desc
:
'个人工作证明扫描件'
},
auxiliaryMaterial
:{
type
:
'[String]'
,
desc
:
'论文发表或成绩材料'
},
}
},
{
key
:
"userId"
,
type
:
"String"
,
desc
:
"用户id"
}
],
bindBiz
:
homePageBiz
.
individualMemberUpdate
...
...
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