You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
145 lines
3.5 KiB
145 lines
3.5 KiB
1 year ago
|
'use strict';
|
||
|
const moment = require('moment')
|
||
|
|
||
|
|
||
|
|
||
|
async function getAdvisoryNotices (ctx) {
|
||
|
try{
|
||
|
const models = ctx.fs.dc.models
|
||
|
const { limit, page, name,home } = ctx.query
|
||
|
let options
|
||
|
if(home==='true'){
|
||
|
options = {
|
||
|
where: {state:2},
|
||
|
order: [['publish_time', 'desc']],
|
||
|
limit: 1,
|
||
|
}
|
||
|
}else if(home==='false'){
|
||
|
options = {
|
||
|
where: {state:2},
|
||
|
order: [['id', 'asc']],
|
||
|
}
|
||
|
}else{
|
||
|
options = {
|
||
|
where: {},
|
||
|
order: [['id', 'asc']],
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (name) {
|
||
|
options.where.name = { $like: `%${name}%` };
|
||
|
}
|
||
|
if (limit) {
|
||
|
options.limit = Number(limit);
|
||
|
}
|
||
|
if (page && limit) {
|
||
|
options.offset = Number(page) * Number(limit);
|
||
|
}
|
||
|
const advisoryNoticeList = await models.AdvisoryNotice.findAndCountAll(options)
|
||
|
ctx.status = 200;
|
||
|
ctx.body = advisoryNoticeList
|
||
|
}catch(error){
|
||
|
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`);
|
||
|
ctx.status = 400;
|
||
|
ctx.body = {
|
||
|
"message": "获取资讯公告失败"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
async function addOrUpdateAdvisoryNotice(ctx){
|
||
|
const { id, title,content,attachments } = ctx.request.body
|
||
|
try{
|
||
|
if(id){
|
||
|
// 更新
|
||
|
await ctx.fs.dc.models.AdvisoryNotice.update({
|
||
|
title,
|
||
|
content,
|
||
|
attachments,
|
||
|
}, {
|
||
|
where: {
|
||
|
id
|
||
|
}
|
||
|
})
|
||
|
ctx.status = 200;
|
||
|
ctx.body = {
|
||
|
message: '更新资讯公告成功'
|
||
|
}
|
||
|
}else{
|
||
|
//新增
|
||
|
await ctx.fs.dc.models.AdvisoryNotice.create({
|
||
|
title,
|
||
|
content,
|
||
|
attachments,
|
||
|
state:1
|
||
|
})
|
||
|
ctx.status = 200;
|
||
|
ctx.body = {
|
||
|
message: '新增资讯公告成功'
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
}catch(error){
|
||
|
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`);
|
||
|
ctx.status = 400;
|
||
|
ctx.body = {
|
||
|
"message": id?'编辑资讯公告失败':'新增资讯公告失败'
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
async function delAdvisoryNotice(ctx){
|
||
|
try{
|
||
|
const { id } = ctx.params
|
||
|
await ctx.fs.dc.models.AdvisoryNotice.destroy({
|
||
|
where: {
|
||
|
id
|
||
|
}
|
||
|
})
|
||
|
ctx.status = 200;
|
||
|
ctx.body = {
|
||
|
message: '删除资讯公告成功'
|
||
|
}
|
||
|
|
||
|
}catch(error){
|
||
|
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`);
|
||
|
ctx.status = 400;
|
||
|
ctx.body = {
|
||
|
"message": "删除资讯公告失败"
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|
||
|
//上架下架
|
||
|
async function updateAdvisoryNoticeState(ctx){
|
||
|
const { id } = ctx.params
|
||
|
const { msg ,publishTime} = ctx.request.body
|
||
|
try{
|
||
|
await ctx.fs.dc.models.AdvisoryNotice.update({
|
||
|
state:msg==='发布'?2:3,
|
||
|
publishTime:msg==='发布'?moment().format('YYYY-MM-DD HH:mm:ss'):publishTime,
|
||
|
},{where:{id}})
|
||
|
|
||
|
ctx.status = 204
|
||
|
|
||
|
}catch(error){
|
||
|
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`);
|
||
|
ctx.status = 400;
|
||
|
ctx.body = {
|
||
|
"message": `${msg}公告失败`
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
module.exports = {
|
||
|
getAdvisoryNotices,
|
||
|
addOrUpdateAdvisoryNotice,
|
||
|
delAdvisoryNotice,
|
||
|
updateAdvisoryNoticeState
|
||
|
|
||
|
}
|
||
|
|