Commit 681962af by lixinming

no message

parent 382893c2
...@@ -135,29 +135,6 @@ export async function delResearch({id}) { ...@@ -135,29 +135,6 @@ export async function delResearch({id}) {
} }
/**
* 会员注册【短信验证码】 success
* @param userId
* @param phone
* @returns
*/
export async function memberRegisterSendCode({phone}) {
const NowMs = new Date().valueOf();
let codeSelectParam = { phone, isUse:false, type:CODETYPE.用户注册, sendMs:{"$gt":sysTools.getTodayMs()} }
let lastCodeInfo = await findOnceToSort(TABLEENUM.验证码表, codeSelectParam, {sendMs:-1});
if (lastCodeInfo.code) {
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 = sysTools.generateSMSCode();//生成短信验证码
let addInfo = {code:Code, phone, sendMs:NowMs, type:CODETYPE.用户注册, isUse:false};
await addOneData(TABLEENUM.验证码表, addInfo);
return {code:Code};
}
/** /**
...@@ -239,234 +216,6 @@ export async function individualMemberDetails({userId}) { ...@@ -239,234 +216,6 @@ export async function individualMemberDetails({userId}) {
} }
/**
* 会员注册【个人会员】【流程一】success
* @param form
*/
export async function memberRegister1({form}) {
let {loginId, mail, pwd, confirmation, phone, codeNum} = form;
const NowMs = new Date().valueOf();
/**校验密码 */
if (pwd.search(/^[A-Za-z0-9]{6,18}$/) < 0) throw new BizError(ERRORENUM.密码只能由618位字符和数字组成);
if (pwd != confirmation) throw new BizError(ERRORENUM.两次密码不一致);
/**校验去重 */
let oldData = await findOnce(TABLEENUM.用户表, {"$or":[{loginId:loginId}, {phone:phone}, {mail:mail}] });
if (oldData && oldData.userId) {
if (oldData.loginId == loginId) throw new BizError(ERRORENUM.用户名重复, loginId );
if (oldData.phone == phone) throw new BizError(ERRORENUM.联系人手机号重复, phone );
if (oldData.mail == mail) throw new BizError(ERRORENUM.邮箱重复, loginId );
}
/**比对验证码 */
let codeInfo = await findOnceToSort(TABLEENUM.验证码表, {phone, isUse:false, type:CODETYPE.用户注册, sendMs:{"$gt":sysTools.getTodayMs() }}, {sendMs:-1});
if (!codeInfo) throw new BizError(ERRORENUM.code无效, `${phone}在注册时,code表中不存在该手机号的验证码`);
if (codeInfo != codeNum) throw new BizError(ERRORENUM.验证码错误, `${phone}不存在${codeNum}`);
if (( codeInfo.sendMs + (30 * 60 *1000) ) < NowMs ) throw new BizError(ERRORENUM.验证码过期);
/**初始化账号信息 */
let userId = sysTools.generateUserId();//系统生成唯一id
let addInfo = {
userId,
memberType:MEMBERTYPE.个人会员,
isAdmin:STATE.,
registerFlow:REGISTERFLOW.完成第一步,//会员注册流程状态
askForTime:NowMs,//申请时间
loginId, mail, pwd, phone,
};
await addOneData(TABLEENUM.用户表, addInfo);
await updateOneData(TABLEENUM.验证码表, {phone, code:codeNum, isUse:false }, {isUse:true});
return {userId}
}
/**
* 会员注册【个人会员】【流程2】success
* @param form
* @param userId
* @returns
*/
export async function memberRegister2({form, userId}) {
let oldInfo = await findOnce(TABLEENUM.用户表, {userId});
if (!oldInfo || !oldInfo.userId) throw new BizError(ERRORENUM.目标数据不存在);
const NowMs = new Date().valueOf();
/**校验枚举 */
const EccFuncName = '注册个人会员流程2';
eccEnumValue(EccFuncName, '性别', SEX, form.sex);
eccEnumValue(EccFuncName, '证件类型', DOCUMENTTYPE, form.documentType);
eccEnumValue(EccFuncName, '民族', NATION, form.nation);
eccEnumValue(EccFuncName, '专业类别', PROFCATEGORY, form.profCategory);
eccEnumValue(EccFuncName, '会员等级职务', MEMBERLEVEL, form.memberLevel);
form.registerFlow = REGISTERFLOW.完成第二步;
await updateOneData(TABLEENUM.用户表, {userId}, form);
/**用户提交注册申请,等待审核 */
let approvalHistoryInfo = await find(TABLEENUM.审批历史表, {userId});
let operationBehavior;
/**判断是否第一次提交审核 */
if(approvalHistoryInfo.length>1) operationBehavior = OPERATIONREHAVIOR.重新提交;
else operationBehavior = OPERATIONREHAVIOR.用户提交;
/**提交审批历史信息 */
let addApprovalHistory = {
id:generateSystemId(TABLEENUM.审批历史表, userId),
userId,
operationTime:NowMs,
operationBehavior:operationBehavior,
remarks:""
};
await addManyData(TABLEENUM.审批历史表, addApprovalHistory);
return successResult();
}
/**
* 会员注册【单位会员】【流程一】success
* @param form
*/
export async function unitMemberRegister1({form}) {
let {loginId, mail, pwd, confirmation, phone, codeNum} = form;
const NowMs = new Date().valueOf();
/**校验密码 */
if (pwd.search(/^[A-Za-z0-9]{6,18}$/) < 0) throw new BizError(ERRORENUM.密码只能由618位字符和数字组成);
if (pwd != confirmation) throw new BizError(ERRORENUM.两次密码不一致);
/**校验去重 */
let oldData = await findOnce(TABLEENUM.用户表, {"$or":[{loginId:loginId}, {phone:phone}, {mail:mail}] });
if (oldData && oldData.userId) {
if (oldData.loginId == loginId) throw new BizError(ERRORENUM.用户名重复, loginId );
if (oldData.phone == phone) throw new BizError(ERRORENUM.联系人手机号重复, phone );
if (oldData.mail == mail) throw new BizError(ERRORENUM.邮箱重复, loginId );
}
/**比对验证码 */
let codeInfo = await findOnceToSort(TABLEENUM.验证码表, {phone, isUse:false, type:CODETYPE.用户注册, sendMs:{"$gt":sysTools.getTodayMs() }}, {sendMs:-1});
if (!codeInfo) throw new BizError(ERRORENUM.code无效, `${phone}在注册时,code表中不存在该手机号的验证码`);
if (codeInfo != codeNum) throw new BizError(ERRORENUM.验证码错误, `${phone}不存在${codeNum}`);
if (( codeInfo.sendMs + (30 * 60 *1000) ) < NowMs ) throw new BizError(ERRORENUM.验证码过期);
/**初始化账号信息 */
let userId = sysTools.generateUserId();
let addInfo = {
userId,
memberType:MEMBERTYPE.单位会员,
isAdmin:STATE., //是否管理员
registerFlow:REGISTERFLOW.完成第一步, //会员注册流程状态
askForTime:NowMs, //申请时间
loginId,
mail,
pwd,
phone
};
await addOneData(TABLEENUM.用户表, addInfo);
/**修改验证码状态为已使用 */
await updateOneData(TABLEENUM.验证码表, {phone, code:codeNum, isUse:false }, {isUse:true});
return {userId};
}
/**
* 单位入会流程2
* @param form 表单
* @param keyanForm 科研表单
* @param userId
* @returns
*/
export async function unitMemberRegister2({form, keyanForm, userId}) {
let oldInfo = await findOnce(TABLEENUM.用户表, {userId});
if (!oldInfo || !oldInfo.userId) throw new BizError(ERRORENUM.目标数据不存在);
/**校验枚举 */
const EccFuncName = '注册单位会员流程2';
eccEnumValue(EccFuncName, '专业类别', PROFCATEGORY, form.profCategory);
eccEnumValue(EccFuncName, '院校办学类型', BANXUELEIXING, form.yuanXiaoBanXueLeiXing);
eccEnumValue(EccFuncName, '单位信息类型', UNITINFOTYPE, form.unitInfoType);
form.registerFlow = REGISTERFLOW.完成第二步;
await updateOneData(TABLEENUM.用户表, {userId}, form);
/**注册提交单位科研成果信息 */
let addList = [];
for (let i = 0; i < keyanForm.length; i++) {
keyanForm[i].id = generateSystemId(TABLEENUM.单位所获得科研成果表, userId);
keyanForm[i].userId = userId;
addList.push(keyanForm[i]);
}
await addManyData(TABLEENUM.单位所获得科研成果表, addList);
return successResult();
}
/**
* 会员注册【单位会员】【流程3】success
* @param application 入会申请表
* @param userId
*/
export async function unitMemberRegister3({application, userId}) {
let oldInfo = await findOnce(TABLEENUM.用户表, {userId});
if (!oldInfo || !oldInfo.userId) throw new BizError(ERRORENUM.目标数据不存在);
const NowMs = new Date().valueOf();
if (oldInfo.memberType != MEMBERTYPE.单位会员) throw new BizError(ERRORENUM.流程3不支持会员身份非单位会员);
await updateOneData(TABLEENUM.用户表, {userId}, {application, registerFlow:REGISTERFLOW.完成第三步});
/**用户提交注册申请,等待审核 */
let approvalHistoryInfo = await find(TABLEENUM.审批历史表, {userId});
let operationBehavior;
/**判断是否第一次提交审核 */
if(approvalHistoryInfo.length>1) operationBehavior = OPERATIONREHAVIOR.重新提交;
else operationBehavior = OPERATIONREHAVIOR.用户提交;
/**提交审批历史信息 */
let addApprovalHistory = {
id:generateSystemId(TABLEENUM.审批历史表, userId),
userId,
operationTime:NowMs,
operationBehavior:operationBehavior,
remarks:""
};
await addManyData(TABLEENUM.审批历史表, addApprovalHistory);
return successResult();
}
/**
* 下载会员注册表 todo
*/
export async function downloadApplication() {
}
/**
* 获取当前会员注册流程
* registerFlow:注册流程状态 REGISTERFLOW 会员注册流程步骤
* userRegisterState:用户注册状态 USERREGISTERSTATE 会员注册是否已审批通过
* 前端通过该方法获取注册流程状态,流程1通过返回状态【完成第一步】,流程2通过返回状态【完成第二步】,流程3通过返回状态【完成第三步】
*/
export async function registerFlowType({userId}) {
let oldInfo = await findOnce(TABLEENUM.用户表, {userId});
if (!oldInfo || !oldInfo.userId) throw new BizError(ERRORENUM.目标数据不存在);
if (!oldInfo.registerFlow) {
await updateOneData(TABLEENUM.用户表, {userId}, {registerFlow:REGISTERFLOW.未注册});
}
let dataInfo = await findOnce(TABLEENUM.用户表, {userId});
let dataList:any = extractData(dataInfo, ["userId", "registerFlow", "userRegisterState"]);
return dataList;
}
......
...@@ -30,7 +30,9 @@ export enum ERRORENUM { ...@@ -30,7 +30,9 @@ export enum ERRORENUM {
微信支付无法被退回, 微信支付无法被退回,
订单状态无法开具发票, 订单状态无法开具发票,
微信支付无法退回发票请求, 微信支付无法退回发票请求,
流程3不支持会员身份非单位会员 流程3不支持会员身份非单位会员,
数据状态错误,
用户已注册成功
} }
export enum ERRORCODEENUM { export enum ERRORCODEENUM {
......
...@@ -476,11 +476,10 @@ const ModelArray = [ ...@@ -476,11 +476,10 @@ const ModelArray = [
tableName:TABLEENUM.审批历史表, tableName:TABLEENUM.审批历史表,
source:TABLESOURCEENUM.mongo, source:TABLESOURCEENUM.mongo,
schema:{ schema:{
id:{ type:'String', index:true }, userId:{type:'String', index:true},//用户id 外键
userId:'String',//用户id 外键 operationTime:{ type:'Number' },//操作时间
operationTime:{ type:'Number', index:true },//操作时间 operationBehavior:{ type:'Number'},//操作行为 枚举
operationBehavior:{ type:'Number', index:true },//操作行为 枚举 remarks:{ type:'String' },//备注
remarks:{ type:'String', index:true },//备注
} }
}, },
]; ];
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment