yidong.go 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600
  1. package services
  2. import (
  3. "context"
  4. "encoding/json"
  5. "fmt"
  6. "hongze/hongze_cygx/models"
  7. "hongze/hongze_cygx/utils"
  8. "io/ioutil"
  9. "net/http"
  10. "strings"
  11. "time"
  12. )
  13. //GetActivityTypeIdWithYiDong 根据易董同步过来的活动类型,自动匹配行业
  14. func GetActivityTypeIdWithYiDong(industrySwName string) (chartPermissionId int) {
  15. mapIndustrySwName := map[string]int{
  16. "家用电器": utils.XIAO_FEI_ID,
  17. "纺织服饰": utils.XIAO_FEI_ID,
  18. "休闲服务": utils.XIAO_FEI_ID,
  19. "食品饮料": utils.XIAO_FEI_ID,
  20. "美容护理": utils.XIAO_FEI_ID,
  21. //消费
  22. "汽车": utils.ZHI_ZAO_ID,
  23. "机械设备": utils.ZHI_ZAO_ID,
  24. "电力设备": utils.ZHI_ZAO_ID,
  25. //智造
  26. "电子": utils.KE_JI_ID,
  27. "计算机": utils.KE_JI_ID,
  28. "通信": utils.KE_JI_ID,
  29. //科技
  30. "医药生物": utils.YI_YAO_ID,
  31. //医药
  32. "策略": utils.CE_LUE_ID,
  33. //策略
  34. "非银金融": utils.CHART_PERMISSION_ID_YANXUAN,
  35. "建筑装饰": utils.CHART_PERMISSION_ID_YANXUAN,
  36. "基础化工": utils.CHART_PERMISSION_ID_YANXUAN,
  37. "农林牧渔": utils.CHART_PERMISSION_ID_YANXUAN,
  38. "传媒": utils.CHART_PERMISSION_ID_YANXUAN,
  39. "公用事业": utils.CHART_PERMISSION_ID_YANXUAN,
  40. "建筑材料": utils.CHART_PERMISSION_ID_YANXUAN,
  41. "房地产": utils.CHART_PERMISSION_ID_YANXUAN,
  42. "采掘": utils.CHART_PERMISSION_ID_YANXUAN,
  43. "轻工制造": utils.CHART_PERMISSION_ID_YANXUAN,
  44. "钢铁": utils.CHART_PERMISSION_ID_YANXUAN,
  45. "交通运输": utils.CHART_PERMISSION_ID_YANXUAN,
  46. "国防军工": utils.CHART_PERMISSION_ID_YANXUAN,
  47. "银行": utils.CHART_PERMISSION_ID_YANXUAN,
  48. "有色金属": utils.CHART_PERMISSION_ID_YANXUAN,
  49. "综合": utils.CHART_PERMISSION_ID_YANXUAN,
  50. "商业贸易": utils.CHART_PERMISSION_ID_YANXUAN,
  51. "宏观": utils.CHART_PERMISSION_ID_YANXUAN,
  52. "金融工程": utils.CHART_PERMISSION_ID_YANXUAN,
  53. "商贸零售": utils.CHART_PERMISSION_ID_YANXUAN,
  54. "社会服务": utils.CHART_PERMISSION_ID_YANXUAN,
  55. "煤炭": utils.CHART_PERMISSION_ID_YANXUAN,
  56. "石油石化": utils.CHART_PERMISSION_ID_YANXUAN,
  57. "环保": utils.CHART_PERMISSION_ID_YANXUAN,
  58. //研选
  59. }
  60. chartPermissionId = mapIndustrySwName[industrySwName]
  61. return
  62. }
  63. //GetActivityTypeIdWithYiDong 根据易董同步过来的活动类型,自动匹配行业
  64. func GetActivityTypeNameWithYiDong(industrySwName string) (chartPermissionName string) {
  65. mapIndustrySwName := map[string]string{
  66. "家用电器": utils.XIAO_FEI_NAME,
  67. "纺织服饰": utils.XIAO_FEI_NAME,
  68. "休闲服务": utils.XIAO_FEI_NAME,
  69. "食品饮料": utils.XIAO_FEI_NAME,
  70. "美容护理": utils.XIAO_FEI_NAME,
  71. //消费
  72. "汽车": utils.ZHI_ZAO_NAME,
  73. "机械设备": utils.ZHI_ZAO_NAME,
  74. "电力设备": utils.ZHI_ZAO_NAME,
  75. //智造
  76. "电子": utils.KE_JI_NAME,
  77. "计算机": utils.KE_JI_NAME,
  78. "通信": utils.KE_JI_NAME,
  79. //科技
  80. "医药生物": utils.YI_YAO_NAME,
  81. //医药
  82. "策略": utils.CE_LUE_NAME,
  83. //策略
  84. "非银金融": utils.CHART_PERMISSION_NAME_MF_YANXUAN,
  85. "建筑装饰": utils.CHART_PERMISSION_NAME_MF_YANXUAN,
  86. "基础化工": utils.CHART_PERMISSION_NAME_MF_YANXUAN,
  87. "农林牧渔": utils.CHART_PERMISSION_NAME_MF_YANXUAN,
  88. "传媒": utils.CHART_PERMISSION_NAME_MF_YANXUAN,
  89. "公用事业": utils.CHART_PERMISSION_NAME_MF_YANXUAN,
  90. "建筑材料": utils.CHART_PERMISSION_NAME_MF_YANXUAN,
  91. "房地产": utils.CHART_PERMISSION_NAME_MF_YANXUAN,
  92. "采掘": utils.CHART_PERMISSION_NAME_MF_YANXUAN,
  93. "轻工制造": utils.CHART_PERMISSION_NAME_MF_YANXUAN,
  94. "钢铁": utils.CHART_PERMISSION_NAME_MF_YANXUAN,
  95. "交通运输": utils.CHART_PERMISSION_NAME_MF_YANXUAN,
  96. "国防军工": utils.CHART_PERMISSION_NAME_MF_YANXUAN,
  97. "银行": utils.CHART_PERMISSION_NAME_MF_YANXUAN,
  98. "有色金属": utils.CHART_PERMISSION_NAME_MF_YANXUAN,
  99. "综合": utils.CHART_PERMISSION_NAME_MF_YANXUAN,
  100. "商业贸易": utils.CHART_PERMISSION_NAME_MF_YANXUAN,
  101. "宏观": utils.CHART_PERMISSION_NAME_MF_YANXUAN,
  102. "金融工程": utils.CHART_PERMISSION_NAME_MF_YANXUAN,
  103. "商贸零售": utils.CHART_PERMISSION_NAME_MF_YANXUAN,
  104. "社会服务": utils.CHART_PERMISSION_NAME_MF_YANXUAN,
  105. "煤炭": utils.CHART_PERMISSION_NAME_MF_YANXUAN,
  106. "石油石化": utils.CHART_PERMISSION_NAME_MF_YANXUAN,
  107. "环保": utils.CHART_PERMISSION_NAME_MF_YANXUAN,
  108. //研选
  109. }
  110. chartPermissionName = mapIndustrySwName[industrySwName]
  111. return
  112. }
  113. //获取易董token
  114. func GetYiDongToken() (token string, err error) {
  115. defer func() {
  116. if err != nil {
  117. fmt.Println(err)
  118. utils.FileLog.Info(err.Error())
  119. }
  120. }()
  121. cacheKey := utils.YD_TOKEN
  122. ttlTime := utils.Rc.GetRedisTTL(cacheKey)
  123. if ttlTime > 0 {
  124. token, _ = utils.Rc.RedisString(cacheKey)
  125. }
  126. if token == "" {
  127. url := utils.YiDongZhengTongYunUrl + "oauth/token?grant_type=client_credentials&response_type=token&client_id=" + utils.YiDongZhengTongYunAppid + "&client_secret=" + utils.YiDongZhengTongYunSecret
  128. method := "GET"
  129. client := &http.Client{}
  130. req, errReq := http.NewRequest(method, url, nil)
  131. if errReq != nil {
  132. err = errReq
  133. return
  134. }
  135. res, errReq := client.Do(req)
  136. if errReq != nil {
  137. err = errReq
  138. return
  139. }
  140. defer res.Body.Close()
  141. type Ydtoklen struct {
  142. Success bool `json:"success"`
  143. ExpiresIn int `json:"expires_in"`
  144. AccessToken string `json:"access_token"`
  145. }
  146. var ydtoklen Ydtoklen
  147. body, errReq := ioutil.ReadAll(res.Body)
  148. if errReq != nil {
  149. err = errReq
  150. return
  151. }
  152. errReq = json.Unmarshal(body, &ydtoklen)
  153. if errReq != nil {
  154. err = errReq
  155. return
  156. }
  157. token = ydtoklen.AccessToken
  158. utils.Rc.Put(cacheKey, ydtoklen.AccessToken, time.Second*7000)
  159. }
  160. return
  161. }
  162. //获取易董活动列表
  163. func GetYiDongActivity(cont context.Context) (err error) {
  164. defer func() {
  165. if err != nil {
  166. fmt.Println(err)
  167. utils.FileLog.Info(err.Error())
  168. }
  169. }()
  170. var token string
  171. token, _ = GetYiDongToken()
  172. url := utils.YiDongZhengTongYunUrl + "interact/activityManageApi/getRoadshowList?access_token=" + token
  173. method := "POST"
  174. payload := strings.NewReader(`{
  175. "meetingStatus": "0"
  176. }`)
  177. client := &http.Client{}
  178. req, err := http.NewRequest(method, url, payload)
  179. if err != nil {
  180. fmt.Println(err)
  181. utils.FileLog.Info(err.Error())
  182. return
  183. }
  184. req.Header.Add("Content-Type", "application/json")
  185. res, err := client.Do(req)
  186. if err != nil {
  187. fmt.Println(err)
  188. utils.FileLog.Info(err.Error())
  189. return
  190. }
  191. defer res.Body.Close()
  192. var ApifoxModal *models.ApifoxModal
  193. body, err := ioutil.ReadAll(res.Body)
  194. if err != nil {
  195. fmt.Println(err)
  196. utils.FileLog.Info(err.Error())
  197. return
  198. }
  199. //添加请求日志记录
  200. itemApiLog := new(models.CygxThreeApiLog)
  201. itemApiLog.CreateTime = time.Now()
  202. itemApiLog.Source = 1
  203. itemApiLog.Url = url
  204. itemApiLog.Body = utils.ReplaceSpaceAndWrap(fmt.Sprint(payload))
  205. itemApiLog.Result = string(body)
  206. go models.AddCygxThreeApiLog(itemApiLog)
  207. err = json.Unmarshal(body, &ApifoxModal)
  208. if err != nil {
  209. fmt.Println("Getres.PublicGetDate Err:", err.Error())
  210. utils.FileLog.Info(err.Error())
  211. return
  212. }
  213. OldActYIdongList, err := models.GetActivityListByYiDong()
  214. if err != nil {
  215. fmt.Println(err)
  216. utils.FileLog.Info(string(err.Error()))
  217. return
  218. }
  219. mapOldYiDong := make(map[string]string)
  220. mapOldYiDongBody := make(map[string]string)
  221. for _, v := range OldActYIdongList {
  222. mapOldYiDong[v.YidongActivityId] = v.YidongActivityId
  223. mapOldYiDongBody[v.YidongActivityId] = fmt.Sprint(v.ActivityName, v.Label, v.ChartPermissionId, v.ActivityTime, v.YidongActivityEndTime, v.DistinguishedGuest)
  224. }
  225. var itemsAdd []*models.CygxActivity
  226. if len(ApifoxModal.Result) > 0 {
  227. actList := ApifoxModal.Result
  228. for _, v := range actList {
  229. var item = new(models.CygxActivity)
  230. item.YidongActivityId = v.ID
  231. item.ActivityTypeId = 3
  232. item.ActivityTypeName = "公司调研电话会"
  233. item.ActivityName = v.CompanyInfo + v.Title
  234. item.Label = v.CompanyInfo
  235. item.TemporaryLabel = v.CompanyInfo
  236. item.ChartPermissionId = GetActivityTypeIdWithYiDong(v.IndustrySwName)
  237. item.ChartPermissionName = GetActivityTypeNameWithYiDong(v.IndustrySwName)
  238. item.ChartPermissionNames = GetActivityTypeNameWithYiDong(v.IndustrySwName)
  239. item.ActivityTime = v.Start
  240. item.YidongActivityEndTime = v.End
  241. item.YidongSignUpStart = v.SignUpStart
  242. item.YidongSignUpEnd = v.SignUpEnd
  243. item.YidongActivityEndTime = v.End
  244. item.ActivityTimeText = GetActivityTextTime(v.Start)
  245. item.YidongActivityUrl = v.URL
  246. item.ActivityJoinType = v.ActivityJoinType
  247. detailYidng, err := GetYiDongActivityDetail(v.ID)
  248. if err != nil {
  249. return err
  250. }
  251. detailList := detailYidng.Resultdetail.GuestPersonList
  252. for _, vdetail := range detailList {
  253. item.DistinguishedGuest += vdetail.PersonName + ","
  254. }
  255. item.DistinguishedGuest = strings.TrimRight(item.DistinguishedGuest, ",")
  256. item.Body = "<p>" + "【" + v.CompanyInfo + v.Title + "】" + "<p>时间:" + v.Start + "</p>嘉宾:" + item.DistinguishedGuest + "</p>"
  257. if mapOldYiDong[v.ID] == "" {
  258. itemsAdd = append(itemsAdd, item)
  259. newId, err := models.AddCygxActivity(item)
  260. if err != nil {
  261. fmt.Println(err)
  262. utils.FileLog.Info(string(err.Error()))
  263. return err
  264. }
  265. //把公司名称当做标的 对活动进行产业标的的关联
  266. YidongActivityGroup(v.CompanyInfo, int(newId))
  267. } else {
  268. //如果内容主体有做变更,就修改内容
  269. if mapOldYiDongBody[v.ID] != fmt.Sprint(item.ActivityName, item.Label, item.ChartPermissionId, item.ActivityTime, item.YidongActivityEndTime, item.DistinguishedGuest) {
  270. updateParams := make(map[string]interface{})
  271. updateParams["ActivityName"] = item.ActivityName
  272. updateParams["Label"] = item.Label
  273. updateParams["TemporaryLabel"] = item.TemporaryLabel
  274. updateParams["DistinguishedGuest"] = item.DistinguishedGuest
  275. updateParams["ChartPermissionId"] = item.ChartPermissionId
  276. updateParams["ChartPermissionName"] = item.ChartPermissionName
  277. updateParams["ChartPermissionNames"] = item.ChartPermissionNames
  278. updateParams["ActivityTime"] = item.ActivityTime
  279. updateParams["YidongActivityEndTime"] = item.YidongActivityEndTime
  280. updateParams["ActivityTimeText"] = item.ActivityTimeText
  281. updateParams["YidongActivityUrl"] = item.YidongActivityUrl
  282. updateParams["ActivityJoinType"] = item.ActivityJoinType
  283. updateParams["YidongSignUpStart"] = item.YidongSignUpStart
  284. updateParams["YidongSignUpEnd"] = item.YidongSignUpEnd
  285. whereParam := map[string]interface{}{"yidong_activity_id": item.YidongActivityId}
  286. err = models.UpdateByExpr(models.CygxActivity{}, whereParam, updateParams)
  287. if err != nil {
  288. return err
  289. }
  290. }
  291. }
  292. }
  293. }
  294. return
  295. }
  296. //获取易董活动详情
  297. func GetYiDongActivityDetail(activityId string) (detail *models.ApifoxModaldetail, err error) {
  298. defer func() {
  299. if err != nil {
  300. go utils.SendAlarmMsg("获取易董活动详情失败:"+err.Error(), 2)
  301. }
  302. }()
  303. var token string
  304. token, _ = GetYiDongToken()
  305. url := utils.YiDongZhengTongYunUrl + "interact/activityManageApi/getRoadshowDetail?access_token=" + token
  306. method := "POST"
  307. payload := strings.NewReader(`{"activityId":"` + activityId + `"}`)
  308. client := &http.Client{}
  309. req, err := http.NewRequest(method, url, payload)
  310. if err != nil {
  311. fmt.Println(err)
  312. utils.FileLog.Info(err.Error())
  313. return
  314. }
  315. req.Header.Add("Content-Type", "application/json")
  316. res, err := client.Do(req)
  317. if err != nil {
  318. fmt.Println(err)
  319. utils.FileLog.Info(err.Error())
  320. return
  321. }
  322. defer res.Body.Close()
  323. var ApifoxModal *models.ApifoxModaldetail
  324. body, err := ioutil.ReadAll(res.Body)
  325. if err != nil {
  326. fmt.Println(err)
  327. utils.FileLog.Info(err.Error())
  328. return
  329. }
  330. //添加请求日志记录
  331. //itemApiLog := new(models.CygxThreeApiLog)
  332. //itemApiLog.CreateTime = time.Now()
  333. //itemApiLog.Source = 1
  334. //itemApiLog.Url = url
  335. //itemApiLog.Body = utils.ReplaceSpaceAndWrap(fmt.Sprint(payload))
  336. //itemApiLog.Result = string(body)
  337. //go models.AddCygxThreeApiLog(itemApiLog)
  338. err = json.Unmarshal(body, &ApifoxModal)
  339. if err != nil {
  340. fmt.Println("Getres.PublicGetDate Err:", err.Error())
  341. utils.FileLog.Info(err.Error())
  342. return
  343. }
  344. detail = ApifoxModal
  345. return
  346. }
  347. //生成用户相关信息接口 获取用户tgc
  348. func GetYiDongCreateUserInfo(user *models.WxUserItem) (userTgc string, err error) {
  349. defer func() {
  350. if err != nil {
  351. fmt.Println(err)
  352. utils.FileLog.Info(err.Error())
  353. }
  354. }()
  355. url := utils.YiDongHuaWeiYunUrl + "app/hz/createUserInfo"
  356. method := "POST"
  357. payload := strings.NewReader(`{
  358. "phone": "` + user.Mobile + `",
  359. "personName": "` + user.RealName + `",
  360. "companyName": "` + user.CompanyName + `",
  361. "jobName": "` + user.Position + `",
  362. "mobileCountryCode": "+` + user.CountryCode + `",
  363. "sourceFrom": "01"
  364. }`)
  365. client := &http.Client{}
  366. req, err := http.NewRequest(method, url, payload)
  367. if err != nil {
  368. fmt.Println(err)
  369. utils.FileLog.Info(err.Error())
  370. return
  371. }
  372. req.Header.Add("Content-Type", "application/json")
  373. res, err := client.Do(req)
  374. if err != nil {
  375. fmt.Println(err)
  376. utils.FileLog.Info(err.Error())
  377. return
  378. }
  379. defer res.Body.Close()
  380. var ApifoxModal *models.ApifoxModalUserTgc
  381. body, err := ioutil.ReadAll(res.Body)
  382. if err != nil {
  383. fmt.Println(err)
  384. utils.FileLog.Info(err.Error())
  385. return
  386. }
  387. err = json.Unmarshal(body, &ApifoxModal)
  388. if err != nil {
  389. fmt.Println("Getres.PublicGetDate Err:", err.Error())
  390. utils.FileLog.Info(err.Error())
  391. return
  392. }
  393. userTgc = ApifoxModal.Result.Tgc
  394. return
  395. }
  396. //处理易董这边过来的时间格式
  397. func GetActivityTextTime(timeYidong string) (timeText string) {
  398. strTime := timeYidong
  399. startTime := utils.StrTimeToTime(strTime)
  400. week := utils.StrDateTimeToWeek(strTime)
  401. timeStrYmd := startTime.Format(utils.FormatDate)
  402. timeStrHmm := startTime.Format(utils.FormatTime)
  403. timeYmd := utils.StrTimeToTime(timeStrYmd + " 12:00:00") //拼接当天中午12点的时间
  404. var amOrPm string
  405. if startTime.After(timeYmd) {
  406. amOrPm = " PM"
  407. } else {
  408. amOrPm = " AM"
  409. }
  410. timeText = timeStrYmd + "(" + week + ")" + timeStrHmm + amOrPm
  411. return
  412. }
  413. func init232() {
  414. //YidongActivityGroup("美团", 1623)
  415. //GetYiDongActivityMeeting()
  416. //GetYiDongActivity()
  417. //var timeText string
  418. //strTime := "2022-08-18 12:34:00"
  419. //startTime := utils.StrTimeToTime(strTime)
  420. //week := utils.StrDateTimeToWeek(strTime)
  421. //timeStrYmd := startTime.Format(utils.FormatDate)
  422. //timeStrHmm := startTime.Format(utils.FormatTime)
  423. //timeYmd := utils.StrTimeToTime(timeStrYmd + " 12:00:00") //拼接当天中午12点的时间
  424. //var amOrPm string
  425. //if startTime.After(timeYmd) {
  426. // amOrPm = " PM"
  427. //} else {
  428. // amOrPm = " AM"
  429. //}
  430. //timeText = timeStrYmd + "(" + week + ")" + timeStrHmm
  431. //fmt.Println(week)
  432. //fmt.Println(amOrPm)
  433. //fmt.Println(strTime)
  434. //fmt.Println(timeText)
  435. }
  436. //GetYiDongActivityMeeting获取易董到会详情
  437. func GetYiDongActivityMeeting(cont context.Context) (err error) {
  438. var condition string
  439. startDate := time.Now().AddDate(0, 0, -2).Format(utils.FormatDateTime)
  440. endDate := time.Now().Add(-time.Minute * 120).Format(utils.FormatDateTime)
  441. condition += ` AND activity_time > ` + "'" + startDate + "'"
  442. condition += ` AND activity_time < ` + "'" + endDate + "'"
  443. //fmt.Println(startDate)
  444. //fmt.Println(endDate)
  445. artivityListYidong, err := models.GetActivityListByYidong(condition)
  446. if err != nil {
  447. fmt.Println("GetActivityListByYidong Err:", err.Error())
  448. return err
  449. }
  450. //return err
  451. if len(artivityListYidong) == 0 {
  452. return err
  453. }
  454. var token string
  455. token, _ = GetYiDongToken()
  456. for _, v := range artivityListYidong {
  457. defer func() {
  458. if err != nil {
  459. go utils.SendAlarmMsg("获取易董到会详情失败:"+err.Error(), 2)
  460. }
  461. }()
  462. url := utils.YiDongZhengTongYunUrl + "interact/activityManageApi/getAttendPersonList?access_token=" + token
  463. method := "POST"
  464. payload := strings.NewReader(`{"activityId":"` + v.YidongActivityId + `"}`)
  465. client := &http.Client{}
  466. req, err := http.NewRequest(method, url, payload)
  467. if err != nil {
  468. fmt.Println(err)
  469. utils.FileLog.Info(err.Error())
  470. return err
  471. }
  472. req.Header.Add("Content-Type", "application/json")
  473. res, err := client.Do(req)
  474. if err != nil {
  475. fmt.Println(err)
  476. utils.FileLog.Info(err.Error())
  477. return err
  478. }
  479. defer res.Body.Close()
  480. var ApifoxModal *models.ApifoxModaluser
  481. body, err := ioutil.ReadAll(res.Body)
  482. if err != nil {
  483. fmt.Println(err)
  484. utils.FileLog.Info(err.Error())
  485. return err
  486. }
  487. //utils.FileLog.Info(string(body))
  488. //fmt.Println(string(body))
  489. err = json.Unmarshal(body, &ApifoxModal)
  490. if err != nil {
  491. fmt.Println("Getres.PublicGetDate Err:", err.Error())
  492. utils.FileLog.Info(err.Error())
  493. return err
  494. }
  495. //跟易董返回的用户状态修改活动以提交到会状态
  496. err = models.UpdateCygxActivitySubmitMeetingByYidong(v.YidongActivityId)
  497. if err != nil {
  498. fmt.Println("UpdateCygxActivitySubmitMeetingByYidong Err:", err.Error())
  499. return err
  500. }
  501. if len(ApifoxModal.Result) > 0 {
  502. itemlog := new(models.CygxYidongActivityMeetingApiLog)
  503. itemlog.YidongActivityId = v.YidongActivityId
  504. itemlog.Data = string(body)
  505. itemlog.CreateTime = time.Now()
  506. err = models.AddCygxYidongActivityMeetingApiLog(itemlog)
  507. if err != nil {
  508. fmt.Println("AddCygxYidongActivityMeetingApiLog Err:", err.Error())
  509. return err
  510. }
  511. for _, vresult := range ApifoxModal.Result {
  512. if vresult.EndTime != "" {
  513. err = models.UpdateCygxActivitySignupisMeet(v.ActivityId, vresult.PersonTelephone)
  514. if err != nil {
  515. fmt.Println("UpdateCygxActivitySignupisMeet Err:", err.Error())
  516. return err
  517. }
  518. }
  519. }
  520. }
  521. }
  522. return
  523. }
  524. //YidongActivityGroup 添加活动与产业标的的关联
  525. func YidongActivityGroup(subjectName string, activityId int) (err error) {
  526. subjectList, err := models.GetCygxIndustrialSubjectList(subjectName)
  527. if err != nil {
  528. fmt.Println(err)
  529. return err
  530. }
  531. if len(subjectList) == 0 {
  532. return err
  533. }
  534. err = models.UpdateActivityshowSubject(activityId)
  535. if err != nil {
  536. go utils.SendAlarmMsg("UpdateActivityshowSubject :根据易董推过来的匹配信息,判断临时标签是否展示失败"+err.Error(), 2)
  537. }
  538. var industrialActivityItems []*models.CygxIndustrialActivityGroupManagement
  539. var subjectActivityItems []*models.CygxIndustrialActivityGroupSubject
  540. mapSubjectName := make(map[string]string)
  541. for _, v := range subjectList {
  542. industrialActivityItem := new(models.CygxIndustrialActivityGroupManagement)
  543. subjectActivityItem := new(models.CygxIndustrialActivityGroupSubject)
  544. industrialActivityItem.ActivityId = activityId
  545. industrialActivityItem.IndustrialManagementId = v.IndustrialManagementId
  546. industrialActivityItem.Source = 1
  547. industrialActivityItem.CreateTime = time.Now()
  548. industrialActivityItems = append(industrialActivityItems, industrialActivityItem)
  549. subjectActivityItem.ActivityId = activityId
  550. subjectActivityItem.IndustrialSubjectId = v.IndustrialSubjectId
  551. subjectActivityItem.Source = 1
  552. subjectActivityItem.CreateTime = time.Now()
  553. if mapSubjectName[v.SubjectName] == "" {
  554. subjectActivityItems = append(subjectActivityItems, subjectActivityItem)
  555. mapSubjectName[v.SubjectName] = v.SubjectName
  556. }
  557. }
  558. err = models.AddCygxActiuvityGroupMulti(industrialActivityItems, subjectActivityItems)
  559. if err != nil {
  560. go utils.SendAlarmMsg("AddCygxActiuvityGroupMulti :批量添加易董活动关联的活动标签失败"+err.Error(), 2)
  561. }
  562. return
  563. }