RechargeNoticeAction.class.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | Fanwe 方维直播系统
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2011 http://www.fanwe.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Author: 云淡风轻(1956838968@qq.com)
  8. // +----------------------------------------------------------------------
  9. class RechargeNoticeAction extends CommonAction{
  10. public function com_search(){
  11. $map = array ();
  12. /*
  13. if (!isset($_REQUEST['end_time']) || $_REQUEST['end_time'] == '') {
  14. $_REQUEST['end_time'] = to_date(get_gmtime(), 'Y-m-d');
  15. }
  16. if (!isset($_REQUEST['start_time']) || $_REQUEST['start_time'] == '') {
  17. $_REQUEST['start_time'] = dec_date($_REQUEST['end_time'], 7);
  18. }
  19. $map['start_time'] = trim($_REQUEST['start_time']);
  20. $map['end_time'] = trim($_REQUEST['end_time']);
  21. $map['is_paid'] = 1;
  22. $this->assign("start_time",$map['start_time']);
  23. $this->assign("end_time",$map['end_time']);
  24. */
  25. $map['start_time'] = trim($_REQUEST['start_time']);
  26. $map['end_time'] = trim($_REQUEST['end_time']);
  27. if ($map['start_time'] == ''&&$map['end_time'] != ''){
  28. $this->error('开始时间 不能为空');
  29. exit;
  30. }
  31. if ($map['start_time'] != ''&&$map['end_time'] == ''){
  32. $this->error('结束时间 不能为空');
  33. exit;
  34. }
  35. if ($map['start_time'] != ''&&$map['end_time'] != '') {
  36. $d = explode('-',$map['start_time']);
  37. if (checkdate($d[1], $d[2], $d[0]) == false){
  38. $this->error("开始时间不是有效的时间格式:{$map['start_time']}(yyyy-mm-dd)");
  39. exit;
  40. }
  41. $d = explode('-',$map['end_time']);
  42. if (checkdate($d[1], $d[2], $d[0]) == false){
  43. $this->error("结束时间不是有效的时间格式:{$map['end_time']}(yyyy-mm-dd)");
  44. exit;
  45. }
  46. if (to_timespan($map['start_time']) > to_timespan($map['end_time'])){
  47. $this->error('开始时间不能大于结束时间:'.$map['start_time'].'至'.$map['end_time']);
  48. exit;
  49. }
  50. $q_date_diff = 31;
  51. $this->assign("q_date_diff",$q_date_diff);
  52. if ($q_date_diff > 0 && (abs(to_timespan($map['end_time']) - to_timespan($map['start_time'])) / 86400 + 1 > $q_date_diff)){
  53. $this->error("查询时间间隔不能大于 {$q_date_diff} 天");
  54. exit;
  55. }
  56. $map['start_time']=to_timespan($map['start_time']);
  57. $map['end_time']=to_timespan($map['end_time'])+86399;
  58. }else{
  59. $map = array ();
  60. }
  61. return $map;
  62. }
  63. /*public function index()
  64. {
  65. //列表过滤器,生成查询Map对象
  66. //$map = $this->_search ();
  67. $map = $this->com_search();
  68. if(trim($_REQUEST['notice_sn'])!='')
  69. {
  70. $condition['notice_sn'] = $_REQUEST['notice_sn'];
  71. }
  72. if(intval($_REQUEST['is_paid'])==0)
  73. {
  74. $condition['is_paid']=0;
  75. }elseif (intval($_REQUEST['is_paid'])==1){
  76. $condition['is_paid']=1;
  77. }
  78. $map = array_merge($map,$condition);
  79. if (method_exists ( $this, '_filter' )) {
  80. $this->_filter ( $map );
  81. }
  82. $model = D ('PaymentNotice');
  83. if (! empty ( $model )) {
  84. $this->_list ( $model, $map );
  85. }
  86. //print_r($condition);exit();
  87. $this->display ();
  88. return;
  89. }*/
  90. public function index()
  91. {
  92. $map = $this->com_search();
  93. //按会员名查询
  94. if(trim($_REQUEST['nick_name'])!='')
  95. {
  96. $user=M("User")->where("nick_name like '%".trim($_REQUEST['nick_name'])."%' ")->findAll();
  97. foreach($user as $k=>$v){
  98. $user_arr_id[$k] =intval($v['id']);
  99. }
  100. $user_str_id = implode(',',$user_arr_id);
  101. $condition['user_id'] = array('in',$user_str_id);
  102. }
  103. if(trim($_REQUEST['notice_sn'])!='')
  104. {
  105. $condition['notice_sn'] = array('like','%'.trim($_REQUEST['notice_sn']).'%');
  106. }
  107. if(intval($_REQUEST['user_id'])>0)
  108. {
  109. $condition['user_id'] = intval($_REQUEST['user_id']);
  110. }
  111. /*if($map['start_time'] != '' && $map['end_time'] && ( !isset($_REQUEST['is_paid']) || intval($_REQUEST['is_paid'])==-1 || intval($_REQUEST['is_paid'])==1 ) ){
  112. if(intval($_REQUEST['is_paid'])==1)
  113. $condition['pay_time']= array("between",array($map['start_time'],$map['end_time']));
  114. else
  115. $condition['create_time']= array("between",array($map['start_time'],$map['end_time']));
  116. }
  117. if(intval($_REQUEST['is_paid'])==0)
  118. {
  119. $condition['create_time']= array("between",array($map['start_time'],$map['end_time']));
  120. }*/
  121. if($map['start_time'] != '' && $map['end_time'] != ''){
  122. if(intval($_REQUEST['is_paid'])==1)
  123. $condition['pay_time']= array("between",array($map['start_time'],$map['end_time']));
  124. else
  125. $condition['create_time']= array("between",array($map['start_time'],$map['end_time']));
  126. unset($map['start_time']);
  127. unset($map['end_time']);
  128. }
  129. if($_REQUEST['is_paid']!=''&&intval($_REQUEST['is_paid'])==0)
  130. {
  131. $condition['is_paid']=0;
  132. }elseif (intval($_REQUEST['is_paid'])==1){
  133. $condition['is_paid']=1;
  134. }
  135. $m_config = load_auto_cache("m_config");//初始化手机端配置
  136. if((defined('OPEN_VIP')&&OPEN_VIP==1)&&intval($m_config['open_vip'])==1){
  137. if($_REQUEST['type']!='')
  138. {
  139. $condition['type'] = intval($_REQUEST['type']);
  140. }
  141. $this->assign ( 'open_vip', 1 );
  142. }
  143. $payment_id = M("Payment")->where("class_name = 'Otherpay' ")->getField("id");
  144. $condition['payment_id'] = array("neq",intval($payment_id));
  145. if(intval($_REQUEST['payment_id'])==0){
  146. unset($_REQUEST['payment_id']);
  147. }
  148. else{
  149. $condition['payment_id'] = array("eq",intval($_REQUEST['payment_id']));
  150. }
  151. if(intval($_REQUEST['is_paid'])==-1 || !isset($_REQUEST['is_paid']))
  152. unset($_REQUEST['is_paid']);
  153. $this->assign("payment_list",M("Payment")->findAll());
  154. $map = array_merge($map,$condition);
  155. if (method_exists ( $this, '_filter' )) {
  156. $this->_filter ( $map );
  157. }
  158. $model = D ('PaymentNotice');
  159. if (! empty ( $model )) {
  160. $this->_list ( $model, $map );
  161. }
  162. //print_r($map);exit();
  163. $this->display ();
  164. return;
  165. }
  166. public function delete() {
  167. //彻底删除指定记录
  168. $ajax = intval($_REQUEST['ajax']);
  169. $id = $_REQUEST ['id'];
  170. if (isset ( $id )) {
  171. $condition = array ('id' => array ('in', explode ( ',', $id ) ) );
  172. $rel_data = M(PaymentNotice)->where($condition)->findAll();
  173. $list = M(PaymentNotice)->where ( $condition )->delete();
  174. foreach($rel_data as $data)
  175. {
  176. $info[] = "[单号:".$data['notice_sn']."]";
  177. }
  178. if($info) $info = implode(",",$info);
  179. if ($list!==false) {
  180. save_log($info."成功删除",1);
  181. $this->success ("成功删除",$ajax);
  182. } else {
  183. save_log($info."删除出错",0);
  184. $this->error ("删除出错",$ajax);
  185. }
  186. } else {
  187. $this->error (l("INVALID_OPERATION"),$ajax);
  188. }
  189. }
  190. //导出电子表
  191. public function export_csv($page = 1)
  192. {
  193. $pagesize = 10;
  194. set_time_limit(0);
  195. $limit = (($page - 1)*intval($pagesize)).",".(intval($pagesize));
  196. //定义条件
  197. if(trim($_REQUEST['nick_name'])!='')
  198. {
  199. $where .= "u.nick_name like '%".trim($_REQUEST['nick_name'])."%' and ";
  200. }
  201. if(trim($_REQUEST['notice_sn'])!='')
  202. {
  203. $where .= "p.notice_sn like '%".intval($_REQUEST['notice_sn'])."%' and ";
  204. }
  205. if(trim($_REQUEST['payment_id'])!=''&& trim($_REQUEST['payment_id']!=0))
  206. {
  207. $where .= "p.payment_id =".intval($_REQUEST['payment_id'])." and ";
  208. }
  209. if(trim($_REQUEST['is_paid'])!=''&&trim($_REQUEST['is_paid'])!= -1)
  210. {
  211. $where .= "p.is_paid =".intval($_REQUEST['is_paid'])." and ";
  212. }
  213. $map['start_time']=to_timespan($_REQUEST['start_time'])+app_conf('TIME_ZONE')*3600;
  214. $map['end_time']=to_timespan($_REQUEST['end_time'])+86399+app_conf('TIME_ZONE')*3600;
  215. if($_REQUEST['start_time'] != '' && $_REQUEST['end_time'] != ''){
  216. $where .="p.create_time between '". $map['start_time']. "' and '". $map['end_time'] ."' and ";
  217. }
  218. $time ='1970-01-01 16:00:00';
  219. $sql ="select p.id as id,p.notice_sn as notice_sn ,p.recharge_name as recharge_name ,p.outer_notice_sn as outer_notice_sn ,u.nick_name as nick_name,t.name as name,FROM_UNIXTIME(p.create_time+8*3600,'%Y-%m-%d %H:%i:%S') as create_time,FROM_UNIXTIME(p.pay_time+8*3600,'%Y-%m-%d %H:%i:%S') as pay_time,
  220. p.money as money,p.is_paid as is_paid,p.payment_id as payment_id from fanwe_payment_notice as p LEFT JOIN fanwe_user as u on u.id = p.user_id LEFT JOIN fanwe_payment as t on t.id =p.payment_id where ".$where." 1=1 order by create_time desc limit ".$limit;
  221. $list=$GLOBALS['db']->getAll($sql);
  222. if($list)
  223. {
  224. register_shutdown_function(array(&$this, 'export_csv'), $page+1);
  225. $refund_value = array( 'id'=>'""', 'notice_sn'=>'""', 'recharge_name'=>'""','outer_notice_sn'=>'""','nick_name'=>'""','name'=>'""','create_time'=>'""','pay_time'=>'""','money'=>'""','is_paid'=>'""');
  226. if($page == 1)
  227. {
  228. $content = iconv("utf-8","gbk","充值编号,付款单号,项目名称,外部单号,主播昵称,支付方式,创建时间,支付时间,金额,是否支付");
  229. $content = $content . "\n";
  230. }
  231. foreach($list as $k=>$v)
  232. {
  233. $refund_value['id'] = '"' . iconv('utf-8','gbk',$list[$k]['id']) . '"';
  234. $refund_value['notice_sn']= $list[$k]['notice_sn']."\t";
  235. $refund_value['outer_notice_sn']= $list[$k]['outer_notice_sn']."\t";
  236. $refund_value['recharge_name'] = '"' . iconv('utf-8','gbk',$list[$k]['recharge_name']) . '"';
  237. $refund_value['nick_name'] = '"' . iconv('utf-8','gbk',$list[$k]['nick_name']) . '"';
  238. $refund_value['name'] = '"' . iconv('utf-8','gbk',$list[$k]['name']) . '"';
  239. $refund_value['create_time'] = '"' . iconv('utf-8','gbk',$list[$k]['create_time']) . '"';
  240. $refund_value['pay_time'] = '"' . iconv('utf-8','gbk',$list[$k]['pay_time']) . '"';
  241. $refund_value['pay_time'] = str_replace($time,'0',$list[$k]['pay_time']);
  242. $refund_value['money'] = '"' . iconv('utf-8','gbk',$list[$k]['money']) . '"';
  243. if($list[$k]['is_paid']==1){
  244. $refund_value['is_paid']=iconv('utf-8','gbk','是') . '';
  245. }else{
  246. $refund_value['is_paid']=iconv('utf-8','gbk','否') . '';
  247. }
  248. $content .= implode(",", $refund_value) . "\n";
  249. }
  250. //
  251. header("Content-Disposition: attachment; filename=refund_list.csv");
  252. echo $content ;
  253. }
  254. else
  255. {
  256. if($page==1)
  257. $this->error(L("NO_RESULT"));
  258. }
  259. }
  260. }
  261. ?>