|
|
@@ -266,3 +266,70 @@ func GetAccessToken() (string, error) {
|
|
|
}
|
|
|
return token, err
|
|
|
}
|
|
|
+
|
|
|
+func (s *ImageRecordService) YesterdayStatistics() {
|
|
|
+ date := time.Now().Add(-time.Hour * 24).Format("2006-01-02")
|
|
|
+ s.ImageRecordStatistics(date)
|
|
|
+}
|
|
|
+
|
|
|
+func (s *ImageRecordService) TodayStatistics() {
|
|
|
+ date := time.Now().Format("2006-01-02")
|
|
|
+ s.ImageRecordStatistics(date)
|
|
|
+}
|
|
|
+
|
|
|
+func (s *ImageRecordService) ImageRecordStatistics(date string) {
|
|
|
+ type Data struct {
|
|
|
+ TaskId int `json:"task_id"`
|
|
|
+ }
|
|
|
+
|
|
|
+ var taskIds []Data
|
|
|
+ global.GVA_DB.Model(&levelMonitor.ImageRecord{}).Where("create_date = ?", date).Distinct("task_id").Find(&taskIds)
|
|
|
+ if len(taskIds) == 0 {
|
|
|
+ global.GVA_LOG.Warn("没有等级上报的数据")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ type StatisticsData struct {
|
|
|
+ UseNum int `json:"use_num"`
|
|
|
+ AccountNum int `json:"account_num"`
|
|
|
+ LevelNum int `json:"level_num"`
|
|
|
+ }
|
|
|
+ for _, taskId := range taskIds {
|
|
|
+ var statisticsData []StatisticsData
|
|
|
+ global.GVA_DB.Model(&levelMonitor.ImageRecord{}).
|
|
|
+ Select("use_num,COUNT(*) as account_num,SUM(identify) as level_num").
|
|
|
+ Where("create_date = ?", date).
|
|
|
+ Where("task_id = ?", taskId.TaskId).
|
|
|
+ Where("status = ?", 1).
|
|
|
+ Group("use_num").
|
|
|
+ Order("use_num").
|
|
|
+ Find(&statisticsData)
|
|
|
+ if len(statisticsData) == 0 {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ var imageRecordStatistics = make(map[string]interface{})
|
|
|
+ b := false
|
|
|
+ for _, data := range statisticsData {
|
|
|
+ if _, ok := levelMonitor.R[data.UseNum]; ok {
|
|
|
+ imageRecordStatistics[levelMonitor.R[data.UseNum]] = float64(data.LevelNum) / float64(data.AccountNum)
|
|
|
+ b = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if b {
|
|
|
+ s.CreateImageRecordStatistics(taskId.TaskId, imageRecordStatistics, date)
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func (s *ImageRecordService) CreateImageRecordStatistics(taskId int, imageRecordStatistics map[string]interface{}, date string) {
|
|
|
+ err := global.GVA_DB.Where("create_date = ?", date).Where("task_id = ?", taskId).First(&levelMonitor.ImageRecordStatistics{}).Error
|
|
|
+ if errors.Is(err, gorm.ErrRecordNotFound) {
|
|
|
+ imageRecordStatistics["task_id"] = taskId
|
|
|
+ imageRecordStatistics["create_date"] = time.Now().Format("2006-01-02")
|
|
|
+ global.GVA_DB.Model(&levelMonitor.ImageRecordStatistics{}).Create(imageRecordStatistics)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ global.GVA_DB.Model(&levelMonitor.ImageRecordStatistics{}).
|
|
|
+ Where("create_date = ?", date).
|
|
|
+ Where("task_id = ?", taskId).
|
|
|
+ Updates(imageRecordStatistics)
|
|
|
+}
|