yanxuan_special.go 25 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066
  1. package controllers
  2. import (
  3. "encoding/json"
  4. "hongze/hongze_cygx/models"
  5. "hongze/hongze_cygx/services"
  6. "hongze/hongze_cygx/utils"
  7. "time"
  8. )
  9. type YanxuanSpecialController struct {
  10. BaseAuthController
  11. }
  12. // @Title 专栏列表
  13. // @Description 专栏列表
  14. // @Param request body help_doc.AddHelpDocReq true "type json string"
  15. // @Success 200 {object} models.AddEnglishReportResp
  16. // @router /list [get]
  17. func (this *YanxuanSpecialController) List() {
  18. br := new(models.BaseResponse).Init()
  19. defer func() {
  20. this.Data["json"] = br
  21. this.ServeJSON()
  22. }()
  23. sysUser := this.User
  24. if sysUser == nil {
  25. br.Msg = "请登录"
  26. br.ErrMsg = "请登录,SysUser Is Empty"
  27. br.Ret = 408
  28. return
  29. }
  30. userId, _ := this.GetInt("UserId", 0)
  31. var condition string
  32. var pars []interface{}
  33. var specialUser *models.CygxYanxuanSpecialAuthorItem
  34. var err error
  35. if userId > 0 {
  36. condition += ` AND a.user_id = ? `
  37. pars = append(pars, userId)
  38. }
  39. cond := ``
  40. cond += ` AND a.status = 1 `
  41. specialUser, err = models.GetYanxuanSpecialAuthor(sysUser.UserId, sysUser.UserId, cond)
  42. if err != nil && err.Error() != utils.ErrNoRow() {
  43. br.Msg = "获取失败"
  44. br.ErrMsg = "获取失败, Err:" + err.Error()
  45. return
  46. }
  47. condition += ` AND a.status = 3 `
  48. list, tmpErr := models.GetYanxuanSpecialList(sysUser.UserId, condition, pars)
  49. if tmpErr != nil {
  50. br.Msg = "获取失败"
  51. br.ErrMsg = "获取失败, Err:" + tmpErr.Error()
  52. return
  53. }
  54. for _, v := range list {
  55. hasImg, err := utils.ArticleHasImgUrl(v.Content)
  56. if err != nil {
  57. return
  58. }
  59. if hasImg {
  60. v.ContentHasImg = 1
  61. }
  62. v.Content = utils.ArticleRemoveImgUrl(v.Content)
  63. v.Content, err = utils.ExtractText(v.Content)
  64. if err != nil {
  65. return
  66. }
  67. v.Content = services.AnnotationHtml(v.Content)
  68. if v.DocUrl != "" {
  69. var docs []models.Doc
  70. err := json.Unmarshal([]byte(v.DocUrl), &docs)
  71. if err != nil {
  72. br.Msg = "参数解析异常!"
  73. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  74. return
  75. }
  76. v.Docs = docs
  77. }
  78. if v.MyCollectNum > 0 {
  79. v.IsCollect = 1
  80. }
  81. if v.CompanyTags != "" {
  82. v.Tags += v.CompanyTags
  83. }
  84. if v.IndustryTags != "" {
  85. if v.Tags != "" {
  86. v.Tags += ","
  87. }
  88. v.Tags += v.IndustryTags
  89. }
  90. }
  91. resp := new(models.SpecialListResp)
  92. if specialUser != nil {
  93. resp.IsAuthor = true
  94. }
  95. resp.List = list
  96. br.Data = resp
  97. br.Ret = 200
  98. br.Success = true
  99. br.Msg = "获取成功"
  100. }
  101. // @Title 专栏详情
  102. // @Description 专栏详情
  103. // @Param request body help_doc.AddHelpDocReq true "type json string"
  104. // @Success 200 {object} models.AddEnglishReportResp
  105. // @router /detail [get]
  106. func (this *YanxuanSpecialController) Detail() {
  107. br := new(models.BaseResponse).Init()
  108. defer func() {
  109. this.Data["json"] = br
  110. this.ServeJSON()
  111. }()
  112. sysUser := this.User
  113. if sysUser == nil {
  114. br.Msg = "请登录"
  115. br.ErrMsg = "请登录,SysUser Is Empty"
  116. br.Ret = 408
  117. return
  118. }
  119. specialId, _ := this.GetInt("Id", 0)
  120. if specialId <= 0 {
  121. br.Msg = "参数错误"
  122. br.ErrMsg = "参数错误"
  123. return
  124. }
  125. item, tmpErr := models.GetYanxuanSpecialById(specialId, sysUser.UserId)
  126. if tmpErr != nil {
  127. br.Msg = "获取失败"
  128. br.ErrMsg = "获取失败, Err:" + tmpErr.Error()
  129. return
  130. }
  131. if item.MyCollectNum > 0 {
  132. item.IsCollect = 1
  133. }
  134. var resp models.CygxYanxuanSpecialResp
  135. resp.CygxYanxuanSpecialItem = *item
  136. if item.DocUrl != "" {
  137. var docs []models.Doc
  138. err := json.Unmarshal([]byte(item.DocUrl), &docs)
  139. if err != nil {
  140. br.Msg = "参数解析异常!"
  141. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  142. return
  143. }
  144. resp.Docs = docs
  145. }
  146. if item.CompanyTags != "" {
  147. resp.Tags += item.CompanyTags
  148. resp.CompanyTags = append(resp.CompanyTags, item.CompanyTags)
  149. }
  150. if item.IndustryTags != "" {
  151. if resp.Tags != "" {
  152. resp.Tags += ","
  153. }
  154. resp.Tags += item.IndustryTags
  155. resp.IndustryTags = append(resp.IndustryTags, item.IndustryTags)
  156. }
  157. go services.AddSpecialRecord(this.User, specialId)
  158. br.Data = resp
  159. br.Ret = 200
  160. br.Success = true
  161. br.Msg = "获取成功"
  162. }
  163. // @Title 新增保存专栏作者详情
  164. // @Description 新增保存专栏作者详情
  165. // @Param request body help_doc.AddHelpDocReq true "type json string"
  166. // @Success 200 {object} models.AddEnglishReportResp
  167. // @router /author/save [post]
  168. func (this *YanxuanSpecialController) AuthorSave() {
  169. br := new(models.BaseResponse).Init()
  170. defer func() {
  171. this.Data["json"] = br
  172. this.ServeJSON()
  173. }()
  174. sysUser := this.User
  175. if sysUser == nil {
  176. br.Msg = "请登录"
  177. br.ErrMsg = "请登录,SysUser Is Empty"
  178. br.Ret = 408
  179. return
  180. }
  181. var req models.SaveCygxYanxuanSpecialAuthorReq
  182. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  183. if err != nil {
  184. br.Msg = "参数解析异常!"
  185. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  186. return
  187. }
  188. if req.UserId <= 0 {
  189. br.Msg = "用户id有误"
  190. return
  191. }
  192. if req.SpecialName == "" {
  193. br.Msg = "请输入专栏名称"
  194. return
  195. }
  196. if req.NickName == "" {
  197. br.Msg = "请输入昵称"
  198. return
  199. }
  200. item := models.CygxYanxuanSpecialAuthor{
  201. UserId: req.UserId,
  202. SpecialName: req.SpecialName,
  203. Introduction: req.Introduction,
  204. Label: req.Label,
  205. NickName: req.NickName,
  206. CreateTime: time.Now(),
  207. ModifyTime: time.Now(),
  208. BgImg: "",
  209. Status: 1,
  210. }
  211. //if req.Id == 0{
  212. // _, err = models.AddCygxYanxuanSpecialAuthor(&item)
  213. // if err != nil {
  214. // br.Msg = "新增失败"
  215. // br.ErrMsg = "新增失败,Err:" + err.Error()
  216. // return
  217. // }
  218. //} else {
  219. // err = models.UpdateYanxuanSpecialAuthor(&item)
  220. // if err != nil {
  221. // br.Msg = "保存失败"
  222. // br.ErrMsg = "保存失败,Err:" + err.Error()
  223. // return
  224. // }
  225. //}
  226. err = models.UpdateYanxuanSpecialAuthor(&item)
  227. if err != nil {
  228. br.Msg = "保存失败"
  229. br.ErrMsg = "保存失败,Err:" + err.Error()
  230. return
  231. }
  232. br.Ret = 200
  233. br.Success = true
  234. br.Msg = "保存成功"
  235. }
  236. // @Title 新增保存专栏
  237. // @Description 新增保存专栏
  238. // @Param request body help_doc.AddHelpDocReq true "type json string"
  239. // @Success 200 {object} models.AddEnglishReportResp
  240. // @router /save [post]
  241. func (this *YanxuanSpecialController) Save() {
  242. br := new(models.BaseResponse).Init()
  243. defer func() {
  244. this.Data["json"] = br
  245. this.ServeJSON()
  246. }()
  247. sysUser := this.User
  248. if sysUser == nil {
  249. br.Msg = "请登录"
  250. br.ErrMsg = "请登录,SysUser Is Empty"
  251. br.Ret = 408
  252. return
  253. }
  254. var req models.CygxYanxuanSpecialReq
  255. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  256. if err != nil {
  257. br.Msg = "参数解析异常!"
  258. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  259. return
  260. }
  261. if req.Content == "" && req.DoType == 2 {
  262. br.Msg = "请输入内容"
  263. return
  264. }
  265. if req.CompanyTags == "" && req.IndustryTags == "" && req.DoType == 2 {
  266. br.Msg = "请至少输入一个标签"
  267. return
  268. }
  269. item := models.CygxYanxuanSpecial{
  270. Id: req.Id,
  271. UserId: sysUser.UserId,
  272. CreateTime: time.Now(),
  273. ModifyTime: time.Now(),
  274. PublishTime: time.Now(),
  275. Content: req.Content,
  276. ImgUrl: req.ImgUrl,
  277. DocUrl: req.DocUrl,
  278. Title: req.Title,
  279. Type: req.Type,
  280. CompanyTags: req.CompanyTags,
  281. IndustryTags: req.IndustryTags,
  282. }
  283. if req.DoType == 1 {
  284. item.Status = 1
  285. } else {
  286. item.Status = 2
  287. }
  288. specialId := 0
  289. if req.Id == 0 {
  290. id, err := models.AddCygxYanxuanSpecial(&item)
  291. if err != nil {
  292. br.Msg = "新增失败"
  293. br.ErrMsg = "新增失败,Err:" + err.Error()
  294. return
  295. }
  296. specialId = int(id)
  297. } else {
  298. err = models.UpdateYanxuanSpecial(&item)
  299. if err != nil {
  300. br.Msg = "保存失败"
  301. br.ErrMsg = "保存失败,Err:" + err.Error()
  302. return
  303. }
  304. specialId = req.Id
  305. }
  306. if req.DoType == 2 {
  307. go services.SendReviewTemplateMsgAdmin(specialId)
  308. go services.UpdateYanxuanSpecialResourceData(specialId) // 写入首页最新 cygx_resource_data 表
  309. go services.EsAddYanxuanSpecial(specialId) // 写入es 综合搜索
  310. }
  311. br.Ret = 200
  312. br.Success = true
  313. br.Msg = "保存成功"
  314. }
  315. // @Title 专栏作者详情
  316. // @Description 专栏作者详情
  317. // @Param request body help_doc.AddHelpDocReq true "type json string"
  318. // @Success 200 {object} models.AddEnglishReportResp
  319. // @router /author/detail [get]
  320. func (this *YanxuanSpecialController) AuthorDetail() {
  321. br := new(models.BaseResponse).Init()
  322. defer func() {
  323. this.Data["json"] = br
  324. this.ServeJSON()
  325. }()
  326. sysUser := this.User
  327. if sysUser == nil {
  328. br.Msg = "请登录"
  329. br.ErrMsg = "请登录,SysUser Is Empty"
  330. br.Ret = 408
  331. return
  332. }
  333. userId, _ := this.GetInt("UserId", 0)
  334. if userId == 0 {
  335. userId = sysUser.UserId
  336. }
  337. item, tmpErr := models.GetYanxuanSpecialAuthor(userId, sysUser.UserId, "")
  338. if tmpErr != nil && tmpErr.Error() != utils.ErrNoRow() {
  339. br.Msg = "获取失败"
  340. br.ErrMsg = "获取失败, Err:" + tmpErr.Error()
  341. return
  342. }
  343. br.Data = item
  344. br.Ret = 200
  345. br.Success = true
  346. br.Msg = "获取成功"
  347. }
  348. // @Title 审批研选专栏
  349. // @Description 审批研选专栏
  350. // @Param request body help_doc.AddHelpDocReq true "type json string"
  351. // @Success 200 {object} models.AddEnglishReportResp
  352. // @router /enable [post]
  353. func (this *YanxuanSpecialController) Enable() {
  354. br := new(models.BaseResponse).Init()
  355. defer func() {
  356. this.Data["json"] = br
  357. this.ServeJSON()
  358. }()
  359. sysUser := this.User
  360. if sysUser == nil {
  361. br.Msg = "请登录"
  362. br.ErrMsg = "请登录,SysUser Is Empty"
  363. br.Ret = 408
  364. return
  365. }
  366. var req models.EnableCygxYanxuanSpecialReq
  367. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  368. if err != nil {
  369. br.Msg = "参数解析异常!"
  370. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  371. return
  372. }
  373. if req.Id <= 0 {
  374. br.Msg = "文章id错误"
  375. return
  376. }
  377. if req.Status <= 0 {
  378. br.Msg = "参数错误"
  379. return
  380. }
  381. status := 0
  382. if req.Status == 1 {
  383. status = 3
  384. } else {
  385. status = 4
  386. }
  387. if tmpErr := models.EnableYanxuanSpecial(req.Id, status, req.Reason); tmpErr != nil {
  388. br.Msg = "审批失败"
  389. br.ErrMsg = "审批失败, Err:" + tmpErr.Error()
  390. return
  391. }
  392. if req.Status == 1 {
  393. go services.SendWxMsgSpecialFollow(req.Id)
  394. }
  395. go services.SendWxMsgSpecialAuthor(req.Id, req.Status)
  396. go services.UpdateYanxuanSpecialResourceData(req.Id) // 写入首页最新 cygx_resource_data 表
  397. go services.EsAddYanxuanSpecial(req.Id) // 写入es 综合搜索
  398. br.Msg = "审批成功"
  399. br.Ret = 200
  400. br.Success = true
  401. }
  402. // @Title 研选专栏收藏
  403. // @Description 研选专栏收藏
  404. // @Param request body help_doc.AddHelpDocReq true "type json string"
  405. // @Success 200 {object} models.AddEnglishReportResp
  406. // @router /collect [post]
  407. func (this *YanxuanSpecialController) Collect() {
  408. br := new(models.BaseResponse).Init()
  409. defer func() {
  410. this.Data["json"] = br
  411. this.ServeJSON()
  412. }()
  413. sysUser := this.User
  414. if sysUser == nil {
  415. br.Msg = "请登录"
  416. br.ErrMsg = "请登录,SysUser Is Empty"
  417. br.Ret = 408
  418. return
  419. }
  420. var req models.CollectCygxYanxuanSpecialReq
  421. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  422. if err != nil {
  423. br.Msg = "参数解析异常!"
  424. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  425. return
  426. }
  427. if req.Id <= 0 {
  428. br.Msg = "文章id错误"
  429. return
  430. }
  431. if req.Status <= 0 {
  432. br.Msg = "参数错误"
  433. return
  434. }
  435. var sellerName string
  436. sellerName, err = models.GetCompanySellerName(sysUser.CompanyId)
  437. if err != nil {
  438. br.Msg = "报名失败!"
  439. br.ErrMsg = "获取对应销售失败,Err:" + err.Error()
  440. return
  441. }
  442. if req.Status == 1 {
  443. item := models.CygxYanxuanSpecialCollect{
  444. UserId: sysUser.UserId,
  445. Mobile: sysUser.Mobile,
  446. Email: sysUser.Email,
  447. CompanyId: sysUser.CompanyId,
  448. CompanyName: sysUser.CompanyName,
  449. RealName: sysUser.RealName,
  450. SellerName: sellerName,
  451. CreateTime: time.Now(),
  452. ModifyTime: time.Now(),
  453. RegisterPlatform: utils.REGISTER_PLATFORM,
  454. YanxuanSpecialId: req.Id,
  455. }
  456. _, err = models.AddCygxYanxuanSpecialCollect(&item)
  457. if err != nil {
  458. br.Msg = "新增失败"
  459. br.ErrMsg = "新增失败,Err:" + err.Error()
  460. return
  461. }
  462. br.Msg = "收藏成功"
  463. } else {
  464. err = models.DelCygxYanxuanSpecialCollect(sysUser.UserId, req.Id)
  465. if err != nil {
  466. br.Msg = "删除失败"
  467. br.ErrMsg = "删除失败,Err:" + err.Error()
  468. return
  469. }
  470. br.Msg = "取消收藏成功"
  471. }
  472. br.Ret = 200
  473. br.Success = true
  474. }
  475. // @Title 专栏内容中心
  476. // @Description 专栏内容中心
  477. // @Param request body help_doc.AddHelpDocReq true "type json string"
  478. // @Success 200 {object} models.AddEnglishReportResp
  479. // @router /center [get]
  480. func (this *YanxuanSpecialController) Center() {
  481. br := new(models.BaseResponse).Init()
  482. defer func() {
  483. this.Data["json"] = br
  484. this.ServeJSON()
  485. }()
  486. sysUser := this.User
  487. if sysUser == nil {
  488. br.Msg = "请登录"
  489. br.ErrMsg = "请登录,SysUser Is Empty"
  490. br.Ret = 408
  491. return
  492. }
  493. // 1:未发布,2:审核中 3:已发布 4:驳回
  494. status, _ := this.GetInt("Status", 0)
  495. if status <= 0 {
  496. br.Msg = "参数错误"
  497. br.ErrMsg = "参数错误"
  498. return
  499. }
  500. var condition string
  501. var pars []interface{}
  502. condition += ` AND a.user_id = ? `
  503. pars = append(pars, sysUser.UserId)
  504. condition += ` AND a.status = ? `
  505. pars = append(pars, status)
  506. list, tmpErr := models.GetYanxuanSpecialList(sysUser.UserId, condition, pars)
  507. if tmpErr != nil {
  508. br.Msg = "获取失败"
  509. br.ErrMsg = "获取失败, Err:" + tmpErr.Error()
  510. return
  511. }
  512. for _, v := range list {
  513. hasStyle, err := utils.ArticleHasStyle(v.Content)
  514. if err != nil {
  515. return
  516. }
  517. v.ContentHasStyle = hasStyle
  518. hasImg, err := utils.ArticleHasImgUrl(v.Content)
  519. if err != nil {
  520. return
  521. }
  522. if hasImg {
  523. v.ContentHasStyle = hasImg
  524. }
  525. }
  526. br.Data = list
  527. br.Ret = 200
  528. br.Success = true
  529. br.Msg = "获取成功"
  530. }
  531. // @Title 专栏点击记录
  532. // @Description 专栏点击记录
  533. // @Param request body models.AddCygxReportSelectionSubjectHistoryReq true "type json string"
  534. // @router /record [post]
  535. func (this *YanxuanSpecialController) Record() {
  536. br := new(models.BaseResponse).Init()
  537. defer func() {
  538. this.Data["json"] = br
  539. this.ServeJSON()
  540. }()
  541. user := this.User
  542. if user == nil {
  543. br.Msg = "请重新登录"
  544. br.Ret = 408
  545. return
  546. }
  547. var req models.AddCygxYanxuanSpecialRecordReq
  548. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  549. if err != nil {
  550. br.Msg = "参数解析异常!"
  551. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  552. return
  553. }
  554. if req.SpecialId <= 0 {
  555. br.Msg = "文章不存在"
  556. br.ErrMsg = "文章不存在,文章ID错误"
  557. return
  558. }
  559. var sellerName string
  560. sellerName, err = models.GetCompanySellerName(user.CompanyId)
  561. if err != nil {
  562. br.Msg = "报名失败!"
  563. br.ErrMsg = "获取对应销售失败,Err:" + err.Error()
  564. return
  565. }
  566. item := models.CygxYanxuanSpecialRecord{
  567. UserId: user.UserId,
  568. Mobile: user.Mobile,
  569. Email: user.Email,
  570. CompanyId: user.CompanyId,
  571. CompanyName: user.CompanyName,
  572. RealName: user.RealName,
  573. SellerName: sellerName,
  574. CreateTime: time.Now(),
  575. ModifyTime: time.Now(),
  576. RegisterPlatform: utils.REGISTER_PLATFORM,
  577. YanxuanSpecialId: req.SpecialId,
  578. }
  579. _, err = models.AddCygxYanxuanSpecialRecord(&item)
  580. if err != nil {
  581. br.Msg = "记录失败"
  582. br.ErrMsg = "记录失败,Err:" + err.Error()
  583. return
  584. }
  585. br.Ret = 200
  586. br.Success = true
  587. br.Msg = "记录成功"
  588. }
  589. // @Title 研选专栏关注
  590. // @Description 研选专栏关注
  591. // @Param request body help_doc.AddHelpDocReq true "type json string"
  592. // @Success 200 {object} models.AddEnglishReportResp
  593. // @router /follow [post]
  594. func (this *YanxuanSpecialController) Follow() {
  595. br := new(models.BaseResponse).Init()
  596. defer func() {
  597. this.Data["json"] = br
  598. this.ServeJSON()
  599. }()
  600. sysUser := this.User
  601. if sysUser == nil {
  602. br.Msg = "请登录"
  603. br.ErrMsg = "请登录,SysUser Is Empty"
  604. br.Ret = 408
  605. return
  606. }
  607. var req models.FollowCygxYanxuanSpecialReq
  608. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  609. if err != nil {
  610. br.Msg = "参数解析异常!"
  611. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  612. return
  613. }
  614. if req.FollowUserId <= 0 {
  615. br.Msg = "被关注的用户id"
  616. return
  617. }
  618. if req.Status <= 0 {
  619. br.Msg = "参数错误"
  620. return
  621. }
  622. var sellerName string
  623. sellerName, err = models.GetCompanySellerName(sysUser.CompanyId)
  624. if err != nil {
  625. br.Msg = "报名失败!"
  626. br.ErrMsg = "获取对应销售失败,Err:" + err.Error()
  627. return
  628. }
  629. if req.Status == 1 {
  630. item := models.CygxYanxuanSpecialFollow{
  631. UserId: sysUser.UserId,
  632. FollowUserId: req.FollowUserId,
  633. Mobile: sysUser.Mobile,
  634. Email: sysUser.Email,
  635. CompanyId: sysUser.CompanyId,
  636. CompanyName: sysUser.CompanyName,
  637. RealName: sysUser.RealName,
  638. SellerName: sellerName,
  639. CreateTime: time.Now(),
  640. ModifyTime: time.Now(),
  641. RegisterPlatform: utils.REGISTER_PLATFORM,
  642. YanxuanSpecialId: req.SpecialId,
  643. }
  644. err = models.AddCygxYanxuanSpecialFollow(&item)
  645. if err != nil {
  646. br.Msg = "新增失败"
  647. br.ErrMsg = "新增失败,Err:" + err.Error()
  648. return
  649. }
  650. br.Msg = "关注成功"
  651. } else {
  652. err = models.DelCygxYanxuanSpecialFollow(sysUser.UserId, req.FollowUserId)
  653. if err != nil {
  654. br.Msg = "删除失败"
  655. br.ErrMsg = "删除失败,Err:" + err.Error()
  656. return
  657. }
  658. br.Msg = "取消关注成功"
  659. }
  660. br.Ret = 200
  661. br.Success = true
  662. }
  663. // @Title 行业标签搜索
  664. // @Description 行业标签搜索
  665. // @Param request body help_doc.AddHelpDocReq true "type json string"
  666. // @Success 200 {object} models.AddEnglishReportResp
  667. // @router /industrySearch [get]
  668. func (this *YanxuanSpecialController) IndustrySearch() {
  669. br := new(models.BaseResponse).Init()
  670. defer func() {
  671. this.Data["json"] = br
  672. this.ServeJSON()
  673. }()
  674. sysUser := this.User
  675. if sysUser == nil {
  676. br.Msg = "请登录"
  677. br.ErrMsg = "请登录,SysUser Is Empty"
  678. br.Ret = 408
  679. return
  680. }
  681. keyword := this.GetString("Keyword")
  682. list, tmpErr := models.GetYanxuanSpecialIndustry(keyword)
  683. if tmpErr != nil {
  684. br.Msg = "获取失败"
  685. br.ErrMsg = "获取失败, Err:" + tmpErr.Error()
  686. return
  687. }
  688. br.Data = list
  689. br.Ret = 200
  690. br.Success = true
  691. br.Msg = "获取成功"
  692. }
  693. // @Title 公司标签搜索
  694. // @Description 公司标签搜索
  695. // @Param request body help_doc.AddHelpDocReq true "type json string"
  696. // @Success 200 {object} models.AddEnglishReportResp
  697. // @router /companySearch [get]
  698. func (this *YanxuanSpecialController) CompanySearch() {
  699. br := new(models.BaseResponse).Init()
  700. defer func() {
  701. this.Data["json"] = br
  702. this.ServeJSON()
  703. }()
  704. sysUser := this.User
  705. if sysUser == nil {
  706. br.Msg = "请登录"
  707. br.ErrMsg = "请登录,SysUser Is Empty"
  708. br.Ret = 408
  709. return
  710. }
  711. keyword := this.GetString("Keyword")
  712. if keyword == "" {
  713. br.Ret = 200
  714. return
  715. }
  716. list, tmpErr := models.GetYanxuanSpecialCompany(keyword)
  717. if tmpErr != nil {
  718. br.Msg = "获取失败"
  719. br.ErrMsg = "获取失败, Err:" + tmpErr.Error()
  720. return
  721. }
  722. br.Data = list
  723. br.Ret = 200
  724. br.Success = true
  725. br.Msg = "获取成功"
  726. }
  727. // @Title 专栏取消发布
  728. // @Description 专栏取消发布
  729. // @Param request body help_doc.AddHelpDocReq true "type json string"
  730. // @Success 200 {object} models.AddEnglishReportResp
  731. // @router /cancel [post]
  732. func (this *YanxuanSpecialController) Cancel() {
  733. br := new(models.BaseResponse).Init()
  734. defer func() {
  735. this.Data["json"] = br
  736. this.ServeJSON()
  737. }()
  738. sysUser := this.User
  739. if sysUser == nil {
  740. br.Msg = "请登录"
  741. br.ErrMsg = "请登录,SysUser Is Empty"
  742. br.Ret = 408
  743. return
  744. }
  745. var req models.CancelPublishCygxYanxuanSpecialReq
  746. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  747. if err != nil {
  748. br.Msg = "参数解析异常!"
  749. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  750. return
  751. }
  752. if req.Id <= 0 {
  753. br.Msg = "文章id错误"
  754. return
  755. }
  756. if tmpErr := models.CancelPublishYanxuanSpecial(req.Id); tmpErr != nil {
  757. br.Msg = "取消发布失败"
  758. br.ErrMsg = "取消发布失败, Err:" + tmpErr.Error()
  759. return
  760. }
  761. go services.UpdateYanxuanSpecialResourceData(req.Id) // 写入首页最新 cygx_resource_data 表
  762. go services.EsAddYanxuanSpecial(req.Id) // 写入es 综合搜索
  763. br.Msg = "取消发布成功"
  764. br.Ret = 200
  765. br.Success = true
  766. }
  767. // @Title 作者列表
  768. // @Description 作者列表
  769. // @Param request body help_doc.AddHelpDocReq true "type json string"
  770. // @Success 200 {object} models.AddEnglishReportResp
  771. // @router /author/list [get]
  772. func (this *YanxuanSpecialController) AuthorList() {
  773. br := new(models.BaseResponse).Init()
  774. defer func() {
  775. this.Data["json"] = br
  776. this.ServeJSON()
  777. }()
  778. sysUser := this.User
  779. if sysUser == nil {
  780. br.Msg = "请登录"
  781. br.ErrMsg = "请登录,SysUser Is Empty"
  782. br.Ret = 408
  783. return
  784. }
  785. var specialUser *models.CygxYanxuanSpecialAuthorItem
  786. var err error
  787. cond := ``
  788. cond += ` AND a.status = 1 `
  789. specialUser, err = models.GetYanxuanSpecialAuthor(sysUser.UserId, sysUser.UserId, cond)
  790. if err != nil && err.Error() != utils.ErrNoRow() {
  791. br.Msg = "获取失败"
  792. br.ErrMsg = "获取失败, Err:" + err.Error()
  793. return
  794. }
  795. list, tmpErr := models.GetYanxuanSpecialAuthorList()
  796. if tmpErr != nil {
  797. br.Msg = "获取失败"
  798. br.ErrMsg = "获取失败, Err:" + tmpErr.Error()
  799. return
  800. }
  801. for _, v := range list {
  802. v.LatestPublishDate = v.LatestPublishTime.Format(utils.FormatDate) + "更新"
  803. }
  804. resp := new(models.SpecialAuthorListResp)
  805. if specialUser != nil {
  806. resp.IsAuthor = true
  807. }
  808. resp.List = list
  809. br.Data = resp
  810. br.Ret = 200
  811. br.Success = true
  812. br.Msg = "获取成功"
  813. }
  814. // @Title 更新作者头像
  815. // @Description 更新作者头像
  816. // @Param request body help_doc.AddHelpDocReq true "type json string"
  817. // @Success 200 {object} models.AddEnglishReportResp
  818. // @router /author/head_img [post]
  819. func (this *YanxuanSpecialController) AuthorHeadImg() {
  820. br := new(models.BaseResponse).Init()
  821. defer func() {
  822. this.Data["json"] = br
  823. this.ServeJSON()
  824. }()
  825. sysUser := this.User
  826. if sysUser == nil {
  827. br.Msg = "请登录"
  828. br.ErrMsg = "请登录,SysUser Is Empty"
  829. br.Ret = 408
  830. return
  831. }
  832. var req models.SaveCygxYanxuanSpecialAuthoHeadImgrReq
  833. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  834. if err != nil {
  835. br.Msg = "参数解析异常!"
  836. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  837. return
  838. }
  839. if req.UserId <= 0 {
  840. br.Msg = "用户id有误"
  841. return
  842. }
  843. if req.HeadImg == "" {
  844. br.Msg = "头像图片错误"
  845. return
  846. }
  847. item := models.CygxYanxuanSpecialAuthor{
  848. UserId: req.UserId,
  849. HeadImg: req.HeadImg,
  850. }
  851. err = models.UpdateYanxuanSpecialAuthorHeadImg(&item)
  852. if err != nil {
  853. br.Msg = "保存失败"
  854. br.ErrMsg = "保存失败,Err:" + err.Error()
  855. return
  856. }
  857. br.Ret = 200
  858. br.Success = true
  859. br.Msg = "保存成功"
  860. }
  861. // @Title 删除专栏
  862. // @Description 删除专栏
  863. // @Param request body help_doc.AddHelpDocReq true "type json string"
  864. // @Success 200 {object} models.AddEnglishReportResp
  865. // @router /del [post]
  866. func (this *YanxuanSpecialController) Delete() {
  867. br := new(models.BaseResponse).Init()
  868. defer func() {
  869. this.Data["json"] = br
  870. this.ServeJSON()
  871. }()
  872. sysUser := this.User
  873. if sysUser == nil {
  874. br.Msg = "请登录"
  875. br.ErrMsg = "请登录,SysUser Is Empty"
  876. br.Ret = 408
  877. return
  878. }
  879. var req models.EnableCygxYanxuanSpecialReq
  880. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  881. if err != nil {
  882. br.Msg = "参数解析异常!"
  883. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  884. return
  885. }
  886. if req.Id <= 0 {
  887. br.Msg = "文章id错误"
  888. return
  889. }
  890. if tmpErr := models.DelYanxuanSpecial(req.Id); tmpErr != nil {
  891. br.Msg = "删除失败"
  892. br.ErrMsg = "删除失败, Err:" + tmpErr.Error()
  893. return
  894. }
  895. br.Msg = "删除成功"
  896. br.Ret = 200
  897. br.Success = true
  898. }
  899. // @Title 专栏文章敏感词检测
  900. // @Description 专栏文章敏感词检测
  901. // @Param request body help_doc.AddHelpDocReq true "type json string"
  902. // @Success 200 {object} models.AddEnglishReportResp
  903. // @router /check [post]
  904. func (this *YanxuanSpecialController) Check() {
  905. br := new(models.BaseResponse).Init()
  906. defer func() {
  907. this.Data["json"] = br
  908. this.ServeJSON()
  909. }()
  910. sysUser := this.User
  911. if sysUser == nil {
  912. br.Msg = "请登录"
  913. br.ErrMsg = "请登录,SysUser Is Empty"
  914. br.Ret = 408
  915. return
  916. }
  917. var req models.CygxYanxuanSpecialCheckReq
  918. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  919. if err != nil {
  920. br.Msg = "参数解析异常!"
  921. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  922. return
  923. }
  924. if req.Content == "" {
  925. br.Ret = 200
  926. br.Success = true
  927. br.Msg = "校验成功"
  928. }
  929. itemToken, err := services.WxGetToken()
  930. if err != nil {
  931. br.Msg = "GetWxAccessToken Err:" + err.Error()
  932. return
  933. }
  934. if itemToken.AccessToken == "" {
  935. br.Msg = "accessToken is empty"
  936. return
  937. }
  938. suggest := models.WxCheckContent(itemToken.AccessToken, sysUser.OpenId, req.Content)
  939. if suggest == "risky" {
  940. br.Msg = "文章内容含有违法违规内容"
  941. br.ErrMsg = "文章内容含有违法违规内容"
  942. return
  943. }
  944. if len(req.ImgUrl) > 0 {
  945. //for _, imgUrl := range req.ImgUrl {
  946. // imgBody, err := http.Get(imgUrl)
  947. // if err != nil {
  948. // br.Msg = "图片链接有误"
  949. // br.ErrMsg = "图片链接有误"
  950. // return
  951. // }
  952. // rnStr := utils.GetRandStringNoSpecialChar(5)
  953. // savePath := time.Now().Format(utils.FormatDateTimeUnSpace) + rnStr + ".jpg"
  954. // err = file.SaveFile(imgBody, savePath)
  955. // if err != nil {
  956. // br.Msg = "保存图片错误"
  957. // br.ErrMsg = "保存图片错误"
  958. // return
  959. // }
  960. // res, err := weapp.IMGSecCheck(itemToken.AccessToken, savePath)
  961. // if err != nil {
  962. // // 处理一般错误信息
  963. // br.Msg = "图片内容含有违法违规内容"
  964. // br.ErrMsg = "图片内容含有违法违规内容"
  965. // return
  966. // }
  967. // if err := res.GetResponseError(); err != nil {
  968. // // 处理微信返回错误信息
  969. // return
  970. // }
  971. // err = os.RemoveAll(savePath)
  972. // if err != nil {
  973. // return
  974. // }
  975. //}
  976. }
  977. br.Ret = 200
  978. br.Success = true
  979. br.Msg = "校验成功"
  980. }