123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- 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))
- }
|