chart_collect.go 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240
  1. package controllers
  2. import (
  3. "eta/eta_forum_hub/models"
  4. "eta/eta_forum_hub/models/chart_collect"
  5. "eta/eta_forum_hub/services"
  6. "eta/eta_forum_hub/utils"
  7. "github.com/rdlucklib/rdluck_tools/paging"
  8. "strconv"
  9. "strings"
  10. )
  11. // 我的图库
  12. type ChartCollectController struct {
  13. BaseAuthController
  14. }
  15. // ClassifyList
  16. // @Title 收藏-分类列表接口
  17. // @Description 收藏-分类列表接口
  18. // @Success 200 {object} chart_collect.ChartCollectClassifyResp
  19. // @router /classify/list [get]
  20. func (this *ChartCollectController) ClassifyList() {
  21. br := new(models.BaseResponse).Init()
  22. defer func() {
  23. this.Data["json"] = br
  24. this.ServeJSON()
  25. }()
  26. userMobile := this.GetString("UserMobile")
  27. businessCode := this.GetString("BusinessCode")
  28. userTelAreaCode := this.GetString("UserTelAreaCode")
  29. if userMobile == "" {
  30. br.Msg = "请选择用户"
  31. return
  32. }
  33. if businessCode == "" {
  34. br.Msg = "请选择商户"
  35. return
  36. }
  37. // 获取当前的客户信息
  38. sysUser, err := models.GetUserByBusinessCodeAndMobile(businessCode, userMobile, userTelAreaCode)
  39. if err != nil {
  40. if err.Error() == utils.ErrNoRow() {
  41. br.Msg = "用户不存在"
  42. return
  43. }
  44. br.Msg = "获取用户信息失败"
  45. br.ErrMsg = "获取用户信息失败,Err:" + err.Error()
  46. return
  47. }
  48. //获取图表信息
  49. list, err := chart_collect.GetChartCollectClassifyAll(sysUser.UserId)
  50. if err != nil && err.Error() != utils.ErrNoRow() {
  51. br.Msg = "获取分类信息失败"
  52. br.ErrMsg = "获取分类信息失败,Err:" + err.Error()
  53. return
  54. }
  55. resp := new(chart_collect.ChartCollectClassifyResp)
  56. if list == nil || len(list) <= 0 || (err != nil && err.Error() == utils.ErrNoRow()) {
  57. items := make([]*chart_collect.ChartCollectClassifyItem, 0)
  58. resp.List = items
  59. br.Ret = 200
  60. br.Success = true
  61. br.Msg = "获取成功"
  62. br.Data = resp
  63. return
  64. }
  65. results := make([]*chart_collect.ChartCollectClassifyItem, 0)
  66. for _, v := range list {
  67. tmp := new(chart_collect.ChartCollectClassifyItem)
  68. tmp.ClassifyName = v.ClassifyName
  69. tmp.CollectClassifyId = v.CollectClassifyId
  70. tmp.UserId = v.UserId
  71. results = append(results, tmp)
  72. }
  73. resp.List = results
  74. language := `CN`
  75. // 指标显示的语言
  76. /*{
  77. configDetail, _ := system.GetConfigDetailByCode(system.ChartLanguageVar)
  78. if configDetail != nil {
  79. language = configDetail.ConfigValue
  80. } else {
  81. configDetail, _ = system.GetDefaultConfigDetailByCode(system.ChartLanguageVar)
  82. if configDetail != nil {
  83. language = configDetail.ConfigValue
  84. }
  85. }
  86. }*/
  87. resp.Language = language
  88. br.Ret = 200
  89. br.Success = true
  90. br.Msg = "获取成功"
  91. br.Data = resp
  92. }
  93. // ChartList
  94. // @Title 收藏-列表接口
  95. // @Description 收藏-列表接口
  96. // @Param PageSize query int true "每页数据条数"
  97. // @Param CurrentIndex query int true "当前页页码,从1开始"
  98. // @Param ChartCollectClassifyIds query int true "收藏分类id"
  99. // @Success 200 {object} chart_collect.MyChartListResp
  100. // @router /chart/list [get]
  101. func (this *ChartCollectController) ChartList() {
  102. br := new(models.BaseResponse).Init()
  103. defer func() {
  104. this.Data["json"] = br
  105. this.ServeJSON()
  106. }()
  107. collectClassifyIds := this.GetString("CollectClassifyIds")
  108. pageSize, _ := this.GetInt("PageSize")
  109. currentIndex, _ := this.GetInt("CurrentIndex")
  110. keyword := this.GetString("Keyword")
  111. userMobile := this.GetString("UserMobile")
  112. businessCode := this.GetString("BusinessCode")
  113. userTelAreaCode := this.GetString("UserTelAreaCode")
  114. if userMobile == "" {
  115. br.Msg = "请选择用户"
  116. return
  117. }
  118. if businessCode == "" {
  119. br.Msg = "请选择商户"
  120. return
  121. }
  122. // 获取当前的客户信息
  123. sysUser, err := models.GetUserByBusinessCodeAndMobile(businessCode, userMobile, userTelAreaCode)
  124. if err != nil {
  125. if err.Error() == utils.ErrNoRow() {
  126. br.Msg = "用户不存在"
  127. return
  128. }
  129. br.Msg = "获取用户信息失败"
  130. br.ErrMsg = "获取用户信息失败,Err:" + err.Error()
  131. return
  132. }
  133. var total int64
  134. var startSize int
  135. if pageSize <= 0 {
  136. pageSize = utils.PageSize20
  137. }
  138. if currentIndex <= 0 {
  139. currentIndex = 1
  140. }
  141. startSize = paging.StartIndex(currentIndex, pageSize)
  142. var condition string
  143. var pars []interface{}
  144. chartAdminId := sysUser.UserId
  145. if collectClassifyIds != "" {
  146. classifyIds := strings.Split(collectClassifyIds, ",")
  147. if len(classifyIds) == 0 {
  148. br.Msg = "请选择正确的分类"
  149. return
  150. }
  151. classifyIdSlice := make([]int, 0)
  152. for _, id := range classifyIds {
  153. tmp, e := strconv.Atoi(id)
  154. if e != nil {
  155. br.Msg = "请选择正确的分类"
  156. return
  157. }
  158. classifyIdSlice = append(classifyIdSlice, tmp)
  159. }
  160. condition += " AND a.collect_classify_id in (" + utils.GetOrmInReplace(len(classifyIdSlice)) + ") "
  161. pars = append(pars, classifyIdSlice)
  162. }
  163. if keyword != "" {
  164. /*if this.Lang == utils.LANG_EN {
  165. condition += " AND (b.chart_name_en like ?) "
  166. } else {*/
  167. condition += " AND (b.chart_name like ?) "
  168. //}
  169. pars = append(pars, "%"+keyword+"%")
  170. }
  171. condition += " AND (a.user_id = ?)"
  172. pars = append(pars, chartAdminId)
  173. // 获取有权限的分类ID
  174. permissionClassifyIds, err := services.GetPermissionClassifyIdByUserId(sysUser.UserId)
  175. if err != nil {
  176. br.Msg = "获取有权限的分类信息失败"
  177. br.ErrMsg = "获取有权限的分类信息失败,Err:" + err.Error()
  178. return
  179. }
  180. lenPermissionClassifyIds := len(permissionClassifyIds)
  181. if lenPermissionClassifyIds > 0 {
  182. condition += ` AND b.chart_classify_id in (` + utils.GetOrmInReplace(lenPermissionClassifyIds) + `) `
  183. pars = append(pars, permissionClassifyIds)
  184. }
  185. total, err = chart_collect.GetChartCollectCountByCondition(condition, pars)
  186. if err != nil && err.Error() != utils.ErrNoRow() {
  187. br.Msg = "获取信息失败"
  188. br.ErrMsg = "获取收藏数据总数失败,Err:" + err.Error()
  189. return
  190. }
  191. page := paging.GetPaging(currentIndex, pageSize, int(total))
  192. //获取图表信息
  193. list, err := chart_collect.GetChartCollectPageByCondition(condition, pars, startSize, pageSize)
  194. if err != nil && err.Error() != utils.ErrNoRow() {
  195. br.Success = true
  196. br.Msg = "获取图表信息失败"
  197. br.ErrMsg = "获取图表信息失败,Err:" + err.Error()
  198. return
  199. }
  200. resp := new(chart_collect.ChartCollectListResp)
  201. if list == nil || len(list) <= 0 || (err != nil && err.Error() == utils.ErrNoRow()) {
  202. items := make([]*chart_collect.ChartCollectView, 0)
  203. resp.Paging = page
  204. resp.List = items
  205. br.Ret = 200
  206. br.Success = true
  207. br.Data = resp
  208. br.Msg = "获取成功"
  209. return
  210. }
  211. resp.Paging = page
  212. resp.List = list
  213. br.Ret = 200
  214. br.Success = true
  215. br.Msg = "获取成功"
  216. br.Data = resp
  217. }