interface.go 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268
  1. package backend
  2. import (
  3. "context"
  4. "kpt-pasture/config"
  5. "kpt-pasture/model"
  6. "kpt-pasture/service/asynqsvc"
  7. "kpt-pasture/service/wechat"
  8. "kpt-pasture/store/kptstore"
  9. pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
  10. "gitee.com/xuyiping_admin/pkg/di"
  11. "go.uber.org/dig"
  12. )
  13. var Module = di.Options(di.Provide(NewStore))
  14. type Hub struct {
  15. dig.In
  16. OpsService KptService
  17. }
  18. type StoreEntry struct {
  19. dig.In
  20. Cfg *config.AppConfig
  21. DB *kptstore.DB
  22. HttpClient *wechat.ClientService
  23. AsynqClient asynqsvc.Client
  24. }
  25. func NewStore(store StoreEntry) KptService {
  26. return &store
  27. }
  28. func NewStoreEntry(cfg *config.AppConfig, Db *kptstore.DB) *StoreEntry {
  29. return &StoreEntry{
  30. Cfg: cfg,
  31. DB: Db,
  32. HttpClient: nil,
  33. }
  34. }
  35. //go:generate mockgen -destination mock/kptservice.go -package kptservicemock kpt-pasture/module/backend KptService
  36. type KptService interface {
  37. SystemService // 系统相关操作
  38. PastureManageService // 牧场管理相关
  39. ConfigDataService // 配置数据相关
  40. EventService // 事件相关
  41. CowService // 牛只相关
  42. GoodsService // 牧场物品相关
  43. AnalyseService // 分析相关
  44. DashboardService // 牧场统计相关
  45. WorkService // 日常工作相关
  46. }
  47. //go:generate mockgen -destination mock/SystemService.go -package kptservicemock kpt-pasture/module/backend SystemService
  48. type SystemService interface {
  49. // Login 系统用户相关
  50. Login(ctx context.Context, req *pasturePb.SearchUserRequest) (*pasturePb.SystemUserResponse, error)
  51. SearchSystemUserList(ctx context.Context, req *pasturePb.SearchUserRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchUserResponse, error)
  52. IsShowSystemUser(ctx context.Context, userId int64) error
  53. DeleteSystemUser(ctx context.Context, userId int64) error
  54. SystemUserCreateOrUpdate(ctx context.Context, req *pasturePb.SearchUserRequest) error
  55. ResetPasswordSystemUser(ctx context.Context, req *pasturePb.ResetUserPasswordRequest) error
  56. SystemUserRole(ctx context.Context, userId int64) (*pasturePb.SystemUserRoleResponse, error)
  57. SystemUserRoleSave(ctx context.Context, req *pasturePb.SystemUserRoleRequest) error
  58. // GetSystemUserMenu 当前登录用户菜单权限
  59. GetSystemUserMenu(ctx context.Context) (*pasturePb.SystemUserMenuTreeResponse, error)
  60. GetCurrentUserName(ctx context.Context) (string, error)
  61. // SearchSystemRoleList 系统角色相关
  62. SearchSystemRoleList(ctx context.Context, req *pasturePb.SearchRoleRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchRoleResponse, error)
  63. DeleteSystemRole(ctx context.Context, roleId int64) error
  64. IsShowSystemRole(ctx context.Context, roleId int64) error
  65. SystemRoleCreateOrUpdate(ctx context.Context, req *pasturePb.SearchRoleRequest) error
  66. GetRoleMenuList(ctx context.Context, roleId int64) (*pasturePb.SystemRoleMenuResponse, error)
  67. RoleMenuSave(ctx context.Context, res *pasturePb.SystemRoleMenuRequest) error
  68. SystemRoleList(ctx context.Context) (*pasturePb.GetRoleListResponse, error)
  69. // SearchSystemMenuList 系统菜单权限
  70. SearchSystemMenuList(ctx context.Context, req *pasturePb.SearchMenuRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchMenuResponse, error)
  71. DeleteSystemMenu(ctx context.Context, menuId int64) error
  72. CreateOrUpdateSystemMenu(ctx context.Context, req *pasturePb.SearchMenuRequest) error
  73. SystemMenuTree(ctx context.Context) (*pasturePb.SystemMenuTreeResponse, error)
  74. // SearchSystemDeptList 部门列表
  75. SearchSystemDeptList(ctx context.Context, req *pasturePb.SearchDeptRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchDeptResponse, error)
  76. SystemDepDelete(ctx context.Context, id int64) error
  77. SystemDeptCreateOrUpdate(ctx context.Context, req *pasturePb.SearchDeptRequest) error
  78. }
  79. //go:generate mockgen -destination mock/PastureManageService.go -package kptservicemock kpt-pasture/module/backend PastureManageService
  80. type PastureManageService interface {
  81. SearchBarnList(ctx context.Context, req *pasturePb.SearchNameRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchBarnResponse, error)
  82. CreateOrUpdateBarn(ctx context.Context, req *pasturePb.SearchBarnList) error
  83. SearchBarnTypeList(ctx context.Context, req *pasturePb.SearchNameRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchBaseConfigResponse, error)
  84. CreateOrUpdateBarnType(ctx context.Context, req *pasturePb.SearchBaseConfigList) error
  85. SearchBreedStatusList(ctx context.Context, req *pasturePb.SearchNameRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchBaseConfigResponse, error)
  86. CreateOrUpdateBreedStatus(ctx context.Context, req *pasturePb.SearchBaseConfigList) error
  87. SearchCowKindList(ctx context.Context, req *pasturePb.SearchNameRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchBaseConfigResponse, error)
  88. CreateOrUpdateCowKind(ctx context.Context, req *pasturePb.SearchBaseConfigList) error
  89. SearchCowStatusList(ctx context.Context, req *pasturePb.SearchNameRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchBaseConfigResponse, error)
  90. CreateOrUpdateCowStatus(ctx context.Context, req *pasturePb.SearchBaseConfigList) error
  91. SearchCowTypeList(ctx context.Context, req *pasturePb.SearchNameRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchBaseConfigResponse, error)
  92. CreateOrUpdateCowType(ctx context.Context, req *pasturePb.SearchBaseConfigList) error
  93. SearchTransferPenReasonList(ctx context.Context, req *pasturePb.SearchNameRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchBaseConfigResponse, error)
  94. CreateOrUpdateTransferPenReason(ctx context.Context, req *pasturePb.SearchBaseConfigList) error
  95. SearchCowSourceList(ctx context.Context, req *pasturePb.SearchNameRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchBaseConfigResponse, error)
  96. CreateOrUpdateCowSource(ctx context.Context, req *pasturePb.SearchBaseConfigList) error
  97. CreateOrUpdateSameTime(ctx context.Context, req *pasturePb.SearchSameTimeList) error
  98. SearchSameTimeList(ctx context.Context, req *pasturePb.SearchNameRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SameTimeResponse, error)
  99. SameTimeIsShow(ctx context.Context, id int64) error
  100. SearchDiseaseTypeList(ctx context.Context, req *pasturePb.SearchNameRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchBaseConfigResponse, error)
  101. CreateOrUpdateDiseaseType(ctx context.Context, req *pasturePb.SearchBaseConfigList) error
  102. SearchDiseaseList(ctx context.Context, req *pasturePb.SearchDiseaseRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchDiseaseResponse, error)
  103. CreateOrUpdateDisease(ctx context.Context, req *pasturePb.SearchDiseaseList) error
  104. SearchPrescriptionList(ctx context.Context, req *pasturePb.SearchPrescriptionRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchPrescriptionResponse, error)
  105. CreateOrUpdatePrescription(ctx context.Context, req *pasturePb.PrescriptionRequest) error
  106. ImmunizationList(ctx context.Context, req *pasturePb.ImmunizationRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchImmunizationResponse, error)
  107. CreatedOrUpdateImmunization(ctx context.Context, req *pasturePb.ImmunizationRequest) error
  108. ImmunizationIsShow(ctx context.Context, id int64) error
  109. }
  110. //go:generate mockgen -destination mock/ConfigDataService.go -package kptservicemock kpt-pasture/module/backend ConfigDataService
  111. type ConfigDataService interface {
  112. BarnTypeOptions(ctx context.Context) (*pasturePb.ConfigOptionsListResponse, error)
  113. BarnListOptions(ctx context.Context, penType int, isAll string) (*pasturePb.ConfigOptionsListResponse, error)
  114. BreedStatusOptions(ctx context.Context) (*pasturePb.ConfigOptionsListResponse, error)
  115. CowKindOptions(ctx context.Context) (*pasturePb.ConfigOptionsListResponse, error)
  116. CowSourceOptions(ctx context.Context) (*pasturePb.ConfigOptionsListResponse, error)
  117. CowTypeOptions(ctx context.Context, optionName, isAll string) (*pasturePb.ConfigOptionsListResponse, error)
  118. CowTransferPenReasonOptions(ctx context.Context) (*pasturePb.ConfigOptionsListResponse, error)
  119. SystemUserOptions(ctx context.Context, depId int) (*pasturePb.ConfigOptionsListResponse, error)
  120. BullOptions(ctx context.Context) (*pasturePb.BullOptionsListResponse, error)
  121. SystemBaseConfigOptions(ctx context.Context, optionName, isAll string) (*pasturePb.ConfigOptionsListResponse, error)
  122. DiseaseTypeOptions(ctx context.Context, isChildren string) (*pasturePb.ConfigOptionsListResponse, error)
  123. DiseaseOptions(ctx context.Context) (*pasturePb.ConfigOptionsListResponse, error)
  124. PrescriptionOptions(ctx context.Context) (*pasturePb.ConfigOptionsListResponse, error)
  125. }
  126. //go:generate mockgen -destination mock/EventService.go -package kptservicemock kpt-pasture/module/backend EventService
  127. type EventService interface {
  128. // EnterList 入场列表
  129. EnterList(ctx context.Context, req *pasturePb.SearchEventRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchEnterEventResponse, error)
  130. CreateEnter(ctx context.Context, req *pasturePb.EventEnterRequest) error
  131. // GroupTransferList 转群
  132. GroupTransferList(ctx context.Context, req *pasturePb.SearchEventRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchTransferGroupEventResponse, error)
  133. CreateGroupTransfer(ctx context.Context, req *pasturePb.TransferGroupEventRequest) error
  134. // BodyScoreList 体况评分
  135. BodyScoreList(ctx context.Context, req *pasturePb.SearchEventRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchBodyScoreEventResponse, error)
  136. CreateBodyScore(ctx context.Context, req *pasturePb.BodyScoreEventRequest) error
  137. // CalvingList 分娩
  138. CalvingList(ctx context.Context, req *pasturePb.SearchEventRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchLavingEventResponse, error)
  139. CalvingCreate(ctx context.Context, req *pasturePb.EventCalving) error
  140. // PregnantCheckList 孕检
  141. PregnantCheckList(ctx context.Context, req *pasturePb.SearchEventRequest, pagination *pasturePb.PaginationModel) (*pasturePb.PregnantCheckEventResponse, error)
  142. PregnantCheckCreateBatch(ctx context.Context, req *pasturePb.EventPregnantCheckBatch) error
  143. // MatingList 配种
  144. MatingList(ctx context.Context, req *pasturePb.SearchEventRequest, pagination *pasturePb.PaginationModel) (*pasturePb.MatingEventResponse, error)
  145. MatingCreate(ctx context.Context, req *pasturePb.EventMating) error
  146. // EstrusList 发情
  147. EstrusList(ctx context.Context, req *pasturePb.SearchEventRequest, pagination *pasturePb.PaginationModel) (*pasturePb.EstrusEventResponse, error)
  148. EstrusCreate(ctx context.Context, req *pasturePb.EventEstrus) error
  149. EstrusBatch(ctx context.Context, req *pasturePb.EventEstrusBatch) error
  150. // AbortionList 流产
  151. AbortionList(ctx context.Context, req *pasturePb.SearchEventRequest, pagination *pasturePb.PaginationModel) (*pasturePb.EventAbortionResponse, error)
  152. AbortionCreate(ctx context.Context, req *pasturePb.EventAbortionRequest) error
  153. AbortionCreateBatch(ctx context.Context, req *pasturePb.EventAbortionBatch) error
  154. // WeaningBatch 断奶
  155. WeaningBatch(ctx context.Context, req *pasturePb.EventWeaningBatchRequest) error
  156. // SameTimeCreate 同期
  157. SameTimeCreate(ctx context.Context, req *pasturePb.EventSameTime) error
  158. SameTimeBatch(ctx context.Context, req *pasturePb.EventSameTimeBatch) error
  159. SameTimeList(ctx context.Context, req *pasturePb.SearchEventRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchSameTimeResponse, error)
  160. // WeightList 称重
  161. WeightList(ctx context.Context, req *pasturePb.SearchEventRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchWeightEventResponse, error)
  162. WeightBatch(ctx context.Context, req *pasturePb.EventWeight) error
  163. // CowDiseaseCreate 提交发病牛只
  164. CowDiseaseCreate(ctx context.Context, req *pasturePb.EventCowDiseaseRequest) error
  165. // CowDiseaseDiagnose 诊断
  166. CowDiseaseDiagnose(ctx context.Context, req *pasturePb.CowDiagnosedRequest) error
  167. // CowDiseaseTreatment 治疗
  168. CowDiseaseTreatment(ctx context.Context, req *pasturePb.CowTreatmentRequest) error
  169. // DiseaseSuggestPrescription 疾病推荐处方
  170. DiseaseSuggestPrescription(ctx context.Context, diseaseId int64) (*pasturePb.ConfigOptionsListResponse, error)
  171. // CowDiseaseTreatmentDetail 治疗详情
  172. CowDiseaseTreatmentDetail(ctx context.Context, req *pasturePb.EventCowTreatmentDetailRequest, pagination *pasturePb.PaginationModel) (*pasturePb.EventCowTreatmentDetailResponse, error)
  173. // CowDiseaseCurable 治愈
  174. CowDiseaseCurable(ctx context.Context, req *pasturePb.EventCowCurableRequest) error
  175. }
  176. //go:generate mockgen -destination mock/CowService.go -package kptservicemock kpt-pasture/module/backend CowService
  177. type CowService interface {
  178. CowList(ctx context.Context, req *pasturePb.SearchEventRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchCowListResponse, error)
  179. }
  180. //go:generate mockgen -destination mock/GoodsService.go -package kptservicemock kpt-pasture/module/backend GoodsService
  181. type GoodsService interface {
  182. // FrozenSemenList 冻精
  183. FrozenSemenList(ctx context.Context, req *pasturePb.FrozenSemenRequest, pagination *pasturePb.PaginationModel) (*pasturePb.FrozenSemenResponse, error)
  184. FrozenSemenCreate(ctx context.Context, req *pasturePb.SearchFrozenSemenList) error
  185. // DrugsList 药品
  186. DrugsList(ctx context.Context, req *pasturePb.SearchDrugsRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchDrugsResponse, error)
  187. DrugsCreateOrUpdate(ctx context.Context, req *pasturePb.SearchDrugsList) error
  188. // MedicalEquipmentList 医疗设备
  189. MedicalEquipmentList(ctx context.Context, req *pasturePb.SearchMedicalEquipmentRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchMedicalEquipmentResponse, error)
  190. MedicalEquipmentCreateOrUpdate(ctx context.Context, req *pasturePb.SearchMedicalEquipmentList) error
  191. // NeckRingLogList 脖环相关
  192. NeckRingLogList(ctx context.Context, req *pasturePb.SearchNeckRingRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchNeckRingResponse, error)
  193. NeckRingLogCreateOrUpdate(ctx context.Context, req *pasturePb.NeckRingCreateRequest) error
  194. // OutboundApply 出库申请
  195. OutboundApply(ctx context.Context, req *pasturePb.OutboundApplyItem) error
  196. OutboundList(ctx context.Context, req *pasturePb.SearchOutboundApplyRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchOutboundApplyResponse, error)
  197. OutboundAudit(ctx context.Context, req *pasturePb.OutboundApplyAuditRequest) error
  198. OutboundDetail(ctx context.Context, id int64) (*pasturePb.OutboundDetailResponse, error)
  199. }
  200. //go:generate mockgen -destination mock/AnalyseService.go -package kptservicemock kpt-pasture/module/backend AnalyseService
  201. type AnalyseService interface {
  202. GrowthCurve(ctx context.Context, req *pasturePb.SearchGrowthCurvesRequest) (*pasturePb.GrowthCurvesResponse, error)
  203. WeightRange(ctx context.Context, req *pasturePb.WeightRangeRequest) (*pasturePb.WeightRangeResponse, error)
  204. MatingTimely(ctx context.Context, req *pasturePb.MatingTimelyRequest) (*model.MatingTimelyResponse, error)
  205. PenWeight(ctx context.Context, req *pasturePb.PenWeightRequest, pagination *pasturePb.PaginationModel) (*pasturePb.PenWeightResponse, error)
  206. AbortionRate(ctx context.Context, req *pasturePb.AbortionRateRequest) (*pasturePb.AbortionRateResponse, error)
  207. TwentyOnePregnantRate(ctx context.Context, req *pasturePb.TwentyOnePregnantRateRequest) (*pasturePb.TwentyOnePregnantRateResponse, error)
  208. PregnancyReport(ctx context.Context, req *pasturePb.PregnancyReportRequest, pagination *pasturePb.PaginationModel) (*pasturePb.PregnancyReportResponse, error)
  209. CalvingReport(ctx context.Context, req *pasturePb.CalvingReportRequest) (*pasturePb.CalvingReportResponse, error)
  210. DiseaseCureReport(ctx context.Context, req *pasturePb.DiseaseCureRateRequest) (*pasturePb.DiseaseCureRateResponse, error)
  211. SaleCowReport(ctx context.Context, req *pasturePb.SaleCowReportRequest) (*pasturePb.SaleCowReportResponse, error)
  212. SingleFactorInfantSurvivalRateAnalysis(ctx context.Context, req *pasturePb.SingleFactorPregnancyRateRequest) (*pasturePb.SingleFactorPregnancyRateResponse, error)
  213. MultipleFactorAnalysis(ctx context.Context, req *pasturePb.MultiFactorPregnancyRateRequest) (*model.MultiFactorPregnancyRateResponse, error)
  214. }
  215. //go:generate mockgen -destination mock/DashboardService.go -package kptservicemock kpt-pasture/module/backend DashboardService
  216. type DashboardService interface {
  217. Bar(ctx context.Context) (*pasturePb.BarCowStructResponse, error)
  218. }
  219. //go:generate mockgen -destination mock/WorkService.go -package kptservicemock kpt-pasture/module/backend WorkService
  220. type WorkService interface {
  221. OrderList(ctx context.Context, req *pasturePb.SearchWorkOrderRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchWorkOrderResponse, error)
  222. OrderCreateOrUpdate(ctx context.Context, req *pasturePb.WorkOrderList) error
  223. OrderIsShow(ctx context.Context, id int64) error
  224. UserWorkOrderList(ctx context.Context, workOrderStatus pasturePb.WorkOrderStatus_Kind, pagination *pasturePb.PaginationModel) (*pasturePb.UserWorkOrderResponse, error)
  225. // CalendarList 日历相关
  226. CalendarList(ctx context.Context, req *pasturePb.CalendarRequest) (*pasturePb.CalendarResponse, error)
  227. CalendarToDoList(ctx context.Context, req *pasturePb.CalendarToDoRequest, pagination *pasturePb.PaginationModel) (*pasturePb.CalendarToDoResponse, error)
  228. CalendarTableDetail(ctx context.Context, req *pasturePb.CalendarTableRequest, pagination *pasturePb.PaginationModel) (interface{}, error)
  229. // ImmunisationCowList 清单相关
  230. ImmunisationCowList(ctx context.Context, req *pasturePb.ItemsRequest, pagination *pasturePb.PaginationModel) (*pasturePb.ImmunizationItemsResponse, error)
  231. SameTimeCowList(ctx context.Context, req *pasturePb.ItemsRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SameTimeItemResponse, error)
  232. PregnancyCheckCowList(ctx context.Context, req *pasturePb.ItemsRequest, pagination *pasturePb.PaginationModel) (*pasturePb.PregnancyCheckItemsResponse, error)
  233. WeaningCowList(ctx context.Context, req *pasturePb.ItemsRequest, pagination *pasturePb.PaginationModel) (*pasturePb.WeaningItemsResponse, error)
  234. MatingCowList(ctx context.Context, req *pasturePb.ItemsRequest, pagination *pasturePb.PaginationModel) (*pasturePb.MatingItemsResponse, error)
  235. CalvingCowList(ctx context.Context, req *pasturePb.ItemsRequest, pagination *pasturePb.PaginationModel) (*pasturePb.CalvingItemsResponse, error)
  236. CowDiseaseList(ctx context.Context, req *pasturePb.SearchEventCowTreatmentRequest, pagination *pasturePb.PaginationModel) (*pasturePb.EventCowDiseaseResponse, error)
  237. }