Exemple #1
0
 /**
  * $删除
  * @param MpService $mpService
  * @param $wxId
  * @return string
  */
 public function delete(MpService $mpService, $wxId)
 {
     $mp = WeixinMp::find($wxId);
     if (!$mp) {
         return RestHelp::encodeResult(22001, 'weixin not found');
     }
     $mpService->delete($mp);
     return RestHelp::success();
 }
 /**
  * 同步微信数据
  * @return \Illuminate\Http\RedirectResponse
  * @author zhengqian@dajiayao.cc
  */
 public function syncWeixin()
 {
     ini_set('max_execution_time', 300);
     ignore_user_abort(true);
     $mpId = $this->request->get('mp');
     $objMp = WeixinMp::find($mpId);
     if (!$objMp) {
         return redirect(route('adminSyncWeixin'))->with('result', false)->with('msg', '微信号未找到');
     }
     try {
         $count = $this->weixinService->sync($objMp->appid, $objMp->appsecret);
     } catch (\Exception $e) {
         return redirect(route('adminSyncWeixin'))->with('result', false)->with('msg', $e->getMessage());
     }
     return redirect(route('adminSyncWeixin'))->with('result', true)->with('msg', sprintf("同步页面 %s 个,设备 %s 个", $count['count_page'], $count['count_device']));
 }
 /**
  * 绑定页面POST
  * @author Hanxiang
  * @param PageService $pageService
  * @param ShakeAroundClient $shakeAroundClient
  * @return json
  */
 public function bindPost(PageService $pageService, ShakeAroundClient $shakeAroundClient)
 {
     $input = Input::all();
     $validator = Validator::make($input, ['id' => 'required', 'wx_device_ids' => 'required']);
     if ($validator->fails()) {
         return response()->json(['result' => 0, 'msg' => '参数错误']);
     }
     if (!is_array($input['wx_device_ids'])) {
         return response()->json(['result' => 0, 'msg' => '参数错误']);
     }
     $wxpage = WeixinPage::find($input['id']);
     if (!$wxpage) {
         return response()->json(['result' => 0, 'msg' => '微信页面不存在']);
     }
     $wxMp = WeixinMp::find($wxpage->wx_mp_id);
     $appid = $wxMp->appid;
     $appsecret = $wxMp->appsecret;
     try {
         $pageService->bindDevice($shakeAroundClient, $wxpage, $input['wx_device_ids'], 1, 1, $appid, $appsecret);
     } catch (\Exception $e) {
         return response()->json(['result' => 0, 'msg' => $e->getMessage()]);
     }
     Session::flash('result', true);
     Session::flash('msg', "操作成功");
     return response()->json(['result' => 1, 'msg' => '操作成功']);
 }
 /**
  * 申请设备
  * @param DeviceService $deviceService
  * @author zhengqian@dajiayao.cc
  */
 public function applyWxDevice(ShakeAroundClient $shakeAroundClient, DeviceService $deviceService)
 {
     $inputData = Input::only('wx_mp_id', 'sum');
     $validator = Validator::make($inputData, ['wx_mp_id' => 'required', 'sum' => 'required|numeric']);
     if ($validator->fails()) {
         return response()->json(['msgcode' => -1, 'message' => $validator->messages()->first()]);
     }
     $mpId = $inputData['wx_mp_id'];
     $mp = WeixinMp::find($mpId);
     if (!$mp) {
         return response()->json(['msgcode' => -2, 'message' => '微信号未找到']);
     }
     if ($inputData['sum'] > 100) {
         return response()->json(['msgcode' => -3, 'message' => '一次最多申请100个']);
     }
     try {
         $ret = $deviceService->applyDeviceOnline($shakeAroundClient, (int) $inputData['sum'], '测试', 'comment', 0, $mp->appid, $mp->appsecret);
     } catch (\Exception $e) {
         return response()->json(['msgcode' => $e->getCode(), 'message' => $e->getMessage()]);
     }
     $applyId = $ret->apply_id;
     $devices = $ret->device_identifiers;
     foreach ($devices as $dev) {
         $d = new WeixinDevice();
         $d->uuid = $dev->uuid;
         $d->major = $dev->major;
         $d->minor = $dev->minor;
         $d->device_id = $dev->device_id;
         $d->apply_id = $applyId;
         $d->wx_mp_id = $mpId;
         $d->save();
     }
     return redirect(route('adminWxDevicesIndex'))->with('result', true)->with('msg', "操作成功");
 }