package service import ( "errors" "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) GetTaskProductsByUserId(param vo.GetAllProductParam) (vo.ResultVO, error) { var result vo.ResultVO var products []entity.Product var err error var total int64 if param.SubAccountId == 0 { enterpriseId := param.EnterpriseId if enterpriseId == "" { return result, errors.New("enterpriseId is empty") } products, total, err = (&dao.ProductDAO{}).GetProductsByEnterpriseID(enterpriseId, param.Page, param.PageSize) } else { products, total, err = (&dao.ProductDAO{}).GetProductsBySubAccountId(param.SubAccountId, param.Page, param.PageSize) } if err != nil { // 数据库查询error return result, 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, PhotoUrl: photoUrl, } reProducts = append(reProducts, reProduct) } result = vo.ResultVO{ Page: param.Page, PageSize: param.PageSize, Total: total, Data: reProducts, } return result, nil } func (p ProductService) CreateProduct(productCreateParam *vo.ProductCreateParam) (int64, error) { product := entity.Product{ KuaishouProductId: productCreateParam.ProductId, ProductName: productCreateParam.ProductName, ProductCategory: productCreateParam.ProductCategory, ProductPrice: productCreateParam.ProductPrice, ProductDetail: productCreateParam.ProductDetail, EnterpriseID: productCreateParam.EnterpriseId, SubAccountID: productCreateParam.SubAccountId, ExclusiveCommission: productCreateParam.ExclusiveCommission, CommissionPrice: productCreateParam.CommissionPrice, PublicCommission: productCreateParam.PublicCommission, ProductUrl: productCreateParam.ProductUrl, } 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 }