Browse Source

no message

xingzai 2 years ago
parent
commit
28cb177ff3
2 changed files with 141 additions and 0 deletions
  1. 14 0
      models/send_company_user.go
  2. 127 0
      services/send_company_user.go

+ 14 - 0
models/send_company_user.go

@@ -259,6 +259,20 @@ func GetWxUserOpLogDelete(createTime string) (items []*WxUserOpLogDeleteResp, er
 	return
 }
 
+//获取指定时间内被暂停的客户
+func GetWxUserOpLogSuspend(createTime string) (items []*WxUserOpLogDeleteResp, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT
+				* 
+			FROM
+				company_operation_record AS p 
+			WHERE
+				remark = '暂停' 
+				AND p.id IN ( SELECT MAX( p.id ) AS max_id FROM company_operation_record AS p WHERE 1 = 1 AND p.create_time > '` + createTime + `' )  `
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}
+
 //获取指定时间内试用转冻结,冻结转流失的客户
 func GetCompanyFreezeAndLoss(createTime string) (items []*WxUserOpLogResp, err error) {
 	o := orm.NewOrm()

+ 127 - 0
services/send_company_user.go

@@ -168,6 +168,9 @@ func DotongbuShangHai(cont context.Context) (err error) {
 		condition = ` AND c.company_id  IN (` + companyIds + ")"
 		DotongbuShangHaApi(condition)
 	}
+
+	//处理被禁用的用户,将禁用用户的状态转冻结
+	CompanySuspend()
 	return
 }
 
@@ -542,3 +545,127 @@ func GetShangHaiCrmApiToken() (token string, err error) {
 	}
 	return
 }
+
+//处理被禁用的用户,将禁用用户的状态转冻结
+func CompanySuspend() (err error) {
+	var msg string
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+			go utils.SendAlarmMsg("同步策略平台处理被禁用的用户,将禁用用户的状态转冻结失败", 2)
+			go utils.SendEmail("同步策略平台处理被禁用的用户,将禁用用户的状态转冻结失败"+"【"+utils.APPNAME+"】"+time.Now().Format("2006-01-02 15:04:05"), msg+";Err:"+err.Error(), utils.EmailSendToExpert)
+		}
+	}()
+	var url string
+	accessToken, err := GetShangHaiCrmApiToken()
+	if err != nil {
+		return
+	}
+	updateTime := time.Now().Add(-time.Minute * 22).Format("2006-01-02 15:04:05")
+	listSuspendCompany, err := models.GetWxUserOpLogSuspend(updateTime)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		return err
+	}
+	fmt.Println("禁用的用户", len(listSuspendCompany))
+	var suspendCompanyIds string
+	if len(listSuspendCompany) > 0 {
+		for _, v := range listSuspendCompany {
+			suspendCompanyIds += strconv.Itoa(v.CompanyId) + ","
+		}
+	} else {
+		return err
+	}
+	fmt.Println(suspendCompanyIds)
+	//同步权益客户
+	if suspendCompanyIds == "" {
+		return err
+	}
+
+	suspendCompanyIds = strings.TrimRight(suspendCompanyIds, ",")
+	condition := ` AND c.company_id  IN (` + suspendCompanyIds + ")"
+
+	companyList, err := models.GetSendCompanyList(condition)
+	if err != nil {
+		msg = "GetSendCompanyList Err:" + err.Error()
+		fmt.Println(err)
+		return err
+	}
+	fmt.Println("权益客户", len(companyList))
+	var companyItems []*models.CompanyJson
+	if len(companyList) > 0 {
+		//url = "https://crm.hzinsights.com/openapi/v1/Customer/batchSyncFiccCustomer?access_token=" + accessToken
+		url = utils.ShangHaiCrmApiLink + "openapi/v1/Customer/batchSyncFiccCustomer?access_token=" + accessToken
+		for k, _ := range companyList {
+			companyList[k].Fe = "权益"
+			companyList[k].Status = "冻结"
+			companyList[k].EndDate = strconv.Itoa(int(companyList[k].EndDateTime.Unix()))
+			//一次同步一百条
+			companyItems = append(companyItems, companyList[k])
+			if (k+1)%100 == 0 {
+				data, err := json.Marshal(companyItems)
+				if err != nil {
+					msg = "companyItems Err:" + err.Error()
+					return err
+				}
+				jsonstr := string(data)
+				jsonstr = "{\"sync_data\": " + jsonstr + " }"
+				SendComapnyToShanghai(url, jsonstr, "权益")
+				companyItems = make([]*models.CompanyJson, 0)
+			}
+		}
+		//如果剩下还有则同步剩下的部分
+		if len(companyItems) > 0 {
+			data, err := json.Marshal(companyItems)
+			if err != nil {
+				msg = "companyItems Err:" + err.Error()
+				return err
+			}
+			jsonstr := string(data)
+			jsonstr = "{\"sync_data\": " + jsonstr + " }"
+			SendComapnyToShanghai(url, jsonstr, "权益")
+			companyItems = make([]*models.CompanyJson, 0)
+		}
+	}
+	//同步FICC客户
+	companyFiccList, err := models.GetSendCompanyFiccList(condition)
+	if err != nil {
+		msg = "GetSendCompanyFiccList Err:" + err.Error()
+		return err
+	}
+	fmt.Println("FICC客户", len(companyFiccList))
+	var companyFiccItems []*models.CompanyJson
+	if len(companyFiccList) > 0 {
+		//url = "https://crm.hzinsights.com/openapi/v1/Customer/batchSyncFiccCustomer?access_token=" + accessToken
+		url = utils.ShangHaiCrmApiLink + "openapi/v1/Customer/batchSyncFiccCustomer?access_token=" + accessToken
+		for k, _ := range companyFiccList {
+			companyFiccList[k].Fe = "FICC"
+			companyList[k].Status = "冻结"
+			companyFiccList[k].EndDate = strconv.Itoa(int(companyFiccList[k].EndDateTime.Unix()))
+			//一次同步一百条
+			companyFiccItems = append(companyFiccItems, companyFiccList[k])
+			if (k+1)%100 == 0 {
+				data, err := json.Marshal(companyFiccItems)
+				if err != nil {
+					msg = "companyFiccItems Err:" + err.Error()
+					return err
+				}
+				jsonstr := string(data)
+				jsonstr = "{\"sync_data\": " + jsonstr + " }"
+				SendComapnyToShanghai(url, jsonstr, "FICC")
+				companyFiccItems = make([]*models.CompanyJson, 0)
+			}
+		}
+		//如果剩下还有则同步剩下的部分
+		if len(companyFiccItems) > 0 {
+			data, err := json.Marshal(companyFiccItems)
+			if err != nil {
+				msg = "companyFiccItems Err:" + err.Error()
+				return err
+			}
+			jsonstr := string(data)
+			jsonstr = "{\"sync_data\": " + jsonstr + " }"
+			SendComapnyToShanghai(url, jsonstr, "FICC")
+		}
+	}
+	return
+}