新增奖励类型的 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:
|
gfcli:
|
||||||
gen:
|
gen:
|
||||||
dao:
|
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
|
descriptionTag: true
|
||||||
tablesEx: "casbin_rule"
|
tablesEx: "casbin_rule"
|
||||||
@ -9,6 +9,7 @@ import (
|
|||||||
"server/internal/controller/auth"
|
"server/internal/controller/auth"
|
||||||
"server/internal/controller/menu"
|
"server/internal/controller/menu"
|
||||||
"server/internal/controller/merchant"
|
"server/internal/controller/merchant"
|
||||||
|
"server/internal/controller/rewardType"
|
||||||
"server/internal/controller/role"
|
"server/internal/controller/role"
|
||||||
"server/internal/controller/wx"
|
"server/internal/controller/wx"
|
||||||
"server/internal/middleware"
|
"server/internal/middleware"
|
||||||
@ -36,6 +37,7 @@ var (
|
|||||||
role.NewV1(),
|
role.NewV1(),
|
||||||
menu.NewV1(),
|
menu.NewV1(),
|
||||||
merchant.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/menu"
|
||||||
_ "server/internal/logic/merchant"
|
_ "server/internal/logic/merchant"
|
||||||
_ "server/internal/logic/merchantAdmin"
|
_ "server/internal/logic/merchantAdmin"
|
||||||
|
_ "server/internal/logic/rewardType"
|
||||||
_ "server/internal/logic/role"
|
_ "server/internal/logic/role"
|
||||||
_ "server/internal/logic/store"
|
_ "server/internal/logic/store"
|
||||||
_ "server/internal/logic/storeAdmin"
|
_ "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"
|
level: "all"
|
||||||
stdout: true
|
stdout: true
|
||||||
default:
|
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
|
debug: true
|
||||||
|
|
||||||
# Redis configuration.
|
# Redis configuration.
|
||||||
|
|||||||
@ -38,6 +38,14 @@ func init() {
|
|||||||
|
|
||||||
enforcer.AddGroupingPolicy(consts.MerchantRoleCode, consts.StoreRoleCode) // 商户继承门店角色权限
|
enforcer.AddGroupingPolicy(consts.MerchantRoleCode, consts.StoreRoleCode) // 商户继承门店角色权限
|
||||||
enforcer.AddGroupingPolicy(consts.AdminRoleCode, consts.MerchantRoleCode) // 管理员继承商户角色权限
|
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
|
// admin
|
||||||
|
|||||||
Reference in New Issue
Block a user