package backend import ( "context" "kpt-pasture/config" "kpt-pasture/model" "kpt-pasture/service/asynqsvc" "kpt-pasture/service/wechat" "kpt-pasture/store/kptstore" pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow" "gitee.com/xuyiping_admin/pkg/di" "go.uber.org/dig" ) var Module = di.Options(di.Provide(NewStore)) type Hub struct { dig.In OpsService KptService } type StoreEntry struct { dig.In Cfg *config.AppConfig DB *kptstore.DB HttpClient *wechat.ClientService AsynqClient asynqsvc.Client } func NewStore(store StoreEntry) KptService { return &store } func NewStoreEntry(cfg *config.AppConfig, Db *kptstore.DB) *StoreEntry { return &StoreEntry{ Cfg: cfg, DB: Db, HttpClient: nil, } } //go:generate mockgen -destination mock/kptservice.go -package kptservicemock kpt-pasture/module/backend KptService type KptService interface { SystemService // 系统相关操作 PastureManageService // 牧场管理相关 ConfigDataService // 配置数据相关 EventService // 事件相关 CowService // 牛只相关 GoodsService // 牧场物品相关 AnalyseService // 分析相关 DashboardService // 牧场统计相关 WorkService // 日常工作相关 TestService // 测试相关 } //go:generate mockgen -destination mock/SystemService.go -package kptservicemock kpt-pasture/module/backend SystemService type SystemService interface { // Login 系统用户相关 Login(ctx context.Context, req *pasturePb.SearchUserRequest) (*pasturePb.SystemUserResponse, error) SearchSystemUserList(ctx context.Context, req *pasturePb.SearchUserRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchUserResponse, error) IsShowSystemUser(ctx context.Context, userId int64) error DeleteSystemUser(ctx context.Context, userId int64) error SystemUserCreateOrUpdate(ctx context.Context, req *pasturePb.SearchUserRequest) error ResetPasswordSystemUser(ctx context.Context, req *pasturePb.ResetUserPasswordRequest) error SystemUserRole(ctx context.Context, userId int64) (*pasturePb.SystemUserRoleResponse, error) SystemUserRoleSave(ctx context.Context, req *pasturePb.SystemUserRoleRequest) error // GetSystemUserMenu 当前登录用户菜单权限 GetSystemUserMenu(ctx context.Context) (*pasturePb.SystemUserMenuTreeResponse, error) // SearchSystemRoleList 系统角色相关 SearchSystemRoleList(ctx context.Context, req *pasturePb.SearchRoleRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchRoleResponse, error) DeleteSystemRole(ctx context.Context, roleId int64) error IsShowSystemRole(ctx context.Context, roleId int64) error SystemRoleCreateOrUpdate(ctx context.Context, req *pasturePb.SearchRoleRequest) error GetRoleMenuList(ctx context.Context, roleId int64) (*pasturePb.SystemRoleMenuResponse, error) RoleMenuSave(ctx context.Context, res *pasturePb.SystemRoleMenuRequest) error SystemRoleList(ctx context.Context) (*pasturePb.GetRoleListResponse, error) // SearchSystemMenuList 系统菜单权限 SearchSystemMenuList(ctx context.Context, req *pasturePb.SearchMenuRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchMenuResponse, error) DeleteSystemMenu(ctx context.Context, menuId int64) error CreateOrUpdateSystemMenu(ctx context.Context, req *pasturePb.SearchMenuRequest) error SystemMenuTree(ctx context.Context) (*pasturePb.SystemMenuTreeResponse, error) // SearchSystemDeptList 部门列表 SearchSystemDeptList(ctx context.Context, req *pasturePb.SearchDeptRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchDeptResponse, error) SystemDepDelete(ctx context.Context, id int64) error SystemDeptCreateOrUpdate(ctx context.Context, req *pasturePb.SearchDeptRequest) error // SearchUserPastureList 用户相关牧场列表 SearchUserPastureList(ctx context.Context) (*pasturePb.SystemUserPastureListResponse, error) } //go:generate mockgen -destination mock/PastureManageService.go -package kptservicemock kpt-pasture/module/backend PastureManageService type PastureManageService interface { SearchBarnList(ctx context.Context, req *pasturePb.SearchNameRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchBarnResponse, error) CreateOrUpdateBarn(ctx context.Context, req *pasturePb.SearchBarnList) error SearchBarnTypeList(ctx context.Context, req *pasturePb.SearchNameRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchBaseConfigResponse, error) CreateOrUpdateBarnType(ctx context.Context, req *pasturePb.SearchBaseConfigList) error SearchBreedStatusList(ctx context.Context, req *pasturePb.SearchNameRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchBaseConfigResponse, error) CreateOrUpdateBreedStatus(ctx context.Context, req *pasturePb.SearchBaseConfigList) error SearchCowKindList(ctx context.Context, req *pasturePb.SearchNameRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchBaseConfigResponse, error) CreateOrUpdateCowKind(ctx context.Context, req *pasturePb.SearchBaseConfigList) error SearchCowStatusList(ctx context.Context, req *pasturePb.SearchNameRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchBaseConfigResponse, error) CreateOrUpdateCowStatus(ctx context.Context, req *pasturePb.SearchBaseConfigList) error SearchCowTypeList(ctx context.Context, req *pasturePb.SearchNameRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchBaseConfigResponse, error) CreateOrUpdateCowType(ctx context.Context, req *pasturePb.SearchBaseConfigList) error SearchTransferPenReasonList(ctx context.Context, req *pasturePb.SearchNameRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchBaseConfigResponse, error) CreateOrUpdateTransferPenReason(ctx context.Context, req *pasturePb.SearchBaseConfigList) error SearchCowSourceList(ctx context.Context, req *pasturePb.SearchNameRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchBaseConfigResponse, error) CreateOrUpdateCowSource(ctx context.Context, req *pasturePb.SearchBaseConfigList) error CreateOrUpdateSameTime(ctx context.Context, req *pasturePb.SearchSameTimeList) error SearchSameTimeList(ctx context.Context, req *pasturePb.SearchNameRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SameTimeResponse, error) SameTimeIsShow(ctx context.Context, id int64) error SearchDiseaseTypeList(ctx context.Context, req *pasturePb.SearchNameRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchBaseConfigResponse, error) CreateOrUpdateDiseaseType(ctx context.Context, req *pasturePb.SearchBaseConfigList) error SearchDiseaseList(ctx context.Context, req *pasturePb.SearchDiseaseRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchDiseaseResponse, error) CreateOrUpdateDisease(ctx context.Context, req *pasturePb.SearchDiseaseList) error SearchPrescriptionList(ctx context.Context, req *pasturePb.SearchPrescriptionRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchPrescriptionResponse, error) CreateOrUpdatePrescription(ctx context.Context, req *pasturePb.PrescriptionRequest) error PrescriptionDetail(ctx context.Context, id int64) (*pasturePb.PrescriptionDetailResponse, error) ImmunizationList(ctx context.Context, req *pasturePb.ImmunizationRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchImmunizationResponse, error) CreatedOrUpdateImmunization(ctx context.Context, req *pasturePb.ImmunizationRequest) error ImmunizationIsShow(ctx context.Context, id int64) error SystemBasicEdit(ctx context.Context, req *pasturePb.BaseDataConfigBatch) error SystemBasicList(ctx context.Context) (*pasturePb.SearchBaseDataConfigResponse, error) } //go:generate mockgen -destination mock/ConfigDataService.go -package kptservicemock kpt-pasture/module/backend ConfigDataService type ConfigDataService interface { BarnTypeOptions(ctx context.Context) (*pasturePb.ConfigOptionsListResponse, error) BarnListOptions(ctx context.Context, penType int, isAll string) (*pasturePb.ConfigOptionsListResponse, error) BreedStatusOptions(ctx context.Context) (*pasturePb.ConfigOptionsListResponse, error) CowKindOptions(ctx context.Context) (*pasturePb.ConfigOptionsListResponse, error) CowSourceOptions(ctx context.Context) (*pasturePb.ConfigOptionsListResponse, error) CowTypeOptions(ctx context.Context, optionName, isAll string) (*pasturePb.ConfigOptionsListResponse, error) CowTransferPenReasonOptions(ctx context.Context) (*pasturePb.ConfigOptionsListResponse, error) SystemUserOptions(ctx context.Context, depId int) (*pasturePb.ConfigOptionsListResponse, error) BullOptions(ctx context.Context) (*pasturePb.BullOptionsListResponse, error) SystemBaseConfigOptions(ctx context.Context, optionName, isAll string) (*pasturePb.ConfigOptionsListResponse, error) DiseaseTypeOptions(ctx context.Context, isChildren string) (*pasturePb.ConfigOptionsListResponse, error) DiseaseOptions(ctx context.Context) (*pasturePb.ConfigOptionsListResponse, error) PrescriptionOptions(ctx context.Context) (*pasturePb.ConfigOptionsListResponse, error) } //go:generate mockgen -destination mock/EventService.go -package kptservicemock kpt-pasture/module/backend EventService type EventService interface { // EnterList 入场列表 EnterList(ctx context.Context, req *pasturePb.SearchEventRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchEnterEventResponse, error) CreateEnter(ctx context.Context, req *pasturePb.EventEnterRequest) error // GroupTransferList 转群 GroupTransferList(ctx context.Context, req *pasturePb.SearchEventRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchTransferGroupEventResponse, error) CreateGroupTransfer(ctx context.Context, req *pasturePb.TransferGroupEventRequest) error // BodyScoreList 体况评分 BodyScoreList(ctx context.Context, req *pasturePb.SearchEventRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchBodyScoreEventResponse, error) CreateBodyScore(ctx context.Context, req *pasturePb.BodyScoreEventRequest) error // CalvingList 分娩 CalvingList(ctx context.Context, req *pasturePb.SearchEventRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchLavingEventResponse, error) CalvingCreate(ctx context.Context, req *pasturePb.EventCalving) error // PregnantCheckList 孕检 PregnantCheckList(ctx context.Context, req *pasturePb.SearchEventRequest, pagination *pasturePb.PaginationModel) (*pasturePb.EventPregnantCheckResponse, error) PregnantCheckCreateBatch(ctx context.Context, req *pasturePb.EventPregnantCheckBatch) error // MatingList 配种 MatingList(ctx context.Context, req *pasturePb.SearchEventRequest, pagination *pasturePb.PaginationModel) (*pasturePb.EventMatingResponse, error) MatingCreate(ctx context.Context, req *pasturePb.EventMating) error // EstrusBatchMating 发情批量处理配种 EstrusBatchMating(ctx context.Context, req *pasturePb.EventNaturalEstrusBatch) error EstrusList(ctx context.Context, req *pasturePb.EstrusItemsRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchEventEstrusResponse, error) // AbortionList 流产 AbortionList(ctx context.Context, req *pasturePb.SearchEventRequest, pagination *pasturePb.PaginationModel) (*pasturePb.EventAbortionResponse, error) AbortionCreateBatch(ctx context.Context, req *pasturePb.EventAbortionBatch) error // WeaningBatch 断奶 WeaningBatch(ctx context.Context, req *pasturePb.EventWeaningBatchRequest) error // SameTimeCreate 同期 SameTimeCreate(ctx context.Context, req *pasturePb.EventSameTime) error SameTimeBatch(ctx context.Context, req *pasturePb.EventSameTimeBatch) error SameTimeList(ctx context.Context, req *pasturePb.SearchEventRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchSameTimeResponse, error) // WeightList 称重 WeightList(ctx context.Context, req *pasturePb.SearchEventRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchWeightEventResponse, error) WeightBatch(ctx context.Context, req *pasturePb.BatchEventWeight) error // CowDiseaseCreate 提交发病牛只 CowDiseaseCreate(ctx context.Context, req *pasturePb.EventCowDiseaseRequest, source string) error // CowDiseaseDiagnose 诊断 CowDiseaseDiagnose(ctx context.Context, req *pasturePb.CowDiagnosedRequest) error // CowDiseaseTreatment 治疗 CowDiseaseTreatment(ctx context.Context, req *pasturePb.CowTreatmentRequest) error // DiseaseSuggestPrescription 疾病推荐处方 DiseaseSuggestPrescription(ctx context.Context, diseaseId int64) (*pasturePb.ConfigOptionsListResponse, error) // CowDiseaseTreatmentDetail 治疗详情 CowDiseaseTreatmentDetail(ctx context.Context, req *pasturePb.EventCowTreatmentDetailRequest, pagination *pasturePb.PaginationModel) (*pasturePb.EventCowTreatmentDetailResponse, error) // CowDiseaseCurable 治愈 CowDiseaseCurable(ctx context.Context, req *pasturePb.EventCowCurableRequest) error // DepartureBatch 离场 DepartureBatch(ctx context.Context, req *pasturePb.EventDepartureBatch) error // CowEarNumberUpdate 修改耳号 CowEarNumberUpdate(ctx context.Context, req *pasturePb.EventReplaceEarNumber) error // SubmitEventLog 记录提交事件结果日志 SubmitEventLog(ctx context.Context, pastureId int64, cow *model.Cow, eventType pasturePb.EventType_Kind, exposeEstrusType pasturePb.ExposeEstrusType_Kind, req interface{}) *model.EventCowLog } //go:generate mockgen -destination mock/CowService.go -package kptservicemock kpt-pasture/module/backend CowService type CowService interface { Detail(ctx context.Context, req *pasturePb.SearchEventRequest) (*pasturePb.CowInfoResponse, error) List(ctx context.Context, req *pasturePb.SearchEventRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchCowListResponse, error) EventList(ctx context.Context, req *pasturePb.SearchCowEventListRequest, pagination *pasturePb.PaginationModel) (*pasturePb.CowEventListResponse, error) BehaviorCurve(ctx context.Context, req *pasturePb.CowBehaviorCurveRequest) (*model.CowBehaviorCurveResponse, error) CowGrowthCurve(ctx context.Context, req *pasturePb.CowGrowthCurveRequest) (*pasturePb.CowGrowthCurveResponse, error) IndicatorsComparison(ctx context.Context, req *pasturePb.IndicatorsComparisonRequest) (*model.IndicatorsComparisonResponse, error) } //go:generate mockgen -destination mock/GoodsService.go -package kptservicemock kpt-pasture/module/backend GoodsService type GoodsService interface { // FrozenSemenList 冻精 FrozenSemenList(ctx context.Context, req *pasturePb.FrozenSemenRequest, pagination *pasturePb.PaginationModel) (*pasturePb.FrozenSemenResponse, error) FrozenSemenCreate(ctx context.Context, req *pasturePb.SearchFrozenSemenList) error // DrugsList 药品 DrugsList(ctx context.Context, req *pasturePb.SearchDrugsRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchDrugsResponse, error) DrugsCreateOrUpdate(ctx context.Context, req *pasturePb.SearchDrugsList) error // MedicalEquipmentList 医疗设备 MedicalEquipmentList(ctx context.Context, req *pasturePb.SearchMedicalEquipmentRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchMedicalEquipmentResponse, error) MedicalEquipmentCreateOrUpdate(ctx context.Context, req *pasturePb.SearchMedicalEquipmentList) error // NeckRingList 脖环相关 NeckRingList(ctx context.Context, req *pasturePb.SearchNeckRingRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchNeckRingResponse, error) NeckRingCreateOrUpdate(ctx context.Context, req *pasturePb.NeckRingCreateRequest) error // OutboundApply 出库申请 OutboundApply(ctx context.Context, req *pasturePb.OutboundApplyItem) error OutboundList(ctx context.Context, req *pasturePb.SearchOutboundApplyRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchOutboundApplyResponse, error) OutboundAudit(ctx context.Context, req *pasturePb.OutboundApplyAuditRequest) error OutboundDetail(ctx context.Context, id int64) (*pasturePb.OutboundDetailResponse, error) OutboundDelete(ctx context.Context, id int64) error } //go:generate mockgen -destination mock/AnalyseService.go -package kptservicemock kpt-pasture/module/backend AnalyseService type AnalyseService interface { WeightScatterPlot(ctx context.Context, req *pasturePb.SearchGrowthCurvesRequest) (*pasturePb.GrowthCurvesResponse, error) WeightRange(ctx context.Context, req *pasturePb.WeightRangeRequest) (*pasturePb.WeightRangeResponse, error) MatingTimely(ctx context.Context, req *pasturePb.MatingTimelyRequest) (*model.MatingTimelyResponse, error) PenWeight(ctx context.Context, req *pasturePb.PenWeightRequest, pagination *pasturePb.PaginationModel) (*pasturePb.PenWeightResponse, error) AbortionRate(ctx context.Context, req *pasturePb.AbortionRateRequest) (*pasturePb.AbortionRateResponse, error) TwentyOnePregnantRate(ctx context.Context, req *pasturePb.TwentyOnePregnantRateRequest) (*pasturePb.TwentyOnePregnantRateResponse, error) PregnancyReport(ctx context.Context, req *pasturePb.PregnancyReportRequest, pagination *pasturePb.PaginationModel) (*pasturePb.PregnancyReportResponse, error) CalvingReport(ctx context.Context, req *pasturePb.CalvingReportRequest) (*pasturePb.CalvingReportResponse, error) DiseaseCureReport(ctx context.Context, req *pasturePb.DiseaseCureRateRequest) (*pasturePb.DiseaseCureRateResponse, error) SaleCowReport(ctx context.Context, req *pasturePb.SaleCowReportRequest) (*pasturePb.SaleCowReportResponse, error) SingleFactorInfantSurvivalRateAnalysis(ctx context.Context, req *pasturePb.SingleFactorPregnancyRateRequest) (*pasturePb.SingleFactorPregnancyRateResponse, error) MultipleFactorAnalysis(ctx context.Context, req *pasturePb.MultiFactorPregnancyRateRequest) (*model.MultiFactorPregnancyRateResponse, error) } //go:generate mockgen -destination mock/DashboardService.go -package kptservicemock kpt-pasture/module/backend DashboardService type DashboardService interface { Bar(ctx context.Context) (*pasturePb.BarCowStructResponse, error) NeckRingWarning(ctx context.Context) (*pasturePb.IndexNeckRingResponse, error) FocusIndicatorsList(ctx context.Context, dimension string) (*pasturePb.IndexFocusIndicatorsResponse, error) FocusIndicatorsSet(ctx context.Context, req *pasturePb.IndexFocusIndicatorsSetRequest) error DataWarningSet(ctx context.Context, req *pasturePb.IndexDataWarningSetRequest) error DataWarningList(ctx context.Context) (*pasturePb.IndexDataWarningResponse, error) } //go:generate mockgen -destination mock/WorkService.go -package kptservicemock kpt-pasture/module/backend WorkService type WorkService interface { OrderList(ctx context.Context, req *pasturePb.SearchWorkOrderRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchWorkOrderResponse, error) OrderCreateOrUpdate(ctx context.Context, req *pasturePb.WorkOrderList) error OrderIsShow(ctx context.Context, id int64) error UserWorkOrderList(ctx context.Context, workOrderStatus pasturePb.WorkOrderStatus_Kind, pagination *pasturePb.PaginationModel) (*pasturePb.UserWorkOrderResponse, error) // CalendarList 日历相关 CalendarList(ctx context.Context, req *pasturePb.CalendarRequest) (*pasturePb.CalendarResponse, error) CalendarToDoList(ctx context.Context, req *pasturePb.CalendarToDoRequest, pagination *pasturePb.PaginationModel) (*pasturePb.CalendarToDoResponse, error) CalendarTableDetail(ctx context.Context, req *pasturePb.CalendarTableRequest, pagination *pasturePb.PaginationModel) (interface{}, error) // SameTimeCowList 清单相关 SameTimeCowList(ctx context.Context, req *pasturePb.ItemsRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SameTimeItemResponse, error) ImmunisationCowList(ctx context.Context, req *pasturePb.ItemsRequest, pagination *pasturePb.PaginationModel) (*pasturePb.ImmunizationItemsResponse, error) PregnancyCheckCowList(ctx context.Context, req *pasturePb.ItemsRequest, pagination *pasturePb.PaginationModel) (*pasturePb.PregnancyCheckItemsResponse, error) WeaningCowList(ctx context.Context, req *pasturePb.ItemsRequest, pagination *pasturePb.PaginationModel) (*pasturePb.WeaningItemsResponse, error) MatingCowList(ctx context.Context, req *pasturePb.ItemsRequest, pagination *pasturePb.PaginationModel) (*pasturePb.MatingItemsResponse, error) CalvingCowList(ctx context.Context, req *pasturePb.ItemsRequest, pagination *pasturePb.PaginationModel) (*pasturePb.CalvingItemsResponse, error) CowDiseaseList(ctx context.Context, req *pasturePb.SearchEventCowTreatmentRequest, pagination *pasturePb.PaginationModel) (*pasturePb.EventCowDiseaseResponse, error) EstrusCowList(ctx context.Context, req *pasturePb.EstrusItemsRequest, pagination *pasturePb.PaginationModel) (*pasturePb.EventEstrusResponse, error) } type TestService interface { CowNeckRingNumberBound(ctx context.Context, pagination *pasturePb.PaginationModel) error CowNeckRingNumberBound2(ctx context.Context, pagination *pasturePb.PaginationModel) error UpdateCowPen(ctx context.Context, pagination *pasturePb.PaginationModel) error TestDataWaring(ctx context.Context, userId int64) error }