|
...
|
...
|
@@ -3,7 +3,9 @@ |
|
|
|
namespace App\Console\Commands\WorkOrder;
|
|
|
|
|
|
|
|
use App\Models\Manage\Manage;
|
|
|
|
use App\Models\Manage\ManageHr;
|
|
|
|
use App\Models\WorkOrder\TicketChat;
|
|
|
|
use App\Models\WorkOrder\TicketDing;
|
|
|
|
use App\Models\WorkOrder\TicketLog;
|
|
|
|
use App\Services\DingTalkService;
|
|
|
|
use Illuminate\Console\Command;
|
|
...
|
...
|
@@ -142,4 +144,54 @@ class WorkOrderDing extends Command |
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 消费 gl_ticket_dings 表的钉钉通知
|
|
|
|
*/
|
|
|
|
public function dingSql()
|
|
|
|
{
|
|
|
|
while (true) {
|
|
|
|
$tickDing = TicketDing::where('status', 0)->first();
|
|
|
|
if (!$tickDing) {
|
|
|
|
echo now() . " | INFO | 没有通知任务\n";
|
|
|
|
sleep(3);
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
try {
|
|
|
|
$mobiles = ManageHr::whereIn('manage_id', json_decode($tickDing->userIds))
|
|
|
|
->pluck('mobile')
|
|
|
|
->toArray();
|
|
|
|
|
|
|
|
$response = Http::withBasicAuth(
|
|
|
|
env('DINGDING_BASIC_USER'),
|
|
|
|
env('DINGDING_BASIC_PASS')
|
|
|
|
)->get('https://oa.cmer.com/api/dingding/usersByMobiles', [
|
|
|
|
'mobiles' => $mobiles,
|
|
|
|
]);
|
|
|
|
if ($response->status() == 200) {
|
|
|
|
$users = $response->json()['data'];
|
|
|
|
$userIds = [];
|
|
|
|
foreach ($users as $user) {
|
|
|
|
$userIds[] = $user['userid'];
|
|
|
|
}
|
|
|
|
$ding = new DingTalkService();
|
|
|
|
$resp = $ding->danliao($tickDing->msgParam, $userIds, $tickDing->msgKey);
|
|
|
|
$tickDing->status = 1;
|
|
|
|
$tickDing->save();
|
|
|
|
echo now() . " | INFO | gl_ticket_dings ID: {$tickDing->id} 通知成功\n";
|
|
|
|
}else
|
|
|
|
{
|
|
|
|
$tickDing->status = 2; // 标记为失败
|
|
|
|
$tickDing->errorMsg = '钉钉用户查询失败';
|
|
|
|
$tickDing->save();
|
|
|
|
echo now() . " | ERROR | gl_ticket_dings ID: {$tickDing->id} 通知失败\n";
|
|
|
|
}
|
|
|
|
}catch (\Exception $exception){
|
|
|
|
echo now() . " | ERROR | gl_ticket_dings ID {$tickDing->id} {$exception->getMessage()} {$exception->getTraceAsString()} \n";
|
|
|
|
$ding->status = 2; // 标记为失败
|
|
|
|
$ding->errorMsg = $exception->getMessage();
|
|
|
|
$ding->save();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} |
...
|
...
|
|