瀏覽代碼

同步管理员信息到eta社区

xyxie 2 月之前
父節點
當前提交
ccde035e7e
共有 4 個文件被更改,包括 84 次插入0 次删除
  1. 8 0
      models/admin.go
  2. 10 0
      services/eta_forum/eta_forum_hub_lib.go
  3. 62 0
      services/system.go
  4. 4 0
      services/task.go

+ 8 - 0
models/admin.go

@@ -203,3 +203,11 @@ type CreateAuthCodeReq struct {
 	Source    int `description:"来源: 1-CRM; 2-ETA"`
 	AdminName string
 }
+
+// GetAllAdminList 根据用户id列表获取系统用户列表
+func GetAllAdminList() (items []*Admin, err error) {
+	sql := `SELECT * FROM admin `
+	o := orm.NewOrm()
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}

+ 10 - 0
services/eta_forum/eta_forum_hub_lib.go

@@ -20,6 +20,16 @@ func ChartUpdateLib(req string) (resp *ChartSaveLibResp, err error) {
 	return
 }
 
+// AdminBatchSaveLib 上传管理员信息
+func AdminBatchSaveLib(req string) (resp *models.BaseResponse, err error) {
+	_, resultByte, err := post(req, "/v1/admin/batch_save")
+	err = json.Unmarshal(resultByte, &resp)
+	if err != nil {
+		return
+	}
+	return
+}
+
 // post
 func post(paramStr string, urlStr string) (resp *models.BaseResponse, result []byte, err error) {
 	if utils.ETA_FORUM_HUB_URL == "" {

+ 62 - 0
services/system.go

@@ -0,0 +1,62 @@
+package services
+
+import (
+	"context"
+	"encoding/json"
+	"eta/eta_forum_task/models"
+	"eta/eta_forum_task/services/alarm_msg"
+	"eta/eta_forum_task/services/eta_forum"
+	"eta/eta_forum_task/utils"
+	"fmt"
+	"time"
+)
+
+type AdminBatchSaveReq struct {
+	List []*models.Admin
+}
+
+func AdminBatchSaveTask(cont context.Context) (err error) {
+	deleteCache := true
+	cacheKey := "eta_forum_task:EtaForumAdminUpdate"
+	defer func() {
+		if deleteCache {
+			_ = utils.Rc.Delete(cacheKey)
+		}
+		if err != nil {
+			go alarm_msg.SendAlarmMsg(utils.APP_NAME_CN+"同步管理员数据失败"+time.Now().Format("2006-01-02 15:04:05")+"<br/>"+err.Error(), 3)
+		}
+	}()
+	if !utils.Rc.SetNX(cacheKey, 1, 30*time.Second) {
+		deleteCache = false
+		err = fmt.Errorf("系统处理中,请稍后重试!")
+		return
+	}
+	// 查询需要更新的图表信息总数
+	adminList, err := models.GetAllAdminList()
+	if err != nil {
+		return
+	}
+	if len(adminList) == 0 {
+		return
+	}
+	// 更新管理员数据
+	//查询用户信息
+	var req AdminBatchSaveReq
+	req.List = adminList
+	reqJson, err := json.Marshal(req)
+	if err != nil {
+		err = fmt.Errorf("参数解析异常,Err:" + err.Error())
+		return
+	}
+	respItem, err := eta_forum.AdminBatchSaveLib(string(reqJson))
+	if err != nil {
+		err = fmt.Errorf("上传管理员信息失败,Err:" + err.Error())
+		return
+	}
+	if respItem.Ret != 200 {
+		err = fmt.Errorf("上传管理员信息失败,Err:%v,errMsg:%v", respItem.Msg, respItem.ErrMsg)
+		return
+	}
+	fmt.Println("同步管理员数据完成, 同步管理员数据完成:", len(adminList), "条")
+	return
+}

+ 4 - 0
services/task.go

@@ -16,6 +16,10 @@ func Task() {
 	etaForumChartUpdate := task.NewTask("publishSmartReport", "0 */30 * * * *", EtaForumChartUpdate)
 	task.AddTask("定时更新图表数据到eta社区", etaForumChartUpdate)
 
+	// 每隔1小时,定时更新管理员数据到eta社区
+	etaForumAdminUpdate := task.NewTask("etaForumAdminUpdate", "0 10 * * * *", AdminBatchSaveTask)
+	task.AddTask("定时更新管理员数据到eta社区", etaForumAdminUpdate)
+
 	task.StartTask()
 	fmt.Println("task end")
 }