|
@@ -3,6 +3,7 @@ package services
|
|
|
import (
|
|
|
"context"
|
|
|
"encoding/json"
|
|
|
+ "errors"
|
|
|
"fmt"
|
|
|
"github.com/olivere/elastic/v7"
|
|
|
"hongze/hongze_cygx/models"
|
|
@@ -101,125 +102,184 @@ func CreateIndexNameArticleHistory() {
|
|
|
EsCreateIndex(indexName, mappingJson)
|
|
|
}
|
|
|
|
|
|
-// func UpdateWxUserLabel(cont context.Context) (err error) {
|
|
|
+//
|
|
|
+//func init() {
|
|
|
+// AddAllArticleHistory()
|
|
|
+//}
|
|
|
+
|
|
|
func AddAllArticleHistory(cont context.Context) (err error) {
|
|
|
+ //func AddAllArticleHistory() (err error) {
|
|
|
defer func() {
|
|
|
if err != nil {
|
|
|
- go utils.SendAlarmMsg("同步阅读记录到es失败;Err:"+err.Error(), 2)
|
|
|
- go utils.SendEmail("同步阅读记录到es失败"+"【"+utils.APPNAME+"】"+time.Now().Format(utils.FormatDateTime), ";Err:"+err.Error(), utils.EmailSendToUsers)
|
|
|
- utils.FileLog.Info("同步阅读记录到es失败,Err:%s", err.Error())
|
|
|
+ fmt.Println(err)
|
|
|
+ go utils.SendAlarmMsg("同步阅读记录到es失败;AddAllArticleHistory Err:"+err.Error(), 2)
|
|
|
}
|
|
|
}()
|
|
|
|
|
|
+ var pars []interface{}
|
|
|
+ var condition string
|
|
|
+
|
|
|
+ var companyIds []int
|
|
|
+ condition = " AND product_id = 2 AND STATUS IN ( '正式', '试用', '冻结' ) "
|
|
|
+ list, e := models.GetCompanyProductList(condition, pars)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCompanyProductList, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range list {
|
|
|
+ companyIds = append(companyIds, v.CompanyId)
|
|
|
+ }
|
|
|
+
|
|
|
var updateUserIds string //更改过的用户ID
|
|
|
userIdMap := make(map[int]int)
|
|
|
- condition := ` AND r.create_time < '` + time.Now().Format(utils.FormatDate) + `' AND r.company_id IN (
|
|
|
- SELECT a.company_id
|
|
|
- FROM company AS a INNER JOIN company_product AS b ON a.company_id = b.company_id
|
|
|
- WHERE a.enabled = 1 AND b.STATUS IN ( '正式', '试用', '冻结' )) `
|
|
|
- totalAll, err := models.GetCygxArticleHistoryCountByCompany(condition)
|
|
|
- if err != nil {
|
|
|
- fmt.Println("GetCygxArticleHistoryCountByCompany Err:totalAll", err.Error())
|
|
|
- return err
|
|
|
+ //condition := ` AND r.create_time < '` + time.Now().Format(utils.FormatDate) + `' AND r.company_id IN (
|
|
|
+ // SELECT a.company_id
|
|
|
+ // FROM company AS a INNER JOIN company_product AS b ON a.company_id = b.company_id
|
|
|
+ // WHERE a.enabled = 1 AND b.STATUS IN ( '正式', '试用', '冻结' )) `
|
|
|
+ //
|
|
|
+ //totalAll, err := models.GetCygxArticleHistoryCountByCompany(condition)
|
|
|
+
|
|
|
+ //获取阅读总数
|
|
|
+ condition = " AND company_id IN (" + utils.GetOrmInReplace(len(companyIds)) + ") AND is_del = 0 "
|
|
|
+ pars = append(pars, companyIds)
|
|
|
+ totalAll, e := models.GetCygxArticleHistoryRecordAllCount(condition, pars)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCygxArticleHistoryRecordAllCount, Err: " + e.Error())
|
|
|
+ return
|
|
|
}
|
|
|
+
|
|
|
//更改阅读总数
|
|
|
- err = models.UpdateConfigByCode(strconv.Itoa(totalAll), "company_article_history_num")
|
|
|
- if err != nil {
|
|
|
- fmt.Println("UpdateConfigByCode Err:totalAll", err.Error())
|
|
|
- return err
|
|
|
+ e = models.UpdateConfigByCode(strconv.Itoa(totalAll), "company_article_history_num")
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("UpdateConfigByCode, Err: " + e.Error())
|
|
|
+ return
|
|
|
}
|
|
|
//处理前一天新增的数据
|
|
|
- condition += ` AND r.create_time >='` + time.Now().AddDate(0, 0, -1).Format(utils.FormatDate) + `'`
|
|
|
- total, err := models.GetCygxArticleHistoryCountByCompany(condition)
|
|
|
+ //condition += ` AND create_time >= ? AND is_del = 0 `
|
|
|
+ //pars = append(pars, time.Now().AddDate(0, 0, -1).Format(utils.FormatDate))
|
|
|
+ //total, err := models.GetCygxArticleHistoryRecordAllCount(condition, pars)
|
|
|
+ ////fmt.Println(total)
|
|
|
+ ////return
|
|
|
//fmt.Println(total)
|
|
|
- //return
|
|
|
- fmt.Println(total)
|
|
|
- if err != nil {
|
|
|
- fmt.Println("GetCygxArticleHistoryCountByCompany Err:", err.Error())
|
|
|
- return err
|
|
|
+ //if err != nil {
|
|
|
+ // fmt.Println("GetCygxArticleHistoryCountByCompany Err:", err.Error())
|
|
|
+ // return err
|
|
|
+ //}
|
|
|
+
|
|
|
+ pars = make([]interface{}, 0)
|
|
|
+ condition = ` `
|
|
|
+ condition = " AND r.company_id IN (" + utils.GetOrmInReplace(len(companyIds)) + ") AND r.is_del = 0 AND r.create_time >= ? AND r.create_time <= ? "
|
|
|
+ pars = append(pars, companyIds, time.Now().AddDate(0, 0, -1).Format(utils.FormatDate), time.Now().Format(utils.FormatDate))
|
|
|
+
|
|
|
+ allList, e := models.GetCygxArticleHistoryRecordByCompanyListNew(condition, pars, 0, 0)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCygxArticleHistoryRecordByCompanyListNew, Err: " + e.Error())
|
|
|
+ return
|
|
|
}
|
|
|
- for i := 0; i <= total/1000; i++ {
|
|
|
- allList, err := models.GetCygxArticleHistoryRecordByCompanyList(condition, 1000*i, 1000)
|
|
|
+ fmt.Println(len(allList))
|
|
|
+ //return
|
|
|
+ for k, v := range allList {
|
|
|
+ //fmt.Println(v)
|
|
|
+ fmt.Println(v.Id, "___", k)
|
|
|
+ err := EsAddArticleHistoryData(v)
|
|
|
if err != nil {
|
|
|
- fmt.Println("GetCygxArticleHistoryRecordByCompanyList Err:", err.Error())
|
|
|
- return err
|
|
|
+ fmt.Println("EsAddOrEditData Err:", err.Error())
|
|
|
+ //return err
|
|
|
}
|
|
|
- for k, v := range allList {
|
|
|
- fmt.Println(v.Id, "___", k)
|
|
|
- err := EsAddArticleHistoryData(v)
|
|
|
- if err != nil {
|
|
|
- fmt.Println("EsAddOrEditData Err:", err.Error())
|
|
|
- return err
|
|
|
- }
|
|
|
- if _, ok := userIdMap[v.UserId]; !ok {
|
|
|
- updateUserIds += strconv.Itoa(v.UserId) + ","
|
|
|
- userIdMap[v.UserId] = v.UserId
|
|
|
- }
|
|
|
+ if _, ok := userIdMap[v.UserId]; !ok {
|
|
|
+ updateUserIds += strconv.Itoa(v.UserId) + ","
|
|
|
+ userIdMap[v.UserId] = v.UserId
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ //for i := 0; i <= total/1000; i++ {
|
|
|
+ // allList, err := models.GetCygxArticleHistoryRecordByCompanyListNew(condition, pars, 1000*i, 1000)
|
|
|
+ // if err != nil {
|
|
|
+ // fmt.Println("GetCygxArticleHistoryRecordByCompanyListNew Err:", err.Error())
|
|
|
+ // return err
|
|
|
+ // }
|
|
|
+ // for k, v := range allList {
|
|
|
+ // fmt.Println(v.Id, "___", k)
|
|
|
+ // //err := EsAddArticleHistoryData(v)
|
|
|
+ // //if err != nil {
|
|
|
+ // // fmt.Println("EsAddOrEditData Err:", err.Error())
|
|
|
+ // // return err
|
|
|
+ // //}
|
|
|
+ // //if _, ok := userIdMap[v.UserId]; !ok {
|
|
|
+ // // updateUserIds += strconv.Itoa(v.UserId) + ","
|
|
|
+ // // userIdMap[v.UserId] = v.UserId
|
|
|
+ // //}
|
|
|
+ // }
|
|
|
+ //}
|
|
|
+
|
|
|
+ //return
|
|
|
//处理前一天新增的数据 end
|
|
|
|
|
|
//处理前一天被移动的用户
|
|
|
|
|
|
startDate := time.Now().AddDate(0, 0, -1).Format(utils.FormatDate)
|
|
|
endDate := time.Now().Format(utils.FormatDate)
|
|
|
- var mobiles string
|
|
|
- listUpdateUser, err := models.GetWxUserOpLogList(startDate, endDate)
|
|
|
- if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
- return err
|
|
|
+ var mobiles []string
|
|
|
+ listUpdateUser, e := models.GetWxUserOpLogList(startDate, endDate)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("GetWxUserOpLogList, Err: " + e.Error())
|
|
|
+ return
|
|
|
}
|
|
|
if len(listUpdateUser) > 0 {
|
|
|
for _, v := range listUpdateUser {
|
|
|
- mobiles += "'" + v.Mobile + "',"
|
|
|
+ mobiles = append(mobiles, v.Mobile)
|
|
|
}
|
|
|
}
|
|
|
- mobiles = strings.TrimRight(mobiles, ",")
|
|
|
- if mobiles != "" {
|
|
|
- condition = ` AND r.mobile IN (` + mobiles + `)`
|
|
|
+ //mobiles = strings.TrimRight(mobiles, ",")
|
|
|
+ if len(mobiles) > 0 {
|
|
|
+ pars = make([]interface{}, 0)
|
|
|
+ condition = ` AND r.mobile IN (` + utils.GetOrmInReplace(len(mobiles)) + `)`
|
|
|
+ pars = append(pars, mobiles)
|
|
|
//修改用户的阅读记录(es 自动判断,如果有他会修改数据)
|
|
|
- listUpdatePv, err := models.GetCygxArticleHistoryRecordByCompanyList(condition, 0, 0)
|
|
|
- if err != nil {
|
|
|
- fmt.Println("GetArticleHistoryRecordAllByMobileList ,Err" + err.Error())
|
|
|
- return err
|
|
|
+ listUpdatePv, e := models.GetCygxArticleHistoryRecordByCompanyListNew(condition, pars, 0, 0)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("GetCygxArticleHistoryRecordByCompanyListNew,mobilesUpdate Err: " + e.Error())
|
|
|
+ return
|
|
|
}
|
|
|
|
|
|
for _, v := range listUpdatePv {
|
|
|
err := EsAddArticleHistoryData(v)
|
|
|
if err != nil {
|
|
|
fmt.Println("EsAddOrEditData Err:", err.Error())
|
|
|
- return err
|
|
|
+ //return err
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
//处理前一天被移动的用户 end
|
|
|
|
|
|
//处理前一天被删除的用户
|
|
|
{
|
|
|
- listDeleteUser, err := models.GetWxUserOpLogDeleteList(startDate, endDate)
|
|
|
- if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
- return err
|
|
|
+ listDeleteUser, e := models.GetWxUserOpLogDeleteList(startDate, endDate)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("GetWxUserOpLogDeleteList, Err: " + e.Error())
|
|
|
+ return
|
|
|
}
|
|
|
- mobiles = ""
|
|
|
+ var mobilesDel []string
|
|
|
if len(listUpdateUser) > 0 {
|
|
|
for _, v := range listDeleteUser {
|
|
|
- mobiles += "'" + v.Mobile + "',"
|
|
|
+ mobilesDel = append(mobilesDel, v.Mobile)
|
|
|
}
|
|
|
}
|
|
|
- mobiles = strings.TrimRight(mobiles, ",")
|
|
|
- if mobiles != "" {
|
|
|
- condition = ` AND r.mobile IN (` + mobiles + `)`
|
|
|
- listDeletePv, err := models.GetCygxArticleHistoryRecordByCompanyList(condition, 0, 0)
|
|
|
- if err != nil {
|
|
|
- fmt.Println("GetArticleHistoryRecordAllByMobileList ,Err" + err.Error())
|
|
|
- return err
|
|
|
+ if len(mobilesDel) > 0 {
|
|
|
+ pars = make([]interface{}, 0)
|
|
|
+ condition = ` AND r.mobile IN (` + utils.GetOrmInReplace(len(mobilesDel)) + `)`
|
|
|
+ pars = append(pars, mobilesDel)
|
|
|
+ listDeletePv, e := models.GetCygxArticleHistoryRecordByCompanyListNew(condition, pars, 0, 0)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("GetCygxArticleHistoryRecordByCompanyListNew,mobilesDel Err: " + e.Error())
|
|
|
+ return
|
|
|
}
|
|
|
- //fmt.Println("Es 删除")
|
|
|
for _, v := range listDeletePv {
|
|
|
err := EsDeleteData(utils.IndexNameArticleHistory, strconv.Itoa(v.Id))
|
|
|
if err != nil {
|
|
|
- fmt.Println("EsAddOrEditData Err:", err.Error())
|
|
|
- return err
|
|
|
+ fmt.Println("EsDeleteData Err:", err.Error())
|
|
|
+ //return err
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -227,37 +287,37 @@ func AddAllArticleHistory(cont context.Context) (err error) {
|
|
|
//处理前一天被删除的用户 end
|
|
|
|
|
|
//处理新增的阅读记录的用户阅读数量、机构阅读数量(暂未找到批量修改的方法,后期优化处理 2022.7.11)
|
|
|
- updateUserIds = strings.TrimRight(updateUserIds, ",")
|
|
|
- if updateUserIds != "" {
|
|
|
- condition = ` AND r.create_time >='` + time.Now().AddDate(0, 0, -1).Format(utils.FormatDate) + `' AND r.user_id IN (` + updateUserIds + `)`
|
|
|
- total, err := models.GetCygxArticleHistoryCountByCompany(condition)
|
|
|
- //fmt.Println(total)
|
|
|
- //return
|
|
|
- fmt.Println(total)
|
|
|
- if err != nil {
|
|
|
- fmt.Println("GetCygxArticleHistoryCountByCompany Err:", err.Error())
|
|
|
- return err
|
|
|
- }
|
|
|
- for i := 0; i <= total/1000; i++ {
|
|
|
- allList, err := models.GetCygxArticleHistoryRecordByCompanyList(condition, 1000*i, 1000)
|
|
|
- if err != nil {
|
|
|
- fmt.Println("GetCygxArticleHistoryRecordByCompanyList Err:", err.Error())
|
|
|
- return err
|
|
|
- }
|
|
|
- for k, v := range allList {
|
|
|
- fmt.Println(v.Id, "___", k)
|
|
|
- err := EsAddArticleHistoryData(v)
|
|
|
- if err != nil {
|
|
|
- fmt.Println("EsAddOrEditData Err:", err.Error())
|
|
|
- return err
|
|
|
- }
|
|
|
- if _, ok := userIdMap[v.UserId]; !ok {
|
|
|
- updateUserIds += strconv.Itoa(v.UserId) + ","
|
|
|
- userIdMap[v.UserId] = v.UserId
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ //updateUserIds = strings.TrimRight(updateUserIds, ",")
|
|
|
+ //if updateUserIds != "" {
|
|
|
+ // condition = ` AND r.create_time >='` + time.Now().AddDate(0, 0, -1).Format(utils.FormatDate) + `' AND r.user_id IN (` + updateUserIds + `)`
|
|
|
+ // total, err := models.GetCygxArticleHistoryCountByCompany(condition)
|
|
|
+ // //fmt.Println(total)
|
|
|
+ // //return
|
|
|
+ // fmt.Println(total)
|
|
|
+ // if err != nil {
|
|
|
+ // fmt.Println("GetCygxArticleHistoryCountByCompany Err:", err.Error())
|
|
|
+ // return err
|
|
|
+ // }
|
|
|
+ // for i := 0; i <= total/1000; i++ {
|
|
|
+ // allList, err := models.GetCygxArticleHistoryRecordByCompanyList(condition, 1000*i, 1000)
|
|
|
+ // if err != nil {
|
|
|
+ // fmt.Println("GetCygxArticleHistoryRecordByCompanyList Err:", err.Error())
|
|
|
+ // return err
|
|
|
+ // }
|
|
|
+ // for k, v := range allList {
|
|
|
+ // fmt.Println(v.Id, "___", k)
|
|
|
+ // err := EsAddArticleHistoryData(v)
|
|
|
+ // if err != nil {
|
|
|
+ // fmt.Println("EsAddOrEditData Err:", err.Error())
|
|
|
+ // return err
|
|
|
+ // }
|
|
|
+ // if _, ok := userIdMap[v.UserId]; !ok {
|
|
|
+ // updateUserIds += strconv.Itoa(v.UserId) + ","
|
|
|
+ // userIdMap[v.UserId] = v.UserId
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ //}
|
|
|
return
|
|
|
}
|
|
|
|