TurntableController.php 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319
  1. <?php
  2. /**
  3. * 大转盘
  4. */
  5. namespace app\admin\controller;
  6. use cmf\controller\AdminBaseController;
  7. use think\facade\Db;
  8. class TurntableController extends AdminbaseController {
  9. protected function getTypes($k=''){
  10. $type=[
  11. '0'=>'无奖',
  12. '1'=>'钻石',
  13. '2'=>'礼物',
  14. '3'=>'线下奖品',
  15. ];
  16. if($k===''){
  17. return $type;
  18. }
  19. return isset($type[$k])?$type[$k]:'';
  20. }
  21. function index(){
  22. $lists = Db::name("turntable")
  23. ->order("id asc")
  24. ->paginate(20);
  25. $lists->each(function($v,$k){
  26. $name='无奖品';
  27. if($v['type']==1){
  28. $name=$v['type_val'];
  29. }
  30. if($v['type']==2){
  31. $name='已删除';
  32. $giftinfo=Db::name("gift")->field('giftname')->where("id={$v['type_val']}")->find();
  33. if($giftinfo){
  34. $name=$giftinfo['giftname'];
  35. }
  36. }
  37. if($v['type']==3){
  38. $name=$v['type_val'];
  39. }
  40. $v['name']=$name;
  41. $v['thumb']=get_upload_path($v['thumb']);
  42. return $v;
  43. });
  44. $page = $lists->render();
  45. $this->assign('lists', $lists);
  46. $this->assign("page", $page);
  47. $this->assign('type', $this->getTypes());
  48. return $this->fetch();
  49. }
  50. function edit(){
  51. $id = $this->request->param('id', 0, 'intval');
  52. $data=Db::name('turntable')
  53. ->where("id={$id}")
  54. ->find();
  55. if(!$data){
  56. $this->error("信息错误");
  57. }
  58. /* $gift=Db::name('gift')->field('id,giftname')->where([ ['type','<>',3] ])->order('orderno desc')->select(); */
  59. $gift=Db::name('gift')->field('id,giftname')->where('type not in (3)')->order('orderno desc')->select();
  60. $data['thumb']=get_upload_path($data['thumb']);
  61. $this->assign('gift', $gift);
  62. $this->assign('data', $data);
  63. $this->assign('type', $this->getTypes());
  64. return $this->fetch();
  65. }
  66. function editPost(){
  67. if ($this->request->isPost()) {
  68. $data = $this->request->param();
  69. $type=$data['type'];
  70. if($type==1){
  71. $type_val=intval($data['coin']);
  72. if($type_val<1){
  73. $this->error('请输入正确的钻石数');
  74. }
  75. $data['type_val']=$type_val;
  76. }
  77. if($type==2){
  78. $type_val=intval($data['giftid']);
  79. if($type_val<1){
  80. $this->error('请输入选择礼物');
  81. }
  82. $data['type_val']=$type_val;
  83. }
  84. if($type==3){
  85. $type_val=$data['name'];
  86. if($type_val==''){
  87. $this->error('请输入奖品名');
  88. }
  89. $data['type_val']=$type_val;
  90. $thumb=$data['thumb'];
  91. if($thumb==''){
  92. $this->error('请上传奖品图片');
  93. }
  94. }
  95. if($type==0){
  96. $data['type_val']=0;
  97. $data['thumb']='';
  98. $data['rate']=0;
  99. }
  100. $data['uptime']=time();
  101. unset($data['coin']);
  102. unset($data['name']);
  103. unset($data['giftid']);
  104. $rs = DB::name('turntable')->update($data);
  105. if($rs===false){
  106. $this->error("修改失败!");
  107. }
  108. $this->resetcache();
  109. $this->success("修改成功!");
  110. }
  111. }
  112. function resetcache(){
  113. $key='turntable';
  114. $list=Db::name('turntable')
  115. ->field("id,type,type_val,thumb,rate")
  116. ->select();
  117. if($list){
  118. setcaches($key,$list);
  119. }else{
  120. delcache($key);
  121. }
  122. return 1;
  123. }
  124. function index2(){
  125. $data = $this->request->param();
  126. $map=[];
  127. $start_time=isset($data['start_time']) ? $data['start_time']: '';
  128. $end_time=isset($data['end_time']) ? $data['end_time']: '';
  129. if($start_time!=""){
  130. $map[]=['addtime','>=',strtotime($start_time)];
  131. }
  132. if($end_time!=""){
  133. $map[]=['addtime','<=',strtotime($end_time) + 60*60*24];
  134. }
  135. $uid=isset($data['uid']) ? $data['uid']: '';
  136. if($uid!=''){
  137. $map[]=['uid','=',$uid];
  138. }
  139. $liveuid=isset($data['liveuid']) ? $data['liveuid']: '';
  140. if($liveuid!=''){
  141. $map[]=['liveuid','=',$liveuid];
  142. }
  143. $showid=isset($data['showid']) ? $data['showid']: '';
  144. if($showid!=''){
  145. $map[]=['showid','=',$showid];
  146. }
  147. $lists = Db::name("turntable_log")
  148. ->where($map)
  149. ->order("id DESC")
  150. ->paginate(20);
  151. $lists->each(function($v,$k){
  152. $userinfo=getUserInfo($v['uid']);
  153. $v['userinfo']=$userinfo;
  154. $liveuidinfo=getUserInfo($v['liveuid']);
  155. $v['liveuidinfo']=$liveuidinfo;
  156. $winlist=[];
  157. if($v['iswin']==1){
  158. $winlist=Db::name("turntable_win")->where("logid={$v['id']}")->select();
  159. foreach($winlist as $k2=>$v2){
  160. if($v2['type']==3){
  161. $name=$v2['type_val'];
  162. }
  163. if($v2['type']==2){
  164. $name='已删除';
  165. $giftinfo=Db::name("gift")->field('giftname')->where("id={$v2['type_val']}")->find();
  166. if($giftinfo){
  167. $name=$giftinfo['giftname'];
  168. }
  169. }
  170. if($v2['type']==1){
  171. $name=$v2['type_val'];
  172. }
  173. $v2['name']=$name;
  174. $winlist[$k2]=$v2;
  175. }
  176. }
  177. $v['winlist']=$winlist;
  178. return $v;
  179. });
  180. $lists->appends($data);
  181. $page = $lists->render();
  182. $this->assign('lists', $lists);
  183. $this->assign("page", $page);
  184. $count=Db::name("turntable_log")->where($map)->count();
  185. $total=Db::name("turntable_log")->where($map)->sum('coin');
  186. if(!$total){
  187. $total=0;
  188. }
  189. $this->assign("count", $count);
  190. $this->assign("total", $total);
  191. $this->assign('type', $this->getTypes());
  192. return $this->fetch();
  193. }
  194. function index3(){
  195. $data = $this->request->param();
  196. $map=[];
  197. $map[]=['type','=',3];
  198. $status=isset($data['status']) ? $data['status']: '';
  199. if($status!=''){
  200. $map[]=['status','=',$status];
  201. }
  202. $uid=isset($data['uid']) ? $data['uid']: '';
  203. if($uid!=''){
  204. $map[]=['uid','=',$uid];
  205. }
  206. $lists = Db::name("turntable_win")
  207. ->where($map)
  208. ->order("id desc")
  209. ->paginate(20);
  210. $lists->each(function($v,$k){
  211. $userinfo=getUserInfo($v['uid']);
  212. $v['userinfo']=$userinfo;
  213. return $v;
  214. });
  215. $page = $lists->render();
  216. $this->assign('lists', $lists);
  217. $this->assign("page", $page);
  218. $this->assign('type', $this->getTypes());
  219. return $this->fetch();
  220. }
  221. function setStatus(){
  222. $id = $this->request->param('id', 0, 'intval');
  223. $status = $this->request->param('status', 0, 'intval');
  224. $rs = DB::name('turntable_win')->where("id={$id}")->update(['status'=>$status,'uptime'=>time()]);
  225. if(!$rs){
  226. $this->error("操作失败!");
  227. }
  228. $this->success("操作成功!");
  229. }
  230. }