package controllers import ( "github.com/gogf/gf/v2/net/ghttp" "yx-dataset-server/app/bll" "yx-dataset-server/app/errors" "yx-dataset-server/app/schema" "yx-dataset-server/library/gplus" ) type User struct { UserBll bll.IUser } func NewUser(bUser bll.IUser) *User { return &User{ UserBll: bUser, } } // Query 查询数据 func (a *User) Query(r *ghttp.Request) { switch r.Get("q").String() { case "page": a.QueryPage(r) case "list": a.QueryList(r) default: ResError(r, errors.ErrUnknownQuery) } } // QueryPage 查询分页数据 // @Tags // @Summary 查询分页数据 // @Param Authorization header string false "Bearer 用户令牌" // @Param current query int true "分页索引" 1 // @Param pageSize query int true "分页大小" 10 // @Success 200 []schema.User "查询结果:{list:列表数据,pagination:{current:页索引,pageSize:页大小,total:总数量}}" // @Failure 400 schema.HTTPError "{error:{code:0,message:未知的查询类型}}" // @Failure 401 schema.HTTPError "{error:{code:0,message:未授权}}" // @Failure 500 schema.HTTPError "{error:{code:0,message:服务器错误}}" // @Router GET /web/v1/users?q=page func (a *User) QueryPage(r *ghttp.Request) { ctx := gplus.NewContext(r) var params schema.UserQueryParam params.OrgId = r.Get("org_id").String() params.LikeName = r.Get("like_name").String() result, err := a.UserBll.Query(ctx, params, schema.UserOptions{ PageParam: &schema.PaginationParam{ PageIndex: gplus.GetPageIndex(r), PageSize: gplus.GetPageSize(r), }, }) if err != nil { gplus.ResError(r, err) } gplus.ResPage(r, result.Data, result.PageResult) } // QueryList 查询列表数据 // @Tags // @Summary 查询列表数据 // @Param Authorization header string false "Bearer 用户令牌" // @Success 200 []schema.User "查询结果:{list:列表数据}" // @Failure 400 schema.HTTPError "{error:{code:0,message:未知的查询类型}}" // @Failure 401 schema.HTTPError "{error:{code:0,message:未授权}}" // @Failure 500 schema.HTTPError "{error:{code:0,message:服务器错误}}" // @Router GET /web/v1/users?q=list func (a *User) QueryList(r *ghttp.Request) { ctx := gplus.NewContext(r) var params schema.UserQueryParam params.OrgId = r.Get("org_id").String() params.LikeName = r.Get("like_name").String() result, err := a.UserBll.Query(ctx, params) if err != nil { gplus.ResError(r, err) } gplus.ResList(r, result.Data) } // Get 获取数据 // @Summary 获取数据 // @Param id path string true "记录ID" // @Success 200 schema.User // @Failure 400 schema.HTTPError "{error:{code:0,message:无效的请求参数}}" // @Failure 401 schema.HTTPError "{error:{code:0,message:未授权}}" // @Failure 500 schema.HTTPError "{error:{code:0,message:服务器错误}}" // @Router /web/v1/user/{id} func (a *User) Get(r *ghttp.Request) { ctx := gplus.NewContext(r) result, err := a.UserBll.Get(ctx, r.Get("id").String()) if err != nil { gplus.ResError(r, err) } gplus.ResSuccess(r, result) } // Create 创建数据 // @Tags API-User // @Summary 创建数据 // @Param body schema.User true "提交的数据" // @Success 200 schema.User // @Failure 400 schema.HTTPError "{error:{code:0,message:无效的请求参数}}" // @Failure 401 schema.HTTPError "{error:{code:0,message:未授权}}" // @Failure 500 schema.HTTPError "{error:{code:0,message:服务器错误}}" // @Router /web/v1/user/ [post] func (a *User) Create(r *ghttp.Request) { var data schema.User if err := gplus.ParseJson(r, &data); err != nil { gplus.ResError(r, err) } ctx := gplus.NewContext(r) err := a.UserBll.Create(ctx, data) if err != nil { gplus.ResError(r, err) } gplus.ResOK(r) } // Update 更新数据 // @Summary 更新数据 // @Param body schema.User true "更新数据" // @Success 200 schema.User // @Failure 400 schema.HTTPError "{error:{code:0,message:无效的请求参数}}" // @Failure 401 schema.HTTPError "{error:{code:0,message:未授权}}" // @Failure 500 schema.HTTPError "{error:{code:0,message:服务器错误}}" // @Router /web/v1/user/{id} func (a *User) Update(r *ghttp.Request) { var data schema.User if err := gplus.ParseJson(r, &data); err != nil { gplus.ResError(r, err) } ctx := gplus.NewContext(r) err := a.UserBll.Update(ctx, r.Get("id").String(), data) if err != nil { gplus.ResError(r, err) } gplus.ResSuccess(r, nil) } // Delete 删除数据 // @Summary 删除数据 // @Param id path string true "记录ID" // @Success 200 schema.HTTPStatus "{status:OK}" // @Failure 400 schema.HTTPError "{error:{code:0,message:无效的请求参数}}" // @Failure 401 schema.HTTPError "{error:{code:0,message:未授权}}" // @Failure 500 schema.HTTPError "{error:{code:0,message:服务器错误}}" // @Router /web/v1/user/{id} func (a *User) Delete(r *ghttp.Request) { ctx := gplus.NewContext(r) err := a.UserBll.Delete(ctx, r.Get("id").String()) if err != nil { gplus.ResError(r, err) } gplus.ResOK(r) } // Enable 启用数据 // @Summary 启用数据 // @Param Authorization header string false "Bearer 用户令牌" // @Param id path string true "记录ID" // @Success 200 schema.HTTPStatus "{status:OK}" // @Failure 401 schema.HTTPError "{error:{code:0,message:未授权}}" // @Failure 500 schema.HTTPError "{error:{code:0,message:服务器错误}}" // @Router PATCH /web/v1/users/{id}/enable func (a *User) Enable(r *ghttp.Request) { err := a.UserBll.UpdateStatus(gplus.NewContext(r), r.Get("id").String(), true) if err != nil { gplus.ResError(r, err) return } gplus.ResOK(r) } // Disable 禁用数据 // @Summary 禁用数据 // @Param Authorization header string false "Bearer 用户令牌" // @Param id path string true "记录ID" // @Success 200 schema.HTTPStatus "{status:OK}" // @Failure 401 schema.HTTPError "{error:{code:0,message:未授权}}" // @Failure 500 schema.HTTPError "{error:{code:0,message:服务器错误}}" // @Router PATCH /web/v1/users/{id}/disable func (a *User) Disable(r *ghttp.Request) { err := a.UserBll.UpdateStatus(gplus.NewContext(r), r.Get("id").String(), false) if err != nil { gplus.ResError(r, err) return } gplus.ResOK(r) }