app_update.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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. $ret = rcache(self::CACHE_KEY, self::CACHE_CHECK_VERSION_ID);
  27. if (empty($ret)) {
  28. $model = Model();
  29. $data = $model->table('app_update')->where(array('cur_version' => '1', 'enable' => '1', 'platform' => $app_platform))->limit(1)->select();
  30. if (empty($data)) {
  31. return joutput_error(errcode::ErrDB);
  32. }
  33. wcache(self::CACHE_KEY, array("cur_version" => serialize($data)), self::CACHE_CHECK_VERSION_ID);
  34. } else {
  35. $data = unserialize($ret['cur_version']);
  36. }
  37. $result = array();
  38. $lowest_compatible_version = intval($data[0]['lowest_compatible_version']);
  39. if ($ver_code === $data[0]['ver_code']) {
  40. $result['latest'] = 0;
  41. } else {
  42. $result['latest'] = 1;
  43. if ($lowest_compatible_version > intval($ver_code)) {
  44. $result['force_update'] = 1;
  45. } else {
  46. $result['force_update'] = 0;
  47. }
  48. $update_info = array();
  49. $update_info['ver_code'] = $data[0]['ver_code'];
  50. $update_info['app_path'] = $data[0]['app_path'];
  51. $update_info['release_note'] = $data[0]['release_note'];
  52. $update_info['remind_time'] = $data[0]['remind_time'];
  53. $parse_url = parse_url($update_info['app_path']);
  54. $update_info['md5_file'] = md5_file(BASE_ROOT_PATH . $parse_url['path']);
  55. $result['update_info'] = $update_info;
  56. }
  57. joutput_data($result);
  58. } else {
  59. output_error('请输入平台和版本号!');
  60. }
  61. }
  62. }