package jy import ( "app.yhyue.com/moapp/jybase/go-xweb/httpsession" "app.yhyue.com/moapp/jypkg/middleground" ) var SwitchService = &switchService{ SessionKey: "vSwitch", Member: "m", Vip: "v", Free: "", Entniche: "s", } //切换超级订阅、大会员服务 type switchService struct { SessionKey string Member string Vip string Free string Entniche string } /* 获取当前所选的服务类型 * @param session * @param mongodb * @return string 服务类型 */ func (s *switchService) Get(session *httpsession.Session, middleground middleground.Middleground) string { //userId, _ := session.Get("userId").(string) v, _ := session.Get(s.SessionKey).(string) data := GetBigVipUserBaseMsg(session, middleground) //u, ok := m.FindById("user", userId, `{"i_member_status":1,"i_vip_status":1}`) if data != nil { if i_member_status := data.Status; v == s.Member && i_member_status > 0 { return s.Member } else if i_vip_status := data.VipStatus; v == s.Vip && i_vip_status > 0 { return s.Vip } else if i_member_status > 0 { session.Set(s.SessionKey, s.Member) return s.Member } else if i_vip_status > 0 { session.Set(s.SessionKey, s.Vip) return s.Vip } } session.Del(s.SessionKey) return s.Free } func (s *switchService) GetEntniche(session *httpsession.Session, middleground middleground.Middleground) string { sessMap := session.GetMultiple() //userId, _ := sessMap["userId"].(string) v, _ := sessMap[s.SessionKey].(string) //u, ok := m.FindById("user", userId, `{"i_member_status":1,"i_vip_status":1}`) data := GetBigVipUserBaseMsg(session, middleground) /* if entId, entUserId := util.IntAll(sessMap["entId"]), util.IntAll(sessMap["entUserId"]); entId > 0 && entUserId > 0 { //当前企业是否购买商机管理 if sql.CountBySql(`SELECT count(1) as count FROM entniche_info a inner join entniche_user b on (a.id=? and a.status=1 and ifnull(a.power_source,0)=0 and b.id=? and b.power=1)`, entId, entUserId) > 0 { entniche = true } }*/ entniche := data.Data.Entniche.Status > 0 if data != nil { if i_member_status := data.Status; v == s.Member && i_member_status > 0 { return s.Member } else if v == s.Entniche && entniche { return s.Entniche } else if i_vip_status := data.VipStatus; v == s.Vip && i_vip_status > 0 { return s.Vip } else if i_member_status > 0 { session.Set(s.SessionKey, s.Member) return s.Member } else if entniche { session.Set(s.SessionKey, s.Entniche) return s.Entniche } else if i_vip_status > 0 { session.Set(s.SessionKey, s.Vip) return s.Vip } } session.Del(s.SessionKey) return s.Free } //所选服务是否是大会员 func (s *switchService) IsMember(session *httpsession.Session, middleground middleground.Middleground) bool { return s.GetEntniche(session, middleground) == s.Member } //所选服务是否是超级订阅 func (s *switchService) IsVip(session *httpsession.Session, middleground middleground.Middleground) bool { return s.Get(session, middleground) == s.Vip } //所选服务是否是免费 func (s *switchService) IsFree(session *httpsession.Session, middleground middleground.Middleground) bool { return s.Get(session, middleground) == s.Free }