123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- <?php
- namespace App\Http\Controllers;
- use App\Models\Upgrade;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Log;
- use Illuminate\Support\Facades\Storage;
- use Illuminate\Support\Facades\Validator;
- use Illuminate\Validation\Rule;
- class UpgradeController extends Controller
- {
- /**
- * 系统升级接口
- * @param Request $request
- * @return array
- */
- public function index(Request $request)
- {
- $validator = Validator::make($request->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;
- }
- $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)
- {
- $validator = Validator::make($request->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);
- $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 : '';
- // $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($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);
- }
- }
|