ordersca.php 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. namespace WY\app\controller\derpay;
  3. use WY\app\libs\Controller;
  4. if (!defined('WY_ROOT')) {
  5. exit;
  6. }
  7. class ordersca extends CheckAdmin
  8. {
  9. public function index()
  10. {
  11. $kw = $this->req->get('kw');
  12. $fdate = $this->req->get('fdate');
  13. $tdate = $this->req->get('tdate');
  14. $fdate = isset($_GET['fdate']) ? $fdate : date('Y-m-d');
  15. $tdate = isset($_GET['tdate']) ? $tdate : date('Y-m-d');
  16. $superid = $this->req->get('superid');
  17. $sort = $this->req->get('sort');
  18. $by = $this->req->get('by');
  19. $accid = $this->req->get('accid');
  20. $orderby = 'channelid desc';
  21. if ($by) {
  22. $orderby = $sort ? $by . ' desc' : $by . ' asc';
  23. }
  24. $cons = 'channelid<>?';
  25. $consOR = '';
  26. $consArr = array(0);
  27. if ($superid) {
  28. $cons .= $cons ? ' and ' : '';
  29. $cons .= 'agentid=?';
  30. $consArr[] = $superid;
  31. }
  32. if ($kw) {
  33. $user = $this->model()->select('id')->from('users')->where(array('fields' => 'username = ?', 'values' => array($kw)))->fetchRow();
  34. if ($user) {
  35. $consOR .= $consOR ? ' or ' : '';
  36. $consOR .= 'userid=?';
  37. $consArr[] = $user['id'];
  38. }
  39. }
  40. if ($kw) {
  41. $consOR .= $consOR ? ' or ' : '';
  42. $consOR .= 'userid = ?';
  43. $consArr[] = $kw;
  44. }
  45. if ($consOR) {
  46. $cons .= $cons ? ' and ' : '';
  47. $cons .= '(' . $consOR . ')';
  48. }
  49. if ($fdate) {
  50. $cons .= $cons ? ' and ' : '';
  51. $cons .= 'addtime>=?';
  52. $consArr[] = strtotime($fdate);
  53. }
  54. if ($tdate) {
  55. $cons .= $cons ? ' and ' : '';
  56. $cons .= 'addtime<=?';
  57. $consArr[] = strtotime($tdate . ' 23:59:59');
  58. }
  59. if ($accid) {
  60. $cons .= $cons ? ' and ' : '';
  61. $cons .= 'channelid=?';
  62. $consArr[] = $accid;
  63. }
  64. $page = $this->req->get('p');
  65. $page = $page ? $page : 1;
  66. $pagesize = 20;
  67. $data = $this->model()->select('channelid')->from('orders')->groupby('channelid')->where(array('fields' => $cons, 'values' => $consArr))->fetchAll();
  68. $totalsize = count($data);
  69. $lists = $total_count = array();
  70. if ($totalsize) {
  71. $totalpage = ceil($totalsize / $pagesize);
  72. $page = $page > $totalpage ? $totalpage : $page;
  73. $offset = ($page - 1) * $pagesize;
  74. $lists = $this->model()->select('channelid,sum(total_fee) as total_fee,count(userid) as total_orders,sum(realmoney*uprice) as total_income,sum((wprice-IF(gprice>0,gprice,uprice))*realmoney) as pt_income')->from('orders')->offset($offset)->limit($pagesize)->groupby('channelid')->orderby($orderby)->where(array('fields' => $cons, 'values' => $consArr))->fetchAll();
  75. $total_count = $this->model()->select('channelid,sum(total_fee) as total_fee,count(userid) as total_orders,sum(realmoney*uprice) as total_income,sum((wprice-IF(gprice>0,gprice,uprice))*realmoney) as pt_income')->from('orders')->groupby('channelid')->orderby($orderby)->where(array('fields' => $cons, 'values' => $consArr))->fetchAll();
  76. }
  77. $pagelist = $this->page->put(array('page' => $page, 'pagesize' => $pagesize, 'totalsize' => $totalsize, 'url' => '?kw=' . $kw . '&accid=' . $accid . '&sort=' . $sort . '&by=' . $by . '&fdate=' . $fdate . '&tdate=' . $tdate . '&p='));
  78. $acc = $this->model()->select()->from('acc')->fetchAll();
  79. $data = array('title' => '通道分析', 'lists' => $lists, 'total_count' => $total_count, 'pagelist' => $pagelist, 'search' => array('kw' => $kw, 'fdate' => $fdate, 'tdate' => $tdate, 'accid' => $accid), 'by' => $by, 'sort' => $sort, 'acc' => $acc);
  80. $this->put('ordersca.php', $data);
  81. }
  82. }