You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
<?php
namespace App\Admin\Forms;
use App\Admin\Common\Auth;use App\Admin\Common\Rpc;use App\Libs\SsdbClient;use App\Models\ImsCjdcMarket;use App\Models\ImsCjdcOrderMain;use App\Models\v3\LanzuEmployees;use Dcat\Admin\Widgets\Form;use Symfony\Component\HttpFoundation\Response;
class SelectHorseman extends Form{
/** * Handle the form request. * * @param array $input * * @return Response */ protected $orderId; public function handle(array $input) { $current_page = $input['current_page'] ?? 1; if ($this->selectHorseman($input)) { return $this->success('操作成功',"order?page={$current_page}"); } else { return $this->error('操作失败'); } }
/** * 注:此方法在app/Http/Controllers/GrabOrderController.php中也有调用,修改需要注意 */ public function selectHorseman(array $input): bool { $hid = $input['horseman_id']; $oid = $input['order_id']; $horseman = LanzuEmployees::getName($hid);//骑手名称
$time = time(); $result = ImsCjdcOrderMain::where(['id' => $oid, 'horseman_id' => 0]) ->update([ 'shipping_type' => 1, 'horseman_id' => $hid, 'delivery_start_time' => $time, 'shipping_name' => $horseman, 'updated_at' => $time, ]); if ($result){ //>>1.指定骑手后,初始化骑手位置,默认将市场经纬做为骑手默认经纬
$row = ImsCjdcOrderMain::where('id',$oid)->select('market_id','global_order_id')->first(); $mid = $row->market_id; $market = ImsCjdcMarket::where('id',$mid)->first(); $ssdb = SsdbClient::client(env('SSDB_HOST'), env('SSDB_PORT')); $coordinate = $market->lng.','.$market->lat; $ssdb->set("horseman_coordinate_{$hid}",$coordinate); //>>2.配送开始后,给用户发送消息通知
Rpc::onlineDeliveryStart($row->global_order_id); return true; } else { return false; } }
/** * Build a form here. */ public function form() { $this->select('horseman_id','配送员') ->options(LanzuEmployees::getHorseman(Auth::getMarket())) ->required();
$this->hidden('order_id'); $this->hidden('current_page'); }}
|