123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230 |
- <?php
- /**
- * GamePaySwitchLogic.php UTF-8
- * 支付切换逻辑处理
- *
- * @date : 2018/6/6 22:10
- *
- * @license 这不是一个自由软件,未经授权不许任何使用和传播。
- * @author : chenbingling <cbl@huosdk.com>
- * @version : HUOSDK 8.0
- */
- namespace huo\logic\game;
- use ban\model\DeviceBanModel;
- use ban\model\IpBanModel;
- use huo\controller\game\GamePaySwitchCache;
- use huo\model\common\CommonModel;
- use huo\model\game\GamePaySwitchModel;
- use huo\model\member\MemberModel;
- use huolib\constant\OrderConst;
- class GamePaySwitchLogic extends CommonModel {
- public $base_field
- = [
- 'app_id' => 'app_id',
- 'switch_app_id' => 'switch_app_id',
- 'pages' => 'pages',
- 'start_time' => 'start_time',
- 'end_time' => 'end_time',
- 'start_ip' => 'start_ip',
- 'end_ip' => 'end_ip',
- 'is_first' => 'is_first',
- 'price' => 'price',
- 'is_domestic' => 'is_domestic',
- 'is_overseas' => 'is_overseas',
- 'no_switch_version' => 'no_switch_version',
- 'system' => 'system',
- 'pay_type' => 'pay_type',
- 'combat_num_mini' => 'combat_num_mini',
- 'combat_num_max' => 'combat_num_max',
- 'ip_white' => 'ip_white',
- 'area' => 'area',
- 'money' => 'money',
- 'active_days' => 'active_days',
- 'mem_id' => 'mem_id',
- 'sum_money' => 'sum_money',
- ];
- public function getBaseField() {
- return $this->base_field;
- }
- /**
- * 切换规则列表
- *
- * @param int $app_id
- * @param string $page
- *
- * @return mixed
- */
- public function getLists($app_id = 0, $page = '') {
- $_map = [];
- if (!empty($app_id)) {
- $_map['app_id'] = $app_id;
- }
- $_model = new GamePaySwitchModel();
- $_count = $_model->where($_map)->count();
- if ($_count <= 0) {
- $_rdata['count'] = 0;
- $_rdata['list'] = [];
- } else {
- $_field = $this->base_field;
- $_switch_lists = $_model
- ->with('game')
- ->field($_field)
- ->where($_map)
- ->page($page)
- ->select();
- if (is_object($_switch_lists)) {
- $_switch_lists = $_switch_lists->toArray();
- }
- $_lists = [];
- foreach ($_switch_lists as $_v) {
- $_data = [];
- foreach ($_field as $_value) {
- $_data[$_value] = $_v[$_value];
- }
- $_data['game_name'] = '';
- $_data['pay_switch_text'] = '';
- if (!empty($_v['game'])) {
- $_data['game_name'] = empty($_v['game']['game_name']) ? '' : $_v['game']['game_name'];
- $_data['pay_switch_text'] = OrderConst::PAY_SWITCH_YES == $_v['game']['pay_switch'] ? lang('switch')
- : lang('not_switch');
- }
- $_lists[] = $_data;
- }
- $_rdata = [
- 'count' => $_count,
- 'list' => $_lists
- ];
- }
- return $_rdata;
- }
- /***
- * 添加切换规则
- *
- * @param $param
- *
- * @return false|int
- */
- public function addPaySwitch($param) {
- $_rs = (new GamePaySwitchModel())->allowField(true)->save($param);
- return $_rs;
- }
- /**
- * 获取规则信息
- *
- * @param $app_id
- *
- * @return bool
- */
- public function getInfoByAppId($app_id) {
- if (empty($app_id)) {
- return false;
- }
- $_map['app_id'] = $app_id;
- $_field = $this->base_field;
- $_rdata = (new GamePaySwitchModel())->field($_field)->where($_map)->find();
- if (is_object($_rdata)) {
- $_rdata = $_rdata->toArray();
- }
- return $_rdata;
- }
- /**
- * 更新规则信息
- *
- * @param $param
- * @param $app_id
- *
- * @return GamePaySwitchModel
- */
- public function updatePaySwitch($param, $app_id) {
- $_map['app_id'] = $app_id;
- $_rs = (new GamePaySwitchModel())->update($param, $_map, true);
- return $_rs;
- }
- /***
- * 查找切换规则是否已存在
- *
- * @param $app_id
- *
- * @return bool
- */
- public function checkGame($app_id) {
- $_info = GamePaySwitchCache::ins()->getInfoByAppId($app_id);
- if (empty($_info)) {
- return false;
- }
- return true;
- }
- /**
- * 获取IP白名单个数
- *
- * @return int
- */
- public function getIpWhiteCnt() {
- $_map['pay_switch'] = OrderConst::PAY_SWITCH_YES;
- return (new IpBanModel())->getCnt($_map);
- }
- /**
- * 获取IP黑名单个数
- *
- * @return int
- */
- public function getIpBlackCnt() {
- $_map['pay_switch'] = OrderConst::PAY_SWITCH_NO;
- return (new IpBanModel())->getCnt($_map);
- }
- /**
- * 获取玩家白名单个数
- *
- * @return int
- */
- public function getMemWhiteCnt() {
- $_map['pay_switch'] = OrderConst::PAY_SWITCH_YES;
- return (new MemberModel())->getCnt($_map);
- }
- /**
- * 获取玩家黑名单个数
- *
- * @return int
- */
- public function getMemBlackCnt() {
- $_map['pay_switch'] = OrderConst::PAY_SWITCH_NO;
- return (new MemberModel())->getCnt($_map);
- }
- /**
- * 获取IP切换状态
- *
- * @param string $ip IP地址
- *
- * @return int PAY_SWITCH_YES 1 切换 PAY_SWITCH_NO 2 不切换 PAY_SWITCH_NO_FOREVER 3 永不切换
- */
- public function getPaySwitchByIp($ip) {
- if (empty($ip)) {
- return OrderConst::PAY_SWITCH_NO;
- }
- return (new IpBanModel())->getPaySwitch($ip);
- }
- }
|