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 }