init.lua 12 KB

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