54 lines
1.2 KiB
Go
54 lines
1.2 KiB
Go
package order
|
|
|
|
import (
|
|
"sundynix-go/global"
|
|
model "sundynix-go/model/order"
|
|
req "sundynix-go/model/order/request"
|
|
)
|
|
|
|
type StockService struct{}
|
|
|
|
var StockServiceApp = new(StockService)
|
|
|
|
func (s *StockService) Save(r req.SaveStockReq) error {
|
|
data := model.Stock{
|
|
Amount: r.Amount,
|
|
}
|
|
return global.DB.Create(&data).Error
|
|
}
|
|
|
|
func (s *StockService) Update(r req.UpdateStockReq) error {
|
|
updates := map[string]any{
|
|
"amount": r.Amount,
|
|
}
|
|
return global.DB.Model(&model.Stock{}).Where("id = ?", r.Id).Updates(updates).Error
|
|
}
|
|
|
|
func (s *StockService) Delete(ids []string) error {
|
|
return global.DB.Where("id IN ?", ids).Delete(&model.Stock{}).Error
|
|
}
|
|
|
|
func (s *StockService) Detail(id string) (data *model.Stock, err error) {
|
|
var record model.Stock
|
|
err = global.DB.Where("id = ?", id).First(&record).Error
|
|
return &record, err
|
|
}
|
|
|
|
func (s *StockService) List(r req.ListStockReq) (list []model.Stock, total int64, err error) {
|
|
if r.PageSize <= 0 {
|
|
r.PageSize = 10
|
|
}
|
|
if r.Current <= 0 {
|
|
r.Current = 1
|
|
}
|
|
db := global.DB.Model(&model.Stock{})
|
|
if r.Keyword != "" {
|
|
db = db.Where("id LIKE ?", "%"+r.Keyword+"%")
|
|
}
|
|
if err = db.Count(&total).Error; err != nil {
|
|
return
|
|
}
|
|
err = db.Limit(r.PageSize).Offset(r.PageSize * (r.Current - 1)).Find(&list).Error
|
|
return
|
|
}
|