Compare commits
4 Commits
v0.12.21
...
f43ca4bbcd
Author | SHA1 | Date | |
---|---|---|---|
f43ca4bbcd | |||
568843f71c | |||
23b2b783e7 | |||
1ef1a68948 |
@ -60,3 +60,12 @@ func (e Email) MarshalJSON() ([]byte, error) {
|
|||||||
v := fmt.Sprintf("%s***%s", split[0][:1], split[0][len(split[0])-1:])
|
v := fmt.Sprintf("%s***%s", split[0][:1], split[0][len(split[0])-1:])
|
||||||
return []byte(`"` + v + "@" + split[1] + `"`), nil
|
return []byte(`"` + v + "@" + split[1] + `"`), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (usc UnifiedSocialCreditCode) MarshalJSON() ([]byte, error) {
|
||||||
|
if len(usc) != 18 {
|
||||||
|
return []byte(`"` + usc + `"`), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
v := fmt.Sprintf("%s**********%s", usc[:4], usc[14:])
|
||||||
|
return []byte(`"` + v + `"`), nil
|
||||||
|
}
|
||||||
|
@ -1,19 +1,22 @@
|
|||||||
package ddm
|
package ddm
|
||||||
|
|
||||||
// 手机号 132****7986
|
// Mobile 手机号 132****7986
|
||||||
type Mobile string
|
type Mobile string
|
||||||
|
|
||||||
// 银行卡号 622888******5676
|
// BankCard 银行卡号 622888******5676
|
||||||
type BankCard string
|
type BankCard string
|
||||||
|
|
||||||
// 身份证号 1******7
|
// IDCard 身份证号 1******7
|
||||||
type IDCard string
|
type IDCard string
|
||||||
|
|
||||||
// 姓名 *鸿章
|
// IDName 姓名 *鸿章
|
||||||
type IDName string
|
type IDName string
|
||||||
|
|
||||||
// 密码 ******
|
// PassWord 密码 ******
|
||||||
type PassWord string
|
type PassWord string
|
||||||
|
|
||||||
// 邮箱 l***w@gmail.com
|
// Email 邮箱 l***w@gmail.com
|
||||||
type Email string
|
type Email string
|
||||||
|
|
||||||
|
// UnifiedSocialCreditCode 统一社会信用代码 9137****73X
|
||||||
|
type UnifiedSocialCreditCode string
|
||||||
|
@ -1,47 +0,0 @@
|
|||||||
package lock
|
|
||||||
|
|
||||||
import (
|
|
||||||
"sync"
|
|
||||||
"sync/atomic"
|
|
||||||
)
|
|
||||||
|
|
||||||
var _ Locker = (*locker)(nil)
|
|
||||||
|
|
||||||
type Locker interface {
|
|
||||||
condition() bool
|
|
||||||
Lock()
|
|
||||||
Unlock()
|
|
||||||
}
|
|
||||||
|
|
||||||
type locker struct {
|
|
||||||
lock *sync.Mutex
|
|
||||||
cond *sync.Cond
|
|
||||||
v *atomic.Bool
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewLocker() Locker {
|
|
||||||
lock := new(sync.Mutex)
|
|
||||||
return &locker{
|
|
||||||
lock: lock,
|
|
||||||
cond: sync.NewCond(lock),
|
|
||||||
v: new(atomic.Bool),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (l *locker) condition() bool {
|
|
||||||
return l.v.Load()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (l *locker) Lock() {
|
|
||||||
l.cond.L.Lock()
|
|
||||||
for l.condition() {
|
|
||||||
l.cond.Wait()
|
|
||||||
}
|
|
||||||
l.v.Store(true)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (l *locker) Unlock() {
|
|
||||||
l.v.Store(false)
|
|
||||||
l.cond.L.Unlock()
|
|
||||||
l.cond.Signal()
|
|
||||||
}
|
|
Reference in New Issue
Block a user