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 | 128 ++++++++++++++++++++++++++++++++++++------
1 files changed, 110 insertions(+), 18 deletions(-)
diff --git a/api/v1/test/product.go b/api/v1/test/product.go
index c7b7457..64b99e5 100644
--- a/api/v1/test/product.go
+++ b/api/v1/test/product.go
@@ -3,11 +3,14 @@
import (
"github.com/gin-gonic/gin"
"go.uber.org/zap"
+ "google.golang.org/grpc"
+ "google.golang.org/grpc/credentials/insecure"
"srm/global"
"srm/model/common/request"
"srm/model/common/response"
"srm/model/test"
testReq "srm/model/test/request"
+ testResp "srm/model/test/response"
"srm/service"
)
@@ -22,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 {
@@ -46,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 {
@@ -94,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)
@@ -118,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)
@@ -143,24 +159,100 @@
// @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 params testReq.ProductSearch
+ err := c.ShouldBindQuery(¶ms)
+ if err != nil {
+ response.FailWithMessage(err.Error(), c)
+ return
+ }
+ list, total, err := pService.GetProductInfoList(params)
+ if err != nil {
+ global.GVA_LOG.Error("鑾峰彇澶辫触!", zap.Error(err))
+ response.FailWithMessage("鑾峰彇澶辫触", c)
+ return
+ }
+
+ response.OkWithDetailed(response.PageResult{
+ List: list,
+ Total: total,
+ Page: params.Page,
+ PageSize: params.PageSize,
+ }, "鑾峰彇鎴愬姛", c)
+}
+
+var (
+ productServiceConn *grpc.ClientConn
+)
+
+func InitProductServiceConn() {
+ var err error
+ productServiceConn, err = grpc.Dial(global.GVA_CONFIG.System.GrpcUrl, grpc.WithTransportCredentials(insecure.NewCredentials()))
+ if err != nil {
+ //logx.Errorf("grpc dial product service error: %v", err.Error())
+ return
+ }
+}
+
+func CloseProductServiceConn() {
+ if productServiceConn != nil {
+ productServiceConn.Close()
+ }
+}
+
+// GetProductListFromGrpc 鍒嗛〉鑾峰彇Product鍒楄〃
+// @Tags Product
+// @Summary 鍒嗛〉鑾峰彇Product鍒楄〃
+// @Security ApiKeyAuth
+// @accept application/json
+// @Produce application/json
+// @Param data query testReq.ProductSearch true "鍒嗛〉鑾峰彇Product鍒楄〃"
+// @Success 200 {string} string "{"success":true,"data":{},"msg":"鑾峰彇鎴愬姛"}"
+// @Router /p/getProductListFromGrpc [get]
+func (pApi *ProductApi) GetProductListFromGrpc(c *gin.Context) {
var pageInfo testReq.ProductSearch
err := c.ShouldBindQuery(&pageInfo)
if err != nil {
response.FailWithMessage(err.Error(), c)
return
}
- if list, total, err := pService.GetProductInfoList(pageInfo); err != nil {
+
+ 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: list,
- Total: total,
- 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