event_breed.go 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403
  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 SameTimeCreate(c *gin.Context) {
  201. var req pasturePb.EventSameTime
  202. if err := ginutil.BindProto(c, &req); err != nil {
  203. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  204. return
  205. }
  206. if err := valid.ValidateStruct(&req,
  207. valid.Field(&req.Id, valid.Required),
  208. valid.Field(&req.DrugsId, valid.Required),
  209. valid.Field(&req.OperationId, valid.Required),
  210. valid.Field(&req.SameTimeAt, valid.Required),
  211. ); err != nil {
  212. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  213. return
  214. }
  215. if err := middleware.BackendOperation(c).OpsService.SameTimeCreate(c, &req); err != nil {
  216. apierr.ClassifiedAbort(c, err)
  217. return
  218. }
  219. ginutil.JSONResp(c, &operationPb.CommonOK{
  220. Code: http.StatusOK,
  221. Msg: "ok",
  222. Data: &operationPb.Success{Success: true},
  223. })
  224. }
  225. func SameTimeBatch(c *gin.Context) {
  226. var req pasturePb.EventSameTimeBatch
  227. if err := ginutil.BindProto(c, &req); err != nil {
  228. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  229. return
  230. }
  231. if err := valid.ValidateStruct(&req,
  232. valid.Field(&req.OperationId, valid.Required),
  233. valid.Field(&req.DrugsId, valid.Required),
  234. valid.Field(&req.SameTimeAt, valid.Required),
  235. valid.Field(&req.Item, valid.Required, valid.Each(valid.By(func(value interface{}) error {
  236. item := value.(pasturePb.EventSameTimeItem)
  237. return valid.ValidateStruct(&item,
  238. valid.Field(&item.CowId, valid.Required),
  239. )
  240. }))),
  241. ); err != nil {
  242. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  243. return
  244. }
  245. if err := middleware.BackendOperation(c).OpsService.SameTimeBatch(c, &req); err != nil {
  246. apierr.ClassifiedAbort(c, err)
  247. return
  248. }
  249. ginutil.JSONResp(c, &operationPb.CommonOK{
  250. Code: http.StatusOK,
  251. Msg: "ok",
  252. Data: &operationPb.Success{Success: true},
  253. })
  254. }
  255. func SameTimeList(c *gin.Context) {
  256. var req pasturePb.SearchEventRequest
  257. if err := ginutil.BindProto(c, &req); err != nil {
  258. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  259. return
  260. }
  261. pagination := &pasturePb.PaginationModel{
  262. Page: int32(c.GetInt(middleware.Page)),
  263. PageSize: int32(c.GetInt(middleware.PageSize)),
  264. PageOffset: int32(c.GetInt(middleware.PageOffset)),
  265. }
  266. res, err := middleware.Dependency(c).StoreEventHub.OpsService.SameTimeList(c, &req, pagination)
  267. if err != nil {
  268. apierr.ClassifiedAbort(c, err)
  269. return
  270. }
  271. ginutil.JSONResp(c, res)
  272. }
  273. func AbortionCreateBatch(c *gin.Context) {
  274. var req pasturePb.EventAbortionBatch
  275. if err := ginutil.BindProto(c, &req); err != nil {
  276. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  277. return
  278. }
  279. if err := valid.ValidateStruct(&req,
  280. valid.Field(&req.Item, valid.Required, valid.Each(valid.By(func(value interface{}) error {
  281. item := value.(pasturePb.EventAbortionRequest)
  282. return valid.ValidateStruct(&item,
  283. valid.Field(&item.CowId, valid.Required),
  284. valid.Field(&item.IsAfterbirth, valid.Required),
  285. valid.Field(&item.AbortionReasons, valid.Required),
  286. valid.Field(&item.AbortionAt, valid.Required),
  287. valid.Field(&item.OperationId, valid.Required),
  288. )
  289. }))),
  290. ); err != nil {
  291. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  292. return
  293. }
  294. if err := middleware.BackendOperation(c).OpsService.AbortionCreateBatch(c, &req); err != nil {
  295. apierr.ClassifiedAbort(c, err)
  296. return
  297. }
  298. ginutil.JSONResp(c, &operationPb.CommonOK{
  299. Code: http.StatusOK,
  300. Msg: "ok",
  301. Data: &operationPb.Success{Success: true},
  302. })
  303. }
  304. func AbortionList(c *gin.Context) {
  305. var req pasturePb.SearchEventRequest
  306. if err := ginutil.BindProto(c, &req); err != nil {
  307. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  308. return
  309. }
  310. pagination := &pasturePb.PaginationModel{
  311. Page: int32(c.GetInt(middleware.Page)),
  312. PageSize: int32(c.GetInt(middleware.PageSize)),
  313. PageOffset: int32(c.GetInt(middleware.PageOffset)),
  314. }
  315. res, err := middleware.Dependency(c).StoreEventHub.OpsService.AbortionList(c, &req, pagination)
  316. if err != nil {
  317. apierr.ClassifiedAbort(c, err)
  318. return
  319. }
  320. ginutil.JSONResp(c, res)
  321. }
  322. func WeaningCreateBatch(c *gin.Context) {
  323. var req pasturePb.EventWeaningBatchRequest
  324. if err := ginutil.BindProto(c, &req); err != nil {
  325. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  326. return
  327. }
  328. if err := valid.ValidateStruct(&req,
  329. valid.Field(req.WeaningAt, valid.Required),
  330. valid.Field(req.OperationId, valid.Required),
  331. valid.Field(req.PenId, valid.Required),
  332. valid.Field(&req.Item, valid.Required, valid.Each(valid.By(func(value interface{}) error {
  333. item := value.(pasturePb.WeaningBatch)
  334. return valid.ValidateStruct(&item,
  335. valid.Field(&item.CowId, valid.Required),
  336. valid.Field(&item.Weight, valid.Required),
  337. )
  338. }))),
  339. ); err != nil {
  340. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  341. return
  342. }
  343. if err := middleware.BackendOperation(c).OpsService.WeaningBatch(c, &req); err != nil {
  344. apierr.ClassifiedAbort(c, err)
  345. return
  346. }
  347. ginutil.JSONResp(c, &operationPb.CommonOK{
  348. Code: http.StatusOK,
  349. Msg: "ok",
  350. Data: &operationPb.Success{Success: true},
  351. })
  352. }