明树Git Lab

Commit b7ef98b1 authored by zfp1's avatar zfp1

update

parent 54333293
const errorMessage = require("../utils/errorMessage");
const { Op } = require("sequelize");
async function getMessageInfo(req, res, next) {
try {
if (!req.body.id) {
return res.sendError(errorMessage.resourceNotFound);
}
const message = await DB.Message.findOne({
where: { id: req.body.id, del: 0 },
include: [
{
model: DB.User,
as: 'creatorInfo',
attributes: ['id', 'name', 'avatar']
}
]
});
message.alreadyRead = message.alreadyRead || [];
message.alreadyRead.push(req.user.id);
await message.save();
return res.sendData(message);
} catch (error) {
next(error);
}
}
async function deleteMessage(req, res, next) {
try {
if (req.body.id) {
await DB.Message.update(
{ del: 1 },
{ where: { id: req.body.id } }
);
return res.sendData();
}
if (req.body.ids && Array.isArray(req.body.ids)) {
await DB.Message.update(
{ del: 1 },
{ where: { id: { [Op.in]: req.body.ids } } }
);
return res.sendData();
}
} catch (error) {
next(error);
}
}
/**
* 获取信息列表
* @param {*} req
* @param {*} res
* @param {*} next
* @returns
*/
async function getUserMessages(req, res, next) {
try {
const messages = await DB.Message.findAll({
where: {
receivers: { [Op.contains]: [req.user.id] },
del: 0
},
include: [
{
model: DB.User,
as: 'creatorInfo',
attributes: ['id', 'name', 'avatar']
}
],
raw: true,
order: [['createdAt', 'DESC']],
});
let newRet = [];
for (let index = 0; index < messages.length; index++) {
const element = messages[index];
element.alreadyRead = element.alreadyRead || [];
element.isRead = false;
if (element.alreadyRead.includes(req.user.id)) {
element.isRead = true;
}
newRet.push(element);
}
return res.sendData(newRet);
}
catch (error) {
next(error)
}
}
async function getMesCount(req, res, next) {
try {
const count = await DB.Message.count({
where: {
receivers: { [Op.contains]: [req.user.id] },
del: 0,
alreadyRead: { [Op.not]: {[Op.contains]: [req.user.id]} }
}
});
return res.sendData({ count });
} catch (error) {
next(error);
}
}
module.exports = {
getUserMessages,
getMesCount,
getMessageInfo,
deleteMessage,
};
\ No newline at end of file
......@@ -336,8 +336,10 @@ async function preJugProject(req, res, next) {
*/
if (buttonType === 'approve') {
await DB.Project.update({ projectLiuZhuanType: 3 }, { where: { id } });
//处理项目流转记录 及消息发送TODO:
} else {
await DB.Project.update({ projectLiuZhuanType: 1 }, { where: { id } });
//处理项目流转记录 及消息发送TODO:
}
return res.sendData();
......@@ -367,8 +369,10 @@ async function finalJugProject(req, res, next) {
*/
if (buttonType === 'approve') {
await DB.Project.update({ projectLiuZhuanType: 7 }, { where: { id } });
//处理项目流转记录 及消息发送TODO:
} else {
await DB.Project.update({ projectLiuZhuanType: 1 }, { where: { id } });
//处理项目流转记录 及消息发送TODO:
}
return res.sendData();
......
......@@ -10,6 +10,8 @@ const UserDepart = require("./model/system/userDepart");
const RequestLog = require("./model/system/requestLog");
const File = require("./model/system/file");
const Position = require("./model/system/position");
const Message = require("./model/system/message");
const FlowRecord = require("./model/system/flowRecord");
// 业务模型
const Project = require("./model/jt/project");
......@@ -61,6 +63,8 @@ global.DB = {
ProjectTzzjll,
ProjectTzzt,
ProjectXmtzze,
Message,
FlowRecord,
}
......@@ -174,3 +178,7 @@ ProjectTzzt.belongsTo(Project, { foreignKey: 'projectId' });
/**项目-项目投资总额 1:n */
Project.hasMany(ProjectXmtzze, { foreignKey: 'projectId', as: 'projectXmtzzes' });
ProjectXmtzze.belongsTo(Project, { foreignKey: 'projectId' });
/**项目-项目流转记录 */
Project.hasMany(FlowRecord, { foreignKey: 'projectId', as: 'flowRecords' });
FlowRecord.belongsTo(Project, { foreignKey: 'projectId' });
\ No newline at end of file
// models/flowRecord.js
const { DataTypes } = require('sequelize');
const sequelize = require('../index');
const User = require('./system/user');
const { act } = require('react');
const User = require('../system/user');
/**
* 记录流程动作记录
*/
......
......@@ -12,6 +12,8 @@ router.use('/file', fileRouter); // 文件上传下载
router.use('/project', require('./projectRouter.js')); // 项目管理
router.use('/resource', require('./resourceRouter.js')); // 资源管理
router.use('/message', require('./messageRouter.js')); // 消息管理
module.exports = router;
\ No newline at end of file
const express = require('express');
const router = express.Router();
const messageController = require('../controller/messageController');
/**
* 消息
*/
router.post('/getMesCount', messageController.getMesCount); //获取用户未读消息数量
router.post('/getUserMessages', messageController.getUserMessages); //用户获取自己的消息列表
router.post('/getMessageInfo', messageController.getMessageInfo); //获取消息详情
router.post('/deleteMessage', messageController.deleteMessage); //删除消息
module.exports = router;
\ No newline at end of file
......@@ -6,17 +6,15 @@ const resourceController = require('../controller/resourceController');
/**
* 资源库
*/
// router.post('/resource', resourceController.createResource);
router.post('/createResource', resourceController.createResource);
router.post('/deleteResource', resourceController.deleteResource);
router.post('/updateResource', resourceController.updateResource);
router.post('/listResource', resourceController.listResource);
// router.post('/getProjectFields', projectController.getProjectFields);
/**
* 资源库字段详情
*/
// router.post('/resourceInfo', resourceController.createResourceInfo);
router.post('/createResourceInfo', resourceController.createResourceInfo);
router.post('/deleteResourceInfo', resourceController.deleteResourceInfo);
router.post('/updateResourceInfo', resourceController.updateResourceInfo);
......
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