Commit 886cf7e2 authored by zhengyaoqiu's avatar zhengyaoqiu

feat(colorway): 代码优化

parent 83fdf144
...@@ -4,6 +4,8 @@ import ( ...@@ -4,6 +4,8 @@ import (
"context" "context"
productModel "git.chillcy.com/golang/colorway/internal/pkg/database/mongo/model/product" productModel "git.chillcy.com/golang/colorway/internal/pkg/database/mongo/model/product"
sitePlatformPriceConfigModel "git.chillcy.com/golang/colorway/internal/pkg/database/mongo/model/site_platform_price_config" sitePlatformPriceConfigModel "git.chillcy.com/golang/colorway/internal/pkg/database/mongo/model/site_platform_price_config"
reflect2 "git.chillcy.com/golang/colorway/pkg/reflect"
"reflect"
) )
const DatabaseColorWay = "color_way" const DatabaseColorWay = "color_way"
...@@ -21,9 +23,9 @@ func NewManager(mongoUrl string) *Manager { ...@@ -21,9 +23,9 @@ func NewManager(mongoUrl string) *Manager {
} }
func (receiver *Manager) StartCache() error { func (receiver *Manager) StartCache() error {
err := receiver.SitePlatformPriceConfigModel.StartCache(context.Background()) ctx := context.TODO()
if err != nil { args := []reflect.Value{
return err reflect.ValueOf(ctx),
} }
return reflect2.MemberMethodCall(receiver, "StartCache", args)
} }
...@@ -24,6 +24,10 @@ func NewServiceContext(c config.Config) *ServiceContext { ...@@ -24,6 +24,10 @@ func NewServiceContext(c config.Config) *ServiceContext {
etcd.Init(etcd.Env(c.Mode)) etcd.Init(etcd.Env(c.Mode))
pc4RpcProductServiceTarget := etcd.Get(etcd.KeyRpcPc4) pc4RpcProductServiceTarget := etcd.Get(etcd.KeyRpcPc4)
mongoManager := mongo.NewManager(etcd.Get(etcd.KeyMongoProductUri)) mongoManager := mongo.NewManager(etcd.Get(etcd.KeyMongoProductUri))
err := mongoManager.StartCache()
if err != nil {
panic(err)
}
if etcd.GetEnv() == etcd.EnvDev { if etcd.GetEnv() == etcd.EnvDev {
pc4RpcProductServiceTarget = "127.0.0.1:5100" pc4RpcProductServiceTarget = "127.0.0.1:5100"
} }
......
package reflect
import (
"fmt"
"reflect"
)
func MemberMethodCall(obj any, methodName string, in []reflect.Value) error {
v := reflect.ValueOf(obj).Elem() // 获取指针指向的值
t := reflect.TypeOf(obj).Elem() // 获取指针指向的类型
for i := 0; i < v.NumField(); i++ {
field := v.Field(i)
fieldType := t.Field(i)
// 检查字段是否为 nil
if field.IsNil() {
return fmt.Errorf("字段 %s 为 nil,跳过\n", fieldType.Name)
}
// 检查是否有 methodName 方法
method := field.MethodByName(methodName)
if !method.IsValid() {
return fmt.Errorf("字段 %s 没有 %s 方法\n", fieldType.Name, methodName)
}
// 调用 methodName 方法
fmt.Printf("调用 %s.%s()\n", fieldType.Name, methodName)
method.Call(in)
}
return nil
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment