| | |
| | | |
| | | 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/common/response" |
| | | "srm/model/test" |
| | | testReq "srm/model/test/request" |
| | | "srm/proto/product" |
| | | testResp "srm/model/test/response" |
| | | "srm/service" |
| | | ) |
| | | |
| | |
| | | } |
| | | for _, t := range p.List { |
| | | var num int64 |
| | | db := global.GVA_DB.Model(&test.Product{}) |
| | | db := global.GVA_DB.Model(&test.SupplierMaterial{}) |
| | | err := db.Where("number = ?", t.Number).Where("supplier_id = ?", t.SupplierId).Count(&num).Error |
| | | if err != nil { |
| | | response.FailWithMessage(err.Error(), c) |
| | |
| | | // @Security ApiKeyAuth |
| | | // @accept application/json |
| | | // @Produce application/json |
| | | // @Param data body test.Product true "删除Product" |
| | | // @Param data body request.GetById true "删除Product" |
| | | // @Success 200 {string} string "{"success":true,"data":{},"msg":"删除成功"}" |
| | | // @Router /p/deleteProduct [delete] |
| | | func (pApi *ProductApi) DeleteProduct(c *gin.Context) { |
| | | var p test.Product |
| | | var p request.GetById |
| | | err := c.ShouldBindJSON(&p) |
| | | if err != nil { |
| | | response.FailWithMessage(err.Error(), c) |
| | | return |
| | | } |
| | | if err := pService.DeleteProduct(p); err != nil { |
| | | if err := pService.DeleteProduct(p.ID); err != nil { |
| | | global.GVA_LOG.Error("删除失败!", zap.Error(err)) |
| | | response.FailWithMessage("删除失败", c) |
| | | } else { |
| | |
| | | // @Security ApiKeyAuth |
| | | // @accept application/json |
| | | // @Produce application/json |
| | | // @Param data body test.Product true "更新Product" |
| | | // @Param data body test.SupplierMaterial true "更新Product" |
| | | // @Success 200 {string} string "{"success":true,"data":{},"msg":"更新成功"}" |
| | | // @Router /p/updateProduct [put] |
| | | func (pApi *ProductApi) UpdateProduct(c *gin.Context) { |
| | | var p test.Product |
| | | var p test.SupplierMaterial |
| | | err := c.ShouldBindJSON(&p) |
| | | if err != nil { |
| | | response.FailWithMessage(err.Error(), c) |
| | |
| | | // @Security ApiKeyAuth |
| | | // @accept application/json |
| | | // @Produce application/json |
| | | // @Param data query test.Product true "用id查询Product" |
| | | // @Param data query request.GetById true "用id查询Product" |
| | | // @Success 200 {string} string "{"success":true,"data":{},"msg":"查询成功"}" |
| | | // @Router /p/findProduct [get] |
| | | func (pApi *ProductApi) FindProduct(c *gin.Context) { |
| | | var p test.Product |
| | | var p request.GetById |
| | | err := c.ShouldBindQuery(&p) |
| | | if err != nil { |
| | | response.FailWithMessage(err.Error(), c) |
| | |
| | | // @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 |
| | | } |
| | | if list, total, err := pService.GetProductInfoList(pageInfo); err != nil { |
| | | list, total, err := pService.GetProductInfoList(params) |
| | | if err != nil { |
| | | global.GVA_LOG.Error("获取失败!", zap.Error(err)) |
| | | response.FailWithMessage("获取失败", c) |
| | | } else { |
| | | //添加供应商名称 |
| | | for i := 0; i < len(list); i++ { |
| | | list[i].SupplierName = list[i].Supplier.Name |
| | | } |
| | | response.OkWithDetailed(response.PageResult{ |
| | | List: list, |
| | | Total: total, |
| | | Page: pageInfo.Page, |
| | | PageSize: pageInfo.PageSize, |
| | | }, "获取成功", c) |
| | | return |
| | | } |
| | | |
| | | response.OkWithDetailed(response.PageResult{ |
| | | List: list, |
| | | Total: total, |
| | | Page: params.Page, |
| | | PageSize: params.PageSize, |
| | | }, "获取成功", c) |
| | | } |
| | | |
| | | var ( |
| | |
| | | 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([]test.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 := int(v.MinInventory) |
| | | productList[k].MinimumStock = min |
| | | max := int(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) |
| | | |
| | | } |