package service import ( "psi/database" "psi/models" systemReq "psi/models/request" systemRes "psi/models/response" "psi/utils" "time" "gorm.io/gorm" ) type SortingSettingsService struct{} // GetSortingSettings 获取分拣设置 func (s *SortingSettingsService) GetSortingSettings(db ...*gorm.DB) *systemRes.SortingSettingsResponse { databaseConn := database.OptionalDB(db...) var settings models.SortingSettings databaseConn.First(&settings) response := systemRes.ConvertSortingSettingsToResponse(settings) return &response } // SaveSortingSettings 保存分拣设置(新增或更新) func (s *SortingSettingsService) SaveSortingSettings(req systemReq.SaveSortingSettingsRequest, db ...*gorm.DB) error { databaseConn := database.OptionalDB(db...) now := time.Now().Unix() var settings models.SortingSettings result := databaseConn.First(&settings) if result.Error == nil { updateData := map[string]interface{}{ "purchase_order_remark": req.PurchaseOrderRemark, "classify_by_condition": req.ClassifyByCondition, "wangdiantong_effect": req.WangdiantongEffect, "warehouse_number": req.WarehouseNumber, "shelf_store": req.ShelfStore, "container": req.Container, "capacity_weight": req.CapacityWeight, "quick_picking": req.QuickPicking, "block_hk_macau_taiwan": req.BlockHkMacauTaiwan, "block_magazine": req.BlockMagazine, "block_speed_install": req.BlockSpeedInstall, "take_photo": req.TakePhoto, "updated_at": now, } if err := databaseConn.Model(&settings).Updates(updateData).Error; err != nil { return utils.NewError("更新分拣设置失败: " + err.Error()) } } else { settings := models.SortingSettings{ PurchaseOrderRemark: req.PurchaseOrderRemark, ClassifyByCondition: *req.ClassifyByCondition, WangdiantongEffect: req.WangdiantongEffect, WarehouseNumber: req.WarehouseNumber, ShelfStore: req.ShelfStore, Container: req.Container, CapacityWeight: *req.CapacityWeight, QuickPicking: *req.QuickPicking, BlockHkMacauTaiwan: *req.BlockHkMacauTaiwan, BlockMagazine: *req.BlockMagazine, BlockSpeedInstall: *req.BlockSpeedInstall, TakePhoto: *req.TakePhoto, CreatedAt: now, UpdatedAt: now, } if err := databaseConn.Create(&settings).Error; err != nil { return utils.NewError("创建分拣设置失败: " + err.Error()) } } return nil }