init.lua 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304
  1. local skynet = require "skynet"
  2. local s = require "service"
  3. local tools = require "tools"
  4. local cjson = require "cjson"
  5. local mysql = require "skynet.db.mysql"
  6. local runconfig = require("run_config")
  7. local back_response = require "back_response"
  8. local db = nil
  9. --数据库
  10. --数据库end
  11. --接口
  12. s.resp.admin_login = function(msg_body,fd)
  13. local isOk,key = tools.checkData({"account","password"},msg_body)
  14. if not isOk then
  15. return tools.response(fd,200,cjson.encode({code=9001,msg = string.format("缺少字段: '%s'.", key)}))
  16. end
  17. skynet.error("msg_body")
  18. if msg_body.account == "zhuoyueweizhong2024" and msg_body.password == "zywz123" then
  19. return tools.response(fd,200,cjson.encode({code=10000,msg = "成功!",data={user_name="卓越微众"}}))
  20. else
  21. return tools.response(fd,200,cjson.encode({code=10001,msg = "登陆失败,密码错误!"}))
  22. end
  23. tools.dump(msg_body)
  24. end
  25. --添加用户
  26. s.resp.add_user = function(msg_body,fd)
  27. local isOk,key = tools.checkData({"account","password","user_name","group_id","permit_id"},msg_body)
  28. if not isOk then
  29. return tools.response(fd,200,cjson.encode({code=9001,msg = string.format("缺少字段: '%s'.", key)}))
  30. end
  31. local user_data = nil
  32. isOk,user_data = skynet.call("dbmgr","lua","on_recv","select_user_by_account",msg_body.account)
  33. if isOk then
  34. return tools.response(fd,200,string.format("用户 %s 已存在",msg_body.account))
  35. end
  36. isOk = skynet.call("dbmgr","lua","on_recv","add_new_user",msg_body)
  37. if not isOk then
  38. return tools.response(fd,200,"创建失败!")
  39. end
  40. return tools.response(fd,200,cjson.encode({code=10000,msg = "创建成功!"}))
  41. end
  42. --修改用户
  43. s.resp.modify_user = function(msg_body,fd)
  44. local isOk,key = tools.checkData({"user_id","modify_password","modify_permissions_id","modify_group_id","is_ban","user_name"},msg_body)
  45. if not isOk then
  46. return tools.response(fd,200,cjson.encode({code=9001,msg = string.format("缺少字段: '%s'.", key)}))
  47. end
  48. function action(isOk)
  49. if isOk then
  50. return tools.response(fd,200,cjson.encode({code=10000,msg = "修改用户成功!"}))
  51. end
  52. return tools.response(fd,200,cjson.encode({code=10001,msg = "修改用户失败!"}))
  53. end
  54. local sql = string.format("UPDATE users SET password ='%s' ,group_id = %d ,permit_id = %d , is_ban = %d , name = '%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,msg_body.user_id)
  55. db:query(sql)
  56. skynet.error(sql)
  57. action(true)
  58. end
  59. --获取用户列表
  60. s.resp.get_user_list = function(msg_body,fd)
  61. local isOk,key = tools.checkData({"page","count"},msg_body)
  62. if not isOk then
  63. return tools.response(fd,200,cjson.encode({code=9001,msg = string.format("缺少字段: '%s'.", key)}))
  64. end
  65. function action(isOk,list)
  66. local error_json = '{"code": 10000, "msg": "获取用户列表失败", "data": [] }'
  67. if isOk then
  68. local _list = {}
  69. local total_count = 0
  70. list ,total_count = tools.getPageData(msg_body.page,msg_body.count,list)
  71. if #list<=0 then
  72. return tools.response(fd,200,error_json)
  73. end
  74. return tools.response(fd,200,cjson.encode({code=10000,msg = "获取用户列表成功",data=list}))
  75. end
  76. return tools.response(fd,200,error_json)
  77. end
  78. local sql = string.format("select * from users")
  79. local res = db:query(sql)
  80. if res and #res > 0 then
  81. local tab = {}
  82. if #res == 1 then
  83. tab[1] = tools.getDbResData(res)
  84. else
  85. tab = tools.getDbResData(res)
  86. end
  87. action(true,tab)
  88. skynet.error("Found data:")
  89. else
  90. action(false,nil)
  91. skynet.error("No data found.")
  92. end
  93. end
  94. --添加权限
  95. s.resp.add_permissions = function(msg_body,fd)
  96. local isOk,key = tools.checkData({"permissions_name","permissions_describe","permissions_json"},msg_body)
  97. if not isOk then
  98. return tools.response(fd,200,cjson.encode({code=9001,msg = string.format("缺少字段: '%s'.", key)}))
  99. end
  100. function action(isOk)
  101. if isOk then
  102. return tools.response(fd,200,cjson.encode({code=10000,msg = "添加权限成功!"}))
  103. end
  104. return tools.response(fd,200,cjson.encode({code=10001,msg = "添加权限失败!"}))
  105. end
  106. local permissions_json = msg_body.permissions_json
  107. 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)
  108. local res = db:query(sql)
  109. skynet.error(sql)
  110. action(true)
  111. end
  112. --修改权限
  113. s.resp.modify_permissions = function(msg_body,fd)
  114. local isOk,key = tools.checkData({"permissions_id","modify_permissions_name","modify_permissions_describe","modify_permissions_json"},msg_body)
  115. if not isOk then
  116. return tools.response(fd,200,cjson.encode({code=9001,msg = string.format("缺少字段: '%s'.", key)}))
  117. end
  118. function action(isOk)
  119. if isOk then
  120. return tools.response(fd,200,cjson.encode({code=10000,msg = "修改权限权限成功!"}))
  121. end
  122. return tools.response(fd,200,cjson.encode({code=10001,msg = "修改权限权限失败!"}))
  123. end
  124. local permissions_json = msg_body.modify_permissions_json
  125. -- skynet.error("json",msg_body.modify_permissions_json)
  126. 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)
  127. db:query(sql)
  128. skynet.error(sql)
  129. action(true)
  130. end
  131. --获取权限列表
  132. s.resp.get_permissions_list = function(msg_body,fd)
  133. local isOk,key = tools.checkData({"page","count"},msg_body)
  134. if not isOk then
  135. return tools.response(fd,200,cjson.encode({code=9001,msg = string.format("缺少字段: '%s'.", key)}))
  136. end
  137. function action(isOk,list)
  138. local error_json = '{"code": 10000, "msg": "获取权限列表失败", "data": [] }'
  139. if isOk then
  140. local _list = {}
  141. local total_count = 0
  142. list ,total_count = tools.getPageData(msg_body.page,msg_body.count,list)
  143. if #list<=0 then
  144. return tools.response(fd,200,error_json)
  145. end
  146. return tools.response(fd,200,cjson.encode({code=10000,msg = "获取权限列表成功",data=list,total_count=total_count}))
  147. end
  148. return tools.response(fd,200,error_json)
  149. end
  150. local sql = string.format("select * from permissions_list_tab")
  151. local res = db:query(sql)
  152. if res and #res > 0 then
  153. local tab = {}
  154. if #res == 1 then
  155. tab[1] = tools.getDbResData(res)
  156. else
  157. tab = tools.getDbResData(res)
  158. end
  159. action(true,tab)
  160. skynet.error("Found data:")
  161. else
  162. action(false,nil)
  163. skynet.error("No data found.")
  164. end
  165. end
  166. --添加部门
  167. s.resp.add_group = function(msg_body,fd)
  168. local isOk,key = tools.checkData({"group_name","group_describe","info"},msg_body)
  169. if not isOk then
  170. return tools.response(fd,200,cjson.encode({code=9001,msg = string.format("缺少字段: '%s'.", key)}))
  171. end
  172. function action(isOk)
  173. if isOk then
  174. return tools.response(fd,200,cjson.encode({code=10000,msg = "添加部门成功!"}))
  175. end
  176. return tools.response(fd,200,cjson.encode({code=10001,msg = "添加部门失败!"}))
  177. end
  178. local info = "{}"
  179. 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)
  180. local res = db:query(sql)
  181. skynet.error(sql)
  182. action(true)
  183. end
  184. --修改部门
  185. s.resp.modify_group = function(msg_body,fd)
  186. local isOk,key = tools.checkData({"group_id","modify_name","modify_describe","info"},msg_body)
  187. if not isOk then
  188. return tools.response(fd,200,cjson.encode({code=9001,msg = string.format("缺少字段: '%s'.", key)}))
  189. end
  190. function action(isOk)
  191. if isOk then
  192. return tools.response(fd,200,cjson.encode({code=10000,msg = "修改权限权限成功!"}))
  193. end
  194. return tools.response(fd,200,cjson.encode({code=10001,msg = "修改权限权限失败!"}))
  195. end
  196. local info = "{}"
  197. 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)
  198. db:query(sql)
  199. action(true)
  200. end
  201. --获取部门列表
  202. s.resp.get_group_list = function(msg_body,fd)
  203. local isOk,key = tools.checkData({"page","count"},msg_body)
  204. if not isOk then
  205. return tools.response(fd,200,cjson.encode({code=9001,msg = string.format("缺少字段: '%s'.", key)}))
  206. end
  207. function action(isOk,list)
  208. local error_json = '{"code": 10000, "msg": "获取部门列表失败", "data": [] }'
  209. if isOk then
  210. local _list = {}
  211. local total_count = 0
  212. list ,total_count = tools.getPageData(msg_body.page,msg_body.count,list)
  213. if #list<=0 then
  214. return tools.response(fd,200,error_json)
  215. end
  216. return tools.response(fd,200,cjson.encode({code=10000,msg = "获取部门列表成功",data=list}))
  217. end
  218. return tools.response(fd,200,error_json)
  219. end
  220. local sql = string.format("select * from group_list_tab")
  221. local res = db:query(sql)
  222. if res and #res > 0 then
  223. local tab = {}
  224. if #res == 1 then
  225. tab[1] = tools.getDbResData(res)
  226. else
  227. tab = tools.getDbResData(res)
  228. end
  229. action(true,tab)
  230. skynet.error("Found data:")
  231. else
  232. action(false,nil)
  233. skynet.error("No data found.")
  234. end
  235. end
  236. --修改分类
  237. s.resp.modify_classification = function(msg_body,fd)
  238. local isOk,key = tools.checkData({"info"},msg_body)
  239. if not isOk then
  240. return tools.response(fd,200,cjson.encode({code=9001,msg = string.format("缺少字段: '%s'.", key)}))
  241. end
  242. function action(isOk)
  243. if isOk then
  244. return tools.response(fd,200,cjson.encode({code=10000,msg = "修改权限权限成功!"}))
  245. end
  246. return tools.response(fd,200,cjson.encode({code=10001,msg = "修改权限权限失败!"}))
  247. end
  248. local info = msg_body.info
  249. local sql = string.format("UPDATE classification_list_tab SET info ='%s' WHERE self_id = 1 ",info)
  250. -- skynet.error("sql",sql)
  251. db:query(sql)
  252. action(true)
  253. end
  254. --接口end
  255. s.resp.on_recv = function (source, fd, msg_id, msg_body)
  256. skynet.error("接收一后台消息 ",msg_id)
  257. -- tools.dump(msg_body)
  258. local func = string.gsub(msg_id, '/back/', '')
  259. if s.resp[func] ~=nil then
  260. msg_body = cjson.decode(msg_body)
  261. return s.resp[func](msg_body,fd)
  262. end
  263. return tools.response(fd,200,string.format("接口 %s 不存在",func))
  264. end
  265. s.init = function()
  266. db=mysql.connect({
  267. host=runconfig.db_tost,
  268. port=runconfig.db_port,
  269. database=runconfig.db_name,
  270. user="root",
  271. password=runconfig.db_pw,
  272. max_packet_size = 1024 * 1024,
  273. on_connect = nil
  274. })
  275. if not db then
  276. skynet.error("failed to connect")
  277. skynet.exit()
  278. else
  279. skynet.error(" config success to connect to mysql server")
  280. skynet.error(" 初始化后台服务成功!")
  281. end
  282. end
  283. s.start(...)