| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- <?php
- namespace app\model;
- use think\Model;
- class GameControlAutoRTPConfigModel extends Model
- {
- // 设置表名
- protected $name = 'control_auto_rtp_config';
- protected $connection = 'fortue_tiger';
- // 设置主键
- protected $pk = 'id';
- // 设置自动时间戳
- protected $autoWriteTimestamp = 'int';
- // 设置字段类型
- protected $type = [
- 'id' => 'int',
- 'app_id' => 'int', // 商户ID
- 'new_user_number' => 'int', // 定义新手玩家的游戏局数
- 'float_rate' => 'int', // 玩家RTP高于游戏设定RTP进入系统判断
- 'rtp_check' => 'int', // 游戏内统计数据周期
- 'rtp_float' => 'int', // 玩家RTP上下限的误差范围
- 'status' => 'int', // 状态 1 正常,0 取消
- 'rtp_kill_data' => 'string', // 配置列表
- 'create_time' => 'int',
- 'update_time' => 'int',
- ];
- /**
- * 初始化 生成默认配置
- * @param $appId
- * @return array
- */
- public static function initCreateData($appId) {
- $form = [
- 'app_id' => $appId,
- 'new_user_number' => 150,
- 'float_rate' => 15 * 100,
- 'rtp_check' => 10,
- 'rtp_float' => 2.5 * 100,
- 'status' => 1,
- 'rtp_kill_data' => [
- ['new' => 0, 'old' => 5000,], // defaultRtpValue * 100 + float_rate ~ defaultRtpValue * 100 + float_rate + (rtp_float * 2)
- ['new' => 500, 'old' => 5000],
- ['new' => 1000, 'old' => 5000],
- ['new' => 1500, 'old' => 5000],
- ['new' => 2000, 'old' => 5000],
- ['new' => 2000, 'old' => 5000],
- ['new' => 2000, 'old' => 6000],
- ['new' => 2000, 'old' => 7000],
- ['new' => 2000, 'old' => 8000],
- ['new' => 2000, 'old' => 9000],
- ]
- ];
- $form['rtp_kill_data'] = json_encode($form['rtp_kill_data']);
- self::create($form);
- return $form;
- }
- public static function getAutoRtpConfigInfo($app_id, $defaultRtp = null)
- {
- $info = self::where(['app_id' => $app_id])->find();
- if(empty($info)) {
- return null;
- }
- $info = $info->toArray();
- $info['rtp_kill_data'] = json_decode($info['rtp_kill_data'], true);
- $diff_rtp = $info['rtp_float'] * 2;
- $rtp = ($defaultRtp ?? $GLOBALS['defaultRTPValue']) * 100;
- foreach ($info['rtp_kill_data'] as $idx => $item) {
- // $start = $rtp + ($diff_rtp * $idx) + $info['float_rate'];
- // $end = $start + $diff_rtp;
- $item['new'] = bcdiv($item['new'], 100, 2) * 1;
- $item['old'] = bcdiv($item['old'], 100, 2) * 1;
- $info['rtp_kill_data'][$idx] = $item;
- }
- $info['float_rate'] = bcdiv($info['float_rate'], 100, 2) * 1;
- $info['rtp_float'] = bcdiv($info['rtp_float'], 100, 2) * 1;
- $info['default_rtp'] = bcdiv($rtp, 100, 2) * 1;
- return $info;
- }
- }
|