ice_raft.go 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514
  1. package controller
  2. import (
  3. "cold-delivery/app/admin/model"
  4. "cold-delivery/app/admin/service"
  5. "cold-delivery/app/admin/service/dto"
  6. "cold-delivery/common/actions"
  7. "encoding/json"
  8. "fmt"
  9. "github.com/gin-gonic/gin"
  10. "github.com/gin-gonic/gin/binding"
  11. "gogs.baozhida.cn/zoie/OAuth-core/api"
  12. "gogs.baozhida.cn/zoie/OAuth-core/pkg/jwtauth/user"
  13. _ "gogs.baozhida.cn/zoie/OAuth-core/pkg/response"
  14. "time"
  15. )
  16. type IceRaftController struct {
  17. api.Api
  18. }
  19. // GetPage 获取冰排列表
  20. // @Summary 获取冰排列表
  21. // @Description 获取冰排列表
  22. // @Tags 冰排
  23. // @Param name query string false "冰排名称"
  24. // @Param pageSize query int false "页条数"
  25. // @Param page query int false "页码"
  26. // @Success 200 {object} response.Response{data=response.Page{list=[]model.IceRaft}} "{"code": 200, "data": [...]}"
  27. // @Router /api/ice-raft [get]
  28. // @Security Bearer
  29. func (e IceRaftController) GetPage(c *gin.Context) {
  30. s := service.IceRaft{}
  31. req := dto.IceRaftGetPageReq{}
  32. err := e.MakeContext(c).
  33. MakeOrm().
  34. Bind(&req, binding.Query).
  35. MakeService(&s.Service).
  36. Errors
  37. if err != nil {
  38. e.Logger.Error(err)
  39. e.Error(500, err, err.Error())
  40. return
  41. }
  42. //数据权限检查
  43. p := actions.GetPermissionFromContext(c)
  44. list := make([]model.IceRaft, 0)
  45. var count int64
  46. err = s.GetPage(&req, &list, &count, p)
  47. if err != nil {
  48. e.Error(500, err, err.Error())
  49. return
  50. }
  51. e.PageOK(list, int(count), req.GetPageIndex(), req.GetPageSize(), "查询成功")
  52. }
  53. func (e IceRaftController) GetPageByCoolerBoxId(c *gin.Context) {
  54. s := service.IceRaft{}
  55. req := dto.GetPageByCoolerBoxIdReq{}
  56. err := e.MakeContext(c).
  57. MakeOrm().
  58. Bind(&req, binding.Query).
  59. MakeService(&s.Service).
  60. Errors
  61. if err != nil {
  62. e.Logger.Error(err)
  63. e.Error(500, err, err.Error())
  64. return
  65. }
  66. //数据权限检查
  67. p := actions.GetPermissionFromContext(c)
  68. list := make([]string, 0)
  69. err = s.GetPageByCoolerBoxId(req.CoolerBoxId, &list, p)
  70. if err != nil {
  71. e.Error(500, err, err.Error())
  72. return
  73. }
  74. e.OK(list, "查询成功")
  75. }
  76. // GetNewestRecordPage 获取冰排记录列表
  77. // @Summary 获取冰排列表
  78. // @Description 获取冰排列表
  79. // @Tags 冰排
  80. // @Param name query string false "冰排名称"
  81. // @Param pageSize query int false "页条数"
  82. // @Param page query int false "页码"
  83. // @Success 200 {object} response.Response{data=response.Page{list=[]model.IceRaft}} "{"code": 200, "data": [...]}"
  84. // @Router /api/ice-raft [get]
  85. // @Security Bearer
  86. func (e IceRaftController) GetNewestRecordPage(c *gin.Context) {
  87. s := service.IceRaft{}
  88. req := dto.IceRaftGetNewestRecordPageReq{}
  89. err := e.MakeContext(c).
  90. MakeOrm().
  91. Bind(&req, binding.Query).
  92. MakeService(&s.Service).
  93. Errors
  94. if err != nil {
  95. e.Logger.Error(err)
  96. e.Error(500, err, err.Error())
  97. return
  98. }
  99. //数据权限检查
  100. p := actions.GetPermissionFromContext(c)
  101. list := make([]model.IceRaft, 0)
  102. var count int64
  103. err = s.GetRecordPage(&req, &list, &count, p)
  104. if err != nil {
  105. e.Error(500, err, err.Error())
  106. return
  107. }
  108. e.PageOK(list, int(count), req.GetPageIndex(), req.GetPageSize(), "查询成功")
  109. }
  110. func (e IceRaftController) GetNewestRecordPageSSE(c *gin.Context) {
  111. s := service.IceRaft{}
  112. req := dto.IceRaftGetNewestRecordPageReq{}
  113. err := e.MakeContext(c).
  114. MakeOrm().
  115. Bind(&req, binding.Query).
  116. MakeService(&s.Service).
  117. Errors
  118. if err != nil {
  119. e.Logger.Error(err)
  120. e.Error(500, err, err.Error())
  121. return
  122. }
  123. //数据权限检查
  124. p := actions.GetPermissionFromContext(c)
  125. list := make([]model.IceRaft, 0)
  126. var count int64
  127. // Set the response header to indicate SSE content type
  128. c.Header("Content-Type", "text/event-stream")
  129. c.Header("Cache-Control", "no-cache")
  130. c.Header("Connection", "keep-alive")
  131. // Create a channel to send events to the client
  132. println("Client connected")
  133. // Listen for client close and remove the client from the list
  134. notify := c.Writer.CloseNotify()
  135. go func() {
  136. <-notify
  137. fmt.Println("Client disconnected")
  138. }()
  139. type Page struct {
  140. Count int `json:"count"` //总数
  141. Page int `json:"page"` //页码
  142. PageSize int `json:"pageSize"` //页条数
  143. List interface{} `json:"list"`
  144. }
  145. type Response struct {
  146. RequestId string `protobuf:"bytes,1,opt,name=requestId,proto3" json:"requestId,omitempty"`
  147. Code int32 `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"`
  148. Msg string `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"`
  149. Status string `protobuf:"bytes,4,opt,name=status,proto3" json:"status,omitempty"`
  150. Data Page `json:"data"`
  151. }
  152. // Continuously send data to the client
  153. for {
  154. err = s.GetRecordPage(&req, &list, &count, p)
  155. if err != nil {
  156. e.Error(500, err, err.Error())
  157. return
  158. }
  159. var response Response
  160. var page Page
  161. response.Code = 200
  162. response.Msg = "查询成功"
  163. response.Msg = "查询成功"
  164. page.Count = int(count)
  165. page.Page = req.GetPageIndex()
  166. page.PageSize = req.GetPageSize()
  167. page.List = list
  168. response.Data = page
  169. //data := <-eventChan
  170. res, _ := json.Marshal(&response)
  171. fmt.Fprintf(c.Writer, "data: %s\n\n", string(res))
  172. c.Writer.Flush()
  173. time.Sleep(10 * time.Second)
  174. }
  175. }
  176. // Get 通过id获取冰排
  177. // @Summary 通过id获取冰排
  178. // @Description 通过id获取冰排
  179. // @Tags 冰排
  180. // @Param id path string true "冰排id"
  181. // @Success 200 {object} response.Response{data=model.IceRaft} "{"code": 200, "data": [...]}"
  182. // @Router /api/ice-raft/{id} [get]
  183. // @Security Bearer
  184. func (e IceRaftController) Get(c *gin.Context) {
  185. s := service.IceRaft{}
  186. req := dto.IceRaftGetReq{}
  187. err := e.MakeContext(c).
  188. MakeOrm().
  189. Bind(&req, nil).
  190. MakeService(&s.Service).
  191. Errors
  192. if err != nil {
  193. e.Logger.Error(err)
  194. e.Error(500, err, err.Error())
  195. return
  196. }
  197. var object model.IceRaft
  198. p := actions.GetPermissionFromContext(c)
  199. //数据权限检查
  200. err = s.Get(&req, &object, p)
  201. if err != nil {
  202. e.Error(500, err, err.Error())
  203. return
  204. }
  205. e.OK(object, "查询成功")
  206. }
  207. // Insert 添加冰排
  208. // @Summary 添加冰排
  209. // @Description 添加冰排
  210. // @Tags 冰排
  211. // @Accept application/json
  212. // @Product application/json
  213. // @Param data body dto.IceRaftInsertReq true "data"
  214. // @Success 200 {string} string "{"code": 200, "message": "添加成功"}"
  215. // @Success 200 {string} string "{"code": -1, "message": "添加失败"}"
  216. // @Router /api/ice-raft [post]
  217. // @Security Bearer
  218. func (e IceRaftController) Insert(c *gin.Context) {
  219. s := service.IceRaft{}
  220. req := dto.IceRaftInsertReq{}
  221. err := e.MakeContext(c).
  222. MakeOrm().
  223. Bind(&req, binding.JSON).
  224. MakeService(&s.Service).
  225. Errors
  226. if err != nil {
  227. e.Logger.Error(err)
  228. e.Error(500, err, err.Error())
  229. return
  230. }
  231. p := actions.GetPermissionFromContext(c)
  232. // 设置创建人
  233. req.SetCreateBy(user.GetUserId(c))
  234. req.SetDeptId(p.DeptId)
  235. err = s.Insert(&req)
  236. if err != nil {
  237. e.Error(500, err, err.Error())
  238. return
  239. }
  240. e.OK(req.GetId(), "创建成功")
  241. }
  242. // Update 修改冰排
  243. // @Summary 修改冰排
  244. // @Description 修改冰排
  245. // @Tags 冰排
  246. // @Accept application/json
  247. // @Product application/json
  248. // @Param data body dto.IceRaftUpdateReq true "body"
  249. // @Success 200 {string} string "{"code": 200, "message": "添加成功"}"
  250. // @Success 200 {string} string "{"code": -1, "message": "添加失败"}"
  251. // @Router /api/ice-raft [put]
  252. // @Security Bearer
  253. func (e IceRaftController) Update(c *gin.Context) {
  254. s := service.IceRaft{}
  255. req := dto.IceRaftUpdateReq{}
  256. err := e.MakeContext(c).
  257. MakeOrm().
  258. Bind(&req).
  259. MakeService(&s.Service).
  260. Errors
  261. if err != nil {
  262. e.Logger.Error(err)
  263. e.Error(500, err, err.Error())
  264. return
  265. }
  266. p := actions.GetPermissionFromContext(c)
  267. req.SetUpdateBy(user.GetUserId(c))
  268. err = s.Update(&req, p)
  269. if err != nil {
  270. e.Error(500, err, err.Error())
  271. return
  272. }
  273. e.OK(req.GetId(), "更新成功")
  274. }
  275. // Delete 删除冰排
  276. // @Summary 删除冰排
  277. // @Description 删除冰排
  278. // @Tags 冰排
  279. // @Accept application/json
  280. // @Product application/json
  281. // @Param data body dto.IceRaftDeleteReq true "body"
  282. // @Success 200 {string} string "{"code": 200, "message": "删除成功"}"
  283. // @Success 200 {string} string "{"code": -1, "message": "删除失败"}"
  284. // @Router /api/ice-raft [delete]
  285. // @Security Bearer
  286. func (e IceRaftController) Delete(c *gin.Context) {
  287. s := service.IceRaft{}
  288. req := dto.IceRaftDeleteReq{}
  289. err := e.MakeContext(c).
  290. MakeOrm().
  291. Bind(&req, binding.JSON, nil).
  292. MakeService(&s.Service).
  293. Errors
  294. if err != nil {
  295. e.Logger.Error(err)
  296. e.Error(500, err, err.Error())
  297. return
  298. }
  299. //数据权限检查
  300. p := actions.GetPermissionFromContext(c)
  301. err = s.Remove(&req, p)
  302. if err != nil {
  303. e.Error(500, err, err.Error())
  304. return
  305. }
  306. e.OK(req.GetId(), "删除成功")
  307. }
  308. // InStorage 冰排入库
  309. // @Summary 冰排入库
  310. // @Description 冰排入库
  311. // @Tags 冰排
  312. // @Accept application/json
  313. // @Product application/json
  314. // @Param data body dto.IceRaftInStorageReq true "body"
  315. // @Success 200 {string} string "{"code": 200, "message": "删除成功"}"
  316. // @Success 200 {string} string "{"code": -1, "message": "删除失败"}"
  317. // @Router /api/ice-raft [delete]
  318. // @Security Bearer
  319. func (e IceRaftController) InStorage(c *gin.Context) {
  320. s := service.IceRaft{}
  321. req := dto.IceRaftInStorageReq{}
  322. err := e.MakeContext(c).
  323. MakeOrm().
  324. Bind(&req, binding.JSON, nil).
  325. MakeService(&s.Service).
  326. Errors
  327. if err != nil {
  328. e.Logger.Error(err)
  329. e.Error(500, err, err.Error())
  330. return
  331. }
  332. //数据权限检查
  333. p := actions.GetPermissionFromContext(c)
  334. err = s.InStorage(&req, p)
  335. if err != nil {
  336. e.Error(500, err, err.Error())
  337. return
  338. }
  339. e.OK(nil, "入库成功")
  340. }
  341. // OutStorage 冰排出库
  342. // @Summary 冰排出库
  343. // @Description 冰排出库
  344. // @Tags 冰排
  345. // @Accept application/json
  346. // @Product application/json
  347. // @Param data body dto.IceRaftOutStorageReq true "body"
  348. // @Success 200 {string} string "{"code": 200, "message": "删除成功"}"
  349. // @Success 200 {string} string "{"code": -1, "message": "删除失败"}"
  350. // @Router /api/ice-raft [delete]
  351. // @Security Bearer
  352. func (e IceRaftController) OutStorage(c *gin.Context) {
  353. s := service.IceRaft{}
  354. req := dto.IceRaftOutStorageReq{}
  355. err := e.MakeContext(c).
  356. MakeOrm().
  357. Bind(&req, binding.JSON, nil).
  358. MakeService(&s.Service).
  359. Errors
  360. if err != nil {
  361. e.Logger.Error(err)
  362. e.Error(500, err, err.Error())
  363. return
  364. }
  365. //数据权限检查
  366. p := actions.GetPermissionFromContext(c)
  367. err = s.OutStorage(&req, p)
  368. if err != nil {
  369. e.Error(500, err, err.Error())
  370. return
  371. }
  372. e.OK(nil, "出库成功")
  373. }
  374. type IceRaftRecordController struct {
  375. api.Api
  376. }
  377. // GetPage 获取冰排历史记记录列表
  378. // @Summary 获取冰排列表
  379. // @Description 获取冰排列表
  380. // @Tags 冰排
  381. // @Param name query string false "冰排名称"
  382. // @Param pageSize query int false "页条数"
  383. // @Param page query int false "页码"
  384. // @Success 200 {object} response.Response{data=response.Page{list=[]model.IceRaft}} "{"code": 200, "data": [...]}"
  385. // @Router /api/ice-raft [get]
  386. // @Security Bearer
  387. func (e IceRaftRecordController) GetPage(c *gin.Context) {
  388. s := service.IceRaftRecord{}
  389. req := dto.IceRaftRecordGetPageReq{}
  390. err := e.MakeContext(c).
  391. MakeOrm().
  392. Bind(&req, binding.Query).
  393. MakeService(&s.Service).
  394. Errors
  395. if err != nil {
  396. e.Logger.Error(err)
  397. e.Error(500, err, err.Error())
  398. return
  399. }
  400. //数据权限检查
  401. p := actions.GetPermissionFromContext(c)
  402. list := make([]model.IceRaftRecord, 0)
  403. var count int64
  404. err = s.GetPage(&req, &list, &count, p)
  405. if err != nil {
  406. e.Error(500, err, err.Error())
  407. return
  408. }
  409. e.PageOK(list, int(count), req.GetPageIndex(), req.GetPageSize(), "查询成功")
  410. }
  411. // Update 修改冰排出入库历史记录
  412. // @Summary 修改冰排出入库历史记录
  413. // @Description 修改冰排出入库历史记录
  414. // @Tags 冰排
  415. // @Accept application/json
  416. // @Product application/json
  417. // @Param data body dto.IceRaftUpdateReq true "body"
  418. // @Success 200 {string} string "{"code": 200, "message": "添加成功"}"
  419. // @Success 200 {string} string "{"code": -1, "message": "添加失败"}"
  420. // @Router /api/ice-raft [put]
  421. // @Security Bearer
  422. func (e IceRaftRecordController) Update(c *gin.Context) {
  423. s := service.IceRaftRecord{}
  424. req := dto.IceRaftRecordUpdateReq{}
  425. err := e.MakeContext(c).
  426. MakeOrm().
  427. Bind(&req).
  428. MakeService(&s.Service).
  429. Errors
  430. if err != nil {
  431. e.Logger.Error(err)
  432. e.Error(500, err, err.Error())
  433. return
  434. }
  435. p := actions.GetPermissionFromContext(c)
  436. req.SetUpdateBy(user.GetUserId(c))
  437. err = s.Update(&req, p)
  438. if err != nil {
  439. e.Error(500, err, err.Error())
  440. return
  441. }
  442. e.OK(req.GetId(), "更新成功")
  443. }
  444. // Delete 删除冰排出入库历史记录
  445. // @Summary 删除冰排出入库历史记录
  446. // @Description 删除冰排出入库历史记录
  447. // @Tags 冰排
  448. // @Accept application/json
  449. // @Product application/json
  450. // @Param data body dto.IceRaftDeleteReq true "body"
  451. // @Success 200 {string} string "{"code": 200, "message": "删除成功"}"
  452. // @Success 200 {string} string "{"code": -1, "message": "删除失败"}"
  453. // @Router /api/ice-raft [delete]
  454. // @Security Bearer
  455. func (e IceRaftRecordController) Delete(c *gin.Context) {
  456. s := service.IceRaftRecord{}
  457. req := dto.IceRaftRecordDeleteReq{}
  458. err := e.MakeContext(c).
  459. MakeOrm().
  460. Bind(&req, binding.JSON, nil).
  461. MakeService(&s.Service).
  462. Errors
  463. if err != nil {
  464. e.Logger.Error(err)
  465. e.Error(500, err, err.Error())
  466. return
  467. }
  468. //数据权限检查
  469. p := actions.GetPermissionFromContext(c)
  470. err = s.Remove(&req, p)
  471. if err != nil {
  472. e.Error(500, err, err.Error())
  473. return
  474. }
  475. e.OK(req.GetId(), "删除成功")
  476. }