52 lines
1.7 KiB
Go
52 lines
1.7 KiB
Go
package admin_query
|
||
|
||
import (
|
||
"context"
|
||
|
||
"ycc-server/app/main/api/internal/svc"
|
||
"ycc-server/app/main/api/internal/types"
|
||
"ycc-server/common/xerr"
|
||
|
||
"github.com/pkg/errors"
|
||
"github.com/zeromicro/go-zero/core/logx"
|
||
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
||
)
|
||
|
||
type AdminDeleteQueryFeatureDataLogic struct {
|
||
logx.Logger
|
||
ctx context.Context
|
||
svcCtx *svc.ServiceContext
|
||
}
|
||
|
||
func NewAdminDeleteQueryFeatureDataLogic(ctx context.Context, svcCtx *svc.ServiceContext) *AdminDeleteQueryFeatureDataLogic {
|
||
return &AdminDeleteQueryFeatureDataLogic{
|
||
Logger: logx.WithContext(ctx),
|
||
ctx: ctx,
|
||
svcCtx: svcCtx,
|
||
}
|
||
}
|
||
|
||
func (l *AdminDeleteQueryFeatureDataLogic) AdminDeleteQueryFeatureData(req *types.AdminDeleteQueryFeatureDataReq) (resp *types.AdminDeleteQueryFeatureDataResp, err error) {
|
||
// 基本参数校验
|
||
if req.QueryId == "" {
|
||
return nil, errors.Wrapf(xerr.NewErrMsg("QueryId 不能为空"), "")
|
||
}
|
||
if req.FeatureApiId == "" {
|
||
return nil, errors.Wrapf(xerr.NewErrMsg("feature_api_id 不能为空"), "")
|
||
}
|
||
|
||
// 使用事务调用 WhitelistService.DeleteFeatureFromQueryData,保持与其它删除逻辑一致
|
||
err = l.svcCtx.QueryModel.Trans(l.ctx, func(ctx context.Context, session sqlx.Session) error {
|
||
return l.svcCtx.WhitelistService.DeleteFeatureFromQueryData(ctx, session, req.QueryId, req.FeatureApiId)
|
||
})
|
||
if err != nil {
|
||
l.Errorf("Admin 删除查询模块数据失败, queryId=%s, featureApiId=%s, err=%+v", req.QueryId, req.FeatureApiId, err)
|
||
return nil, errors.Wrapf(xerr.NewErrMsg("删除失败,请稍后重试"), "")
|
||
}
|
||
|
||
return &types.AdminDeleteQueryFeatureDataResp{
|
||
Success: true,
|
||
Message: "删除成功(如果原本不存在该模块数据,则视为已删除)",
|
||
}, nil
|
||
}
|