Merge branch 'refs/heads/feat-user-sync'
This commit is contained in:
commit
3238116f37
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import (
|
|||
"io"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"strconv"
|
||||
"strings"
|
||||
"videoplayer/proto"
|
||||
)
|
||||
|
|
@ -130,16 +131,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 +156,24 @@ 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{}
|
||||
var m map[string]string
|
||||
err = json.NewDecoder(resp.Body).Decode(&m)
|
||||
if err != nil {
|
||||
return res
|
||||
return res, err
|
||||
}
|
||||
if m["code"].(float64) != 0 {
|
||||
return res
|
||||
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
|
||||
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
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue