|
@@ -3,6 +3,7 @@ package usermanager
|
|
|
import (
|
|
|
. "config"
|
|
|
"fmt"
|
|
|
+ "mongodb"
|
|
|
"net/http"
|
|
|
"os"
|
|
|
mongoutil "qfw/mongodb"
|
|
@@ -299,7 +300,46 @@ func sendmail(appid string, days int, force int, fn string, bcron bool, startTim
|
|
|
data, bdata := Mgo.Find("usermail", dataQuery, `{"_id":1}`, fields2, false, -1, -1)
|
|
|
firstId, lastId := "", ""
|
|
|
if bdata && data != nil && *data != nil && len(*data) > 0 {
|
|
|
- infos := *data
|
|
|
+ infos := []map[string]interface{}{}
|
|
|
+ //数据去重
|
|
|
+ if cronday == 0 {
|
|
|
+ log.Println("需要走数据去重 ", appid)
|
|
|
+ datasMap := map[string]bool{}
|
|
|
+ sdata, sok := Mgo.Find("userdatalog", map[string]interface{}{"appid": appid, "flag": "sendmail"}, `{"_id":-1}`, nil, false, 0, 1)
|
|
|
+ if sok && sdata != nil && len(*sdata) > 0 {
|
|
|
+ sfirstId := qu.ObjToString((*sdata)[0]["first"])
|
|
|
+ slastId := qu.ObjToString((*sdata)[0]["last"])
|
|
|
+ log.Println("起始--结束 ", sfirstId, slastId)
|
|
|
+ udata, uok := Mgo.Find("usermail", map[string]interface{}{
|
|
|
+ "appid": appid, "_id": map[string]interface{}{
|
|
|
+ "$gte": mongodb.StringTOBsonId(sfirstId),
|
|
|
+ "$lte": mongodb.StringTOBsonId(slastId),
|
|
|
+ },
|
|
|
+ }, nil, nil, false, -1, -1)
|
|
|
+ if uok && udata != nil && len(*udata) > 0 {
|
|
|
+ log.Println("重复数据数量 ", len(*udata), appid)
|
|
|
+ for _, u := range *udata {
|
|
|
+ uid := qu.ObjToString(u["id"])
|
|
|
+ datasMap[uid] = true
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ log.Println("无重复数据数量", appid, uok, udata)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for _, d := range *data {
|
|
|
+ infoid := qu.ObjToString(d["id"])
|
|
|
+ if !datasMap[infoid] {
|
|
|
+ datasMap[infoid] = true
|
|
|
+ infos = append(infos, d)
|
|
|
+ } else {
|
|
|
+ log.Println("过滤数据 ", infoid)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ log.Println("不走数据去重 ", appid, cronday)
|
|
|
+ infos = *data
|
|
|
+ }
|
|
|
+ //
|
|
|
allUserData := map[string][]map[string]interface{}{}
|
|
|
updateMap := [][]map[string]interface{}{}
|
|
|
newGetLen := 0
|
|
@@ -412,7 +452,7 @@ func sendmail(appid string, days int, force int, fn string, bcron bool, startTim
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
- log.Println("未分发 ", items)
|
|
|
+ // log.Println("未分发 ", items)
|
|
|
userMap := allUserData[item]
|
|
|
if userMap == nil {
|
|
|
userMap = []map[string]interface{}{}
|