BxqUserConfirmRefundAction.class.php 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325
  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 UserConfirmRefundAction extends CommonAction{
  10. public function index()
  11. {
  12. //列表过滤器,生成查询Map对象
  13. $map = $this->_search ();
  14. $condition['is_pay'] = 1;
  15. //追加默认参数
  16. if($this->get("default_map"))
  17. $map = array_merge($map,$this->get("default_map"));
  18. $map = array_merge($map,$condition);
  19. if (method_exists ( $this, '_filter' )) {
  20. $this->_filter ( $map );
  21. }
  22. $model = D ('UserRefund');//print_r($map);exit();
  23. if (! empty ( $model )) {
  24. $this->_list ( $model, $map );
  25. }
  26. $this->display ();
  27. return;
  28. }
  29. /**
  30. * 提现确认记录
  31. */
  32. public function confirm_list(){
  33. //列表过滤器,生成查询Map对象
  34. $map = $this->_search ('UserRefund');
  35. $map['_string'] = 'is_pay = 1 or is_pay = 3 ';
  36. //追加默认参数
  37. if($this->get("default_map"))
  38. $map = array_merge($map,$this->get("default_map"));
  39. if (method_exists ( $this, '_filter' )) {
  40. $this->_filter ( $map );
  41. }
  42. //$name=$this->getActionName();
  43. $model = M ('UserRefund');
  44. if (! empty ( $model )) {
  45. $this->_list ( $model, $map );
  46. }
  47. $this->display ();
  48. return;
  49. }
  50. /**
  51. * 确认提现
  52. */
  53. public function refund_confirm()
  54. {
  55. $id = intval($_REQUEST['id']);
  56. $refund_data = M("UserRefund")->getById($id);
  57. if (intval($refund_data['withdrawals_type']) == 1){
  58. $alipay_info = M("User")->where("id = ".$refund_data['user_id'])->field('alipay_name,alipay_account')->select();
  59. $this->assign("alipay_info",$alipay_info);
  60. }
  61. $this->assign("refund_data",$refund_data);
  62. $this->display();
  63. }
  64. /**
  65. * 批量确认提现
  66. */
  67. public function batch_confirm(){
  68. $id = $_REQUEST['id'];
  69. $implode_id = implode(',',(explode(',',$id)));
  70. $refund_data = $GLOBALS['db']->getAll("select * from ".DB_PREFIX."user_refund where id in($implode_id)");
  71. $this->assign("refund_data",$refund_data);
  72. $this->assign("implode_id",$implode_id);
  73. $this->display();
  74. }
  75. public function confirm_test($refund_data,$id,$ticket,$adm_id,$m_config,$user_id)
  76. {
  77. for ($k = 0; $k < count($refund_data); $k++) {
  78. if (wx_withdraw_cash($id[$k])) {
  79. //写入用户日志
  80. $data = array();
  81. $data['ticket'] = intval($ticket[$k]);
  82. $data['log_admin_id'] = intval($adm_id);
  83. $param['type'] = 1;//类型 0表示充值 1表示提现 2赠送道具 3 兑换印票
  84. $ticket_name = $m_config['ticket_name'] != '' ? $m_config['ticket_name'] : '印票';
  85. $log_msg = '提现' . $ticket[$k] . $m_config['ticket_name'] . '成功';
  86. account_log_com($data, $user_id[$k], $log_msg, $param);
  87. $info = $user_id[$k] . $log_msg;
  88. save_log($info, 1);
  89. }
  90. }
  91. }
  92. /**
  93. * 确认提现执行
  94. */
  95. public function confirm()
  96. {
  97. $re_id = $_REQUEST['id'];
  98. $refund_data = $GLOBALS['db']->getAll("select * from " . DB_PREFIX . "user_refund where id in($re_id)");
  99. foreach ($refund_data as $k => $v) {
  100. $user_id[$k] = $refund_data[$k]['user_id'];
  101. $withdrawals_type[$k] = $refund_data[$k]['withdrawals_type'];
  102. $is_pay[$k] = $refund_data[$k]['is_pay'];
  103. $id[$k] = $refund_data[$k]['id'];
  104. $ticket[$k]=$refund_data[$k]['ticket'];
  105. }
  106. for ($i = 0; $i < count($refund_data); $i++) {
  107. if (in_array('3',$is_pay)) {
  108. $this->error("存在已提现的数据,请重新勾选");
  109. }elseif(in_array('0',$is_pay)){
  110. $this->error("存在未审核的数据,请重新勾选");
  111. }elseif(in_array('4',$is_pay)) {
  112. $this->error("存在审核失败的数据,请重新勾选");
  113. } elseif(in_array('2',$is_pay)){
  114. $this->error("存在未允许的数据,请重新勾选");
  115. }elseif ($refund_data[$i] && $is_pay[$i] == 1) {
  116. $m_config = load_auto_cache("m_config");//初始化手机端配置
  117. $adm_session = es_session::get(md5(conf("AUTH_KEY")));
  118. $adm_id = intval($adm_session['adm_id']);
  119. if ($withdrawals_type[$i] == 0) {
  120. define('OPEN_TEST_WX', 0);//开启微信调试 只用于微信提现调试使用
  121. $confirm_test=$this->confirm_test($refund_data,$id,$ticket,$adm_id,$m_config,$user_id);
  122. if($confirm_test) {
  123. $this->success("提现成功!");
  124. } else {
  125. for ($k = 0; $k < count($refund_data); $k++) {
  126. //付款失败解冻用户提现印票
  127. $sql = "update " . DB_PREFIX . "user set refund_ticket=refund_ticket-" . $ticket[$k]. " where id=" . $user_id[$k];
  128. $GLOBALS['db']->query($sql);
  129. if ($GLOBALS['db']->affected_rows()) {
  130. user_deal_to_reids(array($user_id[$k]));
  131. $info = M("UserRefund")->getById($id[$k]);
  132. $info['ticket']=$ticket[$k];
  133. $info['user_id']=$user_id[$k];
  134. $info['is_pay'] = 4;
  135. M("UserRefund")->save($info);
  136. //写入用户日志
  137. $data = array();
  138. $data['ticket'] = intval($ticket[$k]);
  139. $data['log_admin_id'] = intval($adm_id);
  140. $param['type'] = 1;//类型 0表示充值 1表示提现 2赠送道具 3 兑换印票
  141. $ticket_name = $m_config['ticket_name'] != '' ? $m_config['ticket_name'] : '印票';
  142. $log_msg = '提现失败,解冻提现' . $data['ticket'] . $m_config['ticket_name'];
  143. save_log($user_id[$k] . $log_msg, 0);
  144. account_log_com($data, $user_id[$k], $log_msg, $param);
  145. }
  146. }
  147. //写入日志
  148. $this->success("提现失败,请重试");
  149. }
  150. } elseif ($withdrawals_type[$i] == 1) {
  151. //支付宝提现
  152. //支付成功
  153. if (intval($_REQUEST['status']) == 1) {
  154. for ($k = 0; $k < count($refund_data); $k++) {
  155. $GLOBALS['db']->query("update " . DB_PREFIX . "user_refund set pay_log='已付款',is_pay = 3,pay_time = " . get_gmtime() . " where id = " . $id[$k]);
  156. $data = array();
  157. $data['ticket'] = intval($ticket[$k]);
  158. $data['log_admin_id'] = intval($adm_id);
  159. $param['type'] = 1;//类型 0表示充值 1表示提现 2赠送道具 3 兑换印票
  160. $ticket_name = $m_config['ticket_name'] != '' ? $m_config['ticket_name'] : '印票';
  161. $log_msg = '提现' . $data['ticket'] . $m_config['ticket_name'] . '成功';
  162. account_log_com($data, $user_id[$k], $log_msg, $param);
  163. $info = $user_id[$i] . $log_msg;
  164. save_log($info, 1);
  165. }
  166. $this->success("提现成功!");
  167. } else {
  168. for ($k = 0; $k < count($refund_data); $k++) {
  169. //付款失败解冻用户提现印票
  170. $sql = "update " . DB_PREFIX . "user set refund_ticket=refund_ticket-" . $ticket[$k] . " where id=" . $user_id[$k];
  171. $GLOBALS['db']->query($sql);
  172. if ($GLOBALS['db']->affected_rows()) {
  173. user_deal_to_reids(array($user_id[$k]));
  174. $info = M("UserRefund")->getById($id[$k]);
  175. $info['ticket']=$ticket[$k];
  176. $info['user_id']=$user_id[$k];
  177. $info['is_pay'] = 4;
  178. M("UserRefund")->save($info);
  179. //写入用户日志
  180. $data = array();
  181. $data['ticket'] = intval($ticket[$k]);
  182. $data['log_admin_id'] = intval($adm_id);
  183. $param['type'] = 1;//类型 0表示充值 1表示提现 2赠送道具 3 兑换印票
  184. $ticket_name = $m_config['ticket_name'] != '' ? $m_config['ticket_name'] : '印票';
  185. $log_msg = '提现失败,解冻提现' . $data['ticket'] . $m_config['ticket_name'];
  186. save_log($user_id[$k] . $log_msg, 0);
  187. account_log_com($data, $user_id[$k], $log_msg, $param);
  188. }
  189. }
  190. //写入日志
  191. $this->success("提现失败,请重试");
  192. }
  193. } elseif ($withdrawals_type[$i] == 2) {//公会提现
  194. for ($k = 0; $k < count($refund_data); $k++) {
  195. $GLOBALS['db']->query("update " . DB_PREFIX . "user_refund set pay_log='已付款',is_pay = 3,pay_time = " . get_gmtime() . " where id = " . $id[$k]);
  196. $data = array();
  197. $data['ticket'] = intval($ticket[$k]);
  198. $data['log_admin_id'] = intval($adm_id);
  199. $param['type'] = 1;//类型 0表示充值 1表示提现 2赠送道具 3 兑换印票
  200. $ticket_name = $m_config['ticket_name'] != '' ? $m_config['ticket_name'] : '印票';
  201. $log_msg = '提现' . $ticket[$k] . $m_config['ticket_name'] . '成功';
  202. account_log_com($data, $user_id[$k], $log_msg, $param);
  203. $info = $user_id[$k] . $log_msg;
  204. save_log($info, 1);
  205. }
  206. $this->success("提现成功!");
  207. }
  208. //}
  209. } else {
  210. $this->error("没有提现数据");
  211. }
  212. }
  213. }
  214. /**
  215. * 彻底删除
  216. */
  217. public function delete() {
  218. //彻底删除指定记录
  219. $ajax = intval($_REQUEST['ajax']);
  220. $id = $_REQUEST ['id'];
  221. if (isset ( $id )) {
  222. $condition = array ('id' => array ('in', explode ( ',', $id ) ) );
  223. $rel_data = M("UserRefund")->where($condition)->findAll();
  224. $list = M("UserRefund")->where ( $condition )->delete();
  225. foreach($rel_data as $data)
  226. {
  227. $info[] = "[id:".$data['id'].",money:".$data['money']."]";
  228. }
  229. if($info) $info = implode(",",$info);
  230. if ($list!==false) {
  231. save_log($info."成功删除",1);
  232. $this->success ("成功删除",$ajax);
  233. } else {
  234. save_log($info."删除出错",0);
  235. $this->error ("删除出错",$ajax);
  236. }
  237. } else {
  238. $this->error (l("INVALID_OPERATION"),$ajax);
  239. }
  240. }
  241. /**
  242. * 导出电子表
  243. */
  244. public function export_csv($page = 1)
  245. {
  246. $pagesize = 10;
  247. set_time_limit(0);
  248. $limit = (($page - 1)*intval($pagesize)).",".(intval($pagesize));
  249. $where = " 1=1 ";
  250. //定义条件
  251. if(trim($_REQUEST['user_id'])!='')
  252. {
  253. $where.= " and ur.user_id = ".intval($_REQUEST['user_id']);
  254. }
  255. if(trim($_REQUEST['is_pay'])!='')
  256. {
  257. $where.= " and ur.is_pay = ".intval($_REQUEST['is_pay']);
  258. }
  259. $sql ="select u.user_name as user_name,u.id as user_id,u.email as email,u.ex_real_name as ex_real_name,u.ex_account_bank as ex_account_bank,u.ex_account_info as ex_account_info,u.ex_contact as ex_contact,u.mobile as mobile, ur.money as money,ur.user_bank_id from ".DB_PREFIX."user as u LEFT JOIN ".DB_PREFIX."user_refund as ur on ur.user_id = u.id where ".$where." limit ".$limit;
  260. $list=$GLOBALS['db']->getAll($sql);
  261. //var_dump($_REQUEST);exit;
  262. if($list)
  263. {
  264. register_shutdown_function(array(&$this, 'export_csv'), $page+1);
  265. $refund_value = array( 'user_name'=>'""', 'email'=>'""', 'bank_info'=>'""','mobile'=>'""','money'=>'""');
  266. if($page == 1)
  267. {
  268. $content = iconv("utf-8","gbk","会员名,邮箱,银行账户,手机,提现金额");
  269. $content = $content . "\n";
  270. }
  271. foreach($list as $k=>$v)
  272. {
  273. $refund_value['user_name'] = '"' . iconv('utf-8','gbk',$list[$i]['user_name']) . '"';
  274. $refundr_value['email'] = '"' . iconv('utf-8','gbk',$list[$i]['email']) . '"';
  275. // $refund_value['ex_real_name'] = '"' . iconv('utf-8','gbk',$list[$i]['ex_real_name']) . '"';
  276. // $refund_value['ex_account_bank'] = '"' . iconv('utf-8','gbk',$list[$i]['ex_account_bank']) . '"';
  277. // $refund_value['ex_account_info'] = '"' . iconv('utf-8','gbk',$list[$i]['ex_account_info']) . '"';
  278. // $refund_value['ex_contact'] = '"' . iconv('utf-8','gbk',$list[$i]['ex_contact']) . '"';
  279. $refund_value['bank_info'] = '"' . iconv('utf-8','gbk',get_carray_info($list[$i]['user_bank_id'],$list[$i]['user_id'])) . '"';
  280. $refund_value['mobile'] = '"' . iconv('utf-8','gbk',$list[$i]['mobile']) . '"';
  281. $refund_value['money'] = '"' . iconv('utf-8','gbk',$list[$i]['money']) . '"';
  282. $content .= implode(",", $refund_value) . "\n";
  283. }
  284. //
  285. header("Content-Disposition: attachment; filename=refund_list.csv");
  286. echo $content ;
  287. }
  288. else
  289. {
  290. if($page==1)
  291. $this->error(L("NO_RESULT"));
  292. }
  293. }
  294. }
  295. ?>