Silent 6 years ago
parent
commit
ac5ba24d8f
2 changed files with 17 additions and 4 deletions
  1. 2 4
      app/Http/Controllers/WeChat/ApiController.php
  2. 15 0
      app/Models/Student.php

+ 2 - 4
app/Http/Controllers/WeChat/ApiController.php

@@ -271,14 +271,12 @@ class ApiController extends Controller
 
 
         $image_url = url($share_image->value);
         $image_url = url($share_image->value);
         $image = Image::make($image_url);
         $image = Image::make($image_url);
-        $items = $student->getCheckCardDates();
         $share_text = Setting::where('key', 'share_text')->first();
         $share_text = Setting::where('key', 'share_text')->first();
         if(empty($share_text) || empty($share_text->value)) {
         if(empty($share_text) || empty($share_text->value)) {
             return response()->json(['status' => 'fail', 'info' => '找不到分享的文字!']);
             return response()->json(['status' => 'fail', 'info' => '找不到分享的文字!']);
         }
         }
-        $now = Carbon::now()->toDateString();
-        $count = $items->contains($now) ? $items->count() : $items->count() + 1;
-        $text = str_replace_array('{days}', [$count], $share_text->value);
+        $count = $student->getTodayCheckCardMinutes();
+        $text = str_replace_array('{param}', [$count], $share_text->value);
         $share_text_pos = Setting::where('key', 'share_text_pos')->first();
         $share_text_pos = Setting::where('key', 'share_text_pos')->first();
         if(empty($share_text_pos) || empty($share_text_pos->value) || count($pos = explode(',', $share_text_pos->value)) < 2) {
         if(empty($share_text_pos) || empty($share_text_pos->value) || count($pos = explode(',', $share_text_pos->value)) < 2) {
             return response()->json(['status' => 'fail', 'info' => '分享文字位置错误或未设置!']);
             return response()->json(['status' => 'fail', 'info' => '分享文字位置错误或未设置!']);

+ 15 - 0
app/Models/Student.php

@@ -128,4 +128,19 @@ class Student extends Model
             ['created_at', '>=', $this_week_begin],
             ['created_at', '>=', $this_week_begin],
         ])->get()->avg('score');
         ])->get()->avg('score');
     }
     }
+
+    public function getTodayCheckCardMinutes()
+    {
+        $today = Carbon::today()->toDateTimeString();
+        $items = CheckCard::where([
+            ['student_id', '=', $this['id']],
+            ['begin_date_time', '>=', $today]
+        ])->whereNotNull('begin_date_time')->whereNotNull('end_date_time')->get();
+        $total = 0;
+        foreach($items as $item) {
+            $duration = strtotime($item->end_date_time) - strtotime($item->begin_date_time);
+            $total += $duration;
+        }
+        return $total / 60;
+    }
 }
 }