* @version : HUOSDK 8.0 */ namespace web\pc\logic; use huo\model\common\CommonModel; use huolib\constant\OrderConst; use think\Session; use think\Validate; use think\Db; class WalletLogic extends CommonModel { private $mem_id; public function initialize($mem_id = 0) { parent::initialize(); $this->mem_id = $mem_id; if (empty($this->mem_id)) { $this->mem_id = Session::get('user.id'); } } // 获取折扣信息 public function getPtbRate() { $amount = request()->param('amount'); $money_arr = Db::name('ptb_rate')->column('start_money', 'id'); $mem['total'] = $amount; $rank_arr = array_merge($money_arr, $mem); sort($rank_arr); $arr = array_values($rank_arr); $grades = array_search($amount, $arr); if (0 == $grades) { $data['discount'] = 1; } else { $data['discount'] = Db::name('ptb_rate')->where('id', $grades)->value('rate'); } return $data; } public function getMemPtb() { $_mem_id = $this->mem_id; if (empty($_mem_id)) { $_remain = 0; } else { $_remain = Db::name('mem_ext') ->where(array('mem_id' => $_mem_id)) ->value('ptb_cnt'); if (empty($_remain)) { $_remain = 0; } } return $_remain; } public function getMemGmlist($app_id = 0, $page) { $mem_id = $this->mem_id; if (empty($mem_id)) { return []; } if (!empty($app_id)) { $_gm_map['app_id'] = $app_id; $_map['app_id'] = $app_id; } $_gm_map['remain'] = ['>', 0]; $_gm_map['mem_id'] = $mem_id; $_list = Db::name('gm_mem')->where($_gm_map)->column('remain gmcnt', 'app_id'); if (empty($_list)) { return []; } $_ids = []; foreach ($_list as $_k => $v) { $_ids[] = $_k; } $_map['id'] = ['in', $_ids]; $_game_list = Db::name('game')->where($_map)->page($page)->select()->toArray(); $_rdata = $_game_list; if (empty($_rdata)) { return null; } foreach ($_rdata as $_k => $_v) { $_rdata[$_k]['gmcnt'] = $_list[$_v['id']]; } if (empty($_rdata)) { return []; } return $_rdata; } /** * 游戏币充值记录 * * @param $page * * @return array */ public function getGmRechargeList($page = '1,10') { $mem_id = $this->mem_id; if (empty($mem_id)) { return ['count' => 0, 'list' => []]; } $_map['gmc.mem_id'] = $mem_id; // $_map['gmc.flag'] = 4; $_map['gmc.status'] = 2; $_count = Db::name('gm_charge')->alias('gmc')->where($_map)->count(); $_join = [ [ '__PAYWAY__ pw', 'gmc.payway = pw.payname', 'LEFT' ], [ '__GAME__ g', 'gmc.app_id = g.id', 'LEFT' ] ]; if ($_count > 0) { $_field = [ 'pw.payname' => 'paytype', "IFNULL(gmc.amount,0)" => 'amount', "IFNULL(gmc.gm_cnt,0)" => 'gm_num', "CASE gmc.status WHEN 1 THEN '待处理' WHEN 2 THEN '成功' WHEN 3 THEN '失败' END" => 'status', "gmc.order_id" => 'orderid', 'FROM_UNIXTIME(gmc.create_time)' => 'pay_time', "g.name" => "gamename", "g.id" => "gameid" ]; $_order = " gmc.create_time DESC "; $_list = Db::name('gm_charge') ->alias('gmc') ->field($_field) ->join($_join) ->where($_map) // ->order($_order) ->page($page) ->select(); if (empty($_list)) { $_rdata['list'] = []; } else { $_rdata['list'] = $_list; } $_rdata['count'] = $_count; } else { $_rdata = ['count' => 0, 'list' => []]; } return $_rdata; } /** * 平台币充值记录 * * @param string $page * * @return null */ public function getPtbRechargeList($page = '1,10') { $mem_id = $this->mem_id; if (empty($mem_id)) { return null; } $_map['p.mem_id'] = $mem_id; $_map['p.status'] = 2; $_count = Db::name('ptb_charge')->alias('p')->where($_map)->count(); $_join = [ [ '__PAYWAY__ pw', 'p.payway = pw.payname', 'LEFT' ] ]; if ($_count > 0) { $_field = [ 'pw.payname' => 'paytype', "IFNULL(p.amount,0)" => 'amount', "CASE p.status WHEN 1 THEN '待处理' WHEN 2 THEN '成功' WHEN 3 THEN '失败' END" => 'status', "p.order_id" => 'orderid', 'FROM_UNIXTIME(p.create_time)' => 'pay_time', 'p.ptb_cnt' => 'ptbcnt' ]; $_order = " p.create_time DESC "; $_list = Db::name('ptb_charge') ->alias('p') ->field($_field) ->join($_join) ->where($_map) // ->order($_order) ->page($page) ->select(); if (empty($_list)) { $_rdata['list'] = null; } else { $_rdata['list'] = $_list; } $_rdata['count'] = $_count; } else { $_rdata = null; } if (empty($_rdata)) { return null; } return $_rdata; } /** * 消费记录 * @param string $page * * @return null */ public function getConsumelist($page = '1,10') { $mem_id = $this->mem_id; if (empty($mem_id)) { return null; } $_map['p.mem_id'] = $mem_id; $_map['p.status'] = OrderConst::PAY_STATUS_SUC; $_map['p.payway'] = ['NEQ', '0']; $_count = Db::name('pay')->alias('p')->where($_map)->count(); $_join = [ [ '__GAME__ g', 'g.id = p.app_id', 'LEFT' ], [ '__PAYWAY__ pw', 'p.payway =pw.payname', 'LEFT' ] ]; if ($_count > 0) { $_field = [ 'p.app_id' => 'gameid', 'g.name' => 'gamename', 'pw.payname' => 'paytype', "IFNULL(p.amount,0)" => 'amount', "CASE p.status WHEN 1 THEN '待处理' WHEN 2 THEN '成功' WHEN 3 THEN '失败' END" => 'status', "p.order_id" => 'orderid', 'FROM_UNIXTIME(p.create_time)' => 'pay_time' ]; $_order = " p.create_time DESC "; $_list = Db::name('pay') ->alias('p') ->field($_field) ->join($_join) ->where($_map) // ->order($_order) ->page($page) ->select(); if (empty($_list)) { $_rdata['list'] = null; } else { $_rdata['list'] = $_list; } $_rdata['count'] = $_count; } else { $_rdata = null; } if (empty($_rdata)) { return null; } return $_rdata; } }