Преглед изворни кода

易董活动的操作按钮展示

xingzai пре 2 година
родитељ
комит
309740f171
11 измењених фајлова са 154 додато и 47 уклоњено
  1. 4 1
      controllers/chart.go
  2. 1 1
      controllers/report.go
  3. 34 30
      controllers/yidong.go
  4. 1 0
      models/activity.go
  5. 13 0
      models/chart.go
  6. 1 1
      models/report.go
  7. 4 0
      services/activity.go
  8. 3 0
      services/task.go
  9. 74 12
      services/yidong.go
  10. 17 0
      utils/common.go
  11. 2 2
      utils/config.go

+ 4 - 1
controllers/chart.go

@@ -2,6 +2,7 @@ package controllers
 
 import (
 	"encoding/json"
+	"fmt"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"hongze/hongze_cygx/models"
 	"hongze/hongze_cygx/services"
@@ -88,6 +89,7 @@ func (this *ChartController) Collection() {
 	var listCollection []*models.HomeChartListResp
 	var total int
 	//var err error
+	fmt.Println(user)
 	chartUserTokenByMobile, _ := services.GetUserTokenByMobile(mobile)
 	if chartUserTokenByMobile != "" {
 		list, err, _ := services.GetChartCollectionByApi(mobile, 9999, 0)
@@ -96,6 +98,7 @@ func (this *ChartController) Collection() {
 			br.ErrMsg = "获取图表分类失败 Err:" + err.Error()
 			return
 		}
+		fmt.Println(len(list))
 		var chartIds string
 		var condition string
 		var pars []interface{}
@@ -109,7 +112,7 @@ func (this *ChartController) Collection() {
 			chartIds = "0"
 		}
 		condition = ` AND a.chart_id IN (` + chartIds + `) `
-		total, err = models.GetChartCount(condition, pars)
+		total, err = models.GetChartCollentCount(condition, pars)
 		if err != nil {
 			br.Msg = "获取信息失败"
 			br.Msg = "获取帖子总数失败,Err:" + err.Error()

+ 1 - 1
controllers/report.go

@@ -1139,9 +1139,9 @@ func (this *ReportController) IsShow() {
 	}
 	total, _ := models.GetUserIsAdminCount(mobile)
 	if total > 0 {
-		resp.IsShow = true
 		resp.IsShowList = true
 	}
+	resp.IsShow = true
 	br.Ret = 200
 	br.Success = true
 	br.Data = resp

+ 34 - 30
controllers/yidong.go

@@ -25,22 +25,6 @@ func (this *BaseYidongController) GetToken() {
 		this.Data["json"] = br
 		this.ServeJSON()
 	}()
-	url := utils.YiDongZhengTongYunUrl + "oauth/token?grant_type=client_credentials&response_type=token&client_id=" + utils.YiDongZhengTongYunAppid + "&client_secret=" + utils.YiDongZhengTongYunSecret
-	method := "GET"
-
-	client := &http.Client{}
-	req, err := http.NewRequest(method, url, nil)
-
-	if err != nil {
-		fmt.Println(err)
-		return
-	}
-	res, err := client.Do(req)
-	if err != nil {
-		fmt.Println(err)
-		return
-	}
-	defer res.Body.Close()
 
 	type Ydtoklen struct {
 		Success     string `json:"success"`
@@ -48,17 +32,36 @@ func (this *BaseYidongController) GetToken() {
 		AccessToken string `json:"access_token"`
 	}
 	var ydtoklen Ydtoklen
-	body, err := ioutil.ReadAll(res.Body)
-	if err != nil {
-		fmt.Println(err)
-		return
-	}
-	//fmt.Println(body)
-	err = json.Unmarshal(body, &ydtoklen)
-	if err != nil {
-		fmt.Println("Getres.PublicGetDate Err:", err.Error())
-	}
-	services.GetYiDongActivity()
+
+	//url := utils.YiDongZhengTongYunUrl + "oauth/token?grant_type=client_credentials&response_type=token&client_id=" + utils.YiDongZhengTongYunAppid + "&client_secret=" + utils.YiDongZhengTongYunSecret
+	//method := "GET"
+	//
+	//client := &http.Client{}
+	//req, err := http.NewRequest(method, url, nil)
+	//
+	//if err != nil {
+	//	fmt.Println(err)
+	//	return
+	//}
+	//res, err := client.Do(req)
+	//if err != nil {
+	//	fmt.Println(err)
+	//	return
+	//}
+	//defer res.Body.Close()
+	//
+	//
+	//body, err := ioutil.ReadAll(res.Body)
+	//if err != nil {
+	//	fmt.Println(err)
+	//	return
+	//}
+	////fmt.Println(body)
+	//err = json.Unmarshal(body, &ydtoklen)
+	//if err != nil {
+	//	fmt.Println("Getres.PublicGetDate Err:", err.Error())
+	//}
+	//services.GetYiDongActivity()
 
 	//cacheKey := utils.YD_TOKEN
 	//utils.Rc.Put(cacheKey, ydtoklen.AccessToken, time.Second*7000)
@@ -82,8 +85,7 @@ func (this *BaseYidongController) Ativitylist() {
 		this.Data["json"] = br
 		this.ServeJSON()
 	}()
-	cacheKey := utils.YD_TOKEN
-	Ydtoklen, _ := utils.Rc.RedisString(cacheKey)
+	Ydtoklen, _ := services.GetYiDongToken()
 	url := "https://services-dev.valueonline.cn/interact/activityManageApi/getRoadshowList?access_token=" + Ydtoklen
 	method := "POST"
 	//payload := strings.NewReader(`{"meetingStatus":"0,1","conveneStartStr":"2022-05-06","conveneEndStr":"2022-05-14",
@@ -194,11 +196,13 @@ func (this *BaseYidongController) UserList() {
 		this.Data["json"] = br
 		this.ServeJSON()
 	}()
+
+	activityId := this.GetString("ActivityId")
 	cacheKey := utils.YD_TOKEN
 	Ydtoklen, _ := utils.Rc.RedisString(cacheKey)
 	url := "https://services-dev.valueonline.cn/interact/activityManageApi/getAttendPersonList?access_token=" + Ydtoklen
 	method := "POST"
-	payload := strings.NewReader(`{"activityId":"9395147645597532110"}`)
+	payload := strings.NewReader(`{"activityId":"` + activityId + `"}`)
 	client := &http.Client{}
 	req, err := http.NewRequest(method, url, payload)
 	if err != nil {

+ 1 - 0
models/activity.go

@@ -60,6 +60,7 @@ type CygxActivity struct {
 	IsCanAppointmentMinutes int       `description:"是否可预约纪要 1是 ,0 否 默认0 "`
 	YidongActivityId        string    `description:"易董活动ID"`
 	YidongActivityUrl       string    `description:"易董活动跳转地址"`
+	YidongActivityEndTime   string    `description:"易董活动截止时间"`
 }
 
 type Activity struct {

+ 13 - 0
models/chart.go

@@ -264,6 +264,19 @@ func GetChartCount(condition string, pars []interface{}) (count int, err error)
 	return
 }
 
+//获取图表数量
+func GetChartCollentCount(condition string, pars []interface{}) (count int, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT COUNT(1) AS count
+                FROM cygx_chart_all AS a
+                WHERE a.publish_status=1 `
+	if condition != "" {
+		sql += condition
+	}
+	err = o.Raw(sql, pars).QueryRow(&count)
+	return
+}
+
 func GetChartDetailById(chartId, uid int) (item *CygxChartDetail, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT * ,( SELECT COUNT( 1 ) FROM cygx_chart_collect AS c WHERE c.chart_id = a.chart_id AND c.user_id = ? ) AS collection_num

+ 1 - 1
models/report.go

@@ -203,7 +203,7 @@ func GetWhichDepartmentCount(condition string) (count int, err error) {
 }
 
 type IsShow struct {
-	IsShow          bool   `description:"是否展示"`
+	IsShow          bool   `description:"绝密内参按钮是否展示"`
 	IsShowResearch  bool   `description:"研选是否展示限免"`
 	IsShowChart     bool   `description:"图表是否展示限免"`
 	IsShowList      bool   `description:"榜单是否展示"`

+ 4 - 0
services/activity.go

@@ -1312,6 +1312,10 @@ func ActivityButtonShow(item *models.ActivityDetail) (articleDetail *models.Acti
 	//if articleDetail.IsHideAppointment == 0 {
 	//	articleDetail.IsShowAppointment = IsShowAppointmentByactivityInfo(articleDetail, articleDetail.ChartPermissionName)
 	//}
+	if articleDetail.YidongActivityId != "" {
+		articleDetail.IsShowSignup = true
+		return
+	}
 
 	//新的是否展示规则
 	if articleDetail.IsCanAppointmentMinutes == 1 {

+ 3 - 0
services/task.go

@@ -84,6 +84,9 @@ func Task() {
 		updateCygxActivitySpecialSignupNum := task.NewTask("updateCygxActivitySpecialSignupNum", "0 25 0 * * *", UpdateCygxActivitySpecialSignupNum) //修改专项调研,用户与公司的参与数量
 		task.AddTask("updateCygxActivitySpecialSignupNum", updateCygxActivitySpecialSignupNum)
 
+		getYiDongActivity := task.NewTask("getYiDongActivity", "0 */10 * * * *", GetYiDongActivity) //同步易董的活动信息
+		task.AddTask("getYiDongActivity", getYiDongActivity)
+
 	}
 	if utils.RunMode != "release" {
 		getArticleListByApi := task.NewTask("getArticleListByApi", "0 */60 * * * *", GetArticleListByApi) //通过三方接口获取策略平台上的文章

+ 74 - 12
services/yidong.go

@@ -1,6 +1,7 @@
 package services
 
 import (
+	"context"
 	"encoding/json"
 	"fmt"
 	"hongze/hongze_cygx/models"
@@ -60,7 +61,6 @@ func GetActivityTypeIdWithYiDong(industrySwName string) (chartPermissionId int)
 		//研选
 	}
 	chartPermissionId = mapIndustrySwName[industrySwName]
-	fmt.Println(mapIndustrySwName)
 	return
 }
 
@@ -106,7 +106,6 @@ func GetActivityTypeNameWithYiDong(industrySwName string) (chartPermissionName s
 		//研选
 	}
 	chartPermissionName = mapIndustrySwName[industrySwName]
-	fmt.Println(mapIndustrySwName)
 	return
 }
 
@@ -140,7 +139,7 @@ func GetYiDongToken() (token string, err error) {
 		defer res.Body.Close()
 
 		type Ydtoklen struct {
-			Success     string `json:"success"`
+			Success     bool   `json:"success"`
 			ExpiresIn   int    `json:"expires_in"`
 			AccessToken string `json:"access_token"`
 		}
@@ -162,7 +161,7 @@ func GetYiDongToken() (token string, err error) {
 }
 
 //获取易董活动列表
-func GetYiDongActivity() (err error) {
+func GetYiDongActivity(cont context.Context) (err error) {
 	defer func() {
 		if err != nil {
 			fmt.Println(err)
@@ -171,11 +170,10 @@ func GetYiDongActivity() (err error) {
 	}()
 	var token string
 	token, _ = GetYiDongToken()
-	fmt.Println(token)
 	url := utils.YiDongZhengTongYunUrl + "interact/activityManageApi/getRoadshowList?access_token=" + token
 	method := "POST"
 	payload := strings.NewReader(`{
-    "meetingStatus": "0,1,2"
+    "meetingStatus": "0"
 }`)
 	client := &http.Client{}
 	req, err := http.NewRequest(method, url, payload)
@@ -213,9 +211,12 @@ func GetYiDongActivity() (err error) {
 		utils.FileLog.Info(string(err.Error()))
 	}
 	mapOldYiDong := make(map[string]string)
+	mapOldYiDongBody := make(map[string]string)
 	for _, v := range OldActYIdongList {
 		mapOldYiDong[v.YidongActivityId] = v.YidongActivityId
+		mapOldYiDongBody[v.YidongActivityId] = fmt.Sprint(v.ActivityName, v.Label, v.ChartPermissionId, v.ActivityTime, v.YidongActivityEndTime, v.DistinguishedGuest)
 	}
+	fmt.Println(mapOldYiDongBody)
 	var itemsAdd []*models.CygxActivity
 	if len(ApifoxModal.Result) > 0 {
 		actList := ApifoxModal.Result
@@ -231,10 +232,10 @@ func GetYiDongActivity() (err error) {
 			item.ChartPermissionName = GetActivityTypeNameWithYiDong(v.IndustrySwName)
 			item.ChartPermissionNames = GetActivityTypeNameWithYiDong(v.IndustrySwName)
 			item.ActivityTime = v.Start
-			item.ActivityTimeText = v.Start
+			item.YidongActivityEndTime = v.End
+			item.ActivityTimeText = GetActivityTextTime(v.Start)
 			item.YidongActivityUrl = v.URL
-			item.DistinguishedGuest = "嘉宾"
-
+			fmt.Println(item.ActivityTimeText)
 			detailYidng, err := GetYiDongActivityDetail(v.ID)
 			if err != nil {
 				return err
@@ -252,9 +253,32 @@ func GetYiDongActivity() (err error) {
 					fmt.Println(err)
 					utils.FileLog.Info(string(err.Error()))
 				}
+			} else {
+				//如果内容主体有做变更,就修改内容
+				if mapOldYiDongBody[v.ID] != fmt.Sprint(item.ActivityName, item.Label, item.ChartPermissionId, item.ActivityTime, item.YidongActivityEndTime, item.DistinguishedGuest) {
+					//fmt.Println("修改")
+					//fmt.Println(mapOldYiDongBody[v.ID])
+					//fmt.Println(fmt.Sprint(item.ActivityName, item.Label, item.ChartPermissionId, item.ActivityTime, item.DistinguishedGuest))
+					updateParams := make(map[string]interface{})
+					updateParams["ActivityName"] = item.ActivityName
+					updateParams["Label"] = item.Label
+					updateParams["TemporaryLabel"] = item.TemporaryLabel
+					updateParams["DistinguishedGuest"] = item.DistinguishedGuest
+					updateParams["ChartPermissionId"] = item.ChartPermissionId
+					updateParams["ChartPermissionName"] = item.ChartPermissionName
+					updateParams["ChartPermissionNames"] = item.ChartPermissionNames
+					updateParams["ActivityTime"] = item.ActivityTime
+					updateParams["YidongActivityEndTime"] = item.YidongActivityEndTime
+					updateParams["ActivityTimeText"] = item.ActivityTimeText
+					updateParams["YidongActivityUrl"] = item.YidongActivityUrl
+					whereParam := map[string]interface{}{"yidong_activity_id": item.YidongActivityId}
+					err = models.UpdateByExpr(models.CygxActivity{}, whereParam, updateParams)
+					if err != nil {
+						return err
+					}
+				}
 			}
 		}
-
 	}
 	return
 }
@@ -269,7 +293,6 @@ func GetYiDongActivityDetail(activityId string) (detail *models.ApifoxModaldetai
 	}()
 	var token string
 	token, _ = GetYiDongToken()
-	fmt.Println(token)
 	url := utils.YiDongZhengTongYunUrl + "interact/activityManageApi/getRoadshowDetail?access_token=" + token
 	method := "POST"
 	payload := strings.NewReader(`{"activityId":"` + activityId + `"}`)
@@ -296,7 +319,6 @@ func GetYiDongActivityDetail(activityId string) (detail *models.ApifoxModaldetai
 		return
 	}
 	utils.FileLog.Info(string(body))
-	fmt.Println(string(body))
 	err = json.Unmarshal(body, &ApifoxModal)
 	if err != nil {
 		fmt.Println("Getres.PublicGetDate Err:", err.Error())
@@ -355,3 +377,43 @@ func GetYiDongCreateUserInfo(user *models.WxUserItem) (userTgc string, err error
 	userTgc = ApifoxModal.Result.Tgc
 	return
 }
+
+//处理易董这边过来的时间格式
+func GetActivityTextTime(timeYidong string) (timeText string) {
+	strTime := timeYidong
+	startTime := utils.StrTimeToTime(strTime)
+	week := utils.StrDateTimeToWeek(strTime)
+	timeStrYmd := startTime.Format(utils.FormatDate)
+	timeStrHmm := startTime.Format(utils.FormatTime)
+	timeYmd := utils.StrTimeToTime(timeStrYmd + " 12:00:00") //拼接当天中午12点的时间
+	var amOrPm string
+	if startTime.After(timeYmd) {
+		amOrPm = " PM"
+	} else {
+		amOrPm = " AM"
+	}
+	timeText = timeStrYmd + "(" + week + ")" + timeStrHmm + amOrPm
+	return
+}
+
+func init() {
+	//GetYiDongActivity()
+	//var timeText string
+	//strTime := "2022-08-18 12:34:00"
+	//startTime := utils.StrTimeToTime(strTime)
+	//week := utils.StrDateTimeToWeek(strTime)
+	//timeStrYmd := startTime.Format(utils.FormatDate)
+	//timeStrHmm := startTime.Format(utils.FormatTime)
+	//timeYmd := utils.StrTimeToTime(timeStrYmd + " 12:00:00") //拼接当天中午12点的时间
+	//var amOrPm string
+	//if startTime.After(timeYmd) {
+	//	amOrPm = " PM"
+	//} else {
+	//	amOrPm = " AM"
+	//}
+	//timeText = timeStrYmd + "(" + week + ")" + timeStrHmm
+	//fmt.Println(week)
+	//fmt.Println(amOrPm)
+	//fmt.Println(strTime)
+	//fmt.Println(timeText)
+}

+ 17 - 0
utils/common.go

@@ -706,3 +706,20 @@ func GetLocalIP() (ip string, err error) {
 	}
 	return
 }
+
+//字符串类型时间转周几
+func StrDateTimeToWeek(strTime string) string {
+	var WeekDayMap = map[string]string{
+		"Monday":    "周一",
+		"Tuesday":   "周二",
+		"Wednesday": "周三",
+		"Thursday":  "周四",
+		"Friday":    "周五",
+		"Saturday":  "周六",
+		"Sunday":    "周日",
+	}
+	var ctime = StrTimeToTime(strTime).Format("2006-01-02")
+	startday, _ := time.Parse("2006-01-02", ctime)
+	staweek_int := startday.Weekday().String()
+	return WeekDayMap[staweek_int]
+}

+ 2 - 2
utils/config.go

@@ -223,14 +223,14 @@ func init() {
 		TemplateIdByProductXzs = "tNcCUiK_uUkuxaFF7M9NP2RwLkw8uHFjG-TDIxGUKxo"          //产品运行报告通知-模板ID(小助手)
 	}
 
-	//进门财经开放api配置
+	//易董开放api配置
 	YiDongApiConfig()
 }
 
 // YiDongApiConfig 易董开放api配置
 func YiDongApiConfig() {
 	if RunMode == "release" {
-		YiDongZhengTongYunUrl = "https://services.easy-board.com.cn/"
+		YiDongZhengTongYunUrl = "https://services.valueonline.cn/"
 		YiDongZhengTongYunAppid = "ca86a257ebb46fce"
 		YiDongZhengTongYunSecret = "338db2b2ca86a257ebb46fced9003f53"
 		YiDongHuaWeiYunUrl = "https://achievement.valueonline.cn/"