123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414 |
- local skynet = require "skynet"
- local s = require "service"
- local tools = require "tools"
- local cjson = require "cjson"
- local mysql = require "skynet.db.mysql"
- local runconfig = require("run_config")
- local back_response = require "back_response"
- local db = nil
- --数据库
- --数据库end
- --接口
- s.resp.admin_login = function(msg_body,fd)
- local isOk,key = tools.checkData({"account","password"},msg_body)
- if not isOk then
- return tools.response(fd,200,cjson.encode({code=9001,msg = string.format("缺少字段: '%s'.", key)}))
- end
- skynet.error("msg_body")
- if msg_body.account == "zhuoyueweizhong2024" and msg_body.password == "zywz123" then
- return tools.response(fd,200,cjson.encode({code=10000,msg = "成功!",data={user_name="卓越微众",user_id=-1,info="{}",group_id=-1,permit_id=-1}}))
- else
- local isok,user_data = skynet.call("dbmgr","lua","on_recv","verify",msg_body)
- if not isok then
- return tools.response(fd,200,cjson.encode({code=10001,msg = "登陆失败,账号密码错误!"}))
- end
- return tools.response(fd,200,cjson.encode({code=10000,msg = "成功!",data={user_name=user_data.name,user_id=user_data.id,info=user_data.user_info,group_id=user_data.group_id,permit_id=user_data.permit_id}}))
- end
- tools.dump(msg_body)
- end
- --添加用户
- s.resp.add_user = function(msg_body,fd)
- local isOk,key = tools.checkData({"account","password","user_name","group_id","permit_id"},msg_body)
- if not isOk then
- return tools.response(fd,200,cjson.encode({code=9001,msg = string.format("缺少字段: '%s'.", key)}))
- end
- local user_data = nil
- isOk,user_data = skynet.call("dbmgr","lua","on_recv","select_user_by_account",msg_body.account)
- if isOk then
- return tools.response(fd,200,string.format("用户 %s 已存在",msg_body.account))
- end
- isOk = skynet.call("dbmgr","lua","on_recv","add_new_user",msg_body)
- if not isOk then
- return tools.response(fd,200,"创建失败!")
- end
- return tools.response(fd,200,cjson.encode({code=10000,msg = "创建成功!"}))
- end
- --修改用户
- s.resp.modify_user = function(msg_body,fd)
- local isOk,key = tools.checkData({"user_id","modify_password","modify_permissions_id","modify_group_id","is_ban","user_name"},msg_body)
- if not isOk then
- return tools.response(fd,200,cjson.encode({code=9001,msg = string.format("缺少字段: '%s'.", key)}))
- end
- function action(isOk)
- if isOk then
- return tools.response(fd,200,cjson.encode({code=10000,msg = "修改用户成功!"}))
- end
- return tools.response(fd,200,cjson.encode({code=10001,msg = "修改用户失败!"}))
- end
- local user_info = "{}"
- if msg_body.user_info~=nil then
- user_info = msg_body.user_info
- end
- local sql = string.format("UPDATE users SET password ='%s' ,group_id = %d ,permit_id = %d , is_ban = %d , name = '%s' ,user_info = '%s' WHERE id = %d ",msg_body.modify_password,msg_body.modify_group_id,msg_body.modify_permissions_id,msg_body.is_ban,msg_body.user_name,user_info,msg_body.user_id)
- db:query(sql)
- skynet.error(sql)
- action(true)
- end
- --获取用户列表
- s.resp.get_user_list = function(msg_body,fd)
- local isOk,key = tools.checkData({"page","count"},msg_body)
- if not isOk then
- return tools.response(fd,200,cjson.encode({code=9001,msg = string.format("缺少字段: '%s'.", key)}))
- end
- function action(isOk,list)
- local error_json = '{"code": 10000, "msg": "获取用户列表失败", "data": [] }'
- if isOk then
- local _list = {}
- local total_count = 0
- list ,total_count = tools.getPageData(msg_body.page,msg_body.count,list)
- if #list<=0 then
- return tools.response(fd,200,error_json)
- end
- return tools.response(fd,200,cjson.encode({code=10000,msg = "获取用户列表成功",data=list}))
- end
- return tools.response(fd,200,error_json)
- end
- local sql = string.format("select * from users")
- local res = db:query(sql)
- if res and #res > 0 then
- local tab = {}
- if #res == 1 then
- tab[1] = tools.getDbResData(res)
- else
- tab = tools.getDbResData(res)
- end
- action(true,tab)
- skynet.error("Found data:")
- else
- action(false,nil)
- skynet.error("No data found.")
- end
- end
- --添加权限
- s.resp.add_permissions = function(msg_body,fd)
- local isOk,key = tools.checkData({"permissions_name","permissions_describe","permissions_json"},msg_body)
- if not isOk then
- return tools.response(fd,200,cjson.encode({code=9001,msg = string.format("缺少字段: '%s'.", key)}))
- end
- function action(isOk)
- if isOk then
- return tools.response(fd,200,cjson.encode({code=10000,msg = "添加权限成功!"}))
- end
- return tools.response(fd,200,cjson.encode({code=10001,msg = "添加权限失败!"}))
- end
- local permissions_json = msg_body.permissions_json
- local sql = string.format("INSERT INTO permissions_list_tab (permissions_name, permissions_describe, info) VALUES ('%s','%s','%s')",msg_body.permissions_name,msg_body.permissions_describe,permissions_json)
- local res = db:query(sql)
- skynet.error(sql)
- action(true)
- end
- --修改权限
- s.resp.modify_permissions = function(msg_body,fd)
- local isOk,key = tools.checkData({"permissions_id","modify_permissions_name","modify_permissions_describe","modify_permissions_json"},msg_body)
- if not isOk then
- return tools.response(fd,200,cjson.encode({code=9001,msg = string.format("缺少字段: '%s'.", key)}))
- end
- function action(isOk)
- if isOk then
- return tools.response(fd,200,cjson.encode({code=10000,msg = "修改权限权限成功!"}))
- end
- return tools.response(fd,200,cjson.encode({code=10001,msg = "修改权限权限失败!"}))
- end
- local permissions_json = msg_body.modify_permissions_json
- -- skynet.error("json",msg_body.modify_permissions_json)
- local sql = string.format("UPDATE permissions_list_tab SET permissions_name ='%s' ,permissions_describe ='%s' , info ='%s' WHERE id = %d ",msg_body.modify_permissions_name,msg_body.modify_permissions_describe,permissions_json,msg_body.permissions_id)
- db:query(sql)
- skynet.error(sql)
- action(true)
- end
- --获取权限列表
- s.resp.get_permissions_list = function(msg_body,fd)
- local isOk,key = tools.checkData({"page","count"},msg_body)
- if not isOk then
- return tools.response(fd,200,cjson.encode({code=9001,msg = string.format("缺少字段: '%s'.", key)}))
- end
- function action(isOk,list)
- local error_json = '{"code": 10000, "msg": "获取权限列表失败", "data": [] }'
- if isOk then
- local _list = {}
- local total_count = 0
- list ,total_count = tools.getPageData(msg_body.page,msg_body.count,list)
- if #list<=0 then
- return tools.response(fd,200,error_json)
- end
- return tools.response(fd,200,cjson.encode({code=10000,msg = "获取权限列表成功",data=list,total_count=total_count}))
- end
- return tools.response(fd,200,error_json)
- end
- local sql = string.format("select * from permissions_list_tab")
- local res = db:query(sql)
- if res and #res > 0 then
- local tab = {}
- if #res == 1 then
- tab[1] = tools.getDbResData(res)
- else
- tab = tools.getDbResData(res)
- end
- action(true,tab)
- skynet.error("Found data:")
- else
- action(false,nil)
- skynet.error("No data found.")
- end
- end
- --添加部门
- s.resp.add_group = function(msg_body,fd)
- local isOk,key = tools.checkData({"group_name","group_describe","info"},msg_body)
- if not isOk then
- return tools.response(fd,200,cjson.encode({code=9001,msg = string.format("缺少字段: '%s'.", key)}))
- end
- function action(isOk)
- if isOk then
- return tools.response(fd,200,cjson.encode({code=10000,msg = "添加部门成功!"}))
- end
- return tools.response(fd,200,cjson.encode({code=10001,msg = "添加部门失败!"}))
- end
- local info = "{}"
- local sql = string.format("INSERT INTO group_list_tab (group_name, group_describe, info) VALUES ('%s','%s','%s')",msg_body.group_name,msg_body.group_describe,info)
- local res = db:query(sql)
- skynet.error(sql)
- action(true)
- end
- --修改部门
- s.resp.modify_group = function(msg_body,fd)
- local isOk,key = tools.checkData({"group_id","modify_name","modify_describe","info"},msg_body)
- if not isOk then
- return tools.response(fd,200,cjson.encode({code=9001,msg = string.format("缺少字段: '%s'.", key)}))
- end
- function action(isOk)
- if isOk then
- return tools.response(fd,200,cjson.encode({code=10000,msg = "修改权限权限成功!"}))
- end
- return tools.response(fd,200,cjson.encode({code=10001,msg = "修改权限权限失败!"}))
- end
- local info = "{}"
- local sql = string.format("UPDATE group_list_tab SET group_name ='%s' ,group_describe ='%s' , info ='%s' WHERE id = %d ",msg_body.modify_name,msg_body.modify_describe,info,msg_body.group_id)
- db:query(sql)
- action(true)
- end
- --获取部门列表
- s.resp.get_group_list = function(msg_body,fd)
- local isOk,key = tools.checkData({"page","count"},msg_body)
- if not isOk then
- return tools.response(fd,200,cjson.encode({code=9001,msg = string.format("缺少字段: '%s'.", key)}))
- end
- function action(isOk,list)
- local error_json = '{"code": 10000, "msg": "获取部门列表失败", "data": [] }'
- if isOk then
- local _list = {}
- local total_count = 0
- list ,total_count = tools.getPageData(msg_body.page,msg_body.count,list)
- if #list<=0 then
- return tools.response(fd,200,error_json)
- end
- return tools.response(fd,200,cjson.encode({code=10000,msg = "获取部门列表成功",data=list}))
- end
- return tools.response(fd,200,error_json)
- end
- local sql = string.format("select * from group_list_tab")
- local res = db:query(sql)
- if res and #res > 0 then
- local tab = {}
- if #res == 1 then
- tab[1] = tools.getDbResData(res)
- else
- tab = tools.getDbResData(res)
- end
- action(true,tab)
- skynet.error("Found data:")
- else
- action(false,nil)
- skynet.error("No data found.")
- end
- end
- --修改分类
- s.resp.modify_classification = function(msg_body,fd)
- local isOk,key = tools.checkData({"info"},msg_body)
- if not isOk then
- return tools.response(fd,200,cjson.encode({code=9001,msg = string.format("缺少字段: '%s'.", key)}))
- end
- function action(isOk)
- if isOk then
- return tools.response(fd,200,cjson.encode({code=10000,msg = "修改权限权限成功!"}))
- end
- return tools.response(fd,200,cjson.encode({code=10001,msg = "修改权限权限失败!"}))
- end
- local info = msg_body.info
- local sql = string.format("UPDATE classification_list_tab SET info ='%s' WHERE self_id = 1 ",info)
- -- skynet.error("sql",sql)
- db:query(sql)
- action(true)
- end
- --给用户添加可分享的用户
- s.resp.add_user_share = function(msg_body,fd)
-
- end
- --获取用户可分享的用户列表
- s.resp.get_user_share_list = function(msg_body,fd)
-
- end
- local function search_video_by_id_list(id_list,call_back)
- local listToFind= {}
- for i = 1, #id_list, 1 do
- table.insert(listToFind,i,id_list[i].id)
- end
- local findString = table.concat(listToFind, ',')
- local sql = string.format("SELECT * FROM generate_video_list_tab WHERE id IN (%s)", findString)
- local res = db:query(sql)
- if res and #res > 0 then
- local tab = {}
- if #res == 1 then
- tab[1] = tools.getDbResData(res)
- else
- tab = tools.getDbResData(res)
- end
- call_back(tab)
- else
- call_back({})
- end
- end
- --生成视频查询
- s.resp.search_video = function(msg_body,fd)
- local isOk,key = tools.checkData({"page",
- "count",
- "video_stype",
- "search_book_name",
- "search_user_id","start_time_date","end_time_date"},msg_body)
- if not isOk then
- return tools.response(fd,200,cjson.encode({code=9001,msg = string.format("缺少字段: '%s'.", key)}))
- end
- function action(isOk,id_list)
- local error_json = '{"code": 10000, "msg": "生成视频查询", "data": [] }'
- if isOk then
- local _list = {}
- local total_count = 0
- _list ,total_count = tools.getPageData(msg_body.page,msg_body.count,id_list)
- if #_list<=0 then
- return tools.response(fd,200,error_json)
- end
- skynet.fork(search_video_by_id_list,_list,function(data_list)
- tools.response(fd,200,cjson.encode({code=10000,msg = "生成视频查询",data=data_list,total_count=total_count}))
- end)
- return
- end
- return tools.response(fd,200,error_json)
- end
- local param = ""
- if msg_body.search_book_name ~= "" then
- param = param .." AND book_name = ".."'"..msg_body.search_book_name.."'"
- end
- if msg_body.video_stype ~= "" then
- param = param .." AND video_stype = "..msg_body.video_stype
- end
- if msg_body.search_user_id ~= "" then
- param = param .." AND user_id = "..msg_body.search_user_id
- end
- -- local sql = "SELECT * FROM generate_video_list_tab WHERE create_time BETWEEN '" .. start_time .. "' AND '" .. end_time .. "'".." AND video_state=1"
- local sql = "SELECT id FROM generate_video_list_tab WHERE DATE(create_time) >= DATE(FROM_UNIXTIME(" .. (msg_body.start_time_date / 1000) .. ")) AND DATE(create_time) <= DATE(FROM_UNIXTIME(" .. (msg_body.end_time_date / 1000) .. "))".." AND video_state=1"..param
- -- skynet.error("sql",sql)
- local res = db:query(sql)
- if res and #res > 0 then
- local tab = {}
- if #res == 1 then
- tab[1] = tools.getDbResData(res)
- else
- tab = tools.getDbResData(res)
- end
- action(true,tab)
- skynet.error("Found data:")
- else
- action(false,nil)
- skynet.error("No data found.")
- end
- end
- --接口end
- s.resp.on_recv = function (source, fd, msg_id, msg_body)
- skynet.error("接收一后台消息 ",msg_id)
- -- tools.dump(msg_body)
- local func = string.gsub(msg_id, '/back/', '')
- if s.resp[func] ~=nil then
- msg_body = cjson.decode(msg_body)
- return s.resp[func](msg_body,fd)
- end
- return tools.response(fd,200,string.format("接口 %s 不存在",func))
- end
- s.init = function()
- if runconfig.is_debug then
- db=mysql.connect({
- host=runconfig.db_debug_config.db_tost,
- port=runconfig.db_debug_config.db_port,
- database=runconfig.db_debug_config.db_name,
- user=runconfig.db_debug_config.db_user,
- password=runconfig.db_debug_config.db_pw,
- max_packet_size = 1024 * 1024,
- on_connect = nil
- })
- else
- db=mysql.connect({
- host=runconfig.db_release_config.db_tost,
- port=runconfig.db_release_config.db_port,
- database=runconfig.db_release_config.db_name,
- user=runconfig.db_release_config.db_user,
- password=runconfig.db_release_config.db_pw,
- max_packet_size = 1024 * 1024,
- on_connect = nil
- })
- end
- if not db then
- skynet.error("failed to connect")
- skynet.exit()
- else
- skynet.error(" config success to connect to mysql server")
- skynet.error(" 初始化后台服务成功!")
- end
- end
- s.start(...)
|