根据线路分配客服

This commit is contained in:
jianghanbo 2024-08-12 11:13:05 +08:00
parent 9fe2effc94
commit 2acaacb420
2 changed files with 16 additions and 12 deletions

View File

@ -2,6 +2,7 @@
namespace app\command; namespace app\command;
use app\admin\controller\AdminController;
use app\model\Admins; use app\model\Admins;
use app\model\Blacks; use app\model\Blacks;
use app\model\Finances; use app\model\Finances;
@ -41,10 +42,10 @@ class SpiderDy extends Command
); );
} }
protected function users() protected function users($routeType)
{ {
if (count($this->_users) > 0) return $this->_users; if (count($this->_users) > 0) return $this->_users;
$users = Admins::where('status', 1)->where('is_order', 1)->select(); $users = Admins::where('status', 1)->where('is_order', 1)->where('route_type', $routeType)->select();
$us = []; $us = [];
foreach ($users as $u) { foreach ($users as $u) {
$ru = Redis::get('CRM:USER:ONLINE:' . $u->id); $ru = Redis::get('CRM:USER:ONLINE:' . $u->id);
@ -60,11 +61,12 @@ class SpiderDy extends Command
protected $_redis_pool = []; protected $_redis_pool = [];
protected function poolUser($status = 0) protected function poolUser($status = 0, $categoryDesc = '')
{ {
if (empty($this->_redis_pool[$status])) { if (empty($this->_redis_pool[$status])) {
$this->_redis_pool[$status] = Redis::hGetAll('CRM:Pool:' . $status); $this->_redis_pool[$status] = Redis::hGetAll('CRM:Pool:' . $status);
$users = $this->users(); $routeType = AdminController::ROUTE_LISTS[mb_substr($categoryDesc, 0, 2)] ?? 10;
$users = $this->users($routeType);
$_users = []; $_users = [];
if (empty($this->_redis_pool[$status])) { if (empty($this->_redis_pool[$status])) {
foreach ($users as $user) { foreach ($users as $user) {
@ -356,7 +358,7 @@ class SpiderDy extends Command
if (!empty($oldMobile)) { if (!empty($oldMobile)) {
$admin_id = $oldMobile->admin_id; $admin_id = $oldMobile->admin_id;
} else { } else {
$admin_id = $this->poolUser($order->orderStatus); $admin_id = $this->poolUser($order->orderStatus, $order->category_desc);
} }
if (empty($admin_id)) return null; if (empty($admin_id)) return null;

View File

@ -2,6 +2,7 @@
namespace app\command; namespace app\command;
use app\admin\controller\AdminController;
use app\model\Admins; use app\model\Admins;
use app\model\Blacks; use app\model\Blacks;
use app\model\Finances; use app\model\Finances;
@ -42,10 +43,10 @@ class SpiderMt extends Command
); );
} }
protected function users() protected function users($routeType)
{ {
if (count($this->_users) > 0) return $this->_users; if (count($this->_users) > 0) return $this->_users;
$users = Admins::where('status', 1)->where('is_order', 1)->select(); $users = Admins::where('status', 1)->where('is_order', 1)->where('route_type', $routeType)->select();
$us = []; $us = [];
foreach ($users as $u) { foreach ($users as $u) {
$ru = Redis::get('CRM:USER:ONLINE:' . $u->id); $ru = Redis::get('CRM:USER:ONLINE:' . $u->id);
@ -84,11 +85,12 @@ class SpiderMt extends Command
protected $_redis_pool = []; protected $_redis_pool = [];
protected function poolUser($status = 0) protected function poolUser($status = 0, $categoryDesc = '')
{ {
if (empty($this->_redis_pool[$status])) { if (empty($this->_redis_pool[$status])) {
$this->_redis_pool[$status] = Redis::hGetAll('CRM:Pool:' . $status); $this->_redis_pool[$status] = Redis::hGetAll('CRM:Pool:' . $status);
$users = $this->users(); $routeType = AdminController::ROUTE_LISTS[mb_substr($categoryDesc, 0, 2)] ?? 10;
$users = $this->users($routeType);
$_users = []; $_users = [];
if (empty($this->_redis_pool[$status])) { if (empty($this->_redis_pool[$status])) {
foreach ($users as $user) { foreach ($users as $user) {
@ -181,7 +183,7 @@ class SpiderMt extends Command
// return 1; // return 1;
// sleep(5); // sleep(5);
// $time = strtotime(date('Y-m-d')); // $time = strtotime(date('Y-m-d'));
// for ($i = 0; $i <= $d; $i++) { // for ($i = 0; $i <= $d; $i++) {
// $day = $time - $i * 24 * 3600; // $day = $time - $i * 24 * 3600;
@ -192,7 +194,7 @@ class SpiderMt extends Command
// } // }
$start = date('Y-m-d 00:00:00', strtotime("-{$d} days")); $start = date('Y-m-d 00:00:00', strtotime("-{$d} days"));
$end = date('Y-m-d 23:59:59'); $end = date('Y-m-d 23:59:59');
$this->orders($start, $end, false); $this->orders($start, $end, false);
if (date('H') >= 1 && date('H') <= 7) { if (date('H') >= 1 && date('H') <= 7) {
@ -386,7 +388,7 @@ class SpiderMt extends Command
if (!empty($oldMobile)) { if (!empty($oldMobile)) {
$admin_id = $oldMobile->admin_id; $admin_id = $oldMobile->admin_id;
} else { } else {
$admin_id = $this->poolUser($order->orderStatus); $admin_id = $this->poolUser($order->orderStatus, $order->category_desc);
} }
if (empty($admin_id)) return null; if (empty($admin_id)) return null;