UserRefundAction.class.php 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265
  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 UserRefundAction extends CommonAction{
  10. /**
  11. * 提现审核记录
  12. */
  13. public function index()
  14. {
  15. //列表过滤器,生成查询Map对象
  16. $map = $this->_search ();
  17. $map['_string'] = 'is_pay = 0 and withdrawals_type <> 2 ';
  18. //公会无抽成模式下显示ljz
  19. $m_config = load_auto_cache('m_config');
  20. if($m_config['society_pattern'] == 2){
  21. $map['_string'] = 'is_pay = 0';
  22. }
  23. //追加默认参数
  24. if($this->get("default_map"))
  25. $map = array_merge($map,$this->get("default_map"));
  26. if(strim($_REQUEST['nick_name'])!=''){//name
  27. $user=M("User")->where("nick_name like '%".strim($_REQUEST['nick_name'])."%' ")->findAll();
  28. $user_arr_id = array();
  29. foreach($user as $k=>$v){
  30. $user_arr_id[$k] =intval($v['id']);
  31. }
  32. //$user_str_id = implode(',',$user_arr_id);
  33. $map['user_id'] = array('in',$user_arr_id);
  34. }
  35. if(intval($_REQUEST['user_id'])>0)
  36. {
  37. $map['user_id'] = intval($_REQUEST['user_id']);
  38. }
  39. if (method_exists ( $this, '_filter' )) {
  40. $this->_filter ( $map );
  41. }
  42. $name=$this->getActionName();
  43. $model = D ($name);
  44. if (! empty ( $model )) {
  45. $this->_list ( $model, $map );
  46. }
  47. $this->display ();
  48. return;
  49. }
  50. public function refund_allow(){
  51. $id=intval($_REQUEST['id']);
  52. $status=intval($_REQUEST['status']);
  53. $refund_data=M("UserRefund")->getById($id);
  54. $info=array();
  55. if($status){
  56. $info['do']='允许';
  57. }else{
  58. $info['do']='不允许';
  59. }
  60. $this->assign("info",$info);
  61. $this->assign("refund_data",$refund_data);
  62. $this->assign("status",$status);
  63. $this->display ();
  64. }
  65. public function refund_go_allow(){
  66. $id=intval($_REQUEST['id']);
  67. $status=intval($_REQUEST['status']);
  68. $refund_data = M("UserRefund")->getById($id);
  69. $user_id = $refund_data['user_id'];
  70. if($refund_data)
  71. {
  72. // if($refund_data['is_pay']==1)
  73. // {
  74. // $this->error("已经允许提现");
  75. // }
  76. $reply = strim($_REQUEST['reply']);
  77. $m_config = load_auto_cache("m_config");//初始化手机端配置
  78. $ticket_name = $m_config['ticket_name']!=''?$m_config['ticket_name']:'印票';
  79. //管理员的SESSION
  80. $adm_session = es_session::get(md5(conf("AUTH_KEY")));
  81. $adm_id = intval($adm_session['adm_id']);
  82. if($status==1){
  83. //$refund_user = M("User")->where("id=".$refund_data['user_id']." and is_effect = 1")->find();
  84. /*fanwe_require(APP_ROOT_PATH.'mapi/lib/redis/BaseRedisService.php');
  85. fanwe_require(APP_ROOT_PATH.'mapi/lib/redis/UserRedisService.php');
  86. $user_redis = new UserRedisService();
  87. $refund_user = $user_redis->getRow_db($user_id,array('ticket','diamonds','refund_ticket'));*/
  88. //修改读取本地mysql 20170118
  89. $refund_user = $GLOBALS['db']->getRow("select ticket,diamonds,refund_ticket from ".DB_PREFIX."user where id=".$user_id);
  90. if(intval($refund_user['ticket'])-intval($refund_user['refund_ticket'])<intval($refund_data['ticket']))
  91. {
  92. $refund_data['pay_log'] = $m_config['ticket_name']."不足,不能提现";
  93. $refund_data['is_pay'] = 4;
  94. M("UserRefund")->save($refund_data);
  95. $info=$m_config['ticket_name']."不足,不能提现";
  96. }else{
  97. //冻结用户提现印票
  98. $sql = "update ".DB_PREFIX."user set refund_ticket=refund_ticket+".$refund_data['ticket']." where ticket >= refund_ticket + ".$refund_data['ticket']." and id=".$refund_data['user_id'];
  99. $GLOBALS['db']->query($sql);
  100. if($GLOBALS['db']->affected_rows()){
  101. user_deal_to_reids(array($user_id));
  102. $refund_data['is_pay'] = 1;
  103. $refund_data['pay_log']="已审核";
  104. $info="允许操作成功";
  105. //写入用户日志
  106. $data = array();
  107. $data['ticket'] = intval($refund_data['ticket']);
  108. $data['log_admin_id'] = intval($adm_id);
  109. $param['type'] = 1;//类型 0表示充值 1表示提现 2赠送道具 3 兑换印票
  110. $log_msg ='冻结提现'.$data['ticket'].$m_config['ticket_name'].'成功';
  111. account_log_com($data,$refund_data['user_id'],$log_msg,$param);
  112. save_log($user_id.$log_msg,1);
  113. }else{
  114. $refund_data['pay_log']="提现冻结失败";
  115. }
  116. }
  117. }else{
  118. $refund_data['is_pay'] = 2;
  119. $refund_data['pay_log']="--";
  120. $refund_data['partner_trade_no']="--";
  121. $info="拒绝提现操作成功";
  122. //写入用户日志
  123. $data = array();
  124. $data['ticket'] = intval($refund_data['ticket']);
  125. $data['log_admin_id'] = intval($adm_id);
  126. $param['type'] = 1;//类型 0表示充值 1表示提现 2赠送道具 3 兑换印票
  127. $log_msg ='提现'.$data['ticket'].$m_config['ticket_name'].',被拒绝';
  128. account_log_com($data,$refund_data['user_id'],$log_msg,$param);
  129. save_log($user_id.$log_msg,0);
  130. }
  131. $refund_data['reply']=$reply;
  132. M("UserRefund")->save($refund_data);
  133. $GLOBALS['msg']->manage_msg('MSG_MONEY_CARRY_RESULT',$refund_data['user_id'],$refund_data);
  134. $this->success($info);
  135. }else{
  136. $this->error("没有提现数据");
  137. }
  138. }
  139. public function delete() {
  140. //彻底删除指定记录
  141. $ajax = intval($_REQUEST['ajax']);
  142. $id = $_REQUEST ['id'];
  143. if (isset ( $id )) {
  144. $condition = array ('id' => array ('in', explode ( ',', $id ) ) );
  145. $rel_data = M(MODULE_NAME)->where($condition)->findAll();
  146. $list = M(MODULE_NAME)->where ( $condition )->delete();
  147. foreach($rel_data as $data)
  148. {
  149. $info[] = "[id:".$data['id'].",ticket:".$data['ticket']."]";
  150. }
  151. if($info) $info = implode(",",$info);
  152. if ($list!==false) {
  153. save_log($info."成功删除",1);
  154. $this->success ("成功删除",$ajax);
  155. } else {
  156. save_log($info."删除出错",0);
  157. $this->error ("删除出错",$ajax);
  158. }
  159. } else {
  160. $this->error (l("INVALID_OPERATION"),$ajax);
  161. }
  162. }
  163. public function refund_check() {
  164. $user_id=intval($_REQUEST['user_id']);
  165. $sql = "select u.id, u.nick_name, b.`max_ticket` , u.ticket as 'actual_ticket', (u.ticket - b.`max_ticket`) as 'differ', u.refund_ticket, u.ticket - u.refund_ticket as 'surplus_ticket' from (select to_user_id, sum(total_ticket) as 'max_ticket' from (select to_user_id,sum(total_ticket) as total_ticket from ".DB_PREFIX."video_prop group by to_user_id";
  166. $table = DB_PREFIX . 'live_pay_log';
  167. $sql .= $this->refund_check_tablename_exist($table);
  168. $table = DB_PREFIX . 'live_pay_log_history';
  169. $sql .= $this->refund_check_tablename_exist($table);
  170. //家族、分享
  171. $table = DB_PREFIX . 'user_log';
  172. $sql .= $this->refund_check_tablename_exist_user_log($table);
  173. //分销
  174. $table = DB_PREFIX . 'distribution_log';
  175. $sql .= $this->refund_check_tablename_exist_distribution_log($table);
  176. $i = 0;
  177. do{
  178. $lastday=date('Ym',strtotime(date('Ym',NOW_TIME)." -".$i." month"));
  179. $sql1 = $this->refund_check_tablename_exist1($lastday);
  180. if($sql1!=''){
  181. $sql .= $sql1;
  182. }
  183. $i++;
  184. }while($sql1!=''&&$i<12);
  185. $sql .= " ) as a where a.to_user_id group by to_user_id ) b LEFT JOIN ".DB_PREFIX."user u on u.id = b.to_user_id where u.id=".$user_id." order by (u.ticket - b.`max_ticket`) desc";
  186. $list = $GLOBALS['db']->getAll($sql);
  187. foreach ($list as $k => $v) {
  188. $list[$k]['nick_name'] = emoji_decode($list[$k]['nick_name']);
  189. }
  190. $this->assign("list",$list);
  191. $this->display ();
  192. }
  193. public function refund_check_tablename_exist_distribution_log($table){
  194. $res = $GLOBALS['db']->getRow("SHOW TABLES LIKE'$table'");
  195. $sql = '';
  196. if($res){
  197. $sql = " UNION ALL select to_user_id,sum(ticket) as total_ticket from ".$table." group by to_user_id";
  198. }
  199. return $sql;
  200. }
  201. public function refund_check_tablename_exist_user_log($table){
  202. //区分公会模式显示ljz
  203. $m_config = load_auto_cache('m_config');
  204. if($m_config['society_pattern'] == 1){
  205. $type = 8;
  206. }elseif($m_config['society_pattern'] == 2){
  207. $type = 10;
  208. }else{
  209. $type = 0;
  210. }
  211. $res = $GLOBALS['db']->getRow("SHOW TABLES LIKE'$table'");
  212. $sql = '';
  213. if($res){
  214. $sql = " UNION ALL select user_id as to_user_id,sum(ticket) as total_ticket from ".$table." where type=$type and (log_info like '%获取公会成员%' or log_info like '%产生公会收益%') group by to_user_id";
  215. }
  216. return $sql;
  217. }
  218. public function refund_check_tablename_exist($table) {
  219. $res = $GLOBALS['db']->getRow("SHOW TABLES LIKE'$table'");
  220. $sql = '';
  221. if($res){
  222. $sql = " UNION ALL select to_user_id, sum(total_ticket) from ".$table." group by to_user_id";
  223. }
  224. return $sql;
  225. }
  226. public function refund_check_tablename_exist1($dayname='') {
  227. if($dayname==''){
  228. $dayname = date('Ym',NOW_TIME);
  229. }
  230. $table = DB_PREFIX . 'video_prop_' . $dayname;
  231. if($table!=''){
  232. $res = $GLOBALS['db']->getRow("SHOW TABLES LIKE'$table'");
  233. }else{
  234. $res = 0 ;
  235. }
  236. $sql = '';
  237. if($res){
  238. $sql = " UNION ALL select to_user_id, sum(total_ticket) from ".$table." where is_red_envelope=0 group by to_user_id";
  239. }
  240. return $sql;
  241. }
  242. }
  243. ?>