my_chart.go 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318
  1. package controllers
  2. import (
  3. "encoding/json"
  4. "eta/eta_mini_api/models"
  5. "eta/eta_mini_api/models/request"
  6. "eta/eta_mini_api/models/response"
  7. "eta/eta_mini_api/services"
  8. "eta/eta_mini_api/utils"
  9. "time"
  10. "github.com/rdlucklib/rdluck_tools/paging"
  11. )
  12. type MyChartController struct {
  13. BaseAuthController
  14. }
  15. // @Title 收藏图表
  16. // @Description 收藏图表
  17. // @Success 200 {object} models.BaseResponse
  18. // @router /collect [post]
  19. func (this *MyChartController) Collect() {
  20. br := new(models.BaseResponse).Init()
  21. defer func() {
  22. this.Data["json"] = br
  23. this.ServeJSON()
  24. }()
  25. var req request.MyChartCollectReq
  26. if err := json.Unmarshal(this.Ctx.Input.RequestBody, &req); err != nil {
  27. br.Msg = "参数解析失败"
  28. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  29. return
  30. }
  31. user := this.User
  32. if user.Status != 2 {
  33. br.Msg = "用户没有权限收藏"
  34. return
  35. }
  36. count, err := models.GetMyChartCount(user.UserId, req.UniqueCode)
  37. if err != nil {
  38. br.Msg = "收藏失败"
  39. br.ErrMsg = "查询收藏数量失败,Err:" + err.Error()
  40. return
  41. }
  42. if count > 0 {
  43. br.Msg = "该图表已收藏,请重新刷新页面"
  44. return
  45. }
  46. myChart := &models.MyChart{
  47. UserId: user.UserId,
  48. UserRealName: user.RealName,
  49. UniqueCode: req.UniqueCode,
  50. ChartImage: req.ChartImage,
  51. ChartName: req.ChartName,
  52. ChartInfoId: req.ChartInfoId,
  53. CreateTime: time.Now(),
  54. ModifyTime: time.Now(),
  55. }
  56. err = myChart.Insert()
  57. if err != nil {
  58. br.Msg = "收藏失败"
  59. br.ErrMsg = "收藏失败,Err:" + err.Error()
  60. return
  61. }
  62. br.Msg = "收藏成功"
  63. br.Success = true
  64. br.Ret = 200
  65. }
  66. // @Title 取消收藏
  67. // @Description 取消收藏
  68. // @Success 200 {object} models.BaseResponse
  69. // @router /collectCancel [post]
  70. func (this *MyChartController) CollectCancel() {
  71. br := new(models.BaseResponse).Init()
  72. defer func() {
  73. this.Data["json"] = br
  74. this.ServeJSON()
  75. }()
  76. var req request.MyChartCollectCancelReq
  77. if err := json.Unmarshal(this.Ctx.Input.RequestBody, &req); err != nil {
  78. br.Msg = "参数解析失败"
  79. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  80. return
  81. }
  82. user := this.User
  83. if user.Status != 2 {
  84. br.Msg = "用户没有权限收藏"
  85. return
  86. }
  87. count, err := models.GetMyChartCount(user.UserId, req.UniqueCode)
  88. if err != nil {
  89. br.Msg = "取消收藏失败"
  90. br.ErrMsg = "获取收藏信息失败,Err:" + err.Error()
  91. return
  92. }
  93. if count == 0 {
  94. br.Msg = "该图表已取消收藏,请重新刷新页面"
  95. return
  96. }
  97. err = models.DeleteMyChart(user.UserId, req.UniqueCode)
  98. if err != nil {
  99. br.Msg = "取消收藏失败"
  100. br.ErrMsg = "取消收藏失败,Err:" + err.Error()
  101. return
  102. }
  103. br.Msg = "取消收藏成功"
  104. br.Success = true
  105. br.Ret = 200
  106. }
  107. // @Title List
  108. // @Description create users
  109. // @Param PageSize query int true "每页数据条数"
  110. // @Param CurrentIndex query int true "当前页页码,从1开始"
  111. // @Success 200 {object} models.BaseResponse
  112. // @router /list [get]
  113. func (this *MyChartController) List() {
  114. br := new(models.BaseResponse).Init()
  115. defer func() {
  116. this.Data["json"] = br
  117. this.ServeJSON()
  118. }()
  119. pageSize, _ := this.GetInt("PageSize")
  120. currentIndex, _ := this.GetInt("CurrentIndex")
  121. if pageSize <= 0 {
  122. pageSize = 30
  123. }
  124. if currentIndex <= 0 {
  125. currentIndex = 1
  126. }
  127. user := this.User
  128. if user.Status != 2 {
  129. br.Msg = "用户没有收藏权限"
  130. return
  131. }
  132. total, err := models.GetMyChartListCountById(user.UserId)
  133. if err != nil {
  134. br.Msg = "查询收藏数量失败"
  135. br.ErrMsg = "查询收藏数量失败,Err:" + err.Error()
  136. return
  137. }
  138. resp := new(response.MyChartListResp)
  139. startSize := utils.StartIndex(currentIndex, pageSize)
  140. items, err := models.GetMyChartListById(user.UserId, startSize, pageSize)
  141. if err != nil {
  142. br.Msg = "查询收藏失败"
  143. br.ErrMsg = "查询收藏失败,Err:" + err.Error()
  144. return
  145. }
  146. page := paging.GetPaging(currentIndex, pageSize, total)
  147. resp.List = items
  148. resp.Paging = page
  149. br.Data = resp
  150. br.Msg = "查询成功"
  151. br.Success = true
  152. br.Ret = 200
  153. }
  154. // @Title Locate
  155. // @Description create users
  156. // @Param PageSize query int true "每页数据条数"
  157. // @Param CurrentIndex query int true "当前页页码,从1开始"
  158. // @Success 200 {object} models.BaseResponse
  159. // @router /locate [get]
  160. func (this *MyChartController) Locate() {
  161. br := new(models.BaseResponse).Init()
  162. defer func() {
  163. this.Data["json"] = br
  164. this.ServeJSON()
  165. }()
  166. user := this.User
  167. total, err := models.GetMyChartListCountById(user.UserId)
  168. if err != nil {
  169. br.Msg = "查询收藏数量失败"
  170. br.ErrMsg = "查询收藏数量失败,Err:" + err.Error()
  171. return
  172. }
  173. charts := make([]*response.MyChartLocateItem, 0)
  174. items, err := models.GetMyChartListById(user.UserId, 0, total)
  175. if err != nil {
  176. br.Msg = "查询收藏失败"
  177. br.ErrMsg = "查询收藏失败,Err:" + err.Error()
  178. return
  179. }
  180. for k, v := range items {
  181. var prevChartInfoId, nextChartInfoId int
  182. switch k {
  183. case 0:
  184. prevChartInfoId = -1
  185. if k < total-1 {
  186. nextChartInfoId = items[k+1].ChartInfoId
  187. } else {
  188. nextChartInfoId = -1
  189. }
  190. case total - 1:
  191. nextChartInfoId = -1
  192. if k > 0 {
  193. prevChartInfoId = items[k-1].ChartInfoId
  194. }
  195. default:
  196. prevChartInfoId = items[k-1].ChartInfoId
  197. nextChartInfoId = items[k+1].ChartInfoId
  198. }
  199. tmpChart := &response.MyChartLocateItem{
  200. MyChartId: v.MyChartId,
  201. ChartInfoId: v.ChartInfoId,
  202. ChartName: v.ChartName,
  203. UniqueCode: v.UniqueCode,
  204. PrevChartInfoId: prevChartInfoId,
  205. NextChartInfoId: nextChartInfoId,
  206. }
  207. charts = append(charts, tmpChart)
  208. }
  209. br.Data = charts
  210. br.Msg = "查询成功"
  211. br.Success = true
  212. br.Ret = 200
  213. }
  214. // @Title Detail
  215. // @Description 图表详情
  216. // @Param ChartInfoId query int true "图表详情id"
  217. // @Success 200 {object} models.BaseResponse
  218. // @router /detail [get]
  219. func (this *MyChartController) Detail() {
  220. br := new(models.BaseResponse).Init()
  221. defer func() {
  222. this.Data["json"] = br
  223. this.ServeJSON()
  224. }()
  225. user := this.User
  226. chartInfoId, _ := this.GetInt("ChartInfoId")
  227. if chartInfoId <= 0 {
  228. br.Msg = "图表id错误"
  229. return
  230. }
  231. result, err := services.GetChartDetail(chartInfoId)
  232. if err != nil {
  233. br.Msg = "获取图表详情失败"
  234. br.ErrMsg = "获取图表详情失败,Err:" + err.Error()
  235. return
  236. }
  237. if result.Ret != 200 {
  238. br.Msg = result.Msg
  239. br.ErrMsg = result.ErrMsg
  240. return
  241. }
  242. count, err := models.GetMyChartCount(user.UserId, result.Data.UniqueCode)
  243. if err != nil {
  244. br.Msg = "获取图表详情失败"
  245. br.ErrMsg = "获取图表详情失败,Err:" + err.Error()
  246. }
  247. if count > 0 {
  248. result.Data.IsCollect = true
  249. }
  250. br.Data = result.Data
  251. br.Msg = "查询成功"
  252. br.Success = true
  253. br.Ret = 200
  254. }
  255. // @Title IsCollect
  256. // @Description create users
  257. // @Success 200 {object} models.BaseResponse
  258. // @router /isCollect [post]
  259. func (this *MyChartController) IsCollect() {
  260. br := new(models.BaseResponse).Init()
  261. defer func() {
  262. this.Data["json"] = br
  263. this.ServeJSON()
  264. }()
  265. var req request.MyChartIsCollectReq
  266. if err := json.Unmarshal(this.Ctx.Input.RequestBody, &req); err != nil {
  267. br.Msg = "参数解析失败"
  268. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  269. return
  270. }
  271. user := this.User
  272. if user.Status != 2 {
  273. br.Msg = "用户没有权限收藏"
  274. return
  275. }
  276. count, err := models.GetMyChartCount(user.UserId, req.UniqueCode)
  277. if err != nil {
  278. br.Msg = "查询收藏数量失败"
  279. br.ErrMsg = "查询收藏数量失败,Err:" + err.Error()
  280. return
  281. }
  282. resp := new(response.MyChartIsCollectResp)
  283. if count > 0 {
  284. resp.IsCollect = true
  285. } else {
  286. resp.IsCollect = false
  287. }
  288. br.Data = resp
  289. br.Msg = "查询成功"
  290. br.Success = true
  291. br.Ret = 200
  292. }