Commit 7d11d65a by lixinming

no message

parent 8fdc68d0
/** /**
* 会员管理 * 会员管理 【权限管理】
*/ */
import { INDIVIDUALMEMBERTYPE, MEMBERLEVEL, MEMBERSTATE, MEMBERTYPE, UNITMEMBERTYPE } from "../../config/enum"; import { INDIVIDUALMEMBERTYPE, MEMBERLEVEL, MEMBERSTATE, MEMBERTYPE, UNITMEMBERTYPE } from "../../config/enum";
......
...@@ -13,72 +13,6 @@ import { BizError } from "../../util/bizError"; ...@@ -13,72 +13,6 @@ import { BizError } from "../../util/bizError";
import { eccEnumValue } from "../../util/verificationEnum"; import { eccEnumValue } from "../../util/verificationEnum";
/**
* 注册个人会员
* @param param0
*/
export async function signInOfEntity({form}) {
/**校验枚举 */
const EccFuncName = '注册个人会员';
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);
let oldData = await findOnce(TABLEENUM.用户表, {"$or":[{loginId:form.loginId}, {phone:form.phone}, {mail:form.mail}] });
if (oldData && oldData.userId) {
if (oldData.loginId == form.loginId) throw new BizError(ERRORENUM.用户名重复, form.loginId );
if (oldData.phone == form.phone) throw new BizError(ERRORENUM.联系人手机号重复, form.phone );
if (oldData.mail == form.mail) throw new BizError(ERRORENUM.邮箱重复, form.loginId );
}
/**校验密码 */
if (form.pwd.search(/^[A-Za-z0-9]{6,18}$/) < 0) throw new BizError(ERRORENUM.密码只能由618位字符和数字组成);
if (form.pwd != form.confirmation) throw new BizError(ERRORENUM.两次密码不一致);
delete form.confirmation;
form.userId = generateUserId();
form.memberType = MEMBERTYPE.个人会员;
form.isAdmin = 0;
await addOneData(TABLEENUM.用户表, form);
return successResult();
}
/**
* 单位会员
* @param param0
*/
export async function singInOfUnit({form}) {
/**校验枚举 */
const EccFuncName = '注册单位会员';
eccEnumValue(EccFuncName, '单位信息类型', UNITINFOTYPE, form.unitInfoType);
let oldData = await findOnce(TABLEENUM.用户表, {"$or":[{loginId:form.loginId}, {phone:form.phone}, {mail:form.mail}] });
if (oldData && oldData.userId) {
if (oldData.loginId == form.loginId) throw new BizError(ERRORENUM.用户名重复, form.loginId );
if (oldData.phone == form.phone) throw new BizError(ERRORENUM.联系人手机号重复, form.phone );
if (oldData.mail == form.mail) throw new BizError(ERRORENUM.邮箱重复, form.loginId );
}
/**校验密码 */
if (form.pwd.search(/^[A-Za-z0-9]{6,18}$/) < 0) throw new BizError(ERRORENUM.密码只能由618位字符和数字组成);
if (form.pwd != form.confirmation) throw new BizError(ERRORENUM.两次密码不一致);
delete form.confirmation;
form.userId = generateUserId();
form.memberType = MEMBERTYPE.单位会员;
form.isAdmin = 0;
await addOneData(TABLEENUM.用户表, form);
return successResult();
}
/** /**
* 登陆 * 登陆
......
...@@ -9,86 +9,160 @@ export const FirstRouter = '/manage/member'; ...@@ -9,86 +9,160 @@ export const FirstRouter = '/manage/member';
export const Config = { export const Config = {
"用户注册":[ "用户注册":[
{ {
apiName:"个人会员注册", apiName:"个人入会流程1",
subUrl:'/signin/entity', subUrl:'/memberdb/memberregister1',
param:[ param:[
{key:"form", type:"Object", sub: {
key:"form", type:"Object", sub:
{ {
loginId:{ type:'String', desc:"用户名"}, loginId:{type:'String', desc:'用户名'},
pwd:{ type:'String', desc:"密码"}, mail:{type:'String', desc:'邮箱'},
confirmation:{type:'String', desc:"确认密码"}, pwd:{type:'String', desc:'密码'},
phone:{type:'String', desc:"电话"}, confirmation:{type:'String', desc:'确认密码'},
mail:{type:'String', desc:"邮件"}, phone:{type:'String', desc:'联系人手机号'},
name:{type:'String', desc:"真实姓名"}, codeNum:{type:'String', desc:'验证码'},
sex:{type:'Number', desc:"性别"}, }
documentType:{type:'Number', desc:"证件类型"},
documentId:{type:'String', desc:"证件id"},
birth:{type:'Number', desc:"出生年月 时间戳"},
nation:{type:'Number', desc:"民族"},
sheng:{type:'String', desc:"省"},
shi:{type:'String', desc:"市"},
qu:{type:'String', desc:"区"},
addres:{type:'String', desc:"通信地址"},
photoUrl:{type:'String', desc:"证件照图片地址"},
workUnit:{type:'String', desc:"工作单位"},
memberLevel:{type:'String', desc:"职务"},
workTitle:{type:'String', desc:"职称"},
profCategory:{type:'Number', desc:"专业类别"},
studyResume:{type:'String', desc:"学习简历"},
workResume:{type:'String', desc:"工作简历"},
profAchievement:{type:'String', desc:"专业成果"},
otherEMP:{type:'String', desc:"其他任职情况"},
otherPROF:{type:'String', desc:"其他专业情况"},
cardUrl:{type:'[String]', desc:"身份证正反面图片地址"},
academicCERTUrl:{type:'String', desc:"学历证明地址"},
professionalCERTUrl:{type:'String', desc:"工作证明"},
auxiliaryMaterial:{type:'[String]', desc:"其他辅助材料上传地址"},
},
desc:"表单"
} }
], ],
bindBiz:userBiz.signInOfEntity bindBiz:memberBiz.memberRegister1
}, },
{ {
apiName:"单位会员注册", apiName:"个人入会流程2",
subUrl:'/signin/unit', subUrl:'/memberdb/memberregister2',
param:[ param:[
{key:"form", type:"Object", sub: {
key:"form", type:"Object", sub:
{ {
loginId:{ type:'String', desc:"用户名"}, name:{type:'String', desc:'真实姓名', notMustHave:false},
pwd:{ type:'String', desc:"密码"}, sex:{type:'Number', desc:'性别', notMustHave:false},
confirmation:{type:'String', desc:"确认密码"}, documentType:{type:'Number', desc:'证件类型', notMustHave:false},
phone:{type:'String', desc:"电话"}, documentId:{type:'String', desc:'证件号码', notMustHave:false},
mail:{type:'String', desc:"邮件"}, birth:{type:'Number', desc:'出生年月', notMustHave:false},
unitName:{type:'String', desc:"单位名称"}, nation:{type:'Number', desc:'民族', notMustHave:false},
uscc:{type:'String', desc:"统一信用代码"}, sheng:{type:'String', desc:'省', notMustHave:false},
legalPerson:{type:'String', desc:"法人"}, shi:{type:'String', desc:'市', notMustHave:false},
legalPersonPhone:{type:'String', desc:"法人代表联系电话"}, qu:{type:'String', desc:'区', notMustHave:false},
contactPerson:{type:'String', desc:"日常联系人"}, addres:{type:'String', desc:'通信地址', notMustHave:false},
contactPersonDuties:{type:'String', desc:"日常联系人职务"}, education:{type:'Number', desc:'学历', notMustHave:false},
uusinessLicenseUrl:{type:'String', desc:"营业执照"}, photoUrl:{type:'String', desc:'蓝底证件照', notMustHave:false},
unitInfoType:{type:'Number', desc:"单位信息类型 公用接口中获取"}, workUnit:{type:'String', desc:'工作单位', notMustHave:false},
yuanXiaoBanXueLeiXing:{type:'String', desc:"院校办学类型"}, memberLevel:{type:'Number', desc:'会员等级职务', notMustHave:false},
yuanXiaoZhuGuanBuMen:{type:'String', desc:"院校主管部门"}, workTitle:{type:'String', desc:'职称', notMustHave:false},
yuanXiaoFuZeRen:{type:'String', desc:"院校主要负责人"}, profCategory:{type:'Number', desc:'专业类别', notMustHave:false},
yuanXiaoFuZeRenZhiWu:{type:'String', desc:"院校主要负责人职务"}, studyResume:{type:'String', desc:'学习简历', notMustHave:false},
yuanXiaoFuZeRenDianHua:{type:'String', desc:"院校主要负责人电话"}, workResume:{type:'String', desc:'工作简历', notMustHave:false},
yuanXiaoBanGongFuZeRen:{type:'String', desc:"院校办公负责人"}, profAchievement:{type:'String', desc:'专业成果', notMustHave:false},
yuanXiaoBanGongFuZeRenZhiWu:{type:'String', desc:"院校办公负责人职务"}, otherEMP:{type:'String', desc:'在其他社会组织任职情况', notMustHave:false},
yuanXiaoBanGongFuZeRenDianHua:{type:'String', desc:"院校办公负责人电话"}, otherPROF:{type:'String', desc:'其他与本学会专业有关的情况', notMustHave:false},
yuanXiaoKeYanFuZeRen:{type:'String', desc:"院校办公负责人"}, cardUrl:{type:'[String]', desc:'个人身份证扫描件', notMustHave:false},
yuanXiaoKeYanFuZeRenZhiWu:{type:'String', desc:"院校办公负责人职务"}, academicCERTUrl:{type:'String', desc:'个人学历证明扫描件', notMustHave:false},
yuanXiaoKeYanFuZeRenDianHua:{type:'String', desc:"院校办公负责人电话"}, professionalCERTUrl:{type:'String', desc:'个人工作证明扫描件', notMustHave:false},
yuanXiaoXueShengZongRenShu:{type:'String', desc:"学生总人数"}, auxiliaryMaterial:{type:'[String]', desc:'论文发表等证明工作成果或成绩的材料', notMustHave:false},
yuanXiaoJiaoZhiGongZongRenShu:{type:'String', desc:"教职工总人数"}, }
yuanXiaoJianZhuMianJi:{type:'String', desc:"院校建筑面积"}, },
yuanXiaoGaoJiZhiCheng:{type:'String', desc:"院校职称"}, {
yuanXiaoKaiSheZhuanYe:{type:'String', desc:"院校开设专业数"} key:"userId", type:"String", desc:"用户id"
}, }
desc:"表单" ],
bindBiz:memberBiz.memberRegister2
},
{
apiName:"单位入会流程1",
subUrl:'/memberdb/unitmemberregister1',
param:[
{
key:"form", type:"Object", sub:
{
loginId:{type:'String', desc:'用户名', notMustHave:false},
mail:{type:'String', desc:'邮箱', notMustHave:false},
pwd:{type:'String', desc:'密码', notMustHave:false},
confirmation:{type:'String', desc:'确认密码', notMustHave:false},
phone:{type:'String', desc:'联系人手机号', notMustHave:false},
codeNum:{type:'String', desc:'验证码', notMustHave:false},
}
},
{key:"codeId", type:"String", desc:"验证码Id"}
],
bindBiz:memberBiz.unitMemberRegister1
},
{
apiName:"单位入会流程2",
subUrl:'/memberdb/unitmemberregister2',
param:[
{
key:"form", type:"Object", sub:
{
unitName:{type:'String', desc:'单位名称', notMustHave:false},
addres:{type:'String', desc:'通信地址', notMustHave:false},
uscc:{type:'String', desc:'单位信用代码', notMustHave:false},
legalPerson:{type:'String', desc:'法人代表', notMustHave:false},
legalPersonPhone:{type:'String', desc:'法人联系电话', notMustHave:false},
sheng:{type:'String', desc:'省', notMustHave:false},
shi:{type:'String', desc:'市', notMustHave:false},
qu:{type:'String', desc:'区', notMustHave:false},
contactPerson:{type:'String', desc:'日常联系人', notMustHave:false},
contactPersonDuties:{type:'String', desc:'日常联系人职务', notMustHave:false},
uusinessLicenseUrl:{type:'String', desc:'营业执照复印件', notMustHave:false},
auxiliaryMaterial:{type:'[String]', desc:'法人邮箱', notMustHave:false},
contactPersonPhone:{type:'[String]', desc:'日常联系人手机', notMustHave:false},
/**单位信息 */
unitInfoType:{type:'Number', desc:'单位信息类型', notMustHave:false},
unitMail:{type:'[String]', desc:'单位电子邮箱', notMustHave:false},
yuanXiaoBanXueLeiXing:{type:'String', desc:'院校办学类型', notMustHave:false},
yuanXiaoZhuGuanBuMen:{type:'String', desc:'院校主管部门', notMustHave:false},
yuanXiaoFuZeRen:{type:'String', desc:'院校主要负责人', notMustHave:false},
yuanXiaoFuZeRenZhiWu:{type:'String', desc:'院校主要负责人职务', notMustHave:false},
yuanXiaoFuZeRenDianHua:{type:'String', desc:'院校主要负责人电话', notMustHave:false},
yuanXiaoBanGongFuZeRen:{type:'String', desc:'院校办公负责人', notMustHave:false},
yuanXiaoBanGongFuZeRenDianHua:{type:'String', desc:'院校办公负责人电话', notMustHave:false},
yuanXiaoKeYanFuZeRen:{type:'String', desc:'院校科研负责人', notMustHave:false},
yuanXiaoKeYanFuZeRenDianHua:{type:'String', desc:'院校科研负责人电话', notMustHave:false},
yuanXiaoXueShengZongRenShu:{type:'String', desc:'院校学生总人数', notMustHave:false},
yuanXiaoJiaoZhiGongZongRenShu:{type:'String', desc:'院校教职工总人数', notMustHave:false},
jiaoXueFuZeRenXinMing:{type:'[String]', desc:'教学负责人姓名', notMustHave:false},
jiaoXueFuZeRenDianHua:{type:'[String]', desc:'教学负责人电话', notMustHave:false},
ZhuYaoFuZeRenYouXiang:{type:'[String]', desc:'主要负责人邮箱', notMustHave:false},
}
},
{
key:"keyanForm", type:"[Object]", desc:"单位所获得科研成果表单"
},
{
key:"userId", type:"String", desc:"用户id"
} }
], ],
bindBiz:userBiz.singInOfUnit bindBiz:memberBiz.unitMemberRegister2
},
{
apiName:"单位入会流程3",
subUrl:'/memberdb/unitmemberregister2',
param:[
{
key:"applicationForm", type:"String", desc:"入会申请表"
},
{
key:"userId", type:"String", desc:"用户id"
}
],
bindBiz:memberBiz.unitMemberRegister3
},
{
apiName:"发送短信验证码",
subUrl:'/memberdb/registersendcode',
param:[
{key:"loginId", type:"String", desc:"用户名"},
{key:"phone", type:"String", desc:"联系人手机号"},
{key:"codeType", type:"Number", desc:"验证码类型枚举"}
],
bindBiz:memberBiz.memberRegisterSendCode
},
{
apiName:"获取当前会员注册流程",
subUrl:'/memberdb/registerflowtype',
param:[
{key:"userId", type:"String", desc:"用户id"},
],
bindBiz:memberBiz.registerFlowType
} }
], ],
"登陆相关":[ "登陆相关":[
...@@ -263,162 +337,6 @@ export const Config = { ...@@ -263,162 +337,6 @@ export const Config = {
} }
], ],
bindBiz:memberBiz.individualMemberUpdate bindBiz:memberBiz.individualMemberUpdate
},
{
apiName:"发送短信验证码",
subUrl:'/memberdb/registersendcode',
param:[
{key:"loginId", type:"String", desc:"用户名"},
{key:"phone", type:"String", desc:"联系人手机号"},
{key:"codeType", type:"Number", desc:"验证码类型枚举"}
],
bindBiz:memberBiz.memberRegisterSendCode
},
{
apiName:"个人入会流程1",
subUrl:'/memberdb/memberregister1',
param:[
{
key:"form", type:"Object", sub:
{
loginId:{type:'String', desc:'用户名'},
mail:{type:'String', desc:'邮箱'},
pwd:{type:'String', desc:'密码'},
confirmation:{type:'String', desc:'确认密码'},
phone:{type:'String', desc:'联系人手机号'},
codeNum:{type:'String', desc:'验证码'},
}
}
],
bindBiz:memberBiz.memberRegister1
},
{
apiName:"个人入会流程2",
subUrl:'/memberdb/memberregister2',
param:[
{
key:"form", type:"Object", sub:
{
name:{type:'String', desc:'真实姓名', notMustHave:false},
sex:{type:'Number', desc:'性别', notMustHave:false},
documentType:{type:'Number', desc:'证件类型', notMustHave:false},
documentId:{type:'String', desc:'证件号码', notMustHave:false},
birth:{type:'Number', desc:'出生年月', notMustHave:false},
nation:{type:'Number', desc:'民族', notMustHave:false},
sheng:{type:'String', desc:'省', notMustHave:false},
shi:{type:'String', desc:'市', notMustHave:false},
qu:{type:'String', desc:'区', notMustHave:false},
addres:{type:'String', desc:'通信地址', notMustHave:false},
education:{type:'Number', desc:'学历', notMustHave:false},
photoUrl:{type:'String', desc:'蓝底证件照', notMustHave:false},
workUnit:{type:'String', desc:'工作单位', notMustHave:false},
memberLevel:{type:'Number', desc:'会员等级职务', notMustHave:false},
workTitle:{type:'String', desc:'职称', notMustHave:false},
profCategory:{type:'Number', desc:'专业类别', notMustHave:false},
studyResume:{type:'String', desc:'学习简历', notMustHave:false},
workResume:{type:'String', desc:'工作简历', notMustHave:false},
profAchievement:{type:'String', desc:'专业成果', notMustHave:false},
otherEMP:{type:'String', desc:'在其他社会组织任职情况', notMustHave:false},
otherPROF:{type:'String', desc:'其他与本学会专业有关的情况', notMustHave:false},
cardUrl:{type:'[String]', desc:'个人身份证扫描件', notMustHave:false},
academicCERTUrl:{type:'String', desc:'个人学历证明扫描件', notMustHave:false},
professionalCERTUrl:{type:'String', desc:'个人工作证明扫描件', notMustHave:false},
auxiliaryMaterial:{type:'[String]', desc:'论文发表等证明工作成果或成绩的材料', notMustHave:false},
}
},
{
key:"userId", type:"String", desc:"用户id"
}
],
bindBiz:memberBiz.memberRegister2
},
{
apiName:"单位入会流程1",
subUrl:'/memberdb/unitmemberregister1',
param:[
{
key:"form", type:"Object", sub:
{
loginId:{type:'String', desc:'用户名', notMustHave:false},
mail:{type:'String', desc:'邮箱', notMustHave:false},
pwd:{type:'String', desc:'密码', notMustHave:false},
confirmation:{type:'String', desc:'确认密码', notMustHave:false},
phone:{type:'String', desc:'联系人手机号', notMustHave:false},
codeNum:{type:'String', desc:'验证码', notMustHave:false},
}
},
{key:"codeId", type:"String", desc:"验证码Id"}
],
bindBiz:memberBiz.unitMemberRegister1
},
{
apiName:"单位入会流程2",
subUrl:'/memberdb/unitmemberregister2',
param:[
{
key:"form", type:"Object", sub:
{
unitName:{type:'String', desc:'单位名称', notMustHave:false},
addres:{type:'String', desc:'通信地址', notMustHave:false},
uscc:{type:'String', desc:'单位信用代码', notMustHave:false},
legalPerson:{type:'String', desc:'法人代表', notMustHave:false},
legalPersonPhone:{type:'String', desc:'法人联系电话', notMustHave:false},
sheng:{type:'String', desc:'省', notMustHave:false},
shi:{type:'String', desc:'市', notMustHave:false},
qu:{type:'String', desc:'区', notMustHave:false},
contactPerson:{type:'String', desc:'日常联系人', notMustHave:false},
contactPersonDuties:{type:'String', desc:'日常联系人职务', notMustHave:false},
uusinessLicenseUrl:{type:'String', desc:'营业执照复印件', notMustHave:false},
auxiliaryMaterial:{type:'[String]', desc:'法人邮箱', notMustHave:false},
contactPersonPhone:{type:'[String]', desc:'日常联系人手机', notMustHave:false},
/**单位信息 */
unitInfoType:{type:'Number', desc:'单位信息类型', notMustHave:false},
unitMail:{type:'[String]', desc:'单位电子邮箱', notMustHave:false},
yuanXiaoBanXueLeiXing:{type:'String', desc:'院校办学类型', notMustHave:false},
yuanXiaoZhuGuanBuMen:{type:'String', desc:'院校主管部门', notMustHave:false},
yuanXiaoFuZeRen:{type:'String', desc:'院校主要负责人', notMustHave:false},
yuanXiaoFuZeRenZhiWu:{type:'String', desc:'院校主要负责人职务', notMustHave:false},
yuanXiaoFuZeRenDianHua:{type:'String', desc:'院校主要负责人电话', notMustHave:false},
yuanXiaoBanGongFuZeRen:{type:'String', desc:'院校办公负责人', notMustHave:false},
yuanXiaoBanGongFuZeRenDianHua:{type:'String', desc:'院校办公负责人电话', notMustHave:false},
yuanXiaoKeYanFuZeRen:{type:'String', desc:'院校科研负责人', notMustHave:false},
yuanXiaoKeYanFuZeRenDianHua:{type:'String', desc:'院校科研负责人电话', notMustHave:false},
yuanXiaoXueShengZongRenShu:{type:'String', desc:'院校学生总人数', notMustHave:false},
yuanXiaoJiaoZhiGongZongRenShu:{type:'String', desc:'院校教职工总人数', notMustHave:false},
jiaoXueFuZeRenXinMing:{type:'[String]', desc:'教学负责人姓名', notMustHave:false},
jiaoXueFuZeRenDianHua:{type:'[String]', desc:'教学负责人电话', notMustHave:false},
ZhuYaoFuZeRenYouXiang:{type:'[String]', desc:'主要负责人邮箱', notMustHave:false},
}
},
{
key:"keyanForm", type:"[Object]", desc:"单位所获得科研成果表单"
},
{
key:"userId", type:"String", desc:"用户id"
}
],
bindBiz:memberBiz.unitMemberRegister2
},
{
apiName:"单位入会流程3",
subUrl:'/memberdb/unitmemberregister2',
param:[
{
key:"applicationForm", type:"String", desc:"入会申请表"
},
{
key:"userId", type:"String", desc:"用户id"
}
],
bindBiz:memberBiz.unitMemberRegister3
},
{
apiName:"获取当前会员注册流程",
subUrl:'/memberdb/registerflowtype',
param:[
{key:"userId", type:"String", desc:"用户id"},
],
bindBiz:memberBiz.registerFlowType
} }
], ],
"审批管理":[ "审批管理":[
......
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