50 lines
1.0 KiB
Go
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(),
|
|
}
|
|
}
|