9. 基于Vue+Element+nodeJs+Express+MySql后台管理系统-后台周报接口编写

23 篇文章 0 订阅
22 篇文章 9 订阅

一、后台周报接口编写

在已有的controls文件夹,然后下面创建一个weekly.js文件,用来管理周报相关接口。

1. 引入所需文件

首先将需要用到的已封装的方法文件引入到weekly.js文件中

const $sql = require('../sql/sqlMap')
const $http = require('../sql/http')
const $time = require('../utils/time')

然后在定义一个名为weekly的Object类型的常量,并将各个接口函数作为Object的一个属性放到weekly常量里

const weekly = {}

接下来我们开始进行接口编写:

2. 添加周报

/*添加周报 start*/
add (req, res) {
  let params = req.body
  $http.userVerify(req, res, () => {
    let curTime = $time.formatTime()
    let userId = params.userId
    let startTime = params.startTime
    let endTime = params.endTime
    let title = params.title
    let thisWeekWork = params.thisWeekWork
    let nextWeekWork = params.nextWeekWork
    let collaboration = params.collaboration
    let create_time = curTime
    let update_time = curTime
    if(!startTime || !endTime || !title || !thisWeekWork || !nextWeekWork) $http.writeJson(res, {code: 2, message:'参数有误'})
    else {
      let sql = $sql.weekly.add
      let arrayParams = [userId, startTime, endTime, title, thisWeekWork, nextWeekWork, collaboration, create_time, update_time]
      $http.connPool(sql, arrayParams, (err, result) => {
        if(err) return $http.writeJson(res, {code:-2, message:'失败',errMsg: err})
        if(result.affectedRows != 1) return $http.writeJson(res, {code: 2, message:'添加失败'})
        return $http.writeJson(res, {code: 1, message: '添加周报成功'})
      })
    }
  })
}
/*添加周报 end*/

3. 更新周报信息

/*更新周报信息 start*/
updateInfo (req, res) {
  let params = req.body
  $http.userVerify(req, res, () => {
    let curTime = $time.formatTime()
    let id = params.id
    let startTime = params.startTime
    let endTime = params.endTime
    let title = params.title
    let thisWeekWork = params.thisWeekWork
    let nextWeekWork = params.nextWeekWork
    let collaboration = params.collaboration
    let update_time = curTime
    if(!id || !startTime || !endTime || !title || !thisWeekWork || !nextWeekWork) {
      $http.writeJson(res, {code: 2, message:'参数有误'})
    } else {
      let sql = $sql.weekly.updateInfo
      let arrayParams = [startTime, endTime, title, thisWeekWork, nextWeekWork, collaboration, update_time, id]
      $http.connPool(sql, arrayParams, (err, result) => {
        if(err) return $http.writeJson(res, {code:-2, message:'失败',errMsg: err})
        if(result.affectedRows != 1) return $http.writeJson(res, {code: 2, message:'更新失败'})
        return $http.writeJson(res, {code: 1, data: result, message: '更新周报成功'})
      })
    }
  })
}
/*更新周报信息 end*/

4. 更新周报状态

/*更新周报状态 start*/
updateState (req, res) {
  let params = req.body
  $http.userVerify(req, res, () => {
    let curTime = $time.formatTime()
    let id = params.id
    let state = !params.state ? '0' : params.state
    let update_time = curTime
    if(!id) {$http.writeJson(res, {code: 2, message:'参数有误'})}
    else {
      let sql = $sql.weekly.updateState
      let arrayParams = [state, update_time, id]
      $http.connPool(sql, arrayParams, (err, result) => {
        if(err) return $http.writeJson(res, {code:-2, message:'失败',errMsg: err})
        if(result.affectedRows != 1) return $http.writeJson(res, {code: 2, data: result, message:'更新周报状态失败'})
        return $http.writeJson(res, {code: 1, message: '更新周报状态成功'})
      })
    }
  })
}
/*更新周报状态 end*/

5. 获取周报信息

因涉及到时间格式问题,我这里按照需要创建了一个用于时间格式化的方法

// 格式化时间
function formatData(rows) {
  return rows.map(row => {
    if(row.create_time) {
      row.create_time = $time.formatTime(row.create_time)
    }
    if(row.update_time) {
      row.update_time = $time.formatTime(row.update_time)
    }
    if(row.startTime) {
      row.startTime = $time.formatYmd(row.startTime)
    }
    if(row.endTime) {
      row.endTime = $time.formatYmd(row.endTime)
    }
    return Object.assign({}, row)
  })
}

再进行获取周报信息接口编写  

detail (req, res) {
  let params = req.body
  $http.userVerify(req, res, () => {
    let userId = params.userId
    let id = params.id
    if(!id) {$http.writeJson(res, {code: 2, message:'参数有误'})}
    else {
      let sql = $sql.weekly.getDetail
      let arrayParams = [id]
      $http.connPool(sql, arrayParams, (err, result) => {
        if(err) {return $http.writeJson(res, {code:-2, message:'失败',errMsg: err})}
        if(result.length != 1) {
          return $http.writeJson(res, {code: 2, message:'获取周报信息不存在'})
        } else {
          let resultData = formatData(result)[0]
          return $http.writeJson(res, {code: 1, data: resultData, message: '获取周报信息成功'})
        }
      })
    }
  })
}

6. 获取周报列表

/*获取周报列表 start*/
list (req, res) {
  let params = req.body
  $http.userVerify(req, res, () => {
    let sqlSelectTotal = $sql.weekly.selectTotal
    let sqlSelectList= $sql.weekly.selectList
    let userId = params.userId
    let userType = params.userType
    let searchId = params.searchId
    let searchUserId = params.searchUserId
    let searchTitle = params.searchTitle
    let searchStartTime = params.searchStartTime
    let searchEndTime = params.searchEndTime

    params.pageSize = !params.pageSize ? 10 : params.pageSize
    // 分页查询入参 start
    let limitFirst = (params.pageNum-1)*params.pageSize;
    let limitLast = params.pageSize;
    // 分页查询入参 end

    if(userType!=1){
      sqlSelectTotal += " and userId = "+userId
      sqlSelectList += " and userId = "+userId
    }else{
      if(searchUserId) {
        sqlSelectTotal += " and userId = "+searchUserId
        sqlSelectList += " and userId = "+searchUserId
      }
    }

    if(searchId){
      sqlSelectTotal += " and weekly.id = "+searchId
      sqlSelectList += " and weekly.id = "+searchId
    }
    if(searchTitle){
      sqlSelectTotal += " and weekly.title like '%"+searchTitle+"%'"
      sqlSelectList += " and weekly.title like '%"+searchTitle+"%'"
    }
    if(searchStartTime){
      sqlSelectTotal += " and weekly.create_time >= "+searchStartTime
      sqlSelectList += " and weekly.create_time >= "+searchStartTime
    }
    if(searchEndTime){
      sqlSelectTotal += " and weekly.create_time <= "+searchEndTime
      sqlSelectList += " and weekly.create_time <= "+searchEndTime
    }

    let sql= sqlSelectTotal + '; ' + sqlSelectList
    sql += " order by weekly.id desc limit ?,?"; // id倒序排
    let arrayParams = [limitFirst, limitLast]

    $http.connPool(sql, arrayParams, (err, result) => {
      if(err) {
        return $http.writeJson(res, {code:-2, message:'失败',errMsg: err})
      } else {
        let resultData = {}
        resultData.totalCount = result[0][0]['totalCount']
        resultData.list = formatData(result[1])
        return $http.writeJson(res, {code: 1, data: resultData, message: '获取周报列表成功'})
      }
    })
  })
}
/*获取周报列表 end*/

7. 导出整个weekly模块

module.exports = weekly

二、项目链接

周报管理系统git仓库链接: nodeJs工作周报后台管理系统OA模板

程序员接单_竹立荷塘的博客-CSDN博客

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值