diff --git a/desc/core/pcm-core.api b/desc/core/pcm-core.api index e907723a..e817525c 100644 --- a/desc/core/pcm-core.api +++ b/desc/core/pcm-core.api @@ -790,7 +790,14 @@ type ( CreateTime string `json:"createTime,omitempty" db:"create_time" gorm:"autoCreateTime"` } AdapterResp { - Data AdapterInfo `json:"data,omitempty"` + Id string `json:"id,omitempty" db:"id"` + Name string `json:"name,omitempty" db:"name"` + Type string `json:"type,omitempty" db:"type"` + ResourceType string `json:"resourceType,omitempty" db:"resource_type"` + Nickname string `json:"nickname,omitempty" db:"nickname"` + Version string `json:"version,omitempty" db:"version"` + Server string `json:"server,omitempty" db:"server"` + CreateTime string `json:"createTime,omitempty" db:"create_time" gorm:"autoCreateTime"` } AdapterListResp { List []AdapterInfo `json:"list,omitempty"` diff --git a/internal/logic/adapters/createadapterlogic.go b/internal/logic/adapters/createadapterlogic.go index 61cd6c81..f8878e63 100644 --- a/internal/logic/adapters/createadapterlogic.go +++ b/internal/logic/adapters/createadapterlogic.go @@ -27,11 +27,14 @@ func NewCreateAdapterLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Cre func (l *CreateAdapterLogic) CreateAdapter(req *types.AdapterCreateReq) (resp *types.AdapterResp, err error) { adapter := types.AdapterInfo{} + existAdapter := types.AdapterResp{} + resp = &types.AdapterResp{} utils.Convert(req, &adapter) //check name - exist := l.svcCtx.DbEngin.Table("t_adapter").Where("name = ?", req.Name).First(&types.AdapterInfo{}).Error + exist := l.svcCtx.DbEngin.Table("t_adapter").Where("name = ?", req.Name).First(&existAdapter).Error if !errors.Is(exist, gorm.ErrRecordNotFound) { - return nil, errors.New("name already exists") + resp = &existAdapter + return resp, errors.New("name already exists") } //check type var arr = [...]string{"0", "1", "2"} @@ -60,8 +63,10 @@ func (l *CreateAdapterLogic) CreateAdapter(req *types.AdapterCreateReq) (resp *t adapter.CreateTime = time.Now().Format("2006-01-02 15:04:05") result := l.svcCtx.DbEngin.Table("t_adapter").Create(&adapter) if result.Error != nil { - return nil, result.Error + return resp, result.Error } - return + _ = l.svcCtx.DbEngin.Table("t_adapter").Where("name = ?", req.Name).First(&existAdapter).Error + resp = &existAdapter + return resp, nil } diff --git a/internal/types/types.go b/internal/types/types.go index fcfe999e..d0124b66 100644 --- a/internal/types/types.go +++ b/internal/types/types.go @@ -722,7 +722,14 @@ type AdapterInfo struct { } type AdapterResp struct { - Data AdapterInfo `json:"data,omitempty"` + Id string `json:"id,omitempty" db:"id"` + Name string `json:"name,omitempty" db:"name"` + Type string `json:"type,omitempty" db:"type"` + ResourceType string `json:"resourceType,omitempty" db:"resource_type"` + Nickname string `json:"nickname,omitempty" db:"nickname"` + Version string `json:"version,omitempty" db:"version"` + Server string `json:"server,omitempty" db:"server"` + CreateTime string `json:"createTime,omitempty" db:"create_time" gorm:"autoCreateTime"` } type AdapterListResp struct { diff --git a/pkg/repository/result/httpResult.go b/pkg/repository/result/httpResult.go index 392264da..23fcd2c6 100644 --- a/pkg/repository/result/httpResult.go +++ b/pkg/repository/result/httpResult.go @@ -78,8 +78,18 @@ func HttpResult(r *http.Request, w http.ResponseWriter, resp interface{}, err er } logx.WithContext(r.Context()).Errorf("【API-ERR】 : %+v ", err) - - httpx.WriteJson(w, http.StatusBadRequest, Error(errcode, errmsg, r.Context())) + // 判断如果err内容为"name already exists",则将resp作为body.Data的信息返回 + if errmsg == "name already exists" { + body := Body{ + Code: 409, + Msg: errmsg, + TraceID: traceIDFromContext(r.Context()), + Data: resp, + } + httpx.WriteJson(w, http.StatusBadRequest, body) + } else { + httpx.WriteJson(w, http.StatusBadRequest, Error(errcode, errmsg, r.Context())) + } } }