From 55638aee293249bece704d4a39586af9fe02facd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=98=BF=E6=81=92?= <2390904403@qq.com> Date: Fri, 20 Mar 2026 15:32:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AE=B6=E5=BA=AD=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/rpc/type.go | 11 +++++++++- pkg/rpc/user_family.go | 48 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 pkg/rpc/user_family.go diff --git a/pkg/rpc/type.go b/pkg/rpc/type.go index 42f8ac7..0132155 100644 --- a/pkg/rpc/type.go +++ b/pkg/rpc/type.go @@ -155,7 +155,7 @@ type AutomationAction struct { type AutomationTask struct { Id uint32 `json:"id"` // ID Title string `json:"title"` // 标题 - CreateUserId uint32 `json:"create_user_id"` // 创建用户ID + FamilyId uint32 `json:"family_id"` // 家庭ID EffectivePeriod uint8 `json:"effective_period"` // 生效时段 PeriodBeginTime *string `json:"period_begin_time,omitempty"` // 时段开始时间 PeriodEndTime *string `json:"period_end_time,omitempty"` // 时段结束时间 @@ -182,3 +182,12 @@ type UserDetail struct { QQ *string `json:"qq,omitempty"` // QQ Status uint8 `json:"status"` // 状态 } + +// 家庭详情 +type UserFamilyDetail struct { + Name string `json:"name"` // 名称 + Latitude *float64 `json:"latitude,omitempty"` //纬度 + Longitude *float64 `json:"longitude,omitempty"` // 经度 + Address *string `json:"address,omitempty"` // 地址 + CityAdCode *string `json:"city_ad_code,omitempty"` // 城市地理编码 +} diff --git a/pkg/rpc/user_family.go b/pkg/rpc/user_family.go new file mode 100644 index 0000000..d714ab2 --- /dev/null +++ b/pkg/rpc/user_family.go @@ -0,0 +1,48 @@ +package rpc + +import "fmt" + +// 用户家庭相关RPC +type UserFamily struct{} + +// 获取家庭详情 +func (uf *UserFamily) GetDetail(familyId uint32) (*UserFamilyDetail, error) { + body := map[string]any{ + "family_id": familyId, + "field_list": []string{"name", "latitude", "longitude", "address", "city_ad_code"}, + } + result := &Result[UserFamilyDetail]{} + if err := GetRequest().Send("user_family.get_detail", body, result); err != nil { + return nil, err + } + if result.Code != 0 { + return nil, fmt.Errorf("%s", result.Message) + } + return &result.Data, nil +} + +// 发送通知 +func (uf *UserFamily) SendNotice(familyId uint32, content string) error { + body := map[string]any{ + "family_id": familyId, + "content": content, + } + result := &Result[any]{} + if err := GetRequest().Send("user_family.send_notice", body, result); err != nil { + return err + } + if result.Code != 0 { + return fmt.Errorf("%s", result.Message) + } + return nil +} + +var userFamily *UserFamily + +// 获取用户相关RPC +func GetUserFamily() *UserFamily { + if userFamily == nil { + userFamily = &UserFamily{} + } + return userFamily +}