switchService.go 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. package jy
  2. import (
  3. "app.yhyue.com/moapp/jybase/go-xweb/httpsession"
  4. "app.yhyue.com/moapp/jypkg/middleground"
  5. )
  6. var SwitchService = &switchService{
  7. SessionKey: "vSwitch",
  8. Member: "m",
  9. Vip: "v",
  10. Free: "",
  11. Entniche: "s",
  12. }
  13. //切换超级订阅、大会员服务
  14. type switchService struct {
  15. SessionKey string
  16. Member string
  17. Vip string
  18. Free string
  19. Entniche string
  20. }
  21. /* 获取当前所选的服务类型
  22. * @param session
  23. * @param mongodb
  24. * @return string 服务类型
  25. */
  26. func (s *switchService) Get(session *httpsession.Session, middleground middleground.Middleground) string {
  27. //userId, _ := session.Get("userId").(string)
  28. v, _ := session.Get(s.SessionKey).(string)
  29. data := GetBigVipUserBaseMsg(session, middleground)
  30. //u, ok := m.FindById("user", userId, `{"i_member_status":1,"i_vip_status":1}`)
  31. if data != nil {
  32. if i_member_status := data.Status; v == s.Member && i_member_status > 0 {
  33. return s.Member
  34. } else if i_vip_status := data.VipStatus; v == s.Vip && i_vip_status > 0 {
  35. return s.Vip
  36. } else if i_member_status > 0 {
  37. session.Set(s.SessionKey, s.Member)
  38. return s.Member
  39. } else if i_vip_status > 0 {
  40. session.Set(s.SessionKey, s.Vip)
  41. return s.Vip
  42. }
  43. }
  44. session.Del(s.SessionKey)
  45. return s.Free
  46. }
  47. func (s *switchService) GetEntniche(session *httpsession.Session, middleground middleground.Middleground) string {
  48. sessMap := session.GetMultiple()
  49. //userId, _ := sessMap["userId"].(string)
  50. v, _ := sessMap[s.SessionKey].(string)
  51. //u, ok := m.FindById("user", userId, `{"i_member_status":1,"i_vip_status":1}`)
  52. data := GetBigVipUserBaseMsg(session, middleground)
  53. /* if entId, entUserId := util.IntAll(sessMap["entId"]), util.IntAll(sessMap["entUserId"]); entId > 0 && entUserId > 0 {
  54. //当前企业是否购买商机管理
  55. 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 {
  56. entniche = true
  57. }
  58. }*/
  59. entniche := data.Data.Entniche.Status > 0
  60. if data != nil {
  61. if i_member_status := data.Status; v == s.Member && i_member_status > 0 {
  62. return s.Member
  63. } else if v == s.Entniche && entniche {
  64. return s.Entniche
  65. } else if i_vip_status := data.VipStatus; v == s.Vip && i_vip_status > 0 {
  66. return s.Vip
  67. } else if i_member_status > 0 {
  68. session.Set(s.SessionKey, s.Member)
  69. return s.Member
  70. } else if entniche {
  71. session.Set(s.SessionKey, s.Entniche)
  72. return s.Entniche
  73. } else if i_vip_status > 0 {
  74. session.Set(s.SessionKey, s.Vip)
  75. return s.Vip
  76. }
  77. }
  78. session.Del(s.SessionKey)
  79. return s.Free
  80. }
  81. //所选服务是否是大会员
  82. func (s *switchService) IsMember(session *httpsession.Session, middleground middleground.Middleground) bool {
  83. return s.GetEntniche(session, middleground) == s.Member
  84. }
  85. //所选服务是否是超级订阅
  86. func (s *switchService) IsVip(session *httpsession.Session, middleground middleground.Middleground) bool {
  87. return s.Get(session, middleground) == s.Vip
  88. }
  89. //所选服务是否是免费
  90. func (s *switchService) IsFree(session *httpsession.Session, middleground middleground.Middleground) bool {
  91. return s.Get(session, middleground) == s.Free
  92. }