master
cody 11 months ago
parent f07dc6b520
commit 544598258c

@ -132,11 +132,6 @@ class GateController extends CommonController
if ($all['type'] == 1) {
// 入场
Visit::where('code', $all['code'])->update(['audit_status' => 3, 'person_no' => $all['person_no'] ?? '', 'car_no' => $all['car_no'] ?? '']);
// 通知被访人
$vars = ['date' => $check->date, 'name' => $check->name, 'phone_number' => $check->mobile];
$template_id = 'zPtka4';
$acceptAdmin = Admin::find($check->accept_admin_id);
sms($acceptAdmin->mobile, $vars, $template_id);
}
if ($all['type'] == 2) {
Visit::where('code', $all['code'])->update(['audit_status' => 4]);

@ -163,36 +163,32 @@ class VisitAuditController extends CommonController
$auditResult = '通过';
Visit::where('id', $all['visit_id'])->update(['audit_status' => 1]);
// 发短信
if (!empty($acceptAdmin->mobile)) {
$vars = ['date' => $visit->date, 'name' => $visit->name, 'phone_number' => $visit->mobile];
$template_id = '5wReg1';
sms($acceptAdmin->mobile, $vars, $template_id);
}
// if (!empty($acceptAdmin->mobile)) {
// $vars = ['date' => $visit->date, 'name' => $visit->name, 'phone_number' => $visit->mobile];
// $template_id = '5wReg1';
// sms($acceptAdmin->mobile, $vars, $template_id);
// }
}
if ($auditResult) {
// 发通知订阅消息
$templateData = [
'date1' => [
'value' => $visit->date
],
'name3' => [
'value' => $acceptAdmin->name,
],
'thing4' => [
'value' => $visit->name
],
'thing13' => [
'value' => $auditResult,
],
'thing9' => [
'value' => $visit->company_name
],
];
Visit::subMsg('IczaKkCmwf55tAAzCcxb_fbbf5L25SWrSKvaBrkIyk4', $user->openid, $templateData, $all['visit_id']);
// 发通知短信消息
$vars = ['result' => $auditResult];
$template_id = 'G5W6Y3';
sms($visit->mobile, $vars, $template_id);
// // 发通知订阅消息
// $templateData = [
// 'date1' => [
// 'value' => $visit->date
// ],
// 'name3' => [
// 'value' => $acceptAdmin->name,
// ],
// 'thing4' => [
// 'value' => $visit->name
// ],
// 'thing13' => [
// 'value' => $auditResult,
// ],
// 'thing9' => [
// 'value' => $visit->company_name
// ],
// ];
// Visit::subMsg('IczaKkCmwf55tAAzCcxb_fbbf5L25SWrSKvaBrkIyk4', $user->openid, $templateData, $all['visit_id']);
}
}
// 审核记录

@ -27,57 +27,4 @@ class CommonController extends Controller
return $this->guard()->id();
}
/**
* @OA\Get (
* path="/api/mobile/common/send-sms",
* tags={"小程序-通用"},
* summary="短信发送",
* description="",
* @OA\Parameter(name="type", in="query", @OA\Schema(type="int"), required=true, description="类型1参观预约验证码 2活动预约验证码"),
* @OA\Parameter(name="mobile", in="query", @OA\Schema(type="string"), required=true, description="手机号"),
* @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"),
* @OA\Response(
* response="200",
* description=""
* )
* )
*/
public function sendSms(){
$all = \request()->all();
$messages = [
'mobile.required' => '手机号必填',
'mobile.numeric' => '手机号格式错误',
'type.numeric' => '类型必填',
];
$validator = Validator::make($all, [
'mobile' => 'required|numeric',
'type' => 'required',
], $messages);
if ($validator->fails()) {
return $this->fail([StarterResponseCode::START_ERROR_PARAMETER, implode(',', $validator->errors()->all())]);
}
$key = $all['mobile'];
if($all['type'] == 1){
// 参观预约验证码
$key = 'visit_'.$key;
}
if($all['type'] == 2){
// 参观预约验证码
$key = 'activity_'.$key;
}
$check = Cache::get($key);
if(isset($check) && time() - $check['time'] <= 60){
return $this->fail([ResponseCode::ERROR_BUSINESS, '请勿频繁发送']);
}
$code = randStr(4,true);
$template_id = 'Pat5Z3';
$result = sms($all['mobile'], ['code'=>$code,'minutes'=>5], $template_id);
if($result){
// 缓存
Cache::put($key,['code'=>$code,'time'=>time()],5);
return $this->success("发送成功");
}
return $this->fail([StarterResponseCode::START_ERROR_PARAMETER,"发送失败"]);
}
}

@ -12,6 +12,7 @@ use App\Models\VisitArea;
use App\Models\VisitAudit;
use App\Models\VisitLog;
use App\Models\VisitTime;
use App\Notifications\VisitEmailNotify;
use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
@ -148,13 +149,17 @@ class VisitController extends CommonController
'value' => $accpetDepartment->name ?? ''
],
];
Visit::subMsg('DmzNRREPFdZrMWconNDdbj_ebtVPRWufq27kRQ25eNg', $this->getUser()->openid, $templateData, $model->id);
// 短信通知被访人
$vars = ['date' => $all['date'], 'name' => $all['name'], 'phone_number' => $all['mobile']];
$template_id = '5wReg1';
sms($acceptAdmin->mobile, $vars, $template_id);
// 短信通知第一个审核人
VisitAudit::smsNextAudit($model, -1);
Visit::subMsg('OfDFwAIZyXqvPgmc_czIXhveVtp3n_ftyWJEks1DSi4', $this->getUser()->openid, $templateData, $model->id);
// 邮件通知被访人
$visitData = [
'date' => $all['date'],
'name' => $all['name'],
'mobile' => $all['mobile'],
'reason' => $all['reason'] ?? ''
];
$acceptAdmin->notify(new VisitEmailNotify($visitData));
// 邮件通知第一个审核人
VisitAudit::emailNextAudit($model, -1);
DB::commit();
return $this->success('更新成功');
} catch (\Exception $exception) {

@ -2,6 +2,8 @@
namespace App\Models;
use App\Notifications\AuditEmailNotify;
class VisitAudit extends SoftDeletesModel
{
protected $guarded = ['id'];
@ -45,7 +47,60 @@ class VisitAudit extends SoftDeletesModel
$vars = ['date' => $visit->date, 'name' => $visit->name, 'phone_number' => $visit->mobile, 'uname' => $uname];
$template_id = 'QXPs33';
}
sms($mobile, $vars, $template_id);
//sms($mobile, $vars, $template_id);
return true;
}
/**
* 邮件通知下一个审核人
*/
public static function emailNextAudit($visit, $nowVisitAuditLevel = -1)
{
// 找到下一个审核人
if ($nowVisitAuditLevel == -1) {
// 通知第一个审核人
$admin = Admin::where('id', function ($query) use ($visit) {
$query->select('audit_admin_id')
->from('visit_audits')
->where('visit_id', $visit->id)
->orderBy('level', 'asc')
->limit(1);
})->first();
$isFirstAudit = true;
} else {
// 通知下一级审核人
$admin = Admin::where('id', function ($query) use ($visit, $nowVisitAuditLevel) {
$query->select('audit_admin_id')
->from('visit_audits')
->where('visit_id', $visit->id)
->where('level', '>', $nowVisitAuditLevel)
->orderBy('level', 'asc')
->limit(1);
})->first();
$isFirstAudit = false;
}
if (empty($admin)) {
return false;
}
// 准备邮件数据
$visitData = [
'date' => $visit->date,
'name' => $visit->name,
'mobile' => $visit->mobile,
'reason' => $visit->reason ?? ''
];
if (!$isFirstAudit) {
// 获取上一级审核人姓名
$previousAdmin = Admin::where('id', $visit->accept_admin_id)->value('name');
$visitData['previous_admin'] = $previousAdmin;
}
// 发送邮件通知
$admin->notify(new AuditEmailNotify($visitData, $isFirstAudit));
return true;
}

@ -55,7 +55,6 @@ class AuditEmailNotify extends Notification
->line('您有一个新的拜访申请需要审核,访客 ' . $visitData['name'] . ' 预约于 ' . $visitData['date'] . ' 到访。')
->line('访客联系电话:' . $visitData['mobile'])
->line('拜访事由:' . ($visitData['reason'] ?? '无'))
->action('立即审核', url('/admin/visit-audits'))
->line('请及时审核此拜访申请。');
} else {
// 后续审核人的邮件
@ -65,7 +64,6 @@ class AuditEmailNotify extends Notification
->line('拜访申请 ' . $visitData['name'] . ' 预约于 ' . $visitData['date'] . ' 的审核已流转到您这里,上一级审核人:' . ($visitData['previous_admin'] ?? '') . '。')
->line('访客联系电话:' . $visitData['mobile'])
->line('拜访事由:' . ($visitData['reason'] ?? '无'))
->action('立即审核', url('/admin/visit-audits'))
->line('请及时处理此审核流转。');
}
}

@ -50,7 +50,6 @@ class VisitEmailNotify extends Notification
->line('您有一个新的拜访预约,访客 ' . $visitData['name'] . ' 预约于 ' . $visitData['date'] . ' 到访。')
->line('访客联系电话:' . $visitData['mobile'])
->line('拜访事由:' . ($visitData['reason'] ?? '无'))
->action('查看详情', url('/admin/visits'))
->line('请及时处理此拜访预约。');
}
}

Loading…
Cancel
Save