| | |
| | | |
| | | import ( |
| | | "github.com/gin-gonic/gin" |
| | | "github.com/spf13/cast" |
| | | "go.uber.org/zap" |
| | | "google.golang.org/grpc" |
| | | "google.golang.org/grpc/credentials/insecure" |
| | |
| | | "srm/model/test" |
| | | testReq "srm/model/test/request" |
| | | testResp "srm/model/test/response" |
| | | "srm/proto/product" |
| | | "srm/service" |
| | | ) |
| | | |
| | |
| | | // @accept application/json |
| | | // @Produce application/json |
| | | // @Param data query testReq.ProductSearch true "分页获取Product列表" |
| | | // @Param Authorization header string true "token" |
| | | // @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}" |
| | | // @Router /p/getProductList [get] |
| | | func (pApi *ProductApi) GetProductList(c *gin.Context) { |
| | | var pageInfo testReq.ProductSearch |
| | | err := c.ShouldBindQuery(&pageInfo) |
| | | var params testReq.ProductSearch |
| | | err := c.ShouldBindQuery(¶ms) |
| | | if err != nil { |
| | | response.FailWithMessage(err.Error(), c) |
| | | return |
| | | } |
| | | list, total, err := pService.GetProductInfoList(pageInfo) |
| | | list, total, err := pService.GetProductInfoList(params) |
| | | if err != nil { |
| | | global.GVA_LOG.Error("获取失败!", zap.Error(err)) |
| | | response.FailWithMessage("获取失败", c) |
| | | return |
| | | } |
| | | |
| | | productList := make([]testResp.Product, 0, len(list)) |
| | | |
| | | for _, item := range list { |
| | | productList = append(productList, testResp.Product{ |
| | | Name: item.Name, |
| | | Number: item.Number, |
| | | SupplierId: item.SupplierId, |
| | | Unit: item.Unit, |
| | | PurchasePrice: item.PurchasePrice, |
| | | DeliveryTime: item.DeliveryTime, |
| | | ShippingDuration: item.ShippingDuration, |
| | | Specifications: item.Specifications, |
| | | ModelNumber: item.ModelNumber, |
| | | ProductType: "", |
| | | MinimumStock: item.MinimumStock, |
| | | MaximumStock: item.MaximumStock, |
| | | Remark: "", |
| | | SupplierName: item.Supplier.Name, |
| | | }) |
| | | } |
| | | |
| | | response.OkWithDetailed(response.PageResult{ |
| | | List: list, |
| | | Total: total, |
| | | Page: pageInfo.Page, |
| | | PageSize: pageInfo.PageSize, |
| | | Page: params.Page, |
| | | PageSize: params.PageSize, |
| | | }, "获取成功", c) |
| | | } |
| | | |
| | |
| | | return |
| | | } |
| | | |
| | | cli := product.NewProductServiceClient(productServiceConn) |
| | | getProductListResponse, err := cli.GetProductList(c, &product.GetProductListRequest{ |
| | | Page: cast.ToInt32(pageInfo.Page), |
| | | PageSize: cast.ToInt32(pageInfo.PageSize), |
| | | ProductNumber: pageInfo.Number, |
| | | ProductName: pageInfo.Name, |
| | | }) |
| | | rawProductList := getProductListResponse.List |
| | | productList := make([]testResp.Product, len(rawProductList)) |
| | | |
| | | for k, v := range rawProductList { |
| | | productList[k].Number = v.Number |
| | | productList[k].Name = v.Name |
| | | productList[k].Unit = v.Unit |
| | | productList[k].PurchasePrice = v.SalePrice |
| | | min := int64(v.MinInventory) |
| | | productList[k].MinimumStock = min |
| | | max := int64(v.MaxInventory) |
| | | productList[k].MaximumStock = max |
| | | productList[k].Remark = v.Node |
| | | productList[k].ProductType = v.MaterialMode |
| | | } |
| | | |
| | | if err != nil || getProductListResponse.Code != 0 { |
| | | list, total, err := pService.GetMaterials(pageInfo) |
| | | if err != nil { |
| | | global.GVA_LOG.Error("获取失败!", zap.Error(err)) |
| | | response.FailWithMessage("获取失败", c) |
| | | } else { |
| | | response.OkWithDetailed(response.PageResult{ |
| | | List: productList, |
| | | Total: int64(len(productList)), |
| | | Page: pageInfo.Page, |
| | | PageSize: pageInfo.PageSize, |
| | | }, "获取成功", c) |
| | | return |
| | | } |
| | | |
| | | productList := make([]testResp.Material, 0) |
| | | |
| | | for _, item := range list { |
| | | productList = append(productList, testResp.Material{ |
| | | Name: item.Name, |
| | | Number: item.ID, |
| | | Unit: item.Unit, |
| | | Specifications: item.Specs, |
| | | ModelNumber: item.Type, |
| | | MinimumStock: item.MinInventory.IntPart(), |
| | | MaximumStock: item.MaxInventory.IntPart(), |
| | | Remark: "", |
| | | CategoryName: item.CategoryName, |
| | | }) |
| | | } |
| | | |
| | | if err != nil { |
| | | global.GVA_LOG.Error("获取失败!", zap.Error(err)) |
| | | response.FailWithMessage("获取失败", c) |
| | | } |
| | | |
| | | response.OkWithDetailed(response.PageResult{ |
| | | List: productList, |
| | | Total: total, |
| | | Page: pageInfo.Page, |
| | | PageSize: pageInfo.PageSize, |
| | | }, "获取成功", c) |
| | | |
| | | } |