UNPKG

cxos-node-frame

Version:

适用于中小型企业项目快速全栈开发框架

127 lines (115 loc) 3.45 kB
'use strict' // ================================================ // PS.请不要把这里的接口暴露APP用户角色使用,仅能给后台管理人员使用。 // 除非开发的系统安全性很低的情况下可适当放出查询业务相关接口,保存数据的接口一定不要暴露!!!! // 除非你不想干了!!!! // ================================================ module.exports = (builder) => { const RestAPI = require("../base/restapi")() const BaseService = require('../service/baseService')(builder) const JWTUtils = require("../utils/jwtUtils")(builder) /** * 顶级controller层 */ class BaseController { /** * 获取当前操作用户信息 * @param ctx * @returns {{}|*} */ getCurrentUser(ctx){ return JWTUtils.verify(ctx.header['authorization'] || ctx.query['Authorization']) } /** * 获取当前操作用户ID * @param cxt * @returns {string|*} */ getCurrentUserId(cxt){ const user = this.getCurrentUser(cxt) if (user) return user.id return '' } /** * 根据ID和表名称取数据 * @param ctx * @param next * @returns {Promise<void>} */ async getById(ctx, next) { const { id, _t } = ctx.request.body const result = await new BaseService().getById(id, _t) ctx.body = JSON.stringify(new RestAPI(result)) } /** * 根据ID和表名称删除数据 * @param ctx * @param next * @returns {Promise<void>} */ async removeById(ctx, next) { const { id, _t } = ctx.request.body const result = await new BaseService().removeById(id, _t) ctx.body = JSON.stringify(new RestAPI(result)) } /** * 根据ID数组和表名称批量删除数据 * @param ctx * @param next * @returns {Promise<void>} */ async removeByIds(ctx, next) { const { ids, _t } = ctx.request.body const result = await new BaseService().removeByIds(ids, _t) ctx.body = JSON.stringify(new RestAPI(result)) } /** * 保存数据 * @param ctx * @param next * @returns {Promise<void>} */ async saveOrUpdate(ctx, next) { const userId = new BaseController().getCurrentUserId(ctx) const _t = ctx.request.body['_t'] const result = await new BaseService().saveOrUpdate(ctx.request.body, _t, userId) ctx.body = JSON.stringify(new RestAPI(result)) } /** * 批量保存数据 * @param ctx * @param next * @returns {Promise<void>} */ async saveOrUpdateBatch(ctx,next){ const userId = new BaseController().getCurrentUserId(ctx) const _t = ctx.request.body['_t'] const datas = ctx.request.body['datas'] const result = await new BaseService().saveOrUpdateBatch(datas, _t, userId) ctx.body = JSON.stringify(new RestAPI(result)) } /** * 执行单表分页 * @param ctx * @param next * @returns {Promise<void>} */ async fetchList(ctx, next) { const body = ctx.request.body const result = await new BaseService().fetchList(body) ctx.body = JSON.stringify(new RestAPI(result)) } /** * 执行单表查询列表 * @param ctx * @param next * @returns {Promise<void>} */ async findList(ctx, next) { const body = ctx.request.body const result = await new BaseService().findList(body) ctx.body = JSON.stringify(new RestAPI(result)) } } return BaseController }