Commit 071c80e2 by lixinming

no message

parent 16630be3
......@@ -2,7 +2,7 @@
* 会员管理 【权限管理】success
*/
import { INDIVIDUALMEMBERTYPE, MEMBERLEVEL, MEMBERSTATE, MEMBERTYPE, MEMBERTYPEECCENUM, STATE, UNITMEMBERTYPE } from "../../config/enum";
import { INDIVIDUALMEMBERTYPE, MEMBERLEVEL, MEMBERSTATE, MEMBERTYPE, STATE, UNITMEMBERTYPE } from "../../config/enum";
import { ERRORENUM } from "../../config/errorEnum";
import { TABLEENUM } from "../../data/models/model";
import { findCount, findOnce, findToPage } from "../../data/select";
......
......@@ -2,9 +2,9 @@
* 收费
*/
import { MEMBERSTATE, ORDERSTATE, PAYMENTTYPE, RECEIPTCONFIRMATION, STATE, WEICHARTPAYSTATE } from "../../config/enum";
import { ORDERSTATE, PAYMENTTYPE, RECEIPTCONFIRMATION, STATE, WEICHARTPAYSTATE } from "../../config/enum";
import { TABLEENUM } from "../../data/models/model";
import { findCount, findOnce, findOnceToSort } from "../../data/select";
import { findCount, findOnce } from "../../data/select";
import * as path from "path";
const WxPay = require('wechatpay-node-v3');
import * as fs from 'fs';
......@@ -146,24 +146,24 @@ export async function payCallback(body) {
/**只有一笔欠费时才更新用户状态 */
let updateUserInfo:any = {};
if (notPayCount <= 1) {
let newOrderInfo = await findOnceToSort(TABLEENUM.订单表, {userId:oldInfo.userId}, {lifespanEndTime:-1}, ["orderCycleStart","orderCycleEnd"]);
// if (notPayCount <= 1) {
// let newOrderInfo = await findOnceToSort(TABLEENUM.订单表, {userId:oldInfo.userId}, {lifespanEndTime:-1}, ["orderCycleStart","orderCycleEnd"]);
updateUserInfo.lifespanStartTime = newOrderInfo.orderCycleStart;
updateUserInfo.lifespanEndTime = newOrderInfo.orderCycleEnd;
updateUserInfo.isGracePeriod = STATE.;
updateUserInfo.gracePeriodEndTime = 0;
updateUserInfo.memberState = MEMBERSTATE.正常;
// // updateUserInfo.lifespanStartTime = newOrderInfo.orderCycleStart;
// // updateUserInfo.lifespanEndTime = newOrderInfo.orderCycleEnd;
// // updateUserInfo.isGracePeriod = STATE.否;
// // updateUserInfo.gracePeriodEndTime = 0;
// updateUserInfo.memberState = MEMBERSTATE.正常;
// updateUserInfo.paymentStatus = PAYMENTSTATUS.已支付;
} else {//非一笔订单 要更新会员到期时间 到 用户表
updateUserInfo.lifespanStartTime = oldInfo.orderCycleStart;
updateUserInfo.lifespanEndTime = oldInfo.orderCycleEnd;
}
if (oldInfo.isFirst) {
updateUserInfo.isFirstPay = true;
}
if (Object.keys(updateUserInfo).length) await updateOneData(TABLEENUM.用户表, {userId:oldInfo.userId}, updateUserInfo);
// } else {//非一笔订单 要更新会员到期时间 到 用户表
// updateUserInfo.lifespanStartTime = oldInfo.orderCycleStart;
// updateUserInfo.lifespanEndTime = oldInfo.orderCycleEnd;
// }
// if (oldInfo.isFirst) {
// updateUserInfo.isFirstPay = true;
// }
// if (Object.keys(updateUserInfo).length) await updateOneData(TABLEENUM.用户表, {userId:oldInfo.userId}, updateUserInfo);
return {
code:"SUCCESS",
......
......@@ -4,7 +4,7 @@
*/
import moment = require("moment");
import { INDIVIDUALMEMBERTYPE, MEMBERTYPE, PAYMENTSTATUS, STATE, UNITMEMBERTYPE, USERREGISTERSTATE } from "../../config/enum";
import { INDIVIDUALMEMBERTYPE, MEMBERSTATE, MEMBERTYPE, PAYMENTSTATUS, STATE, UNITMEMBERTYPE, USERREGISTERSTATE } from "../../config/enum";
import { ERRORENUM } from "../../config/errorEnum";
import { addManyData } from "../../data/add";
import { deleteManyData } from "../../data/delete";
......@@ -29,7 +29,7 @@ export async function getMemberData({userId}) {
let oldInfo = await findOnce(TABLEENUM.用户表, {userId});
if (!oldInfo || !oldInfo.userId) throw new BizError(ERRORENUM.目标数据不存在);
let topSelectFiles = ["loginId", "memberType", "userRegisterState", "integral", "joinTime", "lifespanStartTime", "lifespanEndTime", "memberLevel", "isFirstPay", "paymentStatus"];
let topSelectFiles = ["loginId", "memberType", "userRegisterState", "integral", "joinTime", "lifespanStartTime", "lifespanEndTime", "memberLevel", "isFirstPay", "paymentStatus", "memberState"];
let baseSelectFiles = [];
let majorSelectFiles = [];
let otherAttachment:any= {};
......@@ -69,7 +69,7 @@ export async function getMemberData({userId}) {
topInfo.integral = 0;
if(topInfo.joinTime) topInfo.joinTime = moment(topInfo.joinTime).format("YYYY-MM-DD");
if(topInfo.lifespanEndTime) {
if(!topInfo.isFirstPay) topInfo.lifespanEndTime = "欠费中";
if(topInfo.memberState == MEMBERSTATE.异常) topInfo.lifespanEndTime = "欠费中";
else topInfo.lifespanEndTime = moment(topInfo.lifespanEndTime).format("YYYY-MM-DD");
}
......
......@@ -5,19 +5,17 @@
import { MEMBERSTATE, MEMBERLEVEL, DOCUMENTTYPE, NATION, PROFCATEGORY, MEMBERTYPE, USERREGISTERSTATE, STATE, UNITMEMBERTYPE, ADMINLV, ADMINTYPE, SEX, CERTIFICATETYPE, INDIVIDUALMEMBERTYPE, EDUCATION } from "../../config/enum";
import { ERRORENUM } from "../../config/errorEnum";
import { TABLEENUM } from "../../data/models/model";
import { find, findCount, findOnce, findOnceToSort, findToPage, findToSort } from "../../data/select";
import { find, findCount, findOnce, findOnceToSort, findToPage } from "../../data/select";
import { updateOneData } from "../../data/update";
import { changeArticleName, generateSystemId, getEdition, successResult } from "../../tools/system";
import { generateSystemId, getEdition, successResult } from "../../tools/system";
import { BizError } from "../../util/bizError";
import { extractData } from "../../util/piecemeal";
import { changeEnumValue, eccEnumValue } from "../../util/verificationEnum";
import { addManyData, addOneData } from "../../data/add";
import { addManyData } from "../../data/add";
import { deleteManyData, deleteOneData } from "../../data/delete";
import moment = require("moment");
import { eccCityCode, getCityNameByCode } from "../../config/cityConfig";
import { eccFormParam } from "../../util/verificationParam";
import { getSession } from "../public";
/**
* 单位会员列表 success
......
......@@ -3,9 +3,9 @@
*/
import moment = require("moment");
import { MEMBERLEVEL, MEMBERSTATE, MEMBERTYPE, ORDERSTATE, PAYMENTTYPE, RECEIPTCONFIRMATION, STATE, UNITMEMBERTYPE, USERREGISTERSTATE } from "../../config/enum";
import { MEMBERSTATE, MEMBERTYPE, ORDERSTATE, PAYMENTTYPE, RECEIPTCONFIRMATION, STATE, UNITMEMBERTYPE, USERREGISTERSTATE } from "../../config/enum";
import { TABLEENUM } from "../../data/models/model";
import { find, findCount, findOnce, findOnceToSort, findToPage, findToSort } from "../../data/select";
import { find, findCount, findOnce, findToPage, findToSort } from "../../data/select";
import { extractData } from "../../util/piecemeal";
import { changeEnumValue } from "../../util/verificationEnum";
import { BizError } from "../../util/bizError";
......
......@@ -7,7 +7,7 @@ import { generateOrderId, successResult } from "../../tools/system";
import { changeEnumValue, eccEnumValue } from "../../util/verificationEnum";
import { addOneData } from "../../data/add";
import { TABLEENUM } from "../../data/models/model";
import { find, findCount, findOnce, findOnceToSort, findToPage, findToSort } from "../../data/select";
import { find, findCount, findOnce, findOnceToSort, findToPage } from "../../data/select";
import { extractData } from "../../util/piecemeal";
import { BizError } from "../../util/bizError";
import { ERRORENUM } from "../../config/errorEnum";
......@@ -260,7 +260,7 @@ export async function confirmReceiptPass({id}) {
updateUserInfo.isGracePeriod = STATE.,
updateUserInfo.gracePeriodEndTime = 0,
updateUserInfo.memberState = MEMBERSTATE.正常,
updateUserInfo.paymentStatus = PAYMENTSTATUS.已支付
updateUserInfo.paymentStatus = PAYMENTSTATUS.已支付
} else {//非一笔订单 要更新会员到期时间 到 用户表
updateUserInfo.lifespanStartTime = orderInfo.orderCycleStart;
updateUserInfo.lifespanEndTime = orderInfo.orderCycleEnd;
......
......@@ -2,10 +2,9 @@
* 控制台-工作台
*/
import { COSTTYPE, INDIVIDUALMEMBERTYPE, MEMBERLEVEL, MEMBERSTATE, MEMBERTYPE, MEMBERTYPEECCENUM, ORDERSTATE, STATE, UNITMEMBERTYPE } from "../../config/enum";
import { COSTTYPE, INDIVIDUALMEMBERTYPE, MEMBERLEVEL, MEMBERSTATE, MEMBERTYPE, ORDERSTATE, STATE, UNITMEMBERTYPE } from "../../config/enum";
import { TABLEENUM } from "../../data/models/model";
import { find, findCount } from "../../data/select";
import { extractData } from "../../util/piecemeal";
/**
......
......@@ -3,7 +3,7 @@
*/
import moment = require("moment");
import { ARTICLEPOSITION, BANNERPOSITION, BRANCHPOSITION, CODPARTICIPANT, DANGJIANVIDEO, DONGTAIZIXUNSUBTYPE, IMGEDITFUNENUM, MEMBERSTATE, MEMBERTYPE, PARTYBUILDSUBTYPEENUM, PARTYBUILDTYPEENUM, STATE, TONGZHIGONGGAO, UNITMEMBERTYPE, XUEHUILINGDAOZHIWEI } from "../config/enum";
import { ARTICLEPOSITION, BANNERPOSITION, BRANCHPOSITION, CODPARTICIPANT, DANGJIANVIDEO, DONGTAIZIXUNSUBTYPE, IMGEDITFUNENUM, MEMBERTYPE, PARTYBUILDSUBTYPEENUM, PARTYBUILDTYPEENUM, STATE, TONGZHIGONGGAO, UNITMEMBERTYPE, XUEHUILINGDAOZHIWEI } from "../config/enum";
import { TABLEENUM } from "../data/models/model";
import { find, findCount, findOnce, findToPage, findToSort, findToSortToPage } from "../data/select";
import { extractData } from "../util/piecemeal";
......@@ -232,7 +232,7 @@ export async function guiZhangZhiDuXiangQing({id}) {
if (!dataBaseInfo || !dataBaseInfo.id) {
throw new BizError(ERRORENUM.目标数据不存在);
}
let dataInfo:any = extractData(dataBaseInfo, [ "articleTime", "title", "desc"]);
let dataInfo:any = extractData(dataBaseInfo, [ "articleTime", "title", "desc", "files"]);
dataInfo.articleTime = moment(dataInfo.articleTime).format("YYYY-MM-DD");
dataInfo.source = "中国艺术职业教育学会";
......@@ -273,7 +273,7 @@ export async function wenZhangXiangQing({id}) {
if (!dataBaseInfo || !dataBaseInfo.id) {
throw new BizError(ERRORENUM.目标数据不存在);
}
let dataInfo:any = extractData(dataBaseInfo, [ "articleTime", "imgUrl", "title", "desc"]);
let dataInfo:any = extractData(dataBaseInfo, [ "articleTime", "imgUrl", "title", "desc", "files"]);
dataInfo.articleTime = moment(dataInfo.articleTime).format("YYYY-MM-DD");
dataInfo.source = "中国艺术职业教育学会";
......@@ -610,9 +610,9 @@ export async function tongZhiGongGaoInfo({id, type}) {
// dataInfo.members = changeEnumValue(CODPARTICIPANT, dbData.members);
let findParam = {id, articleType:{"$in":[type]}, display:STATE.};
let dataBaseInfo = await findOnce(TABLEENUM.文章管理, findParam, ["id", "title", "desc", "imgUrl", "articleTime" ]);
let dataBaseInfo = await findOnce(TABLEENUM.文章管理, findParam, ["id", "title", "desc", "imgUrl", "articleTime" , "files"]);
if (!dataBaseInfo || !dataBaseInfo.id ) throw new BizError(ERRORENUM.源文章已被删除);
let dataInfo:any = extractData(dataBaseInfo, ["id", "title", "desc", "imgUrl", "articleTime"]);
let dataInfo:any = extractData(dataBaseInfo, ["id", "title", "desc", "imgUrl", "articleTime" , "files"]);
dataInfo.articleTime = moment(dataBaseInfo.articleTime).format("YYYY-MM-DD");
......
......@@ -13,6 +13,7 @@ import { updateOneData } from "../../../data/update";
import { changeArticleName, generateSystemId, successResult } from "../../../tools/system";
import { BizError } from "../../../util/bizError";
import { extractData } from "../../../util/piecemeal";
import { eccReqParamater } from "../../../util/verificationParam";
/**
......@@ -25,6 +26,7 @@ export async function create(secureArgs) {
let {userId, form} = secureArgs;
form.ct = new Date().valueOf();
form.id = generateSystemId(TABLEENUM.文章管理, userId);
await addOneData(TABLEENUM.文章管理, form);
return successResult();
......@@ -42,7 +44,7 @@ export async function update(secureArgs:any) {
let {userId, id, form} = secureArgs;
let oldInfo = await findOnce(TABLEENUM.文章管理, {id});
if (!oldInfo || !oldInfo.id) throw new BizError(ERRORENUM.目标数据不存在);
await updateOneData(TABLEENUM.文章管理, {id}, form);
return successResult();
......@@ -91,7 +93,7 @@ export async function info(secureArgs:any) {
let {id} = secureArgs;
let oldInfo = await findOnce(TABLEENUM.文章管理, {id});
if (!oldInfo || !oldInfo.id) throw new BizError(ERRORENUM.目标数据不存在);
let dataInfo = extractData(oldInfo, ["id", "title", "articleType", "imgUrl", "articleTime", "desc"]);
let dataInfo = extractData(oldInfo, ["id", "title", "articleType", "imgUrl", "articleTime", "desc", "files"]);
return { dataInfo };
}
......
import { MEMBERTYPE } from "../config/enum";
import { TABLEENUM } from "../data/models/model";
import { find } from "../data/select";
const path = require('path');
const fs = require('fs');
const xlsx = require('node-xlsx');
export async function t() {
let {sheetMap} = getExcel(path.join(__dirname.substring(0,__dirname.indexOf("out")), "res", '个人会员删除.xlsx' ));
let dataList = sheetMap["简化版"];
let allUserList = await find(TABLEENUM.用户表, {isAdmin:0, isInput:1});
let allMap = {};
let allUnitMap = {};
let phoneList = [];
allUserList.forEach(item => {
if (item.memberType == MEMBERTYPE.个人会员) {
if (!allMap[item.documentId]) allMap[item.documentId] = 0;
allMap[item.documentId] += 1;
if (!item.documentId) {
phoneList.push([item.name, item.phone]);
}
} else {
if (!allUnitMap[item.unitName]) allUnitMap[item.unitName] = 0;
allUnitMap[item.unitName] += 1;
}
});
dataList.forEach((subList, index) => {
if (index <= 1) return;
let carId = subList[2];
if (allMap[carId]) console.log("个人会员匹配成功", carId);
});
console.log("====");
let unitExcelData = getExcel(path.join(__dirname.substring(0,__dirname.indexOf("out")), "res", '机构删除名单.xlsx' ));
let unitDataList = unitExcelData.sheetMap["Sheet2"];
unitDataList.forEach((subList, index) => {
let carId = subList[3];
if (allUnitMap[carId]) console.log("个人会员匹配成功", carId)
});
console.log("end");
}
/**
* 获取当个excel文件数据
* @param filePath
* @returns
*/
function getExcel(filePath) {
const workSheetsFromFile = xlsx.parse(filePath);
let sheetMap = {};
let sheetList = [];
for (let i = 0; i < workSheetsFromFile.length; i++) {
let sheetInfo = workSheetsFromFile[i];
sheetMap[sheetInfo.name] = sheetInfo.data;
sheetList.push(sheetInfo);
}
return {sheetMap, sheetList}
}
import moment = require("moment");
import { ARTICLEPOSITION, MEMBERLEVEL, MEMBERSTATE, MEMBERTYPE, PARTYBUILDSUBTYPEENUM, PARTYBUILDTYPEENUM, PAYMENTSTATUS, STATE, USERREGISTERSTATE } from "../config/enum";
import { ARTICLEPOSITION, MEMBERSTATE, MEMBERTYPE, PARTYBUILDSUBTYPEENUM, PARTYBUILDTYPEENUM, PAYMENTSTATUS, STATE, USERREGISTERSTATE } from "../config/enum";
import { TABLEENUM } from "../data/models/model";
import { find, findCount, findOnce, findOnceToSort } from "../data/select";
import { createOrder } from "./member/order";
......
......@@ -53,6 +53,7 @@
},
*/
import { Schema } from "mongoose";
import { INVOICESTATUS, MEMBERLEVEL, MEMBERSTATE, REGISTERFLOW, STATE, USERREGISTERSTATE, WEICHARTPAYSTATE } from "../../config/enum";
......@@ -90,6 +91,8 @@ enum TABLEENUM {
订单审批历史表 = "orderApprovalHistory"
}
const ModelArray = [
{
tableName:TABLEENUM.学会概括,
......@@ -188,6 +191,7 @@ const ModelArray = [
articleTime:'Number',//文章时间
desc:'String',//内容
display:{type:'Number', default:0},//是否显示 使用是否的枚举
files:{type:'[String]', default:[]},//附件
ct:'Number'
}
},
......
......@@ -13,7 +13,7 @@ import { BizError } from '../../util/bizError';
* @returns
*/
function checkTypeIsMongoDBType(typeInfo:any) {
const TypeList = ['String', '[String]', 'Number', '[Number]', 'Boolean'];
const TypeList = ['String', '[String]', 'Number', '[Number]', 'Boolean', 'Files'];
if (typeof typeInfo == 'string') {
return TypeList.indexOf(typeInfo) > -1;
} else if (typeof typeInfo == 'object') {
......@@ -22,6 +22,13 @@ function checkTypeIsMongoDBType(typeInfo:any) {
else throw new BizError(ERRORENUM.系统错误, `初始化 mongodb 的 model 时 ${typeInfo} 不可被系统识别`)
}
const FilesSchema = new mongoose.Schema({
name:String,//文件名称
url:String,//地址
}, {_id:false});
/**
* 校验mongo类型
* @param fileKey
......@@ -35,7 +42,8 @@ function eccMongoFile(fileKey, fileValue:any) {
case '[String]': return [String];
case 'Number': return Number;
case '[Number]': return [Number];
case 'Boolean': return Boolean;
case 'Boolean': return Boolean;
case 'Files': return [FilesSchema];
// default: throw new BizError(ERRORENUM.系统错误, `${fileKey}字段类型为${fileValue} 解析失败`);
}
} else {
......@@ -47,6 +55,9 @@ function eccMongoFile(fileKey, fileValue:any) {
case 'Number': fileInfo.type = Number; break;
case '[Number]': fileInfo.type = [Number]; break;
case 'Boolean': fileInfo.type = Boolean; break;
case 'Files':
fileInfo.type = [FilesSchema];
break;
}
} else throw new BizError(ERRORENUM.系统错误, `${fileKey}字段缺失类型 解析失败`);
if (fileValue.index) fileInfo.index = true;
......@@ -102,7 +113,7 @@ async function initMongoModel(myMongoDB:any) {
let fileValue = schema[fileKey];
if ( !checkTypeIsMongoDBType(fileValue) ) {//非基础数据类型
modelSchema[key] = arrayToObject([ modelMapData[fileValue] ], tableName);
modelSchema[key] = arrayToObject([ modelMapData[fileValue] ], tableName);
distinctMap[fileValue] = 1;
} else {
modelSchema[key] = eccMongoFile(fileKey, fileValue);
......
import { initAdmin } from "./biz/member/rightsMgmt";
import { t } from "./biz/provide";
import { initSMS } from "./biz/sms";
import { initSystemTask } from "./biz/task";
import { initConfig, systemConfig} from "./config/serverConfig";
......@@ -20,6 +21,7 @@ async function lanuch() {
// await test1();
// await inputData(); 20240520日导入数据
await t();
console.log("服务初始化成功");
}
......
......@@ -483,7 +483,7 @@ export const Config = {
"会费管理":[
{
apiName:"已缴费名单列表",
subUrl:'/memberfees/paid',
subUrl:'/memberfees/paid',
param:[
{key:"name", type:"String", desc:"名称", isNull:true},
{key:"memberType", type:"[Number]", desc:"会员类别", isNull:true},
......
......@@ -221,7 +221,7 @@ export const Config = {
param:[
{key:"id", type:"String", desc:"动态id"}
],
bindBiz:officialWebsiteBiz.fenHuiDongTaiInfo
bindBiz:officialWebsiteBiz.fenHuiDongTaiInfo
},
{
apiName:"委员名单",
......
......@@ -770,7 +770,8 @@ export const Config = {
articleType:{type:'[Number]', desc:"文章类型"},
imgUrl:{type:'[String]', desc:"图片地址"},
articleTime:{type:'Number', desc:"文章时间"},
desc:{type:'String', desc:"内容"}
desc:{type:'String', desc:"内容"},
files:{type:'[String]', desc:"附件列表", isNull:true}
},
desc:"表单"
},
......@@ -787,7 +788,8 @@ export const Config = {
articleType:{type:'[Number]', desc:"文章类型"},
imgUrl:{type:'[String]', desc:"图片地址"},
articleTime:{type:'Number', desc:"文章时间"},
desc:{type:'String', desc:"内容"}
desc:{type:'String', desc:"内容"},
files:{type:'[String]', desc:"附件列表", isNull:true}
},
desc:"表单"
},
......
......@@ -24,10 +24,10 @@ const Look = false;//true更新文档
export async function setRouter(httpServer){
if (Look) {
await getDoc();
// await initDoc(portalRouter.FirstName, portalRouter.Config, portalRouter.FirstRouter);//网站编辑
await initDoc(portalRouter.FirstName, portalRouter.Config, portalRouter.FirstRouter);//网站编辑
// await initDoc(publicRouter.FirstName, publicRouter.Config, publicRouter.FirstRouter);//公用组件
// await initDoc(memberRouter.FirstName, memberRouter.Config, memberRouter.FirstRouter);//用户路由
// await initDoc(officalWebsiteRouter.FirstName, officalWebsiteRouter.Config, officalWebsiteRouter.FirstRouter);//官网路由
await initDoc(officalWebsiteRouter.FirstName, officalWebsiteRouter.Config, officalWebsiteRouter.FirstRouter);//官网路由
// await initDoc(orderRouter.FirstName, orderRouter.Config, orderRouter.FirstRouter);//会费相关
// await initDoc(costRouter.FirstName, costRouter.Config, costRouter.FirstRouter);//支付
// await initDoc(outPutRouter.FirstName, outPutRouter.Config, outPutRouter.FirstRouter);//导出路由
......
......@@ -2,7 +2,7 @@ import { systemConfig } from "../config/serverConfig";
import { postForm } from "../util/request";
const Cookie = [
'sidebar_collapsed=false',
'cookie_token=65a71d64884f80995195eba723ce3db2236a8398644a2fe56280f0334a4bd1a5',
'cookie_token=7e957b76d188c7e5a382c45029cd8e59c3b083cc8478fd4f954064fafe973da2',
'_gitlab_session=a8de022ccd772cd40a82f6e9cc11b061',
'PHPSESSID=97g5f9olpu5r6m7q93nbaclgk2',
'think_language=zh-CN'
......
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