Commit 79efc42c by lixinming

no message

parent d793fb9c
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* 会员管理 【权限管理】success * 会员管理 【权限管理】success
*/ */
import { INDIVIDUALMEMBERTYPE, MEMBERLEVEL, MEMBERSTATE, MEMBERTYPE, MEMBERTYPEECCENUM, UNITMEMBERTYPE } from "../../config/enum"; import { INDIVIDUALMEMBERTYPE, MEMBERLEVEL, MEMBERSTATE, MEMBERTYPE, MEMBERTYPEECCENUM, STATE, UNITMEMBERTYPE } 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 { findCount, findOnce, findToPage } from "../../data/select"; import { findCount, findOnce, findToPage } from "../../data/select";
...@@ -23,7 +23,7 @@ import { changeEnumValue, eccEnumValue } from "../../util/verificationEnum"; ...@@ -23,7 +23,7 @@ import { changeEnumValue, eccEnumValue } from "../../util/verificationEnum";
*/ */
export async function getAuthority({unitName, memberLevel, memberCategory, pageNumber}) { export async function getAuthority({unitName, memberLevel, memberCategory, pageNumber}) {
/**查询条件 */ /**查询条件 */
let selectParam:any = {}; let selectParam:any = {isAdmin:STATE.};
if (unitName) selectParam.unitName = unitName; if (unitName) selectParam.unitName = unitName;
if (memberLevel) selectParam.memberLevel = memberLevel; if (memberLevel) selectParam.memberLevel = memberLevel;
if (memberCategory) { if (memberCategory) {
...@@ -31,20 +31,18 @@ export async function getAuthority({unitName, memberLevel, memberCategory, pageN ...@@ -31,20 +31,18 @@ export async function getAuthority({unitName, memberLevel, memberCategory, pageN
else selectParam.individualMemberType = memberCategory; else selectParam.individualMemberType = memberCategory;
} }
const SelectFiles = ["userId", "memberState", "unitName", "name", "memberLevel", "memberType", "individualMemberType", "unitMemberType"]; const SelectFiles = ["userId", "memberState", "unitName", "name", "memberLevel", "memberType", "individualMemberType", "unitMemberType", "memberCategory"];
let dbList = await findToPage(TABLEENUM.用户表, selectParam, SelectFiles, pageNumber); let dbList = await findToPage(TABLEENUM.用户表, selectParam, SelectFiles, pageNumber);
let dataCount = await findCount(TABLEENUM.用户表, selectParam); let dataCount = await findCount(TABLEENUM.用户表, selectParam);
const ResultFiles = ["userId", "memberState", "memberLevel", "memberType"]; const ResultFiles = ["userId", "memberState", "memberLevel", "memberType", "unitName"];
let dataList = []; let dataList = [];
dbList.forEach(info => { dbList.forEach(info => {
let item:any = extractData(info, ResultFiles); let item:any = extractData(info, ResultFiles);
if (info.memberType == MEMBERTYPE.个人会员) { if (info.memberType == MEMBERTYPE.个人会员) {
item.unitName = info.name;
item.memberCategory = changeEnumValue(INDIVIDUALMEMBERTYPE, info.individualMemberType);//会员类别/级别 item.memberCategory = changeEnumValue(INDIVIDUALMEMBERTYPE, info.individualMemberType);//会员类别/级别
} }
else{ else{
item.unitName = info.unitName;
item.memberCategory = changeEnumValue(UNITMEMBERTYPE, info.unitMemberType);//会员类别/级别 item.memberCategory = changeEnumValue(UNITMEMBERTYPE, info.unitMemberType);//会员类别/级别
} }
item.memberState = changeEnumValue(MEMBERSTATE, item.memberState); item.memberState = changeEnumValue(MEMBERSTATE, item.memberState);
...@@ -108,21 +106,19 @@ export async function freeze({id}) { ...@@ -108,21 +106,19 @@ export async function freeze({id}) {
*/ */
export async function authorityEcho({id}) { export async function authorityEcho({id}) {
const SelectFiles = ["userId", "unitName", "name", "memberLevel", "memberType", "individualMemberType", "unitMemberType"]; const SelectFiles = ["userId", "unitName", "name", "memberLevel", "memberType", "individualMemberType", "unitMemberType"];
let dbList = await findOnce(TABLEENUM.用户表, {userId:id}, SelectFiles); let dbInfo = await findOnce(TABLEENUM.用户表, {userId:id}, SelectFiles);
if (!dbList || !dbList.userId) throw new BizError(ERRORENUM.目标数据不存在); if (!dbInfo || !dbInfo.userId) throw new BizError(ERRORENUM.目标数据不存在);
const ResultFiles = ["unitName", "name", "memberLevel", "memberType"]; const ResultFiles = ["unitName", "name", "memberLevel", "memberType"];
let dataInfo:any = extractData(dbList, ResultFiles); let dataInfo:any = extractData(dbInfo, ResultFiles);
if (dataInfo.memberType == MEMBERTYPE.个人会员) { if (dataInfo.memberType == MEMBERTYPE.个人会员) {
dataInfo.unitName = dataInfo.name; dataInfo.memberCategory = changeEnumValue(INDIVIDUALMEMBERTYPE, dbInfo.individualMemberType);//会员类别/级别
dataInfo.memberCategory = changeEnumValue(INDIVIDUALMEMBERTYPE, dataInfo.individualMemberType);//会员类别/级别
} }
else{ else{
dataInfo.unitName = dataInfo.unitName; dataInfo.memberCategory = changeEnumValue(UNITMEMBERTYPE, dbInfo.unitMemberType);//会员类别/级别
dataInfo.memberCategory = changeEnumValue(UNITMEMBERTYPE, dataInfo.unitMemberType);//会员类别/级别
} }
dataInfo.memberLevel = changeEnumValue(MEMBERLEVEL, dataInfo.memberLevel);//会员等级、职务 dataInfo.memberLevel = changeEnumValue(MEMBERLEVEL, dbInfo.memberLevel);//会员等级、职务
return {dataInfo}; return {dataInfo};
} }
......
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
import { MEMBERSTATE, ORDERSTATE, PAYMENTSTATUS, PAYMENTTYPE, RECEIPTCONFIRMATION, STATE, WEICHARTPAYSTATE } from "../../config/enum"; import { MEMBERSTATE, ORDERSTATE, PAYMENTSTATUS, PAYMENTTYPE, RECEIPTCONFIRMATION, STATE, WEICHARTPAYSTATE } from "../../config/enum";
import { TABLEENUM } from "../../data/models/model"; import { TABLEENUM } from "../../data/models/model";
import { findCount, findOnce, findOnceToSort } from "../../data/select"; import { findCount, findOnce, findOnceToSort } from "../../data/select";
import { eccEnumValue } from "../../util/verificationEnum";
import * as path from "path"; import * as path from "path";
const WxPay = require('wechatpay-node-v3'); const WxPay = require('wechatpay-node-v3');
import * as fs from 'fs'; import * as fs from 'fs';
...@@ -32,10 +31,13 @@ const pay = new WxPay({ ...@@ -32,10 +31,13 @@ const pay = new WxPay({
* @returns * @returns
*/ */
export async function placeAnOrder({id}) { export async function placeAnOrder({id}) {
let orderInfo = await findOnce(TABLEENUM.订单表, {id}, ["id", "loginId", "userId", "memberCategory", "money", "orderCycleStart", "orderCycleEnd","weChartState", "state"]); let orderInfo = await findOnce(TABLEENUM.订单表, {id}, ["id", "loginId", "userId", "memberCategory", "money", "orderCycleStart", "orderCycleEnd","weChartState", "state", "weChartCreatePayMs"]);
if (!orderInfo || !orderInfo.id) throw new BizError(ERRORENUM.订单不存在); if (!orderInfo || !orderInfo.id) throw new BizError(ERRORENUM.订单不存在);
if (orderInfo.state == ORDERSTATE.已支付) throw new BizError(ERRORENUM.该订单已支付); if (orderInfo.state == ORDERSTATE.已支付) throw new BizError(ERRORENUM.该订单已支付);
if (orderInfo.weChartState != WEICHARTPAYSTATE.未提交 ) throw new BizError(ERRORENUM.该订单正在支付); if (orderInfo.weChartCreatePayMs && orderInfo.weChartState == WEICHARTPAYSTATE.未支付) {
if (new Date(orderInfo.weChartCreatePayMs).valueOf() < (new Date().valueOf() + (15 * 60 * 1000)) ) throw new BizError(ERRORENUM.该订单正在支付);
}
/**生成 out_trade_no */ /**生成 out_trade_no */
let out_trade_no = generateWXOrderId(orderInfo.memberCategory, orderInfo.userId); let out_trade_no = generateWXOrderId(orderInfo.memberCategory, orderInfo.userId);
let desc = `${orderInfo.loginId}_${moment(orderInfo.orderCycleStart).format("YYYY-MM-DD")}${moment(orderInfo.orderCycleEnd).format("YYYY-MM-DD")}`; let desc = `${orderInfo.loginId}_${moment(orderInfo.orderCycleStart).format("YYYY-MM-DD")}${moment(orderInfo.orderCycleEnd).format("YYYY-MM-DD")}`;
...@@ -55,29 +57,48 @@ export async function placeAnOrder({id}) { ...@@ -55,29 +57,48 @@ export async function placeAnOrder({id}) {
const result = await pay.transactions_native(Param); const result = await pay.transactions_native(Param);
if (result.status != 200) throw new BizError(ERRORENUM.调起微信支付失败); if (result.status != 200) throw new BizError(ERRORENUM.调起微信支付失败);
await updateOneData(TABLEENUM.订单表, {id}, {weChartPR:out_trade_no, paymentMethod:PAYMENTTYPE.微信支付, weChartState:WEICHARTPAYSTATE.未支付 }); let updateInfo = {
weChartCreatePayMs:new Date().valueOf(),
weChartPR:out_trade_no, paymentMethod:PAYMENTTYPE.微信支付, weChartState:WEICHARTPAYSTATE.未支付
};
await updateOneData(TABLEENUM.订单表, {id}, updateInfo );
return {code_url:result.code_url, weChartPR:out_trade_no}; return {code_url:result.code_url, weChartPR:out_trade_no};
} }
async function close(id:string) {
await updateOneData(TABLEENUM.订单表, {id}, { weChartState:WEICHARTPAYSTATE.未提交, weChartCreatePayMs:0 });
return {state:WEICHARTPAYSTATE.未提交, msg:"订单已关闭"};
}
/** /**
* 订单查询状态【前端调用】 * 订单查询状态【前端调用】
*/ */
export async function orderState({id, weChartPR}) { export async function orderState({id, weChartPR}) {
let orderInfo = await findOnce(TABLEENUM.订单表, {id, weChartPR}, ["id"]); let orderInfo = await findOnce(TABLEENUM.订单表, {id, weChartPR}, ["id", "state", "weChartCreatePayMs", "weChartState"]);
if (!orderInfo || !orderInfo.id) throw new BizError(ERRORENUM.订单不存在); if (!orderInfo || !orderInfo.id) throw new BizError(ERRORENUM.订单不存在);
if (orderInfo.state == ORDERSTATE.已支付) { if (orderInfo.state == ORDERSTATE.已支付) {
return {state:WEICHARTPAYSTATE.已支付, msg:"已支付"};//已支付 return {state:WEICHARTPAYSTATE.已支付, msg:"已支付"};//已支付
} }
const result = await pay.query({out_trade_no: weChartPR}); if (orderInfo.weChartState == WEICHARTPAYSTATE.未支付) {
if (result.status != 200 && result.status != 204 ) throw new BizError(ERRORENUM.查看微信支付状态失败); if (!orderInfo.weChartCreatePayMs) return {state:WEICHARTPAYSTATE.未提交, msg:"订单未提交"};
if (result.trade_state == 'CLOSED' ) { if ( (new Date(orderInfo.weChartCreatePayMs).valueOf() + (15 * 60 * 1000)) > new Date().valueOf() ) {
await updateOneData(TABLEENUM.订单表, {id}, { weChartState:WEICHARTPAYSTATE.未支付 }); const weChartResult = await pay.query({out_trade_no: weChartPR});
return {state:WEICHARTPAYSTATE.未提交, msg:"订单已关闭"}; if (weChartResult.status != 200 && weChartResult.status != 204 ) throw new BizError(ERRORENUM.查看微信支付状态失败);
if (weChartResult.trade_state == 'CLOSED' ) {
await updateOneData(TABLEENUM.订单表, {id}, { weChartState:WEICHARTPAYSTATE.未提交, weChartCreatePayMs:0 });
let result = await close(id);
return result;
} }
return {state:WEICHARTPAYSTATE.未支付, msg:result.trade_state_desc}; return {state:WEICHARTPAYSTATE.未支付, msg:weChartResult.trade_state_desc};
} else {
/**超过15分钟主动关闭订单 */
let result = await close(id);
return result;
}
}
return {state:WEICHARTPAYSTATE.未提交, msg:"订单未提交"};
} }
...@@ -90,7 +111,7 @@ export async function orderClose({id, weChartPR}) { ...@@ -90,7 +111,7 @@ export async function orderClose({id, weChartPR}) {
await pay.close(weChartPR); await pay.close(weChartPR);
await updateOneData(TABLEENUM.订单表, {id}, { weChartState:WEICHARTPAYSTATE.未提交 }); await close(id);
return successResult(); return successResult();
} }
...@@ -113,6 +134,7 @@ export async function payCallback(body) { ...@@ -113,6 +134,7 @@ export async function payCallback(body) {
state:ORDERSTATE.已支付, state:ORDERSTATE.已支付,
paymentMethod:PAYMENTTYPE.微信支付, paymentMethod:PAYMENTTYPE.微信支付,
payTime:new Date().valueOf(), payTime:new Date().valueOf(),
weChartState:WEICHARTPAYSTATE.已支付
}; };
if (!oldInfo.isFirst) updateInfo.confirmReceipt = RECEIPTCONFIRMATION.待确认; if (!oldInfo.isFirst) updateInfo.confirmReceipt = RECEIPTCONFIRMATION.待确认;
...@@ -128,6 +150,7 @@ export async function payCallback(body) { ...@@ -128,6 +150,7 @@ export async function payCallback(body) {
gracePeriodEndTime:0, gracePeriodEndTime:0,
memberState:MEMBERSTATE.正常, memberState:MEMBERSTATE.正常,
paymentStatus:PAYMENTSTATUS.已支付 paymentStatus:PAYMENTSTATUS.已支付
}; };
if (oldInfo.isFirst) { if (oldInfo.isFirst) {
updateUserInfo.isFirstPay = true; updateUserInfo.isFirstPay = true;
...@@ -135,14 +158,13 @@ export async function payCallback(body) { ...@@ -135,14 +158,13 @@ export async function payCallback(body) {
await updateOneData(TABLEENUM.用户表, {userId:oldInfo.userId}, updateUserInfo); await updateOneData(TABLEENUM.用户表, {userId:oldInfo.userId}, updateUserInfo);
} }
return { return {
code:"SUCCESS", code:"SUCCESS",
message:"成功" message:"成功"
} }
} else { } else {
await pay.close(wechartCallbackData.out_trade_no);
await updateOneData(TABLEENUM.订单表, {weChartPR:wechartCallbackData.out_trade_no}, { weChartState:WEICHARTPAYSTATE.未提交, weChartCreatePayMs:0 });
throw new BizError(ERRORENUM.支付失败, wechartCallbackData.trade_state_desc); throw new BizError(ERRORENUM.支付失败, wechartCallbackData.trade_state_desc);
} }
} else { } else {
......
...@@ -15,6 +15,7 @@ import { generateSystemId, successResult } from "../../tools/system"; ...@@ -15,6 +15,7 @@ import { generateSystemId, successResult } from "../../tools/system";
import { BizError } from "../../util/bizError"; import { BizError } from "../../util/bizError";
import { extractData } from "../../util/piecemeal"; import { extractData } from "../../util/piecemeal";
import { eccEnumValue } from "../../util/verificationEnum"; import { eccEnumValue } from "../../util/verificationEnum";
import { eccFormParam } from "../../util/verificationParam";
/** /**
...@@ -30,7 +31,7 @@ export async function getMemberData({userId}) { ...@@ -30,7 +31,7 @@ export async function getMemberData({userId}) {
let topSelectFiles = ["loginId", "memberType", "userRegisterState", "integral", "joinTime", "lifespanStartTime", "lifespanEndTime", "memberLevel"]; let topSelectFiles = ["loginId", "memberType", "userRegisterState", "integral", "joinTime", "lifespanStartTime", "lifespanEndTime", "memberLevel"];
let baseSelectFiles = []; let baseSelectFiles = [];
let majorSelectFiles = []; let majorSelectFiles = [];
let otherAttachmentFiles = []; let otherAttachment:any= {};
/**判断会员类型,个人会员与单位会员返回不同字段 */ /**判断会员类型,个人会员与单位会员返回不同字段 */
if (oldInfo.memberType == MEMBERTYPE.单位会员) { if (oldInfo.memberType == MEMBERTYPE.单位会员) {
baseSelectFiles = ["userId", "unitName", "uscc", "legalPerson", "legalPersonPhone", "legalPersonMail", "unitMail", "contactPerson", baseSelectFiles = ["userId", "unitName", "uscc", "legalPerson", "legalPersonPhone", "legalPersonMail", "unitMail", "contactPerson",
...@@ -40,12 +41,12 @@ export async function getMemberData({userId}) { ...@@ -40,12 +41,12 @@ export async function getMemberData({userId}) {
"yuanXiaoKeYanFuZeRenDianHua", "jiaoXueFuZeRenXinMing", "jiaoXueFuZeRenDianHua"]; "yuanXiaoKeYanFuZeRenDianHua", "jiaoXueFuZeRenXinMing", "jiaoXueFuZeRenDianHua"];
/**获取单位科研成果数据 */ /**获取单位科研成果数据 */
let oldKeYanList = await find(TABLEENUM.单位所获得科研成果表, {userId}, ["id", "startTime", "endTime", "describe"]); let oldKeYanList = await find(TABLEENUM.单位所获得科研成果表, {userId}, ["id", "startTime", "endTime", "describe"]);
let otherAttachmentFiles = []; if (!otherAttachment.dataList) otherAttachment.dataList = [];
oldKeYanList.forEach(info => { oldKeYanList.forEach(info => {
otherAttachmentFiles.push({ otherAttachment.dataList.push({
id:info.id, id:info.id,
startTime: moment(info.startTime).format("YYYY-MM-DD"), startTime: info.startTime,
endTime: moment(info.endTime).format("YYYY-MM-DD"), endTime: info.endTime,
describe:info.describe describe:info.describe
}); });
}) })
...@@ -54,14 +55,15 @@ export async function getMemberData({userId}) { ...@@ -54,14 +55,15 @@ export async function getMemberData({userId}) {
baseSelectFiles = ["userId", "name", "sex", "nation", "birth", "documentType", "documentId", "sheng", "shi", "qu", "phone", "mail", baseSelectFiles = ["userId", "name", "sex", "nation", "birth", "documentType", "documentId", "sheng", "shi", "qu", "phone", "mail",
"addres", "photoUrl", "education", "uscc", "unitName"]; "addres", "photoUrl", "education", "uscc", "unitName"];
majorSelectFiles = ["unitName", "duties", "workTitle", "profCategory", "studyResume", "workResume", "profAchievement", "otherEMP", "otherPROF"]; majorSelectFiles = ["unitName", "duties", "workTitle", "profCategory", "studyResume", "workResume", "profAchievement", "otherEMP", "otherPROF"];
otherAttachmentFiles = ["cardUrl", "academicCERTUrl", "professionalCERTUrl", "auxiliaryMaterial"]; let otherAttachmentFiles = ["cardUrl", "academicCERTUrl", "professionalCERTUrl", "auxiliaryMaterial"];
otherAttachment = extractData(oldInfo, otherAttachmentFiles);
} }
/**返回指定配置字段 */ /**返回指定配置字段 */
let topInfo:any = extractData(oldInfo, topSelectFiles); let topInfo:any = extractData(oldInfo, topSelectFiles);
let baseInfo:any = extractData(oldInfo, baseSelectFiles); let baseInfo:any = extractData(oldInfo, baseSelectFiles);
let majorInfo:any = extractData(oldInfo, majorSelectFiles); let majorInfo:any = extractData(oldInfo, majorSelectFiles);
let otherAttachment:any = extractData(oldInfo, otherAttachmentFiles);
/**处理枚举值 */ /**处理枚举值 */
topInfo.integral = 0; topInfo.integral = 0;
...@@ -89,6 +91,15 @@ export async function getMemberData({userId}) { ...@@ -89,6 +91,15 @@ export async function getMemberData({userId}) {
* @returns * @returns
*/ */
export async function unitMemberUpdate({form, keyanForm, userId}) { export async function unitMemberUpdate({form, keyanForm, userId}) {
const keyanFormItemConfig = {
startTime: 'Number',
endTime: 'Number',
describe: 'String'
};
keyanForm.forEach(item => {
eccFormParam("单位会员修改", keyanFormItemConfig, item );
});
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.目标数据不存在);
...@@ -100,16 +111,21 @@ export async function unitMemberUpdate({form, keyanForm, userId}) { ...@@ -100,16 +111,21 @@ export async function unitMemberUpdate({form, keyanForm, userId}) {
await updateOneData(TABLEENUM.用户表, {userId}, form); await updateOneData(TABLEENUM.用户表, {userId}, form);
/**删除对应userId科研成果 */ /**删除对应userId科研成果 */
let oldKeYanList = await find(TABLEENUM.单位所获得科研成果表, {userId}); let oldKeYanList= await find(TABLEENUM.单位所获得科研成果表, {userId});
if (!oldKeYanList || !oldKeYanList.id) throw new BizError(ERRORENUM.目标数据不存在); if (oldKeYanList && oldKeYanList.length) {
await deleteManyData(TABLEENUM.单位所获得科研成果表, {userId}); await deleteManyData(TABLEENUM.单位所获得科研成果表, {userId});
}
/**添加新的科研信息 */ /**添加新的科研信息 */
let addList = []; let addList = [];
for (let i = 0; i < keyanForm.length; i++) { for (let i = 0; i < keyanForm.length; i++) {
keyanForm[i].id = generateSystemId(TABLEENUM.单位所获得科研成果表, userId); let { startTime, endTime, describe } = keyanForm[i];
keyanForm[i].userId = userId; addList.push({
addList.push(keyanForm); id:generateSystemId(TABLEENUM.单位所获得科研成果表, userId),
userId,
startTime, endTime, describe
});
} }
await addManyData(TABLEENUM.单位所获得科研成果表, addList); await addManyData(TABLEENUM.单位所获得科研成果表, addList);
...@@ -137,42 +153,38 @@ export async function unitMemberUpdate({form, keyanForm, userId}) { ...@@ -137,42 +153,38 @@ export async function unitMemberUpdate({form, keyanForm, userId}) {
* 缴费消息提醒 * 缴费消息提醒
* @param userId 登录的用户id * @param userId 登录的用户id
*/ */
export async function getXiaoXiZhongXin ({userId}) { export async function getXiaoXiZhongXin({userId}) {
let oldInfo = await findOnce(TABLEENUM.用户表, {userId}, ["userId", "lifespanEndTime", "isGracePeriod", "gracePeriodEndTime", "lifespanStartTime"]); const SelectFiles = ["userId", "lifespanEndTime", "isGracePeriod", "gracePeriodEndTime", "lifespanStartTime"];
if (!oldInfo || !oldInfo.userId) throw new BizError(ERRORENUM.目标数据不存在); let oldInfo = await findOnce(TABLEENUM.用户表, {userId, isAdmin:STATE.}, SelectFiles);
let dataInfo:any = extractData(oldInfo, ["lifespanStartTime", "lifespanEndTime"]); let dataInfo:any = extractData(oldInfo, ["lifespanStartTime", "lifespanEndTime"]);
const NowMs = new Date().valueOf(); const NowMs = new Date().valueOf();
/**判断是否宽限期 */ /**判断是否宽限期 */
if (dataInfo.isGracePeriod == STATE.) { let str = '';
/** if (oldInfo.isGracePeriod == STATE. && oldInfo.gracePeriodEndTime > NowMs) str = "宽限期中";
* 判断会费到期时间 else {
*/ if (NowMs > oldInfo.lifespanEndTime) {
switch (oldInfo.lifespanEndTime) { str = '过期';
case oldInfo.lifespanEndTime > NowMs+(90*24*3600*1000): if (NowMs > oldInfo.lifespanEndTime + (90*24*3600*1000)){
dataInfo["membershipFees"] = "大于90天"; str += '1年外';
break; } else if ( NowMs > oldInfo.lifespanEndTime + (90*24*3600*1000) ) {
case oldInfo.lifespanEndTime-(90*24*3600*1000) <= NowMs && oldInfo.lifespanEndTime > NowMs-(24*3600*1000): str += '1年内';
dataInfo["membershipFees"] = "不足90天"; } else if (NowMs > oldInfo.lifespanEndTime + (30*24*3600*1000)) {
break; str += '90天内';
case NowMs <= oldInfo.lifespanEndTime+(30*24*3600*1000) && NowMs > oldInfo.lifespanEndTime+(24*3600*1000): } else {
dataInfo["membershipFees"] = "过期30天内"; str += '30天内';
break;
case NowMs > oldInfo.lifespanEndTime+(30*24*3600*1000) && NowMs <= oldInfo.lifespanEndTime+(90*24*3600*1000):
dataInfo["membershipFees"] = "过期90天内";
break;
case NowMs > oldInfo.lifespanEndTime+(90*24*3600*1000) && NowMs <= oldInfo.lifespanEndTime+(365*24*3600*1000):
dataInfo["membershipFees"] = "过期1年内";
break;
case NowMs > oldInfo.lifespanEndTime+(365*24*3600*1000):
dataInfo["membershipFees"] = "过期1年外";
break;
} }
} else { } else {
if (oldInfo.gracePeriodEndTime > NowMs) dataInfo["membershipFees"] = "宽限期中"; if (NowMs > oldInfo.lifespanEndTime - (90*24*3600*1000) ) {
str = "不足90天";
} else {
str = "大于90天";
}
}
} }
dataInfo.membershipFees = str;
return {dataInfo}; return {dataInfo};
} }
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* 会员管理逻辑 * 会员管理逻辑
*/ */
import { MEMBERSTATE, MEMBERLEVEL, DOCUMENTTYPE, NATION, PROFCATEGORY, MEMBERTYPE, USERREGISTERSTATE, STATE, UNITMEMBERTYPE, ADMINLV } from "../../config/enum"; import { MEMBERSTATE, MEMBERLEVEL, DOCUMENTTYPE, NATION, PROFCATEGORY, MEMBERTYPE, USERREGISTERSTATE, STATE, UNITMEMBERTYPE, ADMINLV, ADMINTYPE } 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, findCount, findOnce, findOnceToSort, findToPage, findToSort } from "../../data/select"; import { find, findCount, findOnce, findOnceToSort, findToPage, findToSort } from "../../data/select";
...@@ -15,6 +15,7 @@ import { addManyData, addOneData } from "../../data/add"; ...@@ -15,6 +15,7 @@ import { addManyData, addOneData } from "../../data/add";
import { deleteManyData, deleteOneData } from "../../data/delete"; import { deleteManyData, deleteOneData } from "../../data/delete";
import moment = require("moment"); import moment = require("moment");
import { getCityNameByCode } from "../../config/cityConfig"; import { getCityNameByCode } from "../../config/cityConfig";
import { eccFormParam } from "../../util/verificationParam";
/** /**
...@@ -104,8 +105,8 @@ export async function unitMemberDetails({id}) { ...@@ -104,8 +105,8 @@ export async function unitMemberDetails({id}) {
oldKeYanList.forEach(info => { oldKeYanList.forEach(info => {
scientificResearch.push({ scientificResearch.push({
id:info.id, id:info.id,
startTime: moment(info.startTime).format("YYYY-MM-DD"), startTime:info.startTime,
endTime: moment(info.endTime).format("YYYY-MM-DD"), endTime:info.endTime,
describe:info.describe describe:info.describe
}); });
}) })
...@@ -122,6 +123,15 @@ export async function unitMemberDetails({id}) { ...@@ -122,6 +123,15 @@ export async function unitMemberDetails({id}) {
* @returns * @returns
*/ */
export async function unitMemberUpdate({form, keyanForm, id}) { export async function unitMemberUpdate({form, keyanForm, id}) {
const keyanFormItemConfig = {
startTime: 'Number',
endTime: 'Number',
describe: 'String'
};
keyanForm.forEach(item => {
eccFormParam("单位会员修改", keyanFormItemConfig, item );
});
let oldInfo = await findOnce(TABLEENUM.用户表, {userId:id}); let oldInfo = await findOnce(TABLEENUM.用户表, {userId:id});
if (!oldInfo || !oldInfo.userId) throw new BizError(ERRORENUM.目标数据不存在); if (!oldInfo || !oldInfo.userId) throw new BizError(ERRORENUM.目标数据不存在);
...@@ -133,16 +143,21 @@ export async function unitMemberUpdate({form, keyanForm, id}) { ...@@ -133,16 +143,21 @@ export async function unitMemberUpdate({form, keyanForm, id}) {
await updateOneData(TABLEENUM.用户表, {userId:id}, form); await updateOneData(TABLEENUM.用户表, {userId:id}, form);
/**删除对应userId科研成果 */ /**删除对应userId科研成果 */
let oldKeYanInfo = await find(TABLEENUM.单位所获得科研成果表, {userId:id}); let oldKeYanList= await find(TABLEENUM.单位所获得科研成果表, {userId:id});
if (!oldKeYanInfo || !oldKeYanInfo.id) throw new BizError(ERRORENUM.目标数据不存在); if (oldKeYanList && oldKeYanList.length) {
await deleteManyData(TABLEENUM.单位所获得科研成果表, {userId:id}); await deleteManyData(TABLEENUM.单位所获得科研成果表, {userId:id});
}
/**添加新的科研信息 */ /**添加新的科研信息 */
let addList = []; let addList = [];
for (let i = 0; i < keyanForm.length; i++) { for (let i = 0; i < keyanForm.length; i++) {
keyanForm[i].id = generateSystemId(TABLEENUM.单位所获得科研成果表, id); let { startTime, endTime, describe } = keyanForm[i];
keyanForm[i].userId = id; addList.push({
addList.push(keyanForm); id:generateSystemId(TABLEENUM.单位所获得科研成果表, id),
userId:id,
startTime, endTime, describe
});
} }
await addManyData(TABLEENUM.单位所获得科研成果表, addList); await addManyData(TABLEENUM.单位所获得科研成果表, addList);
...@@ -229,10 +244,10 @@ export async function individualMemberDetails({id}) { ...@@ -229,10 +244,10 @@ export async function individualMemberDetails({id}) {
topInfo.memberLevel = changeEnumValue(MEMBERLEVEL, topInfo.memberLevel); topInfo.memberLevel = changeEnumValue(MEMBERLEVEL, topInfo.memberLevel);
let basicInfo:any = extractData(oldInfo, IndividualBasicConfig); let basicInfo:any = extractData(oldInfo, IndividualBasicConfig);
basicInfo.documentType = changeEnumValue(DOCUMENTTYPE, basicInfo.documentType); // basicInfo.documentType = changeEnumValue(DOCUMENTTYPE, basicInfo.documentType);
basicInfo.nation = changeEnumValue(NATION, basicInfo.nation); // basicInfo.nation = changeEnumValue(NATION, basicInfo.nation);
/**获取订单表新社会信用代码和新发票抬头 */ /**获取订单表新社会信用代码和新发票抬头 */
let orderInfo = await findOnce(TABLEENUM.订单表, {userId:id}); let orderInfo = await findOnceToSort(TABLEENUM.订单表, {userId:id}, {ct:-1});
if (!orderInfo || !orderInfo.userId) { if (!orderInfo || !orderInfo.userId) {
basicInfo.newUscc = "-"; basicInfo.newUscc = "-";
basicInfo.newUnitName = "-"; basicInfo.newUnitName = "-";
...@@ -242,7 +257,7 @@ export async function individualMemberDetails({id}) { ...@@ -242,7 +257,7 @@ export async function individualMemberDetails({id}) {
} }
let specialityInfo:any = extractData(oldInfo, SpecialityConfig); let specialityInfo:any = extractData(oldInfo, SpecialityConfig);
basicInfo.profCategory = changeEnumValue(PROFCATEGORY, basicInfo.profCategory); // basicInfo.profCategory = changeEnumValue(PROFCATEGORY, basicInfo.profCategory);
let otherAttachment:any = extractData(oldInfo, ["cardUrl", "academicCERTUrl", "professionalCERTUrl", "auxiliaryMaterial"]); let otherAttachment:any = extractData(oldInfo, ["cardUrl", "academicCERTUrl", "professionalCERTUrl", "auxiliaryMaterial"]);
...@@ -277,11 +292,12 @@ export async function systemBase({userId}) { ...@@ -277,11 +292,12 @@ export async function systemBase({userId}) {
}); });
let dataInfo = { let dataInfo = {
isAdmin:userInfo.isAdmin == STATE., isAdmin:userInfo.isAdmin == STATE.,
name:userInfo.name, name:userInfo.isAdmin ? changeEnumValue(ADMINTYPE, userInfo.adminType ) : userInfo.name,
userId:userInfo.userId, userId:userInfo.userId,
token:userInfo.token, token:userInfo.token,
adminLv, adminLv,
superAdmin superAdmin,
timeMs:moment(userInfo.lastLoginMs).format("YYYY-MM-DD HH:mm:SS"),
} }
return {dataInfo} return {dataInfo}
......
...@@ -256,17 +256,19 @@ export async function confirmReceiptOut({id}) { ...@@ -256,17 +256,19 @@ export async function confirmReceiptOut({id}) {
* @param param0 * @param param0
*/ */
export async function billStateList({unitName, paymentType, isPay, pageNumber}) { export async function billStateList({unitName, paymentType, isPay, pageNumber}) {
eccEnumValue("发票列表", "支付类型", PAYMENTTYPE, paymentType);
eccEnumValue("发票列表", "是否支付", ISPAYENUM, isPay ); eccEnumValue("发票列表", "是否支付", ISPAYENUM, isPay );
let findParam:any = { let findParam:any = {
invoiceStatus:INVOICESTATUS.未开发票 invoiceStatus:INVOICESTATUS.未开发票
}; };
if (unitName) findParam.unitName = {"$regex":unitName}; if (unitName) findParam.unitName = {"$regex":unitName};
if (paymentType) findParam.paymentMethod = paymentType; if (paymentType) {
if (isPay) findParam.state = isPay eccEnumValue("发票列表", "支付类型", PAYMENTTYPE, paymentType);
findParam.paymentMethod = paymentType;
}
if (isPay) findParam.state = isPay;
let selectFile = ["id", "unitName", "orderCycleStart", "orderCycleEnd", "money", "paymentMethod", "memberCategory", "state", "paymentNum" ]; let selectFile = ["id", "unitName", "orderCycleStart", "orderCycleEnd", "money", "paymentMethod", "memberCategory", "state", "paymentNum", "userId" ];
let dbList = await findToPage(TABLEENUM.订单表, findParam, selectFile, pageNumber); let dbList = await findToPage(TABLEENUM.订单表, findParam, selectFile, pageNumber);
let dataCount = await findCount(TABLEENUM.订单表, findParam); let dataCount = await findCount(TABLEENUM.订单表, findParam);
...@@ -401,15 +403,6 @@ export async function transferScreenshot({id}) { ...@@ -401,15 +403,6 @@ export async function transferScreenshot({id}) {
} }
/** /**
* 个人页待订单列表 success * 个人页待订单列表 success
* @param param0 * @param param0
...@@ -420,16 +413,16 @@ export async function orderList({userId, type}) { ...@@ -420,16 +413,16 @@ export async function orderList({userId, type}) {
if (type == ORDERSTATE.已支付) findParam.state = ORDERSTATE.已支付; if (type == ORDERSTATE.已支付) findParam.state = ORDERSTATE.已支付;
else if (type == ORDERSTATE.未支付) findParam.state = ORDERSTATE.未支付; else if (type == ORDERSTATE.未支付) findParam.state = ORDERSTATE.未支付;
const SelectFile = ["orderCycleStart", "orderCycleEnd", "money", "state", "id", "advanceInvoice", "invoiceStatus", "unitName", "confirmReceipt"]; const SelectFile = ["orderCycleStart", "orderCycleEnd", "money", "state", "id", "advanceInvoice", "invoiceStatus", "unitName", "confirmReceipt", "newUscc"];
let dbList = await find(TABLEENUM.订单表, findParam, SelectFile); let dbList = await find(TABLEENUM.订单表, findParam, SelectFile);
/**查询证明函需要字段会员等级 */ /**查询证明函需要字段会员等级 */
let myOldInfo = await findOnce(TABLEENUM.用户表, {userId}, ["memberLevel", "userId"]); let myOldInfo = await findOnce(TABLEENUM.用户表, {userId}, ["memberLevel", "userId", "uscc"]);
if (!myOldInfo || !myOldInfo.userId) throw new BizError(ERRORENUM.目标数据不存在); if (!myOldInfo || !myOldInfo.userId) throw new BizError(ERRORENUM.目标数据不存在);
let memberLevel = changeEnumValue(MEMBERLEVEL, myOldInfo.memberLevel); let memberLevel = changeEnumValue(MEMBERLEVEL, myOldInfo.memberLevel);
let dataList = []; let dataList = [];
dbList.forEach(info => { dbList.forEach(info => {
let {orderCycleStart, orderCycleEnd, money, state, id, unitName, confirmReceipt} = info; let {orderCycleStart, orderCycleEnd, money, state, id, unitName, confirmReceipt, newUscc} = info;
let payState; let payState;
if (state == ORDERSTATE.已支付) { if (state == ORDERSTATE.已支付) {
if (!confirmReceipt) {/**首次支付 待确认未审核*/ if (!confirmReceipt) {/**首次支付 待确认未审核*/
...@@ -454,6 +447,7 @@ export async function orderList({userId, type}) { ...@@ -454,6 +447,7 @@ export async function orderList({userId, type}) {
cycle:`${moment(orderCycleStart).format("YYYY-MM-DD")}${moment(orderCycleEnd).format("YYYY-MM-DD")}`, cycle:`${moment(orderCycleStart).format("YYYY-MM-DD")}${moment(orderCycleEnd).format("YYYY-MM-DD")}`,
money:money, money:money,
id, id,
uscc:newUscc || myOldInfo.uscc,
invoiceStatus:invoiceState, invoiceStatus:invoiceState,
invoiceStatusStr:changeEnumValue(MYORDERLISTSTATE , invoiceState), invoiceStatusStr:changeEnumValue(MYORDERLISTSTATE , invoiceState),
unitName, unitName,
...@@ -478,13 +472,12 @@ export async function orderList({userId, type}) { ...@@ -478,13 +472,12 @@ export async function orderList({userId, type}) {
* @param newUnitName 发票抬头 * @param newUnitName 发票抬头
*/ */
export async function applicationInvoice({id, newUscc, newUnitName}) { export async function applicationInvoice({id, newUscc, newUnitName}) {
let orderInfo = await find(TABLEENUM.订单表, {id}, ["id", "invoiceStatus", "advanceInvoice", "invoiceAdd", "state", "advanceInvoice"]); let orderInfo = await findOnce(TABLEENUM.订单表, {id}, ["id", "invoiceStatus", "advanceInvoice", "invoiceAdd", "state", "advanceInvoice"]);
if (!orderInfo || !orderInfo.id) throw new BizError(ERRORENUM.目标数据不存在); if (!orderInfo || !orderInfo.id) throw new BizError(ERRORENUM.目标数据不存在);
if (orderInfo.invoiceStatus == INVOICESTATUS.已开发票) throw new BizError(ERRORENUM.发票已开具不可重复提交); if (orderInfo.invoiceStatus == INVOICESTATUS.已开发票) throw new BizError(ERRORENUM.发票已开具不可重复提交);
if (orderInfo.invoiceStatus == INVOICESTATUS.退回) throw new BizError(ERRORENUM.请求已被退回请重新申请); if (orderInfo.invoiceStatus == INVOICESTATUS.退回) throw new BizError(ERRORENUM.请求已被退回请重新申请);
let updateInfo:any = {invoiceStatus:INVOICESTATUS.未开发票, newUscc, newUnitName}; let updateInfo:any = {invoiceStatus:INVOICESTATUS.未开发票, newUscc, newUnitName, advanceInvoice : true};
if (orderInfo.state != ORDERSTATE.已支付) updateInfo.advanceInvoice = true;
await updateOneData(TABLEENUM.订单表, {id}, updateInfo); await updateOneData(TABLEENUM.订单表, {id}, updateInfo);
...@@ -529,8 +522,8 @@ export async function downInvoice({id}) { ...@@ -529,8 +522,8 @@ export async function downInvoice({id}) {
* @param id 会员缴费列表返回的id * @param id 会员缴费列表返回的id
*/ */
export async function getInvoiceStatus({id}) { export async function getInvoiceStatus({id}) {
let oldInfo = await findOnce(TABLEENUM.订单表, {id}, ["invoiceStatus", "userId"]); let oldInfo = await findOnce(TABLEENUM.订单表, {id}, ["invoiceStatus", "userId", "id"]);
if (!oldInfo || !oldInfo.invoiceAdd) throw new BizError(ERRORENUM.目标数据不存在); if (!oldInfo || !oldInfo.id) throw new BizError(ERRORENUM.目标数据不存在);
let dataInfo = {state:AUDITINGCLIENT.已申请, remark:""}; let dataInfo = {state:AUDITINGCLIENT.已申请, remark:""};
if (oldInfo.invoiceStatus == INVOICESTATUS.已开发票) dataInfo.state = AUDITINGCLIENT.审核通过; if (oldInfo.invoiceStatus == INVOICESTATUS.已开发票) dataInfo.state = AUDITINGCLIENT.审核通过;
...@@ -538,8 +531,8 @@ export async function getInvoiceStatus({id}) { ...@@ -538,8 +531,8 @@ export async function getInvoiceStatus({id}) {
if (oldInfo.invoiceStatus != INVOICESTATUS.退回) dataInfo.state = AUDITINGCLIENT.审核失败; if (oldInfo.invoiceStatus != INVOICESTATUS.退回) dataInfo.state = AUDITINGCLIENT.审核失败;
/**获取驳回理由 */ /**获取驳回理由 */
let userOldInfo = await findOnce(TABLEENUM.审批历史表, {userId:oldInfo.userId, operationBehavior:OPERATIONREHAVIOR.驳回修改}, ["remarks"]); let userOldInfo = await findOnceToSort(TABLEENUM.审批历史表, {userId:oldInfo.userId, operationBehavior:OPERATIONREHAVIOR.驳回修改},{operationTime:-1}, ["userId", "remarks"]);
dataInfo.remark = userOldInfo.remark; if (userOldInfo && userOldInfo.userId) dataInfo.remark = userOldInfo.remark;
return {dataInfo}; return {dataInfo};
} }
......
...@@ -32,7 +32,8 @@ export async function adminList({pageNumber}) { ...@@ -32,7 +32,8 @@ export async function adminList({pageNumber}) {
memberState:memberStateStr, memberState:memberStateStr,
loginId, loginId,
adminType:changeEnumValue(ADMINTYPE, adminType), adminType:changeEnumValue(ADMINTYPE, adminType),
adminLv:changeEnumValue(ADMINLV, adminLv) adminLv:changeEnumValue(ADMINLV, adminLv),
superAdmin : loginId == "admin"
}); });
}); });
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* 用户逻辑 * 用户逻辑
*/ */
import { DOCUMENTTYPE, MEMBERLEVEL, MEMBERTYPE, NATION, PROFCATEGORY, SEX, STATE, USERREGISTERSTATE } from "../../config/enum"; import { ADMINTYPE, DOCUMENTTYPE, MEMBERLEVEL, MEMBERSTATE, MEMBERTYPE, NATION, PROFCATEGORY, SEX, STATE, USERREGISTERSTATE } from "../../config/enum";
import { ERRORCODEENUM, ERRORENUM } from "../../config/errorEnum"; import { ERRORCODEENUM, ERRORENUM } from "../../config/errorEnum";
import { addOneData } from "../../data/add"; import { addOneData } from "../../data/add";
import { TABLEENUM } from "../../data/models/model"; import { TABLEENUM } from "../../data/models/model";
...@@ -10,7 +10,7 @@ import { findOnce } from "../../data/select"; ...@@ -10,7 +10,7 @@ import { findOnce } from "../../data/select";
import { updateOneData } from "../../data/update"; import { updateOneData } from "../../data/update";
import { generateToken, generateUserId, successResult } from "../../tools/system"; import { generateToken, generateUserId, successResult } from "../../tools/system";
import { BizError } from "../../util/bizError"; import { BizError } from "../../util/bizError";
import { eccEnumValue } from "../../util/verificationEnum"; import { changeEnumValue, eccEnumValue } from "../../util/verificationEnum";
...@@ -27,18 +27,23 @@ export async function login({loginId, pwd}) { ...@@ -27,18 +27,23 @@ export async function login({loginId, pwd}) {
if (userInfo.pwd != pwd ) throw new BizError(ERRORENUM.账号或密码错误); if (userInfo.pwd != pwd ) throw new BizError(ERRORENUM.账号或密码错误);
let token = ""; let token = "";
const Now = new Date().valueOf();
if (userInfo.isAdmin == STATE. || (userInfo.userRegisterState == USERREGISTERSTATE.通过 && userInfo.isAdmin == STATE.)) { if (userInfo.isAdmin == STATE. || (userInfo.userRegisterState == USERREGISTERSTATE.通过 && userInfo.isAdmin == STATE.)) {
token = generateToken(userInfo.userId); token = generateToken(userInfo.userId);
await updateOneData(TABLEENUM.用户表, {userId:userInfo.userId}, {token, tokenMs:new Date().valueOf()}); await updateOneData(TABLEENUM.用户表, {userId:userInfo.userId}, {token, tokenMs:Now, lastLoginMs:Now});
}
if (userInfo.memberState >= MEMBERSTATE.冻结 ) {
throw new BizError(ERRORENUM.该账号已被冻结);
} }
let dataInfo = { let dataInfo = {
isAdmin:userInfo.isAdmin == STATE., isAdmin:userInfo.isAdmin == STATE.,
name:userInfo.name, name:userInfo.isAdmin ? changeEnumValue(ADMINTYPE, userInfo.adminType ) : userInfo.name,
userId:userInfo.userId, userId:userInfo.userId,
token:token, token:token,
adminLv:userInfo.adminLv, adminLv:userInfo.adminLv,
timeMs:new Date().valueOf(), timeMs:Now,
isPass:userInfo.userRegisterState == USERREGISTERSTATE.通过, isPass:userInfo.userRegisterState == USERREGISTERSTATE.通过,
memberType:userInfo.memberType memberType:userInfo.memberType
}; };
......
...@@ -213,7 +213,6 @@ export async function dongTaiZiXun({type, pageNumber}) { ...@@ -213,7 +213,6 @@ export async function dongTaiZiXun({type, pageNumber}) {
*/ */
export async function wenZhangXiangQing({id}) { export async function wenZhangXiangQing({id}) {
let dataBaseInfo = await findOnce(TABLEENUM.文章管理, {id, display:STATE.}); let dataBaseInfo = await findOnce(TABLEENUM.文章管理, {id, display:STATE.});
let dataInfo:any = extractData(dataBaseInfo, [ "articleTime", "imgUrl", "title", "desc"]); let dataInfo:any = extractData(dataBaseInfo, [ "articleTime", "imgUrl", "title", "desc"]);
dataInfo.articleTime = moment(dataInfo.articleTime).format("YYYY-MM-DD"); dataInfo.articleTime = moment(dataInfo.articleTime).format("YYYY-MM-DD");
dataInfo.source = "中国艺术职业教育学会"; dataInfo.source = "中国艺术职业教育学会";
......
...@@ -397,8 +397,9 @@ export enum CERTIFICATETYPE { ...@@ -397,8 +397,9 @@ export enum CERTIFICATETYPE {
* 订单状态 * 订单状态
*/ */
export enum ORDERSTATE { export enum ORDERSTATE {
未支付 = 1, 已支付 = 1,
已支付 未支付,
} }
......
...@@ -45,7 +45,8 @@ export enum ERRORENUM { ...@@ -45,7 +45,8 @@ export enum ERRORENUM {
该订单正在支付, 该订单正在支付,
微信支付回调错误, 微信支付回调错误,
支付失败, 支付失败,
地址数据错误 地址数据错误,
该账号已被冻结
} }
export enum ERRORCODEENUM { export enum ERRORCODEENUM {
......
...@@ -341,6 +341,7 @@ const ModelArray = [ ...@@ -341,6 +341,7 @@ const ModelArray = [
lifespanEndTime:{type:'Number', index:true},//会员有效期结束时间 时间戳 每次缴费成功更新 lifespanEndTime:{type:'Number', index:true},//会员有效期结束时间 时间戳 每次缴费成功更新
token:{type:'String', default:''},//token token:{type:'String', default:''},//token
tokenMs:{type:'Number', default:0},//token过期时间 tokenMs:{type:'Number', default:0},//token过期时间
lastLoginMs:'Number',//上次登陆时间
session:'Number',//届次 session:'Number',//届次
paymentStatus:'Number',//支付状态 PAYMENTSTATUS paymentStatus:'Number',//支付状态 PAYMENTSTATUS
/**管理员字段 */ /**管理员字段 */
...@@ -452,6 +453,7 @@ const ModelArray = [ ...@@ -452,6 +453,7 @@ const ModelArray = [
memberCategory:'Number',//会员类别 枚举 MEMBERTYPE memberCategory:'Number',//会员类别 枚举 MEMBERTYPE
weChartPR:{type:'String', default:""},//微信订单号 微信支付用 weChartPR:{type:'String', default:""},//微信订单号 微信支付用
weChartState:{type:'Number', default:WEICHARTPAYSTATE.未提交},//微信支付状态 WEICHARTPAYSTATE weChartState:{type:'Number', default:WEICHARTPAYSTATE.未提交},//微信支付状态 WEICHARTPAYSTATE
weChartCreatePayMs:{type:'Number'},//微信创建订单时间
// membershipFeesType:'Number',//会费类别 枚举 // membershipFeesType:'Number',//会费类别 枚举
invoiceAdd:'String',//发票图片地址 invoiceAdd:'String',//发票图片地址
isFirst:{type:'Boolean', default:true},//首次订单 isFirst:{type:'Boolean', default:true},//首次订单
......
...@@ -295,7 +295,6 @@ export const Config = { ...@@ -295,7 +295,6 @@ export const Config = {
{ {
/**基本信息 */ /**基本信息 */
unitName:{type:'String', desc:'单位名称'}, unitName:{type:'String', desc:'单位名称'},
uscc:{type:'String', desc:'单位信用代码'},
addres:{type:'String', desc:'通信地址'}, addres:{type:'String', desc:'通信地址'},
legalPerson:{type:'String', desc:'法人代表'}, legalPerson:{type:'String', desc:'法人代表'},
legalPersonPhone:{type:'String', desc:'法人联系电话'}, legalPersonPhone:{type:'String', desc:'法人联系电话'},
...@@ -310,7 +309,7 @@ export const Config = { ...@@ -310,7 +309,7 @@ export const Config = {
uusinessLicenseUrl:{type:'String', desc:'营业执照'}, uusinessLicenseUrl:{type:'String', desc:'营业执照'},
/**单位信息 */ /**单位信息 */
unitMemberType:{type:'Number', desc:'单位类型'}, unitMemberType:{type:'Number', desc:'单位类型'},
yuanXiaoBanXueLeiXing:{type:'String', desc:'办学类型'}, yuanXiaoBanXueLeiXing:{type:'Number', desc:'办学类型'},
yuanXiaoZhuGuanBuMen:{type:'String', desc:'主管部门'}, yuanXiaoZhuGuanBuMen:{type:'String', desc:'主管部门'},
yuanXiaoFuZeRen:{type:'String', desc:'主要负责人姓名'}, yuanXiaoFuZeRen:{type:'String', desc:'主要负责人姓名'},
yuanXiaoFuZeRenZhiWu:{type:'String', desc:'主要负责人职位'}, yuanXiaoFuZeRenZhiWu:{type:'String', desc:'主要负责人职位'},
...@@ -622,9 +621,6 @@ export const Config = { ...@@ -622,9 +621,6 @@ export const Config = {
pwd:{type:'String', desc:'密码'}, pwd:{type:'String', desc:'密码'},
confirmation:{type:'String', desc:'确认密码'}, confirmation:{type:'String', desc:'确认密码'},
} }
},
{
key:"userId", type:"String", desc:"登录用户id"
} }
], ],
bindBiz:rightsMgmtBiz.changeAdminPwd bindBiz:rightsMgmtBiz.changeAdminPwd
...@@ -689,33 +685,31 @@ export const Config = { ...@@ -689,33 +685,31 @@ export const Config = {
/**基本信息 */ /**基本信息 */
unitName:{type:'String', desc:'单位名称'}, unitName:{type:'String', desc:'单位名称'},
addres:{type:'String', desc:'通信地址'}, addres:{type:'String', desc:'通信地址'},
uscc:{type:'String', desc:'单位信用代码'},
legalPerson:{type:'String', desc:'法人代表'}, legalPerson:{type:'String', desc:'法人代表'},
legalPersonPhone:{type:'String', desc:'法人联系电话'}, legalPersonPhone:{type:'String', desc:'法人联系电话'},
legalPersonMail:{type:'String', desc:'法人邮箱'},
unitMail:{type:'String', desc:'单位电子邮箱'},
contactPerson:{type:'String', desc:'日常联系人'}, contactPerson:{type:'String', desc:'日常联系人'},
contactPersonDuties:{type:'String', desc:'日常联系人职务'}, contactPersonDuties:{type:'String', desc:'日常联系人职务'},
contactPersonPhone:{type:'String', desc:'日常联系人电话'},
sheng:{type:'String', desc:'省'}, sheng:{type:'String', desc:'省'},
shi:{type:'String', desc:'市'}, shi:{type:'String', desc:'市'},
qu:{type:'String', desc:'区'}, qu:{type:'String', desc:'区'},
uusinessLicenseUrl:{type:'String', desc:'营业执照'}, uusinessLicenseUrl:{type:'String', desc:'营业执照'},
/**单位信息 */ /**单位信息 */
unitMemberType:{type:'Number', desc:'单位信息类型'}, unitMemberType:{type:'Number', desc:'单位类型'},
yuanXiaoBanXueLeiXing:{type:'String', desc:'院校办学类型'}, yuanXiaoBanXueLeiXing:{type:'Number', desc:'办学类型'},
yuanXiaoZhuGuanBuMen:{type:'String', desc:'院校主管部门'}, yuanXiaoZhuGuanBuMen:{type:'String', desc:'主管部门'},
yuanXiaoFuZeRen:{type:'String', desc:'院校主要负责人'}, yuanXiaoFuZeRen:{type:'String', desc:'主要负责人姓名'},
yuanXiaoFuZeRenZhiWu:{type:'String', desc:'院校主要负责人职位'}, yuanXiaoFuZeRenZhiWu:{type:'String', desc:'主要负责人职位'},
yuanXiaoFuZeRenDianHua:{type:'String', desc:'院校主要负责人电话'}, yuanXiaoFuZeRenDianHua:{type:'String', desc:'主要负责人电话'},
yuanXiaoBanGongFuZeRen:{type:'String', desc:'院校办公负责人'}, ZhuYaoFuZeRenYouXiang:{type:'String', desc:'主要负责人邮箱'},
yuanXiaoBanGongFuZeRenZhiWu:{type:'String', desc:'院校办公负责人职位'}, yuanXiaoBanGongFuZeRen:{type:'String', desc:'办公负责人姓名'},
yuanXiaoBanGongFuZeRenDianHua:{type:'String', desc:'院校办公负责人电话'}, yuanXiaoBanGongFuZeRenDianHua:{type:'String', desc:'办公负责人电话'},
yuanXiaoKeYanFuZeRen:{type:'String', desc:'院校科研负责人'}, yuanXiaoKeYanFuZeRen:{type:'String', desc:'科研负责人姓名'},
yuanXiaoKeYanFuZeRenZhiWu:{type:'String', desc:'院校科研负责人职位'}, yuanXiaoKeYanFuZeRenDianHua:{type:'String', desc:'科研负责人电话'},
yuanXiaoKeYanFuZeRenDianHua:{type:'String', desc:'院校科研负责人电话'}, jiaoXueFuZeRenXinMing:{type:'String', desc:'教学负责人姓名'},
yuanXiaoXueShengZongRenShu:{type:'String', desc:'院校学生总数'}, jiaoXueFuZeRenDianHua:{type:'String', desc:'教学负责人电话'},
yuanXiaoJiaoZhiGongZongRenShu:{type:'String', desc:'院校教职工总人数'},
yuanXiaoJianZhuMianJi:{type:'String', desc:'院校建筑总面积'},
yuanXiaoGaoJiZhiCheng:{type:'String', desc:'院校高级职称人数'},
yuanXiaoKaiSheZhuanYe:{type:'String', desc:'院校专业总数'},
}, },
desc:"表单" desc:"表单"
}, },
...@@ -727,9 +721,6 @@ export const Config = { ...@@ -727,9 +721,6 @@ export const Config = {
describe:{type:'String', desc:'科研描述'}, describe:{type:'String', desc:'科研描述'},
}, },
desc:"单位所获得科研成果表单" desc:"单位所获得科研成果表单"
},
{
key:"userId", type:"String", desc:"用户id"
} }
], ],
bindBiz:homePageBiz.unitMemberUpdate bindBiz:homePageBiz.unitMemberUpdate
...@@ -751,11 +742,14 @@ export const Config = { ...@@ -751,11 +742,14 @@ export const Config = {
sheng:{type:'String', desc:'省'}, sheng:{type:'String', desc:'省'},
shi:{type:'String', desc:'市'}, shi:{type:'String', desc:'市'},
qu:{type:'String', desc:'区'}, qu:{type:'String', desc:'区'},
phone:{type:'String', desc:'手机号码'},
mail:{type:'String', desc:'电子邮箱'},
addres:{type:'String', desc:'通信地址'}, addres:{type:'String', desc:'通信地址'},
photoUrl:{type:'String', desc:'蓝底证件照'}, photoUrl:{type:'String', desc:'蓝底证件照'},
education:{type:'Number', desc:'学历'},
/**专业信息 */ /**专业信息 */
unitName:{type:'String', desc:'工作单位'}, unitName:{type:'String', desc:'工作单位'},
memberLevel:{type:'Number', desc:'会员等级职务'}, duties:{type:'String', desc:'职务'},
workTitle:{type:'String', desc:'职称'}, workTitle:{type:'String', desc:'职称'},
profCategory:{type:'Number', desc:'专业类别'}, profCategory:{type:'Number', desc:'专业类别'},
studyResume:{type:'String', desc:'学习简历'}, studyResume:{type:'String', desc:'学习简历'},
...@@ -769,9 +763,6 @@ export const Config = { ...@@ -769,9 +763,6 @@ 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"
} }
], ],
bindBiz:homePageBiz.individualMemberUpdate bindBiz:homePageBiz.individualMemberUpdate
......
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