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.
 
 
 
 

100 lines
2.5 KiB

'use strict'
const moment = require('moment')
const { QueryTypes } = require('sequelize');
const Hex = require('crypto-js/enc-hex');
const MD5 = require('crypto-js/md5');
async function getProjectType (ctx, next) {
try {
const models = ctx.fs.dc.models
const sequelize = ctx.fs.dc.orm;
const { } = ctx.query
const res = await sequelize.query(`select distinct type from project`, { type: QueryTypes.SELECT });
ctx.body = res
ctx.status = 200
} catch (error) {
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`)
ctx.status = 400
ctx.body = {
message: '获取项目类型失败',
}
}
}
async function getProjectPublishList (ctx, next) {
try {
const models = ctx.fs.dc.models
const { limit, page } = ctx.query
let options = {
where: {},
}
if (limit) {
options.limit = Number(limit)
}
if (page && limit) {
options.offset = Number(page) * Number(limit)
}
const res = await models.ProjectUser.findAndCountAll(options)
ctx.body = res
ctx.status = 200
} catch (error) {
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`)
ctx.status = 400
ctx.body = {
message: '获取项目发布列表失败',
}
}
}
async function postProjectPublish (ctx, next) {
let message = '新增项目失败'
try {
const models = ctx.fs.dc.models
const data = ctx.request.body
const { id, password } = data
if (id) {
message = '修改项目失败'
await models.ProjectUser.update(data, { where: { id } })
} else {
let passwords = Hex.stringify(MD5(password));
await models.ProjectUser.create({ ...data, password: passwords, del: false })
}
ctx.status = 204
} catch (error) {
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`)
ctx.status = 400
ctx.body = {
message: message
}
}
}
async function delProjectPublish (ctx, next) {
try {
const models = ctx.fs.dc.models
const { id } = ctx.params
await models.ProjectUser.destroy({ where: { id } })
ctx.status = 204
} catch (error) {
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`)
ctx.status = 400
ctx.body = {
message: '删除项目失败'
}
}
}
module.exports = {
getProjectType,
getProjectPublishList,
postProjectPublish,
delProjectPublish
}