93 lines
2.3 KiB
Go
93 lines
2.3 KiB
Go
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
|
|
}
|