package controller import ( . "app.yhyue.com/moapp/jybase/api" "encoding/json" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/net/ghttp" "github.com/pkg/errors" "jyOrderManager/internal/jyutil" "jyOrderManager/internal/logic/product" "jyOrderManager/internal/service" ) // GetProductListHandler 获取商品列表 func GetProductListHandler(r *ghttp.Request) { rData, err := func() (interface{}, error) { subject := r.Get("subject").Int() showAll := r.Get("showAll").Int() u := jyutil.GetUserMsgFromCtx(r.Context()) //常规商品 productList := service.Product().GetList(u.EntDeptId, showAll == 1, subject) var rProjectJson []g.Map bytesArr, err := json.Marshal(productList) if err != nil { return nil, errors.Wrap(err, "获取数据异常") } if err := json.Unmarshal(bytesArr, &rProjectJson); err != nil { return nil, errors.Wrap(err, "数据结构异常") } //活动商品 var rActivityJson []g.Map activityList := service.Product().GetActivityList(u.EntDeptId, subject) actBytesArr, actErr := json.Marshal(activityList) if actErr != nil { return nil, errors.Wrap(actErr, "获取数据异常") } if err := json.Unmarshal(actBytesArr, &rActivityJson); err != nil { return nil, errors.Wrap(err, "数据结构异常") } return g.Map{ "productList": rProjectJson, "activityList": rActivityJson, }, nil }() if err != nil { g.Log().Errorf(r.Context(), "获取商品列表出错 %v", err) } r.Response.WriteJson(NewResult(rData, err)) } // GetProductPriceHandler 获取商品价格 func GetProductPriceHandler(r *ghttp.Request) { rData, err := func() (interface{}, error) { rj, err := r.GetJson() if err != nil { return nil, errors.Wrap(err, "请求参数格式异常") } pCode := rj.Get("product_code").String() pFunc, err := product.JyProFunc.GetProductInitFuncByCode(pCode) if err != nil { return "", err } productItem, err := pFunc(rj.Map()) if err != nil { return nil, errors.Wrap(err, "获取产品配置异常") } if err = productItem.Check(r.Context(), 0); err != nil { return nil, errors.Wrap(err, "参数校验异常") } price, err := productItem.GetPrice() if err != nil { return nil, errors.Wrap(err, "获取价格异常") } return price, nil }() if err != nil { g.Log().Errorf(r.Context(), "获取商品价格出错 %v", err) } r.Response.WriteJson(NewResult(rData, err)) }