123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379 |
- 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")
- }
- }
- }
|