Uidsale.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. <?php
  2. namespace app\api\controller;
  3. use app\common\controller\Api;
  4. use think\Db;
  5. /**
  6. * 靓号
  7. */
  8. class Uidsale extends Api
  9. {
  10. protected $noNeedLogin = [];
  11. protected $noNeedRight = ['*'];
  12. //靓号首页
  13. public function lists(){
  14. $keyword = input('keyword','');
  15. $typelist = Db::name('uidsale_type')->order('id asc')->select();
  16. $map = [
  17. 'status' => 0, //未卖出
  18. 'saletime' => 0, //卖出时间
  19. 'user_id' => 0, //目前所属用户
  20. 'is_show' => 1, //上架
  21. ];
  22. if(!empty($keyword)){
  23. $map['new_id'] = ['LIKE','%'.$keyword.'%'];
  24. }
  25. $uidlist = Db::name('uidsale')->field('id,new_id,type_id')->where($map)->order('id asc')->select();
  26. foreach($typelist as $key => &$val){
  27. $val['child'] = [];
  28. foreach($uidlist as $k => $v){
  29. if($v['type_id'] == $val['id']){
  30. $val['child'][] = $v;
  31. }
  32. }
  33. //去掉空的组
  34. if(empty($val['child'])){
  35. unset($typelist[$key]);
  36. }
  37. }
  38. $this->success(1,$typelist);
  39. }
  40. //买靓号
  41. public function buy_one(){
  42. if(!$this->apiLimit()){
  43. $this->error('操作频繁');
  44. }
  45. $id = input('id',0);
  46. if(!$id){
  47. $this->error();
  48. }
  49. Db::startTrans();
  50. //检查
  51. $map = [
  52. 'status' => 0, //未卖出
  53. 'saletime' => 0, //卖出时间
  54. 'user_id' => 0, //目前所属用户
  55. 'is_show' => 1, //上架
  56. ];
  57. $info = Db::name('uidsale')->field('id,new_id')->where($map)->where('id',$id)->lock(true)->find();
  58. if(empty($info)){
  59. Db::rollback();
  60. $this->error('此靓号不存在,请刷新重试');
  61. }
  62. //卖出
  63. $update = [
  64. 'status' => 1, //卖出
  65. 'saletime' => time(), //卖出时间
  66. 'user_id' => $this->auth->id, //目前所属用户
  67. 'is_show' => 0, //下架
  68. ];
  69. $rs = Db::name('uidsale')->where('id',$id)->update($update);
  70. if($rs === false){
  71. Db::rollback();
  72. $this->error('购买失败');
  73. }
  74. //插入用户背包
  75. $nownum = Db::name('uidsale_bag')->where('user_id',$this->auth->id)->find();
  76. if(empty($nownum)){
  77. $data = [
  78. 'user_id' => $this->auth->id,
  79. 'u_id' => $this->auth->u_id,
  80. 'is_cool' => 0,
  81. 'is_using' => 1,
  82. ];
  83. $rs1 = Db::name('uidsale_bag')->insertGetId($data);
  84. if(!$rs1){
  85. Db::rollback();
  86. $this->error('购买失败');
  87. }
  88. }
  89. //插入用户靓号
  90. $data = [
  91. 'user_id' => $this->auth->id,
  92. 'u_id' => $info['new_id'],
  93. 'is_cool' => 1,
  94. ];
  95. $rs2 = Db::name('uidsale_bag')->insertGetId($data);
  96. if(!$rs2){
  97. Db::rollback();
  98. $this->error('购买失败');
  99. }
  100. Db::commit();
  101. $this->success('操作成功',$id);
  102. }
  103. //用户当前靓号背包
  104. public function my_bag(){
  105. $list = Db::name('uidsale_bag')->where('user_id',$this->auth->id)->order('is_using desc,is_cool desc,id desc')->select();
  106. $this->success(1,$list);
  107. }
  108. //切换使用靓号
  109. public function use_newone(){
  110. $id = input('id',0);
  111. if(!$id){
  112. $this->error();
  113. }
  114. Db::startTrans();
  115. $info = Db::name('uidsale_bag')->where('user_id',$this->auth->id)->where('id',$id)->find();
  116. if(empty($info)){
  117. Db::rollback();
  118. $this->error('操作有误,请刷新重试');
  119. }
  120. //全部卸下
  121. $rs = Db::name('uidsale_bag')->where('user_id',$this->auth->id)->update(['is_using'=>0]);
  122. if($rs === false){
  123. Db::rollback();
  124. $this->error('切换失败');
  125. }
  126. //此靓号切换
  127. $rs = Db::name('uidsale_bag')->where('user_id',$this->auth->id)->where('id',$id)->update(['is_using'=>1]);
  128. if($rs === false){
  129. Db::rollback();
  130. $this->error('切换失败');
  131. }
  132. //更新用户
  133. $rs = Db::name('user')->where('id',$this->auth->id)->update(['u_id'=>$info['u_id'],'is_cool'=>$info['is_cool']]);
  134. if($rs === false){
  135. Db::rollback();
  136. $this->error('切换失败');
  137. }
  138. Db::commit();
  139. $this->success();
  140. }
  141. }