mh_goadmin_server/app/admin/models/tools/productCounter.go

35 lines
609 B
Go
Raw Normal View History

package tools
import (
"sync"
)
type ProductCounter struct {
mu sync.Mutex
counters map[string]int
}
func NewProductCounter() *ProductCounter {
return &ProductCounter{
counters: make(map[string]int),
}
}
func (pc *ProductCounter) GetNextProductNumber(categoryID string) int {
pc.mu.Lock()
defer pc.mu.Unlock()
// 如果之前没有这个分类的计数器初始化为1
if _, ok := pc.counters[categoryID]; !ok {
pc.counters[categoryID] = 1
}
// 生成商品编号
productNumber := pc.counters[categoryID]
// 增加计数器
pc.counters[categoryID]++
return productNumber
}