From de4bcd1dead50b05f716bc5718be5540bdb96783 Mon Sep 17 00:00:00 2001
From: liujiandao <274878379@qq.com>
Date: 星期日, 28 四月 2024 17:23:29 +0800
Subject: [PATCH] fix
---
api/v1/test/product.go | 119 ++++++++++++++++++++++++++++++++++-------------------------
1 files changed, 68 insertions(+), 51 deletions(-)
diff --git a/api/v1/test/product.go b/api/v1/test/product.go
index 46bf465..64b99e5 100644
--- a/api/v1/test/product.go
+++ b/api/v1/test/product.go
@@ -2,7 +2,6 @@
import (
"github.com/gin-gonic/gin"
- "github.com/spf13/cast"
"go.uber.org/zap"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials/insecure"
@@ -11,7 +10,7 @@
"srm/model/common/response"
"srm/model/test"
testReq "srm/model/test/request"
- "srm/proto/product"
+ testResp "srm/model/test/response"
"srm/service"
)
@@ -26,17 +25,30 @@
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
-// @Param data body test.Product true "鍒涘缓Product"
+// @Param data body request.ProductCreate true "鍒涘缓Product"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"鑾峰彇鎴愬姛"}"
// @Router /p/createProduct [post]
func (pApi *ProductApi) CreateProduct(c *gin.Context) {
- var p test.Product
+ var p testReq.ProductCreate
err := c.ShouldBindJSON(&p)
if err != nil {
response.FailWithMessage(err.Error(), c)
return
}
- if err := pService.CreateProduct(&p); err != nil {
+ for _, t := range p.List {
+ var num int64
+ 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)
+ return
+ }
+ if num > 0 {
+ response.FailWithMessage("褰撳墠渚涘簲鍟嗗凡缁忔彁渚涙浜у搧", c)
+ return
+ }
+ }
+ if err := pService.CreateProduct(p.List); err != nil {
global.GVA_LOG.Error("鍒涘缓澶辫触!", zap.Error(err))
response.FailWithMessage("鍒涘缓澶辫触", c)
} else {
@@ -50,17 +62,17 @@
// @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 {
@@ -98,11 +110,11 @@
// @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)
@@ -122,11 +134,11 @@
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
-// @Param data query test.Product true "鐢╥d鏌ヨProduct"
+// @Param data query request.GetById true "鐢╥d鏌ヨ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)
@@ -147,26 +159,29 @@
// @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 {
- 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 (
@@ -205,37 +220,39 @@
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
- //productList[k].MinimumStock = &v.SalePrice
- //productList[k].MaximumStock = &v.SalePrice
- //productList[k].Remark = &v.SalePrice
- 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)
+
}
--
Gitblit v1.8.0