新增奖励类型的 CRUD
This commit is contained in:
18
api/rewardType/rewardType.go
Normal file
18
api/rewardType/rewardType.go
Normal file
@ -0,0 +1,18 @@
|
||||
// =================================================================================
|
||||
// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
|
||||
// =================================================================================
|
||||
|
||||
package rewardType
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"server/api/rewardType/v1"
|
||||
)
|
||||
|
||||
type IRewardTypeV1 interface {
|
||||
List(ctx context.Context, req *v1.ListReq) (res *v1.ListRes, err error)
|
||||
Create(ctx context.Context, req *v1.CreateReq) (res *v1.CreateRes, err error)
|
||||
Update(ctx context.Context, req *v1.UpdateReq) (res *v1.UpdateRes, err error)
|
||||
Delete(ctx context.Context, req *v1.DeleteReq) (res *v1.DeleteRes, err error)
|
||||
}
|
||||
49
api/rewardType/v1/rewardType.go
Normal file
49
api/rewardType/v1/rewardType.go
Normal file
@ -0,0 +1,49 @@
|
||||
package v1
|
||||
|
||||
import "github.com/gogf/gf/v2/frame/g"
|
||||
|
||||
type ListReq struct {
|
||||
g.Meta `path:"/rewardType" method:"get" tags:"奖励类型" summary:"获取奖励类型列表"`
|
||||
Page int `json:"page" v:"required#页码不能为空" dc:"页码"`
|
||||
Size int `json:"size" v:"required#页大小不能为空" dc:"页大小"`
|
||||
}
|
||||
|
||||
type ListRes struct {
|
||||
List interface{} `json:"list" dc:"奖励类型列表"`
|
||||
Total int `json:"total" dc:"总条数"`
|
||||
}
|
||||
|
||||
type CreateReq struct {
|
||||
g.Meta `path:"/rewardType" method:"post" tags:"奖励类型" summary:"创建奖励类型"`
|
||||
Name string `json:"name" v:"required#名称不能为空" dc:"名称"`
|
||||
//Sort int `json:"sort" v:"required#排序不能为空" dc:"排序"`
|
||||
Code string `json:"code" v:"required#代号不能为空" dc:"代号"`
|
||||
Description string `json:"description" v:"required#描述不能为空" dc:"描述"`
|
||||
//Status int `json:"status" v:"required#状态不能为空" dc:"状态"`
|
||||
}
|
||||
|
||||
type CreateRes struct {
|
||||
Id int64 `json:"id" dc:"ID"`
|
||||
}
|
||||
|
||||
type UpdateReq struct {
|
||||
g.Meta `path:"/rewardType" method:"put" tags:"奖励类型" summary:"更新奖励类型"`
|
||||
Id int64 `json:"id" v:"required#ID不能为空" dc:"ID"`
|
||||
Name string `json:"name" v:"required#名称不能为空" dc:"名称"`
|
||||
Code string `json:"code" v:"required#代号不能为空" dc:"代号"`
|
||||
Description string `json:"description" v:"required#描述不能为空" dc:"描述"`
|
||||
Status int `json:"status" v:"required#状态不能为空" dc:"状态"`
|
||||
}
|
||||
|
||||
type UpdateRes struct {
|
||||
Success bool `json:"success" dc:"是否成功"`
|
||||
}
|
||||
|
||||
type DeleteReq struct {
|
||||
g.Meta `path:"/rewardType/{id}" method:"delete" tags:"奖励类型" summary:"删除奖励类型"`
|
||||
Id int64 `path:"id" v:"required#ID不能为空" dc:"ID"`
|
||||
}
|
||||
|
||||
type DeleteRes struct {
|
||||
Success bool `json:"success" dc:"是否成功"`
|
||||
}
|
||||
@ -4,6 +4,6 @@
|
||||
gfcli:
|
||||
gen:
|
||||
dao:
|
||||
- link: "mysql:root:MSms0427@tcp(127.0.0.1:3306)/arenax"
|
||||
- link: "mysql:root:MSms0427@tcp(192.168.3.132:3306)/arenax"
|
||||
descriptionTag: true
|
||||
tablesEx: "casbin_rule"
|
||||
@ -9,6 +9,7 @@ import (
|
||||
"server/internal/controller/auth"
|
||||
"server/internal/controller/menu"
|
||||
"server/internal/controller/merchant"
|
||||
"server/internal/controller/rewardType"
|
||||
"server/internal/controller/role"
|
||||
"server/internal/controller/wx"
|
||||
"server/internal/middleware"
|
||||
@ -36,6 +37,7 @@ var (
|
||||
role.NewV1(),
|
||||
menu.NewV1(),
|
||||
merchant.NewV1(),
|
||||
rewardType.NewV1(),
|
||||
)
|
||||
})
|
||||
})
|
||||
|
||||
5
internal/controller/rewardType/rewardType.go
Normal file
5
internal/controller/rewardType/rewardType.go
Normal file
@ -0,0 +1,5 @@
|
||||
// =================================================================================
|
||||
// This is auto-generated by GoFrame CLI tool only once. Fill this file as you wish.
|
||||
// =================================================================================
|
||||
|
||||
package rewardType
|
||||
15
internal/controller/rewardType/rewardType_new.go
Normal file
15
internal/controller/rewardType/rewardType_new.go
Normal file
@ -0,0 +1,15 @@
|
||||
// =================================================================================
|
||||
// This is auto-generated by GoFrame CLI tool only once. Fill this file as you wish.
|
||||
// =================================================================================
|
||||
|
||||
package rewardType
|
||||
|
||||
import (
|
||||
"server/api/rewardType"
|
||||
)
|
||||
|
||||
type ControllerV1 struct{}
|
||||
|
||||
func NewV1() rewardType.IRewardTypeV1 {
|
||||
return &ControllerV1{}
|
||||
}
|
||||
23
internal/controller/rewardType/rewardType_v1_create.go
Normal file
23
internal/controller/rewardType/rewardType_v1_create.go
Normal file
@ -0,0 +1,23 @@
|
||||
package rewardType
|
||||
|
||||
import (
|
||||
"context"
|
||||
"server/internal/model"
|
||||
"server/internal/service"
|
||||
|
||||
"server/api/rewardType/v1"
|
||||
)
|
||||
|
||||
func (c *ControllerV1) Create(ctx context.Context, req *v1.CreateReq) (res *v1.CreateRes, err error) {
|
||||
out, err := service.RewardType().CreateRewardType(ctx, &model.CreateRewardTypeIn{
|
||||
Code: req.Code,
|
||||
Description: req.Description,
|
||||
Name: req.Name,
|
||||
})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &v1.CreateRes{
|
||||
Id: out.Id,
|
||||
}, err
|
||||
}
|
||||
19
internal/controller/rewardType/rewardType_v1_delete.go
Normal file
19
internal/controller/rewardType/rewardType_v1_delete.go
Normal file
@ -0,0 +1,19 @@
|
||||
package rewardType
|
||||
|
||||
import (
|
||||
"context"
|
||||
"server/internal/model"
|
||||
"server/internal/service"
|
||||
|
||||
"server/api/rewardType/v1"
|
||||
)
|
||||
|
||||
func (c *ControllerV1) Delete(ctx context.Context, req *v1.DeleteReq) (res *v1.DeleteRes, err error) {
|
||||
out, err := service.RewardType().DeleteRewardType(ctx, &model.DeleteRewardTypeIn{Id: req.Id})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &v1.DeleteRes{
|
||||
Success: out.Success,
|
||||
}, err
|
||||
}
|
||||
20
internal/controller/rewardType/rewardType_v1_list.go
Normal file
20
internal/controller/rewardType/rewardType_v1_list.go
Normal file
@ -0,0 +1,20 @@
|
||||
package rewardType
|
||||
|
||||
import (
|
||||
"context"
|
||||
"server/internal/model"
|
||||
"server/internal/service"
|
||||
|
||||
"server/api/rewardType/v1"
|
||||
)
|
||||
|
||||
func (c *ControllerV1) List(ctx context.Context, req *v1.ListReq) (res *v1.ListRes, err error) {
|
||||
out, err := service.RewardType().List(ctx, &model.RewardTypeIn{Page: req.Page, Size: req.Size})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &v1.ListRes{
|
||||
List: out.List,
|
||||
Total: out.Total,
|
||||
}, nil
|
||||
}
|
||||
26
internal/controller/rewardType/rewardType_v1_update.go
Normal file
26
internal/controller/rewardType/rewardType_v1_update.go
Normal file
@ -0,0 +1,26 @@
|
||||
package rewardType
|
||||
|
||||
import (
|
||||
"context"
|
||||
"server/internal/model"
|
||||
"server/internal/service"
|
||||
|
||||
"server/api/rewardType/v1"
|
||||
)
|
||||
|
||||
func (c *ControllerV1) Update(ctx context.Context, req *v1.UpdateReq) (res *v1.UpdateRes, err error) {
|
||||
out, err := service.RewardType().UpdateRewardType(ctx, &model.UpdateRewardTypeIn{
|
||||
Id: req.Id,
|
||||
Name: req.Name,
|
||||
Code: req.Code,
|
||||
Status: req.Status,
|
||||
Description: req.Description,
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &v1.UpdateRes{
|
||||
Success: out.Success,
|
||||
}, err
|
||||
}
|
||||
@ -9,6 +9,7 @@ import (
|
||||
_ "server/internal/logic/menu"
|
||||
_ "server/internal/logic/merchant"
|
||||
_ "server/internal/logic/merchantAdmin"
|
||||
_ "server/internal/logic/rewardType"
|
||||
_ "server/internal/logic/role"
|
||||
_ "server/internal/logic/store"
|
||||
_ "server/internal/logic/storeAdmin"
|
||||
|
||||
127
internal/logic/rewardType/rewardType.go
Normal file
127
internal/logic/rewardType/rewardType.go
Normal 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
|
||||
}
|
||||
55
internal/model/rewardType.go
Normal file
55
internal/model/rewardType.go
Normal file
@ -0,0 +1,55 @@
|
||||
package model
|
||||
|
||||
import "github.com/gogf/gf/v2/frame/g"
|
||||
|
||||
type RewardType struct {
|
||||
g.Meta `orm:"table:reward_type"`
|
||||
Id int64 `json:"id" dc:"ID" orm:"id,primary"`
|
||||
Name string `json:"name" dc:"名称" orm:"name"`
|
||||
Sort int `json:"sort" dc:"排序" orm:"sort"`
|
||||
Status int `json:"status" dc:"状态:1=启用,2=禁用" orm:"status"`
|
||||
}
|
||||
type RewardTypeIn struct {
|
||||
Page int
|
||||
Size int
|
||||
}
|
||||
|
||||
type RewardTypeOut struct {
|
||||
List []RewardType
|
||||
Total int
|
||||
}
|
||||
|
||||
type CreateRewardTypeIn struct {
|
||||
Name string
|
||||
Code string
|
||||
Description string
|
||||
Status int
|
||||
}
|
||||
|
||||
type CreateRewardTypeOut struct {
|
||||
Id int64
|
||||
}
|
||||
|
||||
// UpdateRewardTypeIn 更新奖励类型传入参数
|
||||
type UpdateRewardTypeIn struct {
|
||||
Id int64
|
||||
Name string
|
||||
Code string
|
||||
Description string
|
||||
Status int
|
||||
}
|
||||
|
||||
// UpdateRewardTypeOut 更新奖励类型返回参数
|
||||
type UpdateRewardTypeOut struct {
|
||||
Success bool
|
||||
}
|
||||
|
||||
// DeleteRewardTypeIn 删除奖励类型传入参数
|
||||
type DeleteRewardTypeIn struct {
|
||||
Id int64
|
||||
}
|
||||
|
||||
// DeleteRewardTypeOut 删除奖励类型返回参数
|
||||
type DeleteRewardTypeOut struct {
|
||||
Success bool
|
||||
}
|
||||
35
internal/service/reward_type.go
Normal file
35
internal/service/reward_type.go
Normal file
@ -0,0 +1,35 @@
|
||||
// ================================================================================
|
||||
// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
|
||||
// You can delete these comments if you wish manually maintain this interface file.
|
||||
// ================================================================================
|
||||
|
||||
package service
|
||||
|
||||
import (
|
||||
"context"
|
||||
"server/internal/model"
|
||||
)
|
||||
|
||||
type (
|
||||
IRewardType interface {
|
||||
List(ctx context.Context, in *model.RewardTypeIn) (out *model.RewardTypeOut, err error)
|
||||
CreateRewardType(ctx context.Context, in *model.CreateRewardTypeIn) (out *model.CreateRewardTypeOut, err error)
|
||||
UpdateRewardType(ctx context.Context, in *model.UpdateRewardTypeIn) (out *model.UpdateRewardTypeOut, err error)
|
||||
DeleteRewardType(ctx context.Context, in *model.DeleteRewardTypeIn) (out *model.DeleteRewardTypeOut, err error)
|
||||
}
|
||||
)
|
||||
|
||||
var (
|
||||
localRewardType IRewardType
|
||||
)
|
||||
|
||||
func RewardType() IRewardType {
|
||||
if localRewardType == nil {
|
||||
panic("implement not found for interface IRewardType, forgot register?")
|
||||
}
|
||||
return localRewardType
|
||||
}
|
||||
|
||||
func RegisterRewardType(i IRewardType) {
|
||||
localRewardType = i
|
||||
}
|
||||
@ -15,7 +15,7 @@ database:
|
||||
level: "all"
|
||||
stdout: true
|
||||
default:
|
||||
link: "mysql:root:MSms0427@tcp(127.0.0.1:3306)/arenax?loc=Local&charset=utf8mb4"
|
||||
link: "mysql:root:MSms0427@tcp(192.168.3.132:3306)/arenax?loc=Local&charset=utf8mb4"
|
||||
debug: true
|
||||
|
||||
# Redis configuration.
|
||||
|
||||
@ -38,6 +38,14 @@ func init() {
|
||||
|
||||
enforcer.AddGroupingPolicy(consts.MerchantRoleCode, consts.StoreRoleCode) // 商户继承门店角色权限
|
||||
enforcer.AddGroupingPolicy(consts.AdminRoleCode, consts.MerchantRoleCode) // 管理员继承商户角色权限
|
||||
// 门店
|
||||
{
|
||||
// 奖励类型
|
||||
enforcer.AddPolicy("store", "/x/rewardType", "GET", "获取奖励类型列表")
|
||||
enforcer.AddPolicy("store", "/x/rewardType", "POST", "添加奖励类型")
|
||||
enforcer.AddPolicy("store", "/x/rewardType", "PUT", "更新奖励类型")
|
||||
enforcer.AddPolicy("store", "/x/rewardType/*", "DELETE", "删除奖励类型")
|
||||
}
|
||||
// 管理员
|
||||
{
|
||||
// admin
|
||||
|
||||
Reference in New Issue
Block a user