| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 | 
							- <?php
 
- namespace App\Console\Commands;
 
- use App\Model\Customer;
 
- use App\Model\Depart;
 
- use App\Model\SeeRange;
 
- use App\Model\WxEmployeeOfficial;
 
- use App\Model\CustomerRemain as CrModel;
 
- use App\Service\OaService;
 
- use Illuminate\Console\Command;
 
- class CustomerRemain extends Command
 
- {
 
-     /**
 
-      * The name and signature of the console command.
 
-      *
 
-      * @var string
 
-      */
 
-     protected $signature = 'command:customer_remain';
 
-     /**
 
-      * The console command description.
 
-      *
 
-      * @var string
 
-      */
 
-     protected $description = 'Command description';
 
-     /**
 
-      * Create a new command instance.
 
-      *
 
-      * @return void
 
-      */
 
-     public function __construct()
 
-     {
 
-         parent::__construct();
 
-     }
 
-     /**
 
-      * Execute the console command.
 
-      *
 
-      * @return mixed
 
-      */
 
-     public function handle()
 
-     {
 
-         echo '发送提醒--------start---------------';
 
-         $time = time();
 
-         $data = CrModel::where("del_time",0)
 
-             ->select('id','customer_id','fp','fz')
 
-             ->get()->toArray();
 
-         if(! empty($data)){
 
- //            $fp_id = array_unique(array_column($data,'fp'));
 
- //            $depart = Depart::where("del_time",0)
 
- //                ->whereIn("id", $fp_id)
 
- //                ->select('id','notify_id')
 
- //                ->get()->toArray();
 
- //            $depart_map = array_column($depart,'notify_id','id');
 
- //            $fp_man_id = array_filter(array_unique(array_column($depart,'notify_id')));
 
-             $fz_id = array_unique(array_column($data,'fz'));
 
- //            $employee_id = array_unique(array_merge($fp_man_id, $fz_id));
 
-             $employee_id = array_unique($fz_id);
 
-             $wx_map = WxEmployeeOfficial::whereIn('employee_id', $employee_id)
 
-                 ->pluck('openid','employee_id')
 
-                 ->toArray();
 
-             $send_data = $insert = [];
 
-             $customer_id = [];
 
-             foreach ($data as $value){
 
-                 if(! empty($value['fp'])) {
 
-                     $insert[] = [
 
-                         'data_id' => $value['customer_id'], //客户id
 
-                         'data_type' => SeeRange::type_one,
 
-                         'param_id' => $value['fp'], //门店id
 
-                         'type' => SeeRange::data_three,
 
-                         'crt_time' => $time,
 
-                     ];
 
-                     $customer_id[] = $value['customer_id'];
 
-                 }
 
-                 $open_id_fz = $wx_map[$value['fz']] ?? "";
 
- //                $fp_man_t = $depart_map[$value['fp']] ?? 0;
 
- //                $open_id_fp = $wx_map[$fp_man_t] ?? "";
 
-                 //负责人 和 门店负责人都为空跳过
 
- //                if(empty($open_id_fz) && empty($open_id_fp)) continue;
 
-                 if(empty($open_id_fz)) continue;
 
-                 //组织发送
 
-                 $this->makeData($send_data, $open_id_fz, $value);
 
- //                $this->makeData($send_data, $open_id_fp, $value);
 
-             }
 
-             if(! empty($send_data)){
 
-                 echo "发送中\n";
 
-                 $send_data = array_values($send_data);
 
-                 (new OaService())->sendWxOaCheckMessage($send_data, 1);
 
-             }
 
-             $c_id = array_column($data,'customer_id');
 
-             //清空分配门店
 
-             SeeRange::where('del_time',0)
 
-                 ->whereIn('data_id', $c_id)
 
-                 ->where('data_type',SeeRange::type_one)
 
-                 ->where('type',SeeRange::data_three)
 
-                 ->update(['del_time' => $time]);
 
-             //分配门店
 
-             if(! empty($insert)) SeeRange::insert($insert);
 
-             //更新单据
 
-             CrModel::whereIn('id',array_column($data,'id'))
 
-                 ->update(['del_time' => $time]);
 
-             if(! empty($customer_id)) Customer::whereIn('id', $customer_id)->update(['fp_time' => $time]);
 
-         }else{
 
-             echo "暂无\n";
 
-         }
 
-         echo '发送提醒--------end---------------';
 
-     }
 
-     private function makeData(&$send_data, $open_id, $value){
 
-         if(! empty($open_id)) {
 
-             if(! isset($send_data[$open_id])){
 
-                 $send_data[$open_id] = [
 
-                     'employee_id' => 12343215,
 
-                     'type' => 2,
 
-                     'state' => 0,
 
-                     'menu_id' => "16|list",
 
-                     'openid' => $open_id,
 
-                     'order_number' => $value['customer_id'],
 
-                     'tmp_data' => [
 
-                         time(),
 
-                         "客资分配提醒",
 
-                         "已分配",
 
-                         "T9品牌中心",
 
-                         date('Y-m-d H:i:s'),
 
-                     ],
 
-                 ];
 
-             }else{
 
-                 $tmp = explode(',', $send_data[$open_id]['order_number']);
 
-                 if(! in_array($value['customer_id'], $tmp)) $send_data[$open_id]['order_number'] .= ',' . $value['customer_id'];
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |