onlineEnterpriseId = $enterpriseId; $this->cache = Factory::cache('mapping'); } /** * 缓存统计 * @param $value $缓存的字段名 value * @param $score $缓存的值 score * @param $key $缓存名字 key * @return mixed */ public function createCacheStatistics($value,$score,$key) { $result = $this->cache->zadd($this->StockKey.$key.'::'.$this->onlineEnterpriseId, $score, $value); if ($result == false){ return false; } return $result; } /** * 获取统计 * @param $value $字段名 value * @param $key $表名 key * @return mixed */ public function getCacheStatistics($value,$key) { $result = $this->cache->ZSCORE($this->StockKey.$key.'::'.$this->onlineEnterpriseId,$value); return $result; } /** * 获取key的个数 * @param $key //字段名 * @return mixed */ public function getCacheStatisticsCount($key) { $result = $this->cache->ZCARD($this->StockKey.$key.'::'.$this->onlineEnterpriseId); return $result; } /** * 删除统计 * @param $key $表名 * @return mixed */ public function deleteCacheStatistics($key) { $result = $this->cache->del($this->StockKey.$key.'::'.$this->onlineEnterpriseId); return $result; } /** * Doc: (des="创建单据当天的序号") * User: XMing * Date: 2020/11/6 * Time: 10:24 上午 * -当天从1开始自增 * -订单号模样:20190604000001 * @param int $back 序号回退,如果创建失败,事务回滚可用 * @param string $fix * @return string */ public function createSerialSn(int $back = 0,string $fix = 'stock'): string { $key = $fix.$this->serialNumKey.'::'.$this->onlineEnterpriseId; $sn = $this->cache->get($key); $snDate = substr($sn,0,8); $snNo = intval(substr($sn,8)); $curDate = date('Ymd'); if($back == 1){//序号回退 if($curDate==$snDate){ $snNo = ($snNo > 1 ) ? ( $snNo-1 ) : 1; $sn = $curDate.sprintf("%04d",$snNo); } }else{//序号增加 if(empty($sn)){ $sn = $curDate.'000001'; }else{ $snNo = ($curDate==$snDate) ? ($snNo+1) : 1; $sn = $curDate.sprintf("%04d",$snNo); } } $this->cache->set($key,$sn); $sn = self::strInsert($sn,8,'-'); return $sn; } private static function strInsert($str, $index, $sertstr) { return substr($str, 0, $index) . $sertstr . substr($str, $index); } }