WH01243 2 år sedan
förälder
incheckning
df591d32df
2 ändrade filer med 19 tillägg och 0 borttagningar
  1. 2 0
      service/activityServiceNew.go
  2. 17 0
      util/data.go

+ 2 - 0
service/activityServiceNew.go

@@ -120,6 +120,8 @@ func (service *ActivityServiceNew) GetCommodityList(in *activity.Request) []*act
 
 func (service *ActivityServiceNew) UserAllLottery(in *activity.AllLotteryReq) map[string][]entity.Activity {
 	//判断是否查询子类商品
+	util.Lock(in.UserId).Lock()
+	defer util.Lock(in.UserId).Unlock()
 	result := map[string][]entity.Activity{}
 	orm := entity.Engine
 	productList := []map[string]string{}

+ 17 - 0
util/data.go

@@ -2,6 +2,7 @@ package util
 
 import (
 	"fmt"
+	"sync"
 	"time"
 )
 
@@ -38,3 +39,19 @@ func ObtainAppointTimeString(now string, beApartDay int) string {
 	stopTimeStr := stopTime.Format("2006-01-02 15:04:05")
 	return stopTimeStr
 }
+
+var UserPool = 20
+var Locks = make([]*sync.Mutex, UserPool)
+
+func Lock(userId string) *sync.Mutex {
+	n := 0
+	for _, v := range userId {
+		n += int(v)
+	}
+	return Locks[n%UserPool]
+}
+func init() {
+	for i := 0; i < UserPool; i++ {
+		Locks[i] = &sync.Mutex{}
+	}
+}