123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279 |
- <?php
- /**
- * WalletLogic.php UTF-8
- * 钱包处理逻辑
- *
- * @date : 2018/1/25 15:08
- *
- * @license 这不是一个自由软件,未经授权不许任何使用和传播。
- * @author : linjiebin <ljb@huosdk.com>
- * @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;
- }
- }
|