| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462 |
- <?php
- namespace App\Models;
- use Illuminate\Support\Facades\DB;
- class Money_details extends BaseModel {
- protected $table = "money_details";
- public $timestamps = false;
- //获取存取反水列表
- function getPartlist($value = '', $type = 1, $page = 10, $sort = 1, $ads = 'desc') {
- // DB::connection()->enableQueryLog();
- $key = $this->getFeild($type);
- $sort = is_integer($sort) ? $this->getFeild($sort) : $sort;
- $data = $this->select('money_details.id', 'money_details.trade_id', 'money_details.account_name', 'money_details.account_identity', 'money_details.money', 'money_details.money_time', 'money_details.money_type', 'money_details.money_cash', 'money_details.trade_type', 'money_details.trade_desc', 'money_details.reason', 'money_details.sysetem_user','money_details.status','money_recharge.remark')->leftJoin('money_recharge', 'money_recharge.order_id', '=', 'money_details.trade_id')->whereIn('trade_type', [5, 6, 7, 8, 9, 11, 12, 13, 14, 15,16,19,22]);
- if (is_array($value)) {
- $data = $data->where($value);
- } else {
- $data = $data->where($key, $value);
- }
- $data = $data->orderby($sort, $ads)->paginate($page);
- // $queries = DB::getQueryLog();
- // print_r($queries);
- if (!$data) {
- return -3021000102; //没有列表数据
- }
- return $data->toArray();
- }
- //获取资金流水列表
- function getMoneylist($value = '', $type = 1, $page = 10, $sort = 6, $ads = 'desc') {
- $key = $this->getFeild($type);
- $sort = is_integer($sort) ? $this->getFeild($sort) : $sort;
- //DB::connection()->enableQueryLog();
- if (is_array($value)) {
- $data = $this->where($value);
- } else {
- $data = $this->where($key, $value);
- }
- $data = $data->select('money_details.id', 'money_details.trade_id', 'money_details.account_name', 'money_details.account_identity', 'money_details.money', 'money_details.money_time', 'money_details.money_type', 'money_details.money_cash', 'money_details.trade_type', 'money_details.trade_desc', 'money_details.reason', 'money_details.sysetem_user','money_details.status','money_recharge.remark')->leftJoin('money_recharge', 'money_recharge.order_id', '=', 'money_details.trade_id')->orderby($sort, $ads)->orderby('money_details.id',$ads)->paginate($page);
- //$queries = DB::getQueryLog();
- //print_r($queries);
- if (!$data) {
- return -3021000102; //没有列表数据
- }
- return $data->toArray();
- }
- //用户提现笔数区间筛选
- function getTakenumArea($where = '', $type = 1, $list = 10, $sort = 6, $ads = 'desc', $page = 1, $having = '', $whereIn = '') {
- //DB::connection()->enableQueryLog();
- $data = $this->select(DB::raw('max(account.id) as id, max(account.identity) as identity, max(account) as account, max(grade) as grade, max(cash) as cash, max(name) as name, max(register_time) as register_time, max(register_ip) as register_ip, max(last_ip) as last_ip, max(phone) as phone, max(email) as email, max(statuss) as statuss,max(last_time) as last_time,count("trade_id") as betnum'))->join('account_detailed', 'money_details.account_identity', '=', 'account_detailed.account_identity')->join('account', 'money_details.account_identity', 'account.identity')->groupBy('money_details.account_identity')->whereIn('trade_type', $whereIn)->where('money_details.status', 1);
- if (!empty($where) && is_array($where) && !empty($having) && is_array($having)) {
- $data = $data->where($where);
- foreach ($having as $v) {
- $data = $data->havingRaw($v);
- }
- } elseif (!empty($having) && is_array($having)) {
- foreach ($having as $v) {
- $data = $data->havingRaw($v);
- }
- } elseif (!empty($where) && is_array($where)) {
- $data = $data->where($where);
- }
- $data = $data->paginate($list);
- //$queries = DB::getQueryLog();
- //print_r($queries);
- if (!$data) {
- return -3020100402; //没有订单统计信息
- }
- $data = $data->toArray();
- return $data;
- }
- //统计会员财务日志
- function getFundlog($value = '', $type = 1, $limit = 10, $sort = 6, $ads = 'desc',$page=1) {
- $key = $this->getFeild($type);
- $sort = is_integer($sort) ? $this->getFeild($sort) : $sort;
- //DB::connection()->enableQueryLog();
- $value .= empty($value)?' where ':' and ';
- $value .= 'status=1 ';
- $offset = ($page-1)*$limit;
- $sql = 'SELECT main.account_name,SUM(CASE WHEN trade_type=14 THEN money ELSE 0 END) as sendmoney,
- SUM(CASE WHEN trade_type=6 OR trade_type=11 THEN money ELSE 0 END) as savemoney,
- SUM(CASE WHEN trade_type=5 OR trade_type=9 THEN money ELSE 0 END) as getmoney,
- SUM(CASE WHEN trade_type=12 AND money_type=1 THEN money ELSE 0 END) as adminadd,
- SUM(CASE WHEN trade_type=12 AND trade_type=2 THEN money ELSE 0 END) as adminpull,
- SUM(CASE WHEN trade_type=13 THEN money ELSE 0 END) as recharge_send,
- SUM(CASE WHEN trade_type=7 OR trade_type=8 THEN money ELSE 0 END) as back_return,
- (SUM(CASE WHEN trade_type=14 OR trade_type=6 OR trade_type=11 THEN money ELSE 0 END)-
- SUM(CASE WHEN trade_type=5 OR trade_type=9 THEN money ELSE 0 END)) as winmoney
- from money_details as main '.$value.' GROUP BY main.account_name LIMIT '.$limit.' OFFSET '.$offset;
- $countsql = 'SELECT COUNT(account_name) from (SELECT account_name from money_details '.$value.' GROUP BY account_name) as a';
- $data = DB::select($sql);
- $count = DB::select($countsql);
- //$queries = DB::getQueryLog();
- //print_r($queries);
- if (!$data) {
- return -3021000502; //没有列表数据
- }
- $data = json_encode($data);
- $data = json_decode($data,1);
- $resdata['data'] = $data;
- $resdata['total'] = $count[0]->count;
- return $resdata;
- /*$data = $this->select(DB::raw('account_name,MAX("account_identity") as account_identity'))->groupBy('account_name');
- if (is_array($value)) {
- $data = $data->where($value);
- } else if (!empty($value)) {
- $data = $data->where($key, $value);
- }
- if (!empty($whereIn) && is_array($whereIn)) {
- foreach ($whereIn as $k => $v) {
- $data = $data->whereIn($v[0], $v[1]);
- }
- }
- if (!empty($whereNotin) && is_array($whereNotin)) {
- foreach ($whereNotin as $k => $v) {
- $data = $data->whereNotIn($v[0], $v[1]);
- }
- }
- $data = $data->paginate($page);
- //$queries = DB::getQueryLog();
- //print_r($queries);
- if (!$data) {
- return -3021000102; //没有列表数据
- }
- return $data->toArray();*/
- }
- //分类统计会员财务
- function getPartlog($value = '', $type = 1) {
- $key = $this->getFeild($type);
- $data = $this->select(DB::raw('trade_type,SUM("money") as summoney,money_type'))->groupBy('trade_type')->groupBy('money_type');
- if (is_array($value)) {
- $data = $data->where($value);
- } else if (!empty($value)) {
- $data = $data->where($key, $value);
- }
- $data = $data->get();
- //$queries = DB::getQueryLog();
- //print_r($queries);
- if (!$data) {
- return -3021000102; //没有列表数据
- }
- return $data->toArray();
- }
- //分类统计会员财务改
- function getPatlog($where){
- $data = $this->select(DB::raw('trade_type,sum("money") as summoney,money_type,account_name'))
- ->where($where)
- ->groupBy('trade_type')
- ->groupBy('money_type')
- ->groupBy('account_name')
- ->get();
- if (!$data) {
- return -3021000102; //没有列表数据
- }
- return $data->toArray();
- }
- //获取账务订单详情
- function getOrderDetails($value, $type = 1, $jointable = '', $columnn = '', $columnw = '') {
- $key = $this->getFeild($type);
- if (empty($jointable)) {
- $data = $this->where($key, $value)->first();
- } elseif ($jointable == 'account_bank') {
- $data = $this->select('money_details.account_name as account', 'trade_id', 'bank_name', 'account_bank.account_name', 'bank_number', 'bank_address', 'money_time', 'money', 'money_details.status', 'trade_type', 'reason')->where($key, $value)->join($jointable, $this->table . '.' . $columnn, $jointable . '.' . $columnw)->first();
- } else {
- $data = $this->where($key, $value)->join($jointable, $this->table . '.' . $columnn, $jointable . '.' . $columnw)->first();
- }
- if (!$data) {
- return -3021000402; //没有订单信息
- }
- return $data->toArray();
- }
- //获取游戏倍率
- function getOddsBy($game_code) {
- $data = $this->select('odds')->where('game_code', $game_code)->where('type', 2)->where('isparent_node', 1)->get();
- $data = $data->toArray();
- if (!$data) {
- return -8010011001; //没有倍率
- }
- $redata = array();
- //组合游戏项的倍率
- foreach ($data as $k => $v) {
- $redata = array_merge($redata, json_decode($v['odds'], 1));
- }
- return $redata;
- }
- //获取号码信息
- function getInfoByCode($code) {
- $data = $this->where('parent', $code)->get();
- if (!$data) {
- return -8020000501; //没有游戏玩法的号码
- }
- return $data->toArray();
- }
- //字段对应值
- private function getFeild($num) {
- $data = array(
- '1' => 'id',
- '2' => 'info_identity',
- '3' => 'trade_id',
- '4' => 'account_name',
- '5' => 'account_identity',
- '6' => 'money_time',
- '7' => 'money_type',
- '8' => 'trade_type',
- '9' => 'sysetem_user',
- '10' => 'status',
- );
- return $data[$num];
- }
- function updateInfo($data,$value,$field=1){
- $key = $this->getFeild($field);
- $res = $this->where($key,$value)->update($data);
- if($res<0){
- return -3021010102; //更新失败
- }
- return 1;
- }
- function money($page, $identity, $status) {
- $data = $this->select('account_identity', 'money_type', 'money_time', 'trade_id', 'trade_type', 'money', 'money_cash', 'trade_desc', 'status')
- ->orderBy('money_time', 'desc')
- ->where('account_identity', $identity)
- ->limit($page)
- ->get();
- foreach ($data as $k => $v) {
- if ($v['money_type'] == 1 && $v['status'] == $status) {
- $data[$k]['old_money'] = sprintf("%.1f", $v['money_cash'] - $v['money']);
- } elseif ($v->money_type == 2 && $v['status'] == $status) {
- $data[$k]['old_money'] = sprintf("%.1f", $v['money_cash'] + $v['money']);
- }
- }
- if (!$data) {
- return -2020062003; //用户没有数据
- }
- return $data->toArray();
- }
- //插入数据
- function insertData($data) {
- if ($this->checkTrade_id($data['trade_id'])) {
- return -3010026022; //订单号已存在。
- }
- $data['info_identity'] = UUID();
- $res = $this->insert($data);
- if (!$res) {
- return -2020072022; //插入资金详情失败
- }
- return 1;
- }
- //获取用户的流水记录
- function getUserWater($account_id, $list = 10, $where = '') {
- $data = $this->where('account_identity', $account_id);
- if (!empty($where) && is_array($where)) {
- $data = $data->where($where);
- }
- $data = $data->orderBy('money_time', 'desc')->paginate($list);
- if (!$data) {
- return -8020010522; //没有数据
- }
- $datas = $data->toArray();
- if (is_array($datas['data']) && count($datas['data'])) {
- foreach ($datas['data'] as $k => $v) {
- if ($v['money_type'] == 1) {
- $datas['data'][$k]['old_money'] = $v['money_cash'] - $v['money'];
- } else {
- $datas['data'][$k]['old_money'] = $v['money_cash'] + $v['money'];
- }
- }
- }
- return $datas;
- }
- //检测交易订单号
- function checkTrade_id($order_id) {
- $res = $this->where('trade_id', $order_id)->first();
- if ($res) {
- return true;
- }
- return false;
- }
- //统计总金额
- function sumMoney($where) {
- $res = $this->where($where)->sum('money');
- return $res;
- }
- //获取存取反水总金额含活动赠送
- function getTotal($time) {
- $array = array(5, 6, 7, 8, 9, 11, 12, 13, 14);
- $res = $this->where($time)->whereIn('trade_type', $array)->sum('money');
- return $res;
- }
- //入款总额汇总
- function getIntoTotal($where) {
- $array = array(6, 11, 14);
- $res = $this->where($where)->whereIn('trade_type', $array)->sum('money');
- return $res;
- }
- //统计各项入款金额
- function sumIntoMoney($where) {
- $res = $this->where($where)->sum('money');
- return $res;
- }
- //测试统计
- function totalTypeMoney($where){
- $type=array(5,6,7,8,9,12,11,13,14,16,19,10,22);
- $data=$this->select(DB::raw('sum(money) as money,trade_type,money_type'))
- ->whereIn('trade_type',$type)
- ->where($where)
- ->groupBy('trade_type')
- ->groupBy('money_type')
- ->get();
- return $data->toArray();
- }
- function getActiveMoney($where, $type) {
- $res = $this->where('money_type', $type)->where($where)->where('trade_type', 12)->sum('money');
- return $res;
- }
- //汇款金额汇总统计
- function sendMoneyCount($where = '') {
- $data = array();
- $data['all_money'] = $this->whereIn('trade_type', [13, 14])->sum('money');
- $data['success_money'] = $this->whereIn('trade_type', [13])->sum('money');
- $data['give_money'] = $this->whereIn('trade_type', [13, 14])->where('status', 1)->sum('money');
- $data['fail_money'] = $this->whereIn('trade_type', [13, 14])->where('status', 2)->sum('money');
- if (!empty($where) && is_array($where)) {
- $data['all_money'] = $this->where($where)->whereIn('trade_type', [13, 14])->sum('money');
- $data['success_money'] = $this->where($where)->whereIn('trade_type', [13])->sum('money');
- $data['give_money'] = $this->where($where)->whereIn('trade_type', [13, 14])->where('status', 1)->sum('money');
- $data['fail_money'] = $this->where($where)->whereIn('trade_type', [13, 14])->where('status', 2)->sum('money');
- }
- return $data;
- }
- //反水插入
- function returnData($data) {
- $res = $this->insert($data);
- if (!$res) {
- return -5020034002; //反水失败
- }
- return 1;
- }
- function getBet() {
- $time2 = date("Y-m-d H:i:s", time() - 60 * 60 * 24 * 7);
- $type=array(5,6,11,14);
- //提现
- $rech_data= $this->select(DB::Raw('date(money_time)'), DB::Raw('sum(money) as value'),'trade_type')->where('money_time', '>=', $time2)
- ->where('status',1)
- ->whereIn('trade_type',$type)
- ->orderBy(DB::Raw('date(money_time)'), 'asc')->groupBy(DB::Raw('date(money_time)'))->groupBy('trade_type')->get();
- if (!$rech_data) {
- return -3021010102; //没有列表数据
- }
- return $rech_data->toArray();
- //判断数据是否存在
- /*$rech_data['money_with'] = $rech_data['money_with']->toArray();
- $rech_data['money_recharge'] = $this->join('account', 'account.identity', '=', 'money_details.account_identity')->select(DB::Raw('date(money_time)'), DB::Raw('sum(money) as value'))->whereBetween('money_time', $timearea)->orderBy(DB::Raw('date(money_time)'), 'asc')->groupBy(DB::Raw('date(money_time)'))->where('trade_type', 6)->get();
- $rech_data['money_recharge'] = $rech_data['money_recharge']->toArray();
- $rech_data['money_remittance'] = $this->join('account', 'account.identity', '=', 'money_details.account_identity')->select(DB::Raw('date(money_time)'), DB::Raw('sum(money) as value'))->whereBetween('money_time', $timearea)->orderBy(DB::Raw('date(money_time)'), 'asc')->groupBy(DB::Raw('date(money_time)'))->where('trade_type', 11)->get();
- $rech_data['money_remittance'] = $rech_data['money_remittance']->toArray();
- $rech_data['money_trans'] = $this->join('account', 'account.identity', '=', 'money_details.account_identity')->select(DB::Raw('date(money_time)'), DB::Raw('sum(money) as value'))->whereBetween('money_time', $timearea)->orderBy(DB::Raw('date(money_time)'), 'asc')->groupBy(DB::Raw('date(money_time)'))->where('trade_type', 14)->get();
- $rech_data['money_trans'] = $rech_data['money_trans']->toArray();
- return $rech_data;*/
- }
- function countUser($timearea, $array) {
- $data = $this->select('account_name')->whereBetween('money_time', $timearea)->whereIn('trade_type', $array)->groupBy('account_name')->get();
- if (!$data) {
- return 0;
- }
- $data = $data->toArray();
- return count($data);
- }
- //下级会员资金列表
- function getChildMoneyList($childs,$list){
- $data=$this->whereIn('account_name',$childs)->orderBy('money_time','desc')->paginate($list);
- if (!$data) {
- return -3021000102; //没有列表数据
- }
- return $data->toArray();
- }
- //获取用户存取款笔数
- function getUserMoneynum($aid){
- $rechargenum=$this->whereIn('trade_type',array(6,12,11,14))->where('account_identity',$aid)->count();
- $takenum=$this->whereIn('trade_type',array(5))->where('account_identity',$aid)->count();
- $data = array(
- 'recharge_num' => !$rechargenum?0:$rechargenum,
- 'take_num' => !$takenum?0:$takenum,
- );
- return $data;
- }
- //批量插入数据
- function insertAllData($data) {
- $res = $this->insert($data);
- if (!$res) {
- return -2020072022; //插入资金详情失败
- }
- return 1;
- }
- //根据用户名统计该用户提款,充值成功次数
- function countUserNum($account_name){
- $data=$this->select(DB::raw('count(id) as num,trade_type'))->where('status',1)->where('account_name',$account_name)->whereIn('trade_type',array(5,6,11,14))->groupBy('trade_type')->get();
- if(!$data){
- return array();
- }
- return $data->toArray();
- }
- //获取用户充值总金额
- function sumRecharge($account_name){
- return $this->where('account_name',$account_name)->where('status',1)->whereIn('trade_type',array(6,11,14))->sum('money');
- }
- protected function getBetMoney($time,$id) {
- // DB::connection()->enableQueryLog();
- $sum = $this->where('money_time', '>', $time)->whereIn('status',['1','2'])->where('account_identity',$id)->sum('money');
- // $queries = DB::getQueryLog();
- // print_r($queries);
- return $sum;
- }
- /** 获取一种类型得数据
- * @param $type 交易类型
- * @param $limit 条数
- * @param $otherWhere 其他条件
- */
- protected function getTypeData($type,$limit,$otherwhere=array()){
- $data=$this->where('trade_type',$type);
- if(is_array($otherwhere)&&count($otherwhere)>0){
- $data=$data->where($otherwhere);
- }
- $data=$data->orderBy('id','asc');
- $data=$data->paginate($limit);
- return $data->toArray();
- }
- protected function getTypesData($typearray=array(),$limit){
- $data=$this->whereIn('trade_type',$typearray)->paginate($limit);
- return $data->toArray();
- }
- }
|