Version.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. namespace app\common\model;
  3. use think\Model;
  4. class Version extends Model
  5. {
  6. // 开启自动写入时间戳字段
  7. protected $autoWriteTimestamp = 'int';
  8. // 定义时间戳字段名
  9. protected $createTime = 'createtime';
  10. protected $updateTime = 'updatetime';
  11. // 定义字段类型
  12. protected $type = [
  13. ];
  14. /**
  15. * 检测版本号
  16. *
  17. * @param string $version 客户端版本号
  18. * @return array
  19. */
  20. public static function check($version)
  21. {
  22. $versionlist = self::where('status', 'normal')->cache('__version__')->order('weigh desc,id desc')->select();
  23. foreach ($versionlist as $k => $v)
  24. {
  25. // 版本正常且新版本号不等于验证的版本号且找到匹配的旧版本
  26. if ($v['status'] == 'normal' && $v['newversion'] !== $version && \fast\Version::check($version, $v['oldversion']))
  27. {
  28. $updateversion = $v;
  29. break;
  30. }
  31. }
  32. if (isset($updateversion))
  33. {
  34. $search = ['{version}', '{newversion}', '{downloadurl}', '{url}', '{packagesize}'];
  35. $replace = [$version, $updateversion['newversion'], $updateversion['downloadurl'], $updateversion['downloadurl'], $updateversion['packagesize']];
  36. $upgradetext = str_replace($search, $replace, $updateversion['content']);
  37. return [
  38. "enforce" => $updateversion['enforce'],
  39. "version" => $version,
  40. "newversion" => $updateversion['newversion'],
  41. "downloadurl" => $updateversion['downloadurl'],
  42. "packagesize" => $updateversion['packagesize'],
  43. "upgradetext" => $upgradetext
  44. ];
  45. }
  46. return NULL;
  47. }
  48. }