Commit 2b703f93 by lixinming

no message

parent 51b932d8
......@@ -2,13 +2,17 @@
* 支部制度
*/
import moment = require("moment");
import { OPERATIONALDATATYPE, TABLENAME } from "../config/dbEnum";
import { UPTYPE } from "../config/enum";
import { ERRORENUM } from "../config/errorEnum";
import { systemConfig } from "../config/systemConfig";
import { selectData } from "../middleware/databaseSuccess";
import { operationalData, selectData } from "../middleware/databaseSuccess";
import { getFileUrl } from "../middleware/getUrl";
import { BizError } from "../util/bizError";
import { eccFormParam } from "../util/verificationParam";
import { CreateZBZDConfig } from "../config/eccFormParamConfig";
import { getBindId } from "../tools/system";
/**
......@@ -21,10 +25,18 @@ export async function branchSystemList(bId:number, systemTitle:string) {
let param = { bId:{"%like%": bId} };
if(systemTitle) param["systemTitle"] = {"%like%": systemTitle};
let branchSystemList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.支部制度表, param, ["bsId", "systemTitle"]);
let branchSystemList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.支部制度表, param, ["bsId", "systemTitle", "releaseTime"]);
branchSystemList = branchSystemList || [];
let dataList = [];
branchSystemList.forEach(info => {
dataList.push({
bsId:info.bsId,
title:info.systemTitle,
time:moment(info.releaseTime).format("YYYY-MM-DD")
});
});
return branchSystemList;
return {dataList};
}
......@@ -33,13 +45,43 @@ export async function branchSystemList(bId:number, systemTitle:string) {
* @param bsId 支部制度id
* @returns branchSystemInfo:{"bsId":1, "systemTitle":"制度标题", "fileName":["制度文件1", ......]}
*/
export async function branchSystemDetsils(bsId:number, token:string, userid:string) {
let clomun = ["bsId", "systemTitle", "fileName"];
export async function branchSystemDetsils(bsId:number) {
let clomun = ["bsId", "systemTitle", "content", "periodTime", "releaseTime"];
let branchSystemInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.支部制度表, {bsId}, clomun);
if(!branchSystemInfo || !branchSystemInfo.bsId) throw new BizError(ERRORENUM.库中不存在对应数据, `制度细则中不存在id=${bsId}的数据`);
let fileNameList = getFileUrl(branchSystemInfo.fileName, token, UPTYPE.支部制度, userid);
branchSystemInfo.fileName = fileNameList;
return branchSystemInfo;
// let fileNameList = getFileUrl(branchSystemInfo.fileName, token, UPTYPE.支部制度, userid);
// branchSystemInfo.fileName = fileNameList;
let dataInfo = {
title:branchSystemInfo.systemTitle,
releaseTime:moment(branchSystemInfo.releaseTime).format("YYYY-MM-DD"),
content:branchSystemInfo.content,
source:"牙防所党建"
};
return {dataInfo};
}
/**
* 添加制度细则
* @param bsId 支部制度id
* @returns
*/
export async function addOneBranchSystemDetsils(bId:number, param) {
eccFormParam("添加制度细则", CreateZBZDConfig, param);
let addInfo = {
systemTitle:param.title,
releaseTime:moment(param.releaseTime).format("YYYY-MM-DD"),
periodTime:moment(param.periodTime).format("YYYY-MM-DD"),
content:param.content,
bId:JSON.stringify([bId])
};
await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.支部制度表, addInfo, {});
return {isSuccess:true};
}
......
import { changeEnumValue } from "../util/verificationEnum";
import * as configEnum from "../config/enum";
import * as clientConfigEnum from "../config/clientEnum";
import { extractData } from "../util/piecemeal";
import * as splitResultConfig from "../config/splitResultConfig";
import { selectData } from "../middleware/databaseSuccess";
import { OPERATIONALDATATYPE, TABLENAME } from "../config/dbEnum";
import moment = require("moment");
import * as verificationEnumTools from "../util/verificationEnum";
import { getStudent } from "./partyMember";
const ColorConfig = {
1:"#C62A23",
2:"#E4B386",
3:"#2aa115",//发展对象
4:"#3549B0",
5:"#1e5eff"
};
function changePartyPositionsName(partyPositionsName, etId) {
let str = "";
for (let i= 0; i < partyPositionsName.length; i++) {
let item = partyPositionsName[i];
if (item < 10) continue;
str += `,${verificationEnumTools.changeEnumValue(configEnum.PARTYPOSITIONS, item)}`;
}
if (!str) {
let partyPositionsNameStr = "";
if (etId == configEnum.ENTRYTYPE.正式党员) partyPositionsNameStr = "党员";
else partyPositionsNameStr = verificationEnumTools.changeEnumValue(configEnum.ENTRYTYPE, etId);
return {partyPositionsNameStr, color:ColorConfig[etId]};
}
return {partyPositionsNameStr : str.replace(",", ""), color:"#C62A23"};
}
export async function homeData() {
let branch = "牙防所党委" //支部名称
let param = { };
let partyQualityScore = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.党建质量三级指标, param, ["thirdLevelScore", "currentScore"]);
let scoreCount = 0;//得分
let massSum = 0;//总分
partyQualityScore.forEach( score => {
massSum += score.thirdLevelScore;
scoreCount += score.currentScore;
});
let branchCount = 4;
let partyNoticeParam = {};
let partyNoticeList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.党建通知, partyNoticeParam, []);
let noticeList = [];
partyNoticeList.forEach(info => {
noticeList.push({
title:info.title,//类型
content:info.content,//内容
time:moment(info.dataTime).format("YYYY-MM-DD")
});
});
return { branch, branchCount, scoreCount, noticeList, noticeCount:noticeList.length };
}
export async function activitiesData() {
let param = { };
/**资讯 = 活动表 */
let partyInformationList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.专题活动表, param, ["taId", "theme", "activitesTime"]);
let dataList = [];
partyInformationList.forEach( info => {
let changeData:any = extractData(splitResultConfig.partyInformationConfig, info);
changeData.time = moment(info.activitesTime).format('YYYY-MM-DD');
changeData.dateMs = new Date(info.activitesTime).valueOf();
changeData.pbType = configEnum.PBTYPE.党建资讯;
changeData.labels = ["专题活动"];
changeData.id = info.taId;
dataList.push(changeData);
});
dataList.sort( (a, b) => { return b.dateMs - a.dateMs; });
/**动态 */
let partyBuildingDynamicDataList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.党建动态表, param, ["pbId", "theme", "dataMonth", "fileName"]);
let dynamicsList = [];
partyBuildingDynamicDataList.forEach (info => {
let addInfo = {
theme : info.theme,
id : info.pbId,
fileUrl:info.fileName[0] || ""
}
dataList.push(addInfo);
});
return {dynamicsList:dynamicsList, informationList:dataList};
}
export async function partymemberList() {
/**资讯 = 活动表 */
let pmList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.党员基础信息表, {}, ["pmId", "bId"]);
let dataList = [];
let map = {};
let count = pmList.length;
pmList.forEach(info => {
let nameStr = changeEnumValue(configEnum.BRANCHNAMESTR, info.bId);
if ( !map[nameStr] ) map[nameStr] = {name:`${nameStr}人数`,bId:info.bId, count:0};
map[nameStr].count += 1;
})
dataList.push({name:"牙防所党建总人数", count});
for (let key in map) {
dataList.push(map[key]);
}
return {dataList};
}
export async function partymemberTypeList(bId) {
verificationEnumTools.eccEnumValue("党员支部人数", "bId", configEnum.BRANCHNAME, bId);
/**资讯 = 活动表 */
let pmList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.党员基础信息表, {bId}, ["pmId", "etId"]);
let dataList = [];
let map = {};
pmList.forEach(info => {
let nameStr = changeEnumValue(configEnum.ENTRYTYPE, info.etId);
if ( !map[nameStr] ) map[nameStr] = {name:`牙防所${nameStr}人数`, etId:info.etId, count:0};
map[nameStr].count += 1;
})
for (let key in map) {
dataList.push(map[key]);
}
return {dataList};
}
export async function partymemberSublist(bId, name, partyPositionsName ) {
let param = {bId:{"%like%":bId}}
if (name) param["name"] = {"%like%":name};
if (partyPositionsName) param["partyPositionsName"] = {"%like%":partyPositionsName};
let clomun = ["pmId", "name", "etId", "partyPositionsName", "partyJoiningTime", "departmentName"];
let partyMemberList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.党员基础信息表, param, clomun);
let nameList = [];
/**截取返回字段 */
partyMemberList.forEach( info => {
let changeData:any = extractData(splitResultConfig.partyMemberConfig, info);
let {color, partyPositionsNameStr} = changePartyPositionsName( JSON.parse(info.partyPositionsName), changeData.etId);
changeData.partyPositionsName = partyPositionsNameStr;
changeData.color = color;
let time = moment(new Date()).format("YYYY");
let partyJoiningTime = time;
if (info.partyJoiningTime) partyJoiningTime = moment(info.partyJoiningTime).format("YYYY")
changeData.partyStanding = parseInt(time) - parseInt(partyJoiningTime) + "年";
let departmentName = JSON.parse(changeData.departmentName);
changeData.departmentName = verificationEnumTools.changeEnumValue(configEnum.DEDPARTMENT, departmentName);
nameList.push(changeData);
})
return {nameList};
}
......@@ -37,12 +37,15 @@ export async function memberLearningList(pmId:string, courseEntryType:number, co
if(courseTypeName) param["courseTypeName"] = courseTypeName;
if(contentTitle) param["contentTitle"] = {"%like%": contentTitle};
let clomun = ["mlId", "contentTitle", "fileName", "coverImage", "videoDuration", "courseEntryType"];
let clomun = ["mlId", "contentTitle", "fileName", "coverImage", "videoDuration", "courseEntryType", "desc"];
let memberLearningInfo = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.党员学习表, param, clomun);
let courseList = [];
for(let i = 0; i < memberLearningInfo.length; i++) {
let memberInfo = memberLearningInfo[i];
let {mlId, contentTitle, fileName, coverImage, videoDuration} = memberInfo;
let {mlId, contentTitle, fileName, coverImage, videoDuration, desc} = memberInfo;
let learningInfo = rateLearningMap[mlId];
if (!learningInfo) { //如果对应学习课程没有进度数据,创建一条对应进度为0的数据
let addInfo = {
......@@ -65,7 +68,16 @@ export async function memberLearningList(pmId:string, courseEntryType:number, co
} else {
alanysisFileName = JSON.parse(fileName);
}
//todo 这里 fileName不再是一个字符串 而是一个对象{}
courseList.push({
videoDuration,
coverImage,
contentTitle,
desc,
fileName:alanysisFileName
});
// fileName不再是一个字符串 而是一个对象{}
rateLearningList.push({
rlId: learningInfo.rlId,
contentTitle,
......@@ -78,7 +90,7 @@ export async function memberLearningList(pmId:string, courseEntryType:number, co
})
}
return rateLearningList;
return {rateLearningList, courseList};
}
......
/**
* 党建动态 partyBuildingDynamic
* 党建资讯 partyBuildingDynamic
*/
import { OPERATIONALDATATYPE, TABLENAME } from "../config/dbEnum";
......@@ -7,9 +7,9 @@ import { selectData } from "../middleware/databaseSuccess";
import { extractData } from "../util/piecemeal";
import * as splitResultConfig from "../config/splitResultConfig";
import moment = require("moment");
import { PBTYPE, UPTYPE } from "../config/enum";
import { systemConfig } from "../config/systemConfig";
import { ACTIVITIESTYPE, PBTYPE, UPTYPE } from "../config/enum";
import { getFileUrl } from "../middleware/getUrl";
import { changeEnumValue } from "../util/verificationEnum";
/**
......@@ -20,35 +20,34 @@ import { getFileUrl } from "../middleware/getUrl";
* @param activityMonth 月份
* @returns partyBuildingDynamicList:[{"pbId":1, "theme":"党建动态主题", "dataMonth":"数据月份"}, ......]
*/
export async function partyBuildingDynamicList(bId:number, theme:string, activityYear:string, activityMonth:string) {
let timeStr = new Date(`${activityYear}-${activityMonth}`).valueOf();
let stTime = moment(timeStr).startOf("month").format("YYYY-MM-DD HH:mm:ss");
let etTime = moment(timeStr).endOf('month').format("YYYY-MM-DD HH:mm:ss");
export async function partyBuildingDynamicList(bId:number, activitiesType:Number) {
let param = {
let param:any = {
bId,
dataMonth: {"%between%": [stTime, etTime]}
}
if(theme) param["theme"] = {"%like%":theme};
let partyBuildingDynamicList = [];
let partyInformationList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.专题活动表, param, ["taId", "theme", "dataMonth"]);
for (let i = 0; i < partyInformationList.length; i++) {
let info = partyInformationList[i];
let changeData:any = extractData(splitResultConfig.thematicActivitiesConfig, info, "YYYY-MM-DD");
changeData.pbType = PBTYPE.党建资讯;
partyBuildingDynamicList.push(changeData);
}
let buildingDynamicDataList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.党建动态表, param, ["pbId", "theme", "dataMonth"]);
for (let i = 0; i < buildingDynamicDataList.length; i++) {
let info = buildingDynamicDataList[i];
let changeData:any = extractData(splitResultConfig.partyBuildingDynamicConfig, info, "YYYY-MM-DD");
changeData.pbType = PBTYPE.党建动态;
partyBuildingDynamicList.push(changeData);
}
return partyBuildingDynamicList;
activitiesType:{"%like%":activitiesType}
};
let partyInformationList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.专题活动表, param, ["taId", "theme", "activitiesType","activitesTime"]);
let dataList = [];
partyInformationList.forEach(info => {
let activitiesTypeList = [];
JSON.parse(info.activitiesType).forEach(itemKey => {
activitiesTypeList.push({
title:changeEnumValue(ACTIVITIESTYPE, itemKey),
color:"red"
});
})
dataList.push({
taId:info.taId,
activitiesType:activitiesTypeList,
theme:info.theme,
activitesTime:moment(info.activitesTime).format("YYYY-MM-DD")
});
});
return {dataList};
}
......@@ -57,20 +56,29 @@ export async function partyBuildingDynamicList(bId:number, theme:string, activit
* @param pbId
* @returns partyBuildingDynamicInfo:{ "theme":"党建动态主题", "dataMonth":"数据月份", "fileName":["党建动态文件名称", ......] }
*/
export async function partyBuildingDynamicDetsils(pbId:number, pbType:number, token:string, userid:string) {
let clomun = ["theme", "dataMonth", "fileName"];
let partyBuildingDynamicInfo:any = {};
if (pbType == PBTYPE.党建资讯) partyBuildingDynamicInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.专题活动表, {taId: pbId}, clomun);
if (pbType == PBTYPE.党建动态) partyBuildingDynamicInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.党建动态表, {pbId}, clomun);
partyBuildingDynamicInfo.dataMonth = moment(partyBuildingDynamicInfo.dataMonth).format("YYYY-MM-DD");
let fileNameList = getFileUrl(partyBuildingDynamicInfo.fileName, token, UPTYPE.党建动态, userid);
partyBuildingDynamicInfo.fileName = fileNameList;
return partyBuildingDynamicInfo;
export async function partyBuildingDynamicDetsils(taId:number) {
let files = ["taId", "activitiesType", "theme", "content", "activitesTime"];
let partyInformation = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.专题活动表, {taId}, files);
let activitiesTypeList = [];
JSON.parse(partyInformation.activitiesType).forEach(itemKey => {
activitiesTypeList.push({
title:changeEnumValue(ACTIVITIESTYPE, itemKey),
color:"red"
});
})
let dataInfo:any = {};
dataInfo.taId = partyInformation.taId;
dataInfo.theme = partyInformation.theme;
dataInfo.content = partyInformation.content;
dataInfo.activitesTime = moment(partyInformation.activitesTime).format("YYYY-MM-DD");
dataInfo.source = "牙防所党建";
dataInfo.activitiesType = activitiesTypeList;
return {dataInfo};
}
......
......@@ -3,7 +3,7 @@
*/
import * as configEnum from "../config/enum";
import { selectData } from "../middleware/databaseSuccess";
import { selectData, selectManyTableData } from "../middleware/databaseSuccess";
import { OPERATIONALDATATYPE, TABLENAME } from "../config/dbEnum";
import moment = require("moment");
import { changeEnumValue } from "../util/verificationEnum";
......@@ -19,81 +19,50 @@ import { changeEnumValue } from "../util/verificationEnum";
* @returns 基础数据:"baseData": {"partyCount":党员总数, "paid":已缴纳人数, "unpaid":未缴纳人数}
* @returns 党费列表:"partyExpensesList": [{"name":"党员名称","payType":"缴纳状态","pmId":"党员id","payTime":"缴纳时间","partyPositionsName":"党内职务","departmentName":"所属科室","partyJoiningTime":"党龄"}, ......]
*/
export async function partyExpensesData(bId, name, payType, payableYear, payableMonth) {
let timeStr = new Date(`${payableYear}-${payableMonth}`).valueOf();
let stTime = moment(timeStr).startOf("month").format("YYYY-MM-DD HH:mm:ss");
let etTime = moment(timeStr).endOf('month').format("YYYY-MM-DD HH:mm:ss");
let param = {
bId,
payableMonth: {"%between%": [stTime, etTime]}
}
if(payType) param["payType"] = payType;
let clomun = ["pmId", "payType", "payTime"];
let partyExpensesDataList = await selectData(OPERATIONALDATATYPE.查询多个 , TABLENAME.党费管理表, param, clomun);
let expMap = {};//党费缴纳记录
partyExpensesDataList.forEach(info => {
let {pmId, payType, payTime} = info;
expMap[pmId] = {payType, payTime};
});
export async function partyExpensesData(bId, payType, payableYear, payableMonth) {
let param:any = { bId, payableYear, payableMonth };
// if (payType) param.payType = payType;
let partyExpensesList = [];
let manyTableConfig = {};
manyTableConfig[TABLENAME.党员基础信息表] = {column:["name", "etId", "partyPositionsName", "partyJoiningTime", "departmentName"], where:{etId:1} };
let partyExpensesList = await selectManyTableData(OPERATIONALDATATYPE.多表联查, TABLENAME.党费管理表, param, ["peId", "payType", "payAmount"], manyTableConfig);
let memberParam = { etId: 1, bId: {"%like%": bId} };
if(name) memberParam["name"] = {"%like%": name};
let memberClomun = ["pmId", "etId", "name", "partyPositionsName", "departmentName", "partyJoiningTime"];
let partyMenberDataList = await selectData(OPERATIONALDATATYPE.查询多个 , TABLENAME.党员基础信息表, memberParam, memberClomun);
partyMenberDataList.forEach(info => {
let {name, etId, pmId, partyPositionsName, departmentName, partyJoiningTime} = info;
let expInfo = expMap[pmId];
if (expInfo) {
let payTime = "";
if(expInfo.payTime) payTime = moment(expInfo.payTime).format("YYYY-MM-DD");
let partyPositions = "";
switch(etId) {
case configEnum.ENTRYTYPE.正式党员:
partyPositions = changeEnumValue(configEnum.PARTYPOSITIONS, JSON.parse(partyPositionsName));
if (!partyPositions || partyPositions=='undefined') partyPositions = "党员";
break;
default: partyPositions = changeEnumValue(configEnum.ENTRYTYPE, etId);
}
partyExpensesList.push({
name,
payType:changeEnumValue(configEnum.PAYTYPE, expInfo.payType),
pmId,
payTime,
partyPositionsName: partyPositions, //党内职务
departmentName: changeEnumValue(configEnum.DEDPARTMENT, JSON.parse(departmentName)), //所属科室
partyJoiningTime: `${new Date().getFullYear() - parseInt(partyJoiningTime)}年` //党龄
});
let dataList = [];
let allAmount = 0;
let completed = 0;
let incomplete = 0;
partyExpensesList.forEach(info => {
let {partyMember, payAmount} = info;
let item = {
name:partyMember.name,
partyPositionsName:"党员",//党员类型
payType:changeEnumValue(configEnum.PAYTYPE, info.payType),//状态
partyJoiningTime:moment(partyMember.partyJoiningTime).format("YYYY-MM-DD"),
departmentName:changeEnumValue(configEnum.DEDPARTMENT , partyMember.departmentName),
payAmount:payAmount
};
if (payType && info.payType == payType) {
dataList.push(item);
} else {
dataList.push(item);
}
if (info.payType == configEnum.PAYTYPE.已缴纳) {
allAmount += payAmount;
completed += 1;
} else {
allAmount += payAmount;
incomplete += 1;
}
});
let baseExpenses = await selectData(OPERATIONALDATATYPE.查询多个 , TABLENAME.党费管理表, {bId, payableMonth: {"%between%": [stTime, etTime]}}, clomun);
let baseExpMap = {};//党费缴纳记录
baseExpenses.forEach(info => {
let {pmId, payType, payTime} = info;
baseExpMap[pmId] = {payType, payTime};
});
let baseMember = await selectData(OPERATIONALDATATYPE.查询多个 , TABLENAME.党员基础信息表, {etId: 1, bId: {"%like%": bId}}, memberClomun);
let baseData = { //基础数据
partyCount:baseMember.length,//党员总数,
paid:0, // 已缴纳
unpaid:0 // 未缴纳
};
baseMember.forEach(info => {
let expInfo = baseExpMap[info.pmId];
if (!expInfo) expInfo = {payType:configEnum.PAYTYPE.未缴纳, payTime:timeStr}; //对应党员没有缴纳信息,返回一条该月未缴纳数据
if (expInfo.payType == configEnum.PAYTYPE.未缴纳) baseData.unpaid += 1;
if (expInfo.payType == configEnum.PAYTYPE.已缴纳) baseData.paid += 1;
});
let rate = 0;
if ( (completed + incomplete) ) {
rate = Math.round(completed/(completed + incomplete)*100)
}
return {baseData, partyExpensesList};
return {statisInfo:{rate, allAmount, completed, incomplete }, dataList};
}
......
......@@ -16,8 +16,9 @@ import moment = require("moment");
*/
export async function partyQualityList(bId:number) {
let dataYear = moment(new Date().valueOf()).format("YYYY");
let selectParam = {bId:{"%like%": bId}};
let clomun = ["tlId", "primaryIndicators", "secondaryIndicators", "thirdLevelContent", "thirdLevelScore", "currentScore", "completionProgress"];
let partyQualityData = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.党建质量三级指标, {bId:{"%like%": bId}, dataYear}, clomun);
let partyQualityData = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.党建质量三级指标, selectParam, clomun);
let partyQualityList = [];
for (let key in configEnum.PRIMARYINDICATORS) {
......@@ -25,7 +26,7 @@ export async function partyQualityList(bId:number) {
let anyKey:any = key;
if (isNaN(anyKey)) {
const EnumValue = parseInt(configEnum.PRIMARYINDICATORS[key])
primaryIndicatorsData["dataList"] = {key: anyKey, list: []};
primaryIndicatorsData["dataList"] = {key: anyKey, value:EnumValue, list: []};
primaryIndicatorsData["detail"] = {};
partyQualityData.forEach( info => {
......@@ -57,11 +58,11 @@ export async function partyQualityList(bId:number) {
let partyQuality = [];
partyQualityList.forEach( item => {
let {dataList, detail} = item;
let {key, list} = dataList;
let {dataList} = item;
let {key, value, list} = dataList;
let count = list.length;
let changeDataList = {};
let changeDataInfo:any = {};
let changeData:any = {totalScore:0, completionProgress:0, currentScore:0};
list.forEach( info => {
let {thirdLevelScore, currentScore, completionProgress, schedule} = info;
......@@ -73,21 +74,54 @@ export async function partyQualityList(bId:number) {
let completion = changeData.completionProgress/count;
if (completion == 100) changeData.schedule = "已完成";
changeData.completionProgress = Math.round(completion)+ "%"
changeData.completionProgress = Math.round(completion);
changeDataList["key"] = key;
changeDataList["list"] = changeData;
changeDataInfo.key = key;
changeDataInfo.value = value;
changeDataInfo.dataInfo = changeData;
partyQuality.push({dataList:changeDataList, detail});
partyQuality.push(changeDataInfo);
})
return partyQuality;
return {dataList:partyQuality};
}
export async function partyQualityInfo(bId:number, qualityId:number) {
verificationEnumTools.eccEnumValue("获取详情", "qualityId", configEnum.PRIMARYINDICATORS, qualityId);
let dataYear = moment(new Date().valueOf()).format("YYYY");
let selectParam = {bId:{"%like%": bId}, primaryIndicators:qualityId};
let clomun = ["tlId", "primaryIndicators", "secondaryIndicators", "thirdLevelContent", "thirdLevelScore", "currentScore", "completionProgress"];
let partyQualityData = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.党建质量三级指标, selectParam, clomun);
let dataMap = {};
partyQualityData.forEach(info => {
if (!dataMap[info.secondaryIndicators]) dataMap[info.secondaryIndicators] = {state:1, content:info.thirdLevelContent};
else {
dataMap[info.secondaryIndicators].content += "<br>";
dataMap[info.secondaryIndicators].content += info.thirdLevelContent;
}
if (info.completionProgress < 100) dataMap[info.secondaryIndicators].state = 0;
});
let dataList = [];
for (let key in dataMap) {
let title = configEnum.SECONDARYINDICATORS[parseInt(key)];
dataList.push({
title,
content:dataMap[key].content,
schedule:dataMap[key].state == 1 ? "已完成" : "进行中"
});
}
return {dataList};
}
......
......@@ -3,12 +3,16 @@
*/
import { OPERATIONALDATATYPE, TABLENAME } from "../config/dbEnum";
import { selectData } from "../middleware/databaseSuccess";
import { operationalData, selectData } from "../middleware/databaseSuccess";
import { extractData } from "../util/piecemeal";
import * as splitResultConfig from "../config/splitResultConfig";
import * as configEnum from "../config/enum";
import * as verificationEnumTools from "../util/verificationEnum";
import moment = require("moment");
import { eccFormParam } from "../util/verificationParam";
import { CreateDJXFConfig } from "../config/eccFormParamConfig";
import { BizError } from "../util/bizError";
import { ERRORENUM } from "../config/errorEnum";
/**
* 获取党建先锋列表
......@@ -17,25 +21,33 @@ import moment = require("moment");
* @returns
*/
export async function partyVanguardList(bId:number, honorName:string) {
let param = {
isUse: 1,
};
if(honorName) param["honorName"] = {"%like%":honorName};
let clomun = ["pvId", "honorName", "honorType", "grantingRange", "grantingUnit", "grantTime"];
let param:any = {};
if (honorName) param.honorName = honorName;
let clomun = ["pvId", "honorName", "honorType", "grantingRange", "grantingUnit", "grantTime", "img", "content" ];
let partyVanguardData = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.党建先锋表, param, clomun);
let partyVanguardList = [];
partyVanguardData.forEach( async info => {
let dataList = [];
partyVanguardData.forEach( info => {
let changeData:any = extractData(splitResultConfig.partyVanguardConfig, info);
changeData.honorType = verificationEnumTools.changeEnumValue(configEnum.HONORTYPE, info.honorType);
changeData.grantingRange = verificationEnumTools.changeEnumValue(configEnum.GRANTINGRANGE, info.grantingRange);
changeData.grantTime = moment(info.grantTime).format("YYYY-MM-DD");
changeData.content = info.content;
changeData.img = info.img;
let grantingUnitStr = "";
JSON.parse(info.grantingUnit).forEach(str => {
grantingUnitStr += `,${str}`;
});
changeData.grantingUnit = grantingUnitStr.replace(",", "");
partyVanguardList.push(changeData);
dataList.push(changeData);
});
return partyVanguardList;
return {dataList};
}
......@@ -46,14 +58,46 @@ export async function partyVanguardList(bId:number, honorName:string) {
*/
export async function partyVanguardDetsils(pvId:number) {
let param = {pvId};
let clomun = ["honorName", "honorType", "grantingRange", "grantingUnit", "grantTime"];
let clomun = ["pvId", "honorName", "honorType", "grantingRange", "grantingUnit", "grantTime", "img", "content" ];
let partyVanguardData = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.党建先锋表, param, clomun);
if (!partyVanguardData || !partyVanguardData.pvId) throw new BizError(ERRORENUM.目标数据不存在);
let dataInfo:any = extractData(splitResultConfig.partyVanguardConfig, partyVanguardData);
dataInfo.honorType = verificationEnumTools.changeEnumValue(configEnum.HONORTYPE, partyVanguardData.honorType);
dataInfo.grantingRange = verificationEnumTools.changeEnumValue(configEnum.GRANTINGRANGE, partyVanguardData.grantingRange);
dataInfo.grantTime = moment(partyVanguardData.grantTime).format("YYYY-MM-DD");
dataInfo.content = partyVanguardData.content;
dataInfo.img = partyVanguardData.img;
let grantingUnitStr = "";
partyVanguardData.grantingUnit.forEach(str => {
grantingUnitStr += `,${str}`;
});
partyVanguardData.honorType = verificationEnumTools.changeEnumValue(configEnum.HONORTYPE, partyVanguardData.honorType);
partyVanguardData.grantingRange = verificationEnumTools.changeEnumValue(configEnum.GRANTINGRANGE, partyVanguardData.grantingRange);
partyVanguardData.grantTime = moment(partyVanguardData.grantTime).format("YYYY-MM-DD");
dataInfo.grantingUnit = grantingUnitStr.replace(",", "");
return partyVanguardData;
return { dataInfo }
}
export async function addPartyVanguard(bId, param) {
const FuncName = "添加先锋";
eccFormParam(FuncName, CreateDJXFConfig, param);
verificationEnumTools.eccEnumValue(FuncName, "honorType", configEnum.HONORTYPE, param.honorType);
verificationEnumTools.eccEnumValue(FuncName, "grantingRange", configEnum.GRANTINGRANGE, param.grantingRange);
let addInfo = {
honorName:param.honorName,// "荣誉名称1",
honorType:param.honorType,// "区级",
grantingRange:param.grantingRange,// "团体",
grantingUnit:JSON.stringify(param.grantingUnit),// "上海市*****单位",
grantTime:new Date(param.grantTime),// "2023-08-30"
content:param.content,// "内容"
img:param.img,// "图片
bId
};
await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.党建先锋表, addInfo, {});
return {isSuccess:true}
}
......@@ -7,10 +7,19 @@ import { BizError } from '../util/bizError';
import * as sysTools from "../tools/system";
import { operationalData, selectData } from '../middleware/databaseSuccess';
import { OPERATIONALDATATYPE, TABLENAME } from '../config/dbEnum';
import { PARTYPOSITIONS } from '../config/enum';
const moment = require("moment");
function checkLeader(partyPositionsNames) {
for (let i = 0; i < partyPositionsNames.length; i++) {
if (partyPositionsNames[i] >= PARTYPOSITIONS.党总支书记) return true;
}
return false
}
export async function login(loginId:string, pwd:string) {
let clomun = ["pmId", "loginId", "pwd", "token", "bId"];
let clomun = ["pmId", "loginId", "pwd", "token", "bId", "administrativePositionName", "partyPositionsName"];
let loginInfo:any = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.党员基础信息表, {loginId}, clomun);
if (!loginInfo) throw new BizError(ERRORENUM.账号不存在, `${loginId}账号非党员账号`);
......@@ -25,10 +34,13 @@ export async function login(loginId:string, pwd:string) {
await operationalData(OPERATIONALDATATYPE.修改, TABLENAME.党员基础信息表, updateLogin, {loginId});
let userType = checkLeader(JSON.parse(loginInfo.partyPositionsName) ) ? 2 : 1;
return {
userid: loginInfo.pmId,
token: Token,
name:loginInfo.name,
bId: loginInfo.bId,
userType,
};
}
......@@ -42,7 +54,7 @@ export async function login(loginId:string, pwd:string) {
* @param confirmPwd 确认新密码 未md5
* @returns {isSuccess:true}
*/
export async function changePassword(loginId:string, pwd:string, newPwd:string, confirmPwd:string ) {
export async function changePassword(loginId:string, pwd:string, newPwd:string, confirmPwd:string ) {
if (newPwd != confirmPwd) throw new BizError(ERRORENUM.密码不一致);
if (newPwd.search(/^[A-Za-z0-9]{6,18}$/) < 0) throw new BizError(ERRORENUM.密码只能由618位字符和数字组成);
......@@ -68,3 +80,4 @@ export async function login(loginId:string, pwd:string) {
......@@ -36,9 +36,11 @@ export enum PARTYPOSITIONSICON {
* 名册录入类型
*/
export enum ENTRYTYPE {
正式党员录入 = 1,
入党积极分子录入,
入党申请录入
正式党员 = 1,
预备党员,
发展对象,
入党积极分子,
入党申请
}
......@@ -53,4 +55,10 @@ export enum PARTYPOSITIONSICON {
统战委员,
组织委员,
宣传委员,
}
export enum PAYSTATE {
全部 =0,
已支付 = 1,
未支付 =2
}
\ No newline at end of file
......@@ -34,4 +34,6 @@ export enum TABLENAME {
课程类型='courseType',
学习强国='learningPower',
党建质量三级指标='thirdLevel',
党建通知='partyNotice'
}
\ No newline at end of file
......@@ -13,14 +13,141 @@
* 备注: 1.0
*/
export const CreateActivityConfig = {
partyActivityType:{type:"Number", notMustHave:true},//党建活动类型
activityStartTime:{type:"Number", notMustHave:true},//活动开始时间
activityEndTime:{type:"Number", notMustHave:true},//活动结束时间
partyActivityType:{type:"Number"},//党建活动类型
activityStartTime:{type:"Number"},//活动开始时间
activityEndTime:{type:"Number"},//活动结束时间
activityAdd:{type:"String", notMustHave:true},//活动地点
activityHost:{type:"[String]", notMustHave:true},//活动主持人
activityNoteTaker:{type:"[String]", notMustHave:true},//活动记录人
activityHost:{type:"String", notMustHave:true},//活动主持人
activityNoteTaker:{type:"String", notMustHave:true},//活动记录人
// leavePartyMember:{type:"[String]", notMustHave:true},//请假党员
participatingPartyMember:{type:"[String]", notMustHave:true},//参与党员
// participationRecord:{type:"String", notMustHave:true},//活动记录
};
export const UpdateActivityConfig = {
partyActivityType:{type:"Number"},//党建活动类型
activityStartTime:{type:"Number"},//活动开始时间
activityEndTime:{type:"Number"},//活动结束时间
activityAdd:{type:"String", notMustHave:true},//活动地点
activityHost:{type:"String", notMustHave:true},//活动主持人
activityNoteTaker:{type:"String", notMustHave:true},//活动记录人
leavePartyMember:{type:"[String]", notMustHave:true},//请假党员
signedInMember:{type:"[String]", notMustHave:true},//签到人员
log:{type:"String", notMustHave:true},//活动记录
participatingPartyMember:{type:"[String]", notMustHave:true},//参与党员
participationRecord:{type:"String", notMustHave:true},//活动记录
branchName:{type:"[Number]", notMustHave:true}, //支部名称
// participationRecord:{type:"String", notMustHave:true},//活动记录
};
/**
* 正式党员
*/
export const CreateZSDYConfig = {
name:{type:"String", notMustHave:true},//姓名
sex:{type:"Number", notMustHave:true},//性别 1男2女
birthDate:{type:"Number", notMustHave:true},//性别 1男2女
phone:{type:"String", notMustHave:true},//手机号码
levelOfEducation:{type:"Number", notMustHave:true},//文化程度
partyJoiningTime:{type:"Number", notMustHave:true},//入党时间
administrativePositionName:{type:"Number", notMustHave:true},//行政职务id
partyPositionsName:{type:"[Number]", notMustHave:true},//党内职务id
desc:{type:"String", notMustHave:true},//备注
}
/**
* 预备党员
*/
export const CreateYBDYConfig = {
name:{type:"String", notMustHave:true},//姓名
sex:{type:"Number", notMustHave:true},//性别 1男2女
birthDate:{type:"Number", notMustHave:true},//性别 1男2女
phone:{type:"String", notMustHave:true},//手机号码
levelOfEducation:{type:"Number", notMustHave:true},//文化程度
askForTime:{type:"Number", notMustHave:true},//申请入党时间
yubeiTime:{type:"Number", notMustHave:true},//预备党员时间
administrativePositionName:{type:"Number", notMustHave:true},//行政职务id
desc:{type:"String", notMustHave:true},//备注
}
/**
* 发展对象
*/
export const CreateFZDXConfig = {
name:{type:"String", notMustHave:true},//姓名
sex:{type:"Number", notMustHave:true},//性别 1男2女
birthDate:{type:"Number", notMustHave:true},//性别 1男2女
phone:{type:"String", notMustHave:true},//手机号码
levelOfEducation:{type:"Number", notMustHave:true},//文化程度
askForTime:{type:"Number", notMustHave:true},//申请入党时间
fzdxTime:{type:"Number", notMustHave:true},//发展对象时间
administrativePositionName:{type:"Number", notMustHave:true},//行政职务id
desc:{type:"String", notMustHave:true},//备注
}
/**
* 入党积极分子
*/
export const CreateRDJJFZConfig = {
name:{type:"String", notMustHave:true},//姓名
sex:{type:"Number", notMustHave:true},//性别 1男2女
birthDate:{type:"Number", notMustHave:true},//性别 1男2女
phone:{type:"String", notMustHave:true},//手机号码
levelOfEducation:{type:"Number", notMustHave:true},//文化程度
askForTime:{type:"Number", notMustHave:true},//申请入党时间
listedAsActivistsTime:{type:"Number", notMustHave:true},//列为积极分子时间
administrativePositionName:{type:"Number", notMustHave:true},//行政职务id
desc:{type:"String", notMustHave:true},//备注
}
/**
* 入党申请
*/
export const CreateRDSQConfig = {
name:{type:"String", notMustHave:true},//姓名
sex:{type:"Number", notMustHave:true},//性别 1男2女
birthDate:{type:"Number", notMustHave:true},//性别 1男2女
phone:{type:"String", notMustHave:true},//手机号码
levelOfEducation:{type:"Number", notMustHave:true},//文化程度
askForTime:{type:"Number", notMustHave:true},//申请入党时间
talkTime:{type:"Number", notMustHave:true},//谈话时间
administrativePositionName:{type:"Number", notMustHave:true},//行政职务id
desc:{type:"String", notMustHave:true},//备注
}
/**
* 支部制度
*/
export const CreateZBZDConfig = {
title:{type:"String", notMustHave:true},//制度标题
releaseTime:{type:"Number", notMustHave:true},//发布时间
periodTime:{type:"Number", notMustHave:true},//有效期
content:{type:"String", notMustHave:true},//内容
}
export const CreateDJXFConfig = {
honorName:{type:"String"},// "荣誉名称1",
honorType:{type:"Number"},// "区级",
grantingRange:{type:"Number", },// "团体",
grantingUnit:{type:"[String]"},// "上海市*****单位",
grantTime:{type:"Number"},// "2023-08-30"
content:{type:"String"},// "内容"
img:{type:"String"},// "图片
}
......@@ -20,8 +20,10 @@ export enum FILETYPE {
/**名册录入类型 */
export enum ENTRYTYPE {
正式党员 = 1,
预备党员,
发展对象,
入党积极分子,
预备党员
入党申请
}
......@@ -51,6 +53,14 @@ export enum BRANCHNAME {
牙防所第四支部
}
/**所属支部 */
export enum BRANCHNAMESTR {
第一支部 = 1,
第二支部,
第三支部,
第四支部
}
/**行政职务 */
export enum ADMINISTRATIVEPOSITION {
......@@ -91,7 +101,7 @@ export enum ADMINISTRATIVEPOSITION {
/**党内职务 */
export enum PARTYPOSITIONS {
党总支书记 = 4,
党总支书记 = 10,
党总支副书记,
党总支宣传委员,
党总支统战委员,
......@@ -154,8 +164,15 @@ export enum PARTYSTATE {
/**主题类型 */
export enum THEMETYPE {
理论学习 = 1,
实践学习
// 理论学习 = 1,
// 实践学习,
日常教育培训 =1,
主题党课活动,
骨干队伍培训,
支部工作会,
二十大精神,
三会一课
}
......@@ -225,6 +242,11 @@ export enum GRANTINGRANGE {
单位,
}
export enum PERSONHONORTYPE {
模范类型1 = 1,
模范类型2 = 2
}
/**
* 党员学习---------------------------
......@@ -255,4 +277,11 @@ export enum UPTYPE {
学习强国 = 6
}
export enum ACTIVITIESTYPE {
党建动态 = 1,
专题活动,
精神文明,
先进典型,
}
......@@ -14,7 +14,7 @@ export const partyInformationConfig = {
theme:{key:"资讯标题"},
branchName:{key:"支部名称"},
dataMonth:{key:"资讯时间"},
pbType:{key:"资讯类型"},
// pbType:{key:"资讯类型"},
};
......@@ -27,7 +27,7 @@ export const buildingDynamiconfig = {
theme:{key:"资讯标题"},
branchName:{key:"支部名称"},
dataMonth:{key:"资讯时间"},
pbType:{key:"资讯类型"},
// pbType:{key:"资讯类型"},
};
......@@ -150,7 +150,9 @@ export const partyVanguardConfig = {
honorType:{key:"荣誉类型"},
grantingRange:{key:"授予范围"},
grantingUnit:{key:"授予单位"},
grantTime:{key:"授予时间", changeDate:true}
grantTime:{key:"授予时间", changeDate:true},
img:{key:"图片地址"},
content:{key:"内容内容"},
}
......
import { partyQualityList } from "./biz/partyQuality";
import { initConfig, systemConfig} from "./config/systemConfig";
import { httpServer } from "./net/http_server";
import { initBasicData } from "./tools/dataInit";
......@@ -17,7 +18,9 @@ async function lanuch() {
lanuch();
function test() {
async function test() {
let pwd = md5PwdStr("admin");
console.log();
let data = await partyQualityList(1);
console.log()
}
\ No newline at end of file
import { OPERATIONALDATATYPE, TABLENAME } from "../config/dbEnum";
import { PARTYPOSITIONS } from "../config/enum";
import { ERRORCODEENUM, ERRORENUM } from "../config/errorEnum";
import { BizError } from "../util/bizError";
import { selectData } from "./databaseSuccess";
......@@ -11,6 +12,7 @@ import { selectData } from "./databaseSuccess";
* @returns
*/
export async function checkAppletToken(req, res, next) {
if (!req.headers) req.headers = {};
let ReqToken = req.headers.token;
let UserId = req.headers.userid;
......@@ -22,6 +24,35 @@ export async function checkAppletToken(req, res, next) {
if (!partyMemberInfo.token || partyMemberInfo.token != ReqToken) return next(new BizError(ERRORENUM.身份验证过期));
req.headers.userid = partyMemberInfo.pmId;
req.headers.bId = partyMemberInfo.bId;
next();
}
export async function checkAppletDWToken(req, res, next) {
if (!req.headers) req.headers = {};
let ReqToken = req.headers.token;
let UserId = req.headers.userid;
if(!UserId || !ReqToken) return next(new BizError(ERRORENUM.非法登录));
let partyMemberInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.党员基础信息表, {pmId: UserId}, ["pmId", "bId", "loginId", "token", "partyPositionsName"]);
if (!partyMemberInfo || !partyMemberInfo.pmId) return next(new BizError(ERRORENUM.身份验证失败));
if (!partyMemberInfo.token || partyMemberInfo.token != ReqToken) return next(new BizError(ERRORENUM.身份验证过期));
req.headers.userid = partyMemberInfo.pmId;
req.headers.bId = partyMemberInfo.bId;
//判断是否是领导
let isZZB = false;
JSON.parse(partyMemberInfo.partyPositionsName).forEach(itemId => {
if (itemId >= PARTYPOSITIONS.党总支书记 && itemId <= PARTYPOSITIONS.党总支纪检委员) {
isZZB = true;
}
});
if (!isZZB) {
throw new BizError(ERRORENUM.权限不足);
}
next();
}
\ No newline at end of file
/**
* 小程序端 党员入口 党建首页路由
* 小程序端
* 党建首页路由
*/
import * as baseBiz from '../../biz/base';
import * as asyncHandler from 'express-async-handler';
import { eccReqParamater } from '../../util/verificationParam';
import { checkAppletToken } from '../../middleware/user';
import { checkAppletToken, checkAppletDWToken } from '../../middleware/user';
export function setRouter(httpServer) {
httpServer.post('/yfs/applet/partymember/home', checkAppletToken, asyncHandler(homeBase));
httpServer.post('/yfs/applet/partymember/activities', checkAppletToken, asyncHandler(activitiesBase));
httpServer.post('/yfs/member/partymember/home', checkAppletToken, asyncHandler(member_home));
httpServer.post('/yfs/member/partymember/bottomhome', checkAppletToken, asyncHandler(member_home_bottom));
}
......@@ -19,10 +24,7 @@ export function setRouter(httpServer) {
* @param res
*/
async function homeBase(req, res) {
//优化点 bId可以根据中间件验证token时获取,无需前端传递bId参数 其他接口也一样
let reqConf = {bId:'Number'};
let {bId} = eccReqParamater(reqConf, req.body);
let bId = req.headers.bId;
let baseInfo = await baseBiz.homeData(bId);
res.success(baseInfo);
}
......@@ -34,10 +36,28 @@ async function homeBase(req, res) {
* @param res
*/
async function activitiesBase(req, res) {
let reqConf = {bId:'Number'};
let {bId} = eccReqParamater(reqConf, req.body);
let bId = req.headers.bId;
let activitiesInfo = await baseBiz.activitiesData(bId);
res.success(activitiesInfo);
}
async function member_home(req, res) {
let userid = req.headers.userid;
let bId = req.headers.bId;
let activitiesInfo = await baseBiz.memberHomeData(userid, bId);
res.success(activitiesInfo);
}
async function member_home_bottom(req, res) {
let reqConf = { activitiesType:'Number'};
let { activitiesType } = eccReqParamater(reqConf, req.body);
let bId = req.headers.bId;
let activitiesInfo = await baseBiz.memberHomeBottomData(bId, activitiesType);
res.success(activitiesInfo);
}
/**
* 小程序端 党员入口 支部制度
* 小程序端
* 支部制度
*/
import * as branchSystemBiz from '../../biz/branchSystem';
......@@ -7,10 +8,11 @@
import { eccReqParamater } from '../../util/verificationParam';
import { checkAppletToken } from '../../middleware/user';
export function setRouter(httpServer) {
export function setRouter(httpServer) {
httpServer.post('/yfs/applet/branchsystem/list', checkAppletToken, asyncHandler(getBranchSystem));
httpServer.post('/yfs/applet/branchsystem/detsils', checkAppletToken, asyncHandler(getBranchSystemDetsils));
}
httpServer.post('/yfs/applet/branchsystem/add', checkAppletToken, asyncHandler(addBranchSystemDetsils));
}
/**
......@@ -19,8 +21,9 @@ import { checkAppletToken } from '../../middleware/user';
* @param res
*/
async function getBranchSystem(req, res) {
let reqConf = {bId:'Number', systemTitle:'String'};
let {bId, systemTitle} = eccReqParamater(reqConf, req.body, ["systemTitle"]);
let reqConf = { systemTitle:'String'};
let { systemTitle} = eccReqParamater(reqConf, req.body, ["systemTitle"]);
let bId = req.headers.bId;
let result = await branchSystemBiz.branchSystemList(bId, systemTitle);
res.success(result);
......@@ -35,11 +38,21 @@ async function getBranchSystem(req, res) {
async function getBranchSystemDetsils(req, res) {
let reqConf = {bsId: 'Number'};
let {bsId} = eccReqParamater(reqConf, req.body);
let token = req.headers.token;
let userid = req.headers.userid;
let result = await branchSystemBiz.branchSystemDetsils(bsId);
res.success(result);
}
let result = await branchSystemBiz.branchSystemDetsils(bsId, token, userid);
/**
* 支部制度 制度细则
* @param req
* @param res
*/
async function addBranchSystemDetsils(req, res) {
let reqConf = {param: 'Object'};
let {param} = eccReqParamater(reqConf, req.body);
let bId = req.headers.bId;
let result = await branchSystemBiz.addOneBranchSystemDetsils(bId, param);
res.success(result);
}
/**
* 小程序端
* 党建首页路由
*/
import * as dwBiz from '../../biz/dw';
import * as asyncHandler from 'express-async-handler';
import { eccReqParamater } from '../../util/verificationParam';
import { checkAppletToken, checkAppletDWToken } from '../../middleware/user';
export function setRouter(httpServer) {
//总支部权限
//名册
httpServer.post('/yfs/dw/home', checkAppletDWToken, asyncHandler(homeBase));
httpServer.post('/yfs/dw/activities', checkAppletDWToken, asyncHandler(activitiesBase));
httpServer.post('/yfs/dw/member/partymember/list', checkAppletDWToken, asyncHandler(partymember_list));
httpServer.post('/yfs/dw/member/partymember/list/sublist', checkAppletDWToken, asyncHandler(partymember_sublist));
httpServer.post('/yfs/dw/member/partymember/typelist', checkAppletDWToken, asyncHandler(partymember_type_list));
httpServer.post('/yfs/dw/member/partymember/typelist/sublist', checkAppletDWToken, asyncHandler());
httpServer.post('/yfs/dw/applet/partyexpenses/list', checkAppletDWToken, asyncHandler());
httpServer.post('/yfs/dw/applet/partyexpenses/statis', checkAppletDWToken, asyncHandler());
httpServer.post('/yfs/dw/applet/partyexpenses/list', checkAppletDWToken, asyncHandler());
httpServer.post('/yfs/dw/applet/partyexpenses/list/sublist', checkAppletDWToken, asyncHandler());
httpServer.post('/yfs/dw/applet/partyexpenses/statis', checkAppletDWToken, asyncHandler());
httpServer.post('/yfs/applet/branchsystem/list', checkAppletToken, asyncHandler(getBranchSystem));
httpServer.post('/yfs/applet/branchsystem/detsils', checkAppletToken, asyncHandler(getBranchSystemDetsils));
httpServer.post('/yfs/applet/branchsystem/add', checkAppletToken, asyncHandler(addBranchSystemDetsils));
httpServer.post('/yfs/applet/organizationallife/list', checkAppletToken, asyncHandler(organizationalLifeList));
httpServer.post('/yfs/applet/organizationallife/add', checkAppletToken, asyncHandler(addDetails));
}
/**
*
* @param req
* @param res
*/
async function homeBase(req, res) {
let baseInfo = await dwBiz.homeData();
res.success(baseInfo);
}
/**
*
* @param req
* @param res
*/
async function activitiesBase(req, res) {
let activitiesInfo = await dwBiz.activitiesData();
res.success(activitiesInfo);
}
/**
*
* @param req
* @param res
*/
async function partymember_list(req, res) {
let activitiesInfo = await dwBiz.partymemberList();
res.success(activitiesInfo);
}
async function partymember_sublist(req, res) {
let reqConf = {bId:'Number', name:"String", partyPositionsName:"Number"};
let {bId, name, partyPositionsName} = eccReqParamater(reqConf, req.body, ["name", "partyPositionsName"]);
let activitiesInfo = await dwBiz.partymemberSublist(bId, name, partyPositionsName );
res.success(activitiesInfo);
}
/**
*
* @param req
* @param res
*/
async function partymember_type_list(req, res) {
let reqConf = {bId:'Number'};
let {bId} = eccReqParamater(reqConf, req.body);
let activitiesInfo = await dwBiz.partymemberTypeList(bId);
res.success(activitiesInfo);
}
/**
* 小程序端 党员入口 党员学习
* 小程序端
* 党员学习
*/
import * as memberLearningBiz from '../../biz/memberLearning';
......@@ -10,21 +11,21 @@ import { checkAppletToken } from '../../middleware/user';
export function setRouter(httpServer) {
httpServer.post('/yfs/applet/memberlearning/list', checkAppletToken, asyncHandler(getMemberLearning));
httpServer.post('/yfs/applet/memberlearning/branchranking', checkAppletToken, asyncHandler(getBranchRanking));
httpServer.post('/yfs/applet/memberlearning/monthranking', checkAppletToken, asyncHandler(getMonthRanking));
httpServer.post('/yfs/applet/memberlearning/ranking', checkAppletToken, asyncHandler(getRanking));
httpServer.post('/yfs/applet/memberlearning/updateschedule', checkAppletToken, asyncHandler(updateRateLearning));
httpServer.post('/yfs/applet/memberlearning/updatefileschedule', checkAppletToken, asyncHandler(updateFileRateLearning));
}
/**
* 党建先锋 视频课程与文字课程列表
* 本人 视频课程与文字课程列表
* @param req
* @param res
*/
async function getMemberLearning(req, res) {
let pmId = req.headers.userid;
let reqConf = {courseEntryType:'Number', courseTypeName:'Number', contentTitle:'String'};
let {courseEntryType, courseTypeName, contentTitle} = eccReqParamater(reqConf, req.body);
let {courseEntryType, courseTypeName, contentTitle} = eccReqParamater(reqConf, req.body, ["contentTitle"]);
let token = req.headers.token;
let userid = req.headers.userid;
......@@ -41,7 +42,7 @@ async function getMemberLearning(req, res) {
*/
async function getBranchRanking(req, res) {
let pmId = req.headers.userid;
let {bId} = eccReqParamater({bId:'Number'}, req.body);
let bId = req.headers.bId;
let result = await memberLearningBiz.branchRanking(pmId, bId);
res.success(result);
......@@ -53,7 +54,7 @@ async function getBranchRanking(req, res) {
* @param req
* @param res
*/
async function getMonthRanking(req, res) {
async function getRanking(req, res) {
let pmId = req.headers.userid;
let result = await memberLearningBiz.branchRanking(pmId);
res.success(result);
......
/**
* 小程序端 党员入口 组织生活路由
* 小程序端
* 组织生活路由
*/
import * as organizationalLifeBiz from '../../biz/organizationalLife';
......@@ -9,20 +10,26 @@ import { checkAppletToken } from '../../middleware/user';
export function setRouter(httpServer) {
httpServer.post('/yfs/applet/organizationallife/list', checkAppletToken, asyncHandler(organizationalLifeList));
httpServer.post('/yfs/applet/organizationallife/details', checkAppletToken, asyncHandler(detailsList));
httpServer.post('/yfs/applet/organizationallife/details', checkAppletToken, asyncHandler(details));
httpServer.post('/yfs/applet/organizationallife/add', checkAppletToken, asyncHandler(addDetails));
httpServer.post('/yfs/applet/organizationallife/update', checkAppletToken, asyncHandler(updateDetails));
httpServer.post('/yfs/applet/organizationallife/memberlist', checkAppletToken, asyncHandler(memberlist));
}
/**
* 组织生活列表
* @param req
* @param res
*/
async function organizationalLifeList(req, res) {
let reqConf = {bId:'Number', theme:'String', themeType:'Number', dataMonth:'String'};
let {bId, theme, themeType, dataMonth} = eccReqParamater(reqConf, req.body, ["theme","themeType","dataMonth"]);
let reqConf = {theme:'String', themeType:'Number'};
let {theme, themeType} = eccReqParamater(reqConf, req.body, ["theme","themeType"]);
let result = await organizationalLifeBiz.organizationalLifeList(bId, theme, themeType, dataMonth);
let bId = req.headers.bId;
let result = await organizationalLifeBiz.organizationalLifeList(bId, theme, themeType);
res.success(result);
}
......@@ -32,14 +39,49 @@ async function organizationalLifeList(req, res) {
* @param req
* @param res
*/
async function detailsList(req, res) {
async function details(req, res) {
let reqConf = {oId: 'Number' };
let {oId} = eccReqParamater(reqConf, req.body);
let token = req.headers.token;
let userid = req.headers.userid;
let bId = req.headers.bId;
let result = await organizationalLifeBiz.organlzationalLifeListDetsils(oId, token, userid, bId);
res.success(result);
}
/**
*
* @param req
* @param res
*/
async function addDetails(req, res) {
let reqConf = {param:"Object"};
let {param} = eccReqParamater(reqConf, req.body);
let bId = req.headers.bId;
let result = await organizationalLifeBiz.addOrg(bId, param);
res.success(result);
}
let result = await organizationalLifeBiz.organlzationalLifeListDetsils(oId, token, userid);
/**
*
* @param req
* @param res
*/
async function updateDetails(req, res) {
let reqConf = {oId:"Number", param:"Object"};
let {oId, param} = eccReqParamater(reqConf, req.body);
let bId = req.headers.bId;
let result = await organizationalLifeBiz.updateOrg(oId, param);
res.success(result);
}
async function memberlist(req, res) {
let bId = req.headers.bId;
let result = await organizationalLifeBiz.memberSelect(bId);
res.success(result);
}
\ No newline at end of file
/**
* 小程序端 党员入口 党建动态路由
* 小程序端
* 党建资讯 请求的是活动表
*/
import * as partyBuildingDynamicBiz from '../../biz/partyBuildingDynamic';
......@@ -14,15 +15,17 @@ export function setRouter(httpServer) {
/**
* 党建动态列表
* 党建资讯列表
* @param req
* @param res
*/
async function partyBuildingDynamicList(req, res) {
let reqConf = {bId:'Number', theme:'String', activityYear:'String', activityMonth:'String'};
let {bId, theme, activityYear, activityMonth} = eccReqParamater(reqConf, req.body, ["theme","activityYear","activityMonth"]);
let reqConf = {activitiesType:'Number'};
let {activitiesType} = eccReqParamater(reqConf, req.body);
let result = await partyBuildingDynamicBiz.partyBuildingDynamicList(bId, theme, activityYear, activityMonth);
let bId = req.headers.bId;
let result = await partyBuildingDynamicBiz.partyBuildingDynamicList(bId, activitiesType);
res.success(result);
}
......@@ -33,13 +36,10 @@ async function partyBuildingDynamicList(req, res) {
* @param res
*/
async function detailsList(req, res) {
let reqConf = {pbId: 'Number', pbType: 'Number'};
let {pbId, pbType} = eccReqParamater(reqConf, req.body);
let token = req.headers.token;
let userid = req.headers.userid;
let reqConf = {taId: 'Number'};
let {taId} = eccReqParamater(reqConf, req.body);
let result = await partyBuildingDynamicBiz.partyBuildingDynamicDetsils(pbId, pbType, token, userid);
let result = await partyBuildingDynamicBiz.partyBuildingDynamicDetsils(taId);
res.success(result);
}
......
/**
* 小程序端 党员入口 党费管理
* 小程序端
* 党费管理
*/
import * as partyExpensesBiz from '../../biz/partyExpenses';
import * as asyncHandler from 'express-async-handler';
import { eccReqParamater } from '../../util/verificationParam';
import { checkAppletToken } from '../../middleware/user';
export function setRouter(httpServer) {
httpServer.post('/yfs/applet/partyexpenses/list', checkAppletToken, asyncHandler(getPartyExpenses));
}
/**
* 党费列表
* @param req
* @param res
*/
* 党费列表
* @param req
* @param res
*/
async function getPartyExpenses(req, res) {
let reqConf = {bId:'Number', name:'String', payType:'Number', payableYear:'String', payableMonth:'String'};
let {bId, name, payType, payableYear, payableMonth} = eccReqParamater(reqConf, req.body, ["name", "payType", "payableYear", "payableMonth"]);
let result = await partyExpensesBiz.partyExpensesData(bId, name, payType, payableYear, payableMonth);
let reqConf = {payableYear:'Number', payType:"Number", payableMonth:'Number'};
let {payableYear, payableMonth, payType} = eccReqParamater(reqConf, req.body, ["payType"]);
let bId = req.headers.bId;
let result = await partyExpensesBiz.partyExpensesData(bId, payType, payableYear, payableMonth);
res.success(result);
}
\ No newline at end of file
/**
* 小程序端 党员入口 党员基础信息
* 小程序端
* 党员基础信息
*/
import * as partyMemberBiz from '../../biz/partyMember';
......@@ -8,8 +9,9 @@ import { eccReqParamater } from '../../util/verificationParam';
import { checkAppletToken } from '../../middleware/user';
export function setRouter(httpServer) {
httpServer.post('/yfs/applet/partymember/partymembername', checkAppletToken, asyncHandler(getPartyMemberName));
httpServer.post('/yfs/applet/partymember/detsils', checkAppletToken, asyncHandler(partyDetsils));
httpServer.post('/yfs/applet/partymember/partymembername', checkAppletToken, asyncHandler(get_party_member_name));
httpServer.post('/yfs/applet/partymember/detsils', checkAppletToken, asyncHandler(party_detsils));
httpServer.post('/yfs/applet/partymember/add', checkAppletToken, asyncHandler(add_member));
}
......@@ -18,7 +20,7 @@ export function setRouter(httpServer) {
* @param req
* @param res
*/
async function getPartyMemberName(req, res) {
async function get_party_member_name(req, res) {
let reqConf = {bId:'Number', name:'String'};
let {bId, name} = eccReqParamater(reqConf, req.body, ["name"]);
......@@ -32,7 +34,7 @@ async function getPartyMemberName(req, res) {
* @param req
* @param res
*/
async function partyDetsils(req, res) {
async function party_detsils(req, res) {
let reqConf = {bId: 'Number', pmId: 'String'};
let {bId, pmId} = eccReqParamater(reqConf, req.body);
......@@ -41,6 +43,21 @@ async function partyDetsils(req, res) {
}
/**
* 添加
* @param req
* @param res
*/
async function add_member(req, res) {
let reqConf = {memberType: 'Number', param: 'Object'};
let {memberType, param} = eccReqParamater(reqConf, req.body);
let bId = req.headers.bId;
let result = await partyMemberBiz.addMember(bId, memberType, param);
res.success(result);
}
/**
* 小程序端 党员入口 党建质量指数 三级指标
* 小程序端
* 党建质量指数 三级指标
*/
import * as partyQualityBiz from '../../biz/partyQuality';
......@@ -9,7 +10,7 @@ import { checkAppletToken } from '../../middleware/user';
export function setRouter(httpServer) {
httpServer.post('/yfs/applet/partyquality/list', checkAppletToken, asyncHandler(getPartyQuality));
// httpServer.post('/yfs/applet/partyquality/detsils', asyncHandler(getPartyVanguardDetsils));
httpServer.post('/yfs/applet/partyquality/detsils', asyncHandler(getPartyVanguardDetsils));
}
......@@ -19,9 +20,7 @@ export function setRouter(httpServer) {
* @param res
*/
async function getPartyQuality(req, res) {
let reqConf = {bId:'Number'};
let {bId} = eccReqParamater(reqConf, req.body);
let bId = req.headers.bId;
let result = await partyQualityBiz.partyQualityList(bId);
res.success(result);
}
......@@ -32,13 +31,13 @@ async function getPartyQuality(req, res) {
* @param req
* @param res
*/
// async function getPartyVanguardDetsils(req, res) {
// let reqConf = {pvId:'Number'};
// let {pvId} = eccReqParamater(reqConf, req.body);
// let result = await partyQualityBiz.partyVanguardDetsils(pvId);
// res.success(result);
// }
async function getPartyVanguardDetsils(req, res) {
let reqConf = {qualityId:'Number'};
let {qualityId} = eccReqParamater(reqConf, req.body);
let bId = req.headers.bId;
let result = await partyQualityBiz.partyQualityInfo(bId, qualityId);
res.success(result);
}
......
/**
* 小程序端 党员入口 党建先锋
* 小程序端
* 党建先锋
*/
import * as partyVanguardBiz from '../../biz/partyVanguard';
......@@ -10,6 +11,7 @@ import { checkAppletToken } from '../../middleware/user';
export function setRouter(httpServer) {
httpServer.post('/yfs/applet/partyvanguard/list', checkAppletToken, asyncHandler(getPartyVanguard));
httpServer.post('/yfs/applet/partyvanguard/detsils', checkAppletToken, asyncHandler(getPartyVanguardDetsils));
httpServer.post('/yfs/applet/partyvanguard/add', checkAppletToken, asyncHandler(addPartyVanguardDetsils));
}
......@@ -19,9 +21,10 @@ export function setRouter(httpServer) {
* @param res
*/
async function getPartyVanguard(req, res) {
let reqConf = {bId:'Number', honorName:'String'};
let {bId, honorName} = eccReqParamater(reqConf, req.body, ["honorName"]);
let reqConf = { honorName:'String'};
let {honorName} = eccReqParamater(reqConf, req.body, ["honorName"]);
let bId = req.headers.bId;
let result = await partyVanguardBiz.partyVanguardList(bId, honorName);
res.success(result);
}
......@@ -43,3 +46,21 @@ async function getPartyVanguardDetsils(req, res) {
/**
* 党建先锋 添加荣誉详情
* @param req
* @param res
*/
async function addPartyVanguardDetsils(req, res) {
let reqConf = {param:'Object'};
let {param} = eccReqParamater(reqConf, req.body);
let bId = req.headers.bId;
let result = await partyVanguardBiz.addPartyVanguard(bId, param);
res.success(result);
}
......@@ -15,15 +15,44 @@ export function setRouter(httpServer) {
httpServer.post('/yfs/applet/public/degree', asyncHandler(degreeType));
httpServer.post('/yfs/applet/public/administrativeposition', asyncHandler(administrativePosition));
httpServer.post('/yfs/applet/public/department', asyncHandler(department));
httpServer.post('/yfs/applet/public/degreetype', asyncHandler(degreeType));
httpServer.post('/yfs/applet/public/honortype', asyncHandler(honorType));
httpServer.post('/yfs/applet/public/themetype', asyncHandler(themeType));
httpServer.post('/yfs/applet/public/paytype', asyncHandler(payType));
httpServer.post('/yfs/applet/public/paytime', asyncHandler(getPayTime));
httpServer.post('/yfs/applet/public/coursetype', asyncHandler(courseType));
httpServer.post('/yfs/applet/public/activitytype', asyncHandler(activityType));
httpServer.post('/yfs/applet/public/grantingrange', asyncHandler(grantingRange));
httpServer.post('/yfs/applet/public/personhonortype', asyncHandler(personhonortype));
}
function personhonortype(req, res) {
let dataList = getEnumList(configEnum.PERSONHONORTYPE);
res.success(dataList);
}
function grantingRange(req, res) {
let dataList = getEnumList(configEnum.GRANTINGRANGE);
res.success(dataList);
}
/**
*
* @param req
* @param res
*/
function activityType(req, res) {
let dataList = getEnumList(configEnum.ACTIVITIESTYPE);
res.success(dataList);
}
/**
* 党内职务
......@@ -195,7 +224,7 @@ export function payTime() {
for(let i = nowYear; i >= smallYear; i--) {
yearList.push(i);
let yearmonth = [];
for(let m = 1; m <= 12; m++){
for(let m = 12; m >= 1; m--){
yearmonth.push(m);
}
monthList.push(yearmonth);
......
......@@ -145,7 +145,7 @@ async function initPartyMember() {
if (i == 2 && item) {
value = moment(item).format("YYYY-MM-DD");
}
if (i ==3) {
if (i ==3 ) {
let itemStr = `${item}`;
if(!addDataInfo.pmId) addDataInfo.pmId = md5PwdStr(itemStr.slice(itemStr.length-6));
if(!addDataInfo.pwd) addDataInfo.pwd = md5PwdStr(itemStr.slice(itemStr.length-6));
......
......@@ -166,4 +166,9 @@ export function getSMSCode() {
code += Math.floor(Math.random() * 10)
}
return code;
}
\ No newline at end of file
}
export function getRandomId(str) {
return md5(`${str}${new Date().valueOf()}${Math.ceil(Math.random()*1000000)}`);
}
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