78 lines
1.8 KiB
Go
78 lines
1.8 KiB
Go
package controller
|
|
|
|
import (
|
|
"context"
|
|
|
|
"cidservice/model/dto"
|
|
"cidservice/service"
|
|
|
|
"github.com/gogf/gf/v2/errors/gerror"
|
|
)
|
|
|
|
var Strategy = new(strategy)
|
|
|
|
type strategy struct{}
|
|
|
|
// Create 创建策略
|
|
func (c *strategy) Create(ctx context.Context, req *dto.CreateStrategyReq) (res *dto.StrategyRes, err error) {
|
|
id, err := service.Strategy.CreateStrategy(ctx, req)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
strategy, err := service.Strategy.GetStrategyByID(ctx, id)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return strategy, nil
|
|
}
|
|
|
|
// Update 更新策略
|
|
func (c *strategy) Update(ctx context.Context, req *dto.UpdateStrategyReq) (res *dto.StrategyRes, err error) {
|
|
affected, err := service.Strategy.UpdateStrategy(ctx, req)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if affected == 0 {
|
|
return nil, gerror.New("策略更新失败")
|
|
}
|
|
|
|
strategy, err := service.Strategy.GetStrategyByID(ctx, req.Id)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return strategy, nil
|
|
}
|
|
|
|
// Delete 删除策略
|
|
func (c *strategy) Delete(ctx context.Context, req *dto.DeleteStrategyReq) (res *dto.DeleteStrategyRes, err error) {
|
|
affected, err := service.Strategy.DeleteStrategy(ctx, req.Id)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if affected == 0 {
|
|
return nil, gerror.New("策略删除失败")
|
|
}
|
|
|
|
return &dto.DeleteStrategyRes{
|
|
Success: true,
|
|
}, nil
|
|
}
|
|
|
|
// GetByID 根据ID获取策略
|
|
func (c *strategy) GetByID(ctx context.Context, req *dto.GetStrategyReq) (res *dto.StrategyRes, err error) {
|
|
strategy, err := service.Strategy.GetStrategyByID(ctx, req.Id)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return strategy, nil
|
|
}
|
|
|
|
// GetList 获取策略列表
|
|
func (c *strategy) GetList(ctx context.Context, req *dto.GetStrategyListReq) (res *dto.GetStrategyListRes, err error) {
|
|
return service.Strategy.GetStrategyList(ctx, req)
|
|
}
|