Commit c24b76f7 by chenjinjing

待审核

parent 8d7b9664
...@@ -2,17 +2,22 @@ ...@@ -2,17 +2,22 @@
* 审批逻辑 * 审批逻辑
*/ */
import { MEMBERLEVEL, MEMBERSTATE, MEMBERTYPE, USERREGISTERSTATE } from "../../config/enum"; import { MEMBERLEVEL, MEMBERSTATE, MEMBERTYPE, OPERATIONREHAVIOR, PAYMENTSTATUS, REGISTERFLOW, USERREGISTERSTATE } from "../../config/enum";
import { ERRORENUM } from "../../config/errorEnum";
import { addManyData } from "../../data/add";
import { TABLEENUM } from "../../data/models/model"; import { TABLEENUM } from "../../data/models/model";
import { findCount, findToPage } from "../../data/select"; import { find, findCount, findOnce, findToPage } from "../../data/select";
import { updateOneData } from "../../data/update";
import { generateSystemId, successResult } from "../../tools/system";
import { BizError } from "../../util/bizError";
import { extractData } from "../../util/piecemeal"; import { extractData } from "../../util/piecemeal";
import { changeEnumValue } from "../../util/verificationEnum"; import { changeEnumValue } from "../../util/verificationEnum";
/** /**
* 待审核 * 待审核列表
* @param param0 * @param param0
*/ */
export async function auditList({unitName, joinTime, memberType, sheng, shi, qu, pageNumber}) { export async function pendingReviewList({unitName, joinTime, memberType, 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;
...@@ -29,9 +34,9 @@ export async function auditList({unitName, joinTime, memberType, sheng, shi, qu, ...@@ -29,9 +34,9 @@ export async function auditList({unitName, joinTime, memberType, sheng, shi, qu,
let dataList = []; let dataList = [];
dbList.forEach(info => { dbList.forEach(info => {
let item:any = extractData(info, selectConf); let item:any = extractData(info, selectConf);
changeEnumValue(USERREGISTERSTATE, item.userRegisterState); if (!item.userRegisterState) item.userRegisterState = "待审核";
if (!item.memberLevel) item.memberLevel = "未选择"; else changeEnumValue(USERREGISTERSTATE, item.userRegisterState);
else changeEnumValue(MEMBERLEVEL, item.memberLevel); changeEnumValue(MEMBERLEVEL, item.memberLevel);
dataList.push(item); dataList.push(item);
}); });
...@@ -39,14 +44,119 @@ export async function auditList({unitName, joinTime, memberType, sheng, shi, qu, ...@@ -39,14 +44,119 @@ export async function auditList({unitName, joinTime, memberType, sheng, shi, qu,
} }
/**
* 通过审核
* @param param0
* @returns
*/
export async function adopt({userId}) {
let oldInfo = await findOnce(TABLEENUM.用户表, {userId});
if (!oldInfo || !oldInfo.userId) throw new BizError(ERRORENUM.目标数据不存在);
await updateOneData(TABLEENUM.用户表, {userId}, {userRegisterState:USERREGISTERSTATE.通过});
let now = new Date().valueOf();
let addApprovalHistory = {
id:generateSystemId(TABLEENUM.审批历史表, userId),
userId,
operationTime:now,
operationBehavior:OPERATIONREHAVIOR.通过,
remarks:""
};
await addManyData(TABLEENUM.审批历史表, addApprovalHistory);
return successResult();
}
/**
* 驳回
* @param param0
* @returns
*/
export async function reject({userId, remarks}) {
let oldInfo = await findOnce(TABLEENUM.用户表, {userId});
if (!oldInfo || !oldInfo.userId) throw new BizError(ERRORENUM.目标数据不存在);
await updateOneData(TABLEENUM.用户表, {userId}, {userRegisterState:USERREGISTERSTATE.驳回修改});
let selectParam = {};
if (oldInfo.memberType == MEMBERTYPE.个人会员) {
selectParam = {registerFlow:REGISTERFLOW.个人会员注册2}
} else {
selectParam = {registerFlow:REGISTERFLOW.单位会员注册2}
}
await updateOneData(TABLEENUM.用户表, {userId}, selectParam);
let now = new Date().valueOf();
let addApprovalHistory = {
id:generateSystemId(TABLEENUM.审批历史表, userId),
userId,
operationTime:now,
operationBehavior:OPERATIONREHAVIOR.驳回修改,
remarks
};
await addManyData(TABLEENUM.审批历史表, addApprovalHistory);
return successResult();
}
/**
* 审核历史
*/
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"]);
changeEnumValue(OPERATIONREHAVIOR, dataList.operationBehavior);
return dataList;
}
/**
* 待支付列表
*/
export async function toBePaidList({unitName, joinTime, memberType, paymentStatus, pageNumber}) {
let selectParam:any = {};
if (unitName) selectParam.unitName = unitName;
if (joinTime) selectParam.joinTime = joinTime;
if (memberType) selectParam.memberType = memberType;
if (paymentStatus) selectParam.paymentStatus = paymentStatus;
let 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 dataList = [];
dbList.forEach(info => {
let item:any = extractData(info, selectConf);
changeEnumValue(MEMBERTYPE, item.memberType);
changeEnumValue(PAYMENTSTATUS, item.paymentStatus);
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();
}
...@@ -62,6 +172,38 @@ export async function auditList({unitName, joinTime, memberType, sheng, shi, qu, ...@@ -62,6 +172,38 @@ export async function auditList({unitName, joinTime, memberType, sheng, shi, qu,
/**
* 获取届次
* @param year 入会年份
* @param month 入会月份
* @returns
*/
export async function getEdition(year, month) {
//起始年份和月份
const startYear = 2018;
const startMonth = 1;
let currentYear = new Date().getFullYear();
if (year > currentYear) throw new BizError(ERRORENUM.无法获取未来届次);
//计算从起始时间给定时间的总月份数
let totalMonth = (year - startYear) * 12 + month;
//每届是6个月
let sessions = Math.ceil(totalMonth / 6);
//每10届一次
let times = Math.ceil(sessions / 10);
let sessionNumber = sessions - (times - 1) * 10 //届次是从第一次第一届开始,所以需要减一
return {frequency:"第"+times+"次", session:"第"+sessionNumber+"届"};
}
......
...@@ -434,3 +434,38 @@ export enum PAYMENTTYPE { ...@@ -434,3 +434,38 @@ export enum PAYMENTTYPE {
银行转账, 银行转账,
线下支付 线下支付
} }
/**
* 院校办学类型 yuanXiaoBanXueLeiXing
*/
export enum BANXUELEIXING {
中职 = 1,
高职,
本科,
社会培训,
非教学
}
/**
* 审批历史操作行为
*/
export enum OPERATIONREHAVIOR {
待审核 = 1,
重新提交,
驳回修改,
通过,
用户提交
}
/**
* 支付状态
*/
export enum PAYMENTSTATUS {
已支付 = 1,
未支付,
银行转账,
}
...@@ -24,7 +24,8 @@ export enum ERRORENUM { ...@@ -24,7 +24,8 @@ export enum ERRORENUM {
发送验证码频率过快, 发送验证码频率过快,
验证码错误, 验证码错误,
验证码失效, 验证码失效,
验证码过期 验证码过期,
无法获取未来届次
} }
export enum ERRORCODEENUM { export enum ERRORCODEENUM {
......
...@@ -85,6 +85,7 @@ enum TABLEENUM { ...@@ -85,6 +85,7 @@ enum TABLEENUM {
订单表 = 'order', 订单表 = 'order',
单位所获得科研成果表 = "scientificResearch", 单位所获得科研成果表 = "scientificResearch",
验证码表 = "code", 验证码表 = "code",
审批历史表 = "approvalHistory",
} }
const ModelArray = [ const ModelArray = [
...@@ -367,37 +368,36 @@ const ModelArray = [ ...@@ -367,37 +368,36 @@ const ModelArray = [
isGracePeriod:{type:'Number', default:0},//是否宽限期 0:否, 1:是 isGracePeriod:{type:'Number', default:0},//是否宽限期 0:否, 1:是
gracePeriodEndTime:'Number',//宽限期到期时间 时间戳 gracePeriodEndTime:'Number',//宽限期到期时间 时间戳
certificateType:'Number',//证书类型 枚举 certificateType:'Number',//证书类型 枚举
education:'Number',//学历
applicationForm:'String',//入会申请表
unitName:'String',//单位名称 unitName:'String',//单位名称
officialWebsite:'String',//官网 单位网址
uscc:'String',//统一信用代码 uscc:'String',//统一信用代码
legalPerson:'String',//法人 legalPerson:'String',//法人
legalPersonMail:'String',//法人邮箱
legalPersonPhone:'String',//法人代表联系电话 legalPersonPhone:'String',//法人代表联系电话
gongZhongHao:'String',//单位公众号
unitPhone:'Number',//单位电话
contactPerson:'String',//日常联系人 contactPerson:'String',//日常联系人
contactPersonDuties:'String',//日常联系人职务 contactPersonDuties:'String',//日常联系人职务
contactPersonPhone:'String',//日常联系人手机
unitMail:'String',//单位电子邮箱
uusinessLicenseUrl:'String',//营业执照 图片地址 uusinessLicenseUrl:'String',//营业执照 图片地址
personInChargeDesc:'String',//单位主要负责人或负责人集体描述
/**单位会员信息 */ /**单位会员信息 */
unitInfoType:'Number',//单位信息类型 枚举 unitInfoType:'Number',//单位信息类型 枚举
yuanXiaoBanXueLeiXing:'String',//院校办学类型 yuanXiaoBanXueLeiXing:'Number',//院校办学类型 枚举
yuanXiaoZhuGuanBuMen:'String',//院校主管部门 yuanXiaoZhuGuanBuMen:'String',//院校主管部门
yuanXiaoFuZeRen:'String',//院校主要负责人 yuanXiaoFuZeRen:'String',//院校主要负责人
yuanXiaoFuZeRenZhiWu:'String',//院校主要负责人职务 yuanXiaoFuZeRenZhiWu:'String',//院校主要负责人职务
yuanXiaoFuZeRenDianHua:'String',//院校主要负责人电话 yuanXiaoFuZeRenDianHua:'String',//院校主要负责人电话
yuanXiaoBanGongFuZeRen:'String',//院校办公负责人 yuanXiaoBanGongFuZeRen:'String',//院校办公负责人
yuanXiaoBanGongFuZeRenZhiWu:'String',//院校办公负责人职务
yuanXiaoBanGongFuZeRenDianHua:'String',//院校办公负责人电话 yuanXiaoBanGongFuZeRenDianHua:'String',//院校办公负责人电话
yuanXiaoKeYanFuZeRen:'String',//院校办公负责人 yuanXiaoKeYanFuZeRen:'String',//院校科研负责人
yuanXiaoKeYanFuZeRenZhiWu:'String',//院校办公负责人职务 yuanXiaoKeYanFuZeRenDianHua:'String',//院校科研负责人电话
yuanXiaoKeYanFuZeRenDianHua:'String',//院校办公负责人电话
yuanXiaoXueShengZongRenShu:'String',//学生总人数 yuanXiaoXueShengZongRenShu:'String',//学生总人数
yuanXiaoJiaoZhiGongZongRenShu:'String',//教职工总人数 yuanXiaoJiaoZhiGongZongRenShu:'String',//教职工总人数
yuanXiaoJianZhuMianJi:'String',//院校建筑面积 jiaoXueFuZeRenXinMing:'String',//教学负责人姓名
yuanXiaoGaoJiZhiCheng:'String',// 院校职称 jiaoXueFuZeRenDianHua:'String',//教学负责人电话
yuanXiaoKaiSheZhuanYe:'String',//院校开设专业数 ZhuYaoFuZeRenYouXiang:'String',//主要负责人邮箱
/**个人会员信息 */ /**个人会员信息 */
cardUrl:{type:'[String]', default:[]},//身份证正反面图片地址 cardUrl:{type:'[String]', default:[]},//身份证正反面图片地址
...@@ -411,6 +411,7 @@ const ModelArray = [ ...@@ -411,6 +411,7 @@ const ModelArray = [
otherEMP:'String',//其他任职情况 otherEMP:'String',//其他任职情况
otherPROF:'String',//其他专业情况 otherPROF:'String',//其他专业情况
paymentStatus:'Number',//支付状态
} }
}, },
{ {
...@@ -459,6 +460,17 @@ const ModelArray = [ ...@@ -459,6 +460,17 @@ const ModelArray = [
isUse:{type:'Boolean', default:false},//是否使用 默认false isUse:{type:'Boolean', default:false},//是否使用 默认false
} }
}, },
{
tableName:TABLEENUM.审批历史表,
source:TABLESOURCEENUM.mongo,
schema:{
id:{ type:'String', index:true },
userId:'String',//用户id 外键
operationTime:{ type:'Number', index:true },//操作时间
operationBehavior:{ type:'Number', index:true },//操作行为 枚举
remarks:{ type:'String', index:true },//备注
}
}
]; ];
......
import { getEdition } from "./biz/member/examine";
import { initConfig, systemConfig} from "./config/serverConfig"; import { initConfig, systemConfig} from "./config/serverConfig";
import { initDataBaseModel } from "./data/db/db"; import { initDataBaseModel } from "./data/db/db";
import { httpServer } from "./net/http_server"; import { httpServer } from "./net/http_server";
...@@ -14,4 +15,4 @@ async function lanuch() { ...@@ -14,4 +15,4 @@ async function lanuch() {
console.log('This indicates that the server is started successfully.'); console.log('This indicates that the server is started successfully.');
} }
lanuch(); lanuch();
\ No newline at end of file
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