--- --- Generated by EmmyLua(https://github.com/EmmyLua) --- Created by . --- DateTime: 2025/9/25 08:19 --- 业务逻辑 对用户数据表进行数据表业务处理 local status = require("util.status") local resp = require("util.response") local userDao = require("dao.system.user") local validator = require("validator.system.user") local cjson = require("cjson.safe") local token = require("util.token") local perm = require("util.permissionfilter") local _M = {} --验证用户id与token中的用户id是否一致 local function getUserId() --获取请求头中的令牌数据 local auth_header = ngx.var.http_Authorization --验证数据的正确性 local retToken = token.authorizationToken(auth_header) --token前面已经进行验证,不需要进行判断 --验证成功获取用户id信息 local userid = retToken["body"]["payload"]["userid"] return userid end --获取所有用户信息 function _M.getSystemUsers(m) --获取登录的用户信息 --local userid = ngx.ctx.userid --local username = ngx.ctx.username local role = ngx.ctx.role --ngx.log(ngx.INFO, "userid:"..userid.." username:"..username.." role:"..role) --权限数据 local perms = ngx.ctx.perms --local method = m._method --local path = m._path --ngx.log(ngx.INFO, "path:"..path.." method:"..method) --判断当前接口用户和角色是否有权限 if perm:hasPermission(role, perms) == false then ngx.exit(ngx.HTTP_FORBIDDEN) end --获取页码和请求的数据量 local args = ngx.req.get_uri_args() local pageNum = args["pagenum"] or 1 local pageSize = args["pagesize"] or 10 local code, ret = userDao.getSystemUsers(pageNum, pageSize) local state = status.SUCCESS if code ~= 0 then state = status.DATA_IS_WRONG end resp: response(state, ret) end --根据用户id获取用户信息 function _M.getSystemUser(m) local role = ngx.ctx.role --权限数据 local perms = ngx.ctx.perms print("get getSystemUser:", role, perms) --判断当前接口用户和角色是否有权限 if perm:hasPermission(role, perms) == false then ngx.exit(ngx.HTTP_FORBIDDEN) end --获取登录的用户信息 local payload = ngx.var.uid local userid = getUserId() if userid ~= m.id then --非管理员情况下 ngx.log(ngx.WARN, "用户与使用token中的用户id不一致", userid, m.id) ngx.status = ngx.HTTP_NOT_ALLOWED ngx.exit(ngx.HTTP_NOT_ALLOWED) end local code, ret = userDao.getSystemUser(m.id) local state = status.SUCCESS if code ~= 0 then state = status.DATA_IS_WRONG end resp:response(state, ret[1]) end --根据用户id获取用户信息 function _M.addSystemUser(m) local role = ngx.ctx.role --权限数据 local perms = ngx.ctx.perms --判断当前接口用户和角色是否有权限 if perm:hasPermission(role, perms) == false then ngx.exit(ngx.HTTP_FORBIDDEN) end --读取请求体的数据 ngx.req.read_body() --获取请求数据 local body_data = ngx.req.get_body_data() -- 验证数据是否符合json local ok = validator.validateJson(body_data) --验证失败则返回 if not ok then resp:response(status.PARAM_NOT_COMPLETE) return end --ngx.say(body_data) local jsonData = cjson.decode(body_data) --ngx.say(jsonData) local code, ret = userDao.addSystemUser(jsonData) local state = status.SUCCESS if code ~= 0 then state = status.DATA_IS_WRONG end resp: response(state, ret) end --根据用户id删除用户信息 function _M.deleteSystemUser(m) local role = ngx.ctx.role --权限数据 local perms = ngx.ctx.perms --判断当前接口用户和角色是否有权限 if perm:hasPermission(role, perms) == false then ngx.exit(ngx.HTTP_FORBIDDEN) end local code, ret = userDao.deleteSystemUser(m.id) local state = status.SUCCESS if code ~= 0 then state = status.DATA_IS_WRONG end resp: response(state, ret) end --根据用户id删除用户信息 function _M.updateSystemUser(m) local role = ngx.ctx.role --权限数据 local perms = ngx.ctx.perms --判断当前接口用户和角色是否有权限 if perm:hasPermission(role, perms) == false then ngx.exit(ngx.HTTP_FORBIDDEN) end local userid = getUserId() if userid ~= m.id then ngx.log(ngx.WARN, "用户与使用token中的用户id不一致") ngx.exit(ngx.HTTP_NOT_ALLOWED) end --读取请求体的数据 ngx.req.read_body() --获取请求数据 local body_data = ngx.req.get_body_data() -- 验证数据是否符合json local ok = validator.validateJson(body_data) --验证失败则返回 if not ok then resp:response(status.PARAM_NOT_COMPLETE) return end --将数据更新到数据表中 local code, ret = userDao.updateSystemUser(m.id, cjson.decode(body_data)) local state = status.SUCCESS if code ~= 0 then state = status.DATA_IS_WRONG end resp: response(state, ret) end return _M