fix:修复因切换身份的bug

This commit is contained in:
henry
2022-02-25 17:48:30 +08:00
parent 84dd9d1ea8
commit 41e9b6f98c
3 changed files with 10 additions and 4 deletions

View File

@ -4,6 +4,7 @@ import (
"SciencesServer/app/api/enterprise/controller/user" "SciencesServer/app/api/enterprise/controller/user"
"SciencesServer/app/basic/api" "SciencesServer/app/basic/api"
"SciencesServer/app/session" "SciencesServer/app/session"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
) )

View File

@ -9,8 +9,9 @@ import (
config2 "SciencesServer/config" config2 "SciencesServer/config"
"SciencesServer/serve/orm" "SciencesServer/serve/orm"
"errors" "errors"
"gorm.io/gorm"
"time" "time"
"gorm.io/gorm"
) )
type Identity struct{ *session.Enterprise } type Identity struct{ *session.Enterprise }
@ -213,7 +214,7 @@ func (c *Identity) Switch(identity int) error {
if c.Identity&identity > 0 { if c.Identity&identity > 0 {
mUserIdentity := model.NewUserIdentity() mUserIdentity := model.NewUserIdentity()
// 查询用户身份 // 查询用户身份
isExist, err := model2.FirstField(mUserIdentity.UserIdentity, []string{"id", "name", "uuid"}, isExist, err := model2.FirstField(mUserIdentity.UserIdentity, []string{"id", "name", "uid"},
model2.NewWhere("uid", c.UID), model2.NewWhere("identity", identity)) model2.NewWhere("uid", c.UID), model2.NewWhere("identity", identity))
if err != nil { if err != nil {
@ -224,7 +225,7 @@ func (c *Identity) Switch(identity int) error {
if err = orm.GetDB().Transaction(func(tx *gorm.DB) error { if err = orm.GetDB().Transaction(func(tx *gorm.DB) error {
if err = model2.UpdatesWhere(mUserIdentity.UserIdentity, map[string]interface{}{ if err = model2.UpdatesWhere(mUserIdentity.UserIdentity, map[string]interface{}{
"is_selected": model2.UserIdentitySelectedForNo, "updated_at": now, "is_selected": model2.UserIdentitySelectedForNo, "updated_at": now,
}, []*model2.ModelWhere{model2.NewWhere("uuid", c.IdentityUID)}, tx); err != nil { }, []*model2.ModelWhere{model2.NewWhere("uid", c.IdentityUID)}, tx); err != nil {
return err return err
} }
return model2.Updates(mUserIdentity.UserIdentity, map[string]interface{}{ return model2.Updates(mUserIdentity.UserIdentity, map[string]interface{}{
@ -235,7 +236,7 @@ func (c *Identity) Switch(identity int) error {
} }
} }
c.SelectIdentity = identity c.SelectIdentity = identity
service.Publish(config2.EventForAccountLoginProduce, config2.RedisKeyForAccountEnterprise, c.GetStringUID(), c.Enterprise) service.Publish(config2.EventForRedisHashProduce, config2.RedisKeyForAccountEnterprise, c.GetStringUID(), c.Enterprise)
return nil return nil
} }
return errors.New("操作错误,无效的身份信息") return errors.New("操作错误,无效的身份信息")

View File

@ -7,6 +7,7 @@ import (
"SciencesServer/app/basic/api" "SciencesServer/app/basic/api"
"SciencesServer/app/session" "SciencesServer/app/session"
"SciencesServer/config" "SciencesServer/config"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
) )
@ -480,6 +481,9 @@ func registerEnterpriseAPI(app *gin.Engine) {
{ {
_api := new(api3.User) _api := new(api3.User)
userV1.GET("/info", _api.Info) userV1.GET("/info", _api.Info)
userV1.POST("/identity", _api.IdentityBasic)
userV1.POST("/identity/detail", _api.IdentityDetail)
userV1.POST("/identity/switch", _api.IdentitySwitch)
userV1.POST("/back", _api.Back) userV1.POST("/back", _api.Back)
userV1.POST("/back/bind", _api.BackBind) userV1.POST("/back/bind", _api.BackBind)
userV1.POST("/back/unbind", _api.BackUnbind) userV1.POST("/back/unbind", _api.BackUnbind)