BalanceController.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. <?php
  2. /**
  3. * 管理员手动充值余额记录
  4. */
  5. namespace app\admin\controller;
  6. use cmf\controller\AdminBaseController;
  7. use think\facade\Db;
  8. class BalanceController extends AdminbaseController {
  9. function index(){
  10. $data = $this->request->param();
  11. $map=[];
  12. $start_time=isset($data['start_time']) ? $data['start_time']: '';
  13. $end_time=isset($data['end_time']) ? $data['end_time']: '';
  14. if($start_time!=""){
  15. $map[]=['addtime','>=',strtotime($start_time)];
  16. }
  17. if($end_time!=""){
  18. $map[]=['addtime','<=',strtotime($end_time) + 60*60*24];
  19. }
  20. $uid=isset($data['uid']) ? $data['uid']: '';
  21. if($uid!=''){
  22. $map[]=['touid','=',$uid];
  23. }
  24. $lists = Db::name("balance_charge_admin")
  25. ->where($map)
  26. ->order("id desc")
  27. ->paginate(20);
  28. $lists->each(function($v,$k){
  29. $v['userinfo']=getUserInfo($v['touid']);
  30. $v['ip']=long2ip($v['ip']);
  31. return $v;
  32. });
  33. $lists->appends($data);
  34. $page = $lists->render();
  35. $this->assign('lists', $lists);
  36. $this->assign("page", $page);
  37. $balance = Db::name("balance_charge_admin")
  38. ->where($map)
  39. ->sum('balance');
  40. if(!$balance){
  41. $balance=0;
  42. }
  43. $this->assign('balance', $balance);
  44. return $this->fetch();
  45. }
  46. function add(){
  47. return $this->fetch();
  48. }
  49. function addPost(){
  50. if ($this->request->isPost()) {
  51. $data = $this->request->param();
  52. $touid=$data['touid'];
  53. if($touid==""){
  54. $this->error("请填写用户ID");
  55. }
  56. $uid=Db::name("user")->where(["id"=>$touid])->value("id");
  57. if(!$uid){
  58. $this->error("会员不存在,请更正");
  59. }
  60. $balance=$data['balance'];
  61. if($balance==""){
  62. $this->error("请填写充值金额");
  63. }
  64. if(!is_numeric($balance)){
  65. $this->error("充值金额必须为数字");
  66. }
  67. $balance=round($balance,2);
  68. $user_balance=Db::name("user")->where(["id"=>$touid])->value("balance");
  69. $total=$user_balance+$balance;
  70. if($total<0){
  71. $total=0;
  72. }
  73. $adminid=cmf_get_current_admin_id();
  74. $admininfo=Db::name("user")->where(["id"=>$adminid])->value("user_login");
  75. $data['admin']=$admininfo;
  76. $ip=get_client_ip(0,true);
  77. $data['ip']=ip2long($ip);
  78. $data['addtime']=time();
  79. $id = DB::name('balance_charge_admin')->insertGetId($data);
  80. if(!$id){
  81. $this->error("充值失败!");
  82. }
  83. $action="手动充值店铺余额ID:".$id;
  84. setAdminLog($action);
  85. Db::name("user")->where(["id"=>$touid])->update(['balance'=>$total]);
  86. $this->success("充值成功!");
  87. }
  88. }
  89. function export(){
  90. $data = $this->request->param();
  91. $map=[];
  92. $start_time=isset($data['start_time']) ? $data['start_time']: '';
  93. $end_time=isset($data['end_time']) ? $data['end_time']: '';
  94. if($start_time!=""){
  95. $map[]=['addtime','>=',strtotime($start_time)];
  96. }
  97. if($end_time!=""){
  98. $map[]=['addtime','<=',strtotime($end_time) + 60*60*24];
  99. }
  100. $status=isset($data['status']) ? $data['status']: '';
  101. if($status!=''){
  102. $map[]=['status','=',$status];
  103. }
  104. $uid=isset($data['uid']) ? $data['uid']: '';
  105. if($uid!=''){
  106. $map[]=['touid','=',$uid];
  107. }
  108. $xlsName = "手动充值余额记录";
  109. $xlsData = Db::name("balance_charge_admin")
  110. ->where($map)
  111. ->order("id desc")
  112. ->select()
  113. ->toArray();
  114. foreach ($xlsData as $k => $v){
  115. $userinfo=getUserInfo($v['touid']);
  116. $xlsData[$k]['user_nickname']= $userinfo['user_nickname'].'('.$v['touid'].')';
  117. $xlsData[$k]['addtime']=date("Y-m-d H:i:s",$v['addtime']);
  118. $xlsData[$k]['ip']=long2ip($v['ip']);
  119. }
  120. $action="导出手动充值余额记录:".Db::name("balance_charge_admin")->getLastSql();
  121. setAdminLog($action);
  122. $cellName = array('A','B','C','D','E','F');
  123. $xlsCell = array(
  124. array('id','序号'),
  125. array('admin','管理员'),
  126. array('user_nickname','会员 (账号)(ID)'),
  127. array('balance','充值金额'),
  128. array('ip','IP'),
  129. array('addtime','时间'),
  130. );
  131. exportExcel($xlsName,$xlsCell,$xlsData,$cellName);
  132. }
  133. }