Browse Source

小程序版本比较

master
Lemon 5 years ago
parent
commit
4a0f5facfe
  1. 48
      app/Service/v3/Implementations/HelperService.php
  2. 11
      app/Service/v3/Implementations/TabsService.php

48
app/Service/v3/Implementations/HelperService.php

@ -53,4 +53,52 @@ class HelperService implements HelperServiceInterface
return $str; return $str;
} }
/*
* 版本号比较 by sam 20170412
* @param $version1 版本A :5.3.2
* @param $version2 版本B :5.3.0
* @return int -1版本A小于版本B , 0版本A等于版本B, 1版本A大于版本B
*
* 版本号格式注意:
* 1.要求只包含:点和大于等于0小于等于2147483646的整数 的组合
* 2.boole型 true置1,false置0
* 3.不设位默认补0计算,如:版本号5等于版号5.0.0
* 4.不包括数字 负数 的版本号 ,统一按0处理
*
* @example:
* if (versionCompare('5.2.2','5.3.0')<0) {
* echo '版本1小于版本2';
* }
*/
function versionCompare($versionA,$versionB)
{
if ($versionA > 2147483646 || $versionB > 2147483646) {
throw new Exception('版本号,位数太大暂不支持!', '101');
}
$dm = '.';
$verListA = explode($dm, (string)$versionA);
$verListB = explode($dm, (string)$versionB);
$len = max(count($verListA), count($verListB));
$i = -1;
while ($i++ < $len) {
$verListA[$i] = intval(@$verListA[$i]);
if ($verListA[$i] < 0) {
$verListA[$i] = 0;
}
$verListB[$i] = intval(@$verListB[$i]);
if ($verListB[$i] < 0) {
$verListB[$i] = 0;
}
if ($verListA[$i] > $verListB[$i]) {
return 1;
} else if ($verListA[$i] < $verListB[$i]) {
return -1;
} else if ($i == ($len - 1)) {
return 0;
}
}
}
} }

11
app/Service/v3/Implementations/TabsService.php

@ -4,10 +4,14 @@ namespace App\Service\v3\Implementations;
use App\Constants\v3\Tabs; use App\Constants\v3\Tabs;
use App\Service\v3\Interfaces\TabsServiceInterface; use App\Service\v3\Interfaces\TabsServiceInterface;
use Hyperf\Di\Annotation\Inject;
class TabsService implements TabsServiceInterface class TabsService implements TabsServiceInterface
{ {
/**
* @Inject
* @var HelperService
*/
protected $helperService;
public function do() public function do()
{ {
// TODO: Implement do() method. // TODO: Implement do() method.
@ -25,7 +29,8 @@ class TabsService implements TabsServiceInterface
public function allForAppletIndex($version) public function allForAppletIndex($version)
{ {
if($version == '3.0.12'){
$version = $this->helperService->versionCompare($version,'3.0.12');
if($version >= 0){
return [ return [
['tab' => Tabs::APPLET_INDEX_STORE, 'title' => '推荐店铺', 'subtitle' => '物美价廉', 'badge' => '', 'bg_color' => '#FF0000', 'font_color' => '#FFFFFF'], ['tab' => Tabs::APPLET_INDEX_STORE, 'title' => '推荐店铺', 'subtitle' => '物美价廉', 'badge' => '', 'bg_color' => '#FF0000', 'font_color' => '#FFFFFF'],
['tab' => Tabs::APPLET_INDEX_RECOMMEND, 'title' => '猜你喜欢', 'subtitle' => '我是你的菜', 'badge' => '', 'bg_color' => '#FF0000', 'font_color' => '#FFFFFF'], ['tab' => Tabs::APPLET_INDEX_RECOMMEND, 'title' => '猜你喜欢', 'subtitle' => '我是你的菜', 'badge' => '', 'bg_color' => '#FF0000', 'font_color' => '#FFFFFF'],

Loading…
Cancel
Save