config.go 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344
  1. package controllers
  2. import (
  3. "encoding/json"
  4. "hongze/hongze_cygx/models"
  5. "hongze/hongze_cygx/services"
  6. "hongze/hongze_cygx/utils"
  7. "strings"
  8. "time"
  9. )
  10. type ConfigController struct {
  11. BaseAuthController
  12. }
  13. type BaseConfigController struct {
  14. BaseCommonController
  15. }
  16. // @Title 获取搜索推荐词
  17. // @Description 获取搜索推荐词
  18. // @Success 200 {object} models.ConfigResp
  19. // @router /detail [get]
  20. func (this *ConfigController) BrowseHistoryList() {
  21. br := new(models.BaseResponse).Init()
  22. defer func() {
  23. this.Data["json"] = br
  24. this.ServeJSON()
  25. }()
  26. resp := new(models.ConfigResp)
  27. detail := new(models.CygxConfig)
  28. //configCode := "hot_search"
  29. //detail, err := models.GetConfigByCode(configCode)
  30. hotSearch, err := models.GetHotSearch()
  31. if err != nil {
  32. br.Msg = "获取数据失败"
  33. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  34. return
  35. }
  36. hotSearch = strings.Replace(hotSearch, "/", ",", -1)
  37. chartList, err := models.GetChartListConfig()
  38. if err != nil {
  39. br.Msg = "获取信息失败"
  40. br.ErrMsg = "获取用户信息失败,Err:" + err.Error()
  41. return
  42. }
  43. for _, v := range chartList {
  44. item := new(models.KeyWord)
  45. item.KeyWord = v.Title
  46. resp.List = append(resp.List, item)
  47. }
  48. var condition string
  49. var pars []interface{}
  50. starTime := time.Now().AddDate(0, 0, -8).Format(utils.FormatDate)
  51. endTime := time.Now().Format(utils.FormatDate)
  52. condition += ` AND create_time > ? AND create_time < ? AND user_id > 0 `
  53. pars = append(pars, starTime, endTime)
  54. hotList, err := models.GetSearchKeyWordTop(condition, pars)
  55. if err != nil {
  56. br.Msg = "获取信息失败"
  57. br.ErrMsg = "获取用户信息失败,Err:" + err.Error()
  58. return
  59. }
  60. for _, v := range hotList {
  61. item := new(models.KeyWord)
  62. item.KeyWord = v.KeyWord
  63. resp.ListHot = append(resp.ListHot, item)
  64. }
  65. detail.ConfigValue = hotSearch
  66. resp.Item = detail
  67. br.Msg = "获取成功!"
  68. br.Ret = 200
  69. br.Success = true
  70. br.Data = resp
  71. }
  72. // @Title 页面访问统计
  73. // @Description 上传页面访问统计
  74. // @Param request body models.CygxPageHistoryRecordRep true "type json string"
  75. // @Success Ret=200 新增成功
  76. // @router /pageHistory [post]
  77. func (this *ConfigController) PageHistory() {
  78. br := new(models.BaseResponse).Init()
  79. defer func() {
  80. this.Data["json"] = br
  81. this.ServeJSON()
  82. }()
  83. user := this.User
  84. if user == nil {
  85. br.Msg = "请登录"
  86. br.ErrMsg = "请登录,SysUser Is Empty"
  87. br.Ret = 408
  88. return
  89. }
  90. var req models.CygxPageHistoryRecordRep
  91. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  92. if err != nil {
  93. br.Msg = "参数解析异常!"
  94. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  95. return
  96. }
  97. pageType := req.PageType
  98. var havePageType bool
  99. PageType := []string{"Summary", "SummarySearch", "Report", "ReportSearch", "IndustryList", "Activit", "ActivitSearch", "ActivitParticulars", "ReportParticulars", "MySchedule", "LabelMore", "ArticleCopy"}
  100. for _, v := range PageType {
  101. if pageType == v {
  102. havePageType = true
  103. }
  104. }
  105. if !havePageType {
  106. br.Msg = "新增失败"
  107. br.ErrMsg = "PageType参数类型错误:" + pageType
  108. return
  109. }
  110. item := new(models.CygxPageHistoryRecord)
  111. item.UserId = user.UserId
  112. item.CreateTime = time.Now()
  113. item.Mobile = user.Mobile
  114. item.Email = user.Email
  115. item.CompanyId = user.CompanyId
  116. item.CompanyName = user.CompanyName
  117. item.DetailId = req.DetailId
  118. item.ChartPermissionId = req.ChartPermissionId
  119. item.IndustrialManagementId = req.IndustrialManagementId
  120. item.PageType = req.PageType
  121. _, err = models.AddCygxPageHistoryRecord(item)
  122. if err != nil {
  123. br.Msg = "新增访问记录失败"
  124. br.ErrMsg = "新增访问记录失败,Err:" + err.Error()
  125. return
  126. }
  127. br.Ret = 200
  128. br.Success = true
  129. br.Msg = "新增成功"
  130. }
  131. // @Title 获取研选说明
  132. // @Description 获取研选说明接口
  133. // @Success 200 {object} models.ConfigResp
  134. // @router /descriptionOfResearch [get]
  135. func (this *ConfigController) DescriptionOfResearch() {
  136. br := new(models.BaseResponse).Init()
  137. defer func() {
  138. this.Data["json"] = br
  139. this.ServeJSON()
  140. }()
  141. configCode := "description_of_research"
  142. detail, err := models.GetConfigByCode(configCode)
  143. if err != nil {
  144. br.Msg = "获取数据失败"
  145. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  146. return
  147. }
  148. resp := new(models.ConfigResp)
  149. resp.Item = detail
  150. br.Msg = "获取成功!"
  151. br.Ret = 200
  152. br.Success = true
  153. br.Data = resp
  154. }
  155. // @Title 获取搜索推荐词(无需token)
  156. // @Description 获取搜索推荐词(无需token)
  157. // @Success 200 {object} models.ConfigResp
  158. // @router /detailPublic [get]
  159. func (this *BaseConfigController) HotDetail() {
  160. br := new(models.BaseResponse).Init()
  161. defer func() {
  162. this.Data["json"] = br
  163. this.ServeJSON()
  164. }()
  165. detail := new(models.CygxConfig)
  166. hotSearch, err := models.GetHotSearch()
  167. if err != nil {
  168. br.Msg = "获取数据失败"
  169. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  170. return
  171. }
  172. detail.ConfigValue = hotSearch
  173. resp := new(models.ConfigResp)
  174. resp.Item = detail
  175. br.Msg = "获取成功!"
  176. br.Ret = 200
  177. br.Success = true
  178. br.Data = resp
  179. }
  180. // @Title 用户搜索记录统计
  181. // @Description 用户搜索记录统计
  182. // @Param KeyWord query string false "搜索关键词"
  183. // @Success Ret=200 新增成功
  184. // @router /user/search/keyWordLog [post]
  185. func (this *ConfigController) KeyWordLog() {
  186. br := new(models.BaseResponse).Init()
  187. defer func() {
  188. this.Data["json"] = br
  189. this.ServeJSON()
  190. }()
  191. var req models.CygxSearchKeyWordLogRep
  192. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  193. if err != nil {
  194. br.Msg = "参数解析异常!"
  195. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  196. return
  197. }
  198. keyWord := req.KeyWord
  199. if keyWord == "" {
  200. br.Msg = "搜索内容不能为空"
  201. return
  202. }
  203. user := this.User
  204. if user == nil {
  205. br.Msg = "请登录"
  206. br.ErrMsg = "请登录,SysUser Is Empty"
  207. br.Ret = 408
  208. return
  209. }
  210. if keyWord != "" {
  211. go services.AddUserSearchLog(user, keyWord, 1)
  212. }
  213. br.Ret = 200
  214. br.Success = true
  215. br.Msg = "新增成功"
  216. }
  217. // @Title 关于我们浏览记录
  218. // @Description 关于我们浏览记录接口
  219. // @Success 200
  220. // @router /aboutUs/addHistory [post]
  221. func (this *ConfigController) AboutUsAdd() {
  222. br := new(models.BaseResponse).Init()
  223. defer func() {
  224. this.Data["json"] = br
  225. this.ServeJSON()
  226. }()
  227. user := this.User
  228. if user == nil {
  229. br.Msg = "请重新登录"
  230. br.Ret = 408
  231. return
  232. }
  233. go services.AddCygxAboutUsVideoHistory(user)
  234. br.Ret = 200
  235. br.Success = true
  236. br.Msg = "操作成功!"
  237. }
  238. // @Title 买方研选产品介绍(无需token)
  239. // @Description 买方研选产品介绍接口(无需token)
  240. // @Success 200 {object} models.ConfigImgListResp
  241. // @router /research/introduce [get]
  242. func (this *BaseConfigController) ResearchIntroduce() {
  243. br := new(models.BaseResponse).Init()
  244. defer func() {
  245. this.Data["json"] = br
  246. this.ServeJSON()
  247. }()
  248. conf, err := models.GetConfigByCode("research_introduce_img_url")
  249. if err != nil {
  250. br.Msg = "获取数据失败"
  251. br.ErrMsg = "买方研选产品介绍信息失败,Err:" + err.Error()
  252. return
  253. }
  254. if conf.ConfigValue == "" {
  255. br.Msg = "获取失败"
  256. br.ErrMsg = "买方研选产品介绍信息失败"
  257. return
  258. }
  259. list := new(*models.ConfigImgListResp)
  260. if err = json.Unmarshal([]byte(conf.ConfigValue), &list); err != nil {
  261. br.Msg = "获取失败"
  262. br.ErrMsg = "买方研选产品介绍信配置值解析失败, Err: " + err.Error()
  263. return
  264. }
  265. br.Msg = "获取成功!"
  266. br.Ret = 200
  267. br.Success = true
  268. br.Data = list
  269. }
  270. // @Title 买方研选报价单(无需token)
  271. // @Description 买方研选报价单(无需token)
  272. // @Success 200 {object} models.ConfigImgListResp
  273. // @router /research/quotation [get]
  274. func (this *BaseConfigController) ResearchQuotation() {
  275. br := new(models.BaseResponse).Init()
  276. defer func() {
  277. this.Data["json"] = br
  278. this.ServeJSON()
  279. }()
  280. conf, err := models.GetConfigByCode("research_quotation_img_url")
  281. if err != nil {
  282. br.Msg = "获取数据失败"
  283. br.ErrMsg = "买方研选产品介绍信息失败,Err:" + err.Error()
  284. return
  285. }
  286. if conf.ConfigValue == "" {
  287. br.Msg = "获取失败"
  288. br.ErrMsg = "买方研选产品介绍信息失败"
  289. return
  290. }
  291. list := new(*models.ConfigImgListResp)
  292. if err = json.Unmarshal([]byte(conf.ConfigValue), &list); err != nil {
  293. br.Msg = "获取失败"
  294. br.ErrMsg = "买方研选产品介绍信配置值解析失败, Err: " + err.Error()
  295. return
  296. }
  297. br.Msg = "获取成功!"
  298. br.Ret = 200
  299. br.Success = true
  300. br.Data = list
  301. }
  302. // @Title 买方研选升级新资源海报(无需token)
  303. // @Description 买方研选升级新资源海报(无需token)
  304. // @Success 200 {object} models.ConfigImgListResp
  305. // @router /research/hb [get]
  306. func (this *BaseConfigController) ResearchHb() {
  307. br := new(models.BaseResponse).Init()
  308. defer func() {
  309. this.Data["json"] = br
  310. this.ServeJSON()
  311. }()
  312. detail, err := models.GetConfigByCode("research_hb_img_url")
  313. if err != nil {
  314. br.Msg = "获取数据失败"
  315. br.ErrMsg = "买方研选升级新资源海报信息失败,Err:" + err.Error()
  316. return
  317. }
  318. resp := new(models.ConfigImgHbResp)
  319. list := strings.Split(detail.ConfigValue, "{|}")
  320. if len(list) == 0 {
  321. list = make([]string, 0)
  322. }
  323. resp.HbImg = list[0]
  324. resp.ButtonImg = list[len(list)-1]
  325. br.Msg = "获取成功!"
  326. br.Ret = 200
  327. br.Success = true
  328. br.Data = resp
  329. }