package storeDesktopSetting import ( "context" "github.com/gogf/gf/v2/errors/gerror" "server/internal/dao" "server/internal/model" "server/internal/model/do" "server/internal/service" ) type sStoreDesktopSetting struct { } func New() service.IStoreDesktopSetting { return &sStoreDesktopSetting{} } func init() { service.RegisterStoreDesktopSetting(New()) } func (s *sStoreDesktopSetting) Get(ctx context.Context, storeId int64) (out *model.StoreDesktopSettings, err error) { value, err := dao.StoreDesktopSettings.Ctx(ctx).Where(do.StoreDesktopSettings{StoreId: storeId}).One() if err != nil { return nil, err } // 为空创建一条记录,组件都展示;反之返回对应数据 if value.IsEmpty() { out = &model.StoreDesktopSettings{ RightComponentVisible: 1, TopComponentVisible: 1, } _, err := dao.StoreDesktopSettings.Ctx(ctx).Insert(do.StoreDesktopSettings{ RightComponentVisible: out.RightComponentVisible, StoreId: storeId, TopComponentVisible: out.TopComponentVisible, }) if err != nil { return nil, err } return out, nil } else { out = &model.StoreDesktopSettings{} err := value.Struct(out) if err != nil { return nil, err } return out, nil } } func (s *sStoreDesktopSetting) Save(ctx context.Context, in model.SaveDesktopSettingIn) (out *model.SaveDesktopSettingOut, err error) { if in.TopComponentVisible == 2 && in.RightComponentVisible == 2 { return nil, gerror.New("请至少选择一个组件") } _, err = dao.StoreDesktopSettings.Ctx(ctx).Where(do.StoreDesktopSettings{StoreId: in.StoreId}).Update(do.StoreDesktopSettings{ RightComponentVisible: in.RightComponentVisible, TopComponentVisible: in.TopComponentVisible, }) if err != nil { return nil, err } return &model.SaveDesktopSettingOut{ Success: true, }, nil }