From 8e14e1a66883bdbb2c84d16f2cd3f82cdd17519c Mon Sep 17 00:00:00 2001 From: dongl <2725096176@qq.com> Date: Fri, 22 Jul 2022 11:00:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=8A=E6=97=A5=E7=AD=BE=E5=88=B0=20?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=A7=AF=E5=88=86=20=20=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E7=A7=AF=E5=88=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controller/signIn.go | 10 +++++++-- database/database.go | 48 ++++++++++++++++++++++++++++++++++++++++++++ go.mod | 1 + go.sum | 2 ++ main.go | 10 +++------ storage.json | 2 +- 6 files changed, 63 insertions(+), 10 deletions(-) diff --git a/controller/signIn.go b/controller/signIn.go index 66b0e51..5e6db13 100644 --- a/controller/signIn.go +++ b/controller/signIn.go @@ -4,6 +4,8 @@ import ( "fmt" "github.com/eatmoreapple/openwechat" "github.com/robfig/cron/v3" + "go-bot/bot/database" + "strconv" "time" ) @@ -52,6 +54,11 @@ func SignIn(msg *openwechat.Message, self *openwechat.Self) { sender, err := msg.SenderInGroup() nickName := sender.NickName + //查询数据库是否有此人 或此人就获得积分 + integration := database.SelectUserIntegrationByNickName(nickName) + fmt.Println(integration) + integration = database.UpDataUserIntegrationByNickName(nickName, integration) + // 获取群聊组 groups, err := self.Groups() name := groups.GetByNickName("叫啥好呢") @@ -59,6 +66,5 @@ func SignIn(msg *openwechat.Message, self *openwechat.Self) { // 当前时间 timeStr := time.Now().Format("2006-01-02 15:04:05") - self.SendTextToGroup(name, nickName+":今日打卡成功!\n"+ - "时间:"+timeStr) + self.SendTextToGroup(name, nickName+":今日打卡成功!\n"+"积分:"+strconv.Itoa(integration)+"\n时间:"+timeStr) } diff --git a/database/database.go b/database/database.go index da1eb32..301fdcf 100644 --- a/database/database.go +++ b/database/database.go @@ -4,6 +4,7 @@ import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" + uuid "github.com/satori/go.uuid" ) var ( @@ -64,3 +65,50 @@ func SelectData() string { return stringLine } + +func SelectUserIntegrationByNickName(nickname string) int { + var integration_ sql.NullInt64 + var user User + row := DB.QueryRow("SELECT integration FROM User where username = '" + nickname + "'") + err := row.Scan(&integration_) + if err != nil { + row, err := DB.Exec("insert into User(uid,account_wx,username,role,integration) "+ + "values (?,?,?,?,?)", uuid.NewV4().String(), nickname, nickname, "user", 1) + if err != nil { + fmt.Println("exec success, ", row) + fmt.Println("exec failed, ", err) + return 9990999 + } + } + + row = DB.QueryRow("SELECT integration FROM User where username = '" + nickname + "'") + err = row.Scan(&integration_) + if err != nil { + fmt.Println(err) + } + + user = User{ + Integration: int(integration_.Int64), + } + return user.Integration +} + +func UpDataUserIntegrationByNickName(nickname string, integration int) int { + var integration_ sql.NullInt64 + var user User + row := DB.QueryRow("update User set integration=? where username=?", integration+1, nickname) + err := row.Scan(&integration_) + if err != nil { + fmt.Println(err) + } + row = DB.QueryRow("SELECT integration FROM User where username = '" + nickname + "'") + err = row.Scan(&integration_) + if err != nil { + fmt.Println(err) + } + + user = User{ + Integration: int(integration_.Int64), + } + return user.Integration +} diff --git a/go.mod b/go.mod index ad1901b..234983f 100644 --- a/go.mod +++ b/go.mod @@ -10,4 +10,5 @@ require ( require ( github.com/go-sql-driver/mysql v1.6.0 // indirect github.com/robfig/cron/v3 v3.0.0 // indirect + github.com/satori/go.uuid v1.2.0 // indirect ) diff --git a/go.sum b/go.sum index 277b567..c928817 100644 --- a/go.sum +++ b/go.sum @@ -6,3 +6,5 @@ github.com/robfig/cron v1.2.0 h1:ZjScXvvxeQ63Dbyxy76Fj3AT3Ut0aKsyd2/tl3DTMuQ= github.com/robfig/cron v1.2.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k= github.com/robfig/cron/v3 v3.0.0 h1:kQ6Cb7aHOHTSzNVNEhmp8EcWKLb4CbiMW9h9VyIhO4E= github.com/robfig/cron/v3 v3.0.0/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= +github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww= +github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= diff --git a/main.go b/main.go index 670387f..2e0f30c 100644 --- a/main.go +++ b/main.go @@ -16,14 +16,10 @@ func main() { reloadStorage := openwechat.NewJsonFileHotReloadStorage("storage.json") //bot.HotLogin(reloadStorage) // 执行热登录 - err := bot.HotLogin(reloadStorage) + err := bot.HotLogin(reloadStorage, true) if err != nil { - //登陆 - if err := bot.Login(); err != nil { - fmt.Println(err) - return - } - + fmt.Println(err) + return } // 注册登陆二维码回调 diff --git a/storage.json b/storage.json index ebb39f4..cbe15a8 100644 --- a/storage.json +++ b/storage.json @@ -1 +1 @@ -{"Cookies":{"https://login.wx.qq.com/cgi-bin/mmwebwx-bin/login":[],"https://login.wx.qq.com/jslogin":[],"https://wx2.qq.com/cgi-bin/mmwebwx-bin/webwxinit":[],"https://wx2.qq.com/cgi-bin/mmwebwx-bin/webwxnewloginpage":[{"Name":"wxuin","Value":"2194844303","Path":"/","Domain":"wx2.qq.com","Expires":"2022-07-20T14:14:57Z","RawExpires":"Wed, 20-Jul-2022 14:14:57 GMT","MaxAge":0,"Secure":true,"HttpOnly":false,"SameSite":0,"Raw":"wxuin=2194844303; Domain=wx2.qq.com; Path=/; Expires=Wed, 20-Jul-2022 14:14:57 GMT; Secure","Unparsed":null},{"Name":"wxsid","Value":"QAci3vj2TiuTDrGn","Path":"/","Domain":"wx2.qq.com","Expires":"2022-07-20T14:14:57Z","RawExpires":"Wed, 20-Jul-2022 14:14:57 GMT","MaxAge":0,"Secure":true,"HttpOnly":false,"SameSite":0,"Raw":"wxsid=QAci3vj2TiuTDrGn; Domain=wx2.qq.com; Path=/; Expires=Wed, 20-Jul-2022 14:14:57 GMT; Secure","Unparsed":null},{"Name":"wxloadtime","Value":"1658283297","Path":"/","Domain":"wx2.qq.com","Expires":"2022-07-20T14:14:57Z","RawExpires":"Wed, 20-Jul-2022 14:14:57 GMT","MaxAge":0,"Secure":true,"HttpOnly":false,"SameSite":0,"Raw":"wxloadtime=1658283297; Domain=wx2.qq.com; Path=/; Expires=Wed, 20-Jul-2022 14:14:57 GMT; Secure","Unparsed":null},{"Name":"mm_lang","Value":"zh_CN","Path":"/","Domain":"wx2.qq.com","Expires":"2022-07-20T14:14:57Z","RawExpires":"Wed, 20-Jul-2022 14:14:57 GMT","MaxAge":0,"Secure":true,"HttpOnly":false,"SameSite":0,"Raw":"mm_lang=zh_CN; Domain=wx2.qq.com; Path=/; Expires=Wed, 20-Jul-2022 14:14:57 GMT; Secure","Unparsed":null},{"Name":"wxuin","Value":"2194844303","Path":"/","Domain":".qq.com","Expires":"2022-07-20T14:14:57Z","RawExpires":"Wed, 20-Jul-2022 14:14:57 GMT","MaxAge":0,"Secure":true,"HttpOnly":false,"SameSite":0,"Raw":"wxuin=2194844303; Domain=.qq.com; Path=/; Expires=Wed, 20-Jul-2022 14:14:57 GMT; Secure","Unparsed":null},{"Name":"webwx_data_ticket","Value":"gSd/JXwMnsMus3oBSYZPDD2e","Path":"/","Domain":".qq.com","Expires":"2022-07-20T14:14:57Z","RawExpires":"Wed, 20-Jul-2022 14:14:57 GMT","MaxAge":0,"Secure":true,"HttpOnly":false,"SameSite":0,"Raw":"webwx_data_ticket=gSd/JXwMnsMus3oBSYZPDD2e; Domain=.qq.com; Path=/; Expires=Wed, 20-Jul-2022 14:14:57 GMT; Secure","Unparsed":null},{"Name":"webwxuvid","Value":"ee5632a55c23b70f4f4a294edf958376d195c56cc895d36d28df5320d5b7812e310025f1fcad3c3672d121bb3e47b8d8","Path":"/","Domain":"wx2.qq.com","Expires":"2032-07-17T02:14:57Z","RawExpires":"Sat, 17-Jul-2032 02:14:57 GMT","MaxAge":0,"Secure":true,"HttpOnly":false,"SameSite":0,"Raw":"webwxuvid=ee5632a55c23b70f4f4a294edf958376d195c56cc895d36d28df5320d5b7812e310025f1fcad3c3672d121bb3e47b8d8; Domain=wx2.qq.com; Path=/; Expires=Sat, 17-Jul-2032 02:14:57 GMT; Secure","Unparsed":null},{"Name":"webwx_auth_ticket","Value":"CIsBELDR96oFGoABR5BNHjfarNyaAe5Gk4yKSkqRTDPP9vKnwE7U4MTo//04LOnOK9yNJ6dALnjQ3BHFIeSBztcXu2hjQAVHxjL4dc7SK3BB0FEJFSRLkX1IAl390WgJgQFd83xFa3qdYNtuAzBI+ewvw7vwYmqIbwyCKKabSdMZSE89Qq4wBG/mHpE=","Path":"/","Domain":"wx2.qq.com","Expires":"2032-07-17T02:14:57Z","RawExpires":"Sat, 17-Jul-2032 02:14:57 GMT","MaxAge":0,"Secure":true,"HttpOnly":false,"SameSite":0,"Raw":"webwx_auth_ticket=CIsBELDR96oFGoABR5BNHjfarNyaAe5Gk4yKSkqRTDPP9vKnwE7U4MTo//04LOnOK9yNJ6dALnjQ3BHFIeSBztcXu2hjQAVHxjL4dc7SK3BB0FEJFSRLkX1IAl390WgJgQFd83xFa3qdYNtuAzBI+ewvw7vwYmqIbwyCKKabSdMZSE89Qq4wBG/mHpE=; Domain=wx2.qq.com; Path=/; Expires=Sat, 17-Jul-2032 02:14:57 GMT; Secure","Unparsed":null}],"https://wx2.qq.com/cgi-bin/mmwebwx-bin/webwxstatusnotify":[]},"BaseRequest":{"Uin":2194844303,"Sid":"QAci3vj2TiuTDrGn","Skey":"@crypt_f512dfa9_762cc7fe272eb8cc02bd291e1bf05bf2","DeviceID":"e266442848611621"},"LoginInfo":{"Ret":0,"WxUin":2194844303,"IsGrayScale":1,"Message":"","SKey":"@crypt_f512dfa9_762cc7fe272eb8cc02bd291e1bf05bf2","WxSid":"QAci3vj2TiuTDrGn","PassTicket":"HFz62xk4cjkl53UCxXBocZdLWTqHbWP%2FGq2DtLX%2B7ew2bNnq2kOgWLcJjvbfnwRd"},"WechatDomain":"wx2.qq.com","UUID":"IdusqXJuQg=="} +{"Cookies":{"https://login.wx.qq.com/cgi-bin/mmwebwx-bin/login":[],"https://login.wx.qq.com/jslogin":[],"https://wx2.qq.com/cgi-bin/mmwebwx-bin/webwxinit":[],"https://wx2.qq.com/cgi-bin/mmwebwx-bin/webwxnewloginpage":[{"Name":"wxuin","Value":"2194844303","Path":"/","Domain":"wx2.qq.com","Expires":"2022-07-22T14:10:08Z","RawExpires":"Fri, 22-Jul-2022 14:10:08 GMT","MaxAge":0,"Secure":true,"HttpOnly":false,"SameSite":0,"Raw":"wxuin=2194844303; Domain=wx2.qq.com; Path=/; Expires=Fri, 22-Jul-2022 14:10:08 GMT; Secure","Unparsed":null},{"Name":"wxsid","Value":"0yZACy5XGwMJ0mnc","Path":"/","Domain":"wx2.qq.com","Expires":"2022-07-22T14:10:08Z","RawExpires":"Fri, 22-Jul-2022 14:10:08 GMT","MaxAge":0,"Secure":true,"HttpOnly":false,"SameSite":0,"Raw":"wxsid=0yZACy5XGwMJ0mnc; Domain=wx2.qq.com; Path=/; Expires=Fri, 22-Jul-2022 14:10:08 GMT; Secure","Unparsed":null},{"Name":"wxloadtime","Value":"1658455808","Path":"/","Domain":"wx2.qq.com","Expires":"2022-07-22T14:10:08Z","RawExpires":"Fri, 22-Jul-2022 14:10:08 GMT","MaxAge":0,"Secure":true,"HttpOnly":false,"SameSite":0,"Raw":"wxloadtime=1658455808; Domain=wx2.qq.com; Path=/; Expires=Fri, 22-Jul-2022 14:10:08 GMT; Secure","Unparsed":null},{"Name":"mm_lang","Value":"zh_CN","Path":"/","Domain":"wx2.qq.com","Expires":"2022-07-22T14:10:08Z","RawExpires":"Fri, 22-Jul-2022 14:10:08 GMT","MaxAge":0,"Secure":true,"HttpOnly":false,"SameSite":0,"Raw":"mm_lang=zh_CN; Domain=wx2.qq.com; Path=/; Expires=Fri, 22-Jul-2022 14:10:08 GMT; Secure","Unparsed":null},{"Name":"wxuin","Value":"2194844303","Path":"/","Domain":".qq.com","Expires":"2022-07-22T14:10:08Z","RawExpires":"Fri, 22-Jul-2022 14:10:08 GMT","MaxAge":0,"Secure":true,"HttpOnly":false,"SameSite":0,"Raw":"wxuin=2194844303; Domain=.qq.com; Path=/; Expires=Fri, 22-Jul-2022 14:10:08 GMT; Secure","Unparsed":null},{"Name":"webwx_data_ticket","Value":"gSerLz3dhXEJYMHKyPgplV3W","Path":"/","Domain":".qq.com","Expires":"2022-07-22T14:10:08Z","RawExpires":"Fri, 22-Jul-2022 14:10:08 GMT","MaxAge":0,"Secure":true,"HttpOnly":false,"SameSite":0,"Raw":"webwx_data_ticket=gSerLz3dhXEJYMHKyPgplV3W; Domain=.qq.com; Path=/; Expires=Fri, 22-Jul-2022 14:10:08 GMT; Secure","Unparsed":null},{"Name":"webwx_auth_ticket","Value":"CIsBEI/Uv8kFGoABkZ+hancME6Kv3SeWtLeeBUqRTDPP9vKnwE7U4MTo//04LOnOK9yNJ6dALnjQ3BHFIeSBztcXu2hjQAVHxjL4dc7SK3BB0FEJFSRLkX1IAl390WgJgQFd83xFa3qdYNtuMfkqA1l9vpYCVSdyPgN+Y/DbWwP9PVrCrf0B8Ki+9RI=","Path":"/","Domain":"wx2.qq.com","Expires":"2032-07-19T02:10:08Z","RawExpires":"Mon, 19-Jul-2032 02:10:08 GMT","MaxAge":0,"Secure":true,"HttpOnly":false,"SameSite":0,"Raw":"webwx_auth_ticket=CIsBEI/Uv8kFGoABkZ+hancME6Kv3SeWtLeeBUqRTDPP9vKnwE7U4MTo//04LOnOK9yNJ6dALnjQ3BHFIeSBztcXu2hjQAVHxjL4dc7SK3BB0FEJFSRLkX1IAl390WgJgQFd83xFa3qdYNtuMfkqA1l9vpYCVSdyPgN+Y/DbWwP9PVrCrf0B8Ki+9RI=; Domain=wx2.qq.com; Path=/; Expires=Mon, 19-Jul-2032 02:10:08 GMT; Secure","Unparsed":null}],"https://wx2.qq.com/cgi-bin/mmwebwx-bin/webwxstatusnotify":[]},"BaseRequest":{"Uin":2194844303,"Sid":"0yZACy5XGwMJ0mnc","Skey":"@crypt_f512dfa9_62e32b31ab3354aff9d6e59053129c56","DeviceID":"e660051324675558"},"LoginInfo":{"Ret":0,"WxUin":2194844303,"IsGrayScale":1,"Message":"","SKey":"@crypt_f512dfa9_62e32b31ab3354aff9d6e59053129c56","WxSid":"0yZACy5XGwMJ0mnc","PassTicket":"s7bemf%2FVTBQCyAgKcFCkXU13Bbegb%2FwlYg4KrzZL%2BeSlPdP3NYjhnQNgHCzI86ZF"},"WechatDomain":"wx2.qq.com","UUID":"Iar2ZlL8uA=="}