Commit 38965cfe by chenjinjing

no message

parent 503c751b
...@@ -2,10 +2,10 @@ ...@@ -2,10 +2,10 @@
* 会员逻辑 * 会员逻辑
*/ */
import { MEMBERSTATE, MEMBERLEVEL, DOCUMENTTYPE, NATION, PROFCATEGORY, CODETYPE, UNITINFOTYPE, MEMBERTYPE, REGISTERFLOW } from "../../config/enum"; import { MEMBERSTATE, MEMBERLEVEL, DOCUMENTTYPE, NATION, PROFCATEGORY, CODETYPE, UNITINFOTYPE, MEMBERTYPE, REGISTERFLOW, SEX } from "../../config/enum";
import { ERRORENUM } from "../../config/errorEnum"; import { ERRORENUM } from "../../config/errorEnum";
import { TABLEENUM } from "../../data/models/model"; import { TABLEENUM } from "../../data/models/model";
import { find, findOnce } from "../../data/select"; import { find, findCount, findOnce, findToPage } from "../../data/select";
import { updateOneData } from "../../data/update"; import { updateOneData } from "../../data/update";
import { generateSystemId, successResult } from "../../tools/system"; import { generateSystemId, successResult } from "../../tools/system";
import { BizError } from "../../util/bizError"; import { BizError } from "../../util/bizError";
...@@ -13,14 +13,15 @@ import { extractData } from "../../util/piecemeal"; ...@@ -13,14 +13,15 @@ import { extractData } from "../../util/piecemeal";
import { changeEnumValue, eccEnumValue } from "../../util/verificationEnum"; import { changeEnumValue, eccEnumValue } from "../../util/verificationEnum";
import * as sysTools from "../../tools/system"; import * as sysTools from "../../tools/system";
import { sendRegisterCode } from "../sms"; import { sendRegisterCode } from "../sms";
import { addOneData } from "../../data/add"; import { addManyData, addOneData } from "../../data/add";
import { deleteManyData, deleteOneData } from "../../data/delete";
/** /**
* 单位会员列表 * 单位会员列表
* @param param0 * @param param0
*/ */
export async function unitMemberList({unitName, joinTime, unitMemberType, workDuties, session, sheng, shi, qu}) { export async function unitMemberList({unitName, joinTime, unitMemberType, workDuties, session, sheng, shi, qu, pageNumber}) {
let selectParam:any = {}; let selectParam:any = {};
if (unitName) selectParam.unitName = unitName; if (unitName) selectParam.unitName = unitName;
if (joinTime) selectParam.joinTime = joinTime; if (joinTime) selectParam.joinTime = joinTime;
...@@ -31,7 +32,9 @@ export async function unitMemberList({unitName, joinTime, unitMemberType, workDu ...@@ -31,7 +32,9 @@ export async function unitMemberList({unitName, joinTime, unitMemberType, workDu
if (shi) selectParam.shi = shi; if (shi) selectParam.shi = shi;
if (qu) selectParam.qu = qu; if (qu) selectParam.qu = qu;
let dbList = await find(TABLEENUM.用户表, selectParam); let dbList = await findToPage(TABLEENUM.用户表, selectParam, [], pageNumber);
let dataCount = await findCount(TABLEENUM.用户表, selectParam);
let dataList = []; let dataList = [];
dbList.forEach(info => { dbList.forEach(info => {
let item:any = extractData(info, ["userId", "memberState", "unitName", "loginId", "phone", "joinTime", "unitMemberLevel", "sheng", "shi", "qu"]); let item:any = extractData(info, ["userId", "memberState", "unitName", "loginId", "phone", "joinTime", "unitMemberLevel", "sheng", "shi", "qu"]);
...@@ -41,7 +44,7 @@ export async function unitMemberList({unitName, joinTime, unitMemberType, workDu ...@@ -41,7 +44,7 @@ export async function unitMemberList({unitName, joinTime, unitMemberType, workDu
dataList.push(item); dataList.push(item);
}); });
return {dataList}; return {dataList, dataCount};
} }
...@@ -67,7 +70,7 @@ export async function unitMemberDetails({userId}) { ...@@ -67,7 +70,7 @@ export async function unitMemberDetails({userId}) {
let unitInfo = extractData(oldInfo, UnitConfig); let unitInfo = extractData(oldInfo, UnitConfig);
let oldKeYanInfo = await findOnce(TABLEENUM.单位所获得科研成果表, {userId}); let oldKeYanInfo = await findOnce(TABLEENUM.单位所获得科研成果表, {userId});
let scientificResearch = extractData(oldKeYanInfo, ["startTime", "endTime", "describe"]); let scientificResearch = extractData(oldKeYanInfo, ["id", "startTime", "endTime", "describe"]);
return {topInfo, basicInfo, unitInfo, scientificResearch}; return {topInfo, basicInfo, unitInfo, scientificResearch};
} }
...@@ -79,60 +82,57 @@ export async function unitMemberDetails({userId}) { ...@@ -79,60 +82,57 @@ export async function unitMemberDetails({userId}) {
* @param form * @param form
* @returns * @returns
*/ */
export async function unitMemberUpdate(secureArgs:any) { export async function unitMemberUpdate({form, keyanForm, userId}) {
let {userId, form, keyanForm} = secureArgs;
let oldInfo = await findOnce(TABLEENUM.用户表, {userId}); let oldInfo = await findOnce(TABLEENUM.用户表, {userId});
/**校验枚举 */
changeEnumValue(UNITINFOTYPE, form.unitInfoType);
changeEnumValue(UNITINFOTYPE, form.unitInfoType);
if (!oldInfo || !oldInfo.userId) throw new BizError(ERRORENUM.目标数据不存在); if (!oldInfo || !oldInfo.userId) throw new BizError(ERRORENUM.目标数据不存在);
await updateOneData(TABLEENUM.用户表, {userId}, form); await updateOneData(TABLEENUM.用户表, {userId}, form);
/**删除对应userId科研成果 */
let oldKeYanInfo = await find(TABLEENUM.单位所获得科研成果表, {userId}); let oldKeYanInfo = await find(TABLEENUM.单位所获得科研成果表, {userId});
let dataList = []; if (!oldKeYanInfo || !oldKeYanInfo.id) throw new BizError(ERRORENUM.目标数据不存在);
oldKeYanInfo.forEach(info => { await deleteManyData(TABLEENUM.单位所获得科研成果表, {userId});
let item:any = extractData(info, ["userId", "memberState", "unitName", "loginId", "phone", "joinTime", "unitMemberLevel", "sheng", "shi", "qu"]);
//todo 等夏先圣回来对一下前端数据怎么传 let addList = [];
dataList.push(item); for (let i = 0; i < keyanForm.length; i++) {
}); keyanForm[i].id = generateSystemId(TABLEENUM.单位所获得科研成果表, userId);
keyanForm[i].userId = userId;
addList.push(keyanForm);
}
await addManyData(TABLEENUM.单位所获得科研成果表, addList);
return successResult(); return successResult();
} }
/** /**
* 单位入会流程1 * 删除单位所获得科研成果
* @param secureArgs * @param param0
* @returns
*/ */
export async function unitMemberRegister(secureArgs) { export async function delResearch({id}) {
let {form} = secureArgs; let dataInfo = await findOnce(TABLEENUM.单位所获得科研成果表, {id});
if (!dataInfo || !dataInfo.id) throw new BizError(ERRORENUM.目标数据不存在);
/**校验枚举 */ await deleteOneData(TABLEENUM.单位所获得科研成果表, {id});
const EccFuncName = '注册单位会员'; return successResult();
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 = sysTools.generateUserId();
form.memberType = MEMBERTYPE.单位会员;
form.isAdmin = 0;
form.registerFlow = REGISTERFLOW.单位会员注册1;
await addOneData(TABLEENUM.用户表, form);
/**验证码 */ /**
* 会员注册的短信验证码
* @param userId
* @param phone
* @returns
*/
export async function memberRegisterSendCode({loginId, phone, codeType}) {
let todayMs = sysTools.getTodayMs(); let todayMs = sysTools.getTodayMs();
let todayCodeList = await findOnce(TABLEENUM.验证码表, {userId:form.userId}); let todayCodeList = await find(TABLEENUM.验证码表, {phone}) || [];
if (todayCodeList.length >= 4) throw new BizError(ERRORENUM.发送验证码次数超限制, `${form.userId} 修改密码发送验证码次数超限制4`); // if (todayCodeList.length >= 4) throw new BizError(ERRORENUM.发送验证码次数超限制, `${loginId} 修改密码发送验证码次数超限制4`);
let sendMs = todayMs; let sendMs = todayMs;
todayCodeList.forEach(info => { todayCodeList.forEach(info => {
...@@ -140,70 +140,27 @@ export async function unitMemberRegister(secureArgs) { ...@@ -140,70 +140,27 @@ export async function unitMemberRegister(secureArgs) {
}); });
let now = new Date().valueOf(); let now = new Date().valueOf();
if ((now - sendMs) <= (60 * 1000) ) throw new BizError(ERRORENUM.发送验证码频率过快, `${form.userId}`); if ((now - sendMs) <= (60 * 1000) ) throw new BizError(ERRORENUM.发送验证码频率过快, `${loginId}`);
let codeId = sysTools.getSMSCodeId(form.userId, todayCodeList.length); let codeId = sysTools.getSMSCodeId(loginId, todayCodeList.length||0);
let code = sysTools.getSMSCode(); let code = sysTools.getSMSCode();
await sendRegisterCode(form.phone, code); //await sendRegisterCode(phone, code, codeType); //todo 发送短信
now = new Date().valueOf(); now = new Date().valueOf();
await addOneData(TABLEENUM.验证码表, {codeId, code, now, phone:form.phone, codeType:CODETYPE.单位会员注册, isUse:true}); await addOneData(TABLEENUM.验证码表, {codeId, codeNum:code, sendMs:now, phone, type:codeType, isUse:true});
return successResult();
}
let dataList = {codeId}
return dataList;
}
/** /**
* 个人会员列表 * 个人会员列表
* @param param0 * @param param0
*/ */
export async function individualMemberList({name, documentId, phone, memberLevel, workDuties, session, joinTime, auditTime, memberState}) { export async function individualMemberList({name, documentId, phone, memberLevel, workDuties, session, joinTime, auditTime, memberState, pageNumber}) {
let selectParam:any = {}; let selectParam:any = {};
if (name) selectParam.name = name; if (name) selectParam.name = name;
if (documentId) selectParam.documentId = documentId; if (documentId) selectParam.documentId = documentId;
...@@ -215,17 +172,20 @@ export async function individualMemberList({name, documentId, phone, memberLevel ...@@ -215,17 +172,20 @@ export async function individualMemberList({name, documentId, phone, memberLevel
if (auditTime) selectParam.auditTime = auditTime; if (auditTime) selectParam.auditTime = auditTime;
if (memberState) selectParam.memberState = memberState; if (memberState) selectParam.memberState = memberState;
let dbList = await find(TABLEENUM.用户表, selectParam); let selectConf = ["userId", "memberState", "unitName", "name", "sex", "nation", "loginId", "phone", "joinTime", "memberLevel", "sheng", "shi", "qu"];
let dbList = await findToPage(TABLEENUM.用户表, selectParam, selectConf, pageNumber, 10);
let dataCount = await findCount(TABLEENUM.用户表, selectParam);
let dataList = []; let dataList = [];
dbList.forEach(info => { dbList.forEach(info => {
let item:any = extractData(info, ["userId", "memberState", "unitName", "name", "sex", "nation", "loginId", "phone", "joinTime", "memberLevel", "sheng", "shi", "qu"]); let item:any = extractData(info, selectConf);
changeEnumValue(MEMBERSTATE, item.memberState); changeEnumValue(MEMBERSTATE, item.memberState);
if (!item.memberLevel) item.memberLevel = "未选择"; if (!item.memberLevel) item.memberLevel = "未选择";
else changeEnumValue(MEMBERLEVEL, item.memberLevel); else changeEnumValue(MEMBERLEVEL, item.memberLevel);
dataList.push(item); dataList.push(item);
}); });
return {dataList}; return {dataList, dataCount};
} }
...@@ -264,8 +224,7 @@ export async function individualMemberDetails({userId}) { ...@@ -264,8 +224,7 @@ export async function individualMemberDetails({userId}) {
* @param form * @param form
* @returns * @returns
*/ */
export async function individualMemberUpdate(secureArgs:any) { export async function individualMemberUpdate({form, userId}) {
let {userId, form, keyanForm} = secureArgs;
let oldInfo = await findOnce(TABLEENUM.用户表, {userId}); let oldInfo = await findOnce(TABLEENUM.用户表, {userId});
if (!oldInfo || !oldInfo.userId) throw new BizError(ERRORENUM.目标数据不存在); if (!oldInfo || !oldInfo.userId) throw new BizError(ERRORENUM.目标数据不存在);
await updateOneData(TABLEENUM.用户表, {userId}, form); await updateOneData(TABLEENUM.用户表, {userId}, form);
...@@ -274,6 +233,146 @@ export async function individualMemberDetails({userId}) { ...@@ -274,6 +233,146 @@ export async function individualMemberDetails({userId}) {
} }
/**
* 个人入会流程1
* @param secureArgs
*/
export async function memberRegister1({form, codeId}) {
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.两次密码不一致);
form.userId = sysTools.generateUserId();
form.memberType = MEMBERTYPE.个人会员;
form.isAdmin = 0;
form.registerFlow = REGISTERFLOW.个人会员注册1;
// let todayMs = sysTools.getTodayMs();
let codeList = await findOnce(TABLEENUM.验证码表, {codeId});
let now = new Date().valueOf();
let msg = ERRORENUM.验证码错误;
if (codeList.codeNum == form.codeNum) {
if (codeList.isUse) msg = ERRORENUM.验证码失效;
else if ( (now - codeList.sendMs) > (30 * 60 * 1000) ) msg = ERRORENUM.验证码过期
}
if (!codeId) throw new BizError(msg, `userId:${form.userId}个人入会注册流程1的code:${form.code}`);
/**修改验证码状态为已使用 */
await updateOneData(TABLEENUM.验证码表, {codeId}, {isUse:true});
await addOneData(TABLEENUM.用户表, form);
/**注册成功,返回userId和会员注册流程字段 */
let oldInfo = await findOnce(TABLEENUM.用户表, {userId:form.userId});
let dataList = extractData(oldInfo, ["userId", "registerFlow"]);
return dataList;
}
/**
* 个人入会流程2
* @param userId
* @param secureArgs
* @returns
*/
export async function memberRegister2({form, userId}) {
let oldInfo = await findOnce(TABLEENUM.用户表, {userId});
if (!oldInfo || !oldInfo.userId) throw new BizError(ERRORENUM.目标数据不存在);
/**校验枚举 */
const EccFuncName = '注册个人会员';
eccEnumValue(EccFuncName, '性别', SEX, form.sex);
eccEnumValue(EccFuncName, '证件类型', DOCUMENTTYPE, form.documentType);
eccEnumValue(EccFuncName, '民族', NATION, form.nation);
eccEnumValue(EccFuncName, '专业类别', PROFCATEGORY, form.profCategory);
form.registerFlow = REGISTERFLOW.个人会员注册2;
await updateOneData(TABLEENUM.用户表, {userId}, form);
let unitInfo = await findOnce(TABLEENUM.用户表, {userId});
let dataList = extractData(unitInfo, ["userId", "registerFlow"]);
return dataList;
}
/**
* 单位入会流程1
* @param secureArgs
*/
export async function unitMemberRegister1({form, codeId}) {
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.两次密码不一致);
form.userId = sysTools.generateUserId();
form.memberType = MEMBERTYPE.单位会员;
form.isAdmin = 0;
form.registerFlow = REGISTERFLOW.单位会员注册1;
// let todayMs = sysTools.getTodayMs();
let codeList = await findOnce(TABLEENUM.验证码表, {codeId});
let now = new Date().valueOf();
let msg = ERRORENUM.验证码错误;
if (codeList.codeNum == form.codeNum) {
if (codeList.isUse) msg = ERRORENUM.验证码失效;
else if ( (now - codeList.sendMs) > (30 * 60 * 1000) ) msg = ERRORENUM.验证码过期
}
if (!codeId) throw new BizError(msg, `userId:${form.userId}单位入会注册流程1的code:${form.code}`);
/**修改验证码状态为已使用 */
await updateOneData(TABLEENUM.验证码表, {codeId}, {isUse:true});
await addOneData(TABLEENUM.用户表, form);
/**注册成功,返回userId和会员注册流程字段 */
let oldInfo = await findOnce(TABLEENUM.用户表, {userId:form.userId});
let dataList = extractData(oldInfo, ["userId", "registerFlow"]);
return dataList;
}
/**
* 单位入会流程2
* @param userId
* @param secureArgs
* @returns
*/
export async function unitMemberRegister2({form, keyanForm, userId}) {
let oldInfo = await findOnce(TABLEENUM.用户表, {userId});
if (!oldInfo || !oldInfo.userId) throw new BizError(ERRORENUM.目标数据不存在);
form.registerFlow = REGISTERFLOW.单位会员注册2;
await updateOneData(TABLEENUM.用户表, {userId}, form);
let unitInfo = await findOnce(TABLEENUM.用户表, {userId});
let dataList = extractData(unitInfo, ["userId", "registerFlow"]);
return dataList;
}
......
...@@ -101,10 +101,10 @@ export function initSMS() { ...@@ -101,10 +101,10 @@ export function initSMS() {
* @param phone * @param phone
* @param code * @param code
*/ */
export async function sendRegisterCode(phone:string, code:string) { export async function sendRegisterCode(phone:string, code:string, codeType) {
let sendPhoneList = [phone]; let sendPhoneList = [phone];
let params = [code]; let params = [code];
let sendRes:any = await sendMsmToPhoneNumber(sendPhoneList, SMSTYPE.单位会员注册, params); let sendRes:any = await sendMsmToPhoneNumber(sendPhoneList, codeType, params);
return sendRes.isError; return sendRes.isError;
} }
......
...@@ -358,6 +358,7 @@ export enum CERTIFICATETYPE { ...@@ -358,6 +358,7 @@ export enum CERTIFICATETYPE {
*/ */
export enum CODETYPE { export enum CODETYPE {
单位会员注册 = 1, 单位会员注册 = 1,
个人会员注册,
} }
...@@ -376,7 +377,9 @@ export enum SMSTYPE { ...@@ -376,7 +377,9 @@ export enum SMSTYPE {
export enum REGISTERFLOW { export enum REGISTERFLOW {
单位会员注册1 = 1, 单位会员注册1 = 1,
单位会员注册2, 单位会员注册2,
单位会员注册3 单位会员注册3,
个人会员注册1,
个人会员注册2
} }
...@@ -21,7 +21,10 @@ export enum ERRORENUM { ...@@ -21,7 +21,10 @@ export enum ERRORENUM {
两次密码不一致, 两次密码不一致,
密码只能由618位字符和数字组成, 密码只能由618位字符和数字组成,
发送验证码次数超限制, 发送验证码次数超限制,
发送验证码频率过快 发送验证码频率过快,
验证码错误,
验证码失效,
验证码过期
} }
export enum ERRORCODEENUM { export enum ERRORCODEENUM {
......
...@@ -53,7 +53,7 @@ ...@@ -53,7 +53,7 @@
}, },
*/ */
import { MEMBERSTATE, USERREGISTERSTATE } from "../../config/enum"; import { MEMBERSTATE, REGISTERFLOW, USERREGISTERSTATE } from "../../config/enum";
...@@ -338,8 +338,8 @@ const ModelArray = [ ...@@ -338,8 +338,8 @@ const ModelArray = [
pwd:{ type:'String'},//密码 pwd:{ type:'String'},//密码
token:{type:'String', default:''},//token token:{type:'String', default:''},//token
tokenMs:{type:'Number', default:0},//token过期时间 tokenMs:{type:'Number', default:0},//token过期时间
phone:{type:'String', index:true}, phone:{type:'String', index:true},//联系电话
mail:{type:'String', index:true}, mail:{type:'String', index:true},//邮箱
sex:'Number',//性别 枚举 sex:'Number',//性别 枚举
documentType:'Number',//证件类型 枚举 documentType:'Number',//证件类型 枚举
documentId:'String',//证件id 身份证 documentId:'String',//证件id 身份证
...@@ -379,7 +379,7 @@ const ModelArray = [ ...@@ -379,7 +379,7 @@ const ModelArray = [
personInChargeDesc:'String',//单位主要负责人或负责人集体描述 personInChargeDesc:'String',//单位主要负责人或负责人集体描述
/**单位会员信息 */ /**单位会员信息 */
unitInfoType:'Number',//单位信息类型 枚举‘ ’ unitInfoType:'Number',//单位信息类型 枚举
yuanXiaoBanXueLeiXing:'String',//院校办学类型 yuanXiaoBanXueLeiXing:'String',//院校办学类型
yuanXiaoZhuGuanBuMen:'String',//院校主管部门 yuanXiaoZhuGuanBuMen:'String',//院校主管部门
yuanXiaoFuZeRen:'String',//院校主要负责人 yuanXiaoFuZeRen:'String',//院校主要负责人
...@@ -438,7 +438,6 @@ const ModelArray = [ ...@@ -438,7 +438,6 @@ const ModelArray = [
membershipFeesType:'Number',//会费类别 枚举 membershipFeesType:'Number',//会费类别 枚举
invoiceAdd:'String',//发票地址 invoiceAdd:'String',//发票地址
state:'Number',//状态 枚举 state:'Number',//状态 枚举
} }
}, },
{ {
...@@ -446,11 +445,11 @@ const ModelArray = [ ...@@ -446,11 +445,11 @@ const ModelArray = [
source:TABLESOURCEENUM.mongo, source:TABLESOURCEENUM.mongo,
schema:{ schema:{
codeId:{type:'String', index:true}, codeId:{type:'String', index:true},
code:String, codeNum:'String',
sendMs:Number,//下发时间 时间戳 sendMs:'Number',//下发时间 时间戳
phone:{type:String, index:true},//用户电话 phone:{type:'String', index:true},//用户电话
type:Number,//验证码类型 type:'Number',//验证码类型
isUse:{type:Boolean, default:false},//是否使用 默认false isUse:{type:'Boolean', default:false},//是否使用 默认false
} }
}, },
]; ];
......
...@@ -122,7 +122,8 @@ export const Config = { ...@@ -122,7 +122,8 @@ export const Config = {
{key:"session", type:"String", desc:"届次", isNull:true}, //todo {key:"session", type:"String", desc:"届次", isNull:true}, //todo
{key:"sheng", type:"String", desc:"省", isNull:true}, {key:"sheng", type:"String", desc:"省", isNull:true},
{key:"shi", type:"String", desc:"市", isNull:true}, {key:"shi", type:"String", desc:"市", isNull:true},
{key:"qu", type:"String", desc:"区", isNull:true} {key:"qu", type:"String", desc:"区", isNull:true},
{key:"pageNumber", type:"Number", desc:"当前页"}
], ],
bindBiz:memberBiz.unitMemberList bindBiz:memberBiz.unitMemberList
}, },
...@@ -133,12 +134,13 @@ export const Config = { ...@@ -133,12 +134,13 @@ export const Config = {
{key:"name", type:"String", desc:"姓名", isNull:true}, {key:"name", type:"String", desc:"姓名", isNull:true},
{key:"documentId", type:"String", desc:"身份证", isNull:true}, {key:"documentId", type:"String", desc:"身份证", isNull:true},
{key:"phone", type:"String", desc:"手机号", isNull:true}, {key:"phone", type:"String", desc:"手机号", isNull:true},
{key:"memberLevel", type:"String", desc:"级别", isNull:true}, {key:"memberLevel", type:"Number", desc:"会员等级", isNull:true},
{key:"workDuties", type:"String", desc:"职务", isNull:true}, {key:"workDuties", type:"String", desc:"职务", isNull:true},
{key:"session", type:"String", desc:"届次", isNull:true}, {key:"session", type:"String", desc:"届次", isNull:true},
{key:"joinTime", type:"String", desc:"入会时间", isNull:true}, {key:"joinTime", type:"Number", desc:"入会时间", isNull:true},
{key:"auditTime", type:"String", desc:"审核时间", isNull:true}, {key:"auditTime", type:"Number", desc:"审核时间", isNull:true},
{key:"memberState", type:"String", desc:"状态", isNull:true}, {key:"memberState", type:"Number", desc:"状态", isNull:true},
{key:"pageNumber", type:"Number", desc:"当前页"}
], ],
bindBiz:memberBiz.individualMemberList bindBiz:memberBiz.individualMemberList
}, },
...@@ -148,7 +150,7 @@ export const Config = { ...@@ -148,7 +150,7 @@ export const Config = {
param:[ param:[
{key:"userId", type:"String", desc:"用户id"} {key:"userId", type:"String", desc:"用户id"}
], ],
binBiz:memberBiz.unitMemberDetails bindBiz:memberBiz.unitMemberDetails
}, },
{ {
apiName:"个人会员详情", apiName:"个人会员详情",
...@@ -156,7 +158,15 @@ export const Config = { ...@@ -156,7 +158,15 @@ export const Config = {
param:[ param:[
{key:"userId", type:"String", desc:"用户id"} {key:"userId", type:"String", desc:"用户id"}
], ],
binBiz:memberBiz.individualMemberDetails bindBiz:memberBiz.individualMemberDetails
},
{
apiName:"删除单位所获得科研成果",
subUrl:'/memberdb/delresearch',
param:[
{key:"id", type:"String", desc:"单位会员列表下发的标识"}
],
bindBiz:memberBiz.delResearch
}, },
{ {
apiName:"单位会员修改", apiName:"单位会员修改",
...@@ -173,7 +183,7 @@ export const Config = { ...@@ -173,7 +183,7 @@ export const Config = {
legalPerson:{type:'String', desc:'法人代表'}, legalPerson:{type:'String', desc:'法人代表'},
legalPersonPhone:{type:'String', desc:'法人联系电话'}, legalPersonPhone:{type:'String', desc:'法人联系电话'},
gongZhongHao:{type:'String', desc:'单位公众号'}, gongZhongHao:{type:'String', desc:'单位公众号'},
unitPhone:{type:'String', desc:'单位电话'}, unitPhone:{type:'Number', desc:'单位电话'},
contactPerson:{type:'String', desc:'日常联系人'}, contactPerson:{type:'String', desc:'日常联系人'},
contactPersonDuties:{type:'String', desc:'日常联系人职务'}, contactPersonDuties:{type:'String', desc:'日常联系人职务'},
sheng:{type:'String', desc:'省'}, sheng:{type:'String', desc:'省'},
...@@ -205,17 +215,17 @@ export const Config = { ...@@ -205,17 +215,17 @@ export const Config = {
{ {
key:"keyanForm", type:"Object", sub: key:"keyanForm", type:"Object", sub:
{ {
startTime:{type:'String', desc:'开始时间'}, startTime:{type:'Number', desc:'开始时间'},
endTime:{type:'String', desc:'结束时间'}, endTime:{type:'Number', desc:'结束时间'},
describe:{type:'String', desc:'科研描述'}, describe:{type:'String', desc:'科研描述'},
}, },
desc:"表单" desc:"单位所获得科研成果表单"
}, },
{ {
key:"userId", type:"String", desc:"用户id" key:"userId", type:"String", desc:"用户id"
} }
], ],
binBiz:memberBiz.unitMemberUpdate bindBiz:memberBiz.unitMemberUpdate
}, },
{ {
apiName:"个人会员修改", apiName:"个人会员修改",
...@@ -252,13 +262,26 @@ export const Config = { ...@@ -252,13 +262,26 @@ export const Config = {
professionalCERTUrl:{type:'String', desc:'个人工作证明扫描件'}, professionalCERTUrl:{type:'String', desc:'个人工作证明扫描件'},
auxiliaryMaterial:{type:'[String]', desc:'论文发表或成绩材料'}, auxiliaryMaterial:{type:'[String]', desc:'论文发表或成绩材料'},
} }
},
{
key:"userId", type:"String", desc:"用户id"
} }
], ],
binBiz:memberBiz.individualMemberUpdate bindBiz:memberBiz.individualMemberUpdate
}, },
{ {
apiName:"单位入会流程1", apiName:"发送短信验证码",
subUrl:'/memberdb/unitmemberregister', 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:[ param:[
{ {
key:"form", type:"Object", sub: key:"form", type:"Object", sub:
...@@ -268,15 +291,16 @@ export const Config = { ...@@ -268,15 +291,16 @@ export const Config = {
pwd:{type:'String', desc:'密码'}, pwd:{type:'String', desc:'密码'},
confirmation:{type:'String', desc:'确认密码'}, confirmation:{type:'String', desc:'确认密码'},
phone:{type:'String', desc:'联系人手机号'}, phone:{type:'String', desc:'联系人手机号'},
code:{type:'String', desc:'验证码'}, codeNum:{type:'String', desc:'验证码'},
} }
} },
{key:"codeId", type:"String", desc:"验证码Id"}
], ],
binBiz:memberBiz.unitMemberRegister bindBiz:memberBiz.memberRegister1
}, },
{ {
apiName:"单位入会流程2", apiName:"个人入会流程2",
subUrl:'/memberdb/unitmember', subUrl:'/memberdb/memberregister2',
param:[ param:[
{ {
key:"form", type:"Object", sub: key:"form", type:"Object", sub:
...@@ -304,11 +328,91 @@ export const Config = { ...@@ -304,11 +328,91 @@ export const Config = {
cardUrl:{type:'[String]', desc:'个人身份证扫描件'}, cardUrl:{type:'[String]', desc:'个人身份证扫描件'},
academicCERTUrl:{type:'String', desc:'个人学历证明扫描件'}, academicCERTUrl:{type:'String', desc:'个人学历证明扫描件'},
professionalCERTUrl:{type:'String', desc:'个人工作证明扫描件'}, professionalCERTUrl:{type:'String', desc:'个人工作证明扫描件'},
auxiliaryMaterial:{type:'String', desc:'论文发表等证明工作成果或成绩的材料'}, auxiliaryMaterial:{type:'[String]', desc:'论文发表等证明工作成果或成绩的材料'},
}
},
{
key:"userId", type:"String", desc:"用户id"
}
],
bindBiz:memberBiz.memberRegister2
},
{
apiName:"单位入会流程1",
subUrl:'/memberdb/unitmemberregister1',
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:'验证码'},
}
},
{key:"codeId", type:"String", desc:"验证码Id"}
],
bindBiz:memberBiz.unitMemberRegister1
},
{
apiName:"单位入会流程2",
subUrl:'/memberdb/unitmemberregister2',
param:[
{
key:"form", type:"Object", sub:
{
unitName:{type:'String', desc:'单位名称'},
addres:{type:'String', desc:'通信地址'},
officialWebsite:{type:'String', desc:'单位网站'},
uscc:{type:'String', desc:'单位信用代码'},
legalPerson:{type:'String', desc:'法人代表'},
legalPersonPhone:{type:'String', desc:'法人联系电话'},
sheng:{type:'String', desc:'省'},
shi:{type:'String', desc:'市'},
qu:{type:'String', desc:'区'},
gongZhongHao:{type:'String', desc:'单位公众号'},
unitPhone:{type:'String', desc:'单位电话'},
contactPerson:{type:'String', desc:'日常联系人'},
contactPersonDuties:{type:'String', desc:'日常联系人职务'},
uusinessLicenseUrl:{type:'String', desc:'营业执照复印件'},
personInChargeDesc:{type:'String', desc:'单位主要负责人简介'},
/**单位信息 */
unitInfoType:{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:'院校开设专业'},
} }
},
{
key:"keyanForm", type:"Object", sub:
{
startTime:{type:'Number', desc:'开始时间'},
endTime:{type:'Number', desc:'结束时间'},
describe:{type:'String', desc:'科研描述'},
},
desc:"单位所获得科研成果表单"
},
{
key:"userId", type:"String", desc:"用户id"
} }
], ],
binBiz:memberBiz.unitMemberRegister bindBiz:memberBiz.unitMemberRegister2
} }
] ]
} }
\ No newline at end of file
...@@ -90,6 +90,12 @@ export const Config = { ...@@ -90,6 +90,12 @@ export const Config = {
param:[], param:[],
bindBiz:setEnumInterface(enumConfig.DWTYPE) bindBiz:setEnumInterface(enumConfig.DWTYPE)
}, },
{
apiName:"验证码类型",
subUrl:'/codetype',
param:[],
bindBiz:setEnumInterface(enumConfig.CODETYPE)
},
], ],
} }
...@@ -14,7 +14,7 @@ import * as memberRouter from "./member/router"; ...@@ -14,7 +14,7 @@ import * as memberRouter from "./member/router";
import * as officalWebsiteRouter from "./officalWebsite/router"; import * as officalWebsiteRouter from "./officalWebsite/router";
import * as asyncHandler from 'express-async-handler'; import * as asyncHandler from 'express-async-handler';
const Look = true;//true更新文档 const Look = false;//true更新文档
export async function setRouter(httpServer){ export async function setRouter(httpServer){
if (Look) { if (Look) {
......
...@@ -43,12 +43,12 @@ export function generateUserId() { ...@@ -43,12 +43,12 @@ export function generateUserId() {
/** /**
* 获取code的id * 获取code的id
* @param userId 用户Id * @param loginId 用户Id
* @param todaySendCount 今日发送次数 * @param todaySendCount 今日发送次数
* @returns '' * @returns ''
*/ */
export function getSMSCodeId(userId:string, todaySendCount:number) { export function getSMSCodeId(loginId:string, todaySendCount:number) {
return md5(`${userId}${todaySendCount}${new Date().valueOf()}`); return md5(`${loginId}${todaySendCount}${new Date().valueOf()}`);
} }
......
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