From 3d939d8e866a43f4b49326d931bd06b553f29979 Mon Sep 17 00:00:00 2001
From: liujiandao <274878379@qq.com>
Date: 星期一, 11 三月 2024 14:16:53 +0800
Subject: [PATCH] 产品获取单位信息

---
 controllers/product_controller.go |   16 +++
 models/unit_dict.go               |  230 ++++++++++++++++++++++++++++++++++++++++++++++
 router/router.go                  |    1 
 3 files changed, 247 insertions(+), 0 deletions(-)

diff --git a/controllers/product_controller.go b/controllers/product_controller.go
index 84d970e..565bf9a 100644
--- a/controllers/product_controller.go
+++ b/controllers/product_controller.go
@@ -761,3 +761,19 @@
 	m["userName"] = userInfo.Username
 	util.ResponseFormat(c, code.Success, m)
 }
+
+// GetUnitInfo
+//
+//	@Tags		浜у搧
+//	@Summary	鑾峰彇鍗曚綅淇℃伅
+//	@Produce	application/json
+//	@Success	200	{object}	util.ResponseList{data=map[string]interface{}}	"鎴愬姛"
+//	@Router		/api-wms/v1/product/getUnitInfo [get]
+func (slf ProductController) GetUnitInfo(c *gin.Context) {
+	dicts, total, err := models.NewUnitDictSearch().Find()
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "鏌ヨ鍑洪敊")
+		return
+	}
+	util.ResponseFormatList(c, code.Success, dicts, int(total))
+}
diff --git a/models/unit_dict.go b/models/unit_dict.go
new file mode 100644
index 0000000..e7b3fb4
--- /dev/null
+++ b/models/unit_dict.go
@@ -0,0 +1,230 @@
+package models
+
+import (
+	"fmt"
+	"gorm.io/gorm"
+	"wms/pkg/mysqlx"
+)
+
+type (
+	// UnitDict 璁¢噺鍗曚綅瀛楀吀
+	UnitDict struct {
+		BaseModelInt
+		Name      string `gorm:"unique;type:varchar(191);not null;comment:鍚嶇О" json:"name"`
+		IsDefault bool   `gorm:"type:tinyint(1);comment:鏄惁榛樿" json:"isDefault"`
+		Sort      int    `gorm:"type:int(11);comment:鎺掑簭" json:"-"`
+	}
+
+	UnitDictSearch struct {
+		UnitDict
+		Order    string
+		PageNum  int
+		PageSize int
+		Orm      *gorm.DB
+	}
+)
+
+func (slf UnitDict) TableName() string {
+	return "unit_dict"
+}
+
+func NewUnitDictSearch() *UnitDictSearch {
+	return &UnitDictSearch{Orm: mysqlx.GetDB()}
+}
+
+func (slf *UnitDictSearch) SetOrm(tx *gorm.DB) *UnitDictSearch {
+	slf.Orm = tx
+	return slf
+}
+
+func (slf *UnitDictSearch) SetPage(page, size int) *UnitDictSearch {
+	slf.PageNum, slf.PageSize = page, size
+	return slf
+}
+
+func (slf *UnitDictSearch) SetOrder(order string) *UnitDictSearch {
+	slf.Order = order
+	return slf
+}
+
+func (slf *UnitDictSearch) SetID(id uint) *UnitDictSearch {
+	slf.ID = id
+	return slf
+}
+
+func (slf *UnitDictSearch) SetName(name string) *UnitDictSearch {
+	slf.Name = name
+	return slf
+}
+
+func (slf *UnitDictSearch) build() *gorm.DB {
+	var db = slf.Orm.Table(slf.TableName())
+
+	if slf.ID > 0 {
+		db = db.Where("id = ?", slf.ID)
+	}
+
+	if slf.Name != "" {
+		db = db.Where("name = ?", slf.Name)
+	}
+
+	db.Where("1 = 1")
+	if slf.Order != "" {
+		db = db.Order(slf.Order)
+	}
+
+	return db
+}
+
+// Create 鍗曟潯鎻掑叆
+func (slf *UnitDictSearch) Create(record *UnitDict) error {
+	var db = slf.build()
+
+	if err := db.Create(record).Error; err != nil {
+		return fmt.Errorf("create err: %v, record: %+v", err, record)
+	}
+
+	return nil
+}
+
+// CreateBatch 鎵归噺鎻掑叆
+func (slf *UnitDictSearch) CreateBatch(records []*UnitDict) error {
+	var db = slf.build()
+
+	if err := db.Create(&records).Error; err != nil {
+		return fmt.Errorf("create batch err: %v, records: %+v", err, records)
+	}
+
+	return nil
+}
+
+func (slf *UnitDictSearch) Save(record *UnitDict) error {
+	var db = slf.build()
+
+	if err := db.Omit("CreatedAt").Save(record).Error; err != nil {
+		return fmt.Errorf("save err: %v, record: %+v", err, record)
+	}
+
+	return nil
+}
+
+func (slf *UnitDictSearch) UpdateByMap(upMap map[string]interface{}) error {
+	var (
+		db = slf.build()
+	)
+
+	if err := db.Updates(upMap).Error; err != nil {
+		return fmt.Errorf("update by map err: %v, upMap: %+v", err, upMap)
+	}
+
+	return nil
+}
+
+func (slf *UnitDictSearch) UpdateByQuery(query string, args []interface{}, upMap map[string]interface{}) error {
+	var (
+		db = slf.Orm.Table(slf.TableName()).Where(query, args...)
+	)
+
+	if err := db.Updates(upMap).Error; err != nil {
+		return fmt.Errorf("update by query err: %v, query: %s, args: %+v, upMap: %+v", err, query, args, upMap)
+	}
+
+	return nil
+}
+
+func (slf *UnitDictSearch) Delete() error {
+	var db = slf.build()
+
+	if err := db.Unscoped().Delete(&UnitDict{}).Error; err != nil {
+		return err
+	}
+
+	return nil
+}
+
+func (slf *UnitDictSearch) First() (*UnitDict, error) {
+	var (
+		record = new(UnitDict)
+		db     = slf.build()
+	)
+
+	if err := db.First(record).Error; err != nil {
+		return record, err
+	}
+
+	return record, nil
+}
+
+func (slf *UnitDictSearch) Find() ([]*UnitDict, int64, error) {
+	var (
+		records = make([]*UnitDict, 0)
+		total   int64
+		db      = slf.build()
+	)
+
+	if err := db.Count(&total).Error; err != nil {
+		return records, total, fmt.Errorf("find count err: %v", err)
+	}
+	if slf.PageNum*slf.PageSize > 0 {
+		db = db.Offset((slf.PageNum - 1) * slf.PageSize).Limit(slf.PageSize)
+	}
+	if err := db.Find(&records).Error; err != nil {
+		return records, total, fmt.Errorf("find records err: %v", err)
+	}
+
+	return records, total, nil
+}
+
+func (slf *UnitDictSearch) FindNotTotal() ([]*UnitDict, error) {
+	var (
+		records = make([]*UnitDict, 0)
+		db      = slf.build()
+	)
+
+	if slf.PageNum*slf.PageSize > 0 {
+		db = db.Offset((slf.PageNum - 1) * slf.PageSize).Limit(slf.PageSize)
+	}
+	if err := db.Find(&records).Error; err != nil {
+		return records, fmt.Errorf("find records err: %v", err)
+	}
+
+	return records, nil
+}
+
+// FindByQuery 鎸囧畾鏉′欢鏌ヨ.
+func (slf *UnitDictSearch) FindByQuery(query string, args []interface{}) ([]*UnitDict, int64, error) {
+	var (
+		records = make([]*UnitDict, 0)
+		total   int64
+		db      = slf.Orm.Table(slf.TableName()).Where(query, args...)
+	)
+
+	if err := db.Count(&total).Error; err != nil {
+		return records, total, fmt.Errorf("find by query count err: %v", err)
+	}
+	if slf.PageNum*slf.PageSize > 0 {
+		db = db.Offset((slf.PageNum - 1) * slf.PageSize).Limit(slf.PageSize)
+	}
+	if err := db.Find(&records).Error; err != nil {
+		return records, total, fmt.Errorf("find by query records err: %v, query: %s, args: %+v", err, query, args)
+	}
+
+	return records, total, nil
+}
+
+// FindByQueryNotTotal 鎸囧畾鏉′欢鏌ヨ&涓嶆煡璇㈡�绘潯鏁�.
+func (slf *UnitDictSearch) FindByQueryNotTotal(query string, args []interface{}) ([]*UnitDict, error) {
+	var (
+		records = make([]*UnitDict, 0)
+		db      = slf.Orm.Table(slf.TableName()).Where(query, args...)
+	)
+
+	if slf.PageNum*slf.PageSize > 0 {
+		db = db.Offset((slf.PageNum - 1) * slf.PageSize).Limit(slf.PageSize)
+	}
+	if err := db.Find(&records).Error; err != nil {
+		return records, fmt.Errorf("find by query records err: %v, query: %s, args: %+v", err, query, args)
+	}
+
+	return records, nil
+}
diff --git a/router/router.go b/router/router.go
index 2bee382..7bd6d6d 100644
--- a/router/router.go
+++ b/router/router.go
@@ -121,6 +121,7 @@
 		productAPI.POST("listHistory", productController.ListHistory)      //浜у搧浣嶇疆鍘嗗彶璁板綍
 		productAPI.PUT("cancelDisuse/:id", productController.CancelDisuse) //鍙栨秷鎶ュ簾
 		productAPI.GET("getUserInfo", productController.GetUserInfo)       //鑾峰彇鐧诲綍鐢ㄦ埛淇℃伅
+		productAPI.GET("getUnitInfo", productController.GetUnitInfo)       //鑾峰彇鍗曚綅淇℃伅
 
 	}
 

--
Gitblit v1.8.0