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"`
|
CreateTime string `json:"createTime,omitempty" db:"create_time" gorm:"autoCreateTime"`
|
||||||
}
|
}
|
||||||
AdapterResp {
|
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 {
|
AdapterListResp {
|
||||||
List []AdapterInfo `json:"list,omitempty"`
|
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) {
|
func (l *CreateAdapterLogic) CreateAdapter(req *types.AdapterCreateReq) (resp *types.AdapterResp, err error) {
|
||||||
adapter := types.AdapterInfo{}
|
adapter := types.AdapterInfo{}
|
||||||
|
existAdapter := types.AdapterResp{}
|
||||||
|
resp = &types.AdapterResp{}
|
||||||
utils.Convert(req, &adapter)
|
utils.Convert(req, &adapter)
|
||||||
//check name
|
//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) {
|
if !errors.Is(exist, gorm.ErrRecordNotFound) {
|
||||||
return nil, errors.New("name already exists")
|
resp = &existAdapter
|
||||||
|
return resp, errors.New("name already exists")
|
||||||
}
|
}
|
||||||
//check type
|
//check type
|
||||||
var arr = [...]string{"0", "1", "2"}
|
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")
|
adapter.CreateTime = time.Now().Format("2006-01-02 15:04:05")
|
||||||
result := l.svcCtx.DbEngin.Table("t_adapter").Create(&adapter)
|
result := l.svcCtx.DbEngin.Table("t_adapter").Create(&adapter)
|
||||||
if result.Error != nil {
|
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 {
|
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 {
|
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)
|
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()))
|
httpx.WriteJson(w, http.StatusBadRequest, Error(errcode, errmsg, r.Context()))
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 授权的http方法
|
// 授权的http方法
|
||||||
|
|
Loading…
Reference in New Issue