package service import ( "errors" "time" "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) { if param.Page == 0 { param.Page = 1 } if param.PageSize == 0 { param.PageSize = 10 } 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) //} enterpriseId := param.EnterpriseId if enterpriseId == "" { return result, errors.New("enterpriseId is empty") } products, total, err = (&dao.ProductDAO{}).GetProductsByEnterpriseIDAndTypeTitle(enterpriseId, param.ProductType, param.ProductTitle, 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: product.ProductType, ProductCategory: product.ProductCategory, ProductPrice: product.ProductPrice, ProductDetail: product.ProductDetail, CreatedAt: product.CreatedAt.Format("2006-01-02 15:04:05"), 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.Now(), } productPhotos = append(productPhotos, productPhoto) } err = dao.ProductPhotoDAO{}.CreateProductPhoto(productPhotos) if err != nil { return 0, err } } return productID, nil }