新增奖励类型的 CRUD

This commit is contained in:
chy
2025-06-05 10:11:59 +08:00
parent 1db01717fe
commit ba389a1011
16 changed files with 405 additions and 2 deletions

View File

@ -0,0 +1,127 @@
package rewardType
import (
"context"
"server/internal/dao"
"server/internal/model"
"server/internal/model/do"
"server/internal/service"
"server/utility/ecode"
)
type sRewardType struct {
}
func New() service.IRewardType {
return &sRewardType{}
}
func init() {
service.RegisterRewardType(New())
}
func (s *sRewardType) List(ctx context.Context, in *model.RewardTypeIn) (out *model.RewardTypeOut, err error) {
m := dao.RewardTypes.Ctx(ctx)
// 默认分页
if in.Page == 0 {
in.Page = 1
}
if in.Size == 0 {
in.Size = 10
}
list := make([]model.RewardType, 0)
var total int
err = m.Page(in.Page, in.Size).OrderDesc(dao.RewardTypes.Columns().CreatedAt).ScanAndCount(&list, &total, false)
if err != nil {
return nil, err
}
return &model.RewardTypeOut{
List: list,
Total: total,
}, nil
}
func (s *sRewardType) CreateRewardType(ctx context.Context, in *model.CreateRewardTypeIn) (out *model.CreateRewardTypeOut, err error) {
// 检查类型名称是否存在
exist, err := dao.RewardTypes.Ctx(ctx).Where(do.RewardTypes{Name: in.Name}).Exist()
if err != nil {
return nil, err
}
if exist {
return nil, ecode.Params.Sub("类型名称已存在")
}
exist, err = dao.RewardTypes.Ctx(ctx).Where(do.RewardTypes{Code: in.Code}).Exist()
if err != nil {
return nil, err
}
if exist {
return nil, ecode.Params.Sub("类型代号已存在")
}
id, err := dao.RewardTypes.Ctx(ctx).InsertAndGetId(do.RewardTypes{
Name: in.Name,
Code: in.Code,
Description: in.Description,
})
if err != nil {
return nil, err
}
return &model.CreateRewardTypeOut{Id: id}, nil
}
func (s *sRewardType) UpdateRewardType(ctx context.Context, in *model.UpdateRewardTypeIn) (out *model.UpdateRewardTypeOut, err error) {
// 检查更新的是否存在
exist, err := dao.RewardTypes.Ctx(ctx).WherePri(in.Id).Exist()
if err != nil {
return nil, ecode.Params.Sub("查询奖励失败")
}
if !exist {
return nil, ecode.Params.Sub("更新的奖励不存在")
}
exist, err = dao.RewardTypes.Ctx(ctx).Where(do.RewardTypes{Name: in.Name}).Exist()
if err != nil {
return nil, ecode.Params.Sub("查询奖励类型失败")
}
if exist {
return nil, ecode.Params.Sub("奖励类型名称已存在")
}
// 更新奖励类型
_, err = dao.RewardTypes.Ctx(ctx).Where(do.RewardTypes{Id: in.Id}).Update(do.RewardTypes{
Name: in.Name,
Status: in.Status,
Code: in.Code,
Description: in.Description,
})
if err != nil {
return nil, err
}
return &model.UpdateRewardTypeOut{Success: true}, nil
}
func (s *sRewardType) DeleteRewardType(ctx context.Context, in *model.DeleteRewardTypeIn) (out *model.DeleteRewardTypeOut, err error) {
exist, err := dao.RewardTypes.Ctx(ctx).WherePri(do.RewardTypes{
Id: in.Id,
}).Exist()
if err != nil {
return nil, ecode.Params.Sub("查询删除奖励类型失败")
}
if !exist {
return nil, ecode.Params.Sub("删除的奖励类型不存在")
}
_, err = dao.RewardTypes.Ctx(ctx).Where(do.RewardTypes{Id: in.Id}).Delete()
if err != nil {
return nil, err
}
return &model.DeleteRewardTypeOut{Success: true}, nil
}