123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208 |
- package controller
- import (
- util "app.yhyue.com/moapp/jybase/common"
- "app.yhyue.com/moapp/jypkg/common/src/qfw/util/jy"
- "encoding/json"
- "errors"
- "fmt"
- "github.com/gogf/gf/v2/frame/g"
- "github.com/gogf/gf/v2/net/ghttp"
- "github.com/gogf/gf/v2/os/gctx"
- "github.com/gogf/gf/v2/util/gconv"
- "jyseo/internal/service"
- "jyseo/utility"
- "strings"
- "time"
- )
- // 0 采购单位 1-中标单位
- func getRequestType(r *ghttp.Request) (int, string, error) {
- if strings.HasPrefix(r.RequestURI, "/dw/") {
- return 0, "dw", nil
- } else if strings.HasPrefix(r.RequestURI, "/qy/") {
- return 1, "qy", nil
- } else {
- return -1, "", fmt.Errorf("未知路由")
- }
- }
- func EnterpriseList(r *ghttp.Request) {
- pageNum := r.Get("pageNum", 1).Int() //页码
- status, flag, err := getRequestType(r)
- if err != nil {
- service.HtmlRender.NotFound(r)
- return
- }
- res, err := service.JySeoEnterprises.GetEnterprisesList(r.Context(), status == 1, pageNum, 50, 5000)
- if err != nil {
- g.Log().Errorf(r.Context(), err.Error())
- service.HtmlRender.RenderError(r, fmt.Errorf("获取列表数据异常"))
- return
- }
- service.HtmlRender.Render(r, "enterprise_list.html",
- g.Map{
- "flag": flag,
- "list": res.List,
- //"tdk": service.JySeoTdk.GetAreaSTypeListTdk(r.Context(), sTypeNode.Code, areaNode.Name),
- "pagination": service.GetLetterPaging(pageNum, gconv.Int(res.Total), fmt.Sprintf("/%s/p%s", flag, "%d")),
- },
- )
- }
- func EnterpriseDetail(r *ghttp.Request) {
- seoId := r.Get("seoId").String() //页码
- status, flag, err := getRequestType(r)
- if err != nil {
- service.HtmlRender.NotFound(r)
- return
- }
- // 若已经登录,重定向至已登录链接
- if logined, sessVal := utility.GetJySessionVal(r); logined {
- LoginIntercept(r, seoId, status, sessVal)
- return
- }
- rData := g.Map{"flag": flag}
- switch status {
- case 0: //采购单位
- baseInfo := service.JySeoEnterprises.GetEntDetailMsg(r.Context(), seoId, false)
- if baseInfo == nil || len(baseInfo) == 0 {
- service.HtmlRender.NotFound(r)
- return
- }
- rData["entDetail"] = baseInfo
- dynamicNews, _ := service.JySeoEnterprises.GetDynamicNews(r.Context(), gconv.String(baseInfo["name"]), false)
- rData["dynamicNews"] = dynamicNews
- rData["otherEnt"] = service.JySeoEnterprises.RelevanceData(r.Context(), gconv.String(baseInfo["name"]), false)
- rData["recommendedEnt"] = service.JySeoEnterprises.RecommendedData(r.Context(), gconv.String(baseInfo["area"]), "", false) //其他企业推荐
- case 1: //中标企业
- baseInfo := service.JySeoEnterprises.GetEntDetailMsg(r.Context(), seoId, true)
- if baseInfo == nil || len(baseInfo) == 0 {
- service.HtmlRender.NotFound(r)
- return
- }
- //芝麻曝光日志存储
- var (
- entId = gconv.String(baseInfo["entId"])
- )
- if labels := gconv.Maps(baseInfo["zhima_labels"]); len(labels) > 0 {
- var userFlag string
- hasLogin, sessMap := utility.GetJySessionVal(r)
- if hasLogin {
- userFlag = gconv.String(sessMap["userId"])
- }
- if userFlag == "" {
- if cv := r.Cookie.Get("JYTrustedId"); !cv.IsEmpty() {
- userFlag = cv.String()
- }
- }
- go service.JySeoEnterprises.SaveZhiMaLog(map[string]interface{}{
- "s_entId": entId,
- "s_name": baseInfo["name"],
- "credit_no": baseInfo["credit_no"],
- "s_userId": userFlag,
- "l_date": time.Now().Unix(),
- })
- }
- rData["entDetail"] = baseInfo //企业基本信息
- dynamicNews, _ := service.JySeoEnterprises.GetDynamicNews(r.Context(), gconv.String(baseInfo["entId"]), true) //企业动态
- rData["dynamicNews"] = dynamicNews //企业中标动态
- rData["otherEnt"] = service.JySeoEnterprises.RelevanceData(r.Context(), gconv.String(baseInfo["entId"]), true) //关联采购单位
- rData["recommendedEnt"] = service.JySeoEnterprises.RecommendedData(r.Context(), gconv.String(baseInfo["area"]), "", true) //其他企业推荐
- }
- service.HtmlRender.Render(r, "enterprise_detail.html", rData)
- }
- func AnalysisAudit(r *ghttp.Request) {
- _, sessVal := utility.GetJySessionVal(r)
- userId := gconv.String(sessVal["userId"])
- phone := gconv.String(sessVal["phone"])
- errMsg := func() error {
- phones := g.Cfg().MustGet(gctx.New(), "phone", "13027620557").String()
- if phone == "" || !strings.Contains(phones, phone) {
- g.Log().Printf(r.Context(), "配置手机号:%s,登录手机号:%s\n", phones, phone)
- return errors.New("手机号用户无权益")
- }
- byMap := make(map[string]interface{})
- //接受参数
- rb := r.GetBody()
- _ = json.Unmarshal(rb, &byMap)
- g.Log().Printf(r.Context(), "参数%v\n", byMap)
- return service.AnalysisHtmlSave(byMap)
- }()
- if errMsg != nil {
- g.Log().Printf(r.Context(), "%s AnalysisAudit Error:%s\n", userId, errMsg.Error())
- }
- r.Response.Write(utility.NewResult(nil, errMsg))
- }
- func LoginIntercept(r *ghttp.Request, seoId string, status int, sess map[string]interface{}) {
- var redirectUrl, queryResult string
- baseInfo := service.JySeoEnterprises.GetEntDetailMsg(r.Context(), seoId, status == 1)
- if baseInfo == nil || len(baseInfo) == 0 {
- service.HtmlRender.NotFound(r)
- return
- }
- switch status {
- case 0:
- queryResult = gconv.String(baseInfo["name"])
- case 1:
- queryResult = gconv.String(baseInfo["entId"])
- }
- if queryResult == "" {
- service.HtmlRender.NotFound(r)
- return
- }
- if status == 1 {
- queryResult = utility.EncodeId(queryResult)
- }
- if utility.IsMobile(r.Request.UserAgent()) {
- if status == 0 {
- redirectUrl = fmt.Sprintf("/jyapp/big/page/free_buyer_loading?entName=%s", queryResult)
- } else {
- redirectUrl = fmt.Sprintf("/jyapp/big/page/ent_portrait?eId=%s", queryResult)
- }
- r.Response.RedirectTo(redirectUrl, 301)
- } else {
- userPower := jy.GetBigVipUserBaseMsgBySessVal(sess, *utility.Middleground)
- entId := util.IntAll(sess["entId"])
- var (
- isEntnicheNew bool
- isEntService = userPower.Data.Ent.PowerSource > 0 && userPower.Data.Entniche.IsEntPower > 0 //商机管理服务
- isEntniche = userPower.EntnicheStatus > 0
- )
- if entId > 0 && userPower.EntInfo[entId] != nil {
- isEntniche = userPower.EntInfo[entId].Status == 1 && userPower.EntInfo[entId].IsPower
- isEntnicheNew = userPower.EntInfo[entId].IsNew && isEntniche
- if isEntService = userPower.EntInfo[entId].IsService && userPower.EntInfo[entId].IsPower; isEntService {
- isEntnicheNew = false
- isEntniche = false
- }
- }
- //登录后 推荐和相关企业数据
- if status == 1 {
- baseInfo["eid"] = queryResult
- baseInfo["otherEnt"] = service.JySeoEnterprises.RelevanceData(r.Context(), gconv.String(baseInfo["entId"]), true) //关联
- baseInfo["recommendedEnt"] = service.JySeoEnterprises.RecommendedData(r.Context(), gconv.String(baseInfo["area"]), "", true) //推荐
- } else {
- baseInfo["otherEnt"] = service.JySeoEnterprises.RelevanceData(r.Context(), gconv.String(baseInfo["name"]), false) //关联
- baseInfo["recommendedEnt"] = service.JySeoEnterprises.RecommendedData(r.Context(), gconv.String(baseInfo["area"]), "", false) //推荐
- }
- baseInfo["isEntnicheNew"] = isEntnicheNew
- //pc端登录前后url一致
- if status == 0 {
- service.HtmlRender.Render(r, "enterprise_detail_login_buyer.html", baseInfo)
- } else {
- service.HtmlRender.Render(r, "enterprise_detail_login_winner.html", baseInfo)
- }
- }
- }
|