package controllers import ( "Cold_Api/conf" "Cold_Api/controllers/lib" "Cold_Api/models/Admin" "Cold_Api/models/System" "crypto/md5" "encoding/hex" "fmt" beego "github.com/beego/beego/v2/server/web" uuid "github.com/satori/go.uuid" "math" "strconv" "time" ) type UserController struct { beego.Controller } // 管理员 func (c *UserController) Admin_html() { // 验证登录 b_, admin_r := lib.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey")) if !b_ { c.Ctx.Redirect(302, "Login") return } if admin_r.Id != 1 { c.Ctx.Redirect(302, "Login") return } fmt.Println("登录OK") page, _ := c.GetInt("page") println(page) if page < 1 { page = 1 } c.Data["Admin_Power"], _ = Admin.Read_AdminPower_ById(admin_r.Admin_power) Name := c.GetString("Name") c.Data["Name"] = Name c.Data["Power_List"] = Admin.Read_Power_List_ALL_Power_Administration(1) var cnt int64 c.Data["List"], cnt = Admin.Read_Admin_List_ALL_Admin_master(page, Name, 0) fmt.Println("cnt:", cnt) page_size := math.Ceil(float64(cnt) / float64(conf.Page_size)) c.Data["Page"] = page c.Data["Page_size"] = page_size c.Data["Pages"] = lib.Func_page(int64(page), int64(page_size)) c.Data["cnt"] = cnt c.TplName = "User/Admin.html" } func (c *UserController) Admin_() { // 验证登录 b_, admin_r := lib.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey")) if !b_ { c.Ctx.Redirect(302, "Login") return } if admin_r.Id != 1 { c.Ctx.Redirect(302, "Login") return } if admin_r.Admin_master != 0 { c.Ctx.Redirect(302, "Login") return } id, _ := c.GetInt("id") c.Data["id"] = id c.Data["Power_List"] = Admin.Read_Power_List_ALL_Power_Administration(1) Admin_uuid := c.GetString("Admin_uuid") c.Data["Admin_uuid"] = Admin_uuid if len(Admin_uuid) > 0 { c.Data["Date"], _ = Admin.Read_Admin_ByUuid(Admin_uuid) } c.TplName = "User/Admin-.html" } func (c *UserController) Admin_Post() { // 验证登录 b_, admin_r := lib.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey")) if !b_ { c.Ctx.Redirect(302, "Login") return } if admin_r.Id != 1 { c.Ctx.Redirect(302, "Login") return } if admin_r.Admin_master != 0 { c.Ctx.Redirect(302, "Login") return } Admin_uuid := c.GetString("Admin_uuid") Admin_name := c.GetString("Admin_name") Admin_user := c.GetString("Admin_user") Admin_telephone := c.GetString("Admin_telephone") Admin_mail := c.GetString("Admin_mail") Admin_text := c.GetString("Admin_text") Admin_gender, _ := c.GetInt("Admin_gender") Admin_power, _ := c.GetInt("Admin_power") var_ := Admin.Admin{ Admin_uuid: uuid.NewV4().String(), Admin_name: Admin_name, Admin_master: admin_r.Admin_master, Admin_user: Admin_user, Admin_telephone: Admin_telephone, Admin_mail: Admin_mail, Admin_text: Admin_text, Admin_gender: Admin_gender, Admin_power: Admin_power, Admin_panel_plan: "", Admin_panel_data: "", T_State: 1, } if len(Admin_uuid) > 0 { var_.Admin_uuid = Admin_uuid err := Admin.Update_Admin_ById_Basics(var_) if err != nil { c.Data["json"] = lib.JSONS{Code: 302, Msg: "修改失败!"} c.ServeJSON() return } } else { s_pass := uuid.NewV4().String()[:6] h := md5.New() h.Write([]byte(s_pass)) s := hex.EncodeToString(h.Sum(nil)) fmt.Println(s) var_.Admin_pass = s var_.Admin_master = 0 err, _ := Admin.Read_Admin_Admin_user(Admin_user) if err == nil { c.Data["json"] = lib.JSONS{Code: 302, Msg: "账户重复!"} c.ServeJSON() return } _, err = Admin.Add_Admin(var_) if err != nil { c.Data["json"] = lib.JSONS{Code: 301, Msg: "添加失败!"} c.ServeJSON() return } var_.Admin_pass = "***********" System.Add_UserLogs_T(admin_r.Admin_uuid,"管理员", "管理员操作", var_) c.Data["json"] = lib.JSONS{Code: 210, Msg: "ok!", Data: s_pass} c.ServeJSON() return } var_.Admin_pass = "***********" System.Add_UserLogs_T(admin_r.Admin_uuid,"管理员", "管理员操作", var_) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} c.ServeJSON() return } func (c *UserController) Admin_Del() { // 验证登录 b_, admin_r := lib.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey")) if !b_ { c.Ctx.Redirect(302, "Login") return } if admin_r.Id != 1 { c.Ctx.Redirect(302, "Login") return } if admin_r.Admin_master != 0 { c.Ctx.Redirect(302, "Login") return } Admin_uuid := c.GetString("Admin_uuid") if len(Admin_uuid) > 0 { admin_r_lod, err := Admin.Read_Admin_ByUuid(Admin_uuid) if err != nil { c.Data["json"] = lib.JSONS{Code: 201, Msg: "e!"} c.ServeJSON() return } if admin_r_lod.Admin_master < admin_r.Admin_master { c.Data["json"] = lib.JSONS{Code: 202, Msg: "e!"} c.ServeJSON() return } Admin.Update_Delete_Admin_ByAdmin_uuid(Admin_uuid) } else { c.Data["json"] = lib.JSONS{Code: 203, Msg: "e!"} c.ServeJSON() return } System.Add_UserLogs(admin_r.Admin_uuid,"管理员", "管理员删除", Admin_uuid) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} c.ServeJSON() return } func (c *UserController) User_Entry() { // 验证登录 b_, admin_r := lib.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey")) if !b_ { c.Ctx.Redirect(302, "Login") return } //if(admin_r.Admin_master != 0){ // c.Ctx.Redirect(302, "Login") // return //} Admin_uuid := c.GetString("Admin_uuid") if len(Admin_uuid) > 0 { admin_r_a, err := Admin.Read_Admin_ByUuid(Admin_uuid) if err != nil { c.Data["json"] = lib.JSONS{Code: 201, Msg: "e!"} c.ServeJSON() return } if admin_r.Id != admin_r_a.Admin_master { c.Data["json"] = lib.JSONS{Code: 202, Msg: "e!"} c.ServeJSON() return } User_tokey := Admin.Add_Tokey(admin_r_a.Admin_uuid) c.Ctx.SetCookie("User_tokey", User_tokey, time.Second*60*60) } else { c.Data["json"] = lib.JSONS{Code: 203, Msg: "e!"} c.ServeJSON() return } System.Add_UserLogs(admin_r.Admin_uuid,"用户管理", "无钥匙进入", Admin_uuid) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} c.ServeJSON() return } // 用户管理 func (c *UserController) User_html() { // 验证登录 b_, admin_r := lib.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey")) if !b_ { c.Ctx.Redirect(302, "Login") return } page, _ := c.GetInt("page") println(page) if page < 1 { page = 1 } Name := c.GetString("Name") c.Data["Name"] = Name c.Data["Power_List"] = Admin.Read_Power_List_ALL_Power_Administration(0) Adminpower, _ := Admin.Read_AdminPower_ById(admin_r.Admin_power) var cnt int64 if Adminpower.Power_User_r != 1 { c.Ctx.Redirect(302, "Login") return } c.Data["List"], cnt = Admin.Read_Admin_List_ALL_User(page, Name, admin_r.Id) fmt.Println("cnt:", cnt) page_size := math.Ceil(float64(cnt) / float64(conf.Page_size)) c.Data["Page"] = page c.Data["Page_size"] = page_size c.Data["Pages"] = lib.Func_page(int64(page), int64(page_size)) c.Data["cnt"] = cnt c.TplName = "User/User.html" } func (c *UserController) User_() { // 验证登录 b_, _ := lib.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey")) if !b_ { c.Ctx.Redirect(302, "Login") return } id, _ := c.GetInt("id") c.Data["id"] = id c.Data["Power_List"] = Admin.Read_Power_List_ALL_Power_Administration(0) Admin_uuid := c.GetString("Admin_uuid") c.Data["Admin_uuid"] = Admin_uuid if len(Admin_uuid) > 0 { c.Data["Date"], _ = Admin.Read_Admin_ByUuid(Admin_uuid) } c.TplName = "User/User-.html" } func (c *UserController) User_Info() { // 验证登录 b_, admin_r := lib.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey")) if !b_ { c.Ctx.Redirect(302, "Login") return } c.Data["id"] = admin_r.Id c.Data["Date"] = admin_r c.TplName = "User/User-Info.html" } func (c *UserController) User_Info_() { // 验证登录 b_, admin_r := lib.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey")) if !b_ { c.Ctx.Redirect(302, "Login") return } c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: admin_r} c.ServeJSON() return } func (c *UserController) User_Get() { // 验证登录 b_, admin_r := lib.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey")) if !b_ { c.Ctx.Redirect(302, "Login") return } type Admin_ struct { Admin_uuid string Admin_power int // 权限 Admin_name string // Admin_telephone string // 电话 Admin_mail string // 邮箱 Admin_gender int // 性别 0未知 1男 2女 Admin_text string // 详情 Admin_rh int // 显示湿度 } Admin_r := Admin_{} Admin_r.Admin_rh = admin_r.Admin_rh Admin_r.Admin_uuid = admin_r.Admin_uuid Admin_r.Admin_power = admin_r.Admin_power Admin_r.Admin_name = admin_r.Admin_name Admin_r.Admin_telephone = admin_r.Admin_telephone Admin_r.Admin_mail = admin_r.Admin_mail Admin_r.Admin_gender = admin_r.Admin_gender Admin_r.Admin_text = admin_r.Admin_text c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: Admin_r} c.ServeJSON() return } func (c *UserController) User_Post() { // 验证登录 b_, admin_r := lib.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey")) if !b_ { c.Ctx.Redirect(302, "Login") return } //Adminpower,_ := Admin.Read_AdminPower_ById(admin_r.Admin_power) // //if Adminpower.Power_User_r != 1 { // c.Data["json"] = lib.JSONS{Code: 307, Msg: "Adminpower.Power_User_r!"} // c.ServeJSON() // return //} Admin_uuid := c.GetString("Admin_uuid") Admin_name := c.GetString("Admin_name") Admin_user := c.GetString("Admin_user") Admin_pass := c.GetString("Admin_pass") Admin_telephone := c.GetString("Admin_telephone") Admin_mail := c.GetString("Admin_mail") Admin_text := c.GetString("Admin_text") Admin_gender, _ := c.GetInt("Admin_gender") Admin_power, _ := c.GetInt("Admin_power") var_ := Admin.Admin{ Admin_uuid: uuid.NewV4().String(), Admin_name: Admin_name, Admin_master: admin_r.Id, Admin_user: Admin_user, Admin_telephone: Admin_telephone, Admin_mail: Admin_mail, Admin_text: Admin_text, Admin_pass: Admin_pass, Admin_gender: Admin_gender, Admin_power: Admin_power, T_State: 1, } if len(Admin_pass) > 0 && len(Admin_pass) < 7 { c.Data["json"] = lib.JSONS{Code: 302, Msg: "Admin_pass Err!"} c.ServeJSON() return } if len(Admin_uuid) > 0 { var_.Admin_uuid = Admin_uuid err, _ := Admin.ReadLogin_verification(var_.Admin_user, var_.Admin_pass) if err == nil { c.Data["json"] = lib.JSONS{Code: 307, Msg: "ReadLogin_verification !"} c.ServeJSON() return } err, r_u := Admin.Read_Admin_ByAdmin_uuid(Admin_uuid) if err != nil { c.Data["json"] = lib.JSONS{Code: 302, Msg: "修改失败!"} c.ServeJSON() return } // 修改密码只有本人 if len(Admin_pass) > 0 && r_u.Id != admin_r.Id { c.Data["json"] = lib.JSONS{Code: 302, Msg: "r_u != admin_r!"} c.ServeJSON() return } err = Admin.Update_Admin_ById_Basics(var_) if err != nil { c.Data["json"] = lib.JSONS{Code: 302, Msg: "修改失败!"} c.ServeJSON() return } } else { s_pass := uuid.NewV4().String()[:6] h := md5.New() h.Write([]byte(s_pass)) s := hex.EncodeToString(h.Sum(nil)) fmt.Println(s) var_.Admin_pass = s // 是否 内部人员 //Adminpower,_ := Admin.Read_AdminPower_ById(admin_r.Admin_power) //if Adminpower.Power_Administration == 1 { // var_.Admin_master = 1 //} err, _ := Admin.Read_Admin_Admin_user(Admin_user) if err == nil { c.Data["json"] = lib.JSONS{Code: 302, Msg: "账户重复!"} c.ServeJSON() return } _, err = Admin.Add_Admin(var_) if err != nil { c.Data["json"] = lib.JSONS{Code: 301, Msg: "添加失败!"} c.ServeJSON() return } var_.Admin_pass = "****************" System.Add_UserLogs_T(admin_r.Admin_uuid,"用户管理", "操作", var_) c.Data["json"] = lib.JSONS{Code: 210, Msg: "ok!", Data: s_pass} c.ServeJSON() return } var_.Admin_pass = "****************" System.Add_UserLogs_T(admin_r.Admin_uuid,"用户管理", "操作", var_) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} c.ServeJSON() return } func (c *UserController) User_Del() { // 验证登录 b_, admin_r := lib.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey")) if !b_ { c.Ctx.Redirect(302, "Login") return } Admin_uuid := c.GetString("Admin_uuid") if len(Admin_uuid) > 0 { admin_r_lod, err := Admin.Read_Admin_ByUuid(Admin_uuid) if err != nil { c.Data["json"] = lib.JSONS{Code: 201, Msg: "e!"} c.ServeJSON() return } if admin_r_lod.Admin_master < admin_r.Admin_master { c.Data["json"] = lib.JSONS{Code: 202, Msg: "e!"} c.ServeJSON() return } Admin.Update_Delete_Admin_ByAdmin_uuid(Admin_uuid) } else { c.Data["json"] = lib.JSONS{Code: 203, Msg: "e!"} c.ServeJSON() return } System.Add_UserLogs_T(admin_r.Admin_uuid,"用户管理", "删除", Admin_uuid) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} c.ServeJSON() return } // 权限管理 func (c *UserController) Power_html() { // 验证登录 b_, admin_r := lib.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey")) if !b_ { c.Ctx.Redirect(302, "Login") return } if admin_r.Id != 1 { c.Ctx.Redirect(302, "Login") return } if admin_r.Admin_master != 0 { c.Ctx.Redirect(302, "Login") return } c.Data["Admin_Power"], _ = Admin.Read_AdminPower_ById(admin_r.Admin_power) fmt.Println("登录OK") page, _ := c.GetInt("page") println(page) if page < 1 { page = 1 } Name := c.GetString("Name") c.Data["Name"] = Name var cnt int64 c.Data["List"], cnt = Admin.Read_Power_List_ALL(page, Name) fmt.Println("cnt:", cnt) page_size := math.Ceil(float64(cnt) / float64(conf.Page_size)) c.Data["Page"] = page c.Data["Page_size"] = page_size c.Data["Pages"] = lib.Func_page(int64(page), int64(page_size)) c.Data["cnt"] = cnt c.TplName = "User/Power.html" } func (c *UserController) Power_() { // 验证登录 b_, admin_r := lib.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey")) if !b_ { c.Ctx.Redirect(302, "Login") return } if admin_r.Id != 1 { c.Ctx.Redirect(302, "Login") return } if admin_r.Admin_master != 0 { c.Ctx.Redirect(302, "Login") return } id, _ := c.GetInt("id") c.Data["id"] = id if id > 0 { c.Data["Date"], _ = Admin.Read_AdminPower_ById(id) } c.TplName = "User/Power-.html" } func (c *UserController) Power_Post() { var err error // 验证登录 b_, admin_r := lib.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey")) if !b_ { c.Ctx.Redirect(302, "Login") return } if admin_r.Id != 1 { c.Ctx.Redirect(302, "Login") return } if admin_r.Admin_master != 0 { c.Ctx.Redirect(302, "Login") return } id, _ := c.GetInt("id") c.Data["id"] = id Power_name := c.GetString("Power_name") Power_Administration, _ := c.GetInt("Power_Administration") Power_User_r, _ := c.GetInt("Power_User_r") Power_User_entry, _ := c.GetInt("Power_User_entry") Power_Device_r, _ := c.GetInt("Power_Device_r") Power_Device_a, _ := c.GetInt("Power_Device_a") Power_Device_Parameter_e, _ := c.GetInt("Power_Device_Parameter_e") Power_DeviceSensor_Parameter_e, _ := c.GetInt("Power_DeviceSensor_Parameter_e") Power_Device_Bind_e, _ := c.GetInt("Power_Device_Bind_e") Power_DeviceSensor_Compensate_e, _ := c.GetInt("Power_DeviceSensor_Compensate_e") Power_DeviceSensor_Class, _ := c.GetInt("Power_DeviceSensor_Class") Power_DataScreen_r, _ := c.GetInt("Power_DataScreen_r") Logs_Sys_r, _ := c.GetInt("Logs_Sys_r") Logs_User_r, _ := c.GetInt("Logs_User_r") var_ := Admin.AdminPower{ Power_name: Power_name, Power_Administration: Power_Administration, Power_User_r: Power_User_r, Power_User_entry: Power_User_entry, Power_Device_r: Power_Device_r, Power_Device_a: Power_Device_a, Power_Device_Parameter_e: Power_Device_Parameter_e, Power_DeviceSensor_Parameter_e: Power_DeviceSensor_Parameter_e, Power_Device_Bind_e: Power_Device_Bind_e, Power_DeviceSensor_Class: Power_DeviceSensor_Class, Power_DeviceSensor_Compensate_e: Power_DeviceSensor_Compensate_e, Power_DataScreen_r: Power_DataScreen_r, Logs_Sys_r: Logs_Sys_r, Logs_User_r: Logs_User_r, T_State: 1, } if id > 0 { var_.Id = id fmt.Println("Power_DataScreen_r:", var_.Power_DataScreen_r) err = Admin.Update_AdminPower_ById_Basics(var_) if err != nil { c.Data["json"] = lib.JSONS{Code: 302, Msg: "修改失败!"} c.ServeJSON() return } } else { _, err = Admin.Add_AdminPower(var_) if err != nil { c.Data["json"] = lib.JSONS{Code: 301, Msg: "添加失败!"} c.ServeJSON() return } } System.Add_UserLogs_T(admin_r.Admin_uuid,"权限管理", "权限操作", var_) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} c.ServeJSON() return } func (c *UserController) Power_Del() { // 验证登录 b_, admin_r := lib.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey")) if !b_ { c.Ctx.Redirect(302, "Login") return } if admin_r.Id != 1 { c.Ctx.Redirect(302, "Login") return } if admin_r.Admin_master != 0 { c.Data["json"] = lib.JSONS{Code: 203, Msg: "没有权限!"} c.ServeJSON() return } id, _ := c.GetInt("Id") c.Data["id"] = id if id > 0 { admin_r_lod, err := Admin.Read_AdminPower_ById(id) if err != nil { c.Data["json"] = lib.JSONS{Code: 201, Msg: "e!"} c.ServeJSON() return } Admin_List_ALL_AdminPower := Admin.Read_Admin_List_ALL_AdminPower(admin_r_lod.Id) if len(Admin_List_ALL_AdminPower) > 0 { S_Msg := "无法删除!【" for _, v := range Admin_List_ALL_AdminPower { S_Msg += v.Admin_name + "," } c.Data["json"] = lib.JSONS{Code: 205, Msg: S_Msg + "】 属于该权限!删除这些账号后即可删除! "} c.ServeJSON() return } Admin.Update_Delete_AdminPower_Byid(admin_r_lod.Id) } else { c.Data["json"] = lib.JSONS{Code: 204, Msg: "e!"} c.ServeJSON() return } System.Add_UserLogs(admin_r.Admin_uuid,"权限管理", "权限删除", strconv.Itoa(id)) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} c.ServeJSON() return } // 同步面板 func (c *UserController) Panel_plan_Syn() { // 验证登录 b_, admin_r := lib.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey")) if !b_ { c.Data["json"] = lib.JSONS{Code: 201, Msg: "User_tokey Err!"} c.ServeJSON() return } s_, user_r := Admin.Read_Admin_ByAdmin_uuid(c.GetString("Admin_uuid")) if s_ != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: "Admin_uuid Err!"} c.ServeJSON() return } user_r.Admin_panel_plan = admin_r.Admin_panel_plan Admin.Update_Admin(user_r,"Admin_panel_plan") System.Add_UserLogs(admin_r.Admin_uuid,"设备管理", "同步面板操作", "面板:"+admin_r.Admin_panel_plan+"|"+admin_r.Admin_uuid+"->"+user_r.Admin_uuid) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} c.ServeJSON() return }