handle duplicate data
Former-commit-id: 2a7eeec1404514253cf1998af092feaa2eda33fe
This commit is contained in:
parent
70cf3c9cce
commit
c6c56da12b
|
@ -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"`
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -78,9 +78,19 @@ func HttpResult(r *http.Request, w http.ResponseWriter, resp interface{}, err er
|
|||
}
|
||||
|
||||
logx.WithContext(r.Context()).Errorf("【API-ERR】 : %+v ", err)
|
||||
|
||||
// 判断如果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()))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 授权的http方法
|
||||
|
|
Loading…
Reference in New Issue