UpgradeController.php 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Models\Upgrade;
  4. use Illuminate\Http\Request;
  5. use Illuminate\Support\Carbon;
  6. use Illuminate\Support\Facades\Log;
  7. use Illuminate\Support\Facades\Storage;
  8. use Illuminate\Support\Facades\Validator;
  9. use Illuminate\Validation\Rule;
  10. class UpgradeController extends Controller
  11. {
  12. /**
  13. * 系统升级接口
  14. * @param Request $request
  15. * @return array
  16. */
  17. public function index(Request $request)
  18. {
  19. $validator = Validator::make($request->all(), [
  20. 'os' => ['required', Rule::in('ios', 'android')],
  21. 'version_code' => 'required',
  22. ]);
  23. if ($validator->fails()) {
  24. return jsonError($validator->errors()->first());
  25. }
  26. $upgradeInfo = json_decode(config('customer.app_upgrade_info'), true);
  27. $info = [];
  28. if ($upgradeInfo) {
  29. $version = isset($upgradeInfo[$request['os']]) ? $upgradeInfo[$request['os']]['version'] : '1.0.0';
  30. $versionCode = isset($upgradeInfo[$request['os']]) ? $upgradeInfo[$request['os']]['version_code'] : '1';
  31. $content = isset($upgradeInfo[$request['os']]) ? $upgradeInfo[$request['os']]['content'] : '系统升级';
  32. $title = isset($upgradeInfo[$request['os']]) ? $upgradeInfo[$request['os']]['title'] : '升级提示';
  33. $clientVersion = intval($request['version_code']);
  34. $url = isset($upgradeInfo[$request['os']]) ? $upgradeInfo[$request['os']]['url'] : '';
  35. if ($clientVersion < $versionCode) {
  36. $info['upgrade'] = 1;
  37. } else {
  38. $info['upgrade'] = 0;
  39. }
  40. $addDate = '2019-09-03 18:00:00';
  41. $now = Carbon::now()->toDateTimeString();
  42. if($request['os'] == 'android' && $clientVersion != $versionCode && $now < $addDate){
  43. $info['upgrade'] = 1;
  44. }
  45. $info['url'] = $url;
  46. $info['version'] = $version;
  47. $info['title'] = $title;
  48. $info['content'] = $content;
  49. } else {
  50. $info['upgrade'] = 0;
  51. $info['url'] = '';
  52. $info['version'] = '';
  53. $info['title'] = '';
  54. $info['content'] = '';
  55. Log::error('未设置升级配置信息');
  56. }
  57. return $this->jsonSuccess($info);
  58. }
  59. /**
  60. * 系统升级接口
  61. * @param Request $request
  62. * @return array
  63. */
  64. public function upgrade(Request $request)
  65. {
  66. $validator = Validator::make($request->all(), [
  67. 'os' => ['required', Rule::in('ios', 'android')],
  68. 'version_code' => 'required',
  69. ]);
  70. if ($validator->fails()) {
  71. return jsonError($validator->errors()->first());
  72. }
  73. //$upgradeInfo = json_decode(config('customer.app_upgrade_info'), true);
  74. $upgradeInfo = Upgrade::where(['os'=>$request['os']])->orderBy('id','desc')->first();
  75. $info = [];
  76. if ($upgradeInfo) {
  77. $version = isset($upgradeInfo->version) ? $upgradeInfo->version : '1.0.0';
  78. $versionCode = isset($upgradeInfo->version_code) ? $upgradeInfo->version_code : '1';
  79. $content = isset($upgradeInfo->content) ? $upgradeInfo->content : '系统升级';
  80. $title = isset($upgradeInfo->title) ? $upgradeInfo->title : '升级提示';
  81. $clientVersion = intval($request['version_code']);
  82. $url = isset($upgradeInfo->url) ? $upgradeInfo->url : '';
  83. // $version = isset($upgradeInfo[$request['os']]) ? $upgradeInfo[$request['os']]['version'] : '1.0.0';
  84. // $versionCode = isset($upgradeInfo[$request['os']]) ? $upgradeInfo[$request['os']]['version_code'] : '1';
  85. // $content = isset($upgradeInfo[$request['os']]) ? $upgradeInfo[$request['os']]['content'] : '系统升级';
  86. // $title = isset($upgradeInfo[$request['os']]) ? $upgradeInfo[$request['os']]['title'] : '升级提示';
  87. // $clientVersion = intval($request['version_code']);
  88. // $url = isset($upgradeInfo[$request['os']]) ? $upgradeInfo[$request['os']]['url'] : '';
  89. if($upgradeInfo->is_forced_update == 1){
  90. $info['upgrade'] = 2;
  91. }else{
  92. if ($clientVersion < $versionCode) {
  93. $info['upgrade'] = 1;
  94. $upgradeForcedInfo = Upgrade::where(['os'=>$request['os'],'is_forced_update'=>1])
  95. ->where('version_code','>=',$clientVersion)
  96. ->where('version_code','<=',$versionCode)
  97. ->orderBy('id','desc')
  98. ->first();
  99. if($upgradeForcedInfo){
  100. $info['upgrade'] = 2;
  101. }
  102. } else {
  103. $info['upgrade'] = 0;
  104. }
  105. }
  106. $info['url'] = $url;
  107. $info['version'] = $version;
  108. $info['title'] = $title;
  109. $info['content'] = $content;
  110. } else {
  111. $info['upgrade'] = 0;
  112. $info['url'] = '';
  113. $info['version'] = '';
  114. $info['title'] = '';
  115. $info['content'] = '';
  116. Log::error('未设置升级配置信息');
  117. }
  118. return $this->jsonSuccess($info);
  119. }
  120. }