product.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package main
  2. import (
  3. "net/http"
  4. "sparrow/pkg/models"
  5. "sparrow/pkg/rpcs"
  6. "sparrow/pkg/server"
  7. "strconv"
  8. "github.com/martini-contrib/render"
  9. )
  10. // SaveProduct 添加或修改产品
  11. func SaveProduct(user *UserToken, product models.Product, r render.Render) {
  12. product.VendorID = int32(user.VendorID)
  13. reply := models.Product{}
  14. err := server.RPCCallByName("registry", "Registry.SaveProduct", &product, &reply)
  15. if err != nil {
  16. r.JSON(http.StatusOK, renderError(ErrSystemFault, err))
  17. return
  18. }
  19. r.JSON(http.StatusOK, done(reply))
  20. return
  21. }
  22. // DeleteProduct 删除产品
  23. func DeleteProduct(user *UserToken, product models.Product, r render.Render) {
  24. if int32(user.VendorID) != product.VendorID {
  25. r.JSON(http.StatusOK, renderError(ErrIllegalityAction, errIllegalityString))
  26. return
  27. }
  28. r.JSON(http.StatusOK, done("删除成功"))
  29. return
  30. }
  31. // GetProducts 分页
  32. func GetProducts(user *UserToken, req *http.Request, r render.Render) {
  33. pi, _ := strconv.Atoi(req.URL.Query().Get("pi"))
  34. ps, _ := strconv.Atoi(req.URL.Query().Get("ps"))
  35. name := req.URL.Query().Get("name")
  36. args := rpcs.ArgsProductList{
  37. ProductName: name,
  38. }
  39. args.Pi = pi
  40. args.Ps = ps
  41. args.VendorID = user.VendorID
  42. var reply map[string]interface{}
  43. err := server.RPCCallByName("registry", "Registry.GetProducts", &args, &reply)
  44. if err != nil {
  45. r.JSON(http.StatusOK, renderError(ErrSystemFault, err))
  46. return
  47. }
  48. r.JSON(http.StatusOK, done(reply))
  49. return
  50. }