diff --git a/domain/model/cp_m/cp_relation.go b/domain/model/cp_m/cp_relation.go index 009b7cb79304443fe52dc6fc53230e7b751989d1..29f2c36f70feb4f030ffe90ad06a858e463aa303 100644 --- a/domain/model/cp_m/cp_relation.go +++ b/domain/model/cp_m/cp_relation.go @@ -130,7 +130,21 @@ func GetCp(model *domain.Model, userId uint64) (*CpRelation, error) { if err == gorm.ErrRecordNotFound { return res, nil } - model.Log.Errorf("CreateCp userId:%d, err:%v", userId, err) + model.Log.Errorf("GetCp userId:%d, err:%v", userId, err) + return nil, err + } + return res, nil +} + +func GetCpByIds(model *domain.Model, userId1, userId2 uint64) (*CpRelation, error) { + ids := []uint64{userId1, userId2} + res := new(CpRelation) + err := model.DB().Model(CpRelation{}).Where("user_id1 in (?) and user_id2 in (?)", ids, ids).First(&res).Error + if err != nil { + if err == gorm.ErrRecordNotFound { + return res, nil + } + model.Log.Errorf("GetCpByIds userId1:%d, userId2:%d, err:%v", userId1, userId2, err) return nil, err } return res, nil diff --git a/domain/service/cp_s/cp_relation.go b/domain/service/cp_s/cp_relation.go index 511e4d06f491b04fb701612a7e7f3e52a8f57319..1c4aa49079fff27120b1ea2c76bdafc884cf6fa8 100644 --- a/domain/service/cp_s/cp_relation.go +++ b/domain/service/cp_s/cp_relation.go @@ -130,22 +130,31 @@ func CancelCpRelation(myCtx *mycontext.MyContext, myUserId uint64, externalId, l return err } - // 自己没有cp了 - myCp, err := cp_m.GetCp(model, myUserId) - if err != nil { - return err - } - if myCp.Id == 0 { - return myerr.WrapErr(bizerr.InvalidParameter) - } - // 对方没有cp了 - inviCp, err := cp_m.GetCp(model, userRec.ID) + // 我和对方是否是cp,且cp关系存在 + cpRelation, err := cp_m.GetCpByIds(model, myUserId, userRec.ID) if err != nil { return err } - if inviCp.Id == 0 { + if cpRelation.Id == 0 { + model.Log.Errorf("CancelCpRelation cp关系不存在 id1:%v, id2:%v", myUserId, userRec.ID) return myerr.WrapErr(bizerr.InvalidParameter) } + //// 自己没有cp了 + //myCp, err := cp_m.GetCp(model, myUserId) + //if err != nil { + // return err + //} + //if myCp.Id == 0 { + // return myerr.WrapErr(bizerr.InvalidParameter) + //} + //// 对方没有cp了 + //inviCp, err := cp_m.GetCp(model, userRec.ID) + //if err != nil { + // return err + //} + //if inviCp.Id == 0 { + // return myerr.WrapErr(bizerr.InvalidParameter) + //} // 是否有关于我的cp解除申请,且还未被处理 myCancel, err := cp_m.GetCpCancelWithMe(model, user.ID, cp_e.CpCancel)