Przeglądaj źródła

feat:企业订阅菜单

wangshan 2 lat temu
rodzic
commit
c849f0f6c1
1 zmienionych plików z 16 dodań i 8 usunięć
  1. 16 8
      entity/user.go

+ 16 - 8
entity/user.go

@@ -72,6 +72,7 @@ func (m *WorkDesktopMenu) AutoUserPowerInfo() map[string]int {
 			registerTime   int64 = 0
 			entnicheRoleId       = 0  //企业级服务 企业管理员
 			entnicheIsNew        = -1 //是否是新版商机管理
+			powerSource          = 0  //商机管理服务
 		)
 		phone, _ := MC.If((*data)["s_phone"] != nil, (*data)["s_phone"], (*data)["s_m_phone"]).(string)
 		if phone != "" {
@@ -123,12 +124,17 @@ func (m *WorkDesktopMenu) AutoUserPowerInfo() map[string]int {
 					//1:企业管理员 2:部门管理员
 					entnicheRoleId = MC.IntAll(entNicheInfo["role_id"])
 					//商机管理
+					//status>0 商机管理付费用户
 					if MC.IntAll(entNicheInfo["status"]) == 1 {
+						//是否是新版商机管理
 						entnicheIsNew = MC.IntAll(entNicheInfo["isNew"])
-						if MC.IntAll(entNicheInfo["power"]) == 1 {
+						//管理员entnicheRoleId>0 并不一定 power==1,即使power==0 也有权限
+						//员工被分配后power==1否则没有权限
+						if MC.IntAll(entNicheInfo["power"]) == 1 || entnicheRoleId > 0 {
 							//商机管理服务 P259需求
 							//有商机管理服务 不会再有商机管理订阅菜单
-							switch MC.IntAll(entNicheInfo["power_source"]) {
+							powerSource = MC.IntAll(entNicheInfo["power_source"])
+							switch powerSource {
 							case 0:
 								isFree = false
 								switch entnicheIsNew {
@@ -186,13 +192,15 @@ func (m *WorkDesktopMenu) AutoUserPowerInfo() map[string]int {
 			//必须是企业管理员-&-购买了企业级应用服务
 			c := Mysql.CountBySql(fmt.Sprintf(`SELECT COUNT(id) FROM %s WHERE ent_id = ? AND TO_DAYS(end_time) >= TO_DAYS(NOW()) AND (product_type LIKE '%VIP订阅%' OR product_type LIKE '%大会员%')`, EntnicheWaitEmpower), m.EntId)
 			logx.Info(entnicheRoleId, "cccccc:", c)
-			if (c > 0 || entnicheIsNew == 0) && entnicheRoleId > 0 {
-				//企业级服务 企业订阅--新版商机管理购买服务或老版商机管理 两者得管理员
+			//企业级服务 权限管理(只有企业管理员有权限)
+			if entnicheRoleId == 1 && c > 0 {
+				UserPowerMap["700"] = 1
+			}
+			//企业级服务 企业订阅--
+			//1、存在未到期的购买主体为“企业”切购买产品为大会员或者超级订阅的部门管理员或企业管理员;c > 0
+			//2、存在未到期的老版或者新版商机管理的企业管理员或部门管理员(非商机管理服务)。entnicheIsNew > -1 && powerSource == 0
+			if (c > 0 || entnicheIsNew > -1 && powerSource == 0) && entnicheRoleId > 0 {
 				UserPowerMap["701"] = 1
-				//企业级服务 权限管理(只有企业管理员有权限)
-				if entnicheRoleId == 1 && c > 0 {
-					UserPowerMap["700"] = 1
-				}
 			}
 			//领域化产品权限
 			//第一版:必须是大会员或者超级订阅用户 且留资 留资表:capital_retention;source = 'medical_domain',未留资提示留资信息