CoinrecordController.php 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284
  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 CoinrecordController extends AdminbaseController {
  18. protected function getTypes($k=''){
  19. $type=array(
  20. '0'=>'支出',
  21. '1'=>'收入',
  22. );
  23. if($k===''){
  24. return $type;
  25. }
  26. return isset($type[$k]) ? $type[$k]: '';
  27. }
  28. protected function getAction($k=''){
  29. $action=array(
  30. '1'=>'赠送礼物',
  31. '2'=>'弹幕',
  32. '6'=>'房间扣费',
  33. '7'=>'计时扣费',
  34. '11'=>'注册奖励',
  35. );
  36. if($k===''){
  37. return $action;
  38. }
  39. return isset($action[$k]) ? $action[$k]: '未知';
  40. }
  41. protected function getGame($k=''){
  42. $game=array(
  43. '1'=>'智勇三张',
  44. '2'=>'海盗船长',
  45. '3'=>'转盘',
  46. '4'=>'开心牛仔',
  47. '5'=>'二八贝',
  48. );
  49. if($k===''){
  50. return $game;
  51. }
  52. return isset($game[$k]) ? $game[$k]: '';
  53. }
  54. public function index(){
  55. $data = $this->request->param();
  56. $map=[];
  57. $start_time=isset($data['start_time']) ? $data['start_time']: '';
  58. $end_time=isset($data['end_time']) ? $data['end_time']: '';
  59. if($start_time!=""){
  60. $map[]=['addtime','>=',strtotime($start_time)];
  61. }
  62. if($end_time!=""){
  63. $map[]=['addtime','<=',strtotime($end_time) + 60*60*24];
  64. }
  65. $type=isset($data['type']) ? $data['type']: '';
  66. if($type!=''){
  67. $map[]=['type','=',$type];
  68. }
  69. $action=isset($data['action']) ? $data['action']: '';
  70. if($action!=''){
  71. $map[]=['action','=',$action];
  72. }
  73. $uid=isset($data['uid']) ? $data['uid']: '';
  74. if($uid!=''){
  75. $lianguid=getLianguser($uid);
  76. if($lianguid){
  77. $map[]=['uid',['=',$uid],['in',$lianguid],'or'];
  78. }else{
  79. $map[]=['uid','=',$uid];
  80. }
  81. }
  82. $touid=isset($data['touid']) ? $data['touid']: '';
  83. if($touid!=''){
  84. $map[]=['touid','=',$touid];
  85. }
  86. $lists = Db::name("user_coinrecord")
  87. ->where($map)
  88. ->order("id desc")
  89. ->paginate(20);
  90. $lists->each(function($v,$k){
  91. $v['userinfo']=getUserInfo($v['uid']);
  92. $v['touserinfo']=getUserInfo($v['touid']);
  93. $action=$v['action'];
  94. if($action=='1'){
  95. $giftinfo=Db::name("gift")->field("giftname")->where("id='{$v['giftid']}'")->find();
  96. }else if($action=='3'){
  97. $giftinfo['giftname']='第'.$v['giftid'].'天';
  98. }else if($action=='4'){
  99. $info=Db::name("vip")->field("name")->where("id='{$v['giftid']}'")->find();
  100. $giftinfo['giftname']=$info['name'];
  101. }else if($action=='5'){
  102. $info=Db::name("car")->field("name")->where("id='{$v['giftid']}'")->find();
  103. $giftinfo['giftname']=$info['name'];
  104. }else if($action=='18'){
  105. $info=Db::name("liang")->field("name")->where("id='{$v['giftid']}'")->find();
  106. $giftinfo['giftname']=$info['name'];
  107. }else if($action=='10'){
  108. $info=Db::name("guard")->field("name")->where("id='{$v['giftid']}'")->find();
  109. $giftinfo['giftname']=$info['name'];
  110. }else if($action=='19' || $action=='20'){
  111. $info=Db::name("game")->field("action")->where("id='{$v['giftid']}'")->find();
  112. $giftinfo['giftname']=$this->getGame($info['action']);
  113. }else{
  114. $giftinfo['giftname']=$this->getAction($action);
  115. }
  116. $v['giftinfo']= $giftinfo;
  117. return $v;
  118. });
  119. $lists->appends($data);
  120. $page = $lists->render();
  121. $this->assign('lists', $lists);
  122. $this->assign("page", $page);
  123. $this->assign('action', $this->getAction());
  124. $this->assign('type', $this->getTypes());
  125. return $this->fetch();
  126. }
  127. public function del(){
  128. $id = $this->request->param('id', 0, 'intval');
  129. $rs = DB::name('user_coinrecord')->where("id={$id}")->delete();
  130. if(!$rs){
  131. $this->error("删除失败!");
  132. }
  133. $this->success("删除成功!");
  134. }
  135. //钻石消费记录
  136. public function export(){
  137. $data = $this->request->param();
  138. $map=[];
  139. $start_time=isset($data['start_time']) ? $data['start_time']: '';
  140. $end_time=isset($data['end_time']) ? $data['end_time']: '';
  141. if($start_time!=""){
  142. $map[]=['addtime','>=',strtotime($start_time)];
  143. }
  144. if($end_time!=""){
  145. $map[]=['addtime','<=',strtotime($end_time) + 60*60*24];
  146. }
  147. $type=isset($data['type']) ? $data['type']: '';
  148. if($type!=''){
  149. $map[]=['type','=',$type];
  150. }
  151. $action=isset($data['action']) ? $data['action']: '';
  152. if($action!=''){
  153. $map[]=['action','=',$action];
  154. }
  155. $uid=isset($data['uid']) ? $data['uid']: '';
  156. if($uid!=''){
  157. $lianguid=getLianguser($uid);
  158. if($lianguid){
  159. $map[]=['uid',['=',$uid],['in',$lianguid],'or'];
  160. }else{
  161. $map[]=['uid','=',$uid];
  162. }
  163. }
  164. $touid=isset($data['touid']) ? $data['touid']: '';
  165. if($touid!=''){
  166. $map[]=['touid','=',$touid];
  167. }
  168. $xlsName = "钻石消费记录";
  169. $lists = Db::name("user_coinrecord")
  170. ->where($map)
  171. ->order("id desc")
  172. ->select()
  173. ->toArray();
  174. foreach($lists as $k=>$v){
  175. $userinfo=getUserInfo($v['uid']);
  176. $v['user_nicename']= $userinfo['user_nicename']."(".$v['uid'].")";
  177. $touserinfo=getUserInfo($v['touid']);
  178. $v['touser_nicename']= $touserinfo['user_nicename']."(".$v['touid'].")";
  179. $action=$v['action'];
  180. if($action=='1'){
  181. $giftinfo=Db::name("gift")->field("giftname")->where("id='{$v['giftid']}'")->find();
  182. }else if($action=='3'){
  183. $giftinfo['giftname']='第'.$v['giftid'].'天';
  184. }else if($action=='4'){
  185. $info=Db::name("vip")->field("name")->where("id='{$v['giftid']}'")->find();
  186. $giftinfo['giftname']=$info['name'];
  187. }else if($action=='5'){
  188. $info=Db::name("car")->field("name")->where("id='{$v['giftid']}'")->find();
  189. $giftinfo['giftname']=$info['name'];
  190. }else if($action=='18'){
  191. $info=Db::name("liang")->field("name")->where("id='{$v['giftid']}'")->find();
  192. $giftinfo['giftname']=$info['name'];
  193. }else if($action=='10'){
  194. $info=Db::name("guard")->field("name")->where("id='{$v['giftid']}'")->find();
  195. $giftinfo['giftname']=$info['name'];
  196. }else if($action=='19' || $action=='20'){
  197. $info=Db::name("game")->field("action")->where("id='{$v['giftid']}'")->find();
  198. $giftinfo['giftname']=$this->getGame($info['action']);
  199. }else{
  200. $giftinfo['giftname']=$this->getAction($action);
  201. }
  202. $v['giftname']= $giftinfo['giftname']."(".$v['giftid'].")";
  203. $v['type']= $this->getTypes($v['type']);
  204. $v['action']= $this->getAction($v['action']);
  205. $v['addtime']=date("Y-m-d H:i:s",$v['addtime']);
  206. $lists[$k]=$v;
  207. }
  208. $cellName = array('A','B','C','D','E','F','G','H','I','J');
  209. $xlsCell = array(
  210. array('id','序号'),
  211. array('type','收支类型'),
  212. array('action','收支行为'),
  213. array('user_nicename','会员 (ID)'),
  214. array('touser_nicename','主播 (ID)'),
  215. array('giftname','行为说明 (ID)'),
  216. array('giftcount','数量'),
  217. array('totalcoin','总价'),
  218. array('showid','直播id'),
  219. array('addtime','时间')
  220. );
  221. exportExcel($xlsName,$xlsCell,$lists,$cellName);
  222. }
  223. }