ChargeController.php 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. <?php
  2. /**
  3. * 充值记录
  4. */
  5. namespace app\admin\controller;
  6. use cmf\controller\AdminBaseController;
  7. use think\facade\Db;
  8. class ChargeController extends AdminbaseController {
  9. protected function getStatus($k=''){
  10. $status=array(
  11. '0'=>'未支付',
  12. '1'=>'已完成',
  13. );
  14. if($k===''){
  15. return $status;
  16. }
  17. return isset($status[$k]) ? $status[$k]: '';
  18. }
  19. protected function getTypes($k=''){
  20. $type=array(
  21. '1'=>'支付宝',
  22. '2'=>'微信',
  23. '3'=>'苹果支付',
  24. '4'=>'微信小程序',
  25. '5'=>'paypal',
  26. '6'=>'braintree_paypal',
  27. );
  28. if($k===''){
  29. return $type;
  30. }
  31. return isset($type[$k]) ? $type[$k]: '';
  32. }
  33. protected function getAmbient($k=''){
  34. $ambient=array(
  35. "1"=>array(
  36. '0'=>'App',
  37. '1'=>'PC',
  38. ),
  39. "2"=>array(
  40. '0'=>'App',
  41. '1'=>'公众号',
  42. '2'=>'PC',
  43. ),
  44. "3"=>array(
  45. '0'=>'沙盒',
  46. '1'=>'生产',
  47. ),
  48. "4"=>array(
  49. '0'=>'沙盒',
  50. '1'=>'生产',
  51. ),
  52. "5"=>array(
  53. '0'=>'沙盒',
  54. '1'=>'生产',
  55. ),
  56. "6"=>array(
  57. '0'=>'沙盒',
  58. '1'=>'生产',
  59. )
  60. );
  61. if($k===''){
  62. return $ambient;
  63. }
  64. return isset($ambient[$k]) ? $ambient[$k]: '';
  65. }
  66. function index(){
  67. $data = $this->request->param();
  68. $map=[];
  69. $start_time=isset($data['start_time']) ? $data['start_time']: '';
  70. $end_time=isset($data['end_time']) ? $data['end_time']: '';
  71. if($start_time!=""){
  72. $map[]=['addtime','>=',strtotime($start_time)];
  73. }
  74. if($end_time!=""){
  75. $map[]=['addtime','<=',strtotime($end_time) + 60*60*24];
  76. }
  77. $status=isset($data['status']) ? $data['status']: '';
  78. if($status!=''){
  79. $map[]=['status','=',$status];
  80. }
  81. $uid=isset($data['uid']) ? $data['uid']: '';
  82. if($uid!=''){
  83. $map[]=['uid','=',$uid];
  84. }
  85. $keyword=isset($data['keyword']) ? $data['keyword']: '';
  86. if($keyword!=''){
  87. $map[]=['orderno|trade_no','like','%'.$keyword.'%'];
  88. }
  89. $lists = Db::name("user_charge")
  90. ->where($map)
  91. ->order("id desc")
  92. ->paginate(20);
  93. $lists->each(function($v,$k){
  94. $v['userinfo']=getUserInfo($v['uid']);
  95. return $v;
  96. });
  97. $lists->appends($data);
  98. $page = $lists->render();
  99. $this->assign('lists', $lists);
  100. $this->assign("page", $page);
  101. $this->assign('status', $this->getStatus());
  102. $this->assign('type', $this->getTypes());
  103. $this->assign('ambient', $this->getAmbient());
  104. $moneysum = Db::name("user_charge")
  105. ->where($map)
  106. ->sum('money');
  107. if(!$moneysum){
  108. $moneysum=0;
  109. }
  110. $this->assign('moneysum', $moneysum);
  111. $configpub=getConfigPub();
  112. $this->assign('name_coin', $configpub['name_coin']);
  113. return $this->fetch();
  114. }
  115. function setPay(){
  116. $id = $this->request->param('id', 0, 'intval');
  117. if($id){
  118. $result=Db::name("user_charge")->where(["id"=>$id,"status"=>0])->find();
  119. if($result){
  120. /* 更新会员虚拟币 */
  121. $coin=$result['coin']+$result['coin_give'];
  122. Db::name("user")->where("id='{$result['touid']}'")->inc("coin",$coin)->update();
  123. /* 更新 订单状态 */
  124. Db::name("user_charge")->where("id='{$result['id']}'")->update(array("status"=>1));
  125. $this->success('操作成功');
  126. }else{
  127. $this->error('数据传入失败!');
  128. }
  129. }else{
  130. $this->error('数据传入失败!');
  131. }
  132. }
  133. function del(){
  134. $id = $this->request->param('id', 0, 'intval');
  135. $rs = DB::name('user_charge')->where("id={$id}")->delete();
  136. if(!$rs){
  137. $this->error("删除失败!");
  138. }
  139. $this->success("删除成功!");
  140. }
  141. function export(){
  142. $data = $this->request->param();
  143. $map=[];
  144. $start_time=isset($data['start_time']) ? $data['start_time']: '';
  145. $end_time=isset($data['end_time']) ? $data['end_time']: '';
  146. if($start_time!=""){
  147. $map[]=['addtime','>=',strtotime($start_time)];
  148. }
  149. if($end_time!=""){
  150. $map[]=['addtime','<=',strtotime($end_time) + 60*60*24];
  151. }
  152. $status=isset($data['status']) ? $data['status']: '';
  153. if($status!=''){
  154. $map[]=['status','=',$status];
  155. }
  156. $keyword=isset($data['keyword']) ? $data['keyword']: '';
  157. if($keyword!=''){
  158. $map[]=['uid|orderno|trade_no','like','%'.$keyword.'%'];
  159. }
  160. $xlsName = "充值记录";
  161. $xlsData=Db::name("user_charge")
  162. ->field('id,uid,money,coin,coin_give,orderno,type,trade_no,status,addtime,ambient')
  163. ->where($map)
  164. ->order('id desc')
  165. ->select()
  166. ->toArray();
  167. foreach ($xlsData as $k => $v){
  168. $userinfo=getUserInfo($v['uid']);
  169. $xlsData[$k]['user_nickname']= $userinfo['user_nickname']."(".$v['uid'].")";
  170. $xlsData[$k]['addtime']=date("Y-m-d H:i:s",$v['addtime']);
  171. $xlsData[$k]['type']=$this->getTypes($v['type']);
  172. $xlsData[$k]['status']=$this->getStatus($v['status']);
  173. $ambient=$this->getAmbient($v['type']);
  174. $xlsData[$k]['ambient']=$ambient[$v['ambient']];
  175. }
  176. $cellName = array('A','B','C','D','E','F','G','H','I','J','K');
  177. $xlsCell = array(
  178. array('id','序号'),
  179. array('user_nickname','会员'),
  180. array('money','人民币金额'),
  181. array('coin','兑换点数'),
  182. array('coin_give','赠送点数'),
  183. array('orderno','商户订单号'),
  184. array('type','支付类型'),
  185. array('ambient','支付环境'),
  186. array('trade_no','第三方支付订单号'),
  187. array('status','订单状态'),
  188. array('addtime','提交时间')
  189. );
  190. exportExcel($xlsName,$xlsCell,$xlsData,$cellName);
  191. }
  192. }