package mwacc import ( "context" "hkdj-web-server/pub/common/errors" "hkdj-web-server/pub/common/log" "hkdj-web-server/pub/common/srvdef" "hkdj-web-server/pub/mongos" "time" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/bson/primitive" ) // 过滤更新 func UpOneTokenByFilter(ctx context.Context, query primitive.M, update primitive.M) (err error) { _, err = mwAccTokenColl.UpdateOne(ctx, query, primitive.M{"$set": update}) return } func SaveToken(ctx context.Context, accId int64, token string) (ok bool, err error) { var booToken MwAccToken // 查找 err = mwAccTokenColl.FindOne(ctx, &booToken, primitive.M{FN.MwAccToken.AccId: accId}) if booToken.AccId > 0 { // 更新 err = UpOneTokenByFilter(ctx, primitive.M{ FN.MwAccToken.AccId: accId, }, primitive.M{ FN.MwAccToken.Token: token, FN.MwAccToken.UpdatedAt: time.Now(), }) if err != nil { return false, err } return true, nil } if err != nil || booToken.AccId == 0 { if _, err := mwAccTokenColl.InsertOne(ctx, primitive.M{ FN.MwAccToken.Id: mongos.Lid.MwAccToken.Get(), FN.MwAccToken.AccId: accId, FN.MwAccToken.Token: token, FN.MwAccToken.CreatedAt: time.Now(), }); err != nil { return false, err } } return true, nil } func CheckToken(ctx context.Context, token string) (ok bool, err error) { var booToken MwAccToken Terr := mwAccTokenColl.FindOne(ctx, &booToken, primitive.M{FN.MwAccToken.Token: token}) if Terr != nil || booToken.AccId == 0 { err = errors.MakeWithMsg(errors.NoToken, "token 不存在或已过期") return false, err } return true, nil } // // 检测Token // func CheckToken(ctx context.Context, token string) (ok bool, err error) { // var booToken WebToken // Terr := tokenColl.FindOne(ctx, &booToken, primitive.M{"token": token}) // if Terr != nil || booToken.Id == 0 { // err = errors.MakeWithMsg(errors.NoToken, "token 不存在或已过期") // return // } // return true, nil // } // 删除token func DeleteOneToken(ctx context.Context, filter bson.M) *srvdef.SrvErr { if _, err := mwAccTokenColl.DeleteOne(ctx, filter); err != nil { log.Warn("mwacc:DeleteOneToken db.DeleteOne failed", log.E(err), log.Any("filter", filter)) return srvdef.New(srvdef.ErrDbDeleteError, "", "") } return nil }