UpgradeController.php 5.0 KB

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