1
This commit is contained in:
parent
59cae52fe8
commit
6913e409a9
88
webapp/metatable/shop.php
Normal file
88
webapp/metatable/shop.php
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace metatable;
|
||||||
|
|
||||||
|
use phpcommon;
|
||||||
|
|
||||||
|
/*
|
||||||
|
配置表规范
|
||||||
|
getXXXConf:获取表所有数据
|
||||||
|
getXxxById():通过id获取单个数据
|
||||||
|
_internalGetXXXConf:获取表所有数据内部实现不对外开放
|
||||||
|
|
||||||
|
使用方式
|
||||||
|
require_once 'metatable/XXXX.php';
|
||||||
|
|
||||||
|
!!!注意必须使用require_once
|
||||||
|
*/
|
||||||
|
|
||||||
|
function getShopConf()
|
||||||
|
{
|
||||||
|
return _internalGetShopConf();
|
||||||
|
}
|
||||||
|
|
||||||
|
function getShopById($shop_id)
|
||||||
|
{
|
||||||
|
$conf = getShopConf();
|
||||||
|
$shop_id = (int)$shop_id;
|
||||||
|
return array_key_exists($shop_id, $conf) ? $conf[$shop_id] : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function randGoods($shop_conf, $exclude_goods)
|
||||||
|
{
|
||||||
|
$num = $shop_conf['num'];
|
||||||
|
$goods_list = explode('|', $shop_conf['goods_list']);
|
||||||
|
$goods_weight = explode('|', $shop_conf['goods_weight']);
|
||||||
|
$discount_num = $shop_conf['discount_num'];
|
||||||
|
if (!empty($exclude_goods)) {
|
||||||
|
for ($i = count($goods_list) - 1; $i >= 0; --$i) {
|
||||||
|
if (array_key_exists($goods_list[$i], $exclude_goods)) {
|
||||||
|
array_splice($goods_list, $i, 1);
|
||||||
|
array_splice($goods_weight, $i, 1);
|
||||||
|
--$num;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$goods = array();
|
||||||
|
for ($i = 0; $i < $num; ++$i) {
|
||||||
|
$rand_space = 0;
|
||||||
|
foreach ($goods_weight as $value) {
|
||||||
|
$rand_space += $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($rand_space <= 0) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
$rnd_val = rand(0, $rand_space);
|
||||||
|
$curr_val = 0;
|
||||||
|
$discount = false;
|
||||||
|
if ($discount_num != 0) {
|
||||||
|
$discount = true;
|
||||||
|
$discount_num--;
|
||||||
|
}
|
||||||
|
for ($ii = 0; $ii < count($goods_weight); ++$ii) {
|
||||||
|
$curr_val += $goods_weight[$ii];
|
||||||
|
if ($rnd_val <= $curr_val) {
|
||||||
|
array_push($goods, array(
|
||||||
|
'id' => $goods_list[$ii],
|
||||||
|
'active_time' => time(),
|
||||||
|
'status' => 0,
|
||||||
|
'isdiscount' => $discount,
|
||||||
|
));
|
||||||
|
array_splice($goods_list, $ii, 1);
|
||||||
|
array_splice($goods_weight, $ii, 1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $goods;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _internalGetShopConf()
|
||||||
|
{
|
||||||
|
global $g_shop_table;
|
||||||
|
if (!$g_shop_table) {
|
||||||
|
$g_shop_table = require(getConfigBaseDir() . 'shop@shop.php');
|
||||||
|
}
|
||||||
|
return $g_shop_table;
|
||||||
|
}
|
38
webapp/metatable/shopGoods.php
Normal file
38
webapp/metatable/shopGoods.php
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace metatable;
|
||||||
|
|
||||||
|
use phpcommon;
|
||||||
|
|
||||||
|
/*
|
||||||
|
配置表规范
|
||||||
|
getXXXConf:获取表所有数据
|
||||||
|
getXxxById():通过id获取单个数据
|
||||||
|
_internalGetXXXConf:获取表所有数据内部实现不对外开放
|
||||||
|
|
||||||
|
使用方式
|
||||||
|
require_once 'metatable/XXXX.php';
|
||||||
|
|
||||||
|
!!!注意必须使用require_once
|
||||||
|
*/
|
||||||
|
|
||||||
|
function getShopGoodsConf()
|
||||||
|
{
|
||||||
|
return _internalGetShopGoodsConf();
|
||||||
|
}
|
||||||
|
|
||||||
|
function getShopGoodsById($shop_id)
|
||||||
|
{
|
||||||
|
$conf = getShopGoodsConf();
|
||||||
|
$shop_id = (int)$shop_id;
|
||||||
|
return array_key_exists($shop_id, $conf) ? $conf[$shop_id] : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _internalGetShopGoodsConf()
|
||||||
|
{
|
||||||
|
global $g_shopGoods_table;
|
||||||
|
if (!$g_shopGoods_table) {
|
||||||
|
$g_shopG_table = require(getConfigBaseDir() . 'shopGoods@shopGoods.php');
|
||||||
|
}
|
||||||
|
return $g_shopG_table;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user