diff --git a/app/order/controller/Order.php b/app/order/controller/Order.php
index 86ca6ac..1b6c7b6 100644
--- a/app/order/controller/Order.php
+++ b/app/order/controller/Order.php
@@ -613,6 +613,29 @@ class Order extends Controller
}
}
+ #携号转网检测,手机号检测:
+ if(str_contains($data['param'], 'mobile') && (str_contains($data['param'], 'old_product') ||str_contains($data['param'], 'dhcz_mnp') || str_contains($data['param'], 'mnp_isp_array'))){
+ $param_data = json_decode($data['param'],true);
+ $isp_name = [
+ 1=>'移动',
+ 2=>'联通',
+ 3=>'电信',
+ ];
+
+ $old_product = $this->app->db->name('ServiceInfo')->where('key',$param_data['old_product'])->field('name')->find();
+ $data['mobile_status_array'] = [
+ 'old_product'=>$old_product['name']??$param_data['old_product']??'',
+ 'old_isp'=>$isp_name[$param_data['mnp_isp_array']['old_isp']??0] ?? '',
+ 'new_isp'=>$isp_name[$param_data['mnp_isp_array']['new_isp']??0] ?? '',
+ ];
+ if($data['mobile_status_array']['old_isp'] == $data['mobile_status_array']['new_isp']){
+ $data['mobile_status_array']['is_mnp'] = '未携转';
+ }else{
+ $data['mobile_status_array']['is_mnp'] = '已携转';
+ }
+
+ }
+
}
# 手动扣款
@@ -1293,7 +1316,6 @@ class Order extends Controller
} else {
$this->error('请上传文件');
}
-// var_dump($data);die;
if (str_contains($data['file']['name'], '.xls')) {
$file = 'card/order_card.xlsx';
diff --git a/app/order/view/order/info.html b/app/order/view/order/info.html
index b294033..d3a831c 100644
--- a/app/order/view/order/info.html
+++ b/app/order/view/order/info.html
@@ -141,6 +141,38 @@
+ {if isset($vo.mobile_status_array) && $vo.mobile_status_array}
+
+
+
+ 号码状态数据 |
+ |
+
+
+
+
+ 号码 |
+ {$vo.account|default=''} |
+
+
+ 携转状态 |
+ {$vo.mobile_status_array.is_mnp|default=''} |
+
+
+ 原运营商 |
+ {$vo.mobile_status_array.old_isp|default=''} |
+
+
+ 现运营商 |
+ {$vo.mobile_status_array.new_isp|default=''} |
+
+
+ 原送入产品编码 |
+ {$vo.mobile_status_array.old_product|default=''} |
+
+
+
+ {/if}
{if $vo.kami}
diff --git a/app/queue/command/monitor/ChannelBalanceMonitor.php b/app/queue/command/monitor/ChannelBalanceMonitor.php
index b369a6e..34b5f93 100644
--- a/app/queue/command/monitor/ChannelBalanceMonitor.php
+++ b/app/queue/command/monitor/ChannelBalanceMonitor.php
@@ -33,6 +33,7 @@ class ChannelBalanceMonitor extends Command
ini_set('memory_limit', '1024M');
$this->redis();
+ #避免反复查询已经固定的Channel数据,此处应该引入redis 缓存数据
$channelService = ChannelService::instance();
$RobotService = new WxWorkBot($this->app);
$channelList = $channelService->db()->where(['status'=>1])->whereLike('other_data','%Monitor_Balance_status%')->select()->toArray();
diff --git a/app/queue/command/monitor/ChannelOrderStatusMonitor.php b/app/queue/command/monitor/ChannelOrderStatusMonitor.php
new file mode 100644
index 0000000..cf8c75c
--- /dev/null
+++ b/app/queue/command/monitor/ChannelOrderStatusMonitor.php
@@ -0,0 +1,132 @@
+setName('xQueue:ChannelOrderStatusMonitor')->setDescription('[ 监控系统 ] 渠道订单问题监控预警');
+ }
+
+ /**
+ * @param Input $input
+ * @param Output $output
+ * @throws \think\admin\Exception
+ */
+ protected function execute(Input $input, Output $output)
+ {
+ ini_set('memory_limit', '1024M');
+ $this->redis();
+
+ $channelService = ChannelService::instance();
+ $RobotService = new WxWorkBot($this->app);
+
+ $channelList = $channelService->db()->where(['status'=>1])->whereLike('other_data','%Monitor_OrderStatus_status%')->select()->toArray();
+ if(!$channelList) $this->setQueueSuccess("未找到支持监控余额的渠道");
+
+ $channelList_num = count($channelList);
+ $count_sum = 0;
+
+ $day = date('Y-m-d', strtotime('-1 day'));
+
+ $tip_info=[];
+ $key = '41b42bd4-c9f9-4617-9531-0a358dd97a82';
+
+
+ foreach($channelList as $channel) {
+ $other_param = json_decode($channel['other_data'],true);
+ if(!$other_param){
+ continue;
+ }
+ $Monitor_Balance = $other_param['Monitor_Balance'] ?? null;
+ if(!$Monitor_Balance){
+ continue;
+ }
+
+
+
+ try{
+ $account_data = $channelService->call('account', $channel['id'], $day);
+
+ if (is_array($account_data) && isset($account_data['account'])) {
+ $balance = $account_data['account'];
+ if( $balance <= $Monitor_Balance){
+
+ if(!$this->redis->get('Check_channel_account-'.$channel['id'])){
+ $count_sum ++;
+ $this->redis->set('Check_channel_account-'.$channel['id'],1);
+ $tip_info[] = $channel['name']."余额不足,只剩下:".$balance."";
+
+ }
+ $Monitor_Balance_TOP = $other_param['Monitor_Balance_TOP'] ?? null;
+ if($Monitor_Balance_TOP && $balance <= $Monitor_Balance_TOP){
+ if(!$this->redis->get('Check_channel_account_TOP-'.$channel['id'])){
+ $count_sum ++;
+ $this->redis->set('Check_channel_account_TOP-'.$channel['id'],1);
+ $tip_info[] = $channel['name']."余额不足,只剩下:".$balance."";
+
+ }
+ }
+ }else{
+ if($this->redis->get('Check_channel_account-'.$channel['id'])){
+ $count_sum ++;
+
+ $this->redis->delete('Check_channel_account-'.$channel['id']);
+ $tip_info[] = $channel['name']."余额已经恢复,现在余额为:".$balance."";
+ }
+ if($this->redis->get('Check_channel_account_TOP-'.$channel['id'])){
+ $this->redis->delete('Check_channel_account_TOP-'.$channel['id']);
+ }
+
+ }
+
+ }
+ }catch (\Exception $e){
+
+ }
+
+ }
+
+ if(!empty($tip_info)){
+ $errorMsg = "渠道余额监控预警".$count_sum ."列,请相关同事注意。\n
+>";
+ $errorMsg .= implode(">", $tip_info);
+ $RobotService->send_markdown($errorMsg,$key);
+
+ }
+
+
+ $this->setQueueSuccess("共处理 {$channelList_num} 个渠道, 完成{$count_sum} 个查询处理!");
+
+
+ }
+
+ protected function redis()
+ {
+ if (!$this->redis) {
+ $this->redis = RedisService::getInstance();
+ }
+ }
+
+
+
+
+}
+
+
+