feat:完善项目

This commit is contained in:
henry
2021-11-15 17:32:23 +08:00
parent f5e2063685
commit 78128277ff
27 changed files with 717 additions and 105 deletions

View File

@ -6,7 +6,9 @@ import (
"ArmedPolice/app/model"
"ArmedPolice/app/service"
"ArmedPolice/config"
"ArmedPolice/serve/orm"
"errors"
"gorm.io/gorm"
"time"
)
@ -23,13 +25,17 @@ type (
// MaterialInfo 基本信息
MaterialInfo struct {
basic.CommonIDString
ManufacturerID string `json:"manufacturer_id"`
*model.ManageMaterialInfo
}
// MaterialParams 基本参数
MaterialParams struct {
ID, ManufacturerID uint64
Code, Title, Image, Remark string
Unit int
ID, ManufacturerID, MaterialID uint64
Code, Title, Image, Remark string
Unit int
Price float64
SupplierID uint64
Stock float64
}
)
@ -62,7 +68,7 @@ func (c *Material) List(manufacturerID, supplierID uint64, code, title string, p
}
var count int64
out, err := mManageMaterial.Materials(page, pageSize, &count)
out, err := mManageMaterial.Materials(page, pageSize, &count, where...)
if err != nil {
return nil, err
@ -70,9 +76,14 @@ func (c *Material) List(manufacturerID, supplierID uint64, code, title string, p
list := make([]*MaterialInfo, 0)
for _, v := range out {
mManageMaterial.SetID(v.ManageMaterial.ManufacturerID)
v.Stock -= v.FrozenStock
v.Image.Image = v.Analysis(config.SettingInfo.Domain)
list = append(list, &MaterialInfo{
CommonIDString: basic.CommonIDString{ID: v.GetEncodeID()},
ManufacturerID: mManageMaterial.GetEncodeID(),
ManageMaterialInfo: v,
})
}
@ -122,9 +133,13 @@ func (c *Material) Form(params *MaterialParams) error {
return errors.New("操作错误,已存在此对应的器材编码")
}
}
if mManageMaterial.TenantID != c.TenantID {
return errors.New("操作错误,无权限操作")
}
}
mManageMaterial.ManufacturerID = params.ManufacturerID
mManageMaterial.Code = params.Code
mManageMaterial.Price = params.Price
mManageMaterial.Title = params.Title
mManageMaterial.Unit = model2.ManageMaterialUnit(params.Unit)
mManageMaterial.Remark = params.Remark
@ -133,15 +148,44 @@ func (c *Material) Form(params *MaterialParams) error {
mManageMaterial.UpdatedAt = time.Now()
return model2.Updates(mManageMaterial.ManageMaterial, mManageMaterial.ManageMaterial)
}
isExist, err := params.isExistForCode(mManageMaterial, c.TenantID)
return orm.GetDB().Transaction(func(tx *gorm.DB) error {
if params.MaterialID <= 0 {
isExist, err := params.isExistForCode(mManageMaterial, c.TenantID)
if err != nil {
return err
} else if isExist {
return errors.New("操作错误,已存在此对应的器材编码")
}
mManageMaterial.TenantID = c.TenantID
if err = model2.Create(mManageMaterial.ManageMaterial, tx); err != nil {
return err
}
params.MaterialID = mManageMaterial.ID
} else {
if params.SupplierID <= 0 {
return errors.New("操作错误,未知的供应商信息")
}
}
mManageMaterialSupplier := model.NewManageMaterialSupplier()
var count int64
err := model2.Count(mManageMaterialSupplier.ManageMaterialSupplier, &count, model2.NewWhere("material_id", params.MaterialID),
model2.NewWhere("supplier_id", params.SupplierID))
if err != nil {
return err
} else if count > 0 {
return errors.New("操作错误,该器材已含有供应商信息")
}
mManageMaterialSupplier.MaterialID = params.MaterialID
mManageMaterialSupplier.SupplierID = params.SupplierID
mManageMaterialSupplier.Stock = params.Stock
return model2.Create(mManageMaterialSupplier.ManageMaterialSupplier, tx)
})
if err != nil {
return err
} else if isExist {
return errors.New("操作错误,已存在此对应的器材编码")
}
mManageMaterial.TenantID = c.TenantID
return model2.Create(mManageMaterial.ManageMaterial)
}
// Delete 删除操作