scenario.go 900 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package model
  2. import (
  3. "app.yhyue.com/moapp/jybase/encrypt"
  4. "net/url"
  5. "regexp"
  6. "strings"
  7. )
  8. const (
  9. IndexPage = iota + 1 //b=0
  10. DetailPage
  11. WorkDesk //c=1 相当于c=iota
  12. )
  13. var (
  14. regExpDetail = regexp.MustCompile("^/article/(\\w+)/(.*).html")
  15. scenarioName = map[int]string{
  16. IndexPage: "index", //网站首页
  17. DetailPage: "detail", //三级页
  18. WorkDesk: "workDesk", //工作桌面
  19. }
  20. )
  21. // GetScenarioAndInfoId 获取场景和信息id
  22. func GetScenarioAndInfoId(refer string) (scenario int, sid string) {
  23. u, err := url.Parse(refer)
  24. if err == nil && u.Path != "" {
  25. if strings.HasPrefix(u.Path, "/page_workDesktop") {
  26. return WorkDesk, ""
  27. } else if arr := regExpDetail.FindStringSubmatch(u.Path); len(arr) == 3 {
  28. if idArr := encrypt.CommonDecodeArticle(arr[1], arr[2]); len(idArr) > 0 {
  29. sid = idArr[0]
  30. }
  31. return DetailPage, sid
  32. }
  33. }
  34. return IndexPage, ""
  35. }