productHandler.go 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package controller
  2. import (
  3. . "app.yhyue.com/moapp/jybase/api"
  4. "encoding/json"
  5. "github.com/gogf/gf/v2/frame/g"
  6. "github.com/gogf/gf/v2/net/ghttp"
  7. "github.com/pkg/errors"
  8. "jyOrderManager/internal/jyutil"
  9. "jyOrderManager/internal/logic/product"
  10. "jyOrderManager/internal/service"
  11. )
  12. // GetProductListHandler 获取商品列表
  13. func GetProductListHandler(r *ghttp.Request) {
  14. rData, err := func() (interface{}, error) {
  15. subject := r.Get("subject").Int()
  16. showAll := r.Get("showAll").Int()
  17. u := jyutil.GetUserMsgFromCtx(r.Context())
  18. //常规商品
  19. productList := service.Product().GetList(u.EntDeptId, showAll == 1, subject)
  20. var rProjectJson []g.Map
  21. bytesArr, err := json.Marshal(productList)
  22. if err != nil {
  23. return nil, errors.Wrap(err, "获取数据异常")
  24. }
  25. if err := json.Unmarshal(bytesArr, &rProjectJson); err != nil {
  26. return nil, errors.Wrap(err, "数据结构异常")
  27. }
  28. //活动商品
  29. var rActivityJson []g.Map
  30. activityList := service.Product().GetActivityList(u.EntDeptId, subject)
  31. actBytesArr, actErr := json.Marshal(activityList)
  32. if actErr != nil {
  33. return nil, errors.Wrap(actErr, "获取数据异常")
  34. }
  35. if err := json.Unmarshal(actBytesArr, &rActivityJson); err != nil {
  36. return nil, errors.Wrap(err, "数据结构异常")
  37. }
  38. return g.Map{
  39. "productList": rProjectJson,
  40. "activityList": rActivityJson,
  41. }, nil
  42. }()
  43. if err != nil {
  44. g.Log().Errorf(r.Context(), "获取商品列表出错 %v", err)
  45. }
  46. r.Response.WriteJson(NewResult(rData, err))
  47. }
  48. // GetProductPriceHandler 获取商品价格
  49. func GetProductPriceHandler(r *ghttp.Request) {
  50. rData, err := func() (interface{}, error) {
  51. rj, err := r.GetJson()
  52. if err != nil {
  53. return nil, errors.Wrap(err, "请求参数格式异常")
  54. }
  55. pCode := rj.Get("product_code").String()
  56. pFunc, err := product.JyProFunc.GetProductInitFuncByCode(pCode)
  57. if err != nil {
  58. return "", err
  59. }
  60. productItem, err := pFunc(rj.Map())
  61. if err != nil {
  62. return nil, errors.Wrap(err, "获取产品配置异常")
  63. }
  64. if err = productItem.Check(r.Context(), 0); err != nil {
  65. return nil, errors.Wrap(err, "参数校验异常")
  66. }
  67. price, err := productItem.GetPrice()
  68. if err != nil {
  69. return nil, errors.Wrap(err, "获取价格异常")
  70. }
  71. return price, nil
  72. }()
  73. if err != nil {
  74. g.Log().Errorf(r.Context(), "获取商品价格出错 %v", err)
  75. }
  76. r.Response.WriteJson(NewResult(rData, err))
  77. }