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
7b195970
Commit
7b195970
authored
Dec 14, 2024
by
lixinming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
no message
parent
4d1c5323
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
119 additions
and
48 deletions
+119
-48
examine.ts
src/biz/member/examine.ts
+8
-11
member.ts
src/biz/member/member.ts
+1
-1
user.ts
src/biz/member/user.ts
+102
-34
errorEnum.ts
src/config/errorEnum.ts
+4
-1
router.ts
src/routers/member/router.ts
+4
-1
No files found.
src/biz/member/examine.ts
View file @
7b195970
...
...
@@ -30,19 +30,9 @@ import { sendPassNotice } from "../sms";
* @param shi 市
* @param pageNumber 当前页
*/
export
async
function
pendingReviewList
({
name
,
memberType
,
documentId
,
phone
,
mail
,
sheng
,
shi
,
pageNumber
})
{
export
async
function
pendingReviewList
({
name
,
memberType
,
documentId
,
phone
,
mail
,
sheng
,
shi
,
pageNumber
,
examineState
})
{
/**查询条件 */
let
selectParam
:
any
=
{
// "$or":[
// {
// userRegisterState:{"$lt":USERREGISTERSTATE.驳回修改},
// registerFlow:{"$gt":REGISTERFLOW.完成第一步}
// },
// {
// userRegisterState:USERREGISTERSTATE.驳回修改,
// registerFlow:REGISTERFLOW.完成第一步
// }
// ],
isAdmin
:
STATE
.
否
};
//审批列表展示状态除通过外的数据
if
(
name
)
{
...
...
@@ -54,6 +44,13 @@ export async function pendingReviewList({name, memberType, documentId, phone, ma
]}
];
}
if
(
examineState
)
{
if
(
examineState
==
1
)
{
selectParam
.
userRegisterState
=
{
"$or"
:[
USERREGISTERSTATE
.
待审核
,
USERREGISTERSTATE
.
重新提交
]}
}
else
{
selectParam
.
userRegisterState
=
USERREGISTERSTATE
.
驳回修改
}
}
let
memberTypeLen
=
Object
.
keys
(
MEMBERTYPEECCENUM
).
filter
(
key
=>
isNaN
(
Number
(
key
))).
length
;
if
(
memberType
.
length
==
0
||
memberType
.
length
==
memberTypeLen
)
{
...
...
src/biz/member/member.ts
View file @
7b195970
...
...
@@ -39,7 +39,7 @@ export async function unitMemberList({unitName, mail, phone, joinStartTime, join
userRegisterState
:
USERREGISTERSTATE
.
通过
,
isBlackUser
:
STATE
.
否
};
if
(
unitName
)
selectParam
.
unitName
=
unitName
;
if
(
unitName
)
selectParam
.
unitName
=
{
"$regex"
:
unitName
}
;
if
(
mail
)
selectParam
.
mail
=
mail
;
if
(
phone
)
selectParam
.
phone
=
phone
;
if
(
joinStartTime
)
{
...
...
src/biz/member/user.ts
View file @
7b195970
...
...
@@ -2,7 +2,7 @@
* 用户逻辑
*/
import
{
ADMINTYPE
,
CODETYPE
,
MEMBERSTATE
,
REGISTERSTART
,
STAT
E
,
USERREGISTERSTATE
}
from
"../../config/enum"
;
import
{
ADMINTYPE
,
CODETYPE
,
MEMBERSTATE
,
MEMBERTYPE
,
REGISTERSTART
,
STATE
,
UNITMEMBERTYP
E
,
USERREGISTERSTATE
}
from
"../../config/enum"
;
import
{
ERRORENUM
}
from
"../../config/errorEnum"
;
import
{
addOneData
}
from
"../../data/add"
;
import
{
TABLEENUM
}
from
"../../data/models/model"
;
...
...
@@ -31,7 +31,8 @@ export async function login({loginId, pwd}) {
if
(
userInfo
.
isInput
&&
!
userInfo
.
inputUserChangePwd
)
{
return
{
isInput
:
userInfo
.
isInput
,
phone
:
userInfo
.
phone
phone
:
userInfo
.
phone
,
userId
:
userInfo
.
userId
}
}
...
...
@@ -81,28 +82,52 @@ export async function logout({userId}) {
* @param param0
* @returns
*/
export
async
function
changePwd
({
phone
,
pwd
,
confirmation
,
code
})
{
export
async
function
changePwd
({
userId
,
phone
,
pwd
,
confirmation
,
code
})
{
if
(
pwd
.
search
(
/^
[
A-Za-z0-9
]{6,18}
$/
)
<
0
)
throw
new
BizError
(
ERRORENUM
.
密码只能由
6
至
18
位字符和数字组成
);
if
(
pwd
!=
confirmation
)
throw
new
BizError
(
ERRORENUM
.
两次密码不一致
);
let
codeInfo
=
await
findOnce
(
TABLEENUM
.
验证码表
,
{
codeNum
:
code
,
phone
,
type
:
CODETYPE
.
修改密码
,
isUse
:
false
});
if
(
!
codeInfo
||
!
codeInfo
.
codeNum
)
{
throw
new
BizError
(
ERRORENUM
.
验证码错误
);
}
let
userInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
phone
},
[
"userId"
,
"isInput"
,
"inputUserChangePwd"
]);
if
(
!
userInfo
||
!
userInfo
.
userId
)
throw
new
BizError
(
ERRORENUM
.
手机号不正确
);
// let pwdStr = generatePwd(userInfo.userId, pwd); todo
let
pwdStr
=
pwd
;
let
updateInfo
:
any
=
{
pwd
:
pwdStr
};
if
(
userInfo
.
isInput
&&
!
userInfo
.
inputUserChangePwd
)
{
updateInfo
.
inputUserChangePwd
=
true
;
if
(
!
userId
)
{
let
userInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
phone
},
[
"userId"
,
"isInput"
,
"inputUserChangePwd"
,
"unitMemberType"
,
"memberType"
]);
if
(
!
userInfo
||
!
userInfo
.
userId
)
throw
new
BizError
(
ERRORENUM
.
手机号不正确
);
if
(
userInfo
.
isInput
&&
!
userInfo
.
inputUserChangePwd
&&
(
userInfo
.
memberType
==
MEMBERTYPE
.
单位会员
&&
userInfo
.
unitMemberType
==
UNITMEMBERTYPE
.
院校
))
{
throw
new
BizError
(
ERRORENUM
.
密码修改错误
);
}
// let pwdStr = generatePwd(userInfo.userId, pwd); todo
let
pwdStr
=
pwd
;
let
updateInfo
:
any
=
{
pwd
:
pwdStr
};
await
updateOneData
(
TABLEENUM
.
用户表
,
{
userId
:
userInfo
.
userId
},
updateInfo
);
await
updateOneData
(
TABLEENUM
.
验证码表
,
{
codeNum
:
code
,
phone
,
type
:
CODETYPE
.
修改密码
,
isUse
:
false
},
{
isUse
:
true
});
}
else
{
//首次登录
let
userInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
userId
},
[
"userId"
,
"isInput"
,
"inputUserChangePwd"
,
"phone"
,
"memberType"
,
"unitMemberType"
]);
if
(
!
userInfo
.
userId
)
{
throw
new
BizError
(
ERRORENUM
.
账号不存在
)
}
let
checkUserInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
phone
},
[
"userId"
]);
if
(
checkUserInfo
&&
checkUserInfo
.
userId
)
throw
new
BizError
(
ERRORENUM
.
该手机号已被注册
);
if
(
!
userInfo
.
isInput
)
{
throw
new
BizError
(
ERRORENUM
.
密码修改错误
);
}
else
if
((
userInfo
.
inputUserChangePwd
==
true
)
&&
(
userInfo
.
memberType
==
MEMBERTYPE
.
单位会员
&&
userInfo
.
unitMemberType
==
UNITMEMBERTYPE
.
院校
))
{
throw
new
BizError
(
ERRORENUM
.
密码修改错误
);
}
else
{
let
pwdStr
=
pwd
;
let
updateInfo
:
any
=
{
pwd
:
pwdStr
};
if
(
userInfo
.
isInput
&&
!
userInfo
.
inputUserChangePwd
)
{
updateInfo
.
phone
=
phone
;
updateInfo
.
inputUserChangePwd
=
true
;
}
await
updateOneData
(
TABLEENUM
.
用户表
,
{
userId
:
userInfo
.
userId
},
updateInfo
);
await
updateOneData
(
TABLEENUM
.
验证码表
,
{
codeNum
:
code
,
phone
,
type
:
CODETYPE
.
修改密码
,
isUse
:
false
},
{
isUse
:
true
});
}
}
await
updateOneData
(
TABLEENUM
.
用户表
,
{
userId
:
userInfo
.
userId
},
updateInfo
);
await
updateOneData
(
TABLEENUM
.
验证码表
,
{
codeNum
:
code
,
phone
,
type
:
CODETYPE
.
修改密码
,
isUse
:
false
},
{
isUse
:
true
});
return
successResult
();
}
...
...
@@ -112,27 +137,70 @@ export async function changePwd({phone, pwd, confirmation, code}) {
* @param phone
* @returns
*/
export
async
function
memberChangePwdSendCode
({
phone
})
{
let
userInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
phone
},
[
"userId"
]);
if
(
!
userInfo
||
!
userInfo
.
userId
)
throw
new
BizError
(
ERRORENUM
.
不存在该手机号的账号
);
const
NowMs
=
new
Date
().
valueOf
();
let
codeSelectParam
=
{
phone
,
isUse
:
false
,
type
:
CODETYPE
.
修改密码
,
sendMs
:{
"$gt"
:
getTodayMs
()}
}
let
lastCodeInfo
=
await
findOnceToSort
(
TABLEENUM
.
验证码表
,
codeSelectParam
,
{
sendMs
:
-
1
});
if
(
lastCodeInfo
&&
lastCodeInfo
.
codeNum
)
{
if
(
(
lastCodeInfo
.
sendMs
+
(
60
*
1000
))
>
NowMs
)
throw
new
BizError
(
ERRORENUM
.
频繁操作请稍后再试
);
/**校验今日同类型验证码次数 */
let
todayNotUseCount
=
await
findCount
(
TABLEENUM
.
验证码表
,
codeSelectParam
);
if
(
todayNotUseCount
>=
4
)
throw
new
BizError
(
ERRORENUM
.
发送验证码次数超限制
,
`
${
phone
}
注册验证码超过限制3`
);
}
export
async
function
memberChangePwdSendCode
({
userId
,
phone
})
{
if
(
!
userId
)
{
let
userInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
phone
},
[
"userId"
]);
if
(
!
userInfo
||
!
userInfo
.
userId
)
throw
new
BizError
(
ERRORENUM
.
不存在该手机号的账号
);
const
NowMs
=
new
Date
().
valueOf
();
let
codeSelectParam
=
{
phone
,
isUse
:
false
,
type
:
CODETYPE
.
修改密码
,
sendMs
:{
"$gt"
:
getTodayMs
()}
}
let
lastCodeInfo
=
await
findOnceToSort
(
TABLEENUM
.
验证码表
,
codeSelectParam
,
{
sendMs
:
-
1
});
if
(
lastCodeInfo
&&
lastCodeInfo
.
codeNum
)
{
if
(
(
lastCodeInfo
.
sendMs
+
(
60
*
1000
))
>
NowMs
)
throw
new
BizError
(
ERRORENUM
.
频繁操作请稍后再试
);
/**校验今日同类型验证码次数 */
let
todayNotUseCount
=
await
findCount
(
TABLEENUM
.
验证码表
,
codeSelectParam
);
if
(
todayNotUseCount
>=
4
)
throw
new
BizError
(
ERRORENUM
.
发送验证码次数超限制
,
`
${
phone
}
注册验证码超过限制3`
);
}
const
Code
=
generateSMSCode
();
//生成短信验证码
const
Code
=
generateSMSCode
();
//生成短信验证码
/**发送短信模块 */
await
sendALSMS
(
Code
,
phone
);
let
addInfo
=
{
codeNum
:
Code
,
phone
,
sendMs
:
NowMs
,
type
:
CODETYPE
.
修改密码
,
isUse
:
false
};
await
addOneData
(
TABLEENUM
.
验证码表
,
addInfo
);
/**发送短信模块 */
await
sendALSMS
(
Code
,
phone
);
let
addInfo
=
{
codeNum
:
Code
,
phone
,
sendMs
:
NowMs
,
type
:
CODETYPE
.
修改密码
,
isUse
:
false
};
await
addOneData
(
TABLEENUM
.
验证码表
,
addInfo
);
return
{
code
:
""
};
return
{
code
:
""
};
}
let
userInfo
=
await
findOnce
(
TABLEENUM
.
用户表
,
{
userId
},
[
"userId"
,
"isInput"
,
"inputUserChangePwd"
,
"phone"
,
"memberType"
,
"unitMemberType"
]);
if
(
!
userInfo
.
userId
)
{
throw
new
BizError
(
ERRORENUM
.
账号不存在
)
}
if
(
userInfo
.
isInput
&&
userInfo
.
inputUserChangePwd
==
false
&&
userInfo
.
memberType
==
MEMBERTYPE
.
单位会员
&&
userInfo
.
unitMemberType
==
UNITMEMBERTYPE
.
院校
)
{
//首次修改密码
const
NowMs
=
new
Date
().
valueOf
();
let
codeSelectParam
=
{
phone
,
isUse
:
false
,
type
:
CODETYPE
.
修改密码
,
sendMs
:{
"$gt"
:
getTodayMs
()}
};
let
lastCodeInfo
=
await
findOnceToSort
(
TABLEENUM
.
验证码表
,
codeSelectParam
,
{
sendMs
:
-
1
});
if
(
lastCodeInfo
&&
lastCodeInfo
.
codeNum
)
{
if
(
(
lastCodeInfo
.
sendMs
+
(
60
*
1000
))
>
NowMs
)
throw
new
BizError
(
ERRORENUM
.
频繁操作请稍后再试
);
/**校验今日同类型验证码次数 */
let
todayNotUseCount
=
await
findCount
(
TABLEENUM
.
验证码表
,
codeSelectParam
);
if
(
todayNotUseCount
>=
4
)
throw
new
BizError
(
ERRORENUM
.
发送验证码次数超限制
,
`
${
phone
}
注册验证码超过限制3`
);
}
const
Code
=
generateSMSCode
();
//生成短信验证码
/**发送短信模块 */
await
sendALSMS
(
Code
,
phone
);
let
addInfo
=
{
codeNum
:
Code
,
phone
,
sendMs
:
NowMs
,
type
:
CODETYPE
.
修改密码
,
isUse
:
false
};
await
addOneData
(
TABLEENUM
.
验证码表
,
addInfo
);
return
{
code
:
""
};
}
else
{
//非导入用户
if
(
phone
!=
userInfo
.
phone
)
throw
new
BizError
(
ERRORENUM
.
与预览手机号码不一致
);
const
NowMs
=
new
Date
().
valueOf
();
let
codeSelectParam
=
{
phone
,
isUse
:
false
,
type
:
CODETYPE
.
修改密码
,
sendMs
:{
"$gt"
:
getTodayMs
()}
};
let
lastCodeInfo
=
await
findOnceToSort
(
TABLEENUM
.
验证码表
,
codeSelectParam
,
{
sendMs
:
-
1
});
if
(
lastCodeInfo
&&
lastCodeInfo
.
codeNum
)
{
if
(
(
lastCodeInfo
.
sendMs
+
(
60
*
1000
))
>
NowMs
)
throw
new
BizError
(
ERRORENUM
.
频繁操作请稍后再试
);
/**校验今日同类型验证码次数 */
let
todayNotUseCount
=
await
findCount
(
TABLEENUM
.
验证码表
,
codeSelectParam
);
if
(
todayNotUseCount
>=
4
)
throw
new
BizError
(
ERRORENUM
.
发送验证码次数超限制
,
`
${
phone
}
注册验证码超过限制3`
);
}
const
Code
=
generateSMSCode
();
//生成短信验证码
/**发送短信模块 */
await
sendALSMS
(
Code
,
phone
);
let
addInfo
=
{
codeNum
:
Code
,
phone
,
sendMs
:
NowMs
,
type
:
CODETYPE
.
修改密码
,
isUse
:
false
};
await
addOneData
(
TABLEENUM
.
验证码表
,
addInfo
);
return
{
code
:
""
};
}
}
src/config/errorEnum.ts
View file @
7b195970
...
...
@@ -70,7 +70,10 @@ export enum ERRORENUM {
权限错误
,
注册已暂时关闭
,
不可以提前下载发票
,
请先提供发票信息
请先提供发票信息
,
与预览手机号码不一致
,
账号不存在
,
密码修改错误
}
export
enum
ERRORCODEENUM
{
...
...
src/routers/member/router.ts
View file @
7b195970
...
...
@@ -343,6 +343,7 @@ export const Config = {
subUrl
:
'/changepwd'
,
notMiddleware
:
true
,
param
:[
{
key
:
"userId"
,
type
:
"String"
,
desc
:
"userId"
,
notMustHave
:
true
},
{
key
:
"phone"
,
type
:
"String"
,
desc
:
"绑定手机号"
},
{
key
:
"pwd"
,
type
:
"String"
,
desc
:
"密码"
},
{
key
:
"confirmation"
,
type
:
"String"
,
desc
:
"二次确认密码"
},
...
...
@@ -354,6 +355,7 @@ export const Config = {
subUrl
:
'/getchangepwdcode'
,
notMiddleware
:
true
,
param
:[
{
key
:
"userId"
,
type
:
"String"
,
desc
:
"userId"
,
notMustHave
:
true
},
{
key
:
"phone"
,
type
:
"String"
,
desc
:
"绑定手机号"
}
],
bindBiz
:
userBiz
.
memberChangePwdSendCode
...
...
@@ -554,7 +556,8 @@ export const Config = {
{
key
:
"mail"
,
type
:
"String"
,
desc
:
"邮箱"
,
isNull
:
true
},
{
key
:
"sheng"
,
type
:
"String"
,
desc
:
"省"
,
isNull
:
true
},
{
key
:
"shi"
,
type
:
"String"
,
desc
:
"市"
,
isNull
:
true
},
{
key
:
"pageNumber"
,
type
:
"Number"
,
desc
:
"当前页"
}
{
key
:
"pageNumber"
,
type
:
"Number"
,
desc
:
"当前页"
},
{
key
:
"examineState"
,
type
:
"Number"
,
desc
:
"审核状态"
,
isNull
:
true
},
],
bindBiz
:
examineBiz
.
pendingReviewList
},
...
...
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