package final import ( "strings" "zhiyuan/pkg/app" "zhiyuan/pkg/config" "zhiyuan/pkg/utils" adminServices "zhiyuan/services/admin" "zhiyuan/services/dept" "zhiyuan/services/final/admin" "zhiyuan/services/form" "zhiyuan/services/role" "github.com/gin-gonic/gin" ) func Login(c *gin.Context) { var form form.WorkLogin if app.Bind(c, &form) != nil { return } token, err := admin.Login(form) if err != nil { app.Error(c, err.Error()) return } app.Success(c, map[string]string{ "token": token, }) } func Logout(c *gin.Context) { err := admin.Logout(c.GetInt("adminID")) if err != nil { app.ErrorMsg(c, err.Error(), nil) return } app.Success(c, nil) } func Info(c *gin.Context) { type SettingInfo struct { ImgHost string `json:"img_host"` } type AdminInfo struct { ID int `json:"id"` UserName string `json:"username"` Phone string `json:"phone"` Headimgurl string `json:"headimgurl"` Nickname string `json:"nickname"` RoleIds string `json:"role_ids"` RoleName string `json:"role_name"` DeptId int `json:"dept_id"` DeptName string `json:"dept_name"` Auths []string `json:"auths"` Setting SettingInfo `json:"setting"` } var adminInfo *AdminInfo _, err := adminServices.GetInfoByID(c.GetInt("adminID"), nil, &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, ",") deptInfo, _ := dept.GetInfoByID(adminInfo.DeptId) if deptInfo != nil { adminInfo.DeptName = deptInfo.Name } adminInfo.Auths, err = adminServices.GetAuth(adminInfo.ID) if err != nil { app.ErrorMsg(c, err.Error(), nil) return } adminInfo.Setting = SettingInfo{ ImgHost: config.Cfg.App.ImgHost, } app.Success(c, adminInfo) } func UnBindWeixin(c *gin.Context) { if err := admin.UnBindWeixin(c.GetInt("adminID")); 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 := admin.Password(c.GetInt("adminID"), form); err != nil { app.ErrorMsg(c, err.Error(), nil) return } app.Success(c, nil) }