|
@@ -12,6 +12,7 @@ import (
|
|
uuid "github.com/satori/go.uuid"
|
|
uuid "github.com/satori/go.uuid"
|
|
"math"
|
|
"math"
|
|
"strconv"
|
|
"strconv"
|
|
|
|
+ "strings"
|
|
"time"
|
|
"time"
|
|
)
|
|
)
|
|
|
|
|
|
@@ -38,7 +39,7 @@ func (c *UserController) User_WxQRCode() {
|
|
}
|
|
}
|
|
|
|
|
|
// 公司管理
|
|
// 公司管理
|
|
-func (c *UserController) Company_List() {
|
|
|
|
|
|
+func (c *UserController) Company_Tree() {
|
|
// 验证登录
|
|
// 验证登录
|
|
b_, admin_r := lib.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey"))
|
|
b_, admin_r := lib.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey"))
|
|
if !b_ {
|
|
if !b_ {
|
|
@@ -50,18 +51,29 @@ func (c *UserController) Company_List() {
|
|
var r_jsons lib.R_JSONS
|
|
var r_jsons lib.R_JSONS
|
|
|
|
|
|
T_name := c.GetString("T_name")
|
|
T_name := c.GetString("T_name")
|
|
- r_jsons.Data, r_jsons.Num = Account.Read_Company_List(admin_r, T_name)
|
|
|
|
|
|
+ r_jsons.Data, r_jsons.Num = Account.Read_Company_Tree(admin_r, T_name)
|
|
|
|
|
|
c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
|
|
c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
|
|
c.ServeJSON()
|
|
c.ServeJSON()
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|
|
-func (c *UserController) Company_All() {
|
|
|
|
|
|
+func (c *UserController) Company_List() {
|
|
|
|
|
|
var r_jsons lib.R_JSONS
|
|
var r_jsons lib.R_JSONS
|
|
|
|
|
|
- r_jsons.Data = Account.Read_Company_All()
|
|
|
|
|
|
+ page, _ := c.GetInt("page")
|
|
|
|
+ if page < 1 {
|
|
|
|
+ page = 1
|
|
|
|
+ }
|
|
|
|
+ page_z, _ := c.GetInt("page_z")
|
|
|
|
+ if page_z < 1 {
|
|
|
|
+ page_z = conf.Page_size
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ r_jsons.Data, r_jsons.Num = Account.Read_Company_List(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.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
|
|
c.ServeJSON()
|
|
c.ServeJSON()
|
|
@@ -214,6 +226,7 @@ func (c *UserController) User_List() {
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ Account.Read_Power_All_Map()
|
|
r_jsons.Data, r_jsons.Num = Account.Read_Admin_List(T_pid, T_name, page, page_z)
|
|
r_jsons.Data, r_jsons.Num = Account.Read_Admin_List(T_pid, T_name, page, page_z)
|
|
r_jsons.Page = page
|
|
r_jsons.Page = page
|
|
r_jsons.Page_size = int(math.Ceil(float64(r_jsons.Num) / float64(page_z)))
|
|
r_jsons.Page_size = int(math.Ceil(float64(r_jsons.Num) / float64(page_z)))
|
|
@@ -290,11 +303,15 @@ func (c *UserController) User_Post() {
|
|
T_phone := c.GetString("T_phone")
|
|
T_phone := c.GetString("T_phone")
|
|
T_mail := c.GetString("T_mail")
|
|
T_mail := c.GetString("T_mail")
|
|
T_wx := c.GetString("T_wx")
|
|
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 {
|
|
if len(T_name) > 0 {
|
|
admin_r.T_name = T_name
|
|
admin_r.T_name = T_name
|
|
}
|
|
}
|
|
- if len(T_pass) > 0 {
|
|
|
|
|
|
+ if len(T_pass) >= 8 {
|
|
admin_r.T_pass = T_pass
|
|
admin_r.T_pass = T_pass
|
|
}
|
|
}
|
|
if len(T_phone) > 0 {
|
|
if len(T_phone) > 0 {
|
|
@@ -307,12 +324,6 @@ func (c *UserController) User_Post() {
|
|
admin_r.T_wx = T_wx
|
|
admin_r.T_wx = T_wx
|
|
}
|
|
}
|
|
|
|
|
|
- if len(T_pass) < 8 {
|
|
|
|
- c.Data["json"] = lib.JSONS{Code: 203, Msg: "Admin_pass Err!"}
|
|
|
|
- c.ServeJSON()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
is := Account.Update_Admin(admin_r, "T_name", "T_pass", "T_phone", "T_mail", "T_wx")
|
|
is := Account.Update_Admin(admin_r, "T_name", "T_pass", "T_phone", "T_mail", "T_wx")
|
|
if !is {
|
|
if !is {
|
|
c.Data["json"] = lib.JSONS{Code: 204, Msg: "修改失败!"}
|
|
c.Data["json"] = lib.JSONS{Code: 204, Msg: "修改失败!"}
|
|
@@ -420,10 +431,17 @@ func (c *UserController) User_Edit() {
|
|
if T_power_err == nil {
|
|
if T_power_err == nil {
|
|
r.T_power = T_power
|
|
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 {
|
|
if len(T_name) > 0 {
|
|
r.T_name = T_name
|
|
r.T_name = T_name
|
|
}
|
|
}
|
|
- if len(T_pass) > 0 {
|
|
|
|
|
|
+ if len(T_pass) >= 8 {
|
|
r.T_pass = T_pass
|
|
r.T_pass = T_pass
|
|
}
|
|
}
|
|
if len(T_phone) > 0 {
|
|
if len(T_phone) > 0 {
|
|
@@ -436,12 +454,6 @@ func (c *UserController) User_Edit() {
|
|
r.T_wx = T_wx
|
|
r.T_wx = T_wx
|
|
}
|
|
}
|
|
|
|
|
|
- if len(T_pass) < 8 {
|
|
|
|
- c.Data["json"] = lib.JSONS{Code: 203, Msg: "Admin_pass Err!"}
|
|
|
|
- c.ServeJSON()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
is := Account.Update_Admin(r, "T_power", "T_pid", "T_name", "T_pass", "T_phone", "T_mail", "T_wx")
|
|
is := Account.Update_Admin(r, "T_power", "T_pid", "T_name", "T_pass", "T_phone", "T_mail", "T_wx")
|
|
if !is {
|
|
if !is {
|
|
c.Data["json"] = lib.JSONS{Code: 204, Msg: "修改失败!"}
|
|
c.Data["json"] = lib.JSONS{Code: 204, Msg: "修改失败!"}
|
|
@@ -516,7 +528,12 @@ func (c *UserController) User_Home() {
|
|
power, _ := Account.Read_Power_ById(admin_r.T_power)
|
|
power, _ := Account.Read_Power_ById(admin_r.T_power)
|
|
company, _ := Account.Read_Company_ById(admin_r.T_pid)
|
|
company, _ := Account.Read_Company_ById(admin_r.T_pid)
|
|
info.T_Days = int(time.Now().Sub(company.CreateTime).Hours() / 24)
|
|
info.T_Days = int(time.Now().Sub(company.CreateTime).Hours() / 24)
|
|
- info.Admin = Account.Read_Admin_List_T_pids(admin_r.T_pid)
|
|
|
|
|
|
+ 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)
|
|
info.WarningNum = Warning.Read_Warning_ALL_T_State_Count(admin_r.T_pid, 1, power.T_warning)
|
|
info.UntreatedWarningNum = Warning.Read_Warning_ALL_T_State_Count(admin_r.T_pid, 3, power.T_warning)
|
|
info.UntreatedWarningNum = Warning.Read_Warning_ALL_T_State_Count(admin_r.T_pid, 3, power.T_warning)
|
|
}
|
|
}
|
|
@@ -543,7 +560,6 @@ func (c *UserController) Admin_List() {
|
|
var r_jsons lib.R_JSONS
|
|
var r_jsons lib.R_JSONS
|
|
|
|
|
|
page, _ := c.GetInt("page")
|
|
page, _ := c.GetInt("page")
|
|
- println(page)
|
|
|
|
if page < 1 {
|
|
if page < 1 {
|
|
page = 1
|
|
page = 1
|
|
}
|
|
}
|
|
@@ -555,6 +571,7 @@ func (c *UserController) Admin_List() {
|
|
T_name := c.GetString("T_name")
|
|
T_name := c.GetString("T_name")
|
|
T_pid := 0
|
|
T_pid := 0
|
|
|
|
|
|
|
|
+ Account.Read_Power_All_Map()
|
|
r_jsons.Data, r_jsons.Num = Account.Read_Admin_List(T_pid, T_name, page, page_z)
|
|
r_jsons.Data, r_jsons.Num = Account.Read_Admin_List(T_pid, T_name, page, page_z)
|
|
r_jsons.Page = page
|
|
r_jsons.Page = page
|
|
r_jsons.Page_size = int(math.Ceil(float64(r_jsons.Num) / float64(page_z)))
|
|
r_jsons.Page_size = int(math.Ceil(float64(r_jsons.Num) / float64(page_z)))
|
|
@@ -680,10 +697,17 @@ func (c *UserController) Admin_Edit() {
|
|
if T_power_err == nil {
|
|
if T_power_err == nil {
|
|
r.T_power = T_power
|
|
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 {
|
|
if len(T_name) > 0 {
|
|
r.T_name = T_name
|
|
r.T_name = T_name
|
|
}
|
|
}
|
|
- if len(T_pass) > 0 {
|
|
|
|
|
|
+ if len(T_pass) >= 8 {
|
|
r.T_pass = T_pass
|
|
r.T_pass = T_pass
|
|
}
|
|
}
|
|
if len(T_phone) > 0 {
|
|
if len(T_phone) > 0 {
|
|
@@ -696,19 +720,13 @@ func (c *UserController) Admin_Edit() {
|
|
r.T_wx = T_wx
|
|
r.T_wx = T_wx
|
|
}
|
|
}
|
|
|
|
|
|
- if len(T_pass) < 8 {
|
|
|
|
- c.Data["json"] = lib.JSONS{Code: 202, Msg: "密码异常!"}
|
|
|
|
- c.ServeJSON()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
is := Account.Update_Admin(r, "T_power", "T_name", "T_pass", "T_phone", "T_mail", "T_wx")
|
|
is := Account.Update_Admin(r, "T_power", "T_name", "T_pass", "T_phone", "T_mail", "T_wx")
|
|
if !is {
|
|
if !is {
|
|
c.Data["json"] = lib.JSONS{Code: 204, Msg: "修改失败!"}
|
|
c.Data["json"] = lib.JSONS{Code: 204, Msg: "修改失败!"}
|
|
c.ServeJSON()
|
|
c.ServeJSON()
|
|
return
|
|
return
|
|
}
|
|
}
|
|
- r.T_pass = "******"
|
|
|
|
|
|
+ r.T_pass = "********"
|
|
System.Add_UserLogs_T(admin_r.T_uuid, "用户管理", "编辑", r)
|
|
System.Add_UserLogs_T(admin_r.T_uuid, "用户管理", "编辑", r)
|
|
c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
|
|
c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
|
|
c.ServeJSON()
|
|
c.ServeJSON()
|
|
@@ -749,8 +767,8 @@ func (c *UserController) Admin_Del() {
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
-// 绑定公司
|
|
|
|
-func (c *UserController) Admin_Bind_Company() {
|
|
|
|
|
|
+// 报警通知的用户列表
|
|
|
|
+func (c *UserController) User_Notice_List() {
|
|
// 验证登录
|
|
// 验证登录
|
|
b_, admin_r := lib.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey"))
|
|
b_, admin_r := lib.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey"))
|
|
if !b_ {
|
|
if !b_ {
|
|
@@ -758,13 +776,49 @@ func (c *UserController) Admin_Bind_Company() {
|
|
c.ServeJSON()
|
|
c.ServeJSON()
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ type R_JSONS struct {
|
|
|
|
+ //必须的大写开头
|
|
|
|
+ AdminList []Account.Admin_R
|
|
|
|
+ UserList []Account.Admin_R
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ var r_jsons R_JSONS
|
|
|
|
+
|
|
|
|
+ T_pid := admin_r.T_pid
|
|
|
|
+ if T_pid == 0 {
|
|
|
|
+ T_pid, _ = strconv.Atoi(c.Ctx.Request.Header.Get("T_pid"))
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 绑定公司id的内部用户列表
|
|
|
|
+ r_jsons.AdminList = Account.Read_Admin_List_T_pids(T_pid)
|
|
|
|
+ // 绑定公司id的公司用户列表
|
|
|
|
+ r_jsons.UserList = Account.Read_Admin_List_T_pid(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
|
|
|
|
+
|
|
|
|
+ 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_uuid := c.GetString("T_uuid")
|
|
T_uuid := c.GetString("T_uuid")
|
|
if len(T_uuid) < 8 {
|
|
if len(T_uuid) < 8 {
|
|
c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_uuid Err!"}
|
|
c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_uuid Err!"}
|
|
c.ServeJSON()
|
|
c.ServeJSON()
|
|
return
|
|
return
|
|
}
|
|
}
|
|
- T_pids := c.GetString("T_pids")
|
|
|
|
|
|
|
|
r, err := Account.Read_Admin_ByUuid(T_uuid)
|
|
r, err := Account.Read_Admin_ByUuid(T_uuid)
|
|
if err != nil {
|
|
if err != nil {
|
|
@@ -772,21 +826,109 @@ func (c *UserController) Admin_Bind_Company() {
|
|
c.ServeJSON()
|
|
c.ServeJSON()
|
|
return
|
|
return
|
|
}
|
|
}
|
|
- if len(T_pids) > 0 {
|
|
|
|
- r.T_pids = T_pids
|
|
|
|
|
|
+
|
|
|
|
+ var cnt int64
|
|
|
|
+ Company_lite, cnt := Account.Read_Company_List_ByT_pids(r.T_pids, page, page_z)
|
|
|
|
+
|
|
|
|
+ r_jsons.Data = Company_lite
|
|
|
|
+
|
|
|
|
+ r_jsons.Page = page
|
|
|
|
+ r_jsons.Page_size = int(math.Ceil(float64(r_jsons.Num) / float64(page_z)))
|
|
|
|
+ r_jsons.Num = cnt
|
|
|
|
+
|
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
|
|
|
|
+ c.ServeJSON()
|
|
|
|
+ return
|
|
|
|
+}
|
|
|
|
+func (c *UserController) AdminCompanyBind_Add() {
|
|
|
|
+ // 验证登录
|
|
|
|
+ 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
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ 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
|
|
}
|
|
}
|
|
|
|
|
|
- if is := Account.Update_Admin(r, "T_pids"); !is {
|
|
|
|
- c.Data["json"] = lib.JSONS{Code: 200, Msg: "绑定失败!"}
|
|
|
|
|
|
+ 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 strings.Contains(r.T_pids, "P"+strconv.Itoa(T_pid)+"|") {
|
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 203, Msg: "重复绑定!"}
|
|
c.ServeJSON()
|
|
c.ServeJSON()
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|
|
- System.Add_UserLogs_T(admin_r.T_uuid, "用户管理", "绑定公司", T_uuid)
|
|
|
|
|
|
+ if err = Account.Add_Company_bind(r.Id, T_pid); err != nil {
|
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 200, Msg: "公司绑定失败"}
|
|
|
|
+ c.ServeJSON()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ System.Add_UserLogs(admin_r.T_uuid, "内部用户管理", "公司绑定添加", T_uuid+"-"+strconv.Itoa(T_pid))
|
|
c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
|
|
c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
|
|
c.ServeJSON()
|
|
c.ServeJSON()
|
|
return
|
|
return
|
|
|
|
+}
|
|
|
|
+func (c *UserController) AdminCompanyBind_Del() {
|
|
|
|
+ // 验证登录
|
|
|
|
+ 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
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ 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 !strings.Contains(r.T_pids, "P"+strconv.Itoa(T_pid)+"|") {
|
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
|
|
|
|
+ c.ServeJSON()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if err = Account.Delete_Company_bind(r.Id, T_pid); err != nil {
|
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 200, Msg: "公司绑定失败"}
|
|
|
|
+ c.ServeJSON()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ System.Add_UserLogs(admin_r.T_uuid, "内部用户管理", "公司绑定删除", T_uuid+"-"+strconv.Itoa(T_pid))
|
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
|
|
|
|
+ c.ServeJSON()
|
|
|
|
+ return
|
|
}
|
|
}
|
|
|
|
|
|
// 权限管理
|
|
// 权限管理
|