package manager import ( "github.com/gin-gonic/gin" "strings" "zhiyuan/pkg/app" "zhiyuan/pkg/config" "zhiyuan/pkg/utils" "zhiyuan/services/admin" "zhiyuan/services/aftersale/manager" "zhiyuan/services/form" "zhiyuan/services/role" ) func Login(c *gin.Context) { var form form.AdminLogin if app.Bind(c, &form) != nil { return } token, err := manager.Login(form.Phone, form.Password) if err != nil { app.ErrorMsg(c, err.Error(), nil) return } app.Success(c, map[string]string{ "token": token, }) } func Info(c *gin.Context) { type SettingInfo struct { ImgHost string `json:"img_host"` PageSize int `json:"page_size"` } type AdminInfo struct { ID int `json:"id"` UserName string `json:"username"` Phone string `json:"phone"` RoleIds string `json:"role_ids"` RoleName string `json:"role_name"` Setting SettingInfo `json:"setting"` } var adminInfo AdminInfo _, err := admin.GetInfoByID(c.GetInt("adminID"), []string{"id", "username", "phone", "role_ids"}, &adminInfo) if err != nil { app.ErrorMsg(c, err.Error(), nil) return } roleListMap := make(map[int]string) if roleList, err := role.GetList(nil, []string{"id, name"}, app.Page{}, nil); err == nil { for _, v := range roleList { roleListMap[v.ID] = v.Name } } roleNames := "" roleSlice := strings.Split(adminInfo.RoleIds, ",") for _, vv := range roleSlice { roleNames += "," + roleListMap[utils.ToInt(vv)] } adminInfo.RoleName = strings.TrimLeft(roleNames, ",") adminInfo.Setting = SettingInfo{ ImgHost: config.Cfg.App.ImgHost, PageSize: config.Cfg.App.PageLimitMin, } app.Success(c, adminInfo) } func Logout(c *gin.Context) { err := manager.Logout(c.GetInt("adminID")) if err != nil { app.ErrorMsg(c, err.Error(), nil) return } app.Success(c, nil) } func Password(c *gin.Context) { var form form.Password if app.Bind(c, &form) != nil { return } if err := manager.Password(c.GetInt("adminID"), form); err != nil { app.ErrorMsg(c, err.Error(), nil) return } app.Success(c, nil) }