4 changed files with 136 additions and 0 deletions
@ -0,0 +1,18 @@ |
|||||
|
<?php |
||||
|
|
||||
|
namespace app\model; |
||||
|
|
||||
|
use think\Model; |
||||
|
|
||||
|
class Zone extends Model |
||||
|
{ |
||||
|
public static function getList() |
||||
|
{ |
||||
|
$zone = self::where('status',1)->select(); |
||||
|
return $zone->toArray(); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
} |
||||
@ -0,0 +1,50 @@ |
|||||
|
<?php |
||||
|
|
||||
|
namespace app\model; |
||||
|
|
||||
|
use \think\Model; |
||||
|
|
||||
|
class ZoneAmountParam extends Model |
||||
|
{ |
||||
|
|
||||
|
/** |
||||
|
* 获取随机金额 |
||||
|
* @param $data |
||||
|
* @return array |
||||
|
* @throws \think\db\exception\DataNotFoundException |
||||
|
* @throws \think\db\exception\DbException |
||||
|
* @throws \think\db\exception\ModelNotFoundException |
||||
|
*/ |
||||
|
public static function getRandAmount($data = []) |
||||
|
{ |
||||
|
if (empty($data)) { |
||||
|
$model = new ZoneAmountParam(); |
||||
|
$data = $model->select()->toArray(); |
||||
|
} |
||||
|
|
||||
|
$totalWeight = 0; |
||||
|
foreach ($data as $pattern) { |
||||
|
$totalWeight += $pattern['weight']; |
||||
|
} |
||||
|
|
||||
|
// 随机金额 |
||||
|
$amount = '0.00'; |
||||
|
|
||||
|
// 生成随机数 |
||||
|
$randomNumber = rand(1, $totalWeight); |
||||
|
|
||||
|
foreach ($data as $pattern) { |
||||
|
$randomNumber -= $pattern['weight']; |
||||
|
if ($randomNumber <= 0) { |
||||
|
$amount = $pattern['amount']; |
||||
|
break; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
return [ |
||||
|
'data' => $data, |
||||
|
'amount' => $amount |
||||
|
]; |
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,21 @@ |
|||||
|
<?php |
||||
|
|
||||
|
namespace app\model; |
||||
|
|
||||
|
class ZoneGoods extends \think\Model |
||||
|
{ |
||||
|
|
||||
|
public static function getList($param) |
||||
|
{ |
||||
|
|
||||
|
$where = ['status' => 1]; |
||||
|
if (isset($param['zone_id'])) $where['zone_id'] = $param['zone_id']; |
||||
|
$field = 'zone_id,title,important,price,cover_image'; |
||||
|
$list = self::where($where)->field($field)->order('id desc')->select()->toArray(); |
||||
|
foreach ($list as &$item) { |
||||
|
$item['cover_image'] = get_image_url($item['cover_image']); |
||||
|
} |
||||
|
return $list; |
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,47 @@ |
|||||
|
<?php |
||||
|
|
||||
|
namespace app\model; |
||||
|
|
||||
|
use \think\Model; |
||||
|
|
||||
|
class ZoneGoodsParam extends Model |
||||
|
{ |
||||
|
|
||||
|
/** |
||||
|
* 获取刮奖参数 |
||||
|
* @param $where |
||||
|
* @return array |
||||
|
* @throws \think\db\exception\DataNotFoundException |
||||
|
* @throws \think\db\exception\DbException |
||||
|
* @throws \think\db\exception\ModelNotFoundException |
||||
|
*/ |
||||
|
public static function getList($where = []) |
||||
|
{ |
||||
|
$where['status'] = 1; |
||||
|
$list = self::where($where)->field('amount,image,probability,awards')->select()->toArray(); |
||||
|
|
||||
|
$ZoneAmountParam = []; |
||||
|
foreach ($list as &$item) { |
||||
|
|
||||
|
$item['image'] = get_image_url($item['image']); |
||||
|
if ($item['awards'] != 1) { |
||||
|
# 获取无奖项随机金额 |
||||
|
$item['amount'] = ZoneAmountParam::getRandAmount($ZoneAmountParam); |
||||
|
$ZoneAmountParam = $item['data']; |
||||
|
} |
||||
|
} |
||||
|
return $list; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 获取中奖金额 |
||||
|
* @author whj |
||||
|
* @date 2023-08-28 17:50 |
||||
|
*/ |
||||
|
public static function getAwardsAmount($id) |
||||
|
{ |
||||
|
$data = self::where(['id' => $id,'awards' => 1])->field('amount')->find(); |
||||
|
return $data ?: false; |
||||
|
} |
||||
|
|
||||
|
} |
||||
Loading…
Reference in new issue