41 lines
1015 B
PHP
41 lines
1015 B
PHP
<?php
|
||
/**
|
||
* Created by PhpStorm.
|
||
* User: chatfeed
|
||
* Date: 2022/5/25
|
||
* Time: 7:28 PM
|
||
*/
|
||
|
||
namespace common\helpers;
|
||
|
||
use admin\exceptions\ApiException;
|
||
|
||
/**
|
||
* ID加前缀,偏移真实ID
|
||
*/
|
||
class FakeId
|
||
{
|
||
//店员DY,供应商GY,药店YI,业务员XS,用户YH,市场专员ZY 药店账号 限2位字符
|
||
private static $offset = ['DY'=>612155,'GY'=>215851,'YD'=>721143,'XS'=>116555,'YH'=>135435,'ZY'=> 123456];
|
||
|
||
public static function encodeId($type,$id){
|
||
if(!isset(self::$offset[$type])){
|
||
throw new ApiException("{$type}类型不存在");
|
||
}
|
||
return $type.($id+self::$offset[$type]);
|
||
}
|
||
|
||
public static function decodeId($id){
|
||
if(!$id){
|
||
return 0;
|
||
}
|
||
preg_match('/([A-Z]{2})(\d+)/s',$id,$macths);
|
||
if(!isset($macths[1]) || !isset(self::$offset[$macths[1]])){
|
||
throw new ApiException("{$macths[1]}类型不存在");
|
||
}
|
||
;
|
||
return (int)$macths[2]-self::$offset[$macths[1]];
|
||
}
|
||
|
||
}
|