cooler_box.go 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320
  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. "cold-delivery/common/nats/nats_server"
  8. "github.com/gin-gonic/gin"
  9. "github.com/gin-gonic/gin/binding"
  10. "gogs.baozhida.cn/zoie/OAuth-core/api"
  11. "gogs.baozhida.cn/zoie/OAuth-core/pkg/jwtauth/user"
  12. _ "gogs.baozhida.cn/zoie/OAuth-core/pkg/response"
  13. )
  14. type CoolerBoxController struct {
  15. api.Api
  16. }
  17. // GetPage 获取保温箱列表
  18. // @Summary 获取保温箱列表
  19. // @Description 获取保温箱列表
  20. // @Tags 保温箱
  21. // @Param name query string false "保温箱名称"
  22. // @Param pageSize query int false "页条数"
  23. // @Param page query int false "页码"
  24. // @Success 200 {object} response.Response{data=response.Page{list=[]model.CoolerBox}} "{"code": 200, "data": [...]}"
  25. // @Router /api/CoolerBox [get]
  26. // @Security Bearer
  27. func (e CoolerBoxController) GetPage(c *gin.Context) {
  28. s := service.CoolerBox{}
  29. req := dto.CoolerBoxGetPageReq{}
  30. err := e.MakeContext(c).
  31. MakeOrm().
  32. Bind(&req, binding.Query).
  33. MakeService(&s.Service).
  34. Errors
  35. if err != nil {
  36. e.Logger.Error(err)
  37. e.Error(500, err, err.Error())
  38. return
  39. }
  40. //数据权限检查
  41. p := actions.GetPermissionFromContext(c)
  42. list := make([]model.CoolerBox, 0)
  43. var count int64
  44. err = s.GetPage(&req, &list, &count, p)
  45. if err != nil {
  46. e.Error(500, err, err.Error())
  47. return
  48. }
  49. e.PageOK(list, int(count), req.GetPageIndex(), req.GetPageSize(), "查询成功")
  50. }
  51. // Get 通过id获取保温箱
  52. // @Summary 通过id获取保温箱
  53. // @Description 通过id获取保温箱
  54. // @Tags 保温箱
  55. // @Param id path string true "保温箱id"
  56. // @Success 200 {object} response.Response{data=model.CoolerBox} "{"code": 200, "data": [...]}"
  57. // @Router /api/CoolerBox/{id} [get]
  58. // @Security Bearer
  59. func (e CoolerBoxController) Get(c *gin.Context) {
  60. s := service.CoolerBox{}
  61. req := dto.CoolerBoxGetReq{}
  62. err := e.MakeContext(c).
  63. MakeOrm().
  64. Bind(&req, nil).
  65. MakeService(&s.Service).
  66. Errors
  67. if err != nil {
  68. e.Logger.Error(err)
  69. e.Error(500, err, err.Error())
  70. return
  71. }
  72. var object model.CoolerBox
  73. p := actions.GetPermissionFromContext(c)
  74. //数据权限检查
  75. err = s.Get(&req, &object, p)
  76. if err != nil {
  77. e.Error(500, err, err.Error())
  78. return
  79. }
  80. e.OK(object, "查询成功")
  81. }
  82. // Insert 添加保温箱
  83. // @Summary 添加保温箱
  84. // @Description 添加保温箱
  85. // @Tags 保温箱
  86. // @Accept application/json
  87. // @Product application/json
  88. // @Param data body dto.CoolerBoxInsertReq true "data"
  89. // @Success 200 {string} string "{"code": 200, "message": "添加成功"}"
  90. // @Success 200 {string} string "{"code": -1, "message": "添加失败"}"
  91. // @Router /api/CoolerBox [post]
  92. // @Security Bearer
  93. func (e CoolerBoxController) Insert(c *gin.Context) {
  94. s := service.CoolerBox{}
  95. req := dto.CoolerBoxInsertReq{}
  96. err := e.MakeContext(c).
  97. MakeOrm().
  98. Bind(&req, binding.JSON).
  99. MakeService(&s.Service).
  100. Errors
  101. if err != nil {
  102. e.Logger.Error(err)
  103. e.Error(500, err, err.Error())
  104. return
  105. }
  106. p := actions.GetPermissionFromContext(c)
  107. // 设置创建人
  108. req.SetCreateBy(user.GetUserId(c))
  109. req.SetDeptId(p.DeptId)
  110. err = s.Insert(&req)
  111. if err != nil {
  112. e.Error(500, err, err.Error())
  113. return
  114. }
  115. e.OK(req.GetId(), "创建成功")
  116. }
  117. // Update 修改保温箱
  118. // @Summary 修改保温箱
  119. // @Description 修改保温箱
  120. // @Tags 保温箱
  121. // @Accept application/json
  122. // @Product application/json
  123. // @Param data body dto.CoolerBoxUpdateReq true "body"
  124. // @Success 200 {string} string "{"code": 200, "message": "添加成功"}"
  125. // @Success 200 {string} string "{"code": -1, "message": "添加失败"}"
  126. // @Router /api/CoolerBox [put]
  127. // @Security Bearer
  128. func (e CoolerBoxController) Update(c *gin.Context) {
  129. s := service.CoolerBox{}
  130. req := dto.CoolerBoxUpdateReq{}
  131. err := e.MakeContext(c).
  132. MakeOrm().
  133. Bind(&req).
  134. MakeService(&s.Service).
  135. Errors
  136. if err != nil {
  137. e.Logger.Error(err)
  138. e.Error(500, err, err.Error())
  139. return
  140. }
  141. p := actions.GetPermissionFromContext(c)
  142. req.SetUpdateBy(user.GetUserId(c))
  143. err = s.Update(&req, p)
  144. if err != nil {
  145. e.Error(500, err, err.Error())
  146. return
  147. }
  148. e.OK(req.GetId(), "更新成功")
  149. }
  150. // Delete 删除保温箱
  151. // @Summary 删除保温箱
  152. // @Description 删除保温箱
  153. // @Tags 保温箱
  154. // @Accept application/json
  155. // @Product application/json
  156. // @Param data body dto.CoolerBoxDeleteReq true "body"
  157. // @Success 200 {string} string "{"code": 200, "message": "删除成功"}"
  158. // @Success 200 {string} string "{"code": -1, "message": "删除失败"}"
  159. // @Router /api/CoolerBox [delete]
  160. // @Security Bearer
  161. func (e CoolerBoxController) Delete(c *gin.Context) {
  162. s := service.CoolerBox{}
  163. req := dto.CoolerBoxDeleteReq{}
  164. err := e.MakeContext(c).
  165. MakeOrm().
  166. Bind(&req, binding.JSON, nil).
  167. MakeService(&s.Service).
  168. Errors
  169. if err != nil {
  170. e.Logger.Error(err)
  171. e.Error(500, err, err.Error())
  172. return
  173. }
  174. //数据权限检查
  175. p := actions.GetPermissionFromContext(c)
  176. err = s.Remove(&req, p)
  177. if err != nil {
  178. e.Error(500, err, err.Error())
  179. return
  180. }
  181. e.OK(req.GetId(), "删除成功")
  182. }
  183. // GetPage 获取保温箱列表
  184. // @Summary 获取保温箱列表
  185. // @Description 获取保温箱列表
  186. // @Tags 保温箱
  187. // @Param name query string false "保温箱名称"
  188. // @Param pageSize query int false "页条数"
  189. // @Param page query int false "页码"
  190. // @Success 200 {object} response.Response{data=response.Page{list=[]model.CoolerBox}} "{"code": 200, "data": [...]}"
  191. // @Router /api/CoolerBox [get]
  192. // @Security Bearer
  193. func (e CoolerBoxController) GetDevicePage(c *gin.Context) {
  194. s := service.CoolerBox{}
  195. req := dto.DeviceGetPageReq{}
  196. err := e.MakeContext(c).
  197. MakeOrm().
  198. MakeService(&s.Service).
  199. Bind(&req, binding.Query).
  200. Errors
  201. if err != nil {
  202. e.Logger.Error(err)
  203. e.Error(500, err, err.Error())
  204. return
  205. }
  206. list := make([]nats_server.Device_R, 0)
  207. p := actions.GetPermissionFromContext(c)
  208. var coolerBoxCount int64
  209. coolerBoxList := make([]model.CoolerBox, 0)
  210. coolerBoxReq := dto.CoolerBoxGetPageReq{}
  211. coolerBoxReq.PageSize = 9999
  212. err = s.GetPage(&coolerBoxReq, &coolerBoxList, &coolerBoxCount, p)
  213. var count int64
  214. company, err := model.GetCompanyById(p.DeptId)
  215. if err != nil {
  216. e.Error(500, err, err.Error())
  217. return
  218. }
  219. list, count, err = nats_server.Cold_ReadDevice_List(req.Name, company.ColdKey, req.GetPageIndex(), 9999)
  220. if err != nil {
  221. e.Error(500, err, err.Error())
  222. return
  223. }
  224. var coolerBoxMap = make(map[string]model.CoolerBox)
  225. for _, box := range coolerBoxList {
  226. coolerBoxMap[box.Sn] = box
  227. }
  228. // Fixme 测试完成之后删除
  229. //for i := 0; i < 20; i++ {
  230. // list = append(list, nats_server.Device_R{
  231. // T_devName: fmt.Sprintf("保温箱%03d", i),
  232. // T_sn: fmt.Sprintf("2024114956064%03d", i),
  233. // })
  234. //}
  235. list2 := make([]nats_server.Device_R, 0)
  236. for i := 0; i < len(list); i++ {
  237. if _, ok := coolerBoxMap[list[i].T_sn]; ok {
  238. count--
  239. continue
  240. }
  241. list2 = append(list2, list[i])
  242. }
  243. //if len(list2) == 0 {
  244. // e.PageOK(list2, len(list2), req.GetPageIndex(), req.GetPageSize(), "查询成功")
  245. //}
  246. // 计算总页数
  247. totalPages := (len(list2) + req.GetPageSize() - 1) / req.GetPageSize()
  248. // 如果n超出范围,返回错误
  249. if req.GetPageIndex() > totalPages {
  250. req.Page = totalPages
  251. }
  252. // 计算当前页的数据
  253. start := (req.GetPageIndex() - 1) * req.GetPageSize()
  254. end := start + req.GetPageSize()
  255. if end > len(list2) {
  256. end = len(list2)
  257. }
  258. currentPage := list2[start:end]
  259. e.PageOK(currentPage, len(list2), req.GetPageIndex(), req.GetPageSize(), "查询成功")
  260. }
  261. // BatchInsert 批量添加保温箱
  262. // @Summary 批量添加保温箱
  263. // @Description 批量添加保温箱
  264. // @Tags 保温箱
  265. // @Accept application/json
  266. // @Product application/json
  267. // @Param data body dto.CoolerBoxInsertReq true "data"
  268. // @Success 200 {string} string "{"code": 200, "message": "添加成功"}"
  269. // @Success 200 {string} string "{"code": -1, "message": "添加失败"}"
  270. // @Router /api/CoolerBox [post]
  271. // @Security Bearer
  272. func (e CoolerBoxController) BatchInsert(c *gin.Context) {
  273. s := service.CoolerBox{}
  274. req := dto.CoolerBoxBatchInsertReq{}
  275. err := e.MakeContext(c).
  276. MakeOrm().
  277. Bind(&req, binding.JSON).
  278. MakeService(&s.Service).
  279. Errors
  280. if err != nil {
  281. e.Logger.Error(err)
  282. e.Error(500, err, err.Error())
  283. return
  284. }
  285. p := actions.GetPermissionFromContext(c)
  286. // 设置创建人
  287. req.SetCreateBy(user.GetUserId(c))
  288. req.SetDeptId(p.DeptId)
  289. err = s.BatchInsert(&req)
  290. if err != nil {
  291. e.Error(500, err, err.Error())
  292. return
  293. }
  294. e.OK(nil, "创建成功")
  295. }