123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- package admin
- import (
- "Wine-Server/utils"
- "Wine-Server/utils/tables"
- "github.com/gorilla/websocket"
- )
- func Query(conn *websocket.Conn, manager *tables.ManagerTable, data any) {
- if !manager.Super {
- _ = conn.WriteJSON(utils.WsEvent("superRoleAdminQueryRes", utils.Fail("权限不足")))
- return
- }
- var param queryParam
- err := utils.AnyTrans(data, ¶m)
- if err != nil {
- utils.Logger.Println(err)
- _ = conn.WriteJSON(utils.WsEvent("superRoleAdminQueryRes", utils.Fail("参数错误")))
- return
- }
- total, men, err := tables.ManagerQueryForAdmin(param.Cond, param.Limit, param.Page)
- if err != nil {
- utils.Logger.Println(err)
- _ = conn.WriteJSON(utils.WsEvent("superRoleAdminQueryRes", utils.Fail("查询管理员失败")))
- return
- }
- _ = conn.WriteJSON(utils.WsEvent(
- "superRoleAdminQueryRes",
- utils.Success(utils.JsonType{"total": total, "list": men}),
- ))
- }
- func Update(conn *websocket.Conn, manager *tables.ManagerTable, data any) {
- if !manager.Super {
- _ = conn.WriteJSON(utils.WsEvent("superRoleAdminUpdateRes", utils.Fail("权限不足")))
- return
- }
- var param updateParam
- err := utils.AnyTrans(data, ¶m)
- if err != nil {
- _ = conn.WriteJSON(utils.WsEvent("superRoleAdminUpdateRes", utils.Fail("参数错误")))
- return
- }
- man := &tables.ManagerTable{Id: param.Id}
- err = man.Get()
- if err != nil {
- _ = conn.WriteJSON(utils.WsEvent("superRoleAdminUpdateRes", utils.Fail("管理员不存在")))
- return
- }
- if param.Password != "" {
- password, err := utils.Decrypt(param.Password)
- if err != nil {
- _ = conn.WriteJSON(utils.WsEvent("superRoleAdminUpdateRes", utils.Fail("解密失败")))
- return
- }
- man.Password = utils.HashPassword(password)
- }
- man.Name, man.Account = param.Name, param.Account
- err = man.UpdateSelf()
- if err != nil {
- _ = conn.WriteJSON(utils.WsEvent("superRoleAdminUpdateRes", utils.Fail("更新失败")))
- return
- }
- _ = conn.WriteJSON(utils.WsEvent("superRoleAdminUpdateRes", utils.Success(nil)))
- // TODO: inform admin login expired
- }
- func Delete(conn *websocket.Conn, manager *tables.ManagerTable, data any) {
- if !manager.Super {
- _ = conn.WriteJSON(utils.WsEvent("superRoleAdminDeleteRes", utils.Fail("权限不足")))
- return
- }
- var ids []string
- err := utils.AnyTrans(data, &ids)
- if err != nil {
- utils.Logger.Println(err)
- _ = conn.WriteJSON(utils.WsEvent("superRoleAdminDeleteRes", utils.Fail("参数错误")))
- return
- }
- err = tables.ManagersDelete(ids)
- if err != nil {
- utils.Logger.Println(err)
- _ = conn.WriteJSON(utils.WsEvent("superRoleAdminDeleteRes", utils.Fail("删除失败")))
- return
- }
- _ = conn.WriteJSON(utils.WsEvent("superRoleAdminDeleteRes", utils.Success(nil)))
- }
- func Add(conn *websocket.Conn, manager *tables.ManagerTable, data any) {
- if !manager.Super {
- _ = conn.WriteJSON(utils.WsEvent("superRoleAdminAddRes", utils.Fail("权限不足")))
- return
- }
- var param addParam
- err := utils.AnyTrans(data, ¶m)
- if err != nil {
- utils.Logger.Println(err)
- _ = conn.WriteJSON(utils.WsEvent("superRoleAdminAddRes", utils.Fail("参数错误")))
- return
- }
- if param.Name == "" || param.Account == "" || param.Password == "" {
- _ = conn.WriteJSON(utils.WsEvent("superRoleAdminAddRes", utils.Fail("数据不可为空")))
- return
- }
- var password string
- password, err = utils.Decrypt(param.Password)
- if err != nil {
- utils.Logger.Println(err)
- _ = conn.WriteJSON(utils.WsEvent("superRoleAdminAddRes", utils.Fail("解密失败")))
- return
- }
- id := utils.RandomString(16, utils.AlphaNumPatten)
- man := &tables.ManagerTable{Id: id, Name: param.Name, Account: param.Account, Password: utils.HashPassword(password)}
- err = man.Insert()
- if err != nil {
- utils.Logger.Println(err)
- _ = conn.WriteJSON(utils.WsEvent("superRoleAdminAddRes", utils.Fail("添加失败")))
- return
- }
- _ = conn.WriteJSON(utils.WsEvent("superRoleAdminAddRes", utils.Success(nil)))
- }
|