1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- package logic
- import (
- "app.yhyue.com/moapp/jybase/common"
- "app.yhyue.com/moapp/jybase/redis"
- "context"
- IC "jyBXSubscribe/rpc/init"
- "jyBXSubscribe/rpc/model"
- "time"
- "jyBXSubscribe/rpc/internal/svc"
- "jyBXSubscribe/rpc/type/bxsubscribe"
- "github.com/zeromicro/go-zero/core/logx"
- )
- type GetSubSomeInfoLogic struct {
- ctx context.Context
- svcCtx *svc.ServiceContext
- logx.Logger
- }
- func NewGetSubSomeInfoLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetSubSomeInfoLogic {
- return &GetSubSomeInfoLogic{
- ctx: ctx,
- svcCtx: svcCtx,
- Logger: logx.WithContext(ctx),
- }
- }
- // 获取订阅推送相关信息
- func (l *GetSubSomeInfoLogic) GetSubSomeInfo(in *bxsubscribe.SomeInfoReq) (*bxsubscribe.SomeInfoResp, error) {
- resp := &bxsubscribe.SomeInfoResp{
- Data: &bxsubscribe.SomeInfo{},
- }
- //P278 身份切换,切换企业 userId从代理header 获取的值是 职位id,所以改成用base_user_id 进行查user表信息
- user, _ := model.NewSubscribePush(in.UserType).UserInfo(in.NewUserId)
- //
- resp.Data.HasKey, resp.Data.Industry = model.GetKeySet(in.UserType, user, []string{})
- todayNum := time.Unix(time.Now().Unix(), 1).Format("20060102")
- if user != nil {
- //超级订阅
- if common.IntAll((*user)["i_vip_status"]) == 1 || common.IntAll((*user)["i_vip_status"]) == 2 {
- var threeRemind = int64(3 * 24 * 60 * 60)
- var twoRemind = int64(2 * 24 * 60 * 60)
- var oneRemind = int64(1 * 24 * 60 * 60)
- if (*user)["isread"] != nil {
- resp.Data.IsRead = (*user)["isread"].(bool)
- }
- resp.Data.IsPassCount = redis.GetInt("pushcache_2_a", "oncecount_"+todayNum+"_"+in.UserId) >= 2000
- resp.Data.IsOnTail = common.Int64All((*user)["i_vip_status"])
- _endtime := (*user)["l_vip_endtime"]
- //是否到期
- if common.Int64All(_endtime)-time.Now().Unix() < threeRemind && common.Int64All(_endtime)-time.Now().Unix() >= twoRemind {
- resp.Data.IsExpire = 3 //即将到期
- } else if common.Int64All(_endtime)-time.Now().Unix() < twoRemind && common.Int64All(_endtime)-time.Now().Unix() >= oneRemind {
- resp.Data.IsExpire = 2 //即将到期
- } else if common.Int64All(_endtime)-time.Now().Unix() < oneRemind && common.Int64All(_endtime)-time.Now().Unix() >= 0 {
- resp.Data.IsExpire = 1 //即将到期
- }
- //判断首次用户是否推送的带有”其他“
- t, _ := time.ParseInLocation("2006-01-02", time.Now().Format("2006-01-02"), time.Local)
- today_1 := t.Unix()
- today_2 := t.AddDate(0, 0, 1).Unix()
- //错误
- if IC.BaseServiceMysql.CountBySql("select count(1) as count from pushsubscribe a left join global_common_data.dws_f_bid_baseinfo b on a.infoid=b.infoid where a.isvip =1 and a.userid =? and b.buyerclass_code=? and (a.date between ? and ? )", common.InterfaceToStr(in.NewUserId), 93, today_1, today_2) > 0 {
- resp.Data.OtherFlag = true
- }
- } else {
- if (*user)["i_vip_status"] == nil {
- resp.Data.IsExpire = 0
- } else {
- resp.Data.IsOnTail = common.Int64All((*user)["i_vip_status"])
- }
- resp.Data.IsPassCount = redis.GetInt("pushcache_2_a", "oncecount_"+todayNum+"_"+in.UserId) >= 150
- }
- //是否进入向导查询
- resp.Data.IsInTSguide = func() bool {
- //付费用户无免费订阅,不进入订阅向导页面
- if common.IntAll((*user)["i_member_status"]) > 0 || common.IntAll((*user)["i_vip_status"]) > 0 {
- return false
- }
- o_jy, _ := (*user)["o_jy"].(map[string]interface{})
- iTsGuide := common.IntAll((*user)["i_ts_guide"])
- if iTsGuide == 2 || (iTsGuide == 0 && len(o_jy) == 0) {
- return true
- }
- return false
- }()
- }
- return resp, nil
- }
|