package service import ( "geo/internal/biz" "geo/internal/config" "geo/internal/data/impl" "geo/internal/data/model" "geo/internal/entitys" "geo/pkg" "geo/tmpl/dataTemp" "github.com/gofiber/fiber/v2" ) type ProductService struct { cfg *config.Config productImpl *impl.ProductImpl authBiz *biz.AuthBiz } func NewProductService(cfg *config.Config, ProductImpl *impl.ProductImpl, authBiz *biz.AuthBiz) *ProductService { return &ProductService{ cfg: cfg, productImpl: ProductImpl, authBiz: authBiz, } } func (p *ProductService) Add(c *fiber.Ctx, req *entitys.CreateProductRequest) error { userInfo, _, err := p.authBiz.UserAndTokenValid(c.UserContext(), req.UserIndex, req.AccessToken) if err != nil { return err } add := &model.Product{ UserIndex: userInfo.UserIndex, Name: req.Name, Industry: req.Industry, Type: req.Type, Advantages: req.Advantages, Problem: req.Problem, Background: req.Background, Case: req.Case, Other: req.Other, ServiceCope: req.ServiceCope, TargetAudience: req.TargetAudience, } err = p.productImpl.Add(c.UserContext(), add) if err != nil { return err } return nil } func (p *ProductService) List(c *fiber.Ctx, req *entitys.ProductListRequest) error { _, _, err := p.authBiz.UserAndTokenValid(c.UserContext(), req.UserIndex, req.AccessToken) if err != nil { return err } page := req.Page if page < 1 { page = 1 } pageSize := req.PageSize if pageSize < 1 { pageSize = 20 } if pageSize > 100 { pageSize = 100 } var list []*model.Product total, err := p.productImpl.GetListToStruct(c.UserContext(), nil, &dataTemp.ReqPageBo{Page: page, Limit: pageSize}, list, "") if err != nil { return err } return pkg.SuccessWithPageMsg(c, list, total.Total, page, pageSize) } func (p *ProductService) Update(c *fiber.Ctx, req *entitys.ProductUpdateRequest) error { userInfo, _, err := p.authBiz.UserAndTokenValid(c.UserContext(), req.UserIndex, req.AccessToken) if err != nil { return err } return nil } func (p *ProductService) Del(c *fiber.Ctx, req *entitys.ProductDelRequest) error { userInfo, _, err := p.authBiz.UserAndTokenValid(c.UserContext(), req.UserIndex, req.AccessToken) if err != nil { return err } return nil }