Bladeren bron

wip:清楚缓存

wangshan 3 maanden geleden
bovenliggende
commit
ee2ac1aa49
1 gewijzigde bestanden met toevoegingen van 12 en 4 verwijderingen
  1. 12 4
      entity/user.go

+ 12 - 4
entity/user.go

@@ -21,6 +21,7 @@ const (
 	UserPowerRedisKey = "jy_userpowerredis_%s_%d_%s"
 	UserRegisterTime  = "jy_userregistertime_%s"
 	UserPowerEndTime  = "jy_user_power_end_time_%s"
+	CheckEntKK        = "check_ent_kk_%s"
 )
 
 type UserInfo struct {
@@ -288,6 +289,11 @@ func ClearUserPowerFunc(positionId, appId string) bool {
 		}
 		//用户权限缓存
 		redis.Del(RedisCode, fmt.Sprintf(UserPowerRedisKey, appId, time.Now().Day(), v))
+		//企业关联缓存
+		entCacheKey := redis.GetStr(RedisCode, fmt.Sprintf(CheckEntKK, positionId))
+		if entCacheKey != "" {
+			redis.Del(RedisCode, entCacheKey)
+		}
 	}
 	return true
 }
@@ -414,8 +420,9 @@ func (m *WorkDesktopMenu) CheckCapitalResources(menu *JYMenu, b, p bool, pUrl st
 	if usable {
 		//企业信息验证
 		if menu.CheckEnt > 0 {
-			var GetCheckEntInfo = func(menuId, entId int64) (menuEntInfo MenuEntInfo) {
-				checkEntKey := fmt.Sprintf("check_ent_key_%d_%d", menuId, entId)
+			usable = false
+			var GetCheckEntInfo = func(menuId, entId, deptId, positionId int64) (menuEntInfo MenuEntInfo) {
+				checkEntKey := fmt.Sprintf("check_ent_key_%d_%d_%d", menuId, entId, deptId)
 				cb, ce := redis.GetBytes(RedisCode, checkEntKey)
 				if ce == nil && len(*cb) > 0 {
 					ce = json.Unmarshal(*cb, &menuEntInfo)
@@ -431,6 +438,8 @@ func (m *WorkDesktopMenu) CheckCapitalResources(menu *JYMenu, b, p bool, pUrl st
 							err = json.Unmarshal(mb, &menuEntInfo)
 							if err == nil {
 								err = redis.PutBytes(RedisCode, checkEntKey, &mb, 4*60*60)
+								// 缓存key
+								redis.Put(RedisCode, fmt.Sprintf(CheckEntKK, strconv.FormatInt(positionId, 10)), checkEntKey, 5*60*60)
 							}
 						}
 						if err != nil {
@@ -440,9 +449,8 @@ func (m *WorkDesktopMenu) CheckCapitalResources(menu *JYMenu, b, p bool, pUrl st
 				}
 				return
 			}
-			mei := GetCheckEntInfo(int64(menu.Id), m.EntId)
+			mei := GetCheckEntInfo(int64(menu.Id), m.EntId, m.EntDeptId, m.PositionId)
 			if mei.EntId > 0 {
-				usable = false
 				var moldFunc = func() {
 					switch mei.Mold {
 					case 0: