Commit f4a51463 by lixinming

no message

parent 5030dfac
......@@ -2,7 +2,7 @@
* 审批逻辑
*/
import { MEMBERLEVEL, MEMBERTYPE, OPERATIONREHAVIOR, PAYMENTSTATUS, REGISTERFLOW, USERREGISTERSTATE } from "../../config/enum";
import { MEMBERLEVEL, MEMBERTYPE, OPERATIONREHAVIOR, PAYMENTSTATUS, REGISTERFLOW, STATE, USERREGISTERSTATE } from "../../config/enum";
import { ERRORENUM } from "../../config/errorEnum";
import { addManyData } from "../../data/add";
import { TABLEENUM } from "../../data/models/model";
......@@ -12,6 +12,7 @@ import { generateSystemId, successResult } from "../../tools/system";
import { BizError } from "../../util/bizError";
import { extractData } from "../../util/piecemeal";
import { changeEnumValue, eccEnumValue } from "../../util/verificationEnum";
import { createOrder } from "./order";
/**
* 待审核列表 success
......@@ -24,10 +25,6 @@ import { changeEnumValue, eccEnumValue } from "../../util/verificationEnum";
* @param pageNumber 当前页
*/
export async function pendingReviewList({unitName, joinTime, memberType, sheng, shi, qu, pageNumber}) {
/**校验枚举 */
const EccFuncName = '待审核列表';
eccEnumValue(EccFuncName, '会员类型', MEMBERTYPE, memberType);
/**查询条件 */
let selectParam:any = {userRegisterState:{"$not": USERREGISTERSTATE.通过}}; //审批列表展示状态除通过外的数据
if (unitName) selectParam.unitName = unitName;
......@@ -37,13 +34,13 @@ export async function pendingReviewList({unitName, joinTime, memberType, sheng,
if (shi) selectParam.shi = shi;
if (qu) selectParam.qu = qu;
const SelectConf = ["userId", "userRegisterState", "unitName", "loginId", "phone", "askForTime", "memberLevel", "sheng", "shi", "qu"];
let dbList = await findToPage(TABLEENUM.用户表, selectParam, SelectConf, pageNumber);
const SelectFiles = ["userId", "userRegisterState", "unitName", "loginId", "phone", "askForTime", "memberLevel", "sheng", "shi", "qu"];
let dbList = await findToPage(TABLEENUM.用户表, selectParam, SelectFiles, pageNumber);
let dataCount = await findCount(TABLEENUM.用户表, selectParam);
let dataList = [];
dbList.forEach(info => {
let item:any = extractData(info, SelectConf);
let item:any = extractData(info, SelectFiles);
/**处理枚举值 */
if (!item.userRegisterState) item.userRegisterState = USERREGISTERSTATE.待审核;
else item.userRegisterState = changeEnumValue(USERREGISTERSTATE, item.userRegisterState);
......@@ -61,19 +58,46 @@ export async function pendingReviewList({unitName, joinTime, memberType, sheng,
* @returns
*/
export async function adopt({userId}) {
let oldInfo = await findOnce(TABLEENUM.用户表, {userId});
if (!oldInfo || !oldInfo.userId) throw new BizError(ERRORENUM.目标数据不存在);
let userInfo = await findOnce(TABLEENUM.用户表, {userId, isAdmin:STATE.}, ["userId", "registerFlow", "userRegisterState", "memberType", "unitName", "name"]);
if (!userInfo || !userInfo.userId) throw new BizError(ERRORENUM.目标数据不存在);
if (userInfo.memberType == MEMBERTYPE.个人会员 && userInfo.registerFlow != REGISTERFLOW.完成第二步) {
throw new BizError(ERRORENUM.不具备审批条件, `${userInfo.userId}为个人会员,并没有完成第二步`);
}
if (userInfo.memberType == MEMBERTYPE.单位会员 && userInfo.registerFlow != REGISTERFLOW.完成第三步) {
throw new BizError(ERRORENUM.不具备审批条件, `${userInfo.userId}为单位会员,并没有完成第三步`);
}
if (userInfo.userRegisterState == USERREGISTERSTATE.驳回修改) {
throw new BizError(ERRORENUM.不具备审批条件, `${userInfo.userId}当前状态为驳回修改`);
}
if (userInfo.userRegisterState == USERREGISTERSTATE.通过) {
throw new BizError(ERRORENUM.重复提交, `${userInfo.userId}当前状态为已通过`);
}
let thisDate = new Date();
const NowMs = thisDate.valueOf();
const thisYear = thisDate.getFullYear();
const thisMonth = thisDate.getMonth() + 1;
let addInfo = {
auditTime:NowMs,
joinTime:NowMs,
userRegisterState:USERREGISTERSTATE.通过,
//todo 需要确认这里有没有默认有效时间
session:getEdition(thisYear, thisMonth),
paymentStatus:PAYMENTSTATUS.未支付
};
await updateOneData(TABLEENUM.用户表, {userId}, addInfo);
await updateOneData(TABLEENUM.用户表, {userId}, {userRegisterState:USERREGISTERSTATE.通过});
//todo 创建一条初始订单
// unitName
// createOrder(userId, unitName:string, orderStartMs:number, memberLv:number, memberType:number, isFirst:boolean);
/**提交审批历史信息 */
const NowMs = new Date().valueOf();
let addApprovalHistory = {
id:generateSystemId(TABLEENUM.审批历史表, userId),
userId,
operationTime:NowMs,
operationBehavior:OPERATIONREHAVIOR.通过,
remarks:""
remarks:"通过"
};
await addManyData(TABLEENUM.审批历史表, addApprovalHistory);
......@@ -88,13 +112,25 @@ export async function adopt({userId}) {
* @returns
*/
export async function reject({userId, remarks}) {
let oldInfo = await findOnce(TABLEENUM.用户表, {userId});
if (!oldInfo || !oldInfo.userId) throw new BizError(ERRORENUM.目标数据不存在);
let userInfo = await findOnce(TABLEENUM.用户表, {userId, isAdmin:STATE.});
if (!userInfo || !userInfo.userId) throw new BizError(ERRORENUM.目标数据不存在);
if (userInfo.memberType == MEMBERTYPE.个人会员 && userInfo.registerFlow != REGISTERFLOW.完成第二步) {
throw new BizError(ERRORENUM.不具备审批条件, `${userInfo.userId}为个人会员,并没有完成第二步`);
}
if (userInfo.memberType == MEMBERTYPE.单位会员 && userInfo.registerFlow != REGISTERFLOW.完成第三步) {
throw new BizError(ERRORENUM.不具备审批条件, `${userInfo.userId}为单位会员,并没有完成第三步`);
}
if (userInfo.userRegisterState == USERREGISTERSTATE.驳回修改) {
throw new BizError(ERRORENUM.不具备审批条件, `${userInfo.userId}当前状态为驳回修改`);
}
if (userInfo.userRegisterState == USERREGISTERSTATE.通过) {
throw new BizError(ERRORENUM.重复提交, `${userInfo.userId}当前状态为已通过`);
}
/**驳回修改,修改该会员注册流程回到第二步 */
let updateParam = {
userRegisterState:USERREGISTERSTATE.驳回修改,
registerFlow:REGISTERFLOW.完成第
registerFlow:REGISTERFLOW.完成第
}
await updateOneData(TABLEENUM.用户表, {userId}, updateParam);
......@@ -119,73 +155,16 @@ export async function reject({userId, remarks}) {
* @returns
*/
export async function approvalHistoryList({userId}) {
let oldInfo = await find(TABLEENUM.审批历史表, {userId});
if (!oldInfo || !oldInfo.userId) throw new BizError(ERRORENUM.目标数据不存在);
let dataList:any = extractData(oldInfo, ["operationTime", "operationBehavior", "remarks"]);
dataList.operationBehavior = changeEnumValue(OPERATIONREHAVIOR, dataList.operationBehavior);
return dataList;
}
/**
* 待支付列表
* @param unitName 单位名称
* @param joinTime 入会时间
* @param memberType 会员类型 MEMBERTYPE
* @param paymentStatus 支付状态
* @param pageNumber 当前页
* @returns
*/
export async function toBePaidList({unitName, joinTime, memberType, paymentStatus, pageNumber}) {
/**校验枚举 */
const EccFuncName = '待审核列表';
eccEnumValue(EccFuncName, '会员类型', MEMBERTYPE, memberType);
eccEnumValue(EccFuncName, '支付状态', PAYMENTSTATUS, paymentStatus);
let selectParam:any = {};
if (unitName) selectParam.unitName = unitName;
if (joinTime) selectParam.joinTime = joinTime;
if (memberType) selectParam.memberType = memberType;
if (paymentStatus) selectParam.paymentStatus = paymentStatus;
const SelectConf = ["userId", "状态", "unitName", "loginId", "phone", "joinTime", "memberType", "lifespanStartTime", "lifespanEndTime", "paymentStatus"];
let dbList = await findToPage(TABLEENUM.用户表, selectParam, SelectConf, pageNumber);
let dataCount = await findCount(TABLEENUM.用户表, selectParam);
let dbList = await find(TABLEENUM.审批历史表, {userId});
let dataList = [];
dbList.forEach(info => {
let item:any = extractData(info, SelectConf);
item.memberType = changeEnumValue(MEMBERTYPE, item.memberType);
item.paymentStatus = changeEnumValue(PAYMENTSTATUS, item.paymentStatus);
let item:any = extractData(info, ["operationTime", "operationBehavior", "remarks"]);
item.operationBehavior = changeEnumValue(OPERATIONREHAVIOR, item.operationBehavior);
dataList.push(item);
});
return {dataList, dataCount};
}
/**
* 待支付通过
* @param param0
* @returns
*/
export async function passThroughPaid({userId}) {
let oldInfo = await findOnce(TABLEENUM.用户表, {userId});
if (!oldInfo || !oldInfo.userId) throw new BizError(ERRORENUM.目标数据不存在);
await updateOneData(TABLEENUM.用户表, {userId}, {paymentStatus:PAYMENTSTATUS.已支付});
return successResult();
return {dataList};
}
......@@ -195,10 +174,9 @@ export async function passThroughPaid({userId}) {
* @param month 入会月份
* @returns
*/
export async function getEdition(year, month) {
function getEdition(year, month) {
//起始年份和月份
const startYear = 2018;
const startMonth = 1;
let currentYear = new Date().getFullYear();
if (year > currentYear) throw new BizError(ERRORENUM.无法获取未来届次);
......
......@@ -2,7 +2,7 @@
* 会员逻辑
*/
import { MEMBERSTATE, MEMBERLEVEL, DOCUMENTTYPE, NATION, PROFCATEGORY, CODETYPE, UNITINFOTYPE, MEMBERTYPE, REGISTERFLOW, SEX, USERREGISTERSTATE, OPERATIONREHAVIOR, STATE, BANXUELEIXING } from "../../config/enum";
import { MEMBERSTATE, MEMBERLEVEL, DOCUMENTTYPE, NATION, PROFCATEGORY, CODETYPE, MEMBERTYPE, REGISTERFLOW, SEX, USERREGISTERSTATE, OPERATIONREHAVIOR, STATE, BANXUELEIXING, UNITMEMBERTYPE } from "../../config/enum";
import { ERRORENUM } from "../../config/errorEnum";
import { TABLEENUM } from "../../data/models/model";
import { find, findCount, findOnce, findOnceToSort, findToPage, findToSort } from "../../data/select";
......@@ -66,7 +66,7 @@ export async function unitMemberList({unitName, joinTime, unitMemberType, member
const UnitBasicConfig = ["userId", "unitName", "addres", "uscc", "legalPerson", "legalPersonPhone", "contactPerson", "contactPersonDuties", "sheng", "shi", "qu",
"uusinessLicenseUrl", "education"];
const UnitConfig = ["unitInfoType", "yuanXiaoBanXueLeiXing", "yuanXiaoZhuGuanBuMen", "yuanXiaoFuZeRen", "yuanXiaoFuZeRenZhiWu", "yuanXiaoFuZeRenDianHua",
const UnitConfig = ["unitMemberType", "yuanXiaoBanXueLeiXing", "yuanXiaoZhuGuanBuMen", "yuanXiaoFuZeRen", "yuanXiaoFuZeRenZhiWu", "yuanXiaoFuZeRenDianHua",
"yuanXiaoBanGongFuZeRenZhiWu", "yuanXiaoBanGongFuZeRenDianHua", "yuanXiaoXueShengZongRenShu", "yuanXiaoJiaoZhiGongZongRenShu", "yuanXiaoJianZhuMianJi",
"yuanXiaoKeYanFuZeRen", "yuanXiaoKeYanFuZeRenDianHua", "jiaoXueFuZeRenXinMing", "jiaoXueFuZeRenDianHua", "ZhuYaoFuZeRenYouXiang"];
......@@ -98,7 +98,7 @@ export async function unitMemberUpdate({form, keyanForm, userId}) {
/**校验枚举 */
const EccFuncName = '单位会员修改';
eccEnumValue(EccFuncName, '单位信息类型', UNITINFOTYPE, form.unitInfoType);
eccEnumValue(EccFuncName, '单位信息类型', UNITMEMBERTYPE, form.unitMemberType);
if (!oldInfo || !oldInfo.userId) throw new BizError(ERRORENUM.目标数据不存在);
/**修改会员用户信息 */
......
......@@ -2,7 +2,7 @@
* 用户逻辑
*/
import { DOCUMENTTYPE, MEMBERLEVEL, MEMBERTYPE, NATION, PROFCATEGORY, SEX, STATE, UNITINFOTYPE } from "../../config/enum";
import { DOCUMENTTYPE, MEMBERLEVEL, MEMBERTYPE, NATION, PROFCATEGORY, SEX, STATE } from "../../config/enum";
import { ERRORCODEENUM, ERRORENUM } from "../../config/errorEnum";
import { addOneData } from "../../data/add";
import { TABLEENUM } from "../../data/models/model";
......
......@@ -274,17 +274,6 @@ export enum BRANCHPOSITION {
副秘书长,
委员
}
/**
* 单位信息类型
*/
export enum UNITINFOTYPE {
类型1 = 1,
类型2,
类型3,
类型4
}
/**
......
......@@ -32,7 +32,8 @@ export enum ERRORENUM {
微信支付无法退回发票请求,
流程3不支持会员身份非单位会员,
数据状态错误,
用户已注册成功
用户已注册成功,
不具备审批条件
}
export enum ERRORCODEENUM {
......
......@@ -332,7 +332,7 @@ const ModelArray = [
source:TABLESOURCEENUM.mongo,
schema:{
userId:{ type:'String', index:true },//唯一标识
askForTime:'Number',//申请时间 第一步流程发起时间
askForTime:'Number',//申请时间 注册流程发起时间
auditTime:'Number',//审核时间 会员审核列表审核时间
joinTime:'Number',//入会时间 审核通过时间
memberType:{type:'Number'},//会员类型 枚举MEMBERTYPE
......@@ -349,12 +349,7 @@ const ModelArray = [
registerFlow:{type:'Number', default:REGISTERFLOW.未注册},//会员注册流程 枚举
isAdmin:{ type:'Number', index:true, default:STATE.},//是否是管理员
userRegisterState:{type:'Number', default:USERREGISTERSTATE.待审核},//用户注册状态 枚举USERREGISTERSTATE
documentType:'Number',//证件类型 枚举DOCUMENTTYPE
memberState:{type:'Number', default:MEMBERSTATE.正常},//会员状态 枚举MEMBERSTATE
individualMemberType:{type: 'Number'},//个人会员类型 枚举INDIVIDUALMEMBERTYPE
memberLevel:'Number',//会员等级、职务 枚举MEMBERLEVEL
unitMemberType:{type: 'Number'},//单位会员类型 枚举UNITMEMBERTYPE
profCategory:'Number',//专业类别 枚举PROFCATEGORY
certificateType:'Number',//证书类型 枚举CERTIFICATETYPE
/**宽限期状态 */
isGracePeriod:{type:'Number', default:0},//是否宽限期 0:否, 1:是
......@@ -368,6 +363,7 @@ const ModelArray = [
name:{type:'String'},//真实姓名
sex:'Number',//性别 枚举
documentId:'String',//证件号码 身份证
documentType:'Number',//证件类型 枚举DOCUMENTTYPE
birth:'Number',//出生年月 时间戳
nation:'Number',//民族 枚举
sheng:'String',//省 共用
......@@ -378,12 +374,15 @@ const ModelArray = [
photoUrl:'String',//证件照图片地址 蓝底证件照
/**第二步流程表单(个人)【专业信息】 */
workUnit:'String',//工作单位
memberLevel:'Number',//会员等级、职务 枚举MEMBERLEVEL
workTitle:'String',//职称
studyResume:'String',//学习简历
workResume:'String',//工作简历
profAchievement:'String',//专业成果
otherEMP:'String',//其他任职情况
otherPROF:'String',//其他专业情况
individualMemberType:{type: 'Number'},//个人会员类型 枚举INDIVIDUALMEMBERTYPE
profCategory:'Number',//专业类别 枚举PROFCATEGORY
/**第二步流程表单(个人)【其他附件】 */
cardUrl:{type:'[String]', default:[]},//身份证正反面图片地址
academicCERTUrl:'String',//学历证明图片地址
......@@ -401,7 +400,7 @@ const ModelArray = [
contactPersonPhone:'String',//日常联系人手机号码
uusinessLicenseUrl:'String',//营业执照 图片地址
/**第二步流程表单(单位)【单位信息】 */
unitInfoType:'Number',//单位信息类型 枚举UNITINFOTYPE
unitMemberType:{type: 'Number'},//单位会员类型 枚举UNITMEMBERTYPE
yuanXiaoBanXueLeiXing:'Number',//院校办学类型 枚举BANXUELEIXING
yuanXiaoZhuGuanBuMen:'String',//院校主管部门
yuanXiaoFuZeRen:'String',//院校主要负责人
......@@ -426,7 +425,7 @@ const ModelArray = [
source:TABLESOURCEENUM.mongo,
schema:{
id:{ type:'String', index:true },
userId:'String',//用户id 外键
userId:{type:'String', index:true},//用户id
startTime:'Number',//开始时间
endTime:'Number',//结束时间
describe:'String',//描述
......
import { getEdition } from "./biz/member/examine";
import { initConfig, systemConfig} from "./config/serverConfig";
import { initDataBaseModel } from "./data/db/db";
import { httpServer } from "./net/http_server";
......
......@@ -106,7 +106,7 @@ export const Config = {
auxiliaryMaterial:{type:'[String]', desc:'法人邮箱', notMustHave:false},
contactPersonPhone:{type:'[String]', desc:'日常联系人手机', notMustHave:false},
/**单位信息 */
unitInfoType:{type:'Number', desc:'单位信息类型', notMustHave:false},
unitMemberType:{type:'Number', desc:'单位信息类型', notMustHave:false},
unitMail:{type:'[String]', desc:'单位电子邮箱', notMustHave:false},
yuanXiaoBanXueLeiXing:{type:'String', desc:'院校办学类型', notMustHave:false},
yuanXiaoZhuGuanBuMen:{type:'String', desc:'院校主管部门', notMustHave:false},
......@@ -261,7 +261,7 @@ export const Config = {
qu:{type:'String', desc:'区'},
uusinessLicenseUrl:{type:'String', desc:'营业执照'},
/**单位信息 */
unitInfoType:{type:'Number', desc:'单位信息类型'},
unitMemberType:{type:'Number', desc:'单位信息类型'},
yuanXiaoBanXueLeiXing:{type:'String', desc:'院校办学类型'},
yuanXiaoZhuGuanBuMen:{type:'String', desc:'院校主管部门'},
yuanXiaoFuZeRen:{type:'String', desc:'院校主要负责人'},
......
......@@ -96,13 +96,6 @@ export const Config = {
bindBiz:publicBiz.setEnumInterface
},
{
apiName:"单位信息类型",
subUrl:'/unitinfotype',
param:[],
defaultParam:enumConfig.UNITINFOTYPE,
bindBiz:publicBiz.setEnumInterface
},
{
apiName:"动态资讯类型列表",
subUrl:'/dongtaizixuntype',
param:[],
......
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