dt_system.go 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444
  1. package daytask
  2. import (
  3. model "go_server/model/biz_modules/daytask"
  4. "go_server/model/common/response"
  5. "go_server/service/base"
  6. "github.com/gin-gonic/gin"
  7. )
  8. // DtAdminService 管理员服务
  9. type DtAdminService struct {
  10. base.BizCommonService
  11. }
  12. func (s *DtAdminService) Get(c *gin.Context) {
  13. s.SetDbAlias("daytask")
  14. base.NewBaseHandler(model.NewDtAdmin()).Get(c, s.DB())
  15. }
  16. func (s *DtAdminService) Find(c *gin.Context) {
  17. s.SetDbAlias("daytask")
  18. type request[T any] struct {
  19. base.ListRequest[T]
  20. Id *int64 `form:"id"`
  21. Username *string `form:"username"`
  22. Nickname *string `form:"nickname"`
  23. RoleId *int64 `form:"roleId"`
  24. Status *int8 `form:"status"`
  25. }
  26. req := new(request[model.DtAdmin])
  27. if err := c.BindQuery(req); err != nil {
  28. response.Resp(c, err.Error())
  29. return
  30. }
  31. db := s.DB()
  32. if req.Id != nil && *req.Id != 0 {
  33. db = db.Where("id", req.Id)
  34. }
  35. if req.Username != nil && *req.Username != "" {
  36. db = db.Where("username LIKE ?", "%"+*req.Username+"%")
  37. }
  38. if req.Nickname != nil && *req.Nickname != "" {
  39. db = db.Where("nickname LIKE ?", "%"+*req.Nickname+"%")
  40. }
  41. if req.RoleId != nil && *req.RoleId != 0 {
  42. db = db.Where("role_id", req.RoleId)
  43. }
  44. if req.Status != nil {
  45. db = db.Where("status", req.Status)
  46. }
  47. colInfo := s.GetColumnCommentFromStruct(model.DtAdmin{})
  48. resp, err := base.NewQueryBaseHandler(model.NewDtAdmin()).List(db, req)
  49. if err != nil {
  50. response.Resp(c, err.Error())
  51. return
  52. }
  53. response.Resp(c, map[string]interface{}{
  54. "cols": colInfo,
  55. "list": resp.List,
  56. "paging": resp.Paging,
  57. })
  58. }
  59. func (s *DtAdminService) Create(c *gin.Context) {
  60. s.SetDbAlias("daytask")
  61. base.NewBaseHandler(model.NewDtAdmin()).Create(c, s.DB())
  62. }
  63. func (s *DtAdminService) Update(c *gin.Context) {
  64. s.SetDbAlias("daytask")
  65. base.NewBaseHandler(model.NewDtAdmin()).UpdateOne(c, s.DB())
  66. }
  67. func (s *DtAdminService) Delete(c *gin.Context) {
  68. s.SetDbAlias("daytask")
  69. base.NewBaseHandler(model.NewDtAdmin()).DeleteOne(c, s.DB())
  70. }
  71. // DtRoleService 角色服务
  72. type DtRoleService struct {
  73. base.BizCommonService
  74. }
  75. func (s *DtRoleService) Get(c *gin.Context) {
  76. s.SetDbAlias("daytask")
  77. base.NewBaseHandler(model.NewDtRole()).Get(c, s.DB())
  78. }
  79. func (s *DtRoleService) Find(c *gin.Context) {
  80. s.SetDbAlias("daytask")
  81. type request[T any] struct {
  82. base.ListRequest[T]
  83. Id *int64 `form:"id"`
  84. Name *string `form:"name"`
  85. Code *string `form:"code"`
  86. Status *int8 `form:"status"`
  87. }
  88. req := new(request[model.DtRole])
  89. if err := c.BindQuery(req); err != nil {
  90. response.Resp(c, err.Error())
  91. return
  92. }
  93. db := s.DB()
  94. if req.Id != nil && *req.Id != 0 {
  95. db = db.Where("id", req.Id)
  96. }
  97. if req.Name != nil && *req.Name != "" {
  98. db = db.Where("name LIKE ?", "%"+*req.Name+"%")
  99. }
  100. if req.Code != nil && *req.Code != "" {
  101. db = db.Where("code", req.Code)
  102. }
  103. if req.Status != nil {
  104. db = db.Where("status", req.Status)
  105. }
  106. db = db.Order("sort ASC")
  107. colInfo := s.GetColumnCommentFromStruct(model.DtRole{})
  108. resp, err := base.NewQueryBaseHandler(model.NewDtRole()).List(db, req)
  109. if err != nil {
  110. response.Resp(c, err.Error())
  111. return
  112. }
  113. response.Resp(c, map[string]interface{}{
  114. "cols": colInfo,
  115. "list": resp.List,
  116. "paging": resp.Paging,
  117. })
  118. }
  119. func (s *DtRoleService) Create(c *gin.Context) {
  120. s.SetDbAlias("daytask")
  121. base.NewBaseHandler(model.NewDtRole()).Create(c, s.DB())
  122. }
  123. func (s *DtRoleService) Update(c *gin.Context) {
  124. s.SetDbAlias("daytask")
  125. base.NewBaseHandler(model.NewDtRole()).UpdateOne(c, s.DB())
  126. }
  127. func (s *DtRoleService) Delete(c *gin.Context) {
  128. s.SetDbAlias("daytask")
  129. base.NewBaseHandler(model.NewDtRole()).DeleteOne(c, s.DB())
  130. }
  131. // DtMenuService 菜单服务
  132. type DtMenuService struct {
  133. base.BizCommonService
  134. }
  135. func (s *DtMenuService) Get(c *gin.Context) {
  136. s.SetDbAlias("daytask")
  137. base.NewBaseHandler(model.NewDtMenu()).Get(c, s.DB())
  138. }
  139. func (s *DtMenuService) Find(c *gin.Context) {
  140. s.SetDbAlias("daytask")
  141. type request[T any] struct {
  142. base.ListRequest[T]
  143. Id *int64 `form:"id"`
  144. ParentId *int64 `form:"parentId"`
  145. Name *string `form:"name"`
  146. Type *int8 `form:"type"`
  147. Status *int8 `form:"status"`
  148. }
  149. req := new(request[model.DtMenu])
  150. if err := c.BindQuery(req); err != nil {
  151. response.Resp(c, err.Error())
  152. return
  153. }
  154. db := s.DB()
  155. if req.Id != nil && *req.Id != 0 {
  156. db = db.Where("id", req.Id)
  157. }
  158. if req.ParentId != nil {
  159. db = db.Where("parent_id", req.ParentId)
  160. }
  161. if req.Name != nil && *req.Name != "" {
  162. db = db.Where("name LIKE ?", "%"+*req.Name+"%")
  163. }
  164. if req.Type != nil {
  165. db = db.Where("type", req.Type)
  166. }
  167. if req.Status != nil {
  168. db = db.Where("status", req.Status)
  169. }
  170. db = db.Order("sort ASC")
  171. colInfo := s.GetColumnCommentFromStruct(model.DtMenu{})
  172. resp, err := base.NewQueryBaseHandler(model.NewDtMenu()).List(db, req)
  173. if err != nil {
  174. response.Resp(c, err.Error())
  175. return
  176. }
  177. response.Resp(c, map[string]interface{}{
  178. "cols": colInfo,
  179. "list": resp.List,
  180. "paging": resp.Paging,
  181. })
  182. }
  183. func (s *DtMenuService) Create(c *gin.Context) {
  184. s.SetDbAlias("daytask")
  185. base.NewBaseHandler(model.NewDtMenu()).Create(c, s.DB())
  186. }
  187. func (s *DtMenuService) Update(c *gin.Context) {
  188. s.SetDbAlias("daytask")
  189. base.NewBaseHandler(model.NewDtMenu()).UpdateOne(c, s.DB())
  190. }
  191. func (s *DtMenuService) Delete(c *gin.Context) {
  192. s.SetDbAlias("daytask")
  193. base.NewBaseHandler(model.NewDtMenu()).DeleteOne(c, s.DB())
  194. }
  195. // DtConfigService 系统配置服务
  196. type DtConfigService struct {
  197. base.BizCommonService
  198. }
  199. func (s *DtConfigService) Get(c *gin.Context) {
  200. s.SetDbAlias("daytask")
  201. base.NewBaseHandler(model.NewDtConfig()).Get(c, s.DB())
  202. }
  203. func (s *DtConfigService) Find(c *gin.Context) {
  204. s.SetDbAlias("daytask")
  205. type request[T any] struct {
  206. base.ListRequest[T]
  207. Id *int64 `form:"id"`
  208. Group *string `form:"group"`
  209. Key *string `form:"key"`
  210. Name *string `form:"name"`
  211. Status *int8 `form:"status"`
  212. }
  213. req := new(request[model.DtConfig])
  214. if err := c.BindQuery(req); err != nil {
  215. response.Resp(c, err.Error())
  216. return
  217. }
  218. db := s.DB()
  219. if req.Id != nil && *req.Id != 0 {
  220. db = db.Where("id", req.Id)
  221. }
  222. if req.Group != nil && *req.Group != "" {
  223. db = db.Where("`group`", req.Group)
  224. }
  225. if req.Key != nil && *req.Key != "" {
  226. db = db.Where("`key`", req.Key)
  227. }
  228. if req.Name != nil && *req.Name != "" {
  229. db = db.Where("name LIKE ?", "%"+*req.Name+"%")
  230. }
  231. if req.Status != nil {
  232. db = db.Where("status", req.Status)
  233. }
  234. colInfo := s.GetColumnCommentFromStruct(model.DtConfig{})
  235. resp, err := base.NewQueryBaseHandler(model.NewDtConfig()).List(db, req)
  236. if err != nil {
  237. response.Resp(c, err.Error())
  238. return
  239. }
  240. response.Resp(c, map[string]interface{}{
  241. "cols": colInfo,
  242. "list": resp.List,
  243. "paging": resp.Paging,
  244. })
  245. }
  246. func (s *DtConfigService) Create(c *gin.Context) {
  247. s.SetDbAlias("daytask")
  248. base.NewBaseHandler(model.NewDtConfig()).Create(c, s.DB())
  249. }
  250. func (s *DtConfigService) Update(c *gin.Context) {
  251. s.SetDbAlias("daytask")
  252. var req model.DtConfig
  253. if err := c.ShouldBindJSON(&req); err != nil {
  254. response.Resp(c, err.Error())
  255. return
  256. }
  257. if req.Id == 0 {
  258. response.Resp(c, "id is zero")
  259. return
  260. }
  261. var existing model.DtConfig
  262. if err := s.DB().First(&existing, req.Id).Error; err != nil {
  263. response.Resp(c, err.Error())
  264. return
  265. }
  266. dbEx := s.DB().Model(&existing).Updates(map[string]interface{}{
  267. "group": req.Group,
  268. "key": req.Key,
  269. "value": req.Value,
  270. "type": req.Type,
  271. "name": req.Name,
  272. "description": req.Description,
  273. "status": req.Status,
  274. "sort": req.Sort,
  275. })
  276. if dbEx.Error != nil {
  277. response.Resp(c, dbEx.Error.Error())
  278. return
  279. }
  280. if dbEx.RowsAffected == 0 {
  281. response.Resp(c, "update fail")
  282. return
  283. }
  284. if err := s.DB().First(&existing, req.Id).Error; err != nil {
  285. response.Resp(c, err.Error())
  286. return
  287. }
  288. response.Resp(c, map[string]any{
  289. "info": existing,
  290. "rowsAffected": dbEx.RowsAffected,
  291. })
  292. }
  293. func (s *DtConfigService) Delete(c *gin.Context) {
  294. s.SetDbAlias("daytask")
  295. base.NewBaseHandler(model.NewDtConfig()).DeleteOne(c, s.DB())
  296. }
  297. // GetByGroup 按分组获取配置
  298. func (s *DtConfigService) GetByGroup(c *gin.Context) {
  299. s.SetDbAlias("daytask")
  300. group := c.Query("group")
  301. if group == "" {
  302. response.Resp(c, "分组不能为空")
  303. return
  304. }
  305. var configs []model.DtConfig
  306. err := s.DB().Where("`group` = ?", group).Order("sort ASC").Find(&configs).Error
  307. if err != nil {
  308. response.Resp(c, err.Error())
  309. return
  310. }
  311. response.Resp(c, configs)
  312. }
  313. // DtOperationLogService 操作日志服务
  314. type DtOperationLogService struct {
  315. base.BizCommonService
  316. }
  317. func (s *DtOperationLogService) Get(c *gin.Context) {
  318. s.SetDbAlias("daytask")
  319. base.NewBaseHandler(model.NewDtOperationLog()).Get(c, s.DB())
  320. }
  321. func (s *DtOperationLogService) Find(c *gin.Context) {
  322. s.SetDbAlias("daytask")
  323. type request[T any] struct {
  324. base.ListRequest[T]
  325. AdminId *int64 `form:"adminId"`
  326. AdminName *string `form:"adminName"`
  327. Module *string `form:"module"`
  328. Action *string `form:"action"`
  329. Status *int8 `form:"status"`
  330. BeginTime *int64 `form:"beginTime"`
  331. EndTime *int64 `form:"endTime"`
  332. }
  333. req := new(request[model.DtOperationLog])
  334. if err := c.BindQuery(req); err != nil {
  335. response.Resp(c, err.Error())
  336. return
  337. }
  338. db := s.DB()
  339. if req.AdminId != nil && *req.AdminId != 0 {
  340. db = db.Where("admin_id", req.AdminId)
  341. }
  342. if req.AdminName != nil && *req.AdminName != "" {
  343. db = db.Where("admin_name LIKE ?", "%"+*req.AdminName+"%")
  344. }
  345. if req.Module != nil && *req.Module != "" {
  346. db = db.Where("module", req.Module)
  347. }
  348. if req.Action != nil && *req.Action != "" {
  349. db = db.Where("action", req.Action)
  350. }
  351. if req.Status != nil {
  352. db = db.Where("status", req.Status)
  353. }
  354. if req.BeginTime != nil && *req.BeginTime > 0 && req.EndTime != nil && *req.EndTime > 0 {
  355. db = db.Where("created_at BETWEEN ? AND ?", *req.BeginTime, *req.EndTime)
  356. }
  357. colInfo := s.GetColumnCommentFromStruct(model.DtOperationLog{})
  358. resp, err := base.NewQueryBaseHandler(model.NewDtOperationLog()).List(db, req)
  359. if err != nil {
  360. response.Resp(c, err.Error())
  361. return
  362. }
  363. response.Resp(c, map[string]interface{}{
  364. "cols": colInfo,
  365. "list": resp.List,
  366. "paging": resp.Paging,
  367. })
  368. }
  369. // DtDailyStatsService 每日统计服务
  370. type DtDailyStatsService struct {
  371. base.BizCommonService
  372. }
  373. func (s *DtDailyStatsService) Get(c *gin.Context) {
  374. s.SetDbAlias("daytask")
  375. base.NewBaseHandler(model.NewDtDailyStats()).Get(c, s.DB())
  376. }
  377. func (s *DtDailyStatsService) Find(c *gin.Context) {
  378. s.SetDbAlias("daytask")
  379. type request[T any] struct {
  380. base.ListRequest[T]
  381. StartDate *string `form:"startDate"`
  382. EndDate *string `form:"endDate"`
  383. }
  384. req := new(request[model.DtDailyStats])
  385. if err := c.BindQuery(req); err != nil {
  386. response.Resp(c, err.Error())
  387. return
  388. }
  389. db := s.DB()
  390. if req.StartDate != nil && *req.StartDate != "" && req.EndDate != nil && *req.EndDate != "" {
  391. db = db.Where("date BETWEEN ? AND ?", *req.StartDate, *req.EndDate)
  392. }
  393. db = db.Order("date DESC")
  394. colInfo := s.GetColumnCommentFromStruct(model.DtDailyStats{})
  395. resp, err := base.NewQueryBaseHandler(model.NewDtDailyStats()).List(db, req)
  396. if err != nil {
  397. response.Resp(c, err.Error())
  398. return
  399. }
  400. response.Resp(c, map[string]interface{}{
  401. "cols": colInfo,
  402. "list": resp.List,
  403. "paging": resp.Paging,
  404. })
  405. }