Files
36Wisdom/biz/controller/badge.go
T
2026-08-14 12:13:02 +08:00

50 lines
1.0 KiB
Go

package controller
import (
"context"
"github.com/gogf/gf/v2/database/gdb"
"36wisdom/biz/model/dto"
"36wisdom/biz/service"
)
type badge struct{}
var Badge = &badge{}
func (c *badge) Get(ctx context.Context, req *dto.BadgeGetReq) (*dto.BadgeGetRes, error) {
rec, err := service.Badge.GetByPk(ctx, req.Id)
if err != nil {
return nil, err
}
res := &dto.BadgeGetRes{}
if !rec.IsEmpty() {
res.Badge = badgeItem(rec)
}
return res, nil
}
func (c *badge) List(ctx context.Context, req *dto.BadgeListReq) (*dto.BadgeListRes, error) {
recs, err := service.Badge.ListEnabled(ctx)
if err != nil {
return nil, err
}
res := &dto.BadgeListRes{List: make([]dto.BadgeItem, 0, len(recs))}
for _, r := range recs {
res.List = append(res.List, badgeItem(r))
}
return res, nil
}
func badgeItem(r gdb.Record) dto.BadgeItem {
return dto.BadgeItem{
Id: r["id"].Int64(),
Name: r["name"].String(),
Icon: r["icon"].String(),
CondType: r["cond_type"].Int(),
CondValue: r["cond_value"].Int(),
Status: r["status"].Int(),
}
}