all(), [ 'os' => ['required', Rule::in('ios', 'android')], 'version_code' => 'required', ]); if ($validator->fails()) { return jsonError($validator->errors()->first()); } $upgradeInfo = json_decode(config('customer.app_upgrade_info'), true); $info = []; if ($upgradeInfo) { $version = isset($upgradeInfo[$request['os']]) ? $upgradeInfo[$request['os']]['version'] : '1.0.0'; $versionCode = isset($upgradeInfo[$request['os']]) ? $upgradeInfo[$request['os']]['version_code'] : '1'; $content = isset($upgradeInfo[$request['os']]) ? $upgradeInfo[$request['os']]['content'] : '系统升级'; $title = isset($upgradeInfo[$request['os']]) ? $upgradeInfo[$request['os']]['title'] : '升级提示'; $clientVersion = intval($request['version_code']); $url = isset($upgradeInfo[$request['os']]) ? $upgradeInfo[$request['os']]['url'] : ''; if ($clientVersion < $versionCode) { $info['upgrade'] = 1; } else { $info['upgrade'] = 0; } $addDate = '2019-09-03 18:00:00'; $now = Carbon::now()->toDateTimeString(); if($request['os'] == 'android' && $clientVersion != $versionCode && $now < $addDate){ $info['upgrade'] = 1; } $info['url'] = $url; $info['version'] = $version; $info['title'] = $title; $info['content'] = $content; } else { $info['upgrade'] = 0; $info['url'] = ''; $info['version'] = ''; $info['title'] = ''; $info['content'] = ''; Log::error('未设置升级配置信息'); } return $this->jsonSuccess($info); } /** * 系统升级接口 * @param Request $request * @return array */ public function upgrade(Request $request) { Log::debug('系统升级接口'.json_encode($request)); $validator = Validator::make($request->all(), [ 'os' => ['required', Rule::in('ios', 'android')], 'version_code' => 'required', ]); if ($validator->fails()) { return jsonError($validator->errors()->first()); } $upgradeInfo = Upgrade::where(['os'=>$request['os']])->orderBy('id','desc')->first(); $info = []; if ($upgradeInfo) { $version = isset($upgradeInfo->version) ? $upgradeInfo->version : '1.0.0'; $versionCode = isset($upgradeInfo->version_code) ? $upgradeInfo->version_code : '1'; $content = isset($upgradeInfo->content) ? $upgradeInfo->content : '系统升级'; $title = isset($upgradeInfo->title) ? $upgradeInfo->title : '升级提示'; $clientVersion = intval($request['version_code']); $url = isset($upgradeInfo->url) ? $upgradeInfo->url : ''; if($upgradeInfo->is_forced_update == 1){ $info['upgrade'] = 2; }else{ if ($clientVersion < $versionCode) { $info['upgrade'] = 1; $upgradeForcedInfo = Upgrade::where(['os'=>$request['os'],'is_forced_update'=>1]) ->where('version_code','>=',$clientVersion) ->where('version_code','<=',$versionCode) ->orderBy('id','desc') ->first(); if($upgradeForcedInfo){ $info['upgrade'] = 2; } } else { $info['upgrade'] = 0; } } $info['url'] = $url; $info['version'] = $version; $info['title'] = $title; $info['content'] = $content; } else { $info['upgrade'] = 0; $info['url'] = ''; $info['version'] = ''; $info['title'] = ''; $info['content'] = ''; Log::error('未设置升级配置信息'); } return $this->jsonSuccess($info); } }