|
@@ -43,7 +43,7 @@ var (
|
|
*测试用例放的地方不对 待调整
|
|
*测试用例放的地方不对 待调整
|
|
*/
|
|
*/
|
|
//用户权限 初始化
|
|
//用户权限 初始化
|
|
-func AutoUserPowerInfo(userId, appId string, entId int64) map[string]int {
|
|
|
|
|
|
+func (m *WorkDesktopMenu) AutoUserPowerInfo() map[string]int {
|
|
/*
|
|
/*
|
|
* 商机管理--》新版商机管理vs老版商机管理
|
|
* 商机管理--》新版商机管理vs老版商机管理
|
|
* 大会员--》bigmember_service
|
|
* 大会员--》bigmember_service
|
|
@@ -52,7 +52,7 @@ func AutoUserPowerInfo(userId, appId string, entId int64) map[string]int {
|
|
*/
|
|
*/
|
|
var UserPowerMap = map[string]int{}
|
|
var UserPowerMap = map[string]int{}
|
|
//redis newother 查询是否存在用户功能信息
|
|
//redis newother 查询是否存在用户功能信息
|
|
- userPowerRedisKey := fmt.Sprintf(UserPowerRedisKey, appId, time.Now().Day(), userId)
|
|
|
|
|
|
+ userPowerRedisKey := fmt.Sprintf(UserPowerRedisKey, m.AppId, time.Now().Day(), m.UserId)
|
|
bytes, err := redis.GetBytes(RedisCode, userPowerRedisKey)
|
|
bytes, err := redis.GetBytes(RedisCode, userPowerRedisKey)
|
|
if err == nil && len(*bytes) > 0 {
|
|
if err == nil && len(*bytes) > 0 {
|
|
if err = json.Unmarshal(*bytes, &UserPowerMap); err == nil {
|
|
if err = json.Unmarshal(*bytes, &UserPowerMap); err == nil {
|
|
@@ -60,11 +60,13 @@ func AutoUserPowerInfo(userId, appId string, entId int64) map[string]int {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//查询用户信息
|
|
//查询用户信息
|
|
- data, ok := Mgo.FindById("user", userId, `{"s_phone":1,"s_m_phone":1,i_member_status":1,“i_member_endtime”:1,"s_member_mainid":1,"i_member_sub_status":1,"i_vip_status":1,"l_vip_endtime":1,"o_vipjy":1,"o_jy":1,"l_registedate":1}`)
|
|
|
|
|
|
+ data, ok := Mgo.FindById("user", m.UserId, `{"s_phone":1,"s_m_phone":1,i_member_status":1,“i_member_endtime”:1,"s_member_mainid":1,"i_member_sub_status":1,"i_vip_status":1,"l_vip_endtime":1,"o_vipjy":1,"o_jy":1,"l_registedate":1}`)
|
|
if ok && *data != nil && len(*data) > 0 {
|
|
if ok && *data != nil && len(*data) > 0 {
|
|
var (
|
|
var (
|
|
- isFree = true
|
|
|
|
- domainBool = false //第一版领域化权限判断 ;第二版:超级订阅||大会员 到期时间超过90天
|
|
|
|
|
|
+ isFree = true
|
|
|
|
+ //第一版领域化权限判断 ;第二版:超级订阅||大会员 到期时间超过90天
|
|
|
|
+ //商机管理服务 前提是超级订阅、大会员、医械通
|
|
|
|
+ domainBool = false
|
|
registerTime int64 = 0
|
|
registerTime int64 = 0
|
|
)
|
|
)
|
|
phone, _ := MC.If((*data)["s_phone"] != nil, (*data)["s_phone"], (*data)["s_m_phone"]).(string)
|
|
phone, _ := MC.If((*data)["s_phone"] != nil, (*data)["s_phone"], (*data)["s_m_phone"]).(string)
|
|
@@ -77,7 +79,7 @@ func AutoUserPowerInfo(userId, appId string, entId int64) map[string]int {
|
|
for _, entNicheInfo := range *entNicheInfos {
|
|
for _, entNicheInfo := range *entNicheInfos {
|
|
//判断是否是当前企业
|
|
//判断是否是当前企业
|
|
ent_id := MC.Int64All(entNicheInfo["ent_id"])
|
|
ent_id := MC.Int64All(entNicheInfo["ent_id"])
|
|
- if entId > 0 && ent_id != entId {
|
|
|
|
|
|
+ if m.EntId > 0 && ent_id != m.EntId {
|
|
continue
|
|
continue
|
|
}
|
|
}
|
|
//entNicheInfo := (*entNicheInfos)[0]
|
|
//entNicheInfo := (*entNicheInfos)[0]
|
|
@@ -103,7 +105,7 @@ func AutoUserPowerInfo(userId, appId string, entId int64) map[string]int {
|
|
}
|
|
}
|
|
//大会员
|
|
//大会员
|
|
if memberStatus := MC.IntAll((*data)["i_member_status"]); memberStatus > 0 || ConfigJson.BigMemberOff {
|
|
if memberStatus := MC.IntAll((*data)["i_member_status"]); memberStatus > 0 || ConfigJson.BigMemberOff {
|
|
- mainUserId := userId
|
|
|
|
|
|
+ mainUserId := m.UserId
|
|
if memberStatus > 0 {
|
|
if memberStatus > 0 {
|
|
registerTime = MC.Int64All((*data)["i_member_endtime"])
|
|
registerTime = MC.Int64All((*data)["i_member_endtime"])
|
|
domainBool = true
|
|
domainBool = true
|
|
@@ -152,6 +154,13 @@ func AutoUserPowerInfo(userId, appId string, entId int64) map[string]int {
|
|
if Mysql.CountBySql(`select count(*) from privatedata where phone = ?`, phone) > 0 {
|
|
if Mysql.CountBySql(`select count(*) from privatedata where phone = ?`, phone) > 0 {
|
|
UserPowerMap["400"] = 1
|
|
UserPowerMap["400"] = 1
|
|
}
|
|
}
|
|
|
|
+ //资源中台获取权限
|
|
|
|
+ powerList := GetResources(m.AppId, m.NewUserId, m.EntId, m.EntUserId)
|
|
|
|
+ if len(powerList) > 0 {
|
|
|
|
+ for _, plv := range powerList {
|
|
|
|
+ UserPowerMap[plv] = 1
|
|
|
|
+ }
|
|
|
|
+ }
|
|
//领域化产品权限
|
|
//领域化产品权限
|
|
//第一版:必须是大会员或者超级订阅用户 且留资 留资表:capital_retention;source = 'medical_domain',未留资提示留资信息
|
|
//第一版:必须是大会员或者超级订阅用户 且留资 留资表:capital_retention;source = 'medical_domain',未留资提示留资信息
|
|
//第二版:调资源中台rpc获取用户是否有使用领域化产品的权限 无权限则去购买
|
|
//第二版:调资源中台rpc获取用户是否有使用领域化产品的权限 无权限则去购买
|
|
@@ -160,7 +169,7 @@ func AutoUserPowerInfo(userId, appId string, entId int64) map[string]int {
|
|
//2:判断用户是否留资 否:提示用去留资;是:>-3
|
|
//2:判断用户是否留资 否:提示用去留资;是:>-3
|
|
//3:资源中台获取用户权限码判断是否有权限 否:提示用户去联系客服
|
|
//3:资源中台获取用户权限码判断是否有权限 否:提示用户去联系客服
|
|
if domainBool {
|
|
if domainBool {
|
|
- userRegisterTimeKey := fmt.Sprintf(UserRegisterTime, userId)
|
|
|
|
|
|
+ userRegisterTimeKey := fmt.Sprintf(UserRegisterTime, m.UserId)
|
|
redis.Put(RedisCode, userRegisterTimeKey, strconv.Itoa(int(registerTime)), int(registerTime))
|
|
redis.Put(RedisCode, userRegisterTimeKey, strconv.Itoa(int(registerTime)), int(registerTime))
|
|
UserPowerMap["500"] = 1
|
|
UserPowerMap["500"] = 1
|
|
}
|
|
}
|
|
@@ -169,10 +178,10 @@ func AutoUserPowerInfo(userId, appId string, entId int64) map[string]int {
|
|
bytes, err := json.Marshal(UserPowerMap)
|
|
bytes, err := json.Marshal(UserPowerMap)
|
|
if err == nil && len(bytes) > 0 {
|
|
if err == nil && len(bytes) > 0 {
|
|
redis.PutBytes(RedisCode, userPowerRedisKey, &bytes, ConfigJson.InternalTime)
|
|
redis.PutBytes(RedisCode, userPowerRedisKey, &bytes, ConfigJson.InternalTime)
|
|
- if entId > 0 {
|
|
|
|
|
|
+ if m.EntId > 0 {
|
|
//商机管理用户entId 缓存
|
|
//商机管理用户entId 缓存
|
|
- userEntIdKey := fmt.Sprintf(UserEntIdKey, appId, time.Now().Day(), userId)
|
|
|
|
- redis.Put(RedisCode, userEntIdKey, entId, ConfigJson.InternalTime)
|
|
|
|
|
|
+ userEntIdKey := fmt.Sprintf(UserEntIdKey, m.AppId, time.Now().Day(), m.UserId)
|
|
|
|
+ redis.Put(RedisCode, userEntIdKey, m.EntId, ConfigJson.InternalTime)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -229,8 +238,10 @@ func UserRolePowerInit(strs []string) {
|
|
*/
|
|
*/
|
|
/*存在超级订阅 或 大会员到期 而医械通未到期的情况*/
|
|
/*存在超级订阅 或 大会员到期 而医械通未到期的情况*/
|
|
|
|
|
|
-// CheckCapitalResources 是否需要留资 且权限验证
|
|
|
|
-func CheckCapitalResources(menu *JYMenu, wd *WorkDesktopMenu, b bool) (title, content, confirmUrl, confirmText, appType, openType string, isShowCancel, usable bool) {
|
|
|
|
|
|
+// CheckCapitalResources 是否需要留资 且权限验证--弹窗处理
|
|
|
|
+//b 一级权限(超级订阅、大会员等)
|
|
|
|
+//p 二级权限(请求资源中台:医械通等)
|
|
|
|
+func CheckCapitalResources(menu *JYMenu, wd *WorkDesktopMenu, b, p bool) (title, content, confirmUrl, confirmText, appType, openType string, isShowCancel, usable bool) {
|
|
OverallLock.Lock()
|
|
OverallLock.Lock()
|
|
userInfo := UserInfoMap[wd.NewUserId]
|
|
userInfo := UserInfoMap[wd.NewUserId]
|
|
if userInfo == nil {
|
|
if userInfo == nil {
|
|
@@ -283,23 +294,28 @@ func CheckCapitalResources(menu *JYMenu, wd *WorkDesktopMenu, b bool) (title, co
|
|
if menu.PermissionCode != "" {
|
|
if menu.PermissionCode != "" {
|
|
permissionBool = false
|
|
permissionBool = false
|
|
if (menu.CapitalCode != "" && capitalBool) || menu.CapitalCode == "" {
|
|
if (menu.CapitalCode != "" && capitalBool) || menu.CapitalCode == "" {
|
|
- for _, pv := range strings.Split(menu.PermissionCode, ",") {
|
|
|
|
- if userInfo.Permissions[pv] == 0 {
|
|
|
|
- userInfo.Permissions[pv] = -1
|
|
|
|
- powerList := GetResources(wd.AppId, wd.NewUserId, wd.EntId, wd.EntUserId)
|
|
|
|
- if len(powerList) > 0 {
|
|
|
|
- for _, plv := range powerList {
|
|
|
|
- userInfo.Permissions[plv] = 1
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- if userInfo.Permissions[pv] >= 0 {
|
|
|
|
- title = ""
|
|
|
|
- permissionBool = true
|
|
|
|
- customPopup = false
|
|
|
|
- break
|
|
|
|
- }
|
|
|
|
|
|
+ if p {
|
|
|
|
+ title = ""
|
|
|
|
+ permissionBool = true
|
|
|
|
+ customPopup = false
|
|
}
|
|
}
|
|
|
|
+ //for _, pv := range strings.Split(menu.PermissionCode, ",") {
|
|
|
|
+ // if userInfo.Permissions[pv] == 0 {
|
|
|
|
+ // userInfo.Permissions[pv] = -1
|
|
|
|
+ // powerList := GetResources(wd.AppId, wd.NewUserId, wd.EntId, wd.EntUserId)
|
|
|
|
+ // if len(powerList) > 0 {
|
|
|
|
+ // for _, plv := range powerList {
|
|
|
|
+ // userInfo.Permissions[plv] = 1
|
|
|
|
+ // }
|
|
|
|
+ // }
|
|
|
|
+ // }
|
|
|
|
+ // if userInfo.Permissions[pv] >= 0 {
|
|
|
|
+ // title = ""
|
|
|
|
+ // permissionBool = true
|
|
|
|
+ // customPopup = false
|
|
|
|
+ // break
|
|
|
|
+ // }
|
|
|
|
+ //}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//有用户权限 查看功能权限
|
|
//有用户权限 查看功能权限
|