计数器(Counter)

基础概念

计数器会使用项目mongodb中wii_counter集合进行计数器数据存储。

计数器可对约定的 $key+$extKey 进行整数或者浮点数的原子加减处理。

关键字段

计数器

计数

public static function increment($key, $extKeys = null, $step = 1, $init = 0)

字段说明

字段名 字段类型 描述
key string 主键
extKey null \ string \ array 扩展键
step integer \ float 步长,默认:1
init integer \ float 计数器初始值,默认:0

示例

// 增加订单数量:
$key = 'ORDER_COUNT';
$count = Counter::increment($key);

// 增加某品牌订单数量
$key = 'ORDER_COUNT';
$extKey = [
'brand_id' => 11111111
];
$count = Counter::increment($key, $extKey);

// 增加某品牌下某产品的订单数量
$key = 'ORDER_COUNT';
$extKey = [
'brand_id' => 11111111,
'product_id' => 22222222
];
$count = Counter::increment($key, $extKey);

// 增加某品牌下某产品的销售总额
$key = 'ORDER_SALE_COUNT';
$extKey = [
'brand_id' => 11111111,
'product_id' => 22222222
];
$amount = '100';
$count = Counter::increment($key, $extKey, $amount);

查询

public static function query($key, $extKey = null)

字段说明

字段名 字段类型 描述
key string 主键
extKey null \ string \ array 扩展键

示例

// 获取订单总数
$key = 'ORDER_COUNT';
$count = Counter::query($key);

// 获取某品牌下订单总数
$key = 'ORDER_COUNT';
$extKey = [
    'brand_id' => 11111111
];
$count = Counter::query($key, $extKey);

// 获取某品牌下某商品订单总数
$key = 'ORDER_COUNT';
$extKey = [
    'brand_id' => 11111111,
    'product_id' => 22222222
];
$count = Counter::query($key, $extKey);

// 获取某品牌下某商品订单总金额
$key = 'ORDER_SALE_COUNT';
$extKey = [
    'brand_id' => 11111111,
    'product_id' => 22222222
];
$count = Counter::query($key, $extKey);

求和查询

public static function sumQuery($key, $extKey = null, $groupKey = null)

字段说明

字段名 字段类型 描述
key string 主键
extKey null \ string \ array 扩展键
groupKey string 组Key

日计数器

日计数

日计数器,在基础计数器基础上,增加日期纬度,每日独立计数。

public static function dateIncrement($key, $extKey = null, $date = null, $step = 1, $init = 0)

字段说明

字段名 字段类型 描述
key string 主键
extKey null \ string \ array 扩展键
date date 日期。格式:yyyy-mm-dd,默认:今日
step integer \ float 步长,默认:1
init integer \ float 计数器初始值,默认:0

示例

// 增加日订单数量:
$key = 'ORDER_DATE_COUNT';
$extKey = null;
$date = date('Y-m-d');

$count = Counter::dateIncrement($key, $extKey, $date);

// 增加某品牌日订单数量
$extKey = [
'brand_id' => 11111111
];
$count = Counter::increment($key, $extKey, $date);

// 增加某品牌下某产品的日订单数量
$extKey = [
'brand_id' => 11111111,
'product_id' => 22222222
];
$count = Counter::increment($key, $extKey, $date);

// 增加某品牌下某产品的日销售总额
$key = 'ORDER_SALE_DATE_COUNT';
$date = date('Y-m-d');
$extKey = [
'brand_id' => 11111111,
'product_id' => 22222222
];
$amount = 100;
$count = Counter::increment($key, $extKey, $date, $amount);

日查询

public static function dateQuery($key, $extKey = null, $date = null)

字段说明

字段名 字段类型 描述
key string 主键
extKey null \ string \ array 扩展键
date date 日期。格式:yyyy-mm-dd,默认:今日

示例

// 增加日订单数量:
$key = 'ORDER_DATE_COUNT';
$extKey = null;
$date = date('Y-m-d');

$count = Counter::dateIncrement($key, $extKey, $date);

// 增加某品牌日订单数量
$extKey = [
'brand_id' => 11111111
];
$count = Counter::dateIncrement($key, $extKey, $date);

// 增加某品牌下某产品的日订单数量
$extKey = [
'brand_id' => 11111111,
'product_id' => 22222222
];
$count = Counter::dateIncrement($key, $extKey, $date);

// 增加某品牌下某产品的日销售总额
$key = 'ORDER_SALE_DATE_COUNT';
$date = date('Y-m-d');
$extKey = [
'brand_id' => 11111111,
'product_id' => 22222222
];
$amount = 100;
$count = Counter::dateIncrement($key, $extKey, $date, $amount);

日求和查询

public static function dateSumQuery($key, $extKey = null, $date = null, $groupKey = null)

字段说明

字段名 字段类型 描述
key string 主键
extKey null \ string \ array 扩展键
date date 日期。格式:yyyy-mm-dd,默认:今日

示例


Model 自增字段

results matching ""

    No results matching ""