package front import ( "fmt" "jfw/config" "jfw/jyutil" "jfw/public" "jfw/wx" "net/url" "qfw/util" "qfw/util/redis" "time" "github.com/go-xweb/xweb" ) type Subscribepay struct { *xweb.Action introduce xweb.Mapper `xweb:"/front/vipsubscribe/introducePage"` //订阅收费介绍页 trialInfo xweb.Mapper `xweb:"/front/vipsubscribe/trialInfo"` //vip订阅服务-用户信息录入页面 toPurchasePage xweb.Mapper `xweb:"/front/vipsubscribe/vipsubscribe_(.*)"` //订阅收费购买页面(试用用户) toChooseArea xweb.Mapper `xweb:"/front/vipsubscribe/toChooseArea"` //订阅收费地区筛选 toChooseIndustry xweb.Mapper `xweb:"/front/vipsubscribe/toChooseIndustry"` //订阅收费行业筛选 toPaySuccessPage xweb.Mapper `xweb:"/front/vipsubscribe/toPaySuccessPage"` //订阅支付完成页面 toOrderDetailPage xweb.Mapper `xweb:"/front/vipsubscribe/toOrderDetailPage"` //订阅收费支付订单详情页面 toSetKeyWordPage xweb.Mapper `xweb:"/front/vipsubscribe/toSetKeyWordPage"` //订阅收费设置关键词 //toSetPageOld xweb.Mapper `xweb:"/front/vipsubscribe/toSetPageOld"` //订阅收费设置 toSetInfoTypePage xweb.Mapper `xweb:"/front/vipsubscribe/toSetInfoTypePage"` //订阅收费设置信息类型 toSetOtherKwsPage xweb.Mapper `xweb:"/front/vipsubscribe/toSet(.*)Page"` //订阅收费附加词和排除词设置 toVIPViewPage xweb.Mapper `xweb:"/front/vipsubscribe/toVIPViewPage"` //订阅收费预览 //修改升级 toSetPage xweb.Mapper `xweb:"/front/vipsubscribe/toSubVipSetPage"` //订阅收费设置 toChangeArea xweb.Mapper `xweb:"/front/vipsubscribe/toChangeArea"` //修改区域 toChangeIndustry xweb.Mapper `xweb:"/front/vipsubscribe/toChangeIndustry"` //修改行业 toChangeTime xweb.Mapper `xweb:"/front/vipsubscribe/toChangeTime"` //修改时间 toSetPushSetPage xweb.Mapper `xweb:"/front/vipsubscribe/toSetPushSetPage"` //订阅收费推送设置 //续费 renewPage xweb.Mapper `xweb:"/front/vipsubscribe/renewPage/(.*)"` //订阅到期(will:即将到期,exprie:已到期) //renewPayPage xweb.Mapper `xweb:"/weixin/pay/renewPayPage"` //订阅到期续费 //发票 openInvoice xweb.Mapper `xweb:"/front/vipsubscribe/openInvoice/(\\w+)"` //开发票 //预热活动链接跳转 preheatPoster xweb.Mapper `xweb:"/front/preheat/poster"` //预热活动链接跳转 } func init() { xweb.AddAction(&Subscribepay{}) } var ( liveActiveStartTime = config.ActiveConfig.Live_Active_Start liveActiveEndTime = config.ActiveConfig.Live_Active_End activeDiscount = config.ActiveConfig.ActiveDiscount ) //推送设置 func (s *Subscribepay) ToVIPViewPage() { myopenid := util.ObjToString(s.GetSession("s_m_openid")) mynickname, _ := s.Session().Get("s_nickname").(string) myavatar, _ := s.Session().Get("s_avatar").(string) s.T["nickname"] = mynickname s.T["avatar"] = myavatar s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url()) s.T["openid"] = se.EncodeString(myopenid) s.Render("/weixin/vipsubscribe/vip_viewPage.html") } //附加词|排除词 func (s *Subscribepay) ToSetOtherKwsPage(page string) { myopenid := util.ObjToString(s.GetSession("s_m_openid")) mynickname, _ := s.Session().Get("s_nickname").(string) myavatar, _ := s.Session().Get("s_avatar").(string) s.T["nickname"] = mynickname s.T["avatar"] = myavatar s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url()) s.T["openid"] = se.EncodeString(myopenid) s.Render("/weixin/vipsubscribe/" + page + "Word.html") } //推送设置 func (s *Subscribepay) ToSetPushSetPage() { myopenid := util.ObjToString(s.GetSession("s_m_openid")) mynickname, _ := s.Session().Get("s_nickname").(string) myavatar, _ := s.Session().Get("s_avatar").(string) s.T["nickname"] = mynickname s.T["avatar"] = myavatar s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url()) s.T["openid"] = se.EncodeString(myopenid) s.Render("/weixin/vipsubscribe/vip_seniorset.html") } //信息类型 func (s *Subscribepay) ToSetInfoTypePage() { myopenid := util.ObjToString(s.GetSession("s_m_openid")) mynickname, _ := s.Session().Get("s_nickname").(string) myavatar, _ := s.Session().Get("s_avatar").(string) s.T["nickname"] = mynickname s.T["avatar"] = myavatar s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url()) s.T["openid"] = se.EncodeString(myopenid) s.Render("/weixin/vipsubscribe/messageType.html") } //订阅设置 func (s *Subscribepay) ToSetPage() { nowTime := time.Now().Unix() if nowTime >= liveActiveStartTime && nowTime < liveActiveEndTime { s.T["isLiveActive"] = true } s.T["liveActiveStartTime"] = liveActiveStartTime s.T["liveActiveEndTime"] = liveActiveEndTime s.T["activeDiscount"] = activeDiscount myopenid := util.ObjToString(s.GetSession("s_m_openid")) mynickname, _ := s.Session().Get("s_nickname").(string) myavatar, _ := s.Session().Get("s_avatar").(string) s.T["nickname"] = mynickname s.T["avatar"] = myavatar s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url()) s.T["openid"] = se.EncodeString(myopenid) s.Render("/weixin/vipsubscribe/vip_index_new.html") } func (s *Subscribepay) ToSetPageOld() { myopenid := util.ObjToString(s.GetSession("s_m_openid")) mynickname, _ := s.Session().Get("s_nickname").(string) myavatar, _ := s.Session().Get("s_avatar").(string) s.T["nickname"] = mynickname s.T["avatar"] = myavatar s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url()) s.T["openid"] = se.EncodeString(myopenid) s.Render("/weixin/vipsubscribe/vip_index.html") } //修改升级 选择地区 func (s *Subscribepay) ToChangeArea() { s.Render("/weixin/vipsubscribe/change_area.html") } //修改升级 选择行业 func (s *Subscribepay) ToChangeIndustry() { s.Render("/weixin/vipsubscribe/change_industry.html") } //修改升级 选择时间 func (s *Subscribepay) ToChangeTime() { s.Render("/weixin/vipsubscribe/change_time.html") } //vip订阅介绍页 func (s *Subscribepay) Introduce() error { userId := util.ObjToString(s.GetSession("userId")) if userId == "" { if s.GetString("state") == "wx" { //微信跳回来的 code := s.GetString("code") if code != "" { openid := jyutil.Getopenid(code) if openid != "" { isSubscribe := CheckUserIsSubscribe(openid) if isSubscribe { FindUserAndCreateSess(openid, s.Session()) } } } } else { if public.CheckWxBrowser(s.Request) { //所有参数都不再使用,跳到微信验证用户 return s.Redirect(fmt.Sprintf(config.Wxoauth, url.QueryEscape(s.Site()+s.Url()), "wx"), 302) } return s.Redirect("/swordfish/about") } } m, ok := public.MQFW.FindById("user", userId, `{"o_vipjy":1,"i_vip_status":1}`) if !ok { return s.Redirect("/swordfish/about") } nowTime := time.Now().Unix() if nowTime >= liveActiveStartTime && nowTime < liveActiveEndTime { s.T["isLiveActive"] = true } obj := util.ObjToMap((*m)["o_vipjy"]) if util.IntAll((*m)["i_vip_status"]) > 0 { return s.Redirect("/front/vipsubscribe/toSubVipSetPage") } s.T["notShowTrial"] = util.IntAll((*obj)["i_trial"]) == -1 || (*m)["i_vip_status"] != nil s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url()) //直播活动和预热活动期间 if config.ActiveConfig.Live_Active_End > time.Now().Unix() && time.Now().Unix() > config.ActiveConfig.Live_Preheat_Start { s.T["LiveState"] = true } return s.Render("/weixin/vipsubscribe/vip_introduce.html") } //试用完善信息 func (s *Subscribepay) TrialInfo() error { userId := util.ObjToString(s.GetSession("userId")) if userId == "" { return s.Redirect("/swordfish/about") } m, ok := public.MQFW.FindById("user", userId, `{"o_vipjy":1}`) if !ok || len(*m) == 0 { return s.Redirect("/swordfish/about") } obj := util.ObjToMap((*m)["o_vipjy"]) s.T["trialSign"] = util.IntAll((*obj)["i_trial"]) == 1 s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url()) return s.Render("/weixin/vipsubscribe/trial_info.html", &s.T) } //订阅收费购买页面 func (s *Subscribepay) ToPurchasePage(flag string) { //直播活动 nowTime := time.Now().Unix() if nowTime >= liveActiveStartTime && nowTime < liveActiveEndTime { s.T["isLiveActive"] = true //虚拟人数 buyCount := redis.Get("other", "liveactiveRTB") s.T["buyCount"] = buyCount } s.T["liveActiveStartTime"] = liveActiveStartTime s.T["liveActiveEndTime"] = liveActiveEndTime s.T["activeDiscount"] = activeDiscount if flag == "trial" { //试用 s.T["isTrial"] = true s.T["orderType"] = -1 } else { //付费 s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url()) //微信支付准备参数 if flag == "renew" { s.Render("/weixin/vipsubscribe/vip_renew.html") return } if flag == "renewOld" { s.T["orderType"] = 5 } else { s.T["orderType"] = 1 } if s.GetString("orderCode") != "" && s.GetString("orderCode") != "undefined" { s.T["again"] = 1 //再次购买 } } s.Render("/weixin/vipsubscribe/vip_purchase.html") } //订阅收费地区筛选 func (s *Subscribepay) ToChooseArea() { s.Render("/weixin/vipsubscribe/choose_area.html", &s.T) } //订阅收费地区筛选 func (s *Subscribepay) ToChooseIndustry() { s.Render("/weixin/vipsubscribe/choose_industry.html", &s.T) } //订阅收费支付完成页面 func (s *Subscribepay) ToPaySuccessPage() { s.Render("/weixin/vipsubscribe/vip_pay_success.html") } //订阅收费支付订单详情页面 func (s *Subscribepay) ToOrderDetailPage() { s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url()) //微信支付准备参数 s.T["liveActiveStartTime"] = liveActiveStartTime s.T["liveActiveEndTime"] = liveActiveEndTime s.T["activeDiscount"] = activeDiscount s.Render("/weixin/vipsubscribe/vip_order_detail.html") } //订阅收费设置关键词 func (s *Subscribepay) ToSetKeyWordPage() { myopenid := util.ObjToString(s.GetSession("s_m_openid")) mynickname, _ := s.Session().Get("s_nickname").(string) myavatar, _ := s.Session().Get("s_avatar").(string) s.T["nickname"] = mynickname s.T["avatar"] = myavatar s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url()) s.T["openid"] = se.EncodeString(myopenid) s.Render("/weixin/vipsubscribe/keyWord.html") } //修改订阅页面 func (s *Subscribepay) ToEditSubPage() { s.Render("/weixin/vipsubscribe/edit_subscribe.html") } //合并后修改地区 func (s *Subscribepay) ToEditSubAreaPage() { s.Render("/weixin/vipsubscribe/edit_city_new.html") } //修改订阅行业 func (s *Subscribepay) ToEditSubInduPage() { s.Render("/weixin/vipsubscribe/edit_subscribe_industry.html") } //提交订阅修改 func (s *Subscribepay) SubmitEditSubFinish() { s.Render("/weixin/vipsubscribe/edit_subscribe_success.html") } //升级订阅服务 func (s *Subscribepay) ToUpgradePage() { s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url()) //微信支付准备参数 s.Render("/weixin/vipsubscribe/vip_upgrade.html") } //升级订阅新增区域 func (s *Subscribepay) AddArea() { myopenid := util.ObjToString(s.GetSession("s_m_openid")) mynickname, _ := s.Session().Get("s_nickname").(string) myavatar, _ := s.Session().Get("s_avatar").(string) s.T["nickname"] = mynickname s.T["avatar"] = myavatar s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url()) s.T["openid"] = se.EncodeString(myopenid) s.Render("/weixin/vipsubscribe/choose_area_upgrade.html") } //升级订阅新增行业 func (s *Subscribepay) AddIndustry() { myopenid := util.ObjToString(s.GetSession("s_m_openid")) mynickname, _ := s.Session().Get("s_nickname").(string) myavatar, _ := s.Session().Get("s_avatar").(string) s.T["nickname"] = mynickname s.T["avatar"] = myavatar s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url()) s.T["openid"] = se.EncodeString(myopenid) s.Render("/weixin/vipsubscribe/choose_industry_upgrade.html") } //服务续费(will:即将到期,exprie:已到期) func (s *Subscribepay) RenewPage(sign string) { myopenid := util.ObjToString(s.GetSession("s_m_openid")) mynickname, _ := s.Session().Get("s_nickname").(string) myavatar, _ := s.Session().Get("s_avatar").(string) startTime := util.Int64All(s.GetString("startTime")) endTime := util.Int64All(s.GetString("endTime")) orderId := s.GetString("orderId") startTimes := time.Unix(startTime, 0).Format("2006-01-02") endTimes := time.Unix(endTime, 0).Format("2006-01-02") s.T["orderId"] = orderId s.T["startTime"] = startTimes s.T["endTime"] = endTimes s.T["nickname"] = mynickname s.T["avatar"] = myavatar s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url()) s.T["openid"] = se.EncodeString(myopenid) s.T["exprie"] = sign //是否已到期 s.Render("/weixin/vipsubscribe/renew_notice.html", &s.T) } //服务续费(will:即将到期,exprie:已到期) func (s *Subscribepay) RenewPayPage() { s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url()) //微信支付准备参数 s.Render("/weixin/vipsubscribe/renew_pay.html") } //开发票 func (s *Subscribepay) OpenInvoice(order_code string) { s.T["order_code"] = order_code s.Render("/weixin/dataExport/dataExport_applyInvoice.html", &s.T) } //预热活动链接跳转 func (s *Subscribepay) PreheatPoster() { myopenid := util.ObjToString(s.GetSession("s_m_openid")) u, ok := public.MQFW.FindOne("user", `{"s_m_openid":"`+myopenid+`"}`) if len(*u) > 0 && ok { if util.Int64All((*u)["i_vip_status"]) == 1 || util.Int64All((*u)["i_vip_status"]) == 2 { s.Redirect("/front/vipsubscribe/toSubVipSetPage") } else { s.Redirect("/front/vipsubscribe/introducePage") } } }