package service import ( "errors" "strconv" "time" "youngee_b_api/app/consts" "youngee_b_api/app/dao" "youngee_b_api/app/entity" "youngee_b_api/app/vo" ) type ProductService struct{} func (p ProductService) GetTaskProducts(enterpriseId string) ([]vo.ReTaskProduct, error) { if enterpriseId == "" { return nil, errors.New("enterpriseId is empty") } products, err := (&dao.ProductDAO{}).GetProductsByEnterpriseID(enterpriseId) if err != nil { // 数据库查询error return nil, err } var reProducts []vo.ReTaskProduct for _, product := range products { photoUrl, e := dao.ProductPhotoDAO{}.GetMainPhotoByProductID(product.ProductID) if e != nil { photoUrl = "" } reProduct := vo.ReTaskProduct{ ProductID: product.ProductID, ProductName: product.ProductName, ProductType: consts.GetProductType(product.ProductType), ProductPrice: product.ProductPrice, ProductDetail: product.ProductDetail, CreatedAt: product.CreatedAt, BrandName: product.BrandName, PhotoUrl: photoUrl, } reProducts = append(reProducts, reProduct) } return reProducts, nil } func (p ProductService) CreateProduct(productCreateParam *vo.ProductCreateParam) (int64, error) { product := entity.Product{ ProductName: productCreateParam.ProductName, ProductType: productCreateParam.ProductType, ShopAddress: productCreateParam.ShopAddress, ProductPrice: productCreateParam.ProductPrice, ProductDetail: productCreateParam.ProductDetail, ProductUrl: productCreateParam.ProductUrl, EnterpriseID: productCreateParam.EnterpriseId, BrandName: productCreateParam.BrandName, PublicCommission: productCreateParam.PublicCommission, ExclusiveCommission: productCreateParam.ExclusiveCommission, CommissionPrice: productCreateParam.CommissionPrice, SalesCount: strconv.Itoa(int(productCreateParam.MerchantSoldCountThirtyDays)), KuaishouProductId: productCreateParam.KuaishouProductId, } productID, err := dao.ProductDAO{}.CreateProduct(product) if err != nil { return 0, err } if productCreateParam.ProductPhotos != nil { productPhotos := []entity.ProductPhoto{} for _, photo := range productCreateParam.ProductPhotos { productPhoto := entity.ProductPhoto{ PhotoUrl: photo.PhotoUrl, PhotoUid: photo.PhotoUid, Symbol: photo.Symbol, ProductID: productID, CreatedAt: time.Time{}, } productPhotos = append(productPhotos, productPhoto) } err = dao.ProductPhotoDAO{}.CreateProductPhoto(productPhotos) if err != nil { return 0, err } } return productID, nil }