|
@@ -2,21 +2,22 @@
|
|
|
package admin
|
|
|
|
|
|
import (
|
|
|
+ "encoding/json"
|
|
|
+ "jy/front"
|
|
|
. "jy/mongodbutil"
|
|
|
. "jy/util"
|
|
|
"net/http"
|
|
|
+ qu "qfw/util"
|
|
|
"time"
|
|
|
- "github.com/gin-gonic/gin"
|
|
|
+
|
|
|
"github.com/gin-contrib/sessions"
|
|
|
- "strconv"
|
|
|
+ "github.com/gin-gonic/gin"
|
|
|
"gopkg.in/mgo.v2/bson"
|
|
|
- qu "qfw/util"
|
|
|
- "encoding/json"
|
|
|
)
|
|
|
|
|
|
func init() {
|
|
|
Admin.GET("/index", func(c *gin.Context) {
|
|
|
- c.HTML(http.StatusOK, "index.html",nil)
|
|
|
+ c.HTML(http.StatusOK, "index.html", nil)
|
|
|
})
|
|
|
Admin.GET("/user", func(c *gin.Context) {
|
|
|
c.HTML(http.StatusOK, "user.html", gin.H{})
|
|
@@ -28,31 +29,31 @@ func init() {
|
|
|
c.HTML(http.StatusOK, "role.html", gin.H{})
|
|
|
})
|
|
|
Admin.GET("/role/menu", func(c *gin.Context) {
|
|
|
- role:=c.Query("role")
|
|
|
- c.HTML(http.StatusOK, "rolemenu.html", gin.H{"role":role})
|
|
|
+ role := c.Query("role")
|
|
|
+ c.HTML(http.StatusOK, "rolemenu.html", gin.H{"role": role})
|
|
|
})
|
|
|
Admin.GET("/role/secondmenu", func(c *gin.Context) {
|
|
|
- role:=c.Query("role")
|
|
|
- _id:=c.Query("_id")
|
|
|
- c.HTML(http.StatusOK, "rolesecondmenu.html", gin.H{"role":role,"_id":_id})
|
|
|
+ role := c.Query("role")
|
|
|
+ _id := c.Query("_id")
|
|
|
+ c.HTML(http.StatusOK, "rolesecondmenu.html", gin.H{"role": role, "_id": _id})
|
|
|
})
|
|
|
Admin.GET("/secondmenu", func(c *gin.Context) {
|
|
|
_id := c.Query("id")
|
|
|
- c.HTML(http.StatusOK, "secondmenu.html", gin.H{"_id":_id})
|
|
|
+ c.HTML(http.StatusOK, "secondmenu.html", gin.H{"_id": _id})
|
|
|
})
|
|
|
Admin.POST("/menu", Menu)
|
|
|
- Admin.POST("/menu/save",MenuSave)
|
|
|
- Admin.POST("/menu/data",MenuData)
|
|
|
+ Admin.POST("/menu/save", MenuSave)
|
|
|
+ Admin.POST("/menu/data", MenuData)
|
|
|
Admin.POST("/menu/searchbyid", MenuSearchById)
|
|
|
Admin.POST("/menu/del", MenuDel)
|
|
|
- Admin.POST("/role/menu/data",RoleMenuData)
|
|
|
- Admin.POST("/role/menu/save",RoleMenuSave)
|
|
|
- Admin.POST("/role/select",RoleSelect)
|
|
|
- Admin.POST("/role/secondmenu/data",RoleSecondMenuData)
|
|
|
- Admin.POST("/role/menu/del",RoleMenuDel)
|
|
|
- Admin.POST("/role/secondmenu/del",RoleSecondMenuDel)
|
|
|
- Admin.POST("/secondmenu/data",SecondMenuData)
|
|
|
- Admin.POST("/secondmenu/save",SecondMenuSave)
|
|
|
+ Admin.POST("/role/menu/data", RoleMenuData)
|
|
|
+ Admin.POST("/role/menu/save", RoleMenuSave)
|
|
|
+ Admin.POST("/role/select", RoleSelect)
|
|
|
+ Admin.POST("/role/secondmenu/data", RoleSecondMenuData)
|
|
|
+ Admin.POST("/role/menu/del", RoleMenuDel)
|
|
|
+ Admin.POST("/role/secondmenu/del", RoleSecondMenuDel)
|
|
|
+ Admin.POST("/secondmenu/data", SecondMenuData)
|
|
|
+ Admin.POST("/secondmenu/save", SecondMenuSave)
|
|
|
Admin.POST("/secondmenu/searchbyid", SecondMenuSearchById)
|
|
|
Admin.POST("/secondmenu/del", SecondMenuDel)
|
|
|
Admin.POST("/user/data", User)
|
|
@@ -63,7 +64,12 @@ func init() {
|
|
|
}
|
|
|
|
|
|
func User(c *gin.Context) {
|
|
|
- data, _ := Mgo.Find("user", `{}`, nil, nil, false, -1, -1)
|
|
|
+ maps := map[string]interface{}{
|
|
|
+ "role": map[string]interface{}{
|
|
|
+ "$ne": "3",
|
|
|
+ },
|
|
|
+ }
|
|
|
+ data, _ := Mgo.Find("user", maps, nil, nil, false, -1, -1)
|
|
|
c.JSON(200, gin.H{"data": data})
|
|
|
}
|
|
|
func MenuData(c *gin.Context) {
|
|
@@ -71,152 +77,173 @@ func MenuData(c *gin.Context) {
|
|
|
c.JSON(200, gin.H{"data": data})
|
|
|
}
|
|
|
func SecondMenuData(c *gin.Context) {
|
|
|
- _id,_:= c.GetPostForm("_id")
|
|
|
- maps:=map[string]interface{}{
|
|
|
- "menuid":_id,
|
|
|
+ _id, _ := c.GetPostForm("_id")
|
|
|
+ maps := map[string]interface{}{
|
|
|
+ "menuid": _id,
|
|
|
}
|
|
|
- data, _ := Mgo.Find("secondmenu",maps, nil, nil, false, -1, -1)
|
|
|
+ data, _ := Mgo.Find("menusecond", maps, nil, nil, false, -1, -1)
|
|
|
c.JSON(200, gin.H{"data": data})
|
|
|
}
|
|
|
func RoleMenuData(c *gin.Context) {
|
|
|
- role,_:=c.GetPostForm("role")
|
|
|
+ role, _ := c.GetPostForm("role")
|
|
|
maps := map[string]interface{}{
|
|
|
- "role."+role: true,
|
|
|
+ "role." + role: true,
|
|
|
}
|
|
|
- datas, _ := Mgo.Find("menu",maps, nil, nil, false, -1, -1)
|
|
|
- list:=[]map[string]interface{}{}
|
|
|
- for _,value:= range *datas{
|
|
|
- _id:=qu.BsonIdToSId(value["_id"])
|
|
|
- maps:=map[string]interface{}{
|
|
|
+ datas, _ := Mgo.Find("menu", maps, nil, nil, false, -1, -1)
|
|
|
+ list := []map[string]interface{}{}
|
|
|
+ for _, value := range *datas {
|
|
|
+ _id := qu.BsonIdToSId(value["_id"])
|
|
|
+ maps := map[string]interface{}{
|
|
|
"menuid": _id,
|
|
|
}
|
|
|
- count, _ := Mgo.Find("secondmenu",maps, nil, nil, false, -1, -1)
|
|
|
- if len(*count)!=0{
|
|
|
- value["secondmenu"]=true
|
|
|
- }else{
|
|
|
- value["secondmenu"]=false
|
|
|
+ count, _ := Mgo.Find("menusecond", maps, nil, nil, false, -1, -1)
|
|
|
+ if len(*count) != 0 {
|
|
|
+ value["secondmenu"] = true
|
|
|
+ } else {
|
|
|
+ value["secondmenu"] = false
|
|
|
}
|
|
|
- list=append(list,value)
|
|
|
+ list = append(list, value)
|
|
|
}
|
|
|
c.JSON(200, gin.H{"data": list})
|
|
|
}
|
|
|
-func RoleMenuSave(c *gin.Context){
|
|
|
- menu,_:=c.GetPostForm("menu")
|
|
|
+func RoleMenuSave(c *gin.Context) {
|
|
|
+ menu, _ := c.GetPostForm("menu")
|
|
|
secondmenuStr, _ := c.GetPostForm("secondmenuStr")
|
|
|
- role,_:=c.GetPostForm("role")
|
|
|
+ secondmenuStr2, _ := c.GetPostForm("secondmenuStr2")
|
|
|
+ role, _ := c.GetPostForm("role")
|
|
|
secondmenus := make([]string, 0)
|
|
|
+ secondmenus2 := make([]string, 0)
|
|
|
err := json.Unmarshal([]byte(secondmenuStr), &secondmenus)
|
|
|
- if err == nil && len(secondmenus) > 0 {
|
|
|
+ err2 := json.Unmarshal([]byte(secondmenuStr2), &secondmenus2)
|
|
|
+ if err == nil && err2 == nil {
|
|
|
for _, v := range secondmenus {
|
|
|
- maps:=map[string]interface{}{
|
|
|
- "_id":bson.ObjectIdHex(v),
|
|
|
+ maps := map[string]interface{}{
|
|
|
+ "_id": bson.ObjectIdHex(v),
|
|
|
}
|
|
|
- data:=map[string]interface{}{
|
|
|
- "role."+role:true,
|
|
|
+ data := map[string]interface{}{
|
|
|
+ "role." + role: true,
|
|
|
}
|
|
|
- data2:=map[string]interface{}{
|
|
|
- "$set":data,
|
|
|
+ data2 := map[string]interface{}{
|
|
|
+ "$set": data,
|
|
|
}
|
|
|
- Mgo.Update("secondmenu", maps, data2, true, false)
|
|
|
+ Mgo.Update("menusecond", maps, data2, true, false)
|
|
|
+ }
|
|
|
+ for _, v := range secondmenus2 {
|
|
|
+ maps := map[string]interface{}{
|
|
|
+ "_id": bson.ObjectIdHex(v),
|
|
|
+ }
|
|
|
+ data := map[string]interface{}{
|
|
|
+ "role." + role: false,
|
|
|
+ }
|
|
|
+ data2 := map[string]interface{}{
|
|
|
+ "$set": data,
|
|
|
+ }
|
|
|
+ Mgo.Update("menusecond", maps, data2, true, false)
|
|
|
}
|
|
|
}
|
|
|
- maps:=map[string]interface{}{
|
|
|
- "_id":bson.ObjectIdHex(menu),
|
|
|
- }
|
|
|
- data:=map[string]interface{}{
|
|
|
- "role."+role:true,
|
|
|
+ b := false
|
|
|
+ if (len(secondmenus) == 0 && len(secondmenus2) == 0) || (len(secondmenus) > 0) {
|
|
|
+ maps := map[string]interface{}{
|
|
|
+ "_id": bson.ObjectIdHex(menu),
|
|
|
+ }
|
|
|
+ data := map[string]interface{}{
|
|
|
+ "role." + role: true,
|
|
|
+ }
|
|
|
+ data2 := map[string]interface{}{
|
|
|
+ "$set": data,
|
|
|
+ }
|
|
|
+ b = Mgo.Update("menu", maps, data2, true, false)
|
|
|
}
|
|
|
- data2:=map[string]interface{}{
|
|
|
- "$set":data,
|
|
|
+ if len(secondmenus) == 0 && len(secondmenus2) > 0 {
|
|
|
+ maps := map[string]interface{}{
|
|
|
+ "_id": bson.ObjectIdHex(menu),
|
|
|
+ }
|
|
|
+ data := map[string]interface{}{
|
|
|
+ "role." + role: false,
|
|
|
+ }
|
|
|
+ data2 := map[string]interface{}{
|
|
|
+ "$set": data,
|
|
|
+ }
|
|
|
+ b = Mgo.Update("menu", maps, data2, true, false)
|
|
|
}
|
|
|
- b:=Mgo.Update("menu", maps, data2, true, false)
|
|
|
+
|
|
|
c.JSON(200, gin.H{"rep": b})
|
|
|
}
|
|
|
-func RoleSelect(c *gin.Context){
|
|
|
- menuid,_:=c.GetPostForm("_id")
|
|
|
- maps := map[string]interface{}{
|
|
|
- "menuid":menuid,
|
|
|
+func RoleSelect(c *gin.Context) {
|
|
|
+ menuid, _ := c.GetPostForm("_id")
|
|
|
+ mark, _ := c.GetPostForm("mark")
|
|
|
+ role, _ := c.GetPostForm("role")
|
|
|
+ if mark == "" {
|
|
|
+ maps := map[string]interface{}{
|
|
|
+ "menuid": menuid,
|
|
|
+ }
|
|
|
+ datas, _ := Mgo.Find("menusecond", maps, nil, nil, false, -1, -1)
|
|
|
+ c.JSON(200, gin.H{"data": datas})
|
|
|
+ } else {
|
|
|
+ maps := map[string]interface{}{
|
|
|
+ "menuid": menuid,
|
|
|
+ "role." + role: true,
|
|
|
+ }
|
|
|
+ data, _ := Mgo.Find("menusecond", maps, nil, nil, false, -1, -1)
|
|
|
+ maps2 := map[string]interface{}{
|
|
|
+ "menuid": menuid,
|
|
|
+ "role." + role: false,
|
|
|
+ }
|
|
|
+ names, _ := Mgo.FindById("menu", menuid, `{name:1}`)
|
|
|
+ name := *names
|
|
|
+ name1 := name["name"]
|
|
|
+ data2, _ := Mgo.Find("menusecond", maps2, nil, nil, false, -1, -1)
|
|
|
+ c.JSON(200, gin.H{"name": name1, "data": data, "data2": data2})
|
|
|
}
|
|
|
- datas, _ := Mgo.Find("secondmenu",maps, nil, nil, false, -1, -1)
|
|
|
- c.JSON(200, gin.H{"data": datas})
|
|
|
+
|
|
|
}
|
|
|
func RoleSecondMenuData(c *gin.Context) {
|
|
|
- role,_:=c.GetPostForm("role")
|
|
|
- _id,_:=c.GetPostForm("_id")
|
|
|
+ role, _ := c.GetPostForm("role")
|
|
|
+ _id, _ := c.GetPostForm("_id")
|
|
|
maps := map[string]interface{}{
|
|
|
- "menuid":_id,
|
|
|
- "role."+role: true,
|
|
|
+ "menuid": _id,
|
|
|
+ "role." + role: true,
|
|
|
}
|
|
|
- datas, _ := Mgo.Find("secondmenu",maps, nil, nil, false, -1, -1)
|
|
|
+ datas, _ := Mgo.Find("menusecond", maps, nil, nil, false, -1, -1)
|
|
|
|
|
|
c.JSON(200, gin.H{"data": datas})
|
|
|
}
|
|
|
func Menu(c *gin.Context) {
|
|
|
- //管理员0,审核员1.开发员2,超级管理3
|
|
|
session := sessions.Default(c)
|
|
|
- role:=session.Get("role").(string)
|
|
|
- maps:=map[string]interface{}{
|
|
|
- }
|
|
|
- if role=="3"{
|
|
|
- maps=map[string]interface{}{
|
|
|
- }
|
|
|
- }else {
|
|
|
- maps = map[string]interface{}{
|
|
|
- "role." + role: true,
|
|
|
- }
|
|
|
- }
|
|
|
- data, _ := Mgo.Find("menu", maps, nil, nil, false, -1, -1)
|
|
|
- list:=[]map[string]interface{}{}
|
|
|
- for _,value:=range *data{
|
|
|
- _id:=value["_id"]
|
|
|
- if role=="3"{
|
|
|
- maps=map[string]interface{}{
|
|
|
- "menuid":qu.BsonIdToSId(_id),
|
|
|
- }
|
|
|
- }else {
|
|
|
- maps = map[string]interface{}{
|
|
|
- "role." + role: true,
|
|
|
- "menuid":qu.BsonIdToSId(_id),
|
|
|
- }
|
|
|
- }
|
|
|
- secdatas, _ := Mgo.Find("secondmenu", maps, nil, nil, false, -1, -1)
|
|
|
- secmenumap:=map[string]interface{}{}
|
|
|
- for index,secdata:=range *secdatas{
|
|
|
- secmenumap[strconv.Itoa(index+1)]=secdata
|
|
|
- }
|
|
|
- if len(secmenumap)!=0{
|
|
|
- value["secondmenu"]=secmenumap
|
|
|
- }
|
|
|
- list=append(list,value)
|
|
|
- }
|
|
|
- c.JSON(200, gin.H{"data": list,"role":role})
|
|
|
+ u := session.Get("user").(*map[string]interface{})
|
|
|
+ list := front.UserMenu[qu.ObjToString((*u)["email"])]
|
|
|
+ c.JSON(200, gin.H{"data": list})
|
|
|
}
|
|
|
func MenuSave(c *gin.Context) {
|
|
|
name, _ := c.GetPostForm("name")
|
|
|
href, _ := c.GetPostForm("href")
|
|
|
pic, _ := c.GetPostForm("pic")
|
|
|
- _id,_:=c.GetPostForm("_id")
|
|
|
- data := map[string]interface{}{
|
|
|
- }
|
|
|
- if _id==""{
|
|
|
+ _id, _ := c.GetPostForm("_id")
|
|
|
+ data := map[string]interface{}{}
|
|
|
+ if _id == "" {
|
|
|
data = map[string]interface{}{
|
|
|
"name": name,
|
|
|
- "href": href,
|
|
|
+ "href": href,
|
|
|
"pic": pic,
|
|
|
+ "role": map[string]interface{}{
|
|
|
+ "0": false,
|
|
|
+ "1": false,
|
|
|
+ "2": false,
|
|
|
+ },
|
|
|
}
|
|
|
- b:=Mgo.Save("menu",data)
|
|
|
+ b := Mgo.Save("menu", data)
|
|
|
c.JSON(200, gin.H{"rep": b})
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
data = map[string]interface{}{
|
|
|
"name": name,
|
|
|
- "href": href,
|
|
|
+ "href": href,
|
|
|
"pic": pic,
|
|
|
}
|
|
|
- data2:=map[string]interface{}{
|
|
|
- "$set":data,
|
|
|
+ data2 := map[string]interface{}{
|
|
|
+ "$set": data,
|
|
|
}
|
|
|
- maps:=map[string]interface{}{
|
|
|
- "_id":bson.ObjectIdHex(_id),
|
|
|
+ maps := map[string]interface{}{
|
|
|
+ "_id": bson.ObjectIdHex(_id),
|
|
|
}
|
|
|
b := Mgo.Update("menu", maps, data2, true, false)
|
|
|
c.JSON(200, gin.H{"rep": b})
|
|
@@ -229,30 +256,34 @@ func SecondMenuSave(c *gin.Context) {
|
|
|
pic, _ := c.GetPostForm("pic")
|
|
|
_id, _ := c.GetPostForm("_id")
|
|
|
menuid, _ := c.GetPostForm("menuid")
|
|
|
- data := map[string]interface{}{
|
|
|
- }
|
|
|
- if _id==""{
|
|
|
+ data := map[string]interface{}{}
|
|
|
+ if _id == "" {
|
|
|
data = map[string]interface{}{
|
|
|
- "name": name,
|
|
|
+ "name": name,
|
|
|
"href": href,
|
|
|
- "pic": pic,
|
|
|
- "menuid":menuid,
|
|
|
+ "pic": pic,
|
|
|
+ "menuid": menuid,
|
|
|
+ "role": map[string]interface{}{
|
|
|
+ "0": false,
|
|
|
+ "1": false,
|
|
|
+ "2": false,
|
|
|
+ },
|
|
|
}
|
|
|
- b:=Mgo.Save("secondmenu",data)
|
|
|
+ b := Mgo.Save("menusecond", data)
|
|
|
c.JSON(200, gin.H{"rep": b})
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
data = map[string]interface{}{
|
|
|
- "name": name,
|
|
|
- "href": href,
|
|
|
- "pic": pic,
|
|
|
+ "name": name,
|
|
|
+ "href": href,
|
|
|
+ "pic": pic,
|
|
|
}
|
|
|
- data2:=map[string]interface{}{
|
|
|
- "$set":data,
|
|
|
+ data2 := map[string]interface{}{
|
|
|
+ "$set": data,
|
|
|
}
|
|
|
- maps:=map[string]interface{}{
|
|
|
- "_id":bson.ObjectIdHex(_id),
|
|
|
+ maps := map[string]interface{}{
|
|
|
+ "_id": bson.ObjectIdHex(_id),
|
|
|
}
|
|
|
- b := Mgo.Update("secondmenu",maps, data2, true, false)
|
|
|
+ b := Mgo.Update("menusecond", maps, data2, true, false)
|
|
|
c.JSON(200, gin.H{"rep": b})
|
|
|
}
|
|
|
|
|
@@ -286,7 +317,7 @@ func MenuSearchById(c *gin.Context) {
|
|
|
}
|
|
|
func SecondMenuSearchById(c *gin.Context) {
|
|
|
_id, _ := c.GetPostForm("_id")
|
|
|
- data, _ := Mgo.FindById("secondmenu", _id, nil)
|
|
|
+ data, _ := Mgo.FindById("menusecond", _id, nil)
|
|
|
c.JSON(200, gin.H{"rep": data})
|
|
|
}
|
|
|
|
|
@@ -302,32 +333,32 @@ func MenuDel(c *gin.Context) {
|
|
|
}
|
|
|
func SecondMenuDel(c *gin.Context) {
|
|
|
_id, _ := c.GetPostForm("_id")
|
|
|
- b := Mgo.Del("secondmenu", `{"_id":"`+_id+`"}`)
|
|
|
+ b := Mgo.Del("menusecond", `{"_id":"`+_id+`"}`)
|
|
|
c.JSON(200, gin.H{"rep": b})
|
|
|
}
|
|
|
func RoleMenuDel(c *gin.Context) {
|
|
|
_id, _ := c.GetPostForm("_id")
|
|
|
role, _ := c.GetPostForm("role")
|
|
|
- maps:=map[string]interface{}{
|
|
|
- "_id":bson.ObjectIdHex(_id),
|
|
|
+ maps := map[string]interface{}{
|
|
|
+ "_id": bson.ObjectIdHex(_id),
|
|
|
}
|
|
|
- data:=map[string]interface{}{
|
|
|
- "role."+role:false,
|
|
|
+ data := map[string]interface{}{
|
|
|
+ "role." + role: false,
|
|
|
}
|
|
|
- data2:=map[string]interface{}{
|
|
|
- "$set":data,
|
|
|
+ data2 := map[string]interface{}{
|
|
|
+ "$set": data,
|
|
|
}
|
|
|
b := Mgo.Update("menu", maps, data2, true, false)
|
|
|
- maps=map[string]interface{}{
|
|
|
- "menuid":_id,
|
|
|
+ maps = map[string]interface{}{
|
|
|
+ "menuid": _id,
|
|
|
}
|
|
|
- count,_:=Mgo.Find("secondmenu",maps,nil,nil,false,-1,-1)
|
|
|
- if len(*count)!=0{
|
|
|
- for _,c:=range *count{
|
|
|
- maps=map[string]interface{}{
|
|
|
- "_id":c["_id"],
|
|
|
+ count, _ := Mgo.Find("menusecond", maps, nil, nil, false, -1, -1)
|
|
|
+ if len(*count) != 0 {
|
|
|
+ for _, c := range *count {
|
|
|
+ maps = map[string]interface{}{
|
|
|
+ "_id": c["_id"],
|
|
|
}
|
|
|
- Mgo.Update("secondmenu", maps, data2, true, false)
|
|
|
+ Mgo.Update("menusecond", maps, data2, true, false)
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -336,16 +367,16 @@ func RoleMenuDel(c *gin.Context) {
|
|
|
func RoleSecondMenuDel(c *gin.Context) {
|
|
|
_id, _ := c.GetPostForm("_id")
|
|
|
role, _ := c.GetPostForm("role")
|
|
|
- maps:=map[string]interface{}{
|
|
|
- "_id":bson.ObjectIdHex(_id),
|
|
|
+ maps := map[string]interface{}{
|
|
|
+ "_id": bson.ObjectIdHex(_id),
|
|
|
}
|
|
|
- data:=map[string]interface{}{
|
|
|
- "role."+role:false,
|
|
|
+ data := map[string]interface{}{
|
|
|
+ "role." + role: false,
|
|
|
}
|
|
|
- data2:=map[string]interface{}{
|
|
|
- "$set":data,
|
|
|
+ data2 := map[string]interface{}{
|
|
|
+ "$set": data,
|
|
|
}
|
|
|
- b := Mgo.Update("secondmenu", maps, data2, true, false)
|
|
|
+ b := Mgo.Update("menusecond", maps, data2, true, false)
|
|
|
c.JSON(200, gin.H{"rep": b})
|
|
|
}
|
|
|
func UserUppwd(c *gin.Context) {
|