event_breed.go 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432
  1. package event
  2. import (
  3. "kpt-pasture/http/middleware"
  4. "net/http"
  5. pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
  6. operationPb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/operation"
  7. "gitee.com/xuyiping_admin/pkg/apierr"
  8. "gitee.com/xuyiping_admin/pkg/ginutil"
  9. "gitee.com/xuyiping_admin/pkg/valid"
  10. "github.com/gin-gonic/gin"
  11. )
  12. func CalvingEventList(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.CalvingList(c, &req, pagination)
  24. if err != nil {
  25. apierr.ClassifiedAbort(c, err)
  26. return
  27. }
  28. ginutil.JSONResp(c, res)
  29. }
  30. func CalvingEventCreate(c *gin.Context) {
  31. var req pasturePb.EventCalving
  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.CowId, valid.Required),
  38. valid.Field(&req.CalvingAt, valid.Required),
  39. valid.Field(&req.ChildNumber, valid.Required),
  40. valid.Field(&req.CalvingLevel, valid.Required),
  41. valid.Field(&req.CalfItemList, valid.Required, valid.Each(valid.By(func(value interface{}) error {
  42. s := value.(pasturePb.CalfItem)
  43. return valid.ValidateStruct(&s,
  44. valid.Field(&s.Sex, valid.Required),
  45. valid.Field(&s.Weight, valid.Required),
  46. valid.Field(&s.IsLive, valid.Required),
  47. valid.Field(&s.IsAdoption, valid.Required),
  48. )
  49. }))),
  50. valid.Field(&req.OperationId, valid.Required),
  51. ); err != nil {
  52. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  53. return
  54. }
  55. if err := middleware.BackendOperation(c).OpsService.CalvingCreate(c, &req); err != nil {
  56. apierr.ClassifiedAbort(c, err)
  57. return
  58. }
  59. ginutil.JSONResp(c, &operationPb.CommonOK{
  60. Code: http.StatusOK,
  61. Msg: "ok",
  62. Data: &operationPb.Success{Success: true},
  63. })
  64. }
  65. func PregnantCheckEventList(c *gin.Context) {
  66. var req pasturePb.SearchEventRequest
  67. if err := ginutil.BindProto(c, &req); err != nil {
  68. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  69. return
  70. }
  71. pagination := &pasturePb.PaginationModel{
  72. Page: int32(c.GetInt(middleware.Page)),
  73. PageSize: int32(c.GetInt(middleware.PageSize)),
  74. PageOffset: int32(c.GetInt(middleware.PageOffset)),
  75. }
  76. res, err := middleware.Dependency(c).StoreEventHub.OpsService.PregnantCheckList(c, &req, pagination)
  77. if err != nil {
  78. apierr.ClassifiedAbort(c, err)
  79. return
  80. }
  81. ginutil.JSONResp(c, res)
  82. }
  83. func PregnantCheckEventCreateBatch(c *gin.Context) {
  84. var req pasturePb.EventPregnantCheckBatch
  85. if err := ginutil.BindProto(c, &req); err != nil {
  86. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  87. return
  88. }
  89. if err := valid.ValidateStruct(&req,
  90. valid.Field(&req.Item, valid.Required, valid.Each(valid.By(func(value interface{}) error {
  91. item := value.(pasturePb.EventPregnantCheckRequest)
  92. return valid.ValidateStruct(&item,
  93. valid.Field(&item.CowId, valid.Required),
  94. valid.Field(&item.PregnantCheckAt, valid.Required),
  95. valid.Field(&item.PregnantCheckResult, valid.Required),
  96. valid.Field(&item.PregnantCheckMethod, valid.Required),
  97. valid.Field(&item.OperationId, valid.Required),
  98. )
  99. }))),
  100. ); err != nil {
  101. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  102. return
  103. }
  104. if err := middleware.BackendOperation(c).OpsService.PregnantCheckCreateBatch(c, &req); err != nil {
  105. apierr.ClassifiedAbort(c, err)
  106. return
  107. }
  108. ginutil.JSONResp(c, &operationPb.CommonOK{
  109. Code: http.StatusOK,
  110. Msg: "ok",
  111. Data: &operationPb.Success{Success: true},
  112. })
  113. }
  114. func MatingEventList(c *gin.Context) {
  115. var req pasturePb.SearchEventRequest
  116. if err := ginutil.BindProto(c, &req); err != nil {
  117. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  118. return
  119. }
  120. pagination := &pasturePb.PaginationModel{
  121. Page: int32(c.GetInt(middleware.Page)),
  122. PageSize: int32(c.GetInt(middleware.PageSize)),
  123. PageOffset: int32(c.GetInt(middleware.PageOffset)),
  124. }
  125. res, err := middleware.Dependency(c).StoreEventHub.OpsService.MatingList(c, &req, pagination)
  126. if err != nil {
  127. apierr.ClassifiedAbort(c, err)
  128. return
  129. }
  130. ginutil.JSONResp(c, res)
  131. }
  132. func MatingCreate(c *gin.Context) {
  133. var req pasturePb.EventMating
  134. if err := ginutil.BindProto(c, &req); err != nil {
  135. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  136. return
  137. }
  138. if err := valid.ValidateStruct(&req,
  139. valid.Field(&req.CowIds, valid.Required),
  140. valid.Field(&req.OperationId, valid.Required),
  141. valid.Field(&req.FrozenSemenNumber, valid.Required),
  142. valid.Field(&req.MatingAt, valid.Required),
  143. valid.Field(&req.FrozenSemenCount, valid.Required, valid.Min(1)),
  144. ); err != nil {
  145. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  146. return
  147. }
  148. if err := middleware.BackendOperation(c).OpsService.MatingCreate(c, &req); err != nil {
  149. apierr.ClassifiedAbort(c, err)
  150. return
  151. }
  152. ginutil.JSONResp(c, &operationPb.CommonOK{
  153. Code: http.StatusOK,
  154. Msg: "ok",
  155. Data: &operationPb.Success{Success: true},
  156. })
  157. }
  158. func EstrusEventList(c *gin.Context) {
  159. var req pasturePb.SearchEventRequest
  160. if err := ginutil.BindProto(c, &req); err != nil {
  161. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  162. return
  163. }
  164. pagination := &pasturePb.PaginationModel{
  165. Page: int32(c.GetInt(middleware.Page)),
  166. PageSize: int32(c.GetInt(middleware.PageSize)),
  167. PageOffset: int32(c.GetInt(middleware.PageOffset)),
  168. }
  169. res, err := middleware.Dependency(c).StoreEventHub.OpsService.EstrusList(c, &req, pagination)
  170. if err != nil {
  171. apierr.ClassifiedAbort(c, err)
  172. return
  173. }
  174. ginutil.JSONResp(c, res)
  175. }
  176. func EstrusCreate(c *gin.Context) {
  177. var req pasturePb.EventEstrus
  178. if err := ginutil.BindProto(c, &req); err != nil {
  179. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  180. return
  181. }
  182. if err := valid.ValidateStruct(&req,
  183. valid.Field(&req.CowId, valid.Required),
  184. valid.Field(&req.OperationId, valid.Required),
  185. valid.Field(&req.EstrusAt, valid.Required),
  186. ); err != nil {
  187. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  188. return
  189. }
  190. if err := middleware.BackendOperation(c).OpsService.EstrusCreate(c, &req); err != nil {
  191. apierr.ClassifiedAbort(c, err)
  192. return
  193. }
  194. ginutil.JSONResp(c, &operationPb.CommonOK{
  195. Code: http.StatusOK,
  196. Msg: "ok",
  197. Data: &operationPb.Success{Success: true},
  198. })
  199. }
  200. func EstrusBatch(c *gin.Context) {
  201. var req pasturePb.EventEstrusBatch
  202. if err := valid.ValidateStruct(&req,
  203. valid.Field(&req.Item, valid.Required, valid.Each(valid.By(func(value interface{}) error {
  204. item := value.(pasturePb.EventEstrus)
  205. return valid.ValidateStruct(&item,
  206. valid.Field(&item.CowId, valid.Required),
  207. valid.Field(&item.OperationId, valid.Required),
  208. valid.Field(&item.IsMathing, valid.Required),
  209. valid.Field(&item.UnMatingReasons, valid.Required),
  210. )
  211. }))),
  212. ); err != nil {
  213. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  214. return
  215. }
  216. if err := middleware.BackendOperation(c).OpsService.EstrusBatch(c, &req); err != nil {
  217. apierr.ClassifiedAbort(c, err)
  218. return
  219. }
  220. ginutil.JSONResp(c, &operationPb.CommonOK{
  221. Code: http.StatusOK,
  222. Msg: "ok",
  223. Data: &operationPb.Success{Success: true},
  224. })
  225. }
  226. func SameTimeCreate(c *gin.Context) {
  227. var req pasturePb.EventSameTime
  228. if err := ginutil.BindProto(c, &req); err != nil {
  229. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  230. return
  231. }
  232. if err := valid.ValidateStruct(&req,
  233. valid.Field(&req.Id, valid.Required),
  234. valid.Field(&req.DrugsId, valid.Required),
  235. valid.Field(&req.OperationId, valid.Required),
  236. valid.Field(&req.SameTimeAt, valid.Required),
  237. ); err != nil {
  238. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  239. return
  240. }
  241. if err := middleware.BackendOperation(c).OpsService.SameTimeCreate(c, &req); err != nil {
  242. apierr.ClassifiedAbort(c, err)
  243. return
  244. }
  245. ginutil.JSONResp(c, &operationPb.CommonOK{
  246. Code: http.StatusOK,
  247. Msg: "ok",
  248. Data: &operationPb.Success{Success: true},
  249. })
  250. }
  251. func SameTimeBatch(c *gin.Context) {
  252. var req pasturePb.EventSameTimeBatch
  253. if err := ginutil.BindProto(c, &req); err != nil {
  254. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  255. return
  256. }
  257. if err := valid.ValidateStruct(&req,
  258. valid.Field(&req.OperationId, valid.Required),
  259. valid.Field(&req.DrugsId, valid.Required),
  260. valid.Field(&req.SameTimeAt, valid.Required),
  261. valid.Field(&req.Item, valid.Required, valid.Each(valid.By(func(value interface{}) error {
  262. item := value.(pasturePb.EventSameTimeItem)
  263. return valid.ValidateStruct(&item,
  264. valid.Field(&item.CowId, valid.Required),
  265. )
  266. }))),
  267. ); err != nil {
  268. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  269. return
  270. }
  271. if err := middleware.BackendOperation(c).OpsService.SameTimeBatch(c, &req); err != nil {
  272. apierr.ClassifiedAbort(c, err)
  273. return
  274. }
  275. ginutil.JSONResp(c, &operationPb.CommonOK{
  276. Code: http.StatusOK,
  277. Msg: "ok",
  278. Data: &operationPb.Success{Success: true},
  279. })
  280. }
  281. func SameTimeList(c *gin.Context) {
  282. var req pasturePb.SearchEventRequest
  283. if err := ginutil.BindProto(c, &req); err != nil {
  284. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  285. return
  286. }
  287. pagination := &pasturePb.PaginationModel{
  288. Page: int32(c.GetInt(middleware.Page)),
  289. PageSize: int32(c.GetInt(middleware.PageSize)),
  290. PageOffset: int32(c.GetInt(middleware.PageOffset)),
  291. }
  292. res, err := middleware.Dependency(c).StoreEventHub.OpsService.SameTimeList(c, &req, pagination)
  293. if err != nil {
  294. apierr.ClassifiedAbort(c, err)
  295. return
  296. }
  297. ginutil.JSONResp(c, res)
  298. }
  299. func AbortionCreateBatch(c *gin.Context) {
  300. var req pasturePb.EventAbortionBatch
  301. if err := ginutil.BindProto(c, &req); err != nil {
  302. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  303. return
  304. }
  305. if err := valid.ValidateStruct(&req,
  306. valid.Field(&req.Item, valid.Required, valid.Each(valid.By(func(value interface{}) error {
  307. item := value.(pasturePb.EventAbortionRequest)
  308. return valid.ValidateStruct(&item,
  309. valid.Field(&item.CowId, valid.Required),
  310. valid.Field(&item.IsAfterbirth, valid.Required),
  311. valid.Field(&item.AbortionReasons, valid.Required),
  312. valid.Field(&item.AbortionAt, valid.Required),
  313. valid.Field(&item.OperationId, valid.Required),
  314. )
  315. }))),
  316. ); err != nil {
  317. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  318. return
  319. }
  320. if err := middleware.BackendOperation(c).OpsService.AbortionCreateBatch(c, &req); err != nil {
  321. apierr.ClassifiedAbort(c, err)
  322. return
  323. }
  324. ginutil.JSONResp(c, &operationPb.CommonOK{
  325. Code: http.StatusOK,
  326. Msg: "ok",
  327. Data: &operationPb.Success{Success: true},
  328. })
  329. }
  330. func AbortionList(c *gin.Context) {
  331. var req pasturePb.SearchEventRequest
  332. if err := ginutil.BindProto(c, &req); err != nil {
  333. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  334. return
  335. }
  336. pagination := &pasturePb.PaginationModel{
  337. Page: int32(c.GetInt(middleware.Page)),
  338. PageSize: int32(c.GetInt(middleware.PageSize)),
  339. PageOffset: int32(c.GetInt(middleware.PageOffset)),
  340. }
  341. res, err := middleware.Dependency(c).StoreEventHub.OpsService.AbortionList(c, &req, pagination)
  342. if err != nil {
  343. apierr.ClassifiedAbort(c, err)
  344. return
  345. }
  346. ginutil.JSONResp(c, res)
  347. }
  348. func WeaningCreateBatch(c *gin.Context) {
  349. var req pasturePb.EventWeaningBatchRequest
  350. if err := ginutil.BindProto(c, &req); err != nil {
  351. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  352. return
  353. }
  354. if err := valid.ValidateStruct(&req,
  355. valid.Field(req.WeaningAt, valid.Required),
  356. valid.Field(req.OperationId, valid.Required),
  357. valid.Field(req.PenId, valid.Required),
  358. valid.Field(&req.Item, valid.Required, valid.Each(valid.By(func(value interface{}) error {
  359. item := value.(pasturePb.WeaningBatch)
  360. return valid.ValidateStruct(&item,
  361. valid.Field(&item.CowId, valid.Required),
  362. valid.Field(&item.Weight, valid.Required),
  363. )
  364. }))),
  365. ); err != nil {
  366. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  367. return
  368. }
  369. if err := middleware.BackendOperation(c).OpsService.WeaningBatch(c, &req); err != nil {
  370. apierr.ClassifiedAbort(c, err)
  371. return
  372. }
  373. ginutil.JSONResp(c, &operationPb.CommonOK{
  374. Code: http.StatusOK,
  375. Msg: "ok",
  376. Data: &operationPb.Success{Success: true},
  377. })
  378. }