From 27858d41e7a9af13377286ab562bce3aa792f359 Mon Sep 17 00:00:00 2001 From: junleea <354425203@qq.com> Date: Sun, 15 Dec 2024 17:58:29 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E8=AF=B7=E6=B1=82=E6=95=B0=E6=8D=AE=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dao/user.go | 6 ++++++ service/userService.go | 14 +++++++++++++- worker/req.go | 22 ++++++++++++++-------- 3 files changed, 33 insertions(+), 9 deletions(-) diff --git a/dao/user.go b/dao/user.go index 5f10bbe..d7c7bf1 100644 --- a/dao/user.go +++ b/dao/user.go @@ -150,3 +150,9 @@ type UserSyncResp struct { Add []User `json:"add" form:"add"` //添加用户 Delete []proto.UserDelID `json:"delete" form:"delete"` //删除用户 } + +// 清空用户表 +func ClearAllUsers() error { + res := DB.Exec("TRUNCATE TABLE users") + return res.Error +} diff --git a/service/userService.go b/service/userService.go index b670b83..915ecc5 100644 --- a/service/userService.go +++ b/service/userService.go @@ -115,6 +115,12 @@ func UserSyncDataFromMaster() { var is_all bool //是否全量同步 if all == "" || all == "1" { is_all = true + //清空数据表 + err := dao.ClearAllUsers() + if err != nil { + fmt.Println("All ClearAllUsers error:", err) + return + } worker.SetRedis("user_sync_all", "1") req.Types = 1 } else { @@ -122,7 +128,11 @@ func UserSyncDataFromMaster() { req.Types = 2 } - user_sync_data := worker.SyncDataFromMasterReq2(url, req) + user_sync_data, err := worker.SyncDataFromMasterReq2(url, req) + if err != nil { + fmt.Println("UserSyncDataFromMaster error:", err) + return + } add_users := user_sync_data.Add update_users := user_sync_data.Update delete_users := user_sync_data.Delete @@ -173,6 +183,8 @@ func UserSyncDataFromMaster() { confirm_req.Types = 3 confirm_req.Confirm = data worker.SyncDataFromMasterReq2(url, confirm_req) + } else { + } } diff --git a/worker/req.go b/worker/req.go index 8dc93ef..4f40dfe 100644 --- a/worker/req.go +++ b/worker/req.go @@ -130,16 +130,22 @@ func SyncDataFromMasterReq(url string, token string) proto.UserSync { } // 获取数据,全量及增量 -func SyncDataFromMasterReq2(url string, data proto.SyncUserReq) proto.UserSync { +func SyncDataFromMasterReq2(url string, data proto.SyncUserReq) (proto.UserSync, error) { + defer func() { + if r := recover(); r != nil { + fmt.Println("SyncDataFromMasterReq2 error:", r) + } + }() + var res proto.UserSync //从接口获取数据 json_data, err := json.Marshal(data) if err != nil { - return res + return res, err } req, err := http.NewRequest("POST", url, bytes.NewBuffer(json_data)) if err != nil { - return res + return res, err } req.Header.Set("Content-Type", "application/json") //传输数据 @@ -149,23 +155,23 @@ func SyncDataFromMasterReq2(url string, data proto.SyncUserReq) proto.UserSync { //获取数据 resp, err := client.Do(req) if err != nil { - return res + return res, err } defer resp.Body.Close() //解析数据 var m map[string]interface{} err = json.NewDecoder(resp.Body).Decode(&m) if err != nil { - return res + return res, err } if m["code"].(float64) != 0 { - return res + return res, err } err = json.Unmarshal([]byte(m["data"].(string)), &res) if err != nil { fmt.Println("SyncDataFromMasterReq2 error decode data:", err) - return res + return res, err } fmt.Println("SyncDataFromMasterReq2 result add data:", len(res.Add), "update data:", len(res.Update), "delete data:", len(res.Delete)) - return res + return res, nil } From 9d01e83d7102f9257c61c1e32e1e113df37e2092 Mon Sep 17 00:00:00 2001 From: junleea <354425203@qq.com> Date: Sun, 15 Dec 2024 18:02:10 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E8=AF=B7=E6=B1=82=E6=95=B0=E6=8D=AE=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worker/req.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/worker/req.go b/worker/req.go index 4f40dfe..28ac772 100644 --- a/worker/req.go +++ b/worker/req.go @@ -7,6 +7,7 @@ import ( "io" "io/ioutil" "net/http" + "strconv" "strings" "videoplayer/proto" ) @@ -159,15 +160,16 @@ func SyncDataFromMasterReq2(url string, data proto.SyncUserReq) (proto.UserSync, } defer resp.Body.Close() //解析数据 - var m map[string]interface{} + var m map[string]string err = json.NewDecoder(resp.Body).Decode(&m) if err != nil { return res, err } - if m["code"].(float64) != 0 { + code, _ := strconv.Atoi(m["code"]) + if code != 0 { return res, err } - err = json.Unmarshal([]byte(m["data"].(string)), &res) + err = json.Unmarshal([]byte(m["data"]), &res) if err != nil { fmt.Println("SyncDataFromMasterReq2 error decode data:", err) return res, err