package controllers import ( "ColdVerify_server/conf" "ColdVerify_server/lib" "ColdVerify_server/models/Account" "ColdVerify_server/models/Distributor" "ColdVerify_server/models/System" "math" beego "github.com/beego/beego/v2/server/web" ) type UserController struct { beego.Controller } // 获取- func (c *UserController) Get() { // 验证登录 User_is, User_r _, User_is := Account.Verification_Admin(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey")) if !User_is { c.Data["json"] = lib.JSONS{Code: 201, Msg: "请重新登录!"} c.ServeJSON() return } Id, err := c.GetInt("Id") if err != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id 错误!"} c.ServeJSON() return } r, is := Account.Read_User_ById(Id) if !is { c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id 错误!"} c.ServeJSON() return } c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r} c.ServeJSON() return } // 列表 - func (c *UserController) List() { // 验证登录 User_is, User_r User_r, User_is := Account.Verification_Admin(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey")) if !User_is { c.Data["json"] = lib.JSONS{Code: 201, Msg: "请重新登录!"} c.ServeJSON() return } 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") var T_Distributor_id string // 优先使用经销商id if len(User_r.T_Distributor_id) > 0 { T_Distributor_id = User_r.T_Distributor_id } else { T_Distributor_id = c.GetString("T_Distributor_id") } var cnt int64 distributorList := Distributor.Read_Distributor_List_ALL("") distributorMap := Distributor.DistributorListToMap(distributorList) List, cnt := Account.Read_User_List(T_Distributor_id, T_name, page, page_z, distributorMap) page_size := math.Ceil(float64(cnt) / float64(page_z)) r_jsons.List = List r_jsons.Page = page r_jsons.Page_size = int(page_size) r_jsons.Pages = lib.Func_page(int64(page), int64(page_size)) r_jsons.Num = int(cnt) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons} c.ServeJSON() return } // 添加- func (c *UserController) Add() { // 验证登录 User_is, User_r user_r, User_is := Account.Verification_Admin(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey")) if !User_is { c.Data["json"] = lib.JSONS{Code: 201, Msg: "请重新登录!"} c.ServeJSON() return } //T_power, _ := c.GetInt("T_power") T_name := c.GetString("T_name") T_pass := c.GetString("T_pass") T_passstr := c.GetString("T_passstr") T_Distributor_id := c.GetString("T_Distributor_id") T_pid, _ := c.GetInt("T_pid") // 父级ID // 如果T_pid大于0,则需要获取该T_pid的公司的T_Distributor_id if T_pid > 0 { parentUser, is := Account.Read_User_ById(T_pid) if !is { c.Data["json"] = lib.JSONS{Code: 202, Msg: "父级公司不存在!"} c.ServeJSON() return } T_Distributor_id = parentUser.T_Distributor_id } else if len(user_r.T_Distributor_id) > 0 { T_Distributor_id = user_r.T_Distributor_id } var_ := Account.User{ //T_power: T_power, T_name: T_name, T_pass: T_pass, T_passstr: T_passstr, T_Show: 1, T_State: 1, T_Distributor_id: T_Distributor_id, // 经销商id T_pid: T_pid, // 父级ID } if _, is := Account.Read_UserByT_name(T_name); is { c.Data["json"] = lib.JSONS{Code: 202, Msg: "公司名称重复!"} c.ServeJSON() return } Id, is := Account.Add_User(var_) if !is { c.Data["json"] = lib.JSONS{Code: 202, Msg: "添加失败!"} c.ServeJSON() return } // 更新路径 err := Account.UpdateUserPath(int(Id)) if err != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: "更新路径失败!"} c.ServeJSON() return } System.Add_UserLogs_T(user_r.T_uuid, "用户管理", "添加", var_) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: Id} c.ServeJSON() return } // 修改- func (c *UserController) Up() { // 验证登录 User_is, User_r user_r, User_is := Account.Verification_Admin(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey")) if !User_is { c.Data["json"] = lib.JSONS{Code: 201, Msg: "请重新登录!"} 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_passstr := c.GetString("T_passstr") T_Show, T_Show_err := c.GetInt("T_Show") T_uuid := c.GetString("T_uuid") r, is := Account.Read_User(T_uuid) if !is { c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id 错误!"} c.ServeJSON() return } if _, is := Account.Read_UserByT_name(T_name); is && r.T_name != T_name { c.Data["json"] = lib.JSONS{Code: 202, Msg: "公司名称重复!"} c.ServeJSON() return } // ....... //if T_power_err == nil { // r.T_power = T_power //} if len(T_name) > 0 { r.T_name = T_name } if len(T_pass) > 0 { r.T_pass = T_pass } if len(T_passstr) > 0 { r.T_passstr = T_passstr } if T_Show_err == nil { r.T_Show = T_Show } // ....... if !Account.Update_User(r, "T_name", "T_pass", "T_passstr", "T_Show") { c.Data["json"] = lib.JSONS{Code: 202, Msg: "修改失败!"} c.ServeJSON() return } // 更新路径 err := Account.UpdateUserPath(r.Id) if err != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: "更新路径失败!"} c.ServeJSON() return } System.Add_UserLogs_T(user_r.T_uuid, "用户管理", "修改", r) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} c.ServeJSON() return } // 删除- func (c *UserController) Del() { // 验证登录 User_is, User_r user_r, User_is := Account.Verification_Admin(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey")) if !User_is { c.Data["json"] = lib.JSONS{Code: 201, Msg: "请重新登录!"} c.ServeJSON() return } T_uuid := c.GetString("T_uuid") if r, is := Account.Read_User(T_uuid); is { if !Account.Delete_User_(r) { c.Data["json"] = lib.JSONS{Code: 202, Msg: "删除失败!"} c.ServeJSON() return } System.Add_UserLogs_T(user_r.T_uuid, "用户管理", "删除", r) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} c.ServeJSON() return } c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id 错误!"} c.ServeJSON() return } // 修改- func (c *UserController) UpPassword() { // 验证登录 User_is, User_r user_r, User_is := Account.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey")) if !User_is { c.Data["json"] = lib.JSONS{Code: 201, Msg: "请重新登录!"} c.ServeJSON() return } T_oldpass := c.GetString("T_oldpass") T_pass := c.GetString("T_pass") T_passstr := c.GetString("T_passstr") if T_oldpass != user_r.T_pass { c.Data["json"] = lib.JSONS{Code: 202, Msg: "旧密码错误!"} c.ServeJSON() return } if len(T_pass) > 0 { user_r.T_pass = T_pass } if len(T_passstr) > 0 { user_r.T_passstr = T_passstr } // ....... if !Account.Update_User(user_r, "T_pass", "T_passstr") { c.Data["json"] = lib.JSONS{Code: 202, Msg: "修改失败!"} c.ServeJSON() return } System.Add_UserLogs_T(user_r.T_uuid, "用户管理", "修改密码", user_r) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} c.ServeJSON() return } // 列表 - func (c *UserController) Signature_List() { // 验证登录 User_is, User_r user_r, User_is := Account.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey")) if !User_is { c.Data["json"] = lib.JSONS{Code: 201, Msg: "请重新登录!"} c.ServeJSON() return } 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") var cnt int64 var distributorMap map[string]string //distributorList := Distributor.Read_Distributor_List_ALL("") //distributorMap := Distributor.DistributorListToMap(distributorList) List, cnt := Account.Read_UserSignature_List(user_r.T_uuid, T_name, page, page_z, distributorMap) page_size := math.Ceil(float64(cnt) / float64(page_z)) r_jsons.List = List r_jsons.Page = page r_jsons.Page_size = int(page_size) r_jsons.Pages = lib.Func_page(int64(page), int64(page_size)) r_jsons.Num = int(cnt) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons} c.ServeJSON() return } // 添加- func (c *UserController) Signature_Add() { // 验证登录 User_is, User_r user_r, User_is := Account.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey")) if !User_is { c.Data["json"] = lib.JSONS{Code: 201, Msg: "请重新登录!"} c.ServeJSON() return } T_name := c.GetString("T_name") T_signature := c.GetString("T_signature") var_ := Account.UserSignature{ T_name: T_name, T_signature: T_signature, T_State: 1, T_uuid: user_r.T_uuid, // 用户uuid T_Distributor_id: user_r.T_Distributor_id, // 经销商id } if _, is := Account.Read_UserSignatureByT_name(user_r.T_uuid, T_name); is { c.Data["json"] = lib.JSONS{Code: 202, Msg: "名称重复!"} c.ServeJSON() return } Id, is := Account.Add_UserSignature(var_) if !is { c.Data["json"] = lib.JSONS{Code: 202, Msg: "添加失败!"} c.ServeJSON() return } System.Add_UserLogs_T(user_r.T_uuid, "用户管理", "添加签名", var_) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: Id} c.ServeJSON() return } // 修改- func (c *UserController) Signature_Up() { // 验证登录 User_is, User_r user_r, User_is := Account.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey")) if !User_is { c.Data["json"] = lib.JSONS{Code: 201, Msg: "请重新登录!"} c.ServeJSON() return } Id, _ := c.GetInt("Id") T_name := c.GetString("T_name") T_signature := c.GetString("T_signature") r, is := Account.Read_UserSignature_ById(Id) if !is { c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id 错误!"} c.ServeJSON() return } if r2, is := Account.Read_UserSignatureByT_name(user_r.T_uuid, T_name); is && r2.Id != r.Id { c.Data["json"] = lib.JSONS{Code: 202, Msg: "名称重复!"} c.ServeJSON() return } // ....... //if T_power_err == nil { // r.T_power = T_power //} if len(T_name) > 0 { r.T_name = T_name } if len(T_signature) > 0 { r.T_signature = T_signature } // ....... if !Account.Update_UserSignature(r, "T_name", "T_signature") { c.Data["json"] = lib.JSONS{Code: 202, Msg: "修改失败!"} c.ServeJSON() return } System.Add_UserLogs_T(user_r.T_uuid, "用户管理", "修改签名", r) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} c.ServeJSON() return } // 删除- func (c *UserController) Signature_Del() { user_r, User_is := Account.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey")) if !User_is { c.Data["json"] = lib.JSONS{Code: 201, Msg: "请重新登录!"} c.ServeJSON() return } Id, _ := c.GetInt("Id") r, is := Account.Read_UserSignature_ById(Id) if !is { c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id 错误!"} c.ServeJSON() return } if !Account.Delete_UserSignature(r) { c.Data["json"] = lib.JSONS{Code: 202, Msg: "删除失败!"} c.ServeJSON() return } System.Add_UserLogs_T(user_r.T_uuid, "用户管理", "删除签名", r) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} c.ServeJSON() return } // 树形结构展示公司列表 func (c *UserController) TreeList() { // 验证登录 User_is, User_r User_r, User_is := Account.Verification_Admin(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey")) if !User_is { c.Data["json"] = lib.JSONS{Code: 201, Msg: "请重新登录!"} c.ServeJSON() return } var T_Distributor_id string // 优先使用经销商id if len(User_r.T_Distributor_id) > 0 { T_Distributor_id = User_r.T_Distributor_id } else { T_Distributor_id = c.GetString("T_Distributor_id") } // 获取名称搜索参数 T_name := c.GetString("T_name") // 获取分销商映射 distributorList := Distributor.Read_Distributor_List_ALL("") distributorMap := Distributor.DistributorListToMap(distributorList) // 获取所有用户数据(支持名称过滤) var users []Account.User_R var err error if len(T_name) > 0 { users, err = Account.Read_User_Tree_List_WithFilter(T_Distributor_id, T_name, distributorMap) } else { users, err = Account.Read_User_Tree_List(T_Distributor_id, distributorMap) } if err != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: "获取数据失败!"} c.ServeJSON() return } // 构建树形结构 tree := Account.BuildUserTree(users) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: tree} c.ServeJSON() return } // 移动公司到另一个公司下面 func (c *UserController) MoveToParent() { // 验证登录 User_is, User_r user_r, User_is := Account.Verification_Admin(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey")) if !User_is { c.Data["json"] = lib.JSONS{Code: 201, Msg: "请重新登录!"} c.ServeJSON() return } T_id, err := c.GetInt("T_id") if err != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: "用户ID错误!"} c.ServeJSON() return } T_pid, err := c.GetInt("T_pid") if err != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: "父级ID错误!"} c.ServeJSON() return } // 执行移动操作 err = Account.MoveUserToParent(T_id, T_pid) if err != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: err.Error()} c.ServeJSON() return } System.Add_UserLogs_T(user_r.T_uuid, "用户管理", "移动公司", map[string]interface{}{ "Id": T_id, "newParentId": T_pid, }) c.Data["json"] = lib.JSONS{Code: 200, Msg: "移动成功!"} c.ServeJSON() return }