/** * 处理用户扫描二维码后的操作 * @author zhengqian@dajiayao.cc */ public function urlHandler() { $inputData = \Input::only('sn'); if (!array_key_exists('sn', $inputData)) { return "sn not found"; } $dev = Device::getDeviceBySn($inputData['sn']); if (!$dev) { return sprintf("sn: %s not found", $inputData['sn']); } if (!($wxDevice = $dev->weixinDevice)) { return 'sn not bind weixin ID'; } $url = $wxDevice->mp->app->device_url; if (!$url) { return $inputData['sn']; } return redirect($url); }
/** * 更新设备的地理位置 * @param DeviceService $deviceService * @param $sn * @return string * @author zhengqian@dajiayao.cc */ public function setLocation(DeviceService $deviceService, $sn) { if (!$sn) { return RestHelp::parametersIllegal('sn is required'); } $dev = Device::getDeviceBySn($sn); if (!$dev) { return RestHelp::encodeResult(24001, sprintf("sn:%s not found", $sn)); } $inputData = json_decode($this->inputData, true); $validator = Validator::make($inputData, ['longitude' => 'required', 'latitude' => 'required', 'address' => 'required', 'location' => 'required']); if ($validator->fails()) { return RestHelp::parametersIllegal($validator->messages()->first()); } $dev->longitude = $inputData['longitude']; $dev->latitude = $inputData['latitude']; $dev->address = $inputData['address']; $dev->position = $inputData['position']; $dev->save(); return RestHelp::success(); }