123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299 |
- 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
- }
|