app_update.php 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. /**
  3. * 更新
  4. */
  5. defined('InShopNC') or exit('Access Invalid!');
  6. class app_updateControl extends mobileHomeControl
  7. {
  8. const CACHE_KEY = "app_update";
  9. const CACHE_CHECK_VERSION_ID = 1;
  10. public function __construct()
  11. {
  12. parent::__construct();
  13. }
  14. /**
  15. * 版本验证
  16. *
  17. * 输入参数:
  18. * ver_code:版本号
  19. * platform: 平台
  20. */
  21. public function checkVersionOp()
  22. {
  23. $ver_code = $_GET['ver_code'];
  24. $app_platform = $_GET['platform'];
  25. if (isset($app_platform) && isset($ver_code))
  26. {
  27. $ret = rcache(self::CACHE_KEY, self::CACHE_CHECK_VERSION_ID);
  28. if (empty($ret)) {
  29. $model = Model();
  30. $data = $model->table('app_update')->where(array('cur_version' => '1', 'enable' => '1', 'platform' => $app_platform))->limit(1)->select();
  31. if (empty($data)) {
  32. return joutput_error(errcode::ErrDB);
  33. }
  34. wcache(self::CACHE_KEY, array("cur_version" => serialize($data)), self::CACHE_CHECK_VERSION_ID);
  35. } else {
  36. $data = unserialize($ret['cur_version']);
  37. }
  38. $result = array();
  39. $lowest_compatible_version = intval($data[0]['lowest_compatible_version']);
  40. if ($ver_code === $data[0]['ver_code']) {
  41. $result['latest'] = 0;
  42. } else {
  43. $result['latest'] = 1;
  44. if ($lowest_compatible_version > intval($ver_code)) {
  45. $result['force_update'] = 1;
  46. } else {
  47. $result['force_update'] = 0;
  48. }
  49. $update_info = array();
  50. $update_info['ver_code'] = $data[0]['ver_code'];
  51. $update_info['app_path'] = $data[0]['app_path'];
  52. $update_info['release_note'] = $data[0]['release_note'];
  53. $update_info['remind_time'] = $data[0]['remind_time'];
  54. $parse_url = parse_url($update_info['app_path']);
  55. $file_path = BASE_ROOT_PATH . $parse_url['path'];
  56. if(file_exists($file_path)) {
  57. $update_info['md5_file'] = md5_file($file_path);
  58. } else {
  59. $update_info['md5_file'] = '';
  60. }
  61. $result['update_info'] = $update_info;
  62. }
  63. joutput_data($result);
  64. } else {
  65. output_error('请输入平台和版本号!');
  66. }
  67. }
  68. }