ChargeController.php 8.6 KB

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