CashController.php 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282
  1. <?php
  2. /**
  3. * 提现
  4. */
  5. namespace app\admin\controller;
  6. use cmf\controller\AdminBaseController;
  7. use think\facade\Db;
  8. class CashController extends AdminbaseController {
  9. protected function getStatus($k=''){
  10. $status=array(
  11. '0'=>'未处理',
  12. '1'=>'提现成功',
  13. '2'=>'拒绝提现',
  14. );
  15. if($k===''){
  16. return $status;
  17. }
  18. return isset($status[$k]) ? $status[$k]: '';
  19. }
  20. protected function getTypes($k=''){
  21. $type=array(
  22. '1'=>'支付宝',
  23. '2'=>'微信',
  24. '3'=>'银行卡',
  25. );
  26. if($k===''){
  27. return $type;
  28. }
  29. return isset($type[$k]) ? $type[$k]: '';
  30. }
  31. function index(){
  32. $data = $this->request->param();
  33. $map=[];
  34. $status=isset($data['status']) ? $data['status']: '';
  35. if($status!=''){
  36. $map[]=['status','=',$status];
  37. }
  38. $cash_type=isset($data['cash_type']) ? $data['cash_type']: '';
  39. if($cash_type!=''){
  40. $map[]=['cash_type','=',$cash_type];
  41. }
  42. $start_time=isset($data['start_time']) ? $data['start_time']: '';
  43. $end_time=isset($data['end_time']) ? $data['end_time']: '';
  44. if($start_time!=""){
  45. $map[]=['addtime','>=',strtotime($start_time)];
  46. }
  47. if($end_time!=""){
  48. $map[]=['addtime','<=',strtotime($end_time) + 60*60*24];
  49. }
  50. $uid=isset($data['uid']) ? $data['uid']: '';
  51. if($uid!=''){
  52. $map[]=['uid','=',$uid];
  53. }
  54. $keyword=isset($data['keyword']) ? $data['keyword']: '';
  55. if($keyword!=''){
  56. $map[]=['orderno|trade_no','like',"%".$keyword."%"];
  57. }
  58. /*var_dump($map);
  59. die;*/
  60. $lists = DB::name("user_cashrecord")
  61. ->where($map)
  62. ->order('id desc')
  63. ->paginate(20);
  64. $lists->each(function($v,$k){
  65. $v['userinfo']=getUserInfo($v['uid']);
  66. if($v['cash_type']==0){
  67. $v['cash_type_name']='普通提现';
  68. }else{
  69. $v['cash_type_name']='视频红包提现';
  70. }
  71. return $v;
  72. });
  73. $lists->appends($data);
  74. $page = $lists->render();
  75. $cashrecord_total = DB::name("user_cashrecord")->where($map)->sum("money");
  76. if($status==''){
  77. $success=$map;
  78. $success[]=['status','=',1];
  79. $fail=$map;
  80. $fail[]=['status','=',2];
  81. $wait=$map;
  82. $wait[]=['status','=',0];
  83. $cashrecord_success = DB::name("user_cashrecord")->where($success)->sum("money");
  84. $cashrecord_fail = DB::name("user_cashrecord")->where($fail)->sum("money");
  85. $cashrecord_wait = DB::name("user_cashrecord")->where($wait)->sum("money");
  86. $cash['success']=$cashrecord_success;
  87. $cash['fail']=$cashrecord_fail;
  88. $cash['wait']=$cashrecord_wait;
  89. $cash['type']=0;
  90. }
  91. $cash['total']=$cashrecord_total;
  92. $this->assign('cash', $cash);
  93. $this->assign('lists', $lists);
  94. $this->assign('type', $this->getTypes());
  95. $this->assign('status', $this->getStatus());
  96. $this->assign("page", $page);
  97. return $this->fetch();
  98. }
  99. function del(){
  100. $id = $this->request->param('id', 0, 'intval');
  101. if($id){
  102. $result=DB::name("user_cashrecord")->delete($id);
  103. if($result){
  104. $this->success('删除成功');
  105. }else{
  106. $this->error('删除失败');
  107. }
  108. }else{
  109. $this->error('数据传入失败!');
  110. }
  111. }
  112. function edit(){
  113. $id = $this->request->param('id', 0, 'intval');
  114. $data=Db::name('user_cashrecord')
  115. ->where("id={$id}")
  116. ->find();
  117. if(!$data){
  118. $this->error("信息错误");
  119. }
  120. $data['userinfo']=getUserInfo($data['uid']);
  121. $this->assign('type', $this->getTypes());
  122. $this->assign('status', $this->getStatus());
  123. $configpub=getConfigPub();
  124. $this->assign('name_coin',$configpub['name_coin']);
  125. $this->assign('cash', $data);
  126. return $this->fetch();
  127. }
  128. function edit_post(){
  129. if ($this->request->isPost()) {
  130. $data = $this->request->param();
  131. $status=$data['status'];
  132. $uid=$data['uid'];
  133. $votes=$data['votes'];
  134. $id=$data['id'];
  135. $cash_type=$data['cash_type'];
  136. if($status=='0'){
  137. $this->success("修改成功!");
  138. }
  139. $data['uptime']=time();
  140. $rs = DB::name('user_cashrecord')->update($data);
  141. if($rs===false){
  142. $this->error("修改失败!");
  143. }
  144. if($status=='2' && $cash_type==0){
  145. DB::name("user")->where(["id"=>$uid])->inc("votes",$votes)->update();
  146. }
  147. if($status=='2' && $cash_type==1){
  148. DB::name("user")->where(["id"=>$uid])->inc("red_votes",$votes)->update();
  149. }
  150. $this->success("修改成功!");
  151. }
  152. }
  153. function export(){
  154. $data = $this->request->param();
  155. $map=[];
  156. $status=isset($data['status']) ? $data['status']: '';
  157. if($status!=''){
  158. $map[]=['status','=',$status];
  159. }
  160. $cash_type=isset($data['cash_type']) ? $data['cash_type']: '';
  161. if($cash_type!=''){
  162. $map[]=['cash_type','=',$cash_type];
  163. }
  164. $start_time=isset($data['start_time']) ? $data['start_time']: '';
  165. $end_time=isset($data['end_time']) ? $data['end_time']: '';
  166. if($start_time!=""){
  167. $map[]=['addtime','>=',strtotime($start_time)];
  168. }
  169. if($end_time!=""){
  170. $map[]=['addtime','<=',strtotime($end_time) + 60*60*24];
  171. }
  172. $keyword=isset($data['keyword']) ? $data['keyword']: '';
  173. if($keyword!=''){
  174. $map[]=['uid|orderno|trade_no','like',"%".$keyword."%"];
  175. }
  176. $xlsName = "提现";
  177. $xlsData=DB::name("user_cashrecord")
  178. ->where($map)
  179. ->order('id desc')
  180. ->select()
  181. ->toArray();
  182. foreach ($xlsData as $k => $v){
  183. $userinfo=getUserInfo($v['uid']);
  184. $xlsData[$k]['user_nickname']= $userinfo['user_nickname']."(".$v['uid'].")";
  185. $xlsData[$k]['addtime']=date("Y-m-d H:i:s",$v['addtime']);
  186. $xlsData[$k]['uptime']=date("Y-m-d H:i:s",$v['uptime']);
  187. $xlsData[$k]['status']=$this->getStatus($v['status']);
  188. if($v['type']==1){ //支付宝
  189. $xlsData[$k]['account']=$this->getTypes($v['type']).'|'.$v['name'].'|'.$v['account'];
  190. }else if($v['type']==2){ //微信
  191. $xlsData[$k]['account']=$this->getTypes($v['type']).'|'.$v['account'];
  192. }else{
  193. $xlsData[$k]['account']=$this->getTypes($v['type']).'|'.$v['name'].'|'.$v['account'].'|'.$v['account_bank'];
  194. }
  195. if($v['cash_type']==0){
  196. $xlsData[$k]['cash_type_name']='普通提现';
  197. }else{
  198. $xlsData[$k]['cash_type_name']='视频红包提现';
  199. }
  200. }
  201. $cellName = array('A','B','C','D','E','F','G','H','I','J');
  202. $xlsCell = array(
  203. array('id','序号'),
  204. array('user_nickname','主播名称'),
  205. array('votes','金币'),
  206. array('money','提现金额'),
  207. array('account','提现账号'),
  208. array('trade_no','第三方支付订单号'),
  209. array('status','状态'),
  210. array('addtime','提交时间'),
  211. array('uptime','处理时间'),
  212. array('cash_type_name','提现类型'),
  213. );
  214. exportExcel($xlsName,$xlsCell,$xlsData,$cellName);
  215. }
  216. }