huangyan il y a 10 mois
Parent
commit
7913e5130f
7 fichiers modifiés avec 125 ajouts et 12 suppressions
  1. 8 0
      controllers/product.go
  2. 78 5
      controllers/services-detail.go
  3. 8 0
      controllers/uploadImage.go
  4. 9 4
      go.mod
  5. 18 0
      go.sum
  6. 1 3
      models/serve.go
  7. 3 0
      routers/router.go

+ 8 - 0
controllers/product.go

@@ -7,6 +7,7 @@ import (
 	"cc-officialweb/utils"
 	"encoding/json"
 	beego "github.com/beego/beego/v2/server/web"
+	"github.com/go-playground/validator/v10"
 	"strconv"
 )
 
@@ -53,6 +54,13 @@ func (s *ProductController) AddProduct() {
 func (s *ProductController) DeleteProductById() {
 	id := s.GetString("id")
 	atoi, _ := strconv.Atoi(id)
+	validate := validator.New()
+	err2 := validate.Var(atoi, "required")
+	if err2 != nil {
+		s.Data["json"] = &JSON{Code: 103, Msg: "id不能为空"}
+		s.ServeJSON()
+		return
+	}
 	_, err := unity.DeleteById(atoi, models.Products{})
 	if err != nil {
 		s.Data["json"] = map[string]interface{}{"code": 101, "msg": "删除失败"}

+ 78 - 5
controllers/services-detail.go

@@ -4,9 +4,9 @@ import (
 	"cc-officialweb/models"
 	"cc-officialweb/service"
 	"cc-officialweb/unity"
-	"cc-officialweb/utils"
 	"encoding/json"
 	beego "github.com/beego/beego/v2/server/web"
+	"github.com/go-playground/validator/v10"
 	"strconv"
 )
 
@@ -31,16 +31,20 @@ func (s *ServicesDetailController) Get() {
 
 // AddServices 添加服务信息
 func (s *ServicesDetailController) AddServices() {
-	var service models.ServerDto
+	var serve models.ServerDto
 	var ser models.Server
-	err := json.Unmarshal(s.Ctx.Input.RequestBody, &service)
+	err := json.Unmarshal(s.Ctx.Input.RequestBody, &serve)
 	if err != nil {
 		s.Data["json"] = &JSON{Code: 101, Msg: "json解析失败"}
 		s.ServeJSON()
 		return
 	}
-	utils.CopyWithReflection(&service, &ser)
-	add, err := unity.Add(&ser)
+	ser.Title = serve.Title
+	ser.Synopsis = serve.Synopsis
+	ser.Detail = serve.Detail
+	ser.ProductId = serve.ProductId
+	ser.Image = serve.Image
+	add, err := unity.Add(ser)
 	if err != nil {
 		s.Data["json"] = &JSON{Code: 101, Msg: "添加失败"}
 		s.ServeJSON()
@@ -51,3 +55,72 @@ func (s *ServicesDetailController) AddServices() {
 	}
 
 }
+
+// UpdateServices 更新服务信息
+func (s *ServicesDetailController) UpdateServices() {
+	var serve models.ServerDto
+	var ser models.Server
+	err := json.Unmarshal(s.Ctx.Input.RequestBody, &serve)
+	if err != nil {
+		s.Data["json"] = &JSON{Code: 101, Msg: "json解析失败"}
+		s.ServeJSON()
+		return
+	}
+	ser.Title = serve.Title
+	ser.Synopsis = serve.Synopsis
+	ser.Detail = serve.Detail
+	ser.ProductId = serve.ProductId
+	ser.Image = serve.Image
+	_, err = unity.UpdateById(serve.ID, &ser)
+	if err != nil {
+		s.Data["json"] = &JSON{Code: 101, Msg: "更新失败"}
+		s.ServeJSON()
+		return
+	} else {
+		s.Data["json"] = &JSON{Code: 200, Msg: "更新成功"}
+		s.ServeJSON()
+	}
+}
+
+// DeleteServices 删除服务信息
+func (s *ServicesDetailController) DeleteServices() {
+	getString := s.GetString("id")
+	id, _ := strconv.Atoi(getString)
+	validate := validator.New()
+	err2 := validate.Var(id, "required")
+	if err2 != nil {
+		s.Data["json"] = &JSON{Code: 103, Msg: "id不能为空"}
+		s.ServeJSON()
+		return
+	}
+	_, err := unity.DeleteById(id, &models.Server{})
+	if err != nil {
+		s.Data["json"] = &JSON{Code: 101, Msg: "删除失败"}
+		s.ServeJSON()
+		return
+	} else {
+		s.Data["json"] = &JSON{Code: 200, Msg: "删除成功"}
+		s.ServeJSON()
+	}
+}
+
+// GetAllServices 获取所有服务信息
+func (s *ServicesDetailController) GetAllServices() {
+	var params unity.PageParams
+	err := json.Unmarshal(s.Ctx.Input.RequestBody, &params)
+	if err != nil {
+		s.Data["json"] = &JSON{Code: 101, Msg: "json解析失败"}
+		s.ServeJSON()
+		return
+	}
+	result, total, err := unity.Paginate(params, &models.Server{})
+	if err != nil {
+		s.Data["json"] = &JSON{Code: 101, Msg: "获取失败"}
+		s.ServeJSON()
+		return
+	} else {
+		s.Data["json"] = &JSON{Code: 200, Msg: "获取成功", Data: JSONS{Total: total, Data: result}}
+		s.ServeJSON()
+		return
+	}
+}

+ 8 - 0
controllers/uploadImage.go

@@ -7,6 +7,7 @@ import (
 	"cc-officialweb/utils"
 	"encoding/json"
 	beego "github.com/beego/beego/v2/server/web"
+	"github.com/go-playground/validator/v10"
 	"github.com/google/uuid"
 	"strconv"
 	"strings"
@@ -103,6 +104,13 @@ func (up *UploadImageController) UpdateResource() {
 func (up *UploadImageController) DeleteResourceById() {
 	getString := up.GetString("id")
 	atoi, _ := strconv.Atoi(getString)
+	validate := validator.New()
+	err2 := validate.Var(atoi, "required")
+	if err2 != nil {
+		up.Data["json"] = &JSON{Code: 103, Msg: "id不能为空"}
+		up.ServeJSON()
+		return
+	}
 	id, err := unity.DeleteById(atoi, models.Resource{})
 	if err != nil {
 		up.Data["json"] = &JSON{Code: 101, Msg: "删除失败"}

+ 9 - 4
go.mod

@@ -14,6 +14,10 @@ require (
 require (
 	github.com/beorn7/perks v1.0.1 // indirect
 	github.com/cespare/xxhash/v2 v2.2.0 // indirect
+	github.com/gabriel-vasile/mimetype v1.4.3 // indirect
+	github.com/go-playground/locales v0.14.1 // indirect
+	github.com/go-playground/universal-translator v0.18.1 // indirect
+	github.com/go-playground/validator/v10 v10.20.0 // indirect
 	github.com/go-sql-driver/mysql v1.7.0 // indirect
 	github.com/golang-jwt/jwt/v4 v4.5.0 // indirect
 	github.com/golang/protobuf v1.5.3 // indirect
@@ -23,6 +27,7 @@ require (
 	github.com/jinzhu/now v1.1.5 // indirect
 	github.com/jtolds/gls v4.20.0+incompatible // indirect
 	github.com/kr/text v0.2.0 // indirect
+	github.com/leodido/go-urn v1.4.0 // indirect
 	github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
 	github.com/mitchellh/mapstructure v1.5.0 // indirect
 	github.com/pkg/errors v0.9.1 // indirect
@@ -32,10 +37,10 @@ require (
 	github.com/prometheus/procfs v0.9.0 // indirect
 	github.com/shiena/ansicolor v0.0.0-20200904210342-c7312218db18 // indirect
 	github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d // indirect
-	golang.org/x/crypto v0.0.0-20220315160706-3147a52a75dd // indirect
-	golang.org/x/net v0.7.0 // indirect
-	golang.org/x/sys v0.6.0 // indirect
-	golang.org/x/text v0.7.0 // indirect
+	golang.org/x/crypto v0.19.0 // indirect
+	golang.org/x/net v0.21.0 // indirect
+	golang.org/x/sys v0.17.0 // indirect
+	golang.org/x/text v0.14.0 // indirect
 	google.golang.org/protobuf v1.30.0 // indirect
 	gopkg.in/yaml.v3 v3.0.1 // indirect
 )

+ 18 - 0
go.sum

@@ -9,6 +9,14 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c
 github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/elazarl/go-bindata-assetfs v1.0.1 h1:m0kkaHRKEu7tUIUFVwhGGGYClXvyl4RE03qmvRTNfbw=
 github.com/elazarl/go-bindata-assetfs v1.0.1/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4=
+github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0=
+github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk=
+github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA=
+github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY=
+github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY=
+github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY=
+github.com/go-playground/validator/v10 v10.20.0 h1:K9ISHbSaI0lyB2eWMPJo+kOS/FBExVwjEviJTixqxL8=
+github.com/go-playground/validator/v10 v10.20.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM=
 github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc=
 github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
 github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg=
@@ -37,6 +45,8 @@ github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
 github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
 github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
 github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
+github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ=
+github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI=
 github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo=
 github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
 github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
@@ -66,16 +76,24 @@ github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o
 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 golang.org/x/crypto v0.0.0-20220315160706-3147a52a75dd h1:XcWmESyNjXJMLahc3mqVQJcgSTDxFxhETVlfk9uGc38=
 golang.org/x/crypto v0.0.0-20220315160706-3147a52a75dd/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
+golang.org/x/crypto v0.19.0 h1:ENy+Az/9Y1vSrlrvBSyna3PITt4tiZLf7sgCjZBX7Wo=
+golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
 golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g=
 golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
+golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4=
+golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
 golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ=
 golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y=
+golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo=
 golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
+golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
+golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
 golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=

+ 1 - 3
models/serve.go

@@ -11,15 +11,13 @@ type Server struct {
 	Synopsis  template.HTML `json:"synopsis" gorm:"comment:'简介'"`     //简介
 	Detail    template.HTML `json:"detail" gorm:"comment:'详情'"`       //详情
 	ProductId uint          `json:"product_id" gorm:"comment:'产品ID'"` //产品id
-	ParentId  int           `gorm:"comment:'父级id'" json:"parentId"`
 	Image     string        `json:"image" gorm:"comment:'图片链接'"`
 }
 type ServerDto struct {
 	ID        uint          `json:"id"`
-	Title     string        `json:"title" validate:"required", min`
+	Title     string        `json:"title" validate:"required"`
 	Synopsis  template.HTML `json:"synopsis" validate:"required"`   //简介
 	Detail    template.HTML `json:"detail" validate:"required"`     //详情
 	ProductId uint          `json:"product_id" validate:"required"` //产品id
-	ParentId  int           `json:"parentId" validate:"required"`
 	Image     string        `json:"image" validate:"required"`
 }

+ 3 - 0
routers/router.go

@@ -39,4 +39,7 @@ func init() {
 	beego.Router("/api/product", &controllers.ProductController{}, "put:UpdateProductById")
 
 	beego.Router("/api/service", &controllers.ServicesDetailController{}, "post:AddServices")
+	beego.Router("/api/service", &controllers.ServicesDetailController{}, "put:UpdateServices")
+	beego.Router("/api/service", &controllers.ServicesDetailController{}, "delete:DeleteServices")
+	beego.Router("/api/allservice", &controllers.ServicesDetailController{}, "post:GetAllServices")
 }