userpay.php 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. <?php
  2. namespace WY\app\controller\derpay;
  3. use WY\app\libs\Controller;
  4. use WY\app\model\Paybank;
  5. if (!defined('WY_ROOT')) {
  6. exit;
  7. }
  8. class userpay extends CheckAdmin
  9. {
  10. public function index()
  11. {
  12. $kw = $this->req->get('kw');
  13. $fdate = $this->req->get('fdate');
  14. $tdate = $this->req->get('tdate');
  15. $is_state = $this->req->get('is_state');
  16. $is_state = isset($_GET['is_state']) ? $is_state : -1;
  17. $cons = 'is_agent=?';
  18. $consOR = '';
  19. $consArr = array(0);
  20. if ($kw) {
  21. $users = $this->model()->select('id')->from('users')->where(array('fields' => 'username like ?', 'values' => array('%' . $kw . '%')))->fetchRow();
  22. if ($users) {
  23. $consOR .= $consOR ? ' or ' : '';
  24. $consOR .= 'userid = ?';
  25. $consArr[] = $users['id'];
  26. }
  27. }
  28. if ($is_state >= 0) {
  29. $cons .= $cons ? ' and ' : '';
  30. $cons .= 'is_state=?';
  31. $consArr[] = $is_state;
  32. }
  33. if ($kw) {
  34. $consOR .= $consOR ? ' or ' : '';
  35. $consOR .= 'userid = ?';
  36. $consArr[] = $kw;
  37. }
  38. if ($kw) {
  39. $consOR .= $consOR ? ' or ' : '';
  40. $consOR .= 'sn = ?';
  41. $consArr[] = $kw;
  42. }
  43. if ($fdate) {
  44. $cons .= $cons ? ' and ' : '';
  45. $cons .= 'addtime>=?';
  46. $consArr[] = strtotime($fdate);
  47. }
  48. if ($tdate) {
  49. $cons .= $cons ? ' and ' : '';
  50. $cons .= 'addtime<=?';
  51. $consArr[] = strtotime($tdate . ' 23:59:59');
  52. }
  53. if ($consOR) {
  54. $cons .= $cons ? ' and ' : '';
  55. $cons .= '(' . $consOR . ')';
  56. }
  57. $orderby = 'id desc';
  58. $sort = $this->req->get('sort');
  59. $sort = isset($_GET['sort']) ? $sort : 0;
  60. $by = $this->req->get('by');
  61. if ($by) {
  62. $sort2 = $sort ? ' desc' : ' asc';
  63. $orderby = $by . $sort2;
  64. }
  65. $page = $this->req->get('p');
  66. $page = $page ? $page : 1;
  67. $pagesize = 15;
  68. $totalsize = $this->model()->select()->from('payments')->where(array('fields' => $cons, 'values' => $consArr))->count();
  69. $lists = 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()->from('payments')->offset($offset)->limit($pagesize)->orderby($orderby)->where(array('fields' => $cons, 'values' => $consArr))->fetchAll();
  75. }
  76. $pagelist = $this->page->put(array('page' => $page, 'pagesize' => $pagesize, 'totalsize' => $totalsize, 'url' => '?is_state=' . $is_state . '&kw=' . $kw . '&fdate=' . $fdate . '&tdate=' . $tdate . '&sort=' . $sort . '&by=' . $by . '&p='));
  77. $data = array('title' => '付款记录', 'lists' => $lists, 'pagelist' => $pagelist, 'search' => array('kw' => $kw, 'fdate' => $fdate, 'tdate' => $fdate, 'is_state' => $is_state), 'sort' => $sort, 'by' => $by);
  78. $this->put('payments.php', $data);
  79. }
  80. public function pay()
  81. {
  82. $id = isset($this->action[3]) ? intval($this->action[3]) : 0;
  83. $data = $this->model()->select()->from('payments')->where(array('fields' => 'id=?', 'values' => array($id)))->fetchRow();
  84. $this->put('paymentsinfo.php', $data);
  85. }
  86. public function savepay()
  87. {
  88. $id = isset($this->action[3]) ? intval($this->action[3]) : 0;
  89. $data = isset($_POST) ? $_POST : false;
  90. if ($id && $data && $data['is_state'] == '1') {
  91. $payments = $this->model()->select()->from('payments')->where(array('fields' => 'id=?', 'values' => array($id)))->fetchRow();
  92. $resCode = '';
  93. if ($payments['retmsg']) {
  94. $ret = json_decode($payments['retmsg'], true);
  95. $resCode = $ret['resCode'];
  96. }
  97. if ($data['ptype'] == '1' && $resCode != '0000') {
  98. $cfo = $this->model()->select()->from('cfo')->where(array('fields' => 'id=?', 'values' => array($data['cfoid'])))->fetchRow();
  99. if ($cfo) {
  100. $money = number_format($data['money'] - $data['fee'], 2, '.', '');
  101. $cfo += array('sn' => 'b' . time() + mt_rand(1000, 9999), 'money' => $money);
  102. $paybank = new Paybank();
  103. $ret = $paybank->put($cfo);
  104. $this->model()->from('payments')->updateSet(array('retmsg' => json_encode($ret)))->where(array('fields' => 'id=?', 'values' => array($id)))->update();
  105. if ($ret['resCode'] != '0000') {
  106. $this->put('woodyapp.php', array('msg' => '代付接口返回:' . $ret['resContent'], 'url' => $this->dir . 'userpay'));
  107. exit;
  108. }
  109. }
  110. }
  111. }
  112. $data += array('lastime' => time());
  113. if ($this->model()->from('payments')->updateSet($data)->where(array('fields' => 'id=?', 'values' => array($id)))->update()) {
  114. $this->put('woodyapp.php', array('msg' => '账单信息已保存成功', 'url' => $this->dir . 'userpay'));
  115. }
  116. $this->put('woodyapp.php', array('msg' => '账单信息已保存失败', 'url' => $this->dir . 'userpay'));
  117. }
  118. public function upset()
  119. {
  120. $id = isset($this->action[3]) ? intval($this->action[3]) : 0;
  121. $this->model()->from('payments')->updateSet(array('is_state' => 1))->where(array('fields' => 'id=?', 'values' => array($id)))->update();
  122. $this->res->redirect($this->req->server('HTTP_REFERER'));
  123. }
  124. }