package controllers import ( "Cold_Api/Nats/NatsServer" "Cold_Api/conf" "Cold_Api/controllers/lib" "Cold_Api/logs" "Cold_Api/models/Account" "Cold_Api/models/Company" "Cold_Api/models/System" "Cold_Api/models/Warning" "fmt" "github.com/beego/beego/v2/adapter/orm" beego "github.com/beego/beego/v2/server/web" uuid "github.com/satori/go.uuid" "math" "strconv" "strings" "time" ) type UserController struct { beego.Controller Admin_r Account.Admin // 登陆的用户 T_pid int // 公司id } func (c *UserController) Prepare() { GetCookie := c.Ctx.GetCookie("User_tokey") GetString := c.GetString("User_tokey") User_tokey := GetCookie if len(User_tokey) == 0 { User_tokey = GetString } c.Admin_r = *Account.Admin_r T_pid := c.Admin_r.T_pid EntryPid, _ := Account.Redis_Tokey_T_pid_Get(User_tokey) if EntryPid > 0 { T_pid = EntryPid } c.T_pid = T_pid } // 获取微信二维码 ( 扫描后 ,Nats 自动绑定在 Admin->T_wx ) func (c *UserController) User_WxQRCode() { T_name := c.GetString("T_name") WxQRCode_str, _ := NatsServer.Wx_GenerateQRCode("-|" + lib.AesEncryptCBC(c.Admin_r.T_uuid+"/"+T_name, "0123456789012345") + "|- @宝智达冷链 微信公众号通知") WxQRCode_str = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=" + WxQRCode_str c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: WxQRCode_str} c.ServeJSON() return } // 公司管理 func (c *UserController) Company_Tree() { var r_jsons lib.R_JSONS T_name := c.GetString("T_name") r_jsons.Data = Account.Read_Company_Tree(c.Admin_r, T_name) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons} c.ServeJSON() return } // 所有公司树 func (c *UserController) Company_List() { var r_jsons lib.R_JSONS T_name := c.GetString("T_name") r_jsons.Data = Account.Read_Company_List(T_name) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons} c.ServeJSON() return } func (c *UserController) Company_Get() { var r_jsons lib.R_JSONS Company_r, err := Account.Read_Company_ById(c.T_pid) if err != nil { logs.Warning(lib.FuncName(), "获取公司信息失败", err) } r_jsons.Data = Account.CompanyToCompany_R(Company_r) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons} c.ServeJSON() return } func (c *UserController) Company_Add() { T_mid, _ := c.GetInt("T_mid") T_name := c.GetString("T_name") T_plan := c.GetString("T_plan") T_data := c.GetString("T_data") T_v3d := c.GetString("T_v3d") var_ := Account.Company{ T_mid: T_mid, T_name: T_name, T_State: 1, T_plan: T_plan, T_data: T_data, T_v3d: T_v3d, } id, err := Account.Add_Company(var_) if err != nil { c.Data["json"] = lib.JSONS{Code: 301, Msg: "添加失败!"} c.ServeJSON() return } if c.Admin_r.T_pids != "*" { T_pids := []int{int(id)} if err = Account.Add_Company_bind(c.Admin_r, T_pids); err != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: "公司绑定失败"} c.ServeJSON() return } } System.Add_UserLogs_T(c.Admin_r.T_uuid, "公司管理", "添加", var_) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: id} c.ServeJSON() return } func (c *UserController) Company_Edit() { Id, Id_err := c.GetInt("Id") if Id_err != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id Err!"} c.ServeJSON() return } Company_r, err := Account.Read_Company_ById(Id) if err != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id Err!"} c.ServeJSON() return } T_name := c.GetString("T_name") T_plan := c.GetString("T_plan") T_data := c.GetString("T_data") T_v3d := c.GetString("T_v3d") if len(T_name) > 0 { Company_r.T_name = T_name } if len(T_plan) > 0 { Company_r.T_plan = T_plan } if len(T_data) > 0 { Company_r.T_data = T_data } if len(T_v3d) > 0 { Company_r.T_v3d = T_v3d } is := Account.Update_Company(Company_r, "T_name", "T_plan", "T_data", "T_v3d") if !is { c.Data["json"] = lib.JSONS{Code: 202, Msg: "修改失败!"} c.ServeJSON() return } System.Add_UserLogs_T(c.Admin_r.T_uuid, "公司管理", "修改", Company_r) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} c.ServeJSON() return } func (c *UserController) Company_Del() { Id, Id_err := c.GetInt("Id") if Id_err != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id Err!"} c.ServeJSON() return } Company_r, err := Account.Read_Company_ById(Id) if err != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id Err!"} c.ServeJSON() return } ids := Account.ReadCompanyIds_T_path(Company_r.T_path) if cnt := Account.Read_Admin_Num_ByT_pid(ids); cnt > 0 { c.Data["json"] = lib.JSONS{Code: 202, Msg: "有关联用户,禁止删除!"} c.ServeJSON() return } o := orm.NewOrm() o.Begin() for _, id := range ids { if is := Account.Delete_Company(o, id); !is { o.Rollback() c.Data["json"] = lib.JSONS{Code: 202, Msg: "删除失败!"} c.ServeJSON() return } if err = Account.Delete_Company_bind_T_pids(o, id); err != nil { o.Rollback() c.Data["json"] = lib.JSONS{Code: 202, Msg: "删除失败!"} c.ServeJSON() return } } o.Commit() System.Add_UserLogs_T(c.Admin_r.T_uuid, "公司管理", "删除", Company_r) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} c.ServeJSON() return } // 进入公司 func (c *UserController) Company_Entry() { GetCookie := c.Ctx.GetCookie("User_tokey") GetString := c.GetString("User_tokey") User_tokey := GetCookie if len(User_tokey) == 0 { User_tokey = GetString } T_pid, _ := c.GetInt("T_pid") // 操作pid company_r, err := Account.Read_Company_ById(T_pid) if err != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: "查询失败!"} c.ServeJSON() return } visit := false if c.Admin_r.T_pid > 0 && strings.Contains(company_r.T_path, fmt.Sprintf("/%d/", c.Admin_r.T_pid)) { visit = true } if c.Admin_r.T_pid == 0 { if c.Admin_r.T_pids == "*" { visit = true } else { pids := lib.SplitStringToIntIds(c.Admin_r.T_pids, "P") list := Account.ReadCompanyIds_T_pids(pids) for _, v := range list { if T_pid == v { visit = true break } } } } if !visit { c.Data["json"] = lib.JSONS{Code: 202, Msg: "没有权限!"} c.ServeJSON() return } Account.Redis_Tokey_T_pid_Set(User_tokey, T_pid) System.Add_UserLogs_T(c.Admin_r.T_uuid, "公司管理", "进入公司", T_pid) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} c.ServeJSON() return } // 检查 Tokey 是否过期 // 用户管理 func (c *UserController) User_List() { var r_jsons lib.R_JSONS page, _ := c.GetInt("page") if page < 1 { page = 1 } page_z, _ := c.GetInt("page_z") if page_z < 1 { page_z = conf.Page_size } T_name := c.GetString("T_name") Account.Read_Power_All_Map() r_jsons.Data, r_jsons.Num = Account.Read_Admin_List(c.T_pid, T_name, page, page_z) r_jsons.Page = page r_jsons.Page_size = int(math.Ceil(float64(r_jsons.Num) / float64(page_z))) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons} c.ServeJSON() return } func (c *UserController) User_Get() { T_uuid := c.GetString("T_uuid") if len(T_uuid) < 8 { c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_uuid Err!"} c.ServeJSON() return } admin_r, err := Account.Read_Admin_ByUuid(T_uuid) if err != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_uuid Err!"} c.ServeJSON() return } c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: Account.AdminToAdmin_R(admin_r)} c.ServeJSON() return } func (c *UserController) User_Info() { type User_ struct { User Account.Admin_R //Power Account.Power // 权限 //Menu map[string]Account.Menu_R // 菜单 //Menu []Account.Menu // 菜单 } Admin_r := User_{} Admin_r.User = Account.AdminToAdmin_R(c.Admin_r) //Admin_r.Power, _ = Account.Read_Power_ById(admin_r.T_power) //Admin_r.Menu = Account.Read_Menu_Tree(Power.T_menu, T_pid) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: Admin_r} c.ServeJSON() return } func (c *UserController) User_Post() { admin_r := c.Admin_r T_name := c.GetString("T_name") T_pass := c.GetString("T_pass") T_phone := c.GetString("T_phone") T_mail := c.GetString("T_mail") T_wx := c.GetString("T_wx") if len(T_pass) < 8 && len(T_pass) > 0 { c.Data["json"] = lib.JSONS{Code: 202, Msg: "密码异常!"} c.ServeJSON() return } if len(T_name) > 0 { admin_r.T_name = T_name } if len(T_pass) >= 8 { admin_r.T_pass = T_pass } if len(T_phone) > 0 { admin_r.T_phone = T_phone } if len(T_mail) > 0 { admin_r.T_mail = T_mail } if len(T_wx) > 0 { if T_wx == "-" { T_wx = "" } admin_r.T_wx = T_wx } is := Account.Update_Admin(admin_r, "T_name", "T_pass", "T_phone", "T_mail", "T_wx") if !is { c.Data["json"] = lib.JSONS{Code: 202, Msg: "修改失败!"} c.ServeJSON() return } admin_r.T_pass = "******" System.Add_UserLogs_T(c.Admin_r.T_uuid, "用户管理", "修改个人信息", admin_r) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} c.ServeJSON() return } func (c *UserController) User_Add() { T_power, _ := c.GetInt("T_power") T_name := c.GetString("T_name") T_user := c.GetString("T_user") T_pass := c.GetString("T_pass") T_phone := c.GetString("T_phone") T_mail := c.GetString("T_mail") T_wx := c.GetString("T_wx") T_uuid := uuid.NewV4().String() var_ := Account.Admin{ T_uuid: T_uuid, T_pid: c.T_pid, T_name: T_name, T_user: T_user, T_phone: T_phone, T_mail: T_mail, T_wx: T_wx, T_pass: T_pass, T_power: T_power, T_State: 1, } if len(T_pass) < 8 { c.Data["json"] = lib.JSONS{Code: 202, Msg: "密码异常!"} c.ServeJSON() return } _, err := Account.Read_Admin_T_user(T_user) if err == nil { c.Data["json"] = lib.JSONS{Code: 302, Msg: "账户重复!"} c.ServeJSON() return } _, err = Account.Add_Admin(var_) if err != nil { c.Data["json"] = lib.JSONS{Code: 301, Msg: "添加失败!"} c.ServeJSON() return } var_.T_pass = "******" System.Add_UserLogs_T(c.Admin_r.T_uuid, "用户管理", "添加", var_) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} c.ServeJSON() return } func (c *UserController) User_Edit() { T_uuid := c.GetString("T_uuid") if len(T_uuid) < 8 { c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_uuid Err!"} c.ServeJSON() return } r, err := Account.Read_Admin_ByUuid(T_uuid) if err != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_uuid Err!"} c.ServeJSON() return } T_power, T_power_err := c.GetInt("T_power") T_name := c.GetString("T_name") T_pass := c.GetString("T_pass") T_phone := c.GetString("T_phone") T_mail := c.GetString("T_mail") if T_power_err == nil { r.T_power = T_power } if len(T_pass) < 8 && len(T_pass) > 0 { c.Data["json"] = lib.JSONS{Code: 202, Msg: "密码异常!"} c.ServeJSON() return } if len(T_name) > 0 { r.T_name = T_name } if len(T_pass) >= 8 { r.T_pass = T_pass } if len(T_phone) > 0 { r.T_phone = T_phone } if len(T_mail) > 0 { r.T_mail = T_mail } is := Account.Update_Admin(r, "T_power", "T_pid", "T_name", "T_pass", "T_phone", "T_mail") if !is { c.Data["json"] = lib.JSONS{Code: 202, Msg: "修改失败!"} c.ServeJSON() return } if len(T_name) > 0 { if is = Company.Update_CompanyNotice_Bind_By_T_uuid(T_uuid, T_name); !is { logs.Println("修改用户 => 修改用户关联报警通知失败", T_uuid, T_name) } } r.T_pass = "******" System.Add_UserLogs_T(c.Admin_r.T_uuid, "用户管理", "编辑", r) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} c.ServeJSON() return } func (c *UserController) User_Del() { T_uuid := c.GetString("T_uuid") if len(T_uuid) <= 0 { c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_uuid Err!"} c.ServeJSON() return } admin_r_lod, err := Account.Read_Admin_ByUuid(T_uuid) if err != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_uuid Err!"} c.ServeJSON() return } if is := Account.Delete_Admin(admin_r_lod); !is { c.Data["json"] = lib.JSONS{Code: 202, Msg: "删除失败!"} c.ServeJSON() return } if is := Company.Delete_CompanyNotice_Bind_By_T_uuid(T_uuid); !is { logs.Println("删除用户 => 删除用户关联报警通知失败", T_uuid) } System.Add_UserLogs_T(c.Admin_r.T_uuid, "用户管理", "删除", T_uuid) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} c.ServeJSON() return } // 管理员 func (c *UserController) User_Home() { // 验证登录 admin_r := c.Admin_r type Info struct { T_name string // 姓名 T_pid int // 公司id T_Days int // 服务天输 Admin []Account.Admin_ // 专属管理员 WarningNum int64 // 报警数量 UntreatedWarningNum int64 // 未处理报警数量 WorkOrderNum int64 // 工单数量 UntreatedWorkOrderNum int64 // 未处理工单数量 } var info Info info.T_name = admin_r.T_name info.T_pid = admin_r.T_pid if admin_r.T_pid > 0 { power, _ := Account.Read_Power_ById(admin_r.T_power) company, _ := Account.Read_Company_ById(admin_r.T_pid) info.T_Days = lib.GetDiffDays(time.Now(), company.CreateTime) AdminList := Account.Read_Admin_List_T_pids(admin_r.T_pid) var Admin_ []Account.Admin_ for _, v := range AdminList { Admin_ = append(Admin_, Account.Admin_RToAdmin_(v)) } info.Admin = Admin_ info.WarningNum = Warning.Read_Warning_ALL_T_State_Count(admin_r.T_pid, 1, power.T_warning, true) info.UntreatedWarningNum = Warning.Read_Warning_ALL_T_State_Count(admin_r.T_pid, 3, power.T_warning, false) } if admin_r.T_pid == 0 { info.WorkOrderNum, info.UntreatedWorkOrderNum = NatsServer.Read_WorkOrderT_State_Count(admin_r.T_pids) } c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: info} c.ServeJSON() return } // 内部用户管理 func (c *UserController) Admin_List() { var r_jsons lib.R_JSONS page, _ := c.GetInt("page") if page < 1 { page = 1 } page_z, _ := c.GetInt("page_z") if page_z < 1 { page_z = conf.Page_size } T_name := c.GetString("T_name") Account.Read_Power_All_Map() r_jsons.Data, r_jsons.Num = Account.Read_Admin_List(0, T_name, page, page_z) r_jsons.Page = page r_jsons.Page_size = int(math.Ceil(float64(r_jsons.Num) / float64(page_z))) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons} c.ServeJSON() return } func (c *UserController) Admin_Get() { T_uuid := c.GetString("T_uuid") if len(T_uuid) < 8 { c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_uuid Err!"} c.ServeJSON() return } admin_r, err := Account.Read_Admin_ByUuid(T_uuid) if err != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_uuid Err!"} c.ServeJSON() return } c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: Account.AdminToAdmin_R(admin_r)} c.ServeJSON() return } func (c *UserController) Admin_Add() { T_power, _ := c.GetInt("T_power") T_name := c.GetString("T_name") T_user := c.GetString("T_user") T_pass := c.GetString("T_pass") T_phone := c.GetString("T_phone") T_mail := c.GetString("T_mail") T_wx := c.GetString("T_wx") var_ := Account.Admin{ T_uuid: uuid.NewV4().String(), T_pid: 0, T_name: T_name, T_user: T_user, T_phone: T_phone, T_mail: T_mail, T_wx: T_wx, T_pass: T_pass, T_power: T_power, T_State: 1, } if len(T_pass) < 8 { c.Data["json"] = lib.JSONS{Code: 202, Msg: "密码异常!"} c.ServeJSON() return } _, err := Account.Read_Admin_T_user(T_user) if err == nil { c.Data["json"] = lib.JSONS{Code: 302, Msg: "账户重复!"} c.ServeJSON() return } _, err = Account.Add_Admin(var_) if err != nil { c.Data["json"] = lib.JSONS{Code: 301, Msg: "添加失败!"} c.ServeJSON() return } var_.T_pass = "******" System.Add_UserLogs_T(c.Admin_r.T_uuid, "内部用户管理", "添加", var_) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} c.ServeJSON() return } func (c *UserController) Admin_Edit() { T_uuid := c.GetString("T_uuid") if len(T_uuid) < 8 { c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_uuid Err!"} c.ServeJSON() return } r, err := Account.Read_Admin_ByUuid(T_uuid) if err != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_uuid Err!"} c.ServeJSON() return } T_power, T_power_err := c.GetInt("T_power") T_name := c.GetString("T_name") T_pass := c.GetString("T_pass") T_phone := c.GetString("T_phone") T_mail := c.GetString("T_mail") T_wx := c.GetString("T_wx") if T_power_err == nil { r.T_power = T_power } if len(T_pass) < 8 && len(T_pass) > 0 { c.Data["json"] = lib.JSONS{Code: 202, Msg: "密码异常!"} c.ServeJSON() return } if len(T_name) > 0 { r.T_name = T_name } if len(T_pass) >= 8 { r.T_pass = T_pass } if len(T_phone) > 0 { r.T_phone = T_phone } if len(T_mail) > 0 { r.T_mail = T_mail } if len(T_wx) > 0 { r.T_wx = T_wx } is := Account.Update_Admin(r, "T_power", "T_name", "T_pass", "T_phone", "T_mail", "T_wx") if !is { c.Data["json"] = lib.JSONS{Code: 202, Msg: "修改失败!"} c.ServeJSON() return } if len(T_name) > 0 { if is = Company.Update_CompanyNotice_Bind_By_T_uuid(T_uuid, "内管-"+T_name); !is { logs.Println("修改内部用户 => 修改内部用户关联报警通知失败", T_uuid, T_name) } } r.T_pass = "********" System.Add_UserLogs_T(c.Admin_r.T_uuid, "内部用户管理", "修改", r) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} c.ServeJSON() return } func (c *UserController) Admin_Del() { T_uuid := c.GetString("T_uuid") if len(T_uuid) <= 0 { c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_uuid Err!"} c.ServeJSON() return } admin_r_lod, err := Account.Read_Admin_ByUuid(T_uuid) if err != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_uuid Err!"} c.ServeJSON() return } if admin_r_lod.Id == 1 { c.Data["json"] = lib.JSONS{Code: 202, Msg: "无权删除!"} c.ServeJSON() return } if is := Account.Delete_Admin(admin_r_lod); !is { c.Data["json"] = lib.JSONS{Code: 202, Msg: "删除失败!"} c.ServeJSON() return } if is := Company.Delete_CompanyNotice_Bind_By_T_uuid(T_uuid); !is { logs.Println("删除内部用户 => 删除内部用户关联报警通知失败", T_uuid) } System.Add_UserLogs_T(c.Admin_r.T_uuid, "内部用户管理", "删除", T_uuid) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} c.ServeJSON() return } // 报警通知的用户列表 func (c *UserController) User_Notice_List() { type R_JSONS struct { //必须的大写开头 AdminList []Account.Admin_R UserList []Account.Admin_R } var r_jsons R_JSONS // 绑定公司id的内部用户列表 r_jsons.AdminList = Account.Read_Admin_List_T_pids(c.T_pid) // 绑定公司id的公司用户列表 r_jsons.UserList = Account.Read_Admin_List_T_pid(c.T_pid) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons} c.ServeJSON() return } // 管理员绑定公司 func (c *UserController) AdminCompanyBind_List() { var r_jsons lib.R_JSONS T_uuid := c.GetString("T_uuid") if len(T_uuid) < 8 { c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_uuid Err!"} c.ServeJSON() return } r, err := Account.Read_Admin_ByUuid(T_uuid) if err != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_uuid Err!"} c.ServeJSON() return } r_jsons.Data = Account.Read_Company_List_ByT_pids(r.T_pids) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons} c.ServeJSON() return } func (c *UserController) AdminCompanyBind_Add() { T_uuid := c.GetString("T_uuid") if len(T_uuid) < 8 { c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_uuid Err!"} c.ServeJSON() return } T_pid, _ := c.GetInt("T_pid") if T_pid == 0 { c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_pid Err!"} c.ServeJSON() return } r, err := Account.Read_Admin_ByUuid(T_uuid) if err != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_uuid Err!"} c.ServeJSON() return } if r.T_pids == "*" { c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} c.ServeJSON() return } Company_r, err := Account.Read_Company_ById(T_pid) if err != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_pid Err!"} c.ServeJSON() return } T_pids := Account.ReadCompanyIds_T_path(Company_r.T_path) if err = Account.Add_Company_bind(r, T_pids); err != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: "公司绑定失败"} c.ServeJSON() return } System.Add_UserLogs(c.Admin_r.T_uuid, "内部用户管理", "公司绑定添加", T_uuid+"-"+strconv.Itoa(T_pid)) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} c.ServeJSON() return } func (c *UserController) AdminCompanyBind_Del() { T_uuid := c.GetString("T_uuid") if len(T_uuid) < 8 { c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_uuid Err!"} c.ServeJSON() return } T_pid, _ := c.GetInt("T_pid") if T_pid == 0 { c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_pid Err!"} c.ServeJSON() return } r, err := Account.Read_Admin_ByUuid(T_uuid) Company_r, err := Account.Read_Company_ById(T_pid) if err != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_pid Err!"} c.ServeJSON() return } T_pids := Account.ReadCompanyIds_T_path(Company_r.T_path) if err = Account.Delete_Company_bind(r, T_pids); err != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: "公司绑定失败"} c.ServeJSON() return } if is := Company.Delete_CompanyNotice_Bind_By_T_uuid_T_pid(T_uuid, T_pids); !is { logs.Println("删除内部用户公司绑定 => 删除内部用户绑定的公司关联报警通知失败", T_uuid) } System.Add_UserLogs(c.Admin_r.T_uuid, "内部用户管理", "公司绑定删除", T_uuid+"-"+strconv.Itoa(T_pid)) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} c.ServeJSON() return } // 权限管理 func (c *UserController) Power_List() { var r_jsons lib.R_JSONS page, _ := c.GetInt("page") if page < 1 { page = 1 } page_z, _ := c.GetInt("page_z") if page_z < 1 { page_z = conf.Page_size } Name := c.GetString("T_name") r_jsons.Data, r_jsons.Num = Account.Read_Power_List(Name, page, page_z) r_jsons.Page = page r_jsons.Page_size = int(math.Ceil(float64(r_jsons.Num) / float64(page_z))) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons} c.ServeJSON() return } // 添加用户 权限选择列表 func (c *UserController) Power_List_All() { r, err := Account.Read_Power_ById(c.Admin_r.T_power) if err != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id Err!"} c.ServeJSON() return } var r_jsons lib.R_JSONS r_jsons.Data = Account.Read_Power_List_ALL_User(r.T_select) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons} c.ServeJSON() return } func (c *UserController) Power_Get() { type Data struct { Power Account.Power_ Menu []Account.Menu Menu_checked []int Select []Account.Power_R Warning []Warning.WarningType_R } var data Data id, id_err := c.GetInt("T_id") if id_err != nil || id == 0 { c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_id Err!"} c.ServeJSON() return } power, err := Account.Read_Power_ById(id) if err != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_id Err!"} c.ServeJSON() return } data.Power = Account.PowerToPower_(power) data.Menu, data.Menu_checked = Account.Read_Menu_List_All() if err != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_menu Err!"} c.ServeJSON() return } if power.T_menu != "*" { data.Menu_checked = lib.SplitStringToIntIds(power.T_menu, "M") } if err != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_menu Err!"} c.ServeJSON() return } data.Select = Account.Read_Power_List_ALL_T_select(power.T_select) if err != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_select Err!"} c.ServeJSON() return } data.Warning = Warning.Read_WarningType_All_Power_T_Warning(power.T_warning) if err != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_warning Err!"} c.ServeJSON() return } c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: data} c.ServeJSON() return } func (c *UserController) Power_Add() { T_name := c.GetString("T_name") T_select := c.GetString("T_select") T_warning := c.GetString("T_warning") T_menu := c.GetString("T_menu") var_ := Account.Power{ T_name: T_name, T_select: T_select, T_warning: T_warning, T_menu: T_menu, T_State: 1, } _, err := Account.Add_Power(var_) if err != nil { c.Data["json"] = lib.JSONS{Code: 301, Msg: "添加失败!"} c.ServeJSON() return } System.Add_UserLogs_T(c.Admin_r.T_uuid, "权限管理", "添加", var_) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} c.ServeJSON() return } func (c *UserController) Power_Edit() { Id, Id_err := c.GetInt("T_id") if Id_err != nil || Id == 0 { c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id Err!"} c.ServeJSON() return } if Id == 1 { c.Data["json"] = lib.JSONS{Code: 202, Msg: "无权修改!"} c.ServeJSON() return } r, err := Account.Read_Power_ById(Id) if err != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id Err!"} c.ServeJSON() return } T_name := c.GetString("T_name") T_select := c.GetString("T_select") T_warning := c.GetString("T_warning") T_menu := c.GetString("T_menu") if len(T_name) > 0 { r.T_name = T_name } if len(T_select) > 0 { r.T_select = T_select } if len(T_warning) > 0 { r.T_warning = T_warning } if len(T_menu) > 0 { r.T_menu = T_menu } is := Account.Update_Power(r, "T_name", "T_select", "T_warning", "T_menu") if !is { c.Data["json"] = lib.JSONS{Code: 302, Msg: "修改失败!"} c.ServeJSON() return } System.Add_UserLogs_T(c.Admin_r.T_uuid, "权限管理", "修改", r) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} c.ServeJSON() return } func (c *UserController) Power_Del() { id, id_err := c.GetInt("T_id") if id_err != nil || id == 0 { c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id Err!"} c.ServeJSON() return } r, err := Account.Read_Power_ById(id) if err != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id Err!"} c.ServeJSON() return } if cnt := Account.Read_Admin_Num_ByT_power(id); cnt > 0 { c.Data["json"] = lib.JSONS{Code: 202, Msg: "有关联用户,禁止删除!"} c.ServeJSON() return } is := Account.Delete_Power(r) if !is { c.Data["json"] = lib.JSONS{Code: 302, Msg: "删除失败!"} c.ServeJSON() return } System.Add_UserLogs(c.Admin_r.T_uuid, "权限管理", "删除", strconv.Itoa(id)) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} c.ServeJSON() return } // 菜单列表 func (c *UserController) User_Menu_List() { type R_JSONS struct { //必须的大写开头 Data interface{} Permission interface{} } var r_jsons R_JSONS power, err := Account.Read_Power_ById(c.Admin_r.T_power) if err != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: "获取菜单失败"} c.ServeJSON() return } logs.Println("登录用户 菜单 pid 为:", c.T_pid) ret := Account.Read_Menu_Bind_List(power.Id, power.T_menu, c.T_pid) r_jsons.Data = ret.Menu r_jsons.Permission = ret.Permission c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons} c.ServeJSON() return } // 权限菜单列表 func (c *UserController) Menu_List_All() { var r_jsons lib.R_JSONS r_jsons.Data, _ = Account.Read_Menu_List_All() c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons} c.ServeJSON() return } // 流量池 func (c *UserController) Flow_Pool() { var r_jsons lib.R_JSONS r_jsons.Data, _ = lib.Yidong_group_data_margin() c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons} c.ServeJSON() return }