Account.go 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410
  1. package controllers
  2. import (
  3. "ColdVerify_server/conf"
  4. "ColdVerify_server/lib"
  5. "ColdVerify_server/models/Account"
  6. "ColdVerify_server/models/System"
  7. beego "github.com/beego/beego/v2/server/web"
  8. uuid "github.com/satori/go.uuid"
  9. "math"
  10. "time"
  11. )
  12. type AccountController struct {
  13. beego.Controller
  14. }
  15. // 验证登录
  16. func (c *AccountController) Login_verification() {
  17. Admin_user := c.GetString("bzd_username")
  18. Admin_pass := c.GetString("bzd_password")
  19. println("Login_verification", Admin_user, Admin_pass)
  20. err, user_r := Account.Read_User_verification(Admin_user, Admin_pass)
  21. if err != nil {
  22. c.Data["json"] = lib.JSONS{Code: 202, Msg: "登录失败-请检查账号密码"}
  23. } else {
  24. User_tokey := Account.Add_Tokey(user_r.T_uuid)
  25. c.Ctx.SetCookie("User_tokey", User_tokey, time.Second*60*60)
  26. c.Data["json"] = lib.JSONS{Code: 200, Msg: "OK!", Data: User_tokey}
  27. System.Add_UserLogs(user_r.T_uuid, "登陆", "用户登陆", "")
  28. }
  29. c.ServeJSON()
  30. return
  31. }
  32. // 验证登录
  33. func (c *AccountController) Login_Admin_verification() {
  34. Admin_user := c.GetString("bzd_username")
  35. Admin_pass := c.GetString("bzd_password")
  36. println("Login_Admin_verification", Admin_user, Admin_pass)
  37. err, user_r := Account.Read_Admin_verification(Admin_user, Admin_pass)
  38. if err != nil {
  39. c.Data["json"] = lib.JSONS{Code: 202, Msg: "登录失败-请检查账号密码"}
  40. } else {
  41. User_tokey := Account.Add_Tokey(user_r.T_uuid)
  42. c.Ctx.SetCookie("User_tokey", User_tokey, time.Second*60*60)
  43. c.Data["json"] = lib.JSONS{Code: 200, Msg: "OK!", Data: User_tokey}
  44. System.Add_UserLogs(user_r.T_uuid, "登陆", "管理员登陆", "")
  45. }
  46. c.ServeJSON()
  47. return
  48. }
  49. // --------------------------------------------------------------------------------------------------------------
  50. // 管理员-列表-
  51. func (c *AccountController) List() {
  52. // 验证登录 User_is, User_r
  53. User_r, User_is := Account.Verification_Admin(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey"))
  54. if !User_is {
  55. c.Data["json"] = lib.JSONS{Code: 201, Msg: "请重新登录!"}
  56. c.ServeJSON()
  57. return
  58. }
  59. if len(User_r.T_Distributor_id) > 0 && User_r.T_power > 2 {
  60. c.Data["json"] = lib.JSONS{Code: 202, Msg: "无权操作!"}
  61. c.ServeJSON()
  62. return
  63. }
  64. var r_jsons lib.R_JSONS
  65. page, _ := c.GetInt("page")
  66. if page < 1 {
  67. page = 1
  68. }
  69. page_z, _ := c.GetInt("page_z")
  70. if page_z < 1 {
  71. page_z = conf.Page_size
  72. }
  73. T_name := c.GetString("T_name")
  74. T_Distributor_id := c.GetString("T_Distributor_id")
  75. if len(T_Distributor_id) == 0 {
  76. T_Distributor_id = User_r.T_Distributor_id
  77. }
  78. var cnt int
  79. PowerList := Account.Read_Power_List_ALL_1()
  80. PowerMap := Account.UserPowerListToPowerMap(PowerList)
  81. List, cnt := Account.Read_Admin_List(T_Distributor_id, T_name, page, page_z, PowerMap)
  82. page_size := math.Ceil(float64(cnt) / float64(page_z))
  83. r_jsons.List = List
  84. r_jsons.Page = page
  85. r_jsons.Page_size = int(page_size)
  86. r_jsons.Pages = lib.Func_page(int64(page), int64(page_size))
  87. r_jsons.Num = cnt
  88. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  89. c.ServeJSON()
  90. return
  91. }
  92. // 管理员-详情
  93. func (c *AccountController) Get() {
  94. // 验证登录 User_is, User_r
  95. User_r, User_is := Account.Verification_Admin(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey"))
  96. if !User_is {
  97. c.Data["json"] = lib.JSONS{Code: 201, Msg: "请重新登录!"}
  98. c.ServeJSON()
  99. return
  100. }
  101. type User struct {
  102. Account.Admin
  103. Permission string
  104. }
  105. var u User
  106. u.Admin = User_r
  107. // 内部管理员
  108. if len(User_r.T_Distributor_id) == 0 {
  109. if User_r.T_power <= 2 {
  110. u.Permission = "NBGLY" //内部管理员
  111. } else {
  112. u.Permission = "NBPTYH" //内部普通用户
  113. }
  114. } else {
  115. if User_r.T_power <= 2 {
  116. u.Permission = "JXSGLY" //经销商管理员
  117. } else {
  118. u.Permission = "JXSPTYH" //经销商普通用户
  119. }
  120. }
  121. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: u}
  122. c.ServeJSON()
  123. return
  124. }
  125. func (c *AccountController) Delivery() {
  126. // 验证登录 User_is, User_r
  127. _, User_is := Account.Verification_Admin(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey"))
  128. if !User_is {
  129. c.Data["json"] = lib.JSONS{Code: 201, Msg: "请重新登录!"}
  130. c.ServeJSON()
  131. return
  132. }
  133. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: conf.VdelUuid}
  134. c.ServeJSON()
  135. return
  136. }
  137. // 管理员-添加-
  138. func (c *AccountController) Add() {
  139. // 验证登录 User_is, User_r
  140. User_r, User_is := Account.Verification_Admin(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey"))
  141. if !User_is {
  142. c.Data["json"] = lib.JSONS{Code: 201, Msg: "请重新登录!"}
  143. c.ServeJSON()
  144. return
  145. }
  146. if User_r.T_power > 2 {
  147. c.Data["json"] = lib.JSONS{Code: 202, Msg: "无权操作!"}
  148. c.ServeJSON()
  149. return
  150. }
  151. T_uuid := uuid.NewV4().String()
  152. T_power, _ := c.GetInt("T_power")
  153. T_name := c.GetString("T_name")
  154. T_user := c.GetString("T_user")
  155. T_pass := c.GetString("T_pass")
  156. T_wxname := c.GetString("T_wxname")
  157. T_Distributor_id := c.GetString("T_Distributor_id")
  158. T_signature_img := c.GetString("T_signature_img")
  159. if len(T_Distributor_id) == 0 {
  160. T_Distributor_id = User_r.T_Distributor_id
  161. }
  162. if T_power <= 1 {
  163. c.Data["json"] = lib.JSONS{Code: 202, Msg: "无权操作!"}
  164. c.ServeJSON()
  165. return
  166. }
  167. var_ := Account.Admin{
  168. T_uuid: T_uuid,
  169. T_power: T_power,
  170. T_name: T_name,
  171. T_user: T_user,
  172. T_pass: T_pass,
  173. T_wxname: T_wxname,
  174. T_State: 1,
  175. T_Distributor_id: T_Distributor_id, // 分销商id,内部管理员为空
  176. T_signature_img: T_signature_img,
  177. }
  178. if err, _ := Account.Read_Admin_ByT_user(T_user); err == nil {
  179. c.Data["json"] = lib.JSONS{Code: 202, Msg: "登录账号已存在!"}
  180. c.ServeJSON()
  181. return
  182. }
  183. Id, err := Account.Add_Admin(var_)
  184. if err != nil {
  185. c.Data["json"] = lib.JSONS{Code: 202, Msg: "添加失败!"}
  186. c.ServeJSON()
  187. return
  188. }
  189. System.Add_UserLogs_T(User_r.T_uuid, "管理员用户", "添加", var_)
  190. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: Id}
  191. c.ServeJSON()
  192. return
  193. }
  194. // 管理员-修改-
  195. func (c *AccountController) Up() {
  196. // 验证登录 User_is, User_r
  197. User_r, User_is := Account.Verification_Admin(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey"))
  198. if !User_is {
  199. c.Data["json"] = lib.JSONS{Code: 201, Msg: "请重新登录!"}
  200. c.ServeJSON()
  201. return
  202. }
  203. if User_r.T_power > 2 {
  204. c.Data["json"] = lib.JSONS{Code: 202, Msg: "无权操作!"}
  205. c.ServeJSON()
  206. return
  207. }
  208. T_uuid := c.GetString("T_uuid")
  209. T_power, _ := c.GetInt("T_power")
  210. T_name := c.GetString("T_name")
  211. T_user := c.GetString("T_user")
  212. T_pass := c.GetString("T_pass")
  213. T_wxname := c.GetString("T_wxname")
  214. T_signature_img := c.GetString("T_signature_img")
  215. err, r := Account.Read_Admin_ByT_uuid(T_uuid)
  216. if err != nil {
  217. c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id 错误!"}
  218. c.ServeJSON()
  219. return
  220. }
  221. err, r2 := Account.Read_Admin_ByT_user(T_user)
  222. if err == nil && T_uuid != r2.T_uuid {
  223. c.Data["json"] = lib.JSONS{Code: 202, Msg: "用户名已存在!"}
  224. c.ServeJSON()
  225. return
  226. }
  227. if T_power > 0 {
  228. r.T_power = T_power
  229. }
  230. if len(T_name) > 0 {
  231. r.T_name = T_name
  232. }
  233. if len(T_user) > 0 {
  234. r.T_user = T_user
  235. }
  236. if len(T_pass) > 0 {
  237. r.T_pass = T_pass
  238. }
  239. if len(T_wxname) > 0 {
  240. r.T_wxname = T_wxname
  241. }
  242. if len(T_signature_img) > 0 {
  243. r.T_signature_img = T_signature_img
  244. }
  245. if !Account.Update_Admin(r, "T_power", "T_name", "T_user", "T_pass", "T_wxname", "T_signature_img") {
  246. c.Data["json"] = lib.JSONS{Code: 202, Msg: "修改失败!"}
  247. c.ServeJSON()
  248. return
  249. }
  250. System.Add_UserLogs_T(User_r.T_uuid, "管理员用户", "修改", r)
  251. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  252. c.ServeJSON()
  253. return
  254. }
  255. // 管理员-删除-
  256. func (c *AccountController) Del() {
  257. // 验证登录 User_is, User_r
  258. User_r, User_is := Account.Verification_Admin(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey"))
  259. if !User_is {
  260. c.Data["json"] = lib.JSONS{Code: 201, Msg: "请重新登录!"}
  261. c.ServeJSON()
  262. return
  263. }
  264. if User_r.T_power > 2 {
  265. c.Data["json"] = lib.JSONS{Code: 202, Msg: "无权操作!"}
  266. c.ServeJSON()
  267. return
  268. }
  269. T_uuid := c.GetString("T_uuid")
  270. if User_r.T_uuid == T_uuid {
  271. c.Data["json"] = lib.JSONS{Code: 202, Msg: "禁止删除自己!"}
  272. c.ServeJSON()
  273. return
  274. }
  275. if err, r := Account.Read_Admin_ByT_uuid(T_uuid); err == nil {
  276. if !Account.Delete_Admin_(r) {
  277. c.Data["json"] = lib.JSONS{Code: 202, Msg: "删除失败!"}
  278. c.ServeJSON()
  279. return
  280. }
  281. System.Add_UserLogs_T(User_r.T_uuid, "管理员用户", "删除", r)
  282. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  283. c.ServeJSON()
  284. return
  285. }
  286. c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id 错误!"}
  287. c.ServeJSON()
  288. return
  289. }
  290. // 用户权限-所有列表-
  291. func (c *AccountController) UserPower_List_All() {
  292. // 验证登录 User_is, User_r
  293. User_r, User_is := Account.Verification_Admin(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey"))
  294. if !User_is {
  295. c.Data["json"] = lib.JSONS{Code: 201, Msg: "请重新登录!"}
  296. c.ServeJSON()
  297. return
  298. }
  299. if User_r.T_power > 2 {
  300. c.Data["json"] = lib.JSONS{Code: 202, Msg: "无权操作!"}
  301. c.ServeJSON()
  302. return
  303. }
  304. var r_jsons lib.R_JSONS
  305. r_jsons.List = Account.Read_Power_List_ALL_Admin_Power(User_r.T_power)
  306. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  307. c.ServeJSON()
  308. return
  309. }
  310. // 管理员-全部列表-
  311. func (c *AccountController) List_All() {
  312. // 验证登录 User_is, User_r
  313. User_r, User_is := Account.Verification_Admin(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey"))
  314. if !User_is {
  315. c.Data["json"] = lib.JSONS{Code: 201, Msg: "请重新登录!"}
  316. c.ServeJSON()
  317. return
  318. }
  319. if User_r.T_power > 2 {
  320. c.Data["json"] = lib.JSONS{Code: 202, Msg: "无权操作!"}
  321. c.ServeJSON()
  322. return
  323. }
  324. PowerList := Account.Read_Power_List_ALL_1()
  325. PowerMap := Account.UserPowerListToPowerMap(PowerList)
  326. var r_jsons lib.R_JSONS
  327. r_jsons.List = Account.Read_Admin_List_ALL_Power(User_r.T_Distributor_id, "", PowerMap)
  328. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  329. c.ServeJSON()
  330. return
  331. }
  332. // 修改密码
  333. func (c *AccountController) UpPassword() {
  334. // 验证登录 User_is, User_r
  335. user_r, User_is := Account.Verification_Admin(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey"))
  336. if !User_is {
  337. c.Data["json"] = lib.JSONS{Code: 201, Msg: "请重新登录!"}
  338. c.ServeJSON()
  339. return
  340. }
  341. T_oldpass := c.GetString("T_oldpass")
  342. T_pass := c.GetString("T_pass")
  343. if T_oldpass != user_r.T_pass {
  344. c.Data["json"] = lib.JSONS{Code: 202, Msg: "旧密码错误!"}
  345. c.ServeJSON()
  346. return
  347. }
  348. if len(T_pass) > 0 {
  349. user_r.T_pass = T_pass
  350. }
  351. if !Account.Update_Admin(user_r, "T_pass") {
  352. c.Data["json"] = lib.JSONS{Code: 202, Msg: "修改失败!"}
  353. c.ServeJSON()
  354. return
  355. }
  356. user_r.T_pass = "********"
  357. System.Add_UserLogs_T(user_r.T_uuid, "管理员管理", "修改密码", user_r)
  358. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  359. c.ServeJSON()
  360. return
  361. }