synthesis.go 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320
  1. package controller
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "github.com/mhaya/game/game_cluster/internal/code"
  5. "github.com/mhaya/game/game_cluster/nodes/webadmin/common"
  6. "github.com/mhaya/game/game_cluster/nodes/webadmin/entity"
  7. "github.com/mhaya/game/game_cluster/nodes/webadmin/service"
  8. )
  9. type Synthesis struct {
  10. nodeId string
  11. sev *service.Synthesis
  12. }
  13. func NewSynthesis(nodeId string) *Synthesis {
  14. return &Synthesis{
  15. nodeId: nodeId,
  16. sev: service.NewSynthesis(nodeId),
  17. }
  18. }
  19. // 统计用户相关信息
  20. func (s *Synthesis) UserList(ctx *gin.Context) {
  21. var req entity.UserListReq
  22. if err := ctx.ShouldBindJSON(&req); err != nil {
  23. common.PackOkResult(ctx, code.ParamError)
  24. return
  25. }
  26. resp, err := s.sev.UserList(req)
  27. if err != nil {
  28. common.PackOkResult(ctx, err.Code)
  29. return
  30. }
  31. common.PackOkResult(ctx, code.OK, resp)
  32. }
  33. // FindUserLogDaily 查询用户日活跃
  34. func (s *Synthesis) FindUserLogDaily(ctx *gin.Context) {
  35. var req entity.UserLogDailyReq
  36. if err := ctx.ShouldBindJSON(&req); err != nil {
  37. common.PackOkResult(ctx, code.ParamError)
  38. return
  39. }
  40. resp, err := s.sev.FindMDBUserLogDaily(req)
  41. if err != nil {
  42. common.PackOkResult(ctx, err.Code)
  43. return
  44. }
  45. common.PackOkResult(ctx, code.OK, resp)
  46. }
  47. // FindUserRetention 查询用户留存
  48. func (s *Synthesis) FindUserRetention(ctx *gin.Context) {
  49. var req entity.UserRetentionReq
  50. if err := ctx.ShouldBindJSON(&req); err != nil {
  51. common.PackOkResult(ctx, code.ParamError)
  52. return
  53. }
  54. resp, err := s.sev.FindUserRetention(req)
  55. if err != nil {
  56. common.PackOkResult(ctx, err.Code)
  57. return
  58. }
  59. common.PackOkResult(ctx, code.OK, resp)
  60. }
  61. // FindUserCountryCount 查询用户国家分布
  62. func (s *Synthesis) FindUserCountryCount(ctx *gin.Context) {
  63. resp, err := s.sev.FindUserCountryCount()
  64. if err != nil {
  65. common.PackOkResult(ctx, err.Code)
  66. return
  67. }
  68. common.PackOkResult(ctx, code.OK, resp)
  69. }
  70. // FindWithdrawal 查询提现记录
  71. func (s *Synthesis) FindWithdrawal(ctx *gin.Context) {
  72. var req entity.UserWithdrawalReq
  73. if err := ctx.ShouldBindJSON(&req); err != nil {
  74. common.PackOkResult(ctx, code.ParamError)
  75. return
  76. }
  77. resp, err := s.sev.FindWithdrawal(req)
  78. if err != nil {
  79. common.PackOkResult(ctx, err.Code)
  80. return
  81. }
  82. common.PackOkResult(ctx, code.OK, resp)
  83. }
  84. // 导出提现记录
  85. func (s *Synthesis) WithdrawalExport(ctx *gin.Context) {
  86. var req entity.UserWithdrawalExportReq
  87. if err := ctx.ShouldBindJSON(&req); err != nil {
  88. common.PackOkResult(ctx, code.ParamError)
  89. return
  90. }
  91. resp, err := s.sev.WithdrawalExport(req)
  92. if err != nil {
  93. common.PackOkResult(ctx, err.Code)
  94. return
  95. }
  96. common.PackOkResult(ctx, code.OK, resp)
  97. }
  98. // WithdrawalStatus 修改提现状态
  99. func (s *Synthesis) WithdrawalStatus(ctx *gin.Context) {
  100. var req entity.UserWithdrawalStatus
  101. if err := ctx.ShouldBindJSON(&req); err != nil {
  102. common.PackOkResult(ctx, code.ParamError)
  103. return
  104. }
  105. err := s.sev.WithdrawalStatus(req)
  106. if err != nil {
  107. common.PackOkResult(ctx, err.Code)
  108. return
  109. }
  110. common.PackOkResult(ctx, code.OK, nil)
  111. }
  112. // WithdrawalStatusBatch 修改提现状态批量
  113. func (s *Synthesis) WithdrawalStatusBatch(ctx *gin.Context) {
  114. var req entity.UserWithdrawalStatusBatch
  115. if err := ctx.ShouldBindJSON(&req); err != nil {
  116. common.PackOkResult(ctx, code.ParamError)
  117. return
  118. }
  119. err := s.sev.WithdrawalStatusBatch(req)
  120. if err != nil {
  121. common.PackOkResult(ctx, err.Code)
  122. return
  123. }
  124. common.PackOkResult(ctx, code.OK, nil)
  125. }
  126. // FindUserLevel 用户等级统计
  127. func (s *Synthesis) FindUserLevel(ctx *gin.Context) {
  128. resp, err := s.sev.FindUserLevel()
  129. if err != nil {
  130. common.PackOkResult(ctx, err.Code)
  131. return
  132. }
  133. common.PackOkResult(ctx, code.OK, resp)
  134. }
  135. // 综合统计
  136. func (s *Synthesis) Overview(ctx *gin.Context) {
  137. var req entity.OverviewReq
  138. if err := ctx.ShouldBindJSON(&req); err != nil {
  139. common.PackOkResult(ctx, code.ParamError)
  140. return
  141. }
  142. resp, err := s.sev.Overview(req)
  143. if err != nil {
  144. common.PackOkResult(ctx, err.Code)
  145. return
  146. }
  147. common.PackOkResult(ctx, code.OK, resp)
  148. }
  149. // 活动统计
  150. func (s *Synthesis) Activity(ctx *gin.Context) {
  151. // TODO Activity 目前没有活动模块
  152. }
  153. // 转盘统计
  154. func (s *Synthesis) Turntable(ctx *gin.Context) {
  155. var req entity.TurntableReq
  156. if err := ctx.ShouldBindJSON(&req); err != nil {
  157. common.PackOkResult(ctx, code.ParamError)
  158. return
  159. }
  160. resp, err := s.sev.Turntable(req)
  161. if err != nil {
  162. common.PackOkResult(ctx, err.Code)
  163. return
  164. }
  165. common.PackOkResult(ctx, code.OK, resp)
  166. }
  167. // 资产统计
  168. func (s *Synthesis) Assets(ctx *gin.Context) {
  169. var req entity.AssetsReq
  170. if err := ctx.ShouldBindJSON(&req); err != nil {
  171. common.PackOkResult(ctx, code.ParamError)
  172. return
  173. }
  174. resp, err := s.sev.Assets(req)
  175. if err != nil {
  176. common.PackOkResult(ctx, err.Code)
  177. return
  178. }
  179. common.PackOkResult(ctx, code.OK, resp)
  180. }
  181. // 资产变动记录
  182. func (s *Synthesis) AssetsRecord(ctx *gin.Context) {
  183. var req entity.AssetsRecordReq
  184. if err := ctx.ShouldBindJSON(&req); err != nil {
  185. common.PackOkResult(ctx, code.ParamError)
  186. return
  187. }
  188. resp, err := s.sev.AssetsRecord(req)
  189. if err != nil {
  190. common.PackOkResult(ctx, err.Code)
  191. return
  192. }
  193. common.PackOkResult(ctx, code.OK, resp)
  194. }
  195. // 邀请统计
  196. func (s *Synthesis) Invite(ctx *gin.Context) {
  197. var req entity.InviteReq
  198. if err := ctx.ShouldBindJSON(&req); err != nil {
  199. common.PackOkResult(ctx, code.ParamError)
  200. return
  201. }
  202. resp, err := s.sev.Invite(req)
  203. if err != nil {
  204. common.PackOkResult(ctx, err.Code)
  205. return
  206. }
  207. common.PackOkResult(ctx, code.OK, resp)
  208. }
  209. // 活跃统计
  210. func (s *Synthesis) Active(ctx *gin.Context) {
  211. var req entity.ActiveReq
  212. if err := ctx.ShouldBindJSON(&req); err != nil {
  213. common.PackOkResult(ctx, code.ParamError)
  214. return
  215. }
  216. resp, err := s.sev.Active(req)
  217. if err != nil {
  218. common.PackOkResult(ctx, err.Code)
  219. return
  220. }
  221. common.PackOkResult(ctx, code.OK, resp)
  222. }
  223. // 后台操作记录
  224. func (s *Synthesis) Records(ctx *gin.Context) {
  225. var req entity.RecordListReq
  226. if err := ctx.ShouldBindJSON(&req); err != nil {
  227. common.PackOkResult(ctx, code.ParamError)
  228. return
  229. }
  230. resp, err := s.sev.RecordList(req)
  231. if err != nil {
  232. common.PackOkResult(ctx, err.Code)
  233. return
  234. }
  235. common.PackOkResult(ctx, code.OK, resp)
  236. }
  237. // 用户行为检测
  238. func (s *Synthesis) BehaviorMonitoring(ctx *gin.Context) {
  239. var req entity.BehaviorMonitoringReq
  240. if err := ctx.ShouldBindJSON(&req); err != nil {
  241. common.PackOkResult(ctx, code.ParamError)
  242. return
  243. }
  244. resp, err := s.sev.BehaviorMonitoring(req)
  245. if err != nil {
  246. common.PackOkResult(ctx, err.Code)
  247. return
  248. }
  249. common.PackOkResult(ctx, code.OK, resp)
  250. }
  251. // 任务完成度统计
  252. func (s *Synthesis) TaskCompletion(ctx *gin.Context) {
  253. var req entity.TaskCompletionReq
  254. if err := ctx.ShouldBindJSON(&req); err != nil {
  255. common.PackOkResult(ctx, code.ParamError)
  256. return
  257. }
  258. resp, err := s.sev.TaskCompletion(req)
  259. if err != nil {
  260. common.PackOkResult(ctx, err.Code)
  261. return
  262. }
  263. common.PackOkResult(ctx, code.OK, resp)
  264. }