@@ -53,25 +53,19 @@ type updateinfo struct {
53
53
54
54
}
55
55
56
- func (sql * 婚姻登记 ) checkupdate (gid int64 ) (updatetime string , number int , err error ) {
56
+ func (sql * 婚姻登记 ) checkupdate (gid int64 ) (updatetime string , err error ) {
57
57
sql .dbmu .Lock ()
58
58
defer sql .dbmu .Unlock ()
59
59
err = sql .db .Create ("updateinfo" , & updateinfo {})
60
60
if err != nil {
61
61
return
62
62
}
63
- number , err = sql .db .Count ("updateinfo" )
64
- switch { // 先判断数据库是否为空
65
- case err != nil :
66
- return
67
- case number <= 0 :
68
- return
69
- }
70
63
gidstr := strconv .FormatInt (gid , 10 )
71
64
dbinfo := updateinfo {}
72
65
err = sql .db .Find ("updateinfo" , & dbinfo , "where gid is " + gidstr ) // 获取表格更新的时间
73
66
if err != nil {
74
- err = sql .db .Insert ("updateinfo" , & updateinfo {GID : gid })
67
+ updatetime = time .Now ().Format ("2006/01/02" )
68
+ err = sql .db .Insert ("updateinfo" , & updateinfo {GID : gid , Updatetime : updatetime })
75
69
return
76
70
}
77
71
updatetime = dbinfo .Updatetime
@@ -83,6 +77,16 @@ func (sql *婚姻登记) 重置(gid string) error {
83
77
defer sql .dbmu .Unlock ()
84
78
if gid != "ALL" {
85
79
err := sql .db .Drop (gid )
80
+ if err != nil {
81
+ err = sql .db .Create (gid , & userinfo {})
82
+ return err
83
+ }
84
+ gidint , _ := strconv .ParseInt (gid , 10 , 64 )
85
+ updateinfo := updateinfo {
86
+ GID : gidint ,
87
+ Updatetime : time .Now ().Format ("2006/01/02" ),
88
+ }
89
+ err = sql .db .Insert ("updateinfo" , & updateinfo )
86
90
return err
87
91
}
88
92
grouplist , err := sql .db .ListTables ()
@@ -94,6 +98,12 @@ func (sql *婚姻登记) 重置(gid string) error {
94
98
if err != nil {
95
99
continue
96
100
}
101
+ gidint , _ := strconv .ParseInt (gid , 10 , 64 )
102
+ updateinfo := updateinfo {
103
+ GID : gidint ,
104
+ Updatetime : time .Now ().Format ("2006/01/02" ),
105
+ }
106
+ err = sql .db .Insert ("updateinfo" , & updateinfo )
97
107
}
98
108
return err
99
109
}
@@ -141,10 +151,6 @@ func (sql *婚姻登记) 复婚(gid, uid, target int64, username, targetname str
141
151
info .Updatetime = updatetime
142
152
// 民政局登记数据
143
153
err = sql .db .Insert (gidstr , & info )
144
- if err != nil {
145
- return err
146
- }
147
- err = sql .db .Insert ("updateinfo" , & updateinfo {GID : gid , Updatetime : updatetime })
148
154
return err
149
155
}
150
156
@@ -244,10 +250,6 @@ func (sql *婚姻登记) 登记(gid, uid, target int64, username, targetname str
244
250
}
245
251
// 民政局登记数据
246
252
err = sql .db .Insert (gidstr , & uidinfo )
247
- if err != nil {
248
- return err
249
- }
250
- err = sql .db .Insert ("updateinfo" , & updateinfo {GID : gid , Updatetime : updatetime })
251
253
return err
252
254
}
253
255
@@ -305,7 +307,7 @@ func init() {
305
307
engine .OnFullMatch ("娶群友" , zero .OnlyGroup , getdb ).SetBlock (true ).Limit (ctxext .LimitByUser ).
306
308
Handle (func (ctx * zero.Ctx ) {
307
309
gid := ctx .Event .GroupID
308
- updatetime , _ , err := 民政局 .checkupdate (gid )
310
+ updatetime , err := 民政局 .checkupdate (gid )
309
311
switch {
310
312
case err != nil :
311
313
ctx .SendChain (message .Text ("数据库发生问题力,请联系bot管理员\n [error]" , err ))
@@ -511,7 +513,21 @@ func init() {
511
513
})
512
514
engine .OnFullMatch ("群老婆列表" , zero .OnlyGroup , getdb ).SetBlock (true ).Limit (ctxext .LimitByUser ).
513
515
Handle (func (ctx * zero.Ctx ) {
514
- list , number , err := 民政局 .花名册 (ctx .Event .GroupID )
516
+ gid := ctx .Event .GroupID
517
+ updatetime , err := 民政局 .checkupdate (gid )
518
+ switch {
519
+ case err != nil :
520
+ ctx .SendChain (message .Text ("数据库发生问题力,请联系bot管理员\n [error]" , err ))
521
+ return
522
+ case time .Now ().Format ("2006/01/02" ) != updatetime :
523
+ if err := 民政局 .重置 (strconv .FormatInt (gid , 10 )); err != nil {
524
+ ctx .SendChain (message .Text ("数据库发生问题力,请联系bot管理员\n [error]" , err ))
525
+ return
526
+ }
527
+ ctx .SendChain (message .Text ("今天还没有人结婚哦" ))
528
+ return
529
+ }
530
+ list , number , err := 民政局 .花名册 (gid )
515
531
if err != nil {
516
532
ctx .SendChain (message .Text ("数据库发生问题力,请联系bot管理员\n [error]" , err ))
517
533
return
@@ -563,9 +579,22 @@ func init() {
563
579
})
564
580
engine .OnFullMatchGroup ([]string {"闹离婚" , "办离婚" }, zero .OnlyGroup , getdb ).SetBlock (true ).Limit (cdcheck , iscding2 ).
565
581
Handle (func (ctx * zero.Ctx ) {
566
- uid := ctx .Event .UserID
567
582
gid := ctx .Event .GroupID
583
+ updatetime , err := 民政局 .checkupdate (gid )
584
+ switch {
585
+ case err != nil :
586
+ ctx .SendChain (message .Text ("数据库发生问题力,请联系bot管理员\n [error]" , err ))
587
+ return
588
+ case time .Now ().Format ("2006/01/02" ) != updatetime :
589
+ if err := 民政局 .重置 (strconv .FormatInt (gid , 10 )); err != nil {
590
+ ctx .SendChain (message .Text ("数据库发生问题力,请联系bot管理员\n [error]" , err ))
591
+ return
592
+ }
593
+ ctx .SendChain (message .Text ("今天你还没有结婚哦" ))
594
+ return
595
+ }
568
596
// 获取用户信息
597
+ uid := ctx .Event .UserID
569
598
info , uidstatus , err := 民政局 .查户口 (gid , uid )
570
599
switch uidstatus {
571
600
case 3 :
@@ -638,26 +667,26 @@ func iscding(ctx *zero.Ctx) {
638
667
639
668
// 注入判断 是否为单身
640
669
func checkdog (ctx * zero.Ctx ) bool {
670
+ //得先判断用户是否存在才行在,再重置
671
+ fiancee , err := strconv .ParseInt (ctx .State ["regex_matched" ].([]string )[2 ], 10 , 64 )
672
+ if err != nil {
673
+ ctx .SendChain (message .Text ("额,你的target好像不存在?" ))
674
+ return false
675
+ }
676
+ //判断是否需要重置
641
677
gid := ctx .Event .GroupID
642
- updatetime , number , err := 民政局 .checkupdate (gid )
678
+ updatetime , err := 民政局 .checkupdate (gid )
643
679
switch {
644
680
case err != nil :
645
681
ctx .SendChain (message .Text ("数据库发生问题力,请联系bot管理员\n [error]" , err ))
646
682
return false
647
- case number == 0 : // 没有任何记录就说明全是单身
648
- return true
649
683
case time .Now ().Format ("2006/01/02" ) != updatetime :
650
684
if err := 民政局 .重置 (strconv .FormatInt (gid , 10 )); err != nil {
651
685
ctx .SendChain (message .Text ("数据库发生问题力,请联系bot管理员\n [error]" , err ))
652
686
return false
653
687
}
654
688
return true // 重置后也全是单身
655
689
}
656
- fiancee , err := strconv .ParseInt (ctx .State ["regex_matched" ].([]string )[2 ], 10 , 64 )
657
- if err != nil {
658
- ctx .SendChain (message .Text ("额,你的target好像不存在?" ))
659
- return false
660
- }
661
690
uid := ctx .Event .UserID
662
691
// 获取用户信息
663
692
uidtarget , uidstatus , err1 := 民政局 .查户口 (gid , uid )
@@ -698,14 +727,11 @@ func checkdog(ctx *zero.Ctx) bool {
698
727
// 注入判断 是否满足小三要求
699
728
func checkcp (ctx * zero.Ctx ) bool {
700
729
gid := ctx .Event .GroupID
701
- updatetime , number , err := 民政局 .checkupdate (gid )
730
+ updatetime , err := 民政局 .checkupdate (gid )
702
731
switch {
703
732
case err != nil :
704
733
ctx .SendChain (message .Text ("数据库发生问题力,请联系bot管理员\n [error]" , err ))
705
734
return false
706
- case number == 0 : // 没有任何记录就说明全是单身
707
- ctx .SendChain (message .Text ("ta现在还是单身哦,快向ta表白吧!" ))
708
- return false
709
735
case time .Now ().Format ("2006/01/02" ) != updatetime :
710
736
if err := 民政局 .重置 (strconv .FormatInt (gid , 10 )); err != nil {
711
737
ctx .SendChain (message .Text ("数据库发生问题力,请联系bot管理员\n [error]" , err ))
0 commit comments