CashController.php 8.5 KB

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