diff --git a/app/Http/Controllers/Admin/VisitAuditController.php b/app/Http/Controllers/Admin/VisitAuditController.php index 6c3a291..70abc17 100644 --- a/app/Http/Controllers/Admin/VisitAuditController.php +++ b/app/Http/Controllers/Admin/VisitAuditController.php @@ -3,9 +3,12 @@ namespace App\Http\Controllers\Admin; use App\Models\Admin; +use App\Models\Department; +use App\Models\User; use App\Models\Visit; use App\Models\VisitAudit; use App\Models\VisitLog; +use App\Models\VisitTime; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Validator; use App\Helpers\ResponseCode; @@ -135,8 +138,45 @@ class VisitAuditController extends CommonController $model->fill($all); $model->save(); // 如果全部审核通过则拜访通过 - $noPass = VisitAudit::where('visit_id', $all['visit_id'])->whereIn('status', [0, 2])->count(); - if (empty($noPass)) Visit::where('id', $all['visit_id'])->update(['audit_status' => 1]); + $waitCount = VisitAudit::where('visit_id', $all['visit_id'])->whereIn('status', [0])->count(); + $noPassCount = VisitAudit::where('visit_id', $all['visit_id'])->whereIn('status', [2])->count(); + if ($noPassCount || (empty($noPassCount) && empty($waitCount))) { + $auditResult = ''; + if ($noPassCount) { + // 不通过 + $auditResult = '驳回'; + // 修改状态 + Visit::where('id', $all['visit_id'])->update(['audit_status' => 2]); + } + if (empty($noPassCount) && empty($waitCount)) { + // 通过 + $auditResult = '通过'; + Visit::where('id', $all['visit_id'])->update(['audit_status' => 2]); + } + // 发通知 + $visit = Visit::find($all['visit_id']); + $user = User::find($visit->user_id); + $visitTime = VisitTime::find($visit->visit_time_id); + $acceptAdmin = Admin::find($visit->accept_admin_id); + $templateData = [ + 'date1' => [ + 'value' => $visit->date . '-' . $visitTime->start_time . '-' . $visitTime->end_time + ], + 'name3' => [ + 'value' => $acceptAdmin->name, + ], + 'thing4' => [ + 'value' => $visit->name + ], + 'thing13' => [ + 'value' => $auditResult, + ], + 'thing9' => [ + 'value' => $visit->company_name + ], + ]; + Visit::subMsg('IczaKkCmwf55tAAzCcxb_fbbf5L25SWrSKvaBrkIyk4', $user->openid, $templateData); + } // 审核记录 $auditAdmin = Admin::find($model->audit_admin_id); VisitLog::add($this->getUser(), '', $all['visit_id'], $auditAdmin->name . '审核' . $all['status'] == 1 ? '通过' : '驳回'); diff --git a/app/Http/Controllers/Mobile/VisitController.php b/app/Http/Controllers/Mobile/VisitController.php index ba01526..e2eda4e 100644 --- a/app/Http/Controllers/Mobile/VisitController.php +++ b/app/Http/Controllers/Mobile/VisitController.php @@ -108,6 +108,28 @@ class VisitController extends CommonController } } VisitLog::add('', $this->getUser(), $model->id, isset($all['id']) ? '更新拜访记录' : '新增拜访记录'); + // 通知 + $visitTime = VisitTime::find($all['visit_time_id']); + $acceptAdmin = Admin::find($all['accept_admin_id']); + $accpetDepartment = Department::find($all['accpet_department_id']); + $templateData = [ + 'date1' => [ + 'value' => $all['date'] . '-' . $visitTime->start_time . '-' . $visitTime->end_time + ], + 'name2' => [ + 'value' => $all['name'] + ], + 'phone_number3' => [ + 'value' => $all['mobile'] + ], + 'name4' => [ + 'value' => $acceptAdmin->name, + ], + 'thing6' => [ + 'value' => $accpetDepartment->name + ], + ]; + Visit::subMsg('DmzNRREPFdZrMWconNDdbj_ebtVPRWufq27kRQ25eNg', $this->getUser()->openid, $templateData); DB::commit(); return $this->success('更新成功'); } catch (\Exception $exception) { diff --git a/app/Models/Visit.php b/app/Models/Visit.php index 7faf9d2..a68bd2c 100644 --- a/app/Models/Visit.php +++ b/app/Models/Visit.php @@ -2,6 +2,8 @@ namespace App\Models; +use EasyWeChat\Factory; + class Visit extends SoftDeletesModel { protected $guarded = ['id']; @@ -74,4 +76,21 @@ class Visit extends SoftDeletesModel return $this->hasMany(VisitLog::class, 'visit_id', 'id'); } + // 小程序订阅消息 + public static function subMsg($template_id, $openid, $data) + { + $config = [ + 'app_id' => \config('app.wechat_appid'), + 'secret' => \config('app.wechat_appsecret') + ]; + $app = Factory::miniProgram($config); + $data = [ + 'template_id' => $template_id, + 'touser' => $openid, + 'page' => '', + 'data' => $data + ]; + return $app->subscribe_message->send($data); + } + }