event_base.go 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379
  1. package event
  2. import (
  3. "kpt-pasture/http/middleware"
  4. "net/http"
  5. operationPb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/operation"
  6. "gitee.com/xuyiping_admin/pkg/valid"
  7. pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
  8. "gitee.com/xuyiping_admin/pkg/apierr"
  9. "gitee.com/xuyiping_admin/pkg/ginutil"
  10. "github.com/gin-gonic/gin"
  11. )
  12. func EnterEventList(c *gin.Context) {
  13. var req pasturePb.SearchEventRequest
  14. if err := ginutil.BindProto(c, &req); err != nil {
  15. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  16. return
  17. }
  18. pagination := &pasturePb.PaginationModel{
  19. Page: int32(c.GetInt(middleware.Page)),
  20. PageSize: int32(c.GetInt(middleware.PageSize)),
  21. PageOffset: int32(c.GetInt(middleware.PageOffset)),
  22. }
  23. res, err := middleware.Dependency(c).StoreEventHub.OpsService.EnterList(c, &req, pagination)
  24. if err != nil {
  25. apierr.ClassifiedAbort(c, err)
  26. return
  27. }
  28. ginutil.JSONResp(c, res)
  29. }
  30. func EnterEventCreate(c *gin.Context) {
  31. var req pasturePb.EventEnterRequest
  32. if err := ginutil.BindProto(c, &req); err != nil {
  33. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  34. return
  35. }
  36. if err := valid.ValidateStruct(&req,
  37. valid.Field(&req.EarNumber, valid.Required),
  38. valid.Field(&req.BirthAt, valid.Required),
  39. valid.Field(&req.Sex, valid.Required),
  40. valid.Field(&req.CowType, valid.Required),
  41. valid.Field(&req.CowKind, valid.Required),
  42. valid.Field(&req.CowSource, valid.Required),
  43. valid.Field(&req.Price, valid.Required),
  44. valid.Field(&req.EnterAt, valid.Required),
  45. valid.Field(&req.PenId, valid.Required),
  46. valid.Field(&req.OperationId, valid.Required),
  47. valid.Field(&req.Weight, valid.Required),
  48. valid.Field(&req.BatchNumber, valid.Required),
  49. ); err != nil {
  50. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  51. return
  52. }
  53. if err := middleware.BackendOperation(c).OpsService.CreateEnter(c, &req); err != nil {
  54. apierr.ClassifiedAbort(c, err)
  55. return
  56. }
  57. ginutil.JSONResp(c, &operationPb.CommonOK{
  58. Code: http.StatusOK,
  59. Msg: "ok",
  60. Data: &operationPb.Success{Success: true},
  61. })
  62. }
  63. func GroupTransferEventList(c *gin.Context) {
  64. var req pasturePb.SearchEventRequest
  65. if err := ginutil.BindProto(c, &req); err != nil {
  66. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  67. return
  68. }
  69. pagination := &pasturePb.PaginationModel{
  70. Page: int32(c.GetInt(middleware.Page)),
  71. PageSize: int32(c.GetInt(middleware.PageSize)),
  72. PageOffset: int32(c.GetInt(middleware.PageOffset)),
  73. }
  74. res, err := middleware.Dependency(c).StoreEventHub.OpsService.GroupTransferList(c, &req, pagination)
  75. if err != nil {
  76. apierr.ClassifiedAbort(c, err)
  77. return
  78. }
  79. ginutil.JSONResp(c, res)
  80. }
  81. func GroupTransferEventCreate(c *gin.Context) {
  82. var req pasturePb.TransferGroupEventRequest
  83. if err := ginutil.BindProto(c, &req); err != nil {
  84. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  85. return
  86. }
  87. if err := valid.ValidateStruct(&req,
  88. valid.Field(&req.Body, valid.Required, valid.Each(valid.By(func(value interface{}) error {
  89. s := value.(pasturePb.TransferGroupEventData)
  90. return valid.ValidateStruct(&s,
  91. valid.Field(&s.EarNumber, valid.Required),
  92. valid.Field(&s.TransferDate, valid.Required),
  93. valid.Field(&s.TransferInPenId, valid.Required),
  94. valid.Field(&s.TransferReasonId, valid.Required),
  95. valid.Field(&s.OperationId, valid.Required),
  96. )
  97. }))),
  98. ); err != nil {
  99. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  100. return
  101. }
  102. if err := middleware.BackendOperation(c).OpsService.CreateGroupTransfer(c, &req); err != nil {
  103. apierr.ClassifiedAbort(c, err)
  104. return
  105. }
  106. ginutil.JSONResp(c, &operationPb.CommonOK{
  107. Code: http.StatusOK,
  108. Msg: "ok",
  109. Data: &operationPb.Success{Success: true},
  110. })
  111. }
  112. func BodyScoreEventList(c *gin.Context) {
  113. var req pasturePb.SearchEventRequest
  114. if err := ginutil.BindProto(c, &req); err != nil {
  115. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  116. return
  117. }
  118. pagination := &pasturePb.PaginationModel{
  119. Page: int32(c.GetInt(middleware.Page)),
  120. PageSize: int32(c.GetInt(middleware.PageSize)),
  121. PageOffset: int32(c.GetInt(middleware.PageOffset)),
  122. }
  123. res, err := middleware.Dependency(c).StoreEventHub.OpsService.BodyScoreList(c, &req, pagination)
  124. if err != nil {
  125. apierr.ClassifiedAbort(c, err)
  126. return
  127. }
  128. ginutil.JSONResp(c, res)
  129. }
  130. func BodyScoreEventCreate(c *gin.Context) {
  131. var req pasturePb.BodyScoreEventRequest
  132. if err := ginutil.BindProto(c, &req); err != nil {
  133. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  134. return
  135. }
  136. if err := valid.ValidateStruct(&req,
  137. valid.Field(&req.CowId, valid.Required),
  138. valid.Field(&req.ScoreAt, valid.Required),
  139. valid.Field(&req.Score, valid.Required),
  140. valid.Field(&req.OperationId, valid.Required),
  141. ); err != nil {
  142. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  143. return
  144. }
  145. if err := middleware.BackendOperation(c).OpsService.CreateBodyScore(c, &req); err != nil {
  146. apierr.ClassifiedAbort(c, err)
  147. return
  148. }
  149. ginutil.JSONResp(c, &operationPb.CommonOK{
  150. Code: http.StatusOK,
  151. Msg: "ok",
  152. Data: &operationPb.Success{Success: true},
  153. })
  154. }
  155. func WeightList(c *gin.Context) {
  156. var req pasturePb.SearchEventRequest
  157. if err := ginutil.BindProto(c, &req); err != nil {
  158. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  159. return
  160. }
  161. pagination := &pasturePb.PaginationModel{
  162. Page: int32(c.GetInt(middleware.Page)),
  163. PageSize: int32(c.GetInt(middleware.PageSize)),
  164. PageOffset: int32(c.GetInt(middleware.PageOffset)),
  165. }
  166. res, err := middleware.Dependency(c).StoreEventHub.OpsService.WeightList(c, &req, pagination)
  167. if err != nil {
  168. apierr.ClassifiedAbort(c, err)
  169. return
  170. }
  171. ginutil.JSONResp(c, res)
  172. }
  173. func WeightBatch(c *gin.Context) {
  174. var req pasturePb.BatchEventWeight
  175. if err := ginutil.BindProto(c, &req); err != nil {
  176. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  177. return
  178. }
  179. if err := valid.ValidateStruct(&req,
  180. valid.Field(&req.Items, valid.Required, valid.Each(valid.By(func(value interface{}) error {
  181. s := value.(pasturePb.EventWeight)
  182. return valid.ValidateStruct(&s,
  183. valid.Field(&s.Weight, valid.Required),
  184. valid.Field(&s.EarNumber, valid.Required),
  185. valid.Field(&s.WeightAt, valid.Required),
  186. valid.Field(&s.OperationId, valid.Required),
  187. )
  188. }))),
  189. ); err != nil {
  190. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  191. return
  192. }
  193. if err := middleware.BackendOperation(c).OpsService.WeightBatch(c, &req); err != nil {
  194. apierr.ClassifiedAbort(c, err)
  195. return
  196. }
  197. ginutil.JSONResp(c, &operationPb.CommonOK{
  198. Code: http.StatusOK,
  199. Msg: "ok",
  200. Data: &operationPb.Success{Success: true},
  201. })
  202. }
  203. func DeathBatch(c *gin.Context) {
  204. var req pasturePb.EventDeathBatch
  205. if err := ginutil.BindProto(c, &req); err != nil {
  206. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  207. return
  208. }
  209. if err := valid.ValidateStruct(&req,
  210. valid.Field(&req.Items, valid.Required, valid.Each(valid.By(func(value interface{}) error {
  211. s := value.(pasturePb.EventDeath)
  212. return valid.ValidateStruct(&s,
  213. valid.Field(&s.DeathAt, valid.Required),
  214. valid.Field(&s.EarNumber, valid.Required),
  215. valid.Field(&s.DeathDestinationKind, valid.Required),
  216. valid.Field(&s.OperationId, valid.Required),
  217. valid.Field(&s.DeathReasonKind, valid.Required),
  218. )
  219. }))),
  220. ); err != nil {
  221. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  222. return
  223. }
  224. if err := middleware.BackendOperation(c).OpsService.DeathBatch(c, &req); err != nil {
  225. apierr.ClassifiedAbort(c, err)
  226. return
  227. }
  228. ginutil.JSONResp(c, &operationPb.CommonOK{
  229. Code: http.StatusOK,
  230. Msg: "ok",
  231. Data: &operationPb.Success{Success: true},
  232. })
  233. }
  234. func DeathList(c *gin.Context) {
  235. var req pasturePb.SearchEventRequest
  236. if err := ginutil.BindProto(c, &req); err != nil {
  237. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  238. return
  239. }
  240. pagination := &pasturePb.PaginationModel{
  241. Page: int32(c.GetInt(middleware.Page)),
  242. PageSize: int32(c.GetInt(middleware.PageSize)),
  243. PageOffset: int32(c.GetInt(middleware.PageOffset)),
  244. }
  245. res, err := middleware.Dependency(c).StoreEventHub.OpsService.DeathList(c, &req, pagination)
  246. if err != nil {
  247. apierr.ClassifiedAbort(c, err)
  248. return
  249. }
  250. ginutil.JSONResp(c, res)
  251. }
  252. func CowEarNumber(c *gin.Context) {
  253. var req pasturePb.EventReplaceEarNumber
  254. if err := ginutil.BindProto(c, &req); err != nil {
  255. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  256. return
  257. }
  258. if err := valid.ValidateStruct(&req,
  259. valid.Field(&req.CowId, valid.Required),
  260. valid.Field(&req.EarNumber, valid.Required),
  261. ); err != nil {
  262. apierr.ClassifiedAbort(c, err)
  263. return
  264. }
  265. if err := middleware.BackendOperation(c).OpsService.CowEarNumberUpdate(c, &req); err != nil {
  266. apierr.ClassifiedAbort(c, err)
  267. return
  268. }
  269. ginutil.JSONResp(c, &operationPb.CommonOK{
  270. Code: http.StatusOK,
  271. Msg: "ok",
  272. Data: &operationPb.Success{Success: true},
  273. })
  274. }
  275. func CowSale(c *gin.Context) {
  276. var req pasturePb.EventCowSale
  277. if err := ginutil.BindProto(c, &req); err != nil {
  278. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  279. return
  280. }
  281. if err := valid.ValidateStruct(&req,
  282. valid.Field(&req.DealerId, valid.Required),
  283. valid.Field(&req.SaleAt, valid.Required),
  284. valid.Field(&req.SaleAllPrice, valid.Required),
  285. valid.Field(&req.SaleAllWeight, valid.Required),
  286. valid.Field(&req.SalePrice, valid.Required),
  287. valid.Field(&req.SaleTicket, valid.Required),
  288. valid.Field(&req.EarNumbers, valid.Required),
  289. valid.Field(&req.QuarantineReport, valid.Required),
  290. valid.Field(&req.SalesType, valid.Required),
  291. valid.Field(&req.SaleVehicleItems, valid.Required, valid.Each(valid.By(func(value interface{}) error {
  292. s := value.(pasturePb.SaleVehicleItem)
  293. return valid.ValidateStruct(&s,
  294. valid.Field(&s.CarNumber, valid.Required),
  295. valid.Field(&s.CowCount, valid.Required),
  296. valid.Field(&s.CowWeight, valid.Required),
  297. )
  298. }))),
  299. ); err != nil {
  300. apierr.ClassifiedAbort(c, err)
  301. return
  302. }
  303. if err := middleware.BackendOperation(c).OpsService.CowSaleCreate(c, &req); err != nil {
  304. apierr.ClassifiedAbort(c, err)
  305. return
  306. }
  307. ginutil.JSONResp(c, &operationPb.CommonOK{
  308. Code: http.StatusOK,
  309. Msg: "ok",
  310. Data: &operationPb.Success{Success: true},
  311. })
  312. }
  313. func CowSaleList(c *gin.Context) {
  314. var req pasturePb.EventCowSaleRequest
  315. if err := ginutil.BindProto(c, &req); err != nil {
  316. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  317. return
  318. }
  319. pagination := &pasturePb.PaginationModel{
  320. Page: int32(c.GetInt(middleware.Page)),
  321. PageSize: int32(c.GetInt(middleware.PageSize)),
  322. PageOffset: int32(c.GetInt(middleware.PageOffset)),
  323. }
  324. res, err := middleware.Dependency(c).StoreEventHub.OpsService.CowSaleList(c, &req, pagination)
  325. if err != nil {
  326. apierr.ClassifiedAbort(c, err)
  327. return
  328. }
  329. ginutil.JSONResp(c, res)
  330. }