zhangzengfei
2025-02-10 2e2e065ffcf79b90e2e42ec999886ef7e8f29fb7
models/accessRegularity.go
@@ -105,11 +105,12 @@
   // 查找指定时间范围内出行过的档案编号
   now := time.Now()
   startDate := time.Date(now.Year(), now.Month(), now.Day(), 0, 0, 0, 0, now.Location()).AddDate(0, 0, -m.Duration).Unix()
   startDate := time.Date(now.Year(), now.Month(), now.Day(), 0, 0, 0, 0, now.Location()).AddDate(0, 0, -m.Duration)
   err := db.GetDB().Raw(`
      SELECT
         document_number,
         frequent_address,
         community_id,
      FROM
         snapshot_count_summary
      WHERE
@@ -117,16 +118,29 @@
         AND (p.community_id IN ?
         OR p.org_id IN ?)
         AND p.status IN ?
      `, startDate, m.AreaIds, m.OrgIds, m.IdentityType).Scan(&baseFilter).Error
      `, startDate.Unix(), m.AreaIds, m.OrgIds, m.IdentityType).Scan(&baseFilter).Error
   if err != nil {
      logger.Warnf(err.Error())
   }
   esCli := db.GetEsClient()
   for _, p := range baseFilter {
      // 调用es分析此人的出行规律是否符合条件, 返回符合条件的次数和最后一次符合条件的时间
      sTime := startDate.Format(time.DateTime)
      eTime := time.Now().Format(time.DateTime)
      captures, err := service.QueryEsRecord(esCli, sTime, eTime, nil, []interface{}{p.CommunityId}, []string{p.DocumentNumber})
      if len(captures) == 0 || err != nil {
         continue
      }
      // 根据抓拍时间和出入方向,计算符合规则内的出入次数
      hitCount := 0
      //for _, c := range captures {
      //   captureTime, err := time.ParseInLocation(time.DateTime, c.PicDate, time.Local)
      //}
      // 写数据库
      var hitCount int
      result := &db.ModelTaskResults{
         Title:         m.Task.Name,
         Event:         fmt.Sprintf("%s %d次", m.Task.Name, hitCount),
@@ -136,7 +150,7 @@
         OrgID:         p.OrgId,
         ObjectIds:     p.DocumentNumber,
         Location:      p.FrequentAddress,
         PicDate:       time.Unix(p.LastAppearanceTime, 0).Format("2006-01-02 15:04:05"),
         PicDate:       time.Unix(p.LastAppearanceTime, 0).Format(time.DateTime),
         FirstPersonID: p.DocumentNumber,
      }