Commit 0160f4fd by 孙香冬

no message

parent 3db26da4
/**
* 后台管理
*/
/** /**
* 登录 * 登录
......
/**
* 小程序
* 首页基础数据
*/
import * as partyMemberData from '../../data/partyMember';
import * as partyInformationData from '../../data/partyInformation';
import * as configEnum from "../../config/enum";
import * as splitResultConfig from "../../config/splitResultConfig";
import { extractData } from '../../util/piecemeal';
import { changeEnumValue, eccEnumValue } from '../../util/verificationEnum';
import { BizError } from '../../util/bizError';
import { ERRORENUM } from '../../config/errorEnum';
/**
* 主页基础数据
*/
export async function homeData() {
/**主页基础数据 */
let baseInfo:any = {};
/**党员总数 */
let partyMemberNum = await partyMemberData.groupFindPartyMemberCount({});
/**党建指令指数 */
let massIndex = 87.6;
/**党内职务人员 */
let branchSecretary = getPartyPositions(configEnum.PARTYPOSITIONS.支部书记);
let deputySecretary = getPartyPositions(configEnum.PARTYPOSITIONS.支部副书记);
let memberOrganization = getPartyPositions(configEnum.PARTYPOSITIONS.组织委员);
let memberAdvocacy = getPartyPositions(configEnum.PARTYPOSITIONS.宣传委员);
let disciplineInspection = getPartyPositions(configEnum.PARTYPOSITIONS.纪检委员);
baseInfo = {
partyMemberNum,
massIndex,
partyPositions: [
{
key: "支部书记",
list: branchSecretary
},
{
key: "支部副书记",
list: deputySecretary
},
{
key: "组织委员",
list: memberOrganization
},
{
key: "宣传委员",
list: memberAdvocacy
},
{
key: "纪检委员",
list: disciplineInspection
}
]
}
return baseInfo;
}
/**
* 根据党建职务查询当职人员
* @param type 党建职务
* @returns ["李一", "王二"] 当职人员姓名
*/
async function getPartyPositions(type) {
let result:any = [];
let dataInfo = await partyMemberData.getBaseListByPartyPositions(type);
if (!dataInfo) throw new BizError(ERRORENUM.未找到数据, `查询党建职务时 ${type} 不存在`);
dataInfo.forEach( info => {
result.push(info.name);
})
return result;
}
/**
* 根据资讯类型查询党建资讯列表
* @param informationType 党建资讯类型
* @returns
*/
export async function informationData(informationType) {
let selectParam:any = {};
if (informationType) {
eccEnumValue("党建资讯列表查询", "资讯类型", configEnum.INFORMATIONTYPE, informationType);
selectParam.informationType = informationType;
}
/**医院文化 */
let partyInformationInfo = await partyInformationData.findPartyInformationList(selectParam);
if (!partyInformationInfo) throw new BizError(ERRORENUM.未找到数据, `查询党建资讯时 ${selectParam.informationType} 不存在`);
let dataList = [];
partyInformationInfo.forEach( info => {
let changeData:any = extractData(splitResultConfig.partyInformationConfig, info, true);
changeData.informationType = changeEnumValue(configEnum.INFORMATIONTYPE, changeData.informationType);
dataList.push(changeData);
})
return dataList;
}
/**
* 小程序
* 组织生活
*/
import moment = require("moment");
import * as organizationalLifeData from "../../../data/organizationalLife";
import * as configEnum from "../../../config/enum";
import { eccFormParam } from "../../../util/verificationParam";
import * as eccFormParamConfig from "../../../config/eccFormParamConfig";
import * as verificationEnumTools from "../../../util/verificationEnum";
import { ERRORENUM } from "../../../config/errorEnum";
import { BizError } from "../../../util/bizError";
import { extractData } from "../../../util/piecemeal";
import * as splitResultConfig from "../../../config/splitResultConfig";
/**
* 组织生活列表
* @param status 活动状态 全部、正在进行、即将开展、已经开展
* @return {allActivity, afootActivity, beginInActivity, startedActivity}
* 返回说明 {全部活动列表, 正在进行活动列表, 即将开展活动列表, 已经开展活动列表}
*/
export async function getOrganizationalLifeList() {
let organizationalLifeInfo = await organizationalLifeData.findOrganizationalLifeList({});
/**全部活动列表 */
let allActivity = [];
/**正在进行活动列表 */
let afootActivity = [];
/**即将开展活动列表 */
let beginInActivity = [];
/**已经开展活动列表 */
let startedActivity = [];
organizationalLifeInfo.forEach( info => {
let activityStatus = getActivityStatus(info.activityStartTime, info.activityEndTime)
let activityTime = "2023.05.17 14:00--16:00"; // -----------todo 活动时间 格式不确定,之后修改---------------------
allActivity.push({
_id: info._id,
partyActivityType: info.partyActivityType,
activityTime,
activityAdd: info.activityAdd,
activityStatus
});
switch (activityStatus) {
case "正在进行":
afootActivity.push({
_id: info._id,
partyActivityType: info.partyActivityType,
activityTime,
activityAdd: info.activityAdd,
activityStatus
});
break;
case "即将开展":
beginInActivity.push({
_id: info._id,
partyActivityType: info.partyActivityType,
activityTime,
activityAdd: info.activityAdd,
activityStatus
});
break;
case "已经开展":
startedActivity.push({
_id: info._id,
partyActivityType: info.partyActivityType,
activityTime,
activityAdd: info.activityAdd,
activityStatus
});
break;
}
})
return {allActivity, afootActivity, beginInActivity, startedActivity};
}
/**
* 组织生活活动状态
* 活动状态 1:正在进行、2:即将开展、3:已经开展
* @param activityStartTime 活动开始时间
* @param activityEndTime 活动结束时间
* @return status --活动状态
*/
function getActivityStatus(activityStartTime, activityEndTime) {
let nowTime = new Date().valueOf();
let startTime = moment(activityStartTime).format("YYYY.MM.DD HH:mm");
let endTime = moment(activityEndTime).format("YYYY.MM.DD HH:mm");
let underway = moment().isBetween(startTime, endTime); //true:正在进行
let status;
if (underway) {
status = "正在进行";
}
if (nowTime < activityStartTime) {
status = "即将开展";
}
if (nowTime > activityStartTime) {
status = "已经开展";
}
return status
}
/**
* 创建组织生活活动
* @param param {党建活动类型, 活动开始时间, 活动结束时间, 活动地点, 活动主持人, 活动记录人, 请假党员, 参与党员, 活动记录}
* 参数类型 { number, number, number, string, [string], [string], [string], [string], string}
* @return {isSuccess: true}
*/
export async function createActivity(param) {
eccFormParam("创建组织生活活动", eccFormParamConfig.CreateActivityConfig, param)
verificationEnumTools.eccEnumValue('创建组织生活活动的党建活动类型', 'partyActivityType', configEnum.ACTIVITYTYPE, param.partyActivityType);
await organizationalLifeData.createActivity(param);
return {isSuccess: true};
}
export async function getActivityById(_id) {
let activityInfo = await organizationalLifeData.findEventDetails(_id);
if (!activityInfo ) throw new BizError(ERRORENUM.未找到数据, `库中不存在${_id}这个组织生活活动`);
/**截取返回字段 */
let data = extractData(splitResultConfig.activityInfoConfig, activityInfo, false);
}
\ No newline at end of file
/**
* 小程序
*/
import { ERRORENUM } from '../../config/errorEnum';
import * as partyMemberData from '../../data/partyMember';
import * as sysTools from "../../tools/system";
import { BizError } from '../../util/bizError';
/**
* 党员入口登录
* @param loginId 登录账号
* @param pwd 登录密码
* @returns loginUserInfo: {loginId, firstLogin, token} 登录后的信息
*/
export async function login(loginId:string, pwd:string) {
let loginInfo = await partyMemberData.findPartyMemberByLoginId(loginId);
if (!loginInfo) throw new BizError(ERRORENUM.账号不存在);
let checkPwd = sysTools.getPwdMd5(loginInfo.loginId, pwd);
if (loginInfo.pwd != checkPwd) throw new BizError(ERRORENUM.密码错误);
const Token = sysTools.getToken(loginId);
let loginUserInfo = {
loginId: loginInfo.loginId,
firstLogin: !loginInfo.firstLoginIsChangePwd,
token: Token
};
loginInfo.token = Token;
loginInfo.tokenMs = new Date().valueOf;
await loginInfo.save();
return loginUserInfo;
}
/**
* 首次登录修改密码
* @param loginId 登录账号
* @param pwd 新密码
* @param confirmPwd 确认密码
* @returns {isSuccess: true}
*/
export async function firstLoginChangePwd(loginId:string, pwd:string, confirmPwd:string) {
if (pwd != confirmPwd) throw new BizError(ERRORENUM.密码不一致);
if (pwd.search(/^[A-Za-z0-9]{6,18}$/) < 0) throw new BizError(ERRORENUM.密码只能由618位字符和数字组成);
let partyMemberInfo = await partyMemberData.findPartyMemberByLoginId(loginId);
if (partyMemberInfo) throw new BizError(ERRORENUM.未找到数据);
if (partyMemberInfo.firstLoginIsChangePwd) throw new BizError(ERRORENUM.不能重复修改密码, `重复调用了首次登录之后的修改密码接口${loginId}`);
partyMemberInfo.pwd = sysTools.getPwdMd5(loginId, sysTools.md5PwdStr(pwd));
partyMemberInfo.firstLoginChangePwd = true;
await partyMemberInfo.save();
return {isSuccess: true};
}
\ No newline at end of file
...@@ -8,14 +8,18 @@ ...@@ -8,14 +8,18 @@
/** /**
* 使用端: 小程序端【孵化器入口】 * 使用端: 小程序端
* 场景: 更新孵化器基础数据表单 * 场景: 创建组织生活活动表单
* 备注: * 备注:
*/ */
export const BaseParamUpdateConfig = { export const CreateActivityConfig = {
virtualEnterpriseNum:{type:"Number"},//虚拟企业数量 partyActivityType:{type:"Number"},//党建活动类型
incubatedAcreage:{type:"Number", notMustHave:true},//在孵面积(㎡) activityStartTime:{type:"Number"},//活动开始时间
acreageTotal:{type:"Number", notMustHave:true},//孵化器总面积(㎡) activityEndTime:{type:"Number"},//活动结束时间
acreagePersonalUse:{type:"Number", notMustHave:true},//孵化器自用面积(㎡) activityAdd:{type:"String"},//活动地点
hatchingGround:{type:"[Object]", notMustHave:true},//经备案孵化场地 activityHost:{type:"[Object]"},//活动主持人
activityNoteTaker:{type:"[Object]"},//活动记录人
leavePartyMember:{type:"[Object]", notMustHave:true},//请假党员
participatingPartyMember:{type:"[Object]", notMustHave:true},//参与党员
participationRecord:{type:"String", notMustHave:true},//活动记录
}; };
\ No newline at end of file
/**更新状态 */ /**
export enum UPDATESTATE { * 党内职务 Party positions
未填报 = 1, */
已填报 = 2 export enum PARTYPOSITIONS {
支部书记 = 1,
支部副书记,
纪检委员,
组织委员,
宣传委员
} }
/** /**
* 管理后台导出 * 名册录入类型
*/ */
export enum OUTPUTTYPE { export enum ENTRYTYPE {
当前数据 = 1, 正式党员录入 = 1,
全部数据 入党积极分子录入,
入党申请录入
} }
/** /**
* 党建活动类型
*/
export enum ACTIVITYTYPE {
日常教育培训 = 1,
主题党日活动,
骨干队伍培训,
支部工作会,
二十大精神,
三会一课
}
/**
* 党建咨询类型
*/
export enum INFORMATIONTYPE {
医院文化 = 1,
精神文明,
科普知识,
先进典型
}
/**
* 最高学历 * 最高学历
*/ */
export enum DEGREE { export enum DEGREE {
...@@ -40,12 +67,3 @@ export enum CODETYPE { ...@@ -40,12 +67,3 @@ export enum CODETYPE {
修改密码 = 1, 修改密码 = 1,
} }
/**
* 短信类型
*/
export enum SMSTYPE {
修改密码 = 1,
信息填报提醒,
创建孵化器提醒
}
\ No newline at end of file
...@@ -10,278 +10,25 @@ ...@@ -10,278 +10,25 @@
* 场景: 孵化器基础数据列表 * 场景: 孵化器基础数据列表
* 备注: 导出和列表共用一份配置 * 备注: 导出和列表共用一份配置
*/ */
export const FuHuaQiBaseListConfig = { export const partyInformationConfig = {
name:{key:"名称"}, _id:{key:"id"},
operationName:{key:"运营机构名称 不可修改"}, informationType:{key:"党建资讯类型"},
uscc:{key:"统一信用代码 也是登录账号 不可修改"}, title:{key:"资讯标题"},
virtualEnterpriseNum:{key:"虚拟企业数量"}, branch:{key:"支部"},
logonTime:{key:"注册时间", changeDate:true}, informationTime:{key:"资讯时间"},
incubatedAcreage:{key:"在孵面积(㎡)"}, img: {key:"图片"}
acreageTotal:{key:"孵化器总面积(㎡)"},
acreagePersonalUse:{key:"孵化器自用面积(㎡)"},
lv:{key:"孵化器级别"},
identificationTime:{key:"认定时间", changeDate:true},
industry:{key:"领域[]"},
institutionalNature:{key:"机构性质"},
liaison:{key:"联系人"},
liaisonPhone:{key:"联系电话"},
personInCharge:{key:"负责人"},
personInChargePhone:{key:"负责人联系电话"},
hatchingGround:{key:"经备案孵化场地"},
foundingTeam:{key:"创业团队"},
operationModel:{key:"运营模式"},
foundingTeamType:{key:"创业团队类型"}
}; };
/** export const activityInfoConfig = {
* 使用端: 小程序端【孵化器入口】
* 场景: 添加新注册企业信息
* 备注: 回显
*/
export const EnterpriseInfoConfig = {
draftId:{key:"草稿箱id"},
name:{key:"企业名称"}, //
uscc:{key:"统一信用代码"}, //
industry:{key:"领域"},//
logonTime:{key:"注册时间", changeDate:true},//
firstIncubationTime:{key:"首次入孵时间", changeDate:true},//
isNaturalPersonHolding:{key:"是否自然人控股企业"},//
logonAdd:{key:"注册地址"},//
operatingAdd:{key:"经营地址"},//
leasedArea:{key:"租赁面积(平方米)"},
mainBusiness:{key:"主营业务"},//主营业务
};
/**
* 使用端: 小程序端【孵化器入口】
* 场景: 添加迁入企业信息
* 备注: 回显
*/
export const EnterpriseMoveInInfoConfig = {
draftId:{key:"草稿箱id"},
name:{key:"企业名称"}, //
uscc:{key:"统一信用代码"}, //
industry:{key:"领域"},//
logonTime:{key:"注册时间", changeDate:true},//
firstIncubationTime:{key:"首次入孵时间", changeDate:true},//
isNaturalPersonHolding:{key:"是否自然人控股企业"},//
logonAdd:{key:"注册地址"},//
operatingAdd:{key:"经营地址"},//
leasedArea:{key:"租赁面积(平方米)"},
timeOfImmigration:{key:"迁入时间", changeDate:true},//
oldLogonAdd:{key:"迁入前注册地址"},//
mainBusiness:{key:"主营业务"},//主营业务
};
/**
* 使用端: 小程序端【孵化器入口】
* 场景: 企业融资信息
* 备注: 回显
*/
export const EnterpriseFinancingInfoConfig = {
uscc:{key:"统一信用代码"},//
name:{key:"企业名称"},//
logonAdd:{key:"注册地址"},//
operatingAdd:{key:"经营地址"},//
financingAmount:{key:"融资金额(万元)"},//
investmentInstitutionsName:{key:"投资机构名称"},//
timeToObtainInvestment:{key:"获得投资时间", changeDate:true},//
fuHuaQiInvestment:{key:"孵化器是否投资"},
fuHuaQiInvestmentAmount:{key:"孵化器投资金额(万元)"},//
fuHuaQiInvestmentStyle:{key:"孵化器投资方式"},//
financingRounds:{key:"融资轮次"}
};
/**
* 使用端: 管理后台
* 场景: 在孵企业列表
* 备注: 导出和列表共用一份配置
*/
export const EnterpriseListConfig = {
name:{key:"企业名称"},
createTime:{key:"入库时间 不可修改", changeDate:true},
fuhuaqiUscc:{key:"孵化器统一信用代码 不可修改 这里显示运营机构的名称"},
uscc:{key:"统一信用代码 也是登录账号 不可修改"},
industry:{key:"行业领域[] 最多 选择三个"},
logonTime:{key:"注册时间", changeDate:true},
firstIncubationTime:{key:"首次入孵时间", changeDate:true},
timeOfImmigration:{key:"迁入时间", changeDate:true},
isNaturalPersonHolding:{key:"是否自然人控股"},
oldLogonAdd:{key:"迁入前注册地址"},
logonAdd:{key:"注册地址"},
operatingAdd:{key:"经营地址"},
leasedArea:{key:"租赁面积(平方米)"},
isCreate:{key:"新注册/新迁入"},
mainBusiness:{key:"主营业务"},//主营业务
state:{key:"孵化状态"},
virtualCause:{key:"虚拟孵化模式"}
};
/**
* 使用端: 管理后台
* 场景: 迁出企业列表
* 备注: 导出和列表共用一份配置
*/
export const EnterpriseMoveOutListConfig = {
name:{key:"企业名称"},
moveOutTime:{key:"迁出时间", changeDate:true},
moveOutType:{key:"迁出类型"},
moveOutCause:{key:"迁出原因"},
fuHuaQiUscc:{key:"前所属孵化器"},
industry:{key:"行业领域[] 最多 选择三个"},
createTime:{key:"入库时间 不可修改", changeDate:true},
uscc:{key:"统一信用代码 也是登录账号 不可修改"},
mainBusiness:{key:"主营业务"},//主营业务
logonTime:{key:"注册时间", changeDate:true},
timeOfImmigration:{key:"迁入时间", changeDate:true},
oldLogonAdd:{key:"迁入前注册地址"},
firstIncubationTime:{key:"首次入孵时间", changeDate:true},
isNaturalPersonHolding:{key:"是否自然人控股"},
logonAdd:{key:"注册地址"},
operatingAdd:{key:"经营地址"},
leasedArea:{key:"租赁面积(平方米)"},
};
/**
* 使用端: 管理后台
* 场景: 企业融资信息列表
* 备注: 导出和列表共用一份配置
*/
export const FinancingListConfig = {
uscc:{key:"企业统一信用代码"},
name:{key:"企业名称"},
logonAdd:{key:"注册地址"},
operatingAdd:{key:"经营地址"},
financingAmount:{key:"融资金额(万元)"},
investmentInstitutionsName:{key:"投资机构名称"},
timeToObtainInvestment:{key:"获得投资时间", changeDate:true},
fuHuaQiInvestment:{key:"孵化器是否投资"},
fuHuaQiInvestmentAmount:{key:"孵化器投资金额(万元)"},
fuHuaQiInvestmentStyle:{key:"孵化器投资方式"},
createTime:{key:"录入时间 不可修改", changeDate:true},
industry:{key:"行业领域[] 最多 选择三个"},
logonTime:{key:"注册时间", changeDate:true},
financingRounds:{key:"融资轮次"}
}
/** partyActivityType:{key:"党建活动类型"},
* 使用端: 管理后台 activityStartTime:{key:"活动开始时间"},
* 场景: 账号信息列表 activityEndTime:{key:"活动结束时间"},
* 备注: activityAdd:{key:"活动地点"},
*/ activityHost: {key:"活动主持人"},
export const FuHuaQiListConfig = { activityNoteTaker:{key:"活动记录人"},
operationName:{key:"运营机构名称 不可修改"}, leavePartyMember:{key:"请假党员"},
uscc:{key:"营业执照"}, participatingPartyMember:{key:"参与党员"},
liaison:{key:"联系人"}, participationRecord:{key:"活动记录"},
liaisonPhone:{key:"联系人电话"},
personInChargePhone:{key:"负责人联系电话"},
userState:{key:"账号状态"}
}
/**
* 使用端: 小程序端【孵化器入口】
* 场景: 孵化器月度报表
* 备注: 回显
*/
export const MonthConfig = {
name:{key:"任务名称"},
occupancyRate:{key:"出租率"},
}
/**
* 使用端: 小程序端【孵化器入口】
* 场景: 主界面基础数据
* 备注:
*/
export const FuHuaQiHomeDataConfig = {
incubatedAcreage:{key:"在孵面积"},
acreageTotal:{key:"孵化器总面积"},
acreagePersonalUse:{key:"孵化器自用面积"},
name:{key:"名称"},
lv:{key:"孵化器级别"},
institutionalNature:{key:"机构性质"}
}
/**
* 使用端: 小程序端【孵化器入口】
* 场景: 孵化器详细数据
* 备注: 回显
*/
export const FuHuaQiBaseDataConfig = {
virtualEnterpriseNum:{key:"虚拟企业数量"},
incubatedAcreage:{key:"在孵面积"},
acreageTotal:{key:"孵化器总面积"},
acreagePersonalUse:{key:"孵化器自用面积"},
hatchingGround:{key:"经备案孵化场地"}
} }
\ No newline at end of file
/**
* 使用端: 小程序端【孵化器入口】
* 场景: 机构信息数据
* 备注: 回显
*/
export const OrganizationBaseDataConfig = {
name:{key:"名称"},
operationName:{key:"运营机构名称"},
uscc:{key:"统一信用代码"},
logonTime:{key:"注册时间", changeDate:true},
lv:{key:"孵化器级别"},
identificationTime:{key:"认定时间", changeDate:true},
industry:{key:"孵化领域"},
institutionalNature:{key:"机构性质"},
operationModel:{key:"运营模式"},//新加
foundingTeam:{key:"创始团队"},//新加
foundingTeamType:{key:"创始团队类型"},//新加
liaison:{key:"联系人"},
liaisonPhone:{key:"联系电话"},
// personInCharge:{key:"负责人"}, 2.0去掉了
// personInChargePhone:{key:"负责人联系电话"}, 2.0去掉了
operationModelDes:{key:"运营模式描述"}
// hatchingGround:{key:"经备案孵化场地"}
}
/**
* 使用端: 小程序端【孵化器入口】
* 场景: 我的企业列表(实体 虚拟)
* 备注:
*/
export const MyEnterpriseDataConfig = {
name:{key:"名称"},
uscc:{key:"统一信用代码"},
state:{key:"孵化器状态"},
leasedArea:{key:"租赁面积"},
}
/**
* 使用端: 小程序端【孵化器入口】
* 场景: 我的企业列表中的企业详情
* 备注: 回显
*/
export const MyEnterpriseBaseDataConfig = {
name: {key:"企业名称"},//
uscc:{key:"统一信用代码" },//
industry:{key:"领域"},//
mainBusiness:{key:"主营业务"},//
logonTime:{key:"注册时间"},//
firstIncubationTime:{key:"首次入孵时间"},//
isNaturalPersonHolding:{key:"是否自然人控股企业"},//
logonAdd:{key:"注册地址"},//
operatingAdd:{key:"经营地址"},//
}
/**
* 组织生活表
* organizationalLife
*/
import { Schema } from "mongoose";
import {yfsDB} from '../db/mongo/dbInit';
const organizationalLifeSchema = new Schema({
_id: {type: String, index:true},
/**党建活动类型 1:日常教育培训、2:主题党日活动、3:骨干队伍培训、4:支部工作会、5:二十大精神、6:三会一课 */
partyActivityType: Number,
/**活动开始时间 */
activityStartTime: Number,
/**活动结束时间 */
activityEndTime: Number,
/**活动地点 */
activityAdd: String,
/**活动主持人 */
activityHost: [String],
/**活动记录人 */
activityNoteTaker:[String],
/**请假党员 非必填*/
leavePartyMember:[String],
/**参与党员 */
participatingPartyMember:[String],
/**活动记录 */
participationRecord:String,
})
var organizationalLifeModel;
export function initModel(){
organizationalLifeModel = yfsDB.model('organizationalLife', organizationalLifeSchema);
organizationalLifeModel.selectOnceData = async function (paramater:object) {
let selectInfo = await organizationalLifeModel.findOne(paramater).exec();
if (selectInfo) {
if (!selectInfo.runSave) {
selectInfo.runSave = selectInfo.save;
selectInfo.save = save.bind(selectInfo)
}
}
return selectInfo;
}
}
export async function save(throwError=false) {
if (!this.isModified()) return;
await this.runSave({validateBeforeSave:false}).catch(err=>{
console.log(err);
});
}
/**
* 获取符合条件的党建资讯列表
* @param selectParam 查询参数
* @returns
*/
export async function findOrganizationalLifeList(selectParam) {
return await organizationalLifeModel.find(selectParam);
}
/**
* 创建活动
* @param param 所添加表单 需要提前验证
*/
export async function createActivity(param) {
await organizationalLifeModel.create(param);
}
/**
* 获取活动详情
* @param _id id 唯一标识
* @returns
*/
export async function findEventDetails(_id) {
return await organizationalLifeModel.find({_id});
}
\ No newline at end of file
/**
* 党建资讯
* partyInformation
*/
import { Schema } from "mongoose";
import {yfsDB} from '../db/mongo/dbInit';
const partyInformationSchema = new Schema({
_id: {type: String, index:true},
/**党建资讯类型 1:医院文化、2:精神文明、3:科普知识、4、先进典型 */
informationType: Number,
/**资讯标题 */
title: String,
/**支部 */
branch: String,
/**资讯时间 */
informationTime: Number,
/**资讯详细 */
detailedInformation: String,
/**图片 */
img: String,
})
var partyInformationModel;
export function initModel(){
partyInformationModel = yfsDB.model('partyInformation', partyInformationSchema);
partyInformationModel.selectOnceData = async function (paramater:object) {
let selectInfo = await partyInformationModel.findOne(paramater).exec();
if (selectInfo) {
if (!selectInfo.runSave) {
selectInfo.runSave = selectInfo.save;
selectInfo.save = save.bind(selectInfo)
}
}
return selectInfo;
}
}
export async function save(throwError=false) {
if (!this.isModified()) return;
await this.runSave({validateBeforeSave:false}).catch(err=>{
console.log(err);
});
}
/**
* 获取符合条件的党建资讯列表
* @param selectParam 查询参数
* @returns
*/
export async function findPartyInformationList(selectParam) {
return await partyInformationModel.find(selectParam);
}
/**
* 党员基本信息表
*/
import { Schema } from "mongoose";
import {yfsDB} from '../db/mongo/dbInit';
const partyMemberSchema = new Schema({
_id: {type: String, index:true},
/**姓名 必填 */
name: String,
/**性别 0:男、1:女 必填 */
sex: Number,
/**出生年月 必填 */
birthDate: Number,
/**手机号码 必填 */
phone: Number,
/**文化程度 必填 */
levelOfEducation: Number,
/**入党时间 必填 */
partyJoiningTime: Number,
/**行政职务 必填 1: */
administrativePosition: Number,
/**备注 非必填 */
remarks: String,
/**名册录入类型 1:正式党员录入、2:入党积极分子录入、3:入党申请录入 */
entryType: Number,
/**党内职务 多选 --正式党员录入 1:书记、2:副书记、3:纪检委员、4:组织委员、5:宣传委员 */
partyPositions: [Number],
/**列为积极份子时间 --入党积极份子录入 */
listedAsActivistsTime: Number,
/**谈话时间 --入党申请录入 */
talkTime: Number,
/**-----用户相关----- */
/**登录账号 */
loginId: {type: String, index: true},
/**密码 */
pwd: String,
token:{type:String, index:true},
tokenMs:Number,
/**首次登录是否修改密码 */
firstLoginIsChangePwd:{type:Boolean, default:false},
})
var partyMemberModel;
export function initModel(){
partyMemberModel = yfsDB.model('partyMember', partyMemberSchema);
partyMemberModel.selectOnceData = async function (paramater:object) {
let selectInfo = await partyMemberModel.findOne(paramater).exec();
if (selectInfo) {
if (!selectInfo.runSave) {
selectInfo.runSave = selectInfo.save;
selectInfo.save = save.bind(selectInfo)
}
}
return selectInfo;
}
}
export async function save(throwError=false) {
if (!this.isModified()) return;
await this.runSave({validateBeforeSave:false}).catch(err=>{
console.log(err);
});
}
export async function findPartyMemberAll() {
return await partyMemberModel.find({});
}
/**
* 通过登录账号查询党员信息
* @param loginId 登录账号
* @returns
*/
export async function findPartyMemberByLoginId(loginId:string) {
return await partyMemberModel.selectOnceData({loginId});
}
/**
* 获取符合条件的党员数量
* @param selectParam 查询参数
* @returns number 数据数量
*/
export async function groupFindPartyMemberCount(selectParam) {
return await partyMemberModel.find(selectParam).count();
}
/**
* 根据党内职务查询在职人员信息
* @param partyPositions 党内职务
* @returns
*/
export async function getBaseListByPartyPositions(partyPositions) {
return await partyMemberModel.find({partyPositions});
}
...@@ -4,13 +4,13 @@ import { systemConfig } from "../../config/serverConfig"; ...@@ -4,13 +4,13 @@ import { systemConfig } from "../../config/serverConfig";
import { BizError } from "../../util/bizError"; import { BizError } from "../../util/bizError";
import { createDbConnect } from "./dbConnect"; import { createDbConnect } from "./dbConnect";
import { initTable } from "./tableInit"; import { initTable } from "./tableInit";
var baseDB; var yfsDB;
export async function initDB() { export async function initDB() {
//如果配置了mongoServerConstVal 才会连接mongo //如果配置了mongoServerConstVal 才会连接mongo
if (systemConfig.mongodbStr) { if (systemConfig.mongodbStr) {
console.log(systemConfig.mongodbStr, ' 连接成功') console.log(systemConfig.mongodbStr, ' 连接成功')
baseDB = await createDbConnect(systemConfig.mongodbStr).catch(err => { yfsDB = await createDbConnect(systemConfig.mongodbStr).catch(err => {
throw err throw err
}); });
...@@ -22,4 +22,4 @@ export async function initDB() { ...@@ -22,4 +22,4 @@ export async function initDB() {
} }
export { baseDB }; export { yfsDB };
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