|
- package point
-
- import (
- "code.gitea.io/gitea/models"
- "code.gitea.io/gitea/modules/base"
- "code.gitea.io/gitea/modules/context"
- "code.gitea.io/gitea/routers/response"
- "code.gitea.io/gitea/services/reward"
- "code.gitea.io/gitea/services/reward/point/account"
- "net/http"
- )
-
- const tplPoint base.TplName = "reward/point"
- const tplPointRule base.TplName = "reward/point/rule"
-
- type AccountResponse struct {
- Balance int64
- TotalEarned int64
- TotalConsumed int64
- }
-
- func GetPointAccount(ctx *context.Context) {
- userId := ctx.User.ID
- a, err := account.GetAccount(userId)
- if err != nil {
- ctx.JSON(http.StatusOK, response.ServerError(err.Error()))
- return
- }
- res := &AccountResponse{
- Balance: a.Balance,
- TotalEarned: a.TotalEarned,
- TotalConsumed: a.TotalConsumed,
- }
- ctx.JSON(http.StatusOK, response.SuccessWithData(res))
- }
-
- func GetPointRecordList(ctx *context.Context) {
- operateType := ctx.Query("Operate")
- page := ctx.QueryInt("Page")
- var orderBy models.RewardOperateOrderBy
- switch ctx.Query("sort") {
- default:
- orderBy = models.RewardOrderByIDDesc
- }
- t := models.GetRewardOperateTypeInstance(operateType)
- if t == "" {
- ctx.JSON(http.StatusOK, response.ServerError("param error"))
- return
- }
-
- r, err := reward.GetRewardRecordList(models.RewardRecordListOpts{
- ListOptions: models.ListOptions{PageSize: 10, Page: page},
- UserId: ctx.User.ID,
- OperateType: t,
- RewardType: models.RewardTypePoint,
- OrderBy: orderBy,
- })
- if err != nil {
- ctx.JSON(http.StatusOK, response.ServerError(err.Error()))
- return
- }
-
- ctx.JSON(http.StatusOK, response.SuccessWithData(r))
- return
- }
-
- func OperatePointAccountBalance(ctx *context.Context, req models.AdminRewardOperateReq) {
- req.RewardType = models.RewardTypePoint
- if req.OperateType.Name() == "" {
- ctx.JSON(http.StatusOK, "param error")
- return
- }
- err := reward.AdminBalanceOperate(req, ctx.User)
- if err != nil {
- ctx.JSON(http.StatusOK, response.ServerError(err.Error()))
- return
- }
- ctx.JSON(http.StatusOK, response.Success())
- }
-
- func GetPointPage(ctx *context.Context) {
- ctx.HTML(200, tplPoint)
- }
-
- func GetRulePage(ctx *context.Context) {
- ctx.HTML(200, tplPointRule)
- }
|