|
@@ -1,6 +1,9 @@
|
|
package public
|
|
package public
|
|
|
|
|
|
-import "fmt"
|
|
|
|
|
|
+import (
|
|
|
|
+ "fmt"
|
|
|
|
+ "sync"
|
|
|
|
+)
|
|
|
|
|
|
func PageNumParse(pageNum, pageSize, maxNum int64) (num, size int64, err error) {
|
|
func PageNumParse(pageNum, pageSize, maxNum int64) (num, size int64, err error) {
|
|
if pageNum < 1 {
|
|
if pageNum < 1 {
|
|
@@ -26,3 +29,30 @@ func PageRange(num, min, max int64) int64 {
|
|
}
|
|
}
|
|
return num
|
|
return num
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+var (
|
|
|
|
+ PLock *DocBuyLock
|
|
|
|
+)
|
|
|
|
+
|
|
|
|
+type DocBuyLock struct {
|
|
|
|
+ sync.Mutex
|
|
|
|
+ UserLock map[string]*sync.Mutex
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+func NewDocBuyLock() *DocBuyLock {
|
|
|
|
+ return &DocBuyLock{
|
|
|
|
+ UserLock: make(map[string]*sync.Mutex),
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+func init() {
|
|
|
|
+ PLock = NewDocBuyLock()
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+func GetNewDocBuyLock(str string) *sync.Mutex {
|
|
|
|
+ PLock.Lock()
|
|
|
|
+ if PLock.UserLock[str] == nil {
|
|
|
|
+ PLock.UserLock[str] = &sync.Mutex{}
|
|
|
|
+ }
|
|
|
|
+ PLock.Unlock()
|
|
|
|
+ return PLock.UserLock[str]
|
|
|
|
+}
|