123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- package action
- import (
- qu "app.yhyue.com/moapp/jybase/common"
- "app.yhyue.com/moapp/jybase/go-xweb/xweb"
- "app.yhyue.com/moapp/jybase/redis"
- "app.yhyue.com/moapp/jypkg/public"
- "commercialService/service/config"
- "encoding/json"
- "fmt"
- "strings"
- "time"
- )
- type Action struct {
- *xweb.Action
- info xweb.Mapper `xweb:"/customer/info"`
- }
- func init() {
- xweb.AddAction(&Action{})
- }
- func (a *Action) Info() {
- module := a.GetString("module")
- rMap := map[string]interface{}{}
- switch module {
- case "tripartiteAuth":
- cacheKey := fmt.Sprintf("ad_%s", module)
- obj := redis.Get("other", cacheKey)
- var adInfo []AdInfo
- if obj != nil {
- adInfo = Handle(obj.([]interface{}), a.Request.Host)
- } else {
- res, ok := public.MQFW.FindOneByField("ad", `{"s_code":"`+module+`"}`, `{"a_son":1,"l_modifydate":1}`)
- if ok && res != nil && (*res)["a_son"] != nil {
- son := (*res)["a_son"].([]interface{})
- if len(son) > 0 {
- redis.Put("other", cacheKey, son, int(GetLastTime()))
- }
- adInfo = Handle(son, a.Request.Host)
- }
- }
- if len(adInfo) > 0 {
- rMap = map[string]interface{}{
- "phone": adInfo[0].S_remark,
- "wxCodeImg": adInfo[0].S_pic,
- }
- }
- default:
- if data := config.Sysconfig.Info[module]; data != nil {
- if m := qu.ObjToMap(data); m != nil {
- rMap = *m
- }
- }
- }
- a.ServeJson(map[string]interface{}{
- "data": rMap,
- "error_msg": "",
- "erros_code": 0,
- })
- }
- // 获取当天剩余时间
- var (
- timeOut int64 = 24 * 60 * 60
- )
- func GetLastTime() int64 {
- t := time.Now()
- midnight := time.Date(t.Year(), t.Month(), t.Day()+1, 0, 0, 0, 0, t.Location())
- if midnight.After(t) {
- return midnight.Unix() - t.Unix()
- }
- return timeOut
- }
- // AdInfo 广告信息
- type AdInfo struct {
- S_link string `json:"s_link"` //广告位跳转链接
- S_pic string `json:"s_pic"` //广告位弹窗
- S_remark string `json:"s_remark"` //备注
- S_picalt string `json:"s_picalt"` //图片ALT
- S_id string `json:"s_id"` //广告标识id
- O_extend struct {
- Linktype string `json:"linktype"` //是否外部链接
- Height string `json:"height"` //高度
- Width string `json:"width"` //宽度
- StartTime string `json:"startTime"` //开始时间
- EndTime string `json:"endTime"` //结束时间
- IosHref string `json:"iosHref"` //根据客户端不同 是否访问不同地址
- Theme string `json:"theme"` // 主题样式
- Title string `json:"title"` //标题
- Power string `json:"power"` // 权限判断
- Tab string `json:"tab"` // tab切换
- } `json:"o_extend"` //拓展属性
- S_script string `json:"s_script"` //脚本
- }
- // Handle 广告位信息处理
- func Handle(data []interface{}, host string) []AdInfo {
- var res = []AdInfo{}
- if len(data) > 0 {
- AdInfo_Arr := []AdInfo{}
- bytes, err := json.Marshal(data)
- if err != nil {
- return res
- }
- json.Unmarshal(bytes, &AdInfo_Arr)
- if len(AdInfo_Arr) > 0 {
- now := time.Now()
- for _, v := range AdInfo_Arr {
- //log.Println(v.S_id, "---", host, "----", strings.Contains(host, v.S_id))
- if v.S_id != "" && host != "" {
- //根据不同环境区分广告位信息 v.S_id 填充内容, 例:app-i2;app-a1
- if !strings.Contains(host, v.S_id) {
- continue
- }
- }
- if v.O_extend.StartTime != "" && len(strings.Split(v.O_extend.StartTime, "-")) == 6 {
- if thisTime, err := time.ParseInLocation("2006-01-02-15-04-05", v.O_extend.StartTime, time.Local); err == nil {
- //广告还未开始
- if thisTime.Unix() > now.Unix() {
- continue
- }
- }
- }
- if v.O_extend.EndTime != "" && len(strings.Split(v.O_extend.EndTime, "-")) == 6 {
- if thisTime, err := time.ParseInLocation("2006-01-02-15-04-05", v.O_extend.EndTime, time.Local); err == nil {
- //广告已经结束
- if thisTime.Unix() < now.Unix() {
- continue
- }
- }
- }
- res = append(res, v)
- }
- }
- }
- return res
- }
|