userinfologic.go 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package logic
  2. import (
  3. "app.yhyue.com/moapp/jybase/common"
  4. "app.yhyue.com/moapp/jybase/redis"
  5. "context"
  6. "fmt"
  7. "github.com/zeromicro/go-zero/core/logx"
  8. IC "jyBXSubscribe/rpc/init"
  9. "jyBXSubscribe/rpc/internal/svc"
  10. "jyBXSubscribe/rpc/type/bxsubscribe"
  11. "jyBXSubscribe/rpc/util"
  12. )
  13. type UserInfoLogic struct {
  14. ctx context.Context
  15. svcCtx *svc.ServiceContext
  16. logx.Logger
  17. }
  18. func NewUserInfoLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UserInfoLogic {
  19. return &UserInfoLogic{
  20. ctx: ctx,
  21. svcCtx: svcCtx,
  22. Logger: logx.WithContext(ctx),
  23. }
  24. }
  25. // 用户推送信息查看
  26. func (l *UserInfoLogic) UserInfo(in *bxsubscribe.GetUserInfoReq) (*bxsubscribe.GetUserInfoResq, error) {
  27. // todo: add your logic here and delete this line
  28. userInfo := &map[string]interface{}{}
  29. s_email := ""
  30. s_m_openid := ""
  31. userInfo, _ = IC.Mgo.FindById(util.USER, in.UserId, `{"o_pushset":1,"s_m_openid":1}`)
  32. if userInfo != nil && len(*userInfo) > 0 {
  33. pushSet := common.ObjToMap((*userInfo)["o_pushset"])
  34. s_email = common.InterfaceToStr((*pushSet)["s_email"])
  35. s_m_openid = common.InterfaceToStr((*userInfo)["s_m_openid"])
  36. }
  37. if in.PositionType == 1 {
  38. userInfo, _ = IC.Mgo.FindOne(util.ENTUSER, map[string]interface{}{"i_entid": in.EntId, "i_userid": in.EntUserId})
  39. if userInfo != nil && len(*userInfo) > 0 {
  40. pushSet := common.ObjToMap((*userInfo)["o_pushset"])
  41. s_email = common.InterfaceToStr((*pushSet)["s_email"])
  42. }
  43. }
  44. ShowWx := false
  45. if s_m_openid != "" {
  46. //微信是否关注处理
  47. subscribeList := &[]map[string]interface{}{}
  48. subscribeList, _ = IC.Mgo.Find(util.SUBSCRIBE, map[string]interface{}{"s_m_openid": s_m_openid}, `{"l_date":-1}`, `{"s_event":1"}`, true, -1, -1)
  49. if subscribeList != nil && len(*subscribeList) > 0 {
  50. s_event := common.InterfaceToStr((*subscribeList)[0]["s_event"])
  51. if s_event == "subscribe" {
  52. ShowWx = true
  53. }
  54. }
  55. }
  56. //用户二维码生成处理
  57. data := map[string]string{
  58. "userId": in.UserId,
  59. "source": util.ServiceMap[in.ServiceType],
  60. }
  61. bindKey := "Bind_" + in.ServiceType + common.InterfaceToStr(in.BaseUserId)
  62. redis.Put("other", bindKey, data, -1)
  63. return &bxsubscribe.GetUserInfoResq{
  64. Data: &bxsubscribe.GetUserInfo{
  65. Mail: s_email,
  66. ShowWx: ShowWx,
  67. ImgUrl: fmt.Sprintf("/publicapply/getERCode/%s", bindKey), //二维码地址
  68. AppUrl: fmt.Sprintf(IC.C.AppUrl, "push_set", "pc-pushsettings"),
  69. },
  70. }, nil
  71. }