Commit ad6dddee by chenjinjing

2.0 标签系统、黑名单、通知管理

parent 071c80e2
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<!-- 默认null mysql填入mysql mongodb填入mongo 都有填all 如果没有数据库填null --> <!-- 默认null mysql填入mysql mongodb填入mongo 都有填all 如果没有数据库填null -->
<specifyDB>all</specifyDB> <specifyDB>all</specifyDB>
<mongodb> <mongodb>
<path>127.0.0.1</path> <path>192.168.0.105</path>
<port>27017</port> <port>27017</port>
<w>1</w> <w>1</w>
<!-- <dataBase>baseDB</dataBase> --> <!-- <dataBase>baseDB</dataBase> -->
......
/**
* 黑名单
*/
import moment = require("moment");
import { MEMBERLEVEL, MEMBERSTATE, MEMBERTYPE, STATE } from "../../config/enum";
import { TABLEENUM } from "../../data/models/model";
import { findCount, findOnce, findToPage } from "../../data/select";
import { extractData } from "../../util/piecemeal";
import { changeEnumValue } from "../../util/verificationEnum";
import { getCityNameByCode } from "../../config/cityConfig";
import { BizError } from "../../util/bizError";
import { ERRORENUM } from "../../config/errorEnum";
import { updateOneData } from "../../data/update";
import { successResult } from "../../tools/system";
import { deleteOneData } from "../../data/delete";
/**
* 移入黑名单【操作在单位会员页、个人会员页】
* @param id 会员Id
* @returns
*/
export async function moveInBlackUser({id}) {
let userInfo = await findOnce(TABLEENUM.用户表, {userId:id}, ["userId"]);
if (!userInfo || !userInfo.userId) throw new BizError(ERRORENUM.目标数据不存在);
await updateOneData(TABLEENUM.用户表, {userId:id}, {isBlackUser:STATE.});
return successResult();
}
/**
* 黑名单列表
* @param param0
* @returns
*/
export async function blackList({name, joinStartTime, joinEndTime, memberType, memberLevel, session, sheng, shi, qu, pageNumber}) {
let selectParam:any = {
isAdmin: STATE.,
isBlackUser: STATE.
};
if (name) selectParam["$or"] = [{name:name}, {unitName:name}];
if (joinStartTime) {
selectParam["joinTime"] = {"$gt":joinStartTime};
};
if (joinEndTime) {
if (!selectParam["joinTime"]) selectParam["joinTime"] = {};
selectParam["joinTime"]["$lt"] = joinEndTime;
};
if (memberType && memberType.length) selectParam["$or"] = [ {unitMemberType:{"$in":memberType}}, {individualMemberType:{"$in":memberType}} ];
if (memberLevel && memberLevel.length) selectParam.memberLevel = {"$in":memberLevel};
if (session) selectParam.session = session;
if (sheng) selectParam.sheng = sheng;
if (shi) selectParam.shi = shi;
if (qu) selectParam.qu = qu;
const SelectFiles = ["userId", "memberState", "loginId", "phone", "joinTime", "memberLevel", "sheng", "shi", "qu", "unitName", "name", "memberType"];
let dbList = await findToPage(TABLEENUM.用户表, selectParam, SelectFiles, pageNumber);
let dataCount = await findCount(TABLEENUM.用户表, selectParam);
const DataFiles = ["userId", "memberState", "loginId", "phone", "joinTime", "memberLevel", "sheng", "shi", "qu", "name"];
let dataList = [];
dbList.forEach(info => {
let item:any = extractData(info, DataFiles);
if (info.memberType == MEMBERTYPE.单位会员) {
item.name = info.unitName;
}
item.memberState = changeEnumValue(MEMBERSTATE, item.memberState);
if (!item.memberLevel) item.memberLevel = "未选择";
else item.memberLevel = changeEnumValue(MEMBERLEVEL, item.memberLevel);
item.joinTime = moment(item.joinTime).format("YYYY-MM-DD");
item.sheng = getCityNameByCode(item.sheng);
item.shi = getCityNameByCode(item.shi);
item.qu = getCityNameByCode(item.qu);
dataList.push(item);
});
return {dataList, dataCount};
}
/**
* 移除黑名单
* @param id 会员Id
* @returns
*/
export async function shiftOutBlackUser({id}) {
let userInfo = await findOnce(TABLEENUM.用户表, {userId:id}, ["userId"]);
if (!userInfo || !userInfo.userId) throw new BizError(ERRORENUM.目标数据不存在);
await updateOneData(TABLEENUM.用户表, {userId:id}, {isBlackUser:STATE.});
return successResult();
}
/**
* 删除信息
* @param id 会员Id
* @returns
*/
export async function delBlackUser({id}) {
let userInfo = await findOnce(TABLEENUM.用户表, {userId:id, isBlackUser:STATE.}, ["userId"]);
if (!userInfo || !userInfo.userId) throw new BizError(ERRORENUM.目标数据不存在);
await deleteOneData(TABLEENUM.用户表, {userId:id});
return successResult();
}
/**
* 标签系统
*/
import moment = require("moment");
import { TABLEENUM } from "../../data/models/model";
import { find, findCount, findOnce, findToPage, findToSortToPage } from "../../data/select";
import { extractData } from "../../util/piecemeal";
import { BizError } from "../../util/bizError";
import { generateSystemId, successResult } from "../../tools/system";
import { addOneData } from "../../data/add";
import { ERRORENUM } from "../../config/errorEnum";
import { updateOneData } from "../../data/update";
import { deleteOneData } from "../../data/delete";
/**
* 标签系统列表
* @param lableName 标签名称
* @param createTime 创建时间
* @param pageNumber 当前页
*/
export async function lableList({lableName, startCreateTime, endCreateTime, pageNumber}) {
let selectParam:any = {};
if (lableName) selectParam.lableName = lableName;
if (startCreateTime) selectParam.createTime = {"$gt":startCreateTime};
if (endCreateTime) {
if (!selectParam["createTime"]) selectParam["createTime"] = {};
selectParam["createTime"]["$lt"] = endCreateTime;
}
const SelectFiles = ["lableId", "lableName", "createTime"];
let dbList = await findToSortToPage(TABLEENUM.标签表, selectParam, SelectFiles, {createTime:-1}, pageNumber);
let dataCount = await findCount(TABLEENUM.标签表, selectParam);
let dataList = [];
dbList.forEach( info => {
let item:any = extractData(info, SelectFiles);
item.createTime = moment(item.createTime).format("YYYY-MM-DD");
dataList.push(item);
});
return {dataList, dataCount};
}
/**
* 新建标签
* @param id
* @param lableName 标签名称
* @returns
*/
export async function createLable({userId, lableName}) {
let lableInfo = await findOnce(TABLEENUM.标签表, {lableName}, ["lableId"]);
if (lableInfo) throw new BizError(ERRORENUM.标签重复);
/**标签Id */
const lableId = generateSystemId(TABLEENUM.标签表, userId);
let addInfo = {
lableId,
lableName,
createTime:new Date().valueOf()
};
await addOneData(TABLEENUM.标签表, addInfo);
return successResult();
}
/**
* 修改标签名称
* @param lableId 标签id
* @param lableName 标签名称
*/
export async function updateLable({lableId, lableName}) {
let lableInfo = await findOnce(TABLEENUM.标签表, {lableId}, ["lableId"]);
if (!lableInfo || !lableInfo.lableId) throw new BizError(ERRORENUM.标签数据不存在);
await updateOneData(TABLEENUM.标签表, {lableId}, {lableName});
return successResult();
}
/**
* 删除标签
* @param lableId 标签Id
*/
export async function delLable({lableId}) {
let lableInfo = await findOnce(TABLEENUM.标签表, {lableId}, ["lableId"]);
if (!lableInfo || !lableInfo.lableId) throw new BizError(ERRORENUM.标签数据不存在);
await deleteOneData(TABLEENUM.标签表, {lableId});
return successResult();
}
/**
* 添加标签只显示未选中标签数据
* @param id 选中需要添加标签的会员id
*/
export async function unCheckedLable({id}) {
let userInfo = await findOnce(TABLEENUM.用户表, {userId:id}, ["userId", "lableId"]);
if (!userInfo || !userInfo.userId) throw new BizError(ERRORENUM.目标数据不存在);
let lableInfo = await find(TABLEENUM.标签表, {lableId:{"$nin":userInfo.lableId}}, ["lableId", "lableName"]);
return lableInfo;
}
/**
* 个人会员-分配标签
* @param id 会员id
* @param lableId 选中新增的标签id 多选 ["", ""]
*/
export async function addMemberLable({id, lableId}) {
let userInfo = await findOnce(TABLEENUM.用户表, {userId:id}, ["userId", "lableId"]);
if (!userInfo || !userInfo.userId) throw new BizError(ERRORENUM.目标数据不存在);
let lableInfo = userInfo.lableId || [];
for (let i = 0; i < lableId.length; i++) {
lableInfo.push(lableId[i]);
console.log();
}
await updateOneData(TABLEENUM.用户表, {userId:id}, {lableId:lableInfo});
return successResult();
}
/**
* 删除标签只显示已选中标签数据
* @param id 选中需要添加标签的会员id
*/
export async function checkedLable({id}) {
let userInfo = await findOnce(TABLEENUM.用户表, {userId:id}, ["userId", "lableId"]);
if (!userInfo || !userInfo.userId) throw new BizError(ERRORENUM.目标数据不存在);
let lableInfo = await find(TABLEENUM.标签表, {lableId:{"$in":userInfo.lableId}}, ["lableId", "lableName"]);
return lableInfo;
}
/**
* 个人会员-删除标签
* @param id 会员id
* @param lableId 需要删除的标签Id 多选 ["", ""]
*/
export async function delMemberLable({id, lableId}) {
let userInfo = await findOnce(TABLEENUM.用户表, {userId:id}, ["userId", "lableId"]);
if (!userInfo || !userInfo.userId) throw new BizError(ERRORENUM.目标数据不存在);
let lableInfo = userInfo.lableId;
let newLable = lableInfo.filter(item => !lableId.includes(item));
await updateOneData(TABLEENUM.用户表, {userId:id}, {lableId:newLable});
return successResult();
}
...@@ -32,11 +32,12 @@ import { eccFormParam } from "../../util/verificationParam"; ...@@ -32,11 +32,12 @@ import { eccFormParam } from "../../util/verificationParam";
* @param shi 市 * @param shi 市
* @param pageNumber 当前页 * @param pageNumber 当前页
*/ */
export async function unitMemberList({unitName, mail, phone, joinStartTime, joinEndTime, unitMemberType, memberLevel, session, memberState, sheng, shi, pageNumber}) { export async function unitMemberList({unitName, mail, phone, joinStartTime, joinEndTime, unitMemberType, memberLevel, session, memberState, sheng, shi, lableId, pageNumber}) {
let selectParam:any = { let selectParam:any = {
isAdmin:STATE., isAdmin:STATE.,
memberType : MEMBERTYPE.单位会员, memberType : MEMBERTYPE.单位会员,
userRegisterState : USERREGISTERSTATE.通过 userRegisterState : USERREGISTERSTATE.通过,
isBlackUser:STATE.
}; };
if (unitName) selectParam.unitName = unitName; if (unitName) selectParam.unitName = unitName;
if (mail) selectParam.mail = mail; if (mail) selectParam.mail = mail;
...@@ -54,14 +55,17 @@ export async function unitMemberList({unitName, mail, phone, joinStartTime, join ...@@ -54,14 +55,17 @@ export async function unitMemberList({unitName, mail, phone, joinStartTime, join
if (memberState) selectParam.memberState = memberState; if (memberState) selectParam.memberState = memberState;
if (sheng) selectParam.sheng = sheng; if (sheng) selectParam.sheng = sheng;
if (shi) selectParam.shi = shi; if (shi) selectParam.shi = shi;
if (lableId && lableId.length) selectParam.lableId = {"$in":lableId};
const SelectFiles = ["userId", "memberState", "unitName", "loginId", "phone", "joinTime", "unitMemberLevel", "sheng", "shi", "qu"]; const SelectFiles = ["userId", "memberState", "unitName", "loginId", "phone", "joinTime", "unitMemberLevel", "sheng", "shi", "qu", "lableId"];
let dbList = await findToPage(TABLEENUM.用户表, selectParam, SelectFiles, pageNumber); let dbList = await findToPage(TABLEENUM.用户表, selectParam, SelectFiles, pageNumber);
let dataCount = await findCount(TABLEENUM.用户表, selectParam); let dataCount = await findCount(TABLEENUM.用户表, selectParam);
let dataList = []; let dataList = [];
dbList.forEach(info => {
for (let i = 0; i < dbList.length; i++) {
let info = dbList[i];
let item:any = extractData(info, SelectFiles); let item:any = extractData(info, SelectFiles);
item.memberState = changeEnumValue(MEMBERSTATE, item.memberState); item.memberState = changeEnumValue(MEMBERSTATE, item.memberState);
if (!item.memberLevel) item.memberLevel = "未选择"; if (!item.memberLevel) item.memberLevel = "未选择";
...@@ -70,8 +74,14 @@ export async function unitMemberList({unitName, mail, phone, joinStartTime, join ...@@ -70,8 +74,14 @@ export async function unitMemberList({unitName, mail, phone, joinStartTime, join
item.sheng = getCityNameByCode(item.sheng); item.sheng = getCityNameByCode(item.sheng);
item.shi = getCityNameByCode(item.shi); item.shi = getCityNameByCode(item.shi);
item.qu = getCityNameByCode(item.qu); item.qu = getCityNameByCode(item.qu);
item.lableId = [];
let lableInfo = await find(TABLEENUM.标签表, {lableId:{"$in":info.lableId}}, ["lableName"]);
lableInfo.forEach ( lableItem => {
item.lableId.push(lableItem.lableName);
})
dataList.push(item); dataList.push(item);
}); }
return {dataList, dataCount}; return {dataList, dataCount};
} }
...@@ -173,7 +183,6 @@ export async function unitMemberUpdate({form, keyanForm, id}) { ...@@ -173,7 +183,6 @@ export async function unitMemberUpdate({form, keyanForm, id}) {
await deleteManyData(TABLEENUM.单位所获得科研成果表, {userId:id}); await deleteManyData(TABLEENUM.单位所获得科研成果表, {userId:id});
} }
/**添加新的科研信息 */ /**添加新的科研信息 */
let addList = []; let addList = [];
for (let i = 0; i < keyanForm.length; i++) { for (let i = 0; i < keyanForm.length; i++) {
...@@ -219,10 +228,11 @@ export async function delResearch({id}) { ...@@ -219,10 +228,11 @@ export async function delResearch({id}) {
* @param sheng 省 * @param sheng 省
* @param shi 市 * @param shi 市
*/ */
export async function individualMemberList({name, documentId, phone, mail, joinStartTime, joinEndTime, memberLevel, session, profCategory, memberState, sheng, shi, pageNumber}) { export async function individualMemberList({name, documentId, phone, mail, joinStartTime, joinEndTime, memberLevel, session, profCategory, memberState, sheng, shi, lableId, pageNumber}) {
let selectParam:any = { let selectParam:any = {
memberType : MEMBERTYPE.个人会员, memberType : MEMBERTYPE.个人会员,
userRegisterState : USERREGISTERSTATE.通过 userRegisterState : USERREGISTERSTATE.通过,
isBlackUser:STATE.
}; };
if (name) selectParam.name = name; if (name) selectParam.name = name;
if (documentId) selectParam.documentId = documentId; if (documentId) selectParam.documentId = documentId;
...@@ -241,27 +251,34 @@ export async function individualMemberList({name, documentId, phone, mail, joinS ...@@ -241,27 +251,34 @@ export async function individualMemberList({name, documentId, phone, mail, joinS
if (memberState) selectParam.memberState = memberState; if (memberState) selectParam.memberState = memberState;
if (sheng) selectParam.sheng = sheng; if (sheng) selectParam.sheng = sheng;
if (shi) selectParam.shi = shi; if (shi) selectParam.shi = shi;
if (lableId && lableId.length) selectParam.lableId = {"$in":lableId};
let selectConf = ["userId", "memberState", "unitName", "name", "sex", "nation", "loginId", "phone", "joinTime", "memberLevel", "sheng", "shi", "qu", "lableId"];
let selectConf = ["userId", "memberState", "unitName", "name", "sex", "nation", "loginId", "phone", "joinTime", "memberLevel", "sheng", "shi", "qu"];
let dbList = await findToPage(TABLEENUM.用户表, selectParam, selectConf, pageNumber); let dbList = await findToPage(TABLEENUM.用户表, selectParam, selectConf, pageNumber);
let dataCount = await findCount(TABLEENUM.用户表, selectParam); let dataCount = await findCount(TABLEENUM.用户表, selectParam);
let dataList = []; let dataList = [];
dbList.forEach(info => {
for (let i = 0; i < dbList.length; i++) {
let info = dbList[i];
let item:any = extractData(info, selectConf); let item:any = extractData(info, selectConf);
item.memberState = changeEnumValue(MEMBERSTATE, item.memberState); item.memberState = changeEnumValue(MEMBERSTATE, item.memberState);
if (!item.memberLevel) item.memberLevel = "未选择"; if (!item.memberLevel) item.memberLevel = "未选择";
else item.memberLevel = changeEnumValue(MEMBERLEVEL, item.memberLevel); else item.memberLevel = changeEnumValue(MEMBERLEVEL, item.memberLevel)
item.joinTime = moment(item.joinTime).format("YYYY-MM-DD")
item.joinTime = moment(item.joinTime).format("YYYY-MM-DD");
item.shi = getCityNameByCode(item.shi); item.shi = getCityNameByCode(item.shi);
item.sheng = getCityNameByCode(item.sheng); item.sheng = getCityNameByCode(item.sheng);
item.qu = getCityNameByCode(item.qu); item.qu = getCityNameByCode(item.qu);
item.lableId = [];
let lableInfo = await find(TABLEENUM.标签表, {lableId:{"$in":info.lableId}}, ["lableName"]);
lableInfo.forEach ( lableItem => {
item.lableId.push(lableItem.lableName);
})
dataList.push(item); dataList.push(item);
}); }
return {dataList, dataCount}; return {dataList, dataCount};
} }
...@@ -390,7 +407,9 @@ export async function outPutIndividualMembers({exportColumns}) { ...@@ -390,7 +407,9 @@ export async function outPutIndividualMembers({exportColumns}) {
let addList = ["sheng", "shi", "qu"]; let addList = ["sheng", "shi", "qu"];
let dataList = [selectTitle]; let dataList = [selectTitle];
dbList.forEach(info => {
for (let i = 0; i < dbList.length; i++) {
let info = dbList[i];
let subList = []; let subList = [];
for (let i = 0; i < selectConf.length; i++) { for (let i = 0; i < selectConf.length; i++) {
let key = selectConf[i]; let key = selectConf[i];
...@@ -408,11 +427,19 @@ export async function outPutIndividualMembers({exportColumns}) { ...@@ -408,11 +427,19 @@ export async function outPutIndividualMembers({exportColumns}) {
else if (key == "education") value = changeEnumValue(EDUCATION, value); else if (key == "education") value = changeEnumValue(EDUCATION, value);
else if (key == "profCategory") value = changeEnumValue(PROFCATEGORY, value); else if (key == "profCategory") value = changeEnumValue(PROFCATEGORY, value);
else if (addList.indexOf(key) != -1) value = getCityNameByCode(value); else if (addList.indexOf(key) != -1) value = getCityNameByCode(value);
else if (key == "lableId") {
value = [];
let lableInfo = await find(TABLEENUM.标签表, {lableId:{"$in":info.lableId}}, ["lableName"]);
lableInfo.forEach ( lableItem => {
value.push(lableItem.lableName);
});
value = value.toString();
}
} }
subList.push(value); subList.push(value);
} }
dataList.push(subList); dataList.push(subList);
}); }
return {dataList}; return {dataList};
} }
...@@ -449,7 +476,9 @@ export async function outPutUnitMembers({exportColumns}) { ...@@ -449,7 +476,9 @@ export async function outPutUnitMembers({exportColumns}) {
let timeChnageList = ["joinTime"]; let timeChnageList = ["joinTime"];
let dataList = [selectTitle]; let dataList = [selectTitle];
dbList.forEach(info => {
for (let i = 0; i < dbList.length; i++) {
let info = dbList[i];
let subList = []; let subList = [];
for (let i = 0; i < selectConf.length; i++) { for (let i = 0; i < selectConf.length; i++) {
let key = selectConf[i]; let key = selectConf[i];
...@@ -461,11 +490,19 @@ export async function outPutUnitMembers({exportColumns}) { ...@@ -461,11 +490,19 @@ export async function outPutUnitMembers({exportColumns}) {
else if (key == "certificateType") value = changeEnumValue(CERTIFICATETYPE, value); else if (key == "certificateType") value = changeEnumValue(CERTIFICATETYPE, value);
else if (key == "individualMemberType") value = changeEnumValue(INDIVIDUALMEMBERTYPE, value); else if (key == "individualMemberType") value = changeEnumValue(INDIVIDUALMEMBERTYPE, value);
else if (key == "memberLevel") value = changeEnumValue(MEMBERLEVEL, value); else if (key == "memberLevel") value = changeEnumValue(MEMBERLEVEL, value);
else if (key == "lableId") {
value = [];
let lableInfo = await find(TABLEENUM.标签表, {lableId:{"$in":info.lableId}}, ["lableName"]);
lableInfo.forEach ( lableItem => {
value.push(lableItem.lableName);
});
value = value.toString();
}
} }
subList.push(value); subList.push(value);
} }
dataList.push(subList); dataList.push(subList);
}); }
return {dataList} return {dataList}
} }
......
/**
* 消息、活动流程
*/
import moment = require("moment");
import { ACTIVITYSTATE, ACTIVITYTYPE, CLIENTMSGLABLE, MEMBERLEVEL, MEMBERTYPE } from "../../config/enum";
import { ERRORENUM } from "../../config/errorEnum";
import { addOneData } from "../../data/add";
import { TABLEENUM } from "../../data/models/model";
import { find, findCount, findOnce, findToPage, findToSort, findToSortToPage } from "../../data/select";
import { generateSystemId, getTodayMs, successResult } from "../../tools/system";
import { BizError } from "../../util/bizError";
import { extractData } from "../../util/piecemeal";
import { changeEnumValue } from "../../util/verificationEnum";
import { updateOneData } from "../../data/update";
import { eccCityCode } from "../../config/cityConfig";
import { deleteOneData } from "../../data/delete";
/**
* 消息列表
* @param msgTitle 消息标题
* @param effectiveStartTime 有效开始时间
* @param effectiveEndTime 有效结束时间
* @param pageNumber 当前页
*/
export async function getMessageList({msgTitle, effectiveStartTime, effectiveEndTime, pageNumber}) {
let selectParam:any = {};
if (msgTitle) selectParam.msgTitle = msgTitle;
if (effectiveStartTime) {
selectParam["effectiveTime"] = {"$gt":effectiveStartTime};
}
if (effectiveEndTime) {
if (!selectParam["effectiveTime"]) selectParam["joinTime"] = {};
selectParam["effectiveTime"]["$lt"] = effectiveEndTime;
}
const SelectFiles = ["msgId", "lableId", "msgTitle", "effectiveTime", "msgContent", "isPop"];
// let dbList = await findToSortToPage(TABLEENUM.消息通知表, selectParam, SelectFiles, {effectiveTime:-1}, pageNumber);
let dbList = await findToPage(TABLEENUM.消息通知表, selectParam, SelectFiles, pageNumber);
let dataCount = await findCount(TABLEENUM.消息通知表, selectParam);
let dataList = [];
for (let i = 0; i < dbList.length; i++) {
let info = dbList[i];
let item:any = extractData(info, SelectFiles);
item.lableId = [];
/**处理固定消息对象 */
for (let lableId = 0; lableId < info.lableId.length; lableId++) {
for (let key in CLIENTMSGLABLE) {
let anyKey:any = key;
if (isNaN(anyKey)) {
let value = CLIENTMSGLABLE[key];
if (info.lableId[lableId] == value) {
item.lableId.push(anyKey);
}
}
}
}
/**处理消息对象返回标签名称 */
let lableInfo = await find(TABLEENUM.标签表, {lableId:{"$in":info.lableId}}, ["lableName"]);
if (lableInfo) {
lableInfo.forEach ( lableItem => {
item.lableId.push(lableItem.lableName);
});
}
item.effectiveTime = moment(item.effectiveTime).format("YYYY-MM-DD");
dataList.push(item);
}
return {dataList, dataCount};
}
/**
* 新建消息
* @param userId 会员id(请求头id)
* @param lableId 标签id(消息对象)
* @param msgTitle 消息标题
* @param effectiveTime 有效时间
* @param msgContent 消息内容
*/
export async function addMessage({userId, lableId, msgTitle, effectiveTime, msgContent}) {
/**消息Id */
const msgId = generateSystemId(TABLEENUM.消息通知表, userId);
let addInfo = {
msgId,
lableId,
msgTitle,
effectiveTime,
msgContent
};
await addOneData(TABLEENUM.消息通知表, addInfo);
return successResult();
}
/**
* 修改消息
* @param msgId 消息Id
* @param form 修改消息表单
* @param form.lableId 标签id(消息对象)
* @param form.msgTitle 消息标题
* @param form.effectiveTime 有效时间
* @param form.msgContent 消息内容
*/
export async function updateMessage({msgId, form}) {
let msgInfo = await findOnce(TABLEENUM.消息通知表, {msgId}, ["msgId"]);
if (!msgInfo || !msgInfo.msgId) throw new BizError(ERRORENUM.目标数据不存在);
await updateOneData(TABLEENUM.消息通知表, {msgId}, form);
return successResult();
}
/**
* 修改是否弹窗
* @param msgId 消息id
* @returns
*/
export async function updateIsPop({msgId, isPop}) {
let msgInfo = await findOnce(TABLEENUM.消息通知表, {msgId}, ["msgId", "isPop"]);
if (!msgInfo || !msgInfo.msgId) throw new BizError(ERRORENUM.目标数据不存在);
if (msgInfo.isPop == isPop) return;
await updateOneData(TABLEENUM.消息通知表, {msgId}, {isPop});
return successResult();
}
/**
* 删除消息
* @param msgId 消息Id
* @returns
*/
export async function delMessage({msgId}) {
let msgInfo = await findOnce(TABLEENUM.消息通知表, {msgId}, ["msgId"]);
if (!msgInfo || !msgInfo.msgId) throw new BizError(ERRORENUM.目标数据不存在);
await deleteOneData(TABLEENUM.消息通知表, {msgId});
return successResult();
}
/**
* 消息通知
* @param userId 会员Id
* @returns
*/
export async function noticeMessage({userId}) {
let userInfo = await findOnce(TABLEENUM.用户表, {userId}, ["lableId", "memberType"]);
if (!userInfo || !userInfo.lableId) throw new BizError(ERRORENUM.目标数据不存在);
let nowDate = new Date().valueOf();
let memberType = userInfo.memberType.toString();
let selectParam = {
"$or":[
{ lableId:{"$in":CLIENTMSGLABLE.所有人} },
{ lableId:{"$in":memberType} },
{
lableId:{"$in":userInfo.lableId},
effectiveTime:{"$gt":nowDate} //有效时间大于当前时间的消息发送通知
}
]
};
const SelectFiles = ["msgId", "msgTitle", "effectiveTime", "msgContent", "isPop"];
let msgInfo = await find(TABLEENUM.消息通知表, selectParam, SelectFiles);
if (!msgInfo || !msgInfo.msgId) throw new BizError(ERRORENUM.目标数据不存在);
let dataList = [];
msgInfo.forEach( info => {
let item:any = extractData(info, SelectFiles);
dataList.push(item);
})
return {dataList};
}
/**
* 活动通知列表
* @param activityName 活动名称
* @param activityStartTime 活动开始时间
* @param activityEndTime 活动结束时间
* @param pageNumber 当前页
* @returns
*/
export async function getActivityList({activityName, activityStartTime, activityEndTime, pageNumber}) {
let selectParam:any = {};
if (activityName) selectParam.activityName = activityName;
if (activityStartTime) {
selectParam["activityStartTime"] = {"$gt":activityStartTime};
}
if (activityEndTime) {
if (!selectParam["activityEndTime"]) selectParam["activityEndTime"] = {};
selectParam["activityEndTime"]["$lt"] = activityEndTime;
}
const SelectFiles = ["activityId", "activityType", "activityStartTime", "activityEndTime", "activityAdd", "enrollStartTime", "enrollEndTime", "lableId", "isTopUp"];
let dbList = await findToSortToPage(TABLEENUM.活动通知表, selectParam, SelectFiles, {activityStartTime:-1}, pageNumber);
let dataCount = await findCount(TABLEENUM.活动通知表, selectParam);
let dataList = [];
for (let i = 0; i < dbList.length; i++) {
let info = dbList[i];
let item:any = extractData(info, SelectFiles);
/**标签id处理为标签名称 */
if (info.lableId == 0 || info.lableId == 1 || info.lableId == 2) {
item.lableId = changeEnumValue(CLIENTMSGLABLE, info.lableId);
} else {
item.lableId = [];
let lableInfo = await find(TABLEENUM.标签表, {lableId:{"$in":info.lableId}}, ["lableName"]);
lableInfo.forEach ( lableItem => {
item.lableId.push(lableItem.lableName);
});
}
/**枚举值、时间格式转换 */
item.activityType = changeEnumValue(ACTIVITYTYPE, info.activityType);
item.activityStartTime = moment(item.activityStartTime).format("YYYY-MM-DD");
item.activityEndTime = moment(item.activityEndTime).format("YYYY-MM-DD");
item.enrollStartTime = moment(item.enrollStartTime).format("YYYY-MM-DD");
item.enrollEndTime = moment(item.enrollEndTime).format("YYYY-MM-DD");
dataList.push(item);
}
return {dataList, dataCount};
}
/**
* 新建活动
* @param userId 会员id
* @param form 新建活动表单 activityType, activityName, enrollForm, activityAdd, activityTime, lableId, enrollTime, activityContent
* @returns
*/
export async function addActivity({userId, form}) {
/**消息Id */
const activityId = generateSystemId(TABLEENUM.活动通知表, userId);
let addInfo = form;
addInfo.activityId = activityId;
await addOneData(TABLEENUM.活动通知表, addInfo);
return successResult();
}
/**
* 修改活动
* @param activityId 活动id
* @param form 新建活动表单 activityType, activityName, enrollForm, activityAdd, activityTime, lableId, enrollTime, activityContent
* @returns
*/
export async function updateActivity({activityId, form}) {
let activityInfo = await findOnce(TABLEENUM.活动通知表, {activityId}, ["activityId"]);
if (!activityInfo || !activityInfo.activityId) throw new BizError(ERRORENUM.目标数据不存在);
if (activityInfo.activityType == ACTIVITYTYPE.线下活动) {
if (!form.activityStartTime || !form.activityEndTime) throw new BizError(ERRORENUM.线下活动的活动时间必填);
}
await updateOneData(TABLEENUM.活动通知表, {activityId}, form);
return successResult();
}
/**
* 删除活动
* @param activityId 活动id
* @returns
*/
export async function delActivity({activityId}) {
let activityInfo = await findOnce(TABLEENUM.活动通知表, {activityId}, ["activityId"]);
if (!activityInfo || !activityInfo.activityId) throw new BizError(ERRORENUM.目标数据不存在);
await deleteOneData(TABLEENUM.活动通知表, {activityId});
return successResult();
}
/**
* 修改是否置顶
* @param activityId 活动id
* @returns
*/
export async function updateIsTopUp({activityId, isTopUp}) {
let activityInfo = await findOnce(TABLEENUM.活动通知表, {activityId}, ["activityId", "isTopUp"]);
if (!activityInfo || !activityInfo.activityId) throw new BizError(ERRORENUM.目标数据不存在);
if (activityInfo.isTopUp == isTopUp) return;
await updateOneData(TABLEENUM.活动通知表, {activityId}, {isTopUp});
return successResult();
}
/**
* 活动报名人员列表
* @param activityId 活动Id
*/
export async function enrollList({activityId}) {
let activityInfo = await find(TABLEENUM.活动报名表, {activityId}, ["userId"]);
const SelectFiles = ["userId", "name", "unitName", "memberType", "memberLevel", "phone"];
const DataFiles = ["userId", "name", "memberType", "memberLevel", "phone"];
let dataList = [];
for (let i = 0; i < activityInfo.length; i++) {
let info = activityInfo[i];
let userInfo = await findOnce(TABLEENUM.用户表, {userId:info.userId}, SelectFiles);
let item:any = extractData(userInfo, DataFiles);
if (userInfo.memberType == MEMBERTYPE.单位会员) {
item.name = userInfo.unitName;
}
if (!item.memberLevel) item.memberLevel = "未选择";
else item.memberLevel = changeEnumValue(MEMBERLEVEL, item.memberLevel);
dataList.push(item);
}
return {dataList};
}
/**
* 根据选择的会员下载报名表
* @param userId 会员Id
*/
export async function getEnrollUrl({userId}) {
let activityInfo = await find(TABLEENUM.活动通知表, {userId}, ["enrollUrl"]);
}
//个人页------------------------------------
/**
* 获取活动对应报名表模板
* @param activityId 活动id
* @returns
*/
export async function activityEnrollForm({activityId}) {
let activityInfo = await findOnce(TABLEENUM.活动通知表, {activityId}, ["enrollForm"]);
if (!activityInfo || !activityInfo.enrollForm) throw new BizError(ERRORENUM.目标数据不存在);
return {enrollForm:activityInfo.enrollForm};
}
/**
* 申请报名表
* @param userId 会员Id
* @param activityId 活动id
* @param enrollUrl 已填报报名表地址
*/
export async function activityEnroll({userId, activityId, enrollUrl}) {
let userInfo = await findOnce(TABLEENUM.用户表, {userId}, ["lableId", "memberType"]);
if (!userInfo || !userInfo.lableId) throw new BizError(ERRORENUM.目标数据不存在);
let memberType = userInfo.memberType.toString();
let selectParam = {
activityId,
"$or":[
{ lableId:{"$in":CLIENTMSGLABLE.所有人} },
{ lableId:{"$in":memberType} },
{
lableId:{"$in":userInfo.lableId},
}
]
};
let activityInfo = await find(TABLEENUM.活动通知表, selectParam, ["lableId"]);
if (!activityInfo || !activityInfo.lableId) throw new BizError(ERRORENUM.用户没有在此活动对象内);
/**消息Id */
const enrollId = generateSystemId(TABLEENUM.活动报名表, userId);
let addInfo = {
enrollId,
userId,
activityId,
enrollUrl
}
await addOneData(TABLEENUM.活动报名表, addInfo);
// await updateOneData(TABLEENUM.活动通知表, {activityId}, {activityState:ACTIVITYSTATE.已参加});
return successResult();
}
/**
* 会员个人页-查看活动
* 根据登录的用户id查询标签id,获取活动通知里对应标签id的所有活动
* @param userId 会员Id
*/
export async function seeActivity({userId}) {
let userInfo = await findOnce(TABLEENUM.用户表, {userId}, ["lableId", "memberType"]);
if (!userInfo || !userInfo.lableId) throw new BizError(ERRORENUM.目标数据不存在);
let memberType = userInfo.memberType.toString();
let selectParam = {
"$or":[
{ lableId:{"$in":CLIENTMSGLABLE.所有人} },
{ lableId:{"$in":memberType} },
{
lableId:{"$in":userInfo.lableId},
}
],
activityState:{"$nin":ACTIVITYSTATE.已结束}
};
let SelectFiles = ["activityId", "activityName", "activityStartTime", "activityEndTime"];
// let activityInfo = await find(TABLEENUM.活动通知表, selectParam, SelectFiles);
let activityInfo = await findToSort(TABLEENUM.活动通知表, selectParam, SelectFiles, {activityStartTime:-1});
if (!activityInfo || !activityInfo.length) throw new BizError(ERRORENUM.目标数据不存在);
let dataList = [];
activityInfo.forEach( info => {
let item:any = extractData(info, SelectFiles);
item.activityStartTime = moment(item.activityStartTime).format("YYYY-MM-DD");
item.activityEndTime = moment(item.activityEndTime).format("YYYY-MM-DD");
dataList.push(item);
})
return {dataList};
}
/**
* 会员个人页-查看更多活动列表
* @param userId 会员Id
* @param param0
*/
export async function homeActivityList({userId, activityState}) {
let userInfo = await findOnce(TABLEENUM.用户表, {userId}, ["lableId", "memberType"]);
if (!userInfo || !userInfo.lableId) throw new BizError(ERRORENUM.目标数据不存在);
let memberType = userInfo.memberType.toString();
let selectParam:any = {
"$or":[
{ lableId:{"$in":CLIENTMSGLABLE.所有人} },
{ lableId:{"$in":memberType} },
{
lableId:{"$in":userInfo.lableId},
}
]
};
if (activityState) selectParam.activityState = activityState;
if (activityState == ACTIVITYSTATE.已结束) selectParam.activityState = activityState;
if (activityState == "已参加") {
let activityInfo = await find(TABLEENUM.活动报名表, {userId}, ["activityId"]);
activityInfo.forEach( info => {
if (selectParam.activityId) selectParam = {activityId:[]};
selectParam.activityId.push(info.activityId);
})
}
let SelectFiles = ["activityId", "activityName", "activityStartTime", "activityEndTime"];
// let activityInfo = await find(TABLEENUM.活动通知表, selectParam, SelectFiles);
let activityInfo = await findToSort(TABLEENUM.活动通知表, selectParam, SelectFiles, {activityStartTime:-1});
if (!activityInfo || !activityInfo.length) throw new BizError(ERRORENUM.目标数据不存在);
let dataList = [];
activityInfo.forEach( info => {
let item:any = extractData(info, SelectFiles);
item.activityStartTime = moment(item.activityStartTime).format("YYYY-MM-DD");
item.activityEndTime = moment(item.activityEndTime).format("YYYY-MM-DD");
dataList.push(item);
});
return {dataList};
}
// -------------------------
/**
* 活动状态切换
* 设置定时器,每一小时检查一次活动状态
*/
export function initActivity() {
setInterval(async function () {
await updateActivityState();
}, 3600 * 1000);
}
/**
* 修改活动状态
* @returns
*/
export async function updateActivityState() {
let time = getTodayMs();
let activityInfo = await find(TABLEENUM.活动通知表, {activityState:ACTIVITYSTATE.已开始});
if (!activityInfo || !activityInfo.length) return;
let formParam = {activityState:ACTIVITYSTATE.已结束};
for (let i = 0; i < activityInfo.length; i++) {
let info = activityInfo[i];
if (info.activityType == ACTIVITYTYPE.线上活动) {
if (time > info.enrollTime) {
await updateOneData(TABLEENUM.活动通知表, {activityId:info.activityId}, formParam);
}
}
if (info.activityType == ACTIVITYTYPE.线下活动) {
if (time > info.activityTime) {
await updateOneData(TABLEENUM.活动通知表, {activityId:info.activityId}, formParam);
}
}
}
}
...@@ -24,6 +24,8 @@ export async function login({loginId, pwd}) { ...@@ -24,6 +24,8 @@ export async function login({loginId, pwd}) {
let selectParam = { "$or":[{loginId:loginId}, {phone:loginId}] }; let selectParam = { "$or":[{loginId:loginId}, {phone:loginId}] };
let userInfo = await findOnce(TABLEENUM.用户表, selectParam); let userInfo = await findOnce(TABLEENUM.用户表, selectParam);
if (userInfo.isBlackUser == STATE.) throw new BizError(ERRORENUM.登录账号为黑名单用户);
if (!userInfo || !userInfo.userId) throw new BizError(ERRORENUM.账号或密码错误); if (!userInfo || !userInfo.userId) throw new BizError(ERRORENUM.账号或密码错误);
if (userInfo.isInput && !userInfo.inputUserChangePwd) { if (userInfo.isInput && !userInfo.inputUserChangePwd) {
......
import moment = require("moment"); import moment = require("moment");
import { ARTICLEPOSITION, DONGTAIZIXUNSUBTYPE, PARTYBUILDSUBTYPEENUM, PARTYBUILDTYPEENUM } from "../config/enum"; import { ARTICLEPOSITION, CLIENTMSGLABLE, DONGTAIZIXUNSUBTYPE, PARTYBUILDSUBTYPEENUM, PARTYBUILDTYPEENUM } from "../config/enum";
import { TABLEENUM } from "../data/models/model"; import { TABLEENUM } from "../data/models/model";
import { find } from "../data/select"; import { find } from "../data/select";
import { getEdition } from "../tools/system"; import { getEdition } from "../tools/system";
...@@ -100,3 +100,32 @@ export async function getSession() { ...@@ -100,3 +100,32 @@ export async function getSession() {
return {session} return {session}
} }
/**
* 获取所有标签
*/
export async function getLable() {
let lableInfo = await find(TABLEENUM.标签表, {}, ["lableId", "lableName"]);
return lableInfo;
}
/**
* 获取通知对象
*/
export async function getNoticeObject() {
let msgLable = setEnumInterface({defaultParam:CLIENTMSGLABLE});
let lableInfo = await find(TABLEENUM.标签表, {}, ["lableId", "lableName"]);
lableInfo.forEach( info => {
let item = {key:info.lableName, value:info.lableId}
msgLable.dataList.push(item);
})
return {msgLable};
}
...@@ -53,7 +53,8 @@ export async function memberRegister1({form}) { ...@@ -53,7 +53,8 @@ export async function memberRegister1({form}) {
registerFlow:REGISTERFLOW.完成第一步,//会员注册流程状态 registerFlow:REGISTERFLOW.完成第一步,//会员注册流程状态
loginId, mail, pwd, phone, loginId, mail, pwd, phone,
token, token,
individualMemberType:INDIVIDUALMEMBERTYPE.普通会员 individualMemberType:INDIVIDUALMEMBERTYPE.普通会员,
isBlackUser:STATE.
}; };
await addOneData(TABLEENUM.用户表, addInfo); await addOneData(TABLEENUM.用户表, addInfo);
...@@ -154,6 +155,7 @@ export async function memberRegister2({form, id}) { ...@@ -154,6 +155,7 @@ export async function memberRegister2({form, id}) {
phone, phone,
token, token,
unitMail:mail, unitMail:mail,
isBlackUser:STATE.
}; };
await addOneData(TABLEENUM.用户表, addInfo); await addOneData(TABLEENUM.用户表, addInfo);
......
...@@ -332,6 +332,7 @@ export enum MEMBERSTATE { ...@@ -332,6 +332,7 @@ export enum MEMBERSTATE {
冻结 冻结
} }
/** /**
* 管理员状态 * 管理员状态
*/ */
...@@ -582,7 +583,8 @@ export enum ADMINLV { ...@@ -582,7 +583,8 @@ export enum ADMINLV {
会费管理, 会费管理,
发票管理, 发票管理,
会员管理, 会员管理,
管理设置 = 206 管理设置 = 206,
标签系统,
} }
...@@ -671,3 +673,42 @@ export enum OOSCODE { ...@@ -671,3 +673,42 @@ export enum OOSCODE {
注册信息 注册信息
} }
/**
* 消息通知-除标签外固定通知类型
*/
export enum CLIENTMSGLABLE {
所有人 = "0",
个人会员 = "1",
单位会员 = "2"
}
/**
* 活动通知-活动类型
* activityType
*/
export enum ACTIVITYTYPE {
线上活动 = 1,
线下活动
}
/**
* 活动通知-活动状态
*/
export enum ACTIVITYSTATE {
已开始 = 1,
已结束
}
/**
* 前端参数
*/
export enum CLIENTACTIVITYSTATE {
已开始 = 1,
已结束,
已参加
}
...@@ -54,7 +54,12 @@ export enum ERRORENUM { ...@@ -54,7 +54,12 @@ export enum ERRORENUM {
该动态未开放, 该动态未开放,
找不到该机构, 找不到该机构,
源文章已被删除, 源文章已被删除,
批量操作超过个数限制 批量操作超过个数限制,
标签重复,
标签数据不存在,
线下活动的活动时间必填,
用户没有在此活动对象内,
登录账号为黑名单用户 = "您的会员服务已过期,如需恢复请联系秘书处:010-86208681",
} }
export enum ERRORCODEENUM { export enum ERRORCODEENUM {
......
...@@ -37,7 +37,9 @@ export enum UNITAUDITINGCOLUMNS { ...@@ -37,7 +37,9 @@ export enum UNITAUDITINGCOLUMNS {
法人联系电话 = "legalPersonPhone", 法人联系电话 = "legalPersonPhone",
主管部门 = "yuanXiaoZhuGuanBuMen", 主管部门 = "yuanXiaoZhuGuanBuMen",
科研负责人 = "yuanXiaoKeYanFuZeRen", 科研负责人 = "yuanXiaoKeYanFuZeRen",
单位简介 = "danWeiJianJie" 单位简介 = "danWeiJianJie",
标签 = "lableId"
} }
...@@ -59,7 +61,8 @@ export enum AUDITINGCOLUMNS { ...@@ -59,7 +61,8 @@ export enum AUDITINGCOLUMNS {
证件号码 = "documentId", 证件号码 = "documentId",
职务 = "duties", 职务 = "duties",
学历 = "education", 学历 = "education",
职称 = "workTitle" 职称 = "workTitle",
标签 = "lableId"
} }
......
...@@ -54,7 +54,7 @@ ...@@ -54,7 +54,7 @@
*/ */
import { Schema } from "mongoose"; import { Schema } from "mongoose";
import { INVOICESTATUS, MEMBERLEVEL, MEMBERSTATE, REGISTERFLOW, STATE, USERREGISTERSTATE, WEICHARTPAYSTATE } from "../../config/enum"; import { ACTIVITYSTATE, INVOICESTATUS, MEMBERLEVEL, MEMBERSTATE, REGISTERFLOW, STATE, USERREGISTERSTATE, WEICHARTPAYSTATE } from "../../config/enum";
...@@ -88,7 +88,11 @@ enum TABLEENUM { ...@@ -88,7 +88,11 @@ enum TABLEENUM {
验证码表 = "code", 验证码表 = "code",
审批历史表 = "approvalHistory", 审批历史表 = "approvalHistory",
权限表 = "authority", 权限表 = "authority",
订单审批历史表 = "orderApprovalHistory" 订单审批历史表 = "orderApprovalHistory",
标签表 = "lable",
消息通知表 = "massageNotice",
活动通知表 = "activityNotice",
活动报名表 = "sctivityEnroll"
} }
...@@ -433,6 +437,10 @@ const ModelArray = [ ...@@ -433,6 +437,10 @@ const ModelArray = [
danWeiJianJie:'String',//单位简介 2024.04.22修改 danWeiJianJie:'String',//单位简介 2024.04.22修改
/**第三步流程表单(单位)【申请表上传】 */ /**第三步流程表单(单位)【申请表上传】 */
applicationForm:'String',//入会申请表 applicationForm:'String',//入会申请表
/**标签管理 */
lableId:{type:'[String]', default:[]},//标签id 外键
/**黑名单 */
isBlackUser:{type:'Number', default:STATE.},//是否黑名单用户 0:否, 1:是
} }
}, },
{ {
...@@ -501,6 +509,56 @@ const ModelArray = [ ...@@ -501,6 +509,56 @@ const ModelArray = [
operationBehavior:{ type:'Number'},//操作行为 枚举 operationBehavior:{ type:'Number'},//操作行为 枚举
remarks:{ type:'String' },//备注 remarks:{ type:'String' },//备注
} }
},
{
tableName:TABLEENUM.标签表,
source:TABLESOURCEENUM.mongo,
schema:{
lableId:{type:'String', index:true},//标签id
lableName:'String',//标签名称
createTime:'Number',//创建时间
}
},
{
tableName:TABLEENUM.消息通知表,
source:TABLESOURCEENUM.mongo,
schema:{
msgId:{type:'String', index:true},//消息id
msgTitle:'String',//消息标题
effectiveTime:'Number',//有效时间
msgContent:'String',//消息内容
lableId:{type:'[String]', default:[]},//消息对象 标签id 外键
isPop:{type:'Number', default:STATE.}
}
},
{
tableName:TABLEENUM.活动通知表,
source:TABLESOURCEENUM.mongo,
schema:{
activityId:{type:'String', index:true},//活动id
activityType:'Number',//活动类型 ACTIVITYTYPE
activityState:{type:'Number', default:ACTIVITYSTATE.已开始},//活动状态 ACTIVITYSTATE
activityName:'String',//活动名称
enrollForm:'String',//报名表模板地址
activityAdd:'String',//活动地点
activityStartTime:'Number',//活动开始时间
activityEndTime:'Number',//活动结束时间
lableId:'[String]',//活动对象 标签id 外键
enrollStartTime:'Number',//报名开始时间
enrollEndTime:'Number',//报名结束时间
activityContent:'String',//详细内容
isTopUp:{type:'Number', default:STATE.},//是否置顶
}
},
{
tableName:TABLEENUM.活动报名表,
source:TABLESOURCEENUM.mongo,
schema:{
enrollId:{type:'String', index:true},//活动报名id
activityId:{type:'String'},//活动报名id
userId:{type:'String'},//活动报名用户id
enrollUrl:{type:'String'}//报名表位置
}
} }
]; ];
...@@ -508,3 +566,4 @@ const ModelArray = [ ...@@ -508,3 +566,4 @@ const ModelArray = [
export {ModelArray, TABLEENUM, TABLESOURCEENUM}; export {ModelArray, TABLEENUM, TABLESOURCEENUM};
...@@ -21,7 +21,7 @@ async function lanuch() { ...@@ -21,7 +21,7 @@ async function lanuch() {
// await test1(); // await test1();
// await inputData(); 20240520日导入数据 // await inputData(); 20240520日导入数据
await t(); // await t();
console.log("服务初始化成功"); console.log("服务初始化成功");
} }
......
/**
* 黑名单
*/
import * as blacklistBiz from "../../biz/member/blacklist";
export const FirstName = '黑名单';
export const FirstRouter = '/manage/blacklist';
export const Config = {
"黑名单管理":[
{
apiName:"黑名单列表",
subUrl:'/blacklistdb/blacklist',
param:[
{key:"name", type:"String", desc:"单位/个人名称", isNull:true},
{key:"joinStartTime", type:"Number", desc:"入会开始时间", isNull:true},
{key:"joinEndTime", type:"Number", desc:"入会结束时间", isNull:true},
{key:"memberType", type:"[Number]", desc:"单位会员类型", isNull:true},
{key:"memberLevel", type:"[Number]", desc:"会员等级职务", isNull:true},
{key:"session", type:"Number", desc:"届次", isNull:true},
{key:"sheng", type:"String", desc:"省", isNull:true},
{key:"shi", type:"String", desc:"市", isNull:true},
{key:"qu", type:"String", desc:"区", isNull:true},
{key:"pageNumber", type:"Number", desc:"当前页"}
],
bindBiz:blacklistBiz.blackList
},
{
apiName:"移入黑名单【操作在单位会员页、个人会员页】",
subUrl:'/blacklistdb/moveinblackuser',
param:[
{key:"id", type:"String", desc:"用户id"},
],
bindBiz:blacklistBiz.moveInBlackUser
},
{
apiName:"移除黑名单",
subUrl:'/blacklistdb/shiftoutblackuser',
param:[
{key:"id", type:"String", desc:"用户id"},
],
bindBiz:blacklistBiz.shiftOutBlackUser
},
{
apiName:"删除信息",
subUrl:'/blacklistdb/delblackuser',
param:[
{key:"id", type:"String", desc:"用户id"},
],
bindBiz:blacklistBiz.delBlackUser
},
]
}
\ No newline at end of file
/**
* 标签
*/
import * as lableBiz from "../../biz/member/labelSystem";
export const FirstName = '标签相关';
export const FirstRouter = '/manage/lable';
export const Config = {
"标签管理":[
{
apiName:"标签列表",
subUrl:'/labledb/lablelist',
param:[
{key:"lableName", type:"String", desc:"标签名称", isNull:true},
{key:"startCreateTime", type:"Number", desc:"创建开始时间", isNull:true},
{key:"endCreateTime", type:"Number", desc:"创建结束时间", isNull:true},
{key:"pageNumber", type:"Number", desc:"当前页"}
],
bindBiz:lableBiz.lableList
},
{
apiName:"新建标签",
subUrl:'/labledb/createlable',
param:[
{key:"lableName", type:"String", desc:"标签名称"},
],
bindBiz:lableBiz.createLable
},
{
apiName:"重命名标签",
subUrl:'/labledb/updatelable',
param:[
{key:"lableId", type:"String", desc:"标签Id"},
{key:"lableName", type:"String", desc:"标签名称", isNull:true},
],
bindBiz:lableBiz.updateLable
},
{
apiName:"删除标签",
subUrl:'/labledb/dellable',
param:[
{key:"lableId", type:"String", desc:"标签Id"},
],
bindBiz:lableBiz.delLable
},
{
apiName:"获取未选中的标签",
subUrl:'/labledb/unchecked',
param:[
{key:"id", type:"String", desc:"用户id"},
],
bindBiz:lableBiz.unCheckedLable
},
{
apiName:"会员分配标签",
subUrl:'/labledb/addmemberlable',
param:[
{key:"id", type:"String", desc:"用户id"},
{key:"lableId", type:"[String]", desc:"选中新增的标签id"},
],
bindBiz:lableBiz.addMemberLable
},
{
apiName:"获取已选中的标签",
subUrl:'/labledb/checked',
param:[
{key:"id", type:"String", desc:"用户id"},
],
bindBiz:lableBiz.checkedLable
},
{
apiName:"删除会员标签",
subUrl:'/labledb/delmemberlable',
param:[
{key:"id", type:"String", desc:"用户id"},
{key:"lableId", type:"[String]", desc:"需要删除的标签Id"},
],
bindBiz:lableBiz.delMemberLable
},
// {
// apiName:"获取所有标签id",
// subUrl:'/labledb/getlable',
// param:[],
// bindBiz:lableBiz.getLable
// }
]
}
...@@ -266,6 +266,7 @@ export const Config = { ...@@ -266,6 +266,7 @@ export const Config = {
{key:"memberState", type:"Number", desc:"状态", isNull:true}, {key:"memberState", type:"Number", desc:"状态", isNull:true},
{key:"sheng", type:"String", desc:"省", isNull:true}, {key:"sheng", type:"String", desc:"省", isNull:true},
{key:"shi", type:"String", desc:"市", isNull:true}, {key:"shi", type:"String", desc:"市", isNull:true},
{key:"lableId", type:"[String]", desc:"标签Id", isNull:true},
{key:"pageNumber", type:"Number", desc:"当前页"} {key:"pageNumber", type:"Number", desc:"当前页"}
], ],
bindBiz:memberBiz.unitMemberList bindBiz:memberBiz.unitMemberList
...@@ -286,6 +287,7 @@ export const Config = { ...@@ -286,6 +287,7 @@ export const Config = {
{key:"memberState", type:"Number", desc:"状态", isNull:true}, {key:"memberState", type:"Number", desc:"状态", isNull:true},
{key:"sheng", type:"String", desc:"省", isNull:true}, {key:"sheng", type:"String", desc:"省", isNull:true},
{key:"shi", type:"String", desc:"市", isNull:true}, {key:"shi", type:"String", desc:"市", isNull:true},
{key:"lableId", type:"[String]", desc:"标签Id", isNull:true},
{key:"pageNumber", type:"Number", desc:"当前页"} {key:"pageNumber", type:"Number", desc:"当前页"}
], ],
bindBiz:memberBiz.individualMemberList bindBiz:memberBiz.individualMemberList
......
/**
* 消息活动通知
*/
import * as msgActivityBiz from "../../biz/member/msgActivity";
import { ACTIVITYTYPE } from "../../config/enum";
export const FirstName = '消息管理';
export const FirstRouter = '/manage/msgactivity';
export const Config = {
"消息通知":[
{
apiName:"消息列表",
subUrl:'/msgdb/msglist',
param:[
{key:"msgTitle", type:"String", desc:"消息标题", isNull:true},
{key:"effectiveStartTime", type:"Number", desc:"有效开始时间", isNull:true},
{key:"effectiveEndTime", type:"Number", desc:"有效结束时间", isNull:true},
{key:"pageNumber", type:"Number", desc:"当前页"}
],
bindBiz:msgActivityBiz.getMessageList
},
{
apiName:"新建消息",
subUrl:'/msgdb/createmsg',
param:[
{key:"lableId", type:"[String]", desc:"标签Id(消息对象)"},
{key:"msgTitle", type:"String", desc:"消息标题"},
{key:"effectiveTime", type:"Number", desc:"有效时间"},
{key:"msgContent", type:"String", desc:"消息内容"},
],
bindBiz:msgActivityBiz.addMessage
},
{
apiName:"修改消息",
subUrl:'/msgdb/updatemsg',
param:[
{
key:"form", type:"Object", sub:
{
lableId:{type:'[String]', desc:'标签Id(消息对象)'},
msgTitle:{type:'String', desc:'消息标题'},
effectiveTime:{type:'Number', desc:'有效时间'},
msgContent:{type:'String', desc:'消息内容'},
}
},
{
key:"msgId", type:"String", desc:"消息Id"
},
],
bindBiz:msgActivityBiz.updateMessage
},
{
apiName:"修改是否弹窗",
subUrl:'/msgdb/updateispop',
param:[
{key:"msgId", type:"String", desc:"消息Id"},
{key:"isPop", type:"Number", desc:"是否弹窗"},
],
bindBiz:msgActivityBiz.updateIsPop
},
{
apiName:"删除消息",
subUrl:'/msgdb/delmsg',
param:[
{key:"msgId", type:"String", desc:"消息Id"},
],
bindBiz:msgActivityBiz.delMessage
}
],
"活动通知":[
{
apiName:"活动列表",
subUrl:'/activitydb/activitylist',
param:[
{key:"activityName", type:"String", desc:"活动名称", isNull:true},
{key:"activityStartTime", type:"Number", desc:"活动开始时间", isNull:true},
{key:"activityEndTime", type:"Number", desc:"活动结束时间", isNull:true},
{key:"pageNumber", type:"Number", desc:"当前页"}
],
bindBiz:msgActivityBiz.getActivityList
},
{
apiName:"新建线上活动",
subUrl:'/activitydb/createactivity/upline',
param:[
{
key:"form", type:"Object", sub:
{
activityType:{type:'Number', desc:'活动类型'},
activityName:{type:'String', desc:'活动名称'},
enrollForm:{type:'String', desc:'报名表模板地址'},
activityAdd:{type:'String', desc:'活动地点'},
activityStartTime:{type:'Number', desc:'活动开始时间', notMustHave:true},
activityEndTime:{type:'Number', desc:'活动结束时间', notMustHave:true},
lableId:{type:'String', desc:'活动对象(标签Id)'},
enrollStartTime:{type:'Number', desc:'报名开始时间'},
enrollEndTime:{type:'Number', desc:'报名结束时间'},
activityContent:{type:'String', desc:'详细内容'},
}
},
],
bindBiz:msgActivityBiz.addActivity
},
{
apiName:"新建线下活动",
subUrl:'/activitydb/createactivity/downline',
param:[
{
key:"form", type:"Object", sub:
{
activityType:{type:'Number', desc:'活动类型'},
activityName:{type:'String', desc:'活动名称'},
enrollForm:{type:'String', desc:'报名表模板地址'},
activityAdd:{type:'String', desc:'活动地点'},
activityStartTime:{type:'Number', desc:'活动开始时间'},
activityEndTime:{type:'Number', desc:'活动结束时间'},
lableId:{type:'String', desc:'活动对象(标签Id)'},
enrollStartTime:{type:'Number', desc:'报名开始时间'},
enrollEndTime:{type:'Number', desc:'报名结束时间'},
activityContent:{type:'String', desc:'详细内容'},
}
},
],
bindBiz:msgActivityBiz.addActivity
},
{
apiName:"修改活动",
subUrl:'/activitydb/updateactivity',
param:[
{
key:"form", type:"Object", sub:
{
activityName:{type:'String', desc:'活动名称'},
enrollForm:{type:'String', desc:'报名表模板地址'},
activityAdd:{type:'String', desc:'活动地点'},
activityStartTime:{type:'Number', desc:'活动开始时间', notMustHave:true},
activityEndTime:{type:'Number', desc:'活动结束时间', notMustHave:true},
lableId:{type:'String', desc:'活动对象(标签Id)'},
enrollStartTime:{type:'Number', desc:'报名开始时间'},
enrollEndTime:{type:'Number', desc:'报名结束时间'},
activityContent:{type:'String', desc:'详细内容'},
}
},
{
key:"activityId", type:"String", desc:"活动Id"
},
],
bindBiz:msgActivityBiz.updateActivity
},
{
apiName:"删除活动",
subUrl:'/activitydb/delactivity',
param:[
{key:"activityId", type:"String", desc:"活动Id"},
],
bindBiz:msgActivityBiz.delActivity
},
{
apiName:"修改是否置顶",
subUrl:'/activitydb/updateistopup',
param:[
{key:"activityId", type:"String", desc:"活动Id"},
{key:"isTopUp", type:"Number", desc:"是否置顶状态"},
],
bindBiz:msgActivityBiz.updateIsTopUp
},
{
apiName:"活动报名人员列表",
subUrl:'/activitydb/enrolllist',
param:[
{key:"activityId", type:"String", desc:"活动Id"},
],
bindBiz:msgActivityBiz.enrollList
}
],
"会员个人页活动通知":[
{
apiName:"申请报名表",
subUrl:'/homepage/activityenroll',
param:[
{key:"activityId", type:"String", desc:"活动Id"},
{key:"enrollUrl", type:"String", desc:"报名表地址"}
],
bindBiz:msgActivityBiz.activityEnroll
},
{
apiName:"查看活动",
subUrl:'/homepage/seeactivity',
param:[],
bindBiz:msgActivityBiz.seeActivity
},
{
apiName:"查看更多活动列表",
subUrl:'/homepage/activitylist',
param:[
{key:"activityState", type:"Number", desc:"活动状态"},
],
bindBiz:msgActivityBiz.homeActivityList
},
]
}
...@@ -247,6 +247,32 @@ export const Config = { ...@@ -247,6 +247,32 @@ export const Config = {
param:[], param:[],
defaultParam:outPutConfig.AUDITINGCOLUMNS, defaultParam:outPutConfig.AUDITINGCOLUMNS,
bindBiz:publicBiz.setEnumInterface bindBiz:publicBiz.setEnumInterface
},
{
apiName:"获取所有标签id",
subUrl:'/lable',
param:[],
bindBiz:publicBiz.getLable
},
{
apiName:"消息对象固定类型",
subUrl:'/msglabletype',
param:[],
bindBiz:publicBiz.getNoticeObject
},
{
apiName:"是否弹窗",
subUrl:'/ispop',
param:[],
defaultParam:enumConfig.STATE,
bindBiz:publicBiz.setEnumInterface
},
{
apiName:"是否置顶",
subUrl:'/istopup',
param:[],
defaultParam:enumConfig.STATE,
bindBiz:publicBiz.setEnumInterface
} }
], ],
} }
...@@ -15,6 +15,9 @@ import * as costRouter from "./cost/router"; ...@@ -15,6 +15,9 @@ import * as costRouter from "./cost/router";
import * as officalWebsiteRouter from "./officalWebsite/router"; import * as officalWebsiteRouter from "./officalWebsite/router";
import * as orderRouter from "./order/router"; import * as orderRouter from "./order/router";
import * as outPutRouter from "./outPut/routers"; import * as outPutRouter from "./outPut/routers";
import * as labelRouter from "./lable/router";
import * as blacklistRouter from "./blackList/router";
import * as msgActivityRouter from "./msgActivity/router";
import * as asyncHandler from 'express-async-handler'; import * as asyncHandler from 'express-async-handler';
import { payCallback } from "../biz/member/cost"; import { payCallback } from "../biz/member/cost";
import { checkUser } from "../middleware/user"; import { checkUser } from "../middleware/user";
...@@ -25,12 +28,16 @@ export async function setRouter(httpServer){ ...@@ -25,12 +28,16 @@ export async function setRouter(httpServer){
if (Look) { if (Look) {
await getDoc(); 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(publicRouter.FirstName, publicRouter.Config, publicRouter.FirstRouter);//公用组件
// await initDoc(memberRouter.FirstName, memberRouter.Config, memberRouter.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(orderRouter.FirstName, orderRouter.Config, orderRouter.FirstRouter);//会费相关
// await initDoc(costRouter.FirstName, costRouter.Config, costRouter.FirstRouter);//支付 // await initDoc(costRouter.FirstName, costRouter.Config, costRouter.FirstRouter);//支付
// await initDoc(outPutRouter.FirstName, outPutRouter.Config, outPutRouter.FirstRouter);//导出路由 // await initDoc(outPutRouter.FirstName, outPutRouter.Config, outPutRouter.FirstRouter);//导出路由
// await initDoc(labelRouter.FirstName, labelRouter.Config, labelRouter.FirstRouter);//标签路由
// await initDoc("2.0", labelRouter.Config, labelRouter.FirstRouter);//标签路由
// await initDoc("2.0", blacklistRouter.Config, blacklistRouter.FirstRouter);//黑名单路由
await initDoc("2.0", msgActivityRouter.Config, msgActivityRouter.FirstRouter);//消息活动通知路由
} }
analysisRouter(httpServer, portalRouter.Config, portalRouter.FirstRouter, true);//网站编辑 analysisRouter(httpServer, portalRouter.Config, portalRouter.FirstRouter, true);//网站编辑
analysisRouter(httpServer, publicRouter.Config, publicRouter.FirstRouter, false);//公用组件 analysisRouter(httpServer, publicRouter.Config, publicRouter.FirstRouter, false);//公用组件
...@@ -39,6 +46,9 @@ export async function setRouter(httpServer){ ...@@ -39,6 +46,9 @@ export async function setRouter(httpServer){
analysisRouter(httpServer, orderRouter.Config, orderRouter.FirstRouter, true);//会费相关 analysisRouter(httpServer, orderRouter.Config, orderRouter.FirstRouter, true);//会费相关
analysisRouter(httpServer, costRouter.Config, costRouter.FirstRouter, true);//支付 analysisRouter(httpServer, costRouter.Config, costRouter.FirstRouter, true);//支付
analysisRouter(httpServer, outPutRouter.Config, outPutRouter.FirstRouter, true);//导出路由 analysisRouter(httpServer, outPutRouter.Config, outPutRouter.FirstRouter, true);//导出路由
analysisRouter(httpServer, labelRouter.Config, labelRouter.FirstRouter, true);//标签相关
analysisRouter(httpServer, blacklistRouter.Config, blacklistRouter.FirstRouter, true);//黑名单相关
analysisRouter(httpServer, msgActivityRouter.Config, msgActivityRouter.FirstRouter, true);//消息活动通知
} }
......
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