order('id asc')->select(); $map = [ 'status' => 0, //未卖出 'saletime' => 0, //卖出时间 'user_id' => 0, //目前所属用户 'is_show' => 1, //上架 ]; if(!empty($keyword)){ $map['new_id'] = ['LIKE','%'.$keyword.'%']; } $uidlist = Db::name('uidsale')->field('id,new_id,type_id')->where($map)->order('id asc')->select(); foreach($typelist as $key => &$val){ $val['child'] = []; foreach($uidlist as $k => $v){ if($v['type_id'] == $val['id']){ $val['child'][] = $v; } } //去掉空的组 if(empty($val['child'])){ unset($typelist[$key]); } } $this->success(1,$typelist); } //买靓号 public function buy_one(){ if(!$this->apiLimit()){ $this->error('操作频繁'); } $id = input('id',0); if(!$id){ $this->error(); } Db::startTrans(); //检查 $map = [ 'status' => 0, //未卖出 'saletime' => 0, //卖出时间 'user_id' => 0, //目前所属用户 'is_show' => 1, //上架 ]; $info = Db::name('uidsale')->field('id,new_id')->where($map)->where('id',$id)->lock(true)->find(); if(empty($info)){ Db::rollback(); $this->error('此靓号不存在,请刷新重试'); } //卖出 $update = [ 'status' => 1, //卖出 'saletime' => time(), //卖出时间 'user_id' => $this->auth->id, //目前所属用户 'is_show' => 0, //下架 ]; $rs = Db::name('uidsale')->where('id',$id)->update($update); if($rs === false){ Db::rollback(); $this->error('购买失败'); } //插入用户背包 $nownum = Db::name('uidsale_bag')->where('user_id',$this->auth->id)->find(); if(empty($nownum)){ $data = [ 'user_id' => $this->auth->id, 'u_id' => $this->auth->u_id, 'is_cool' => 0, 'is_using' => 1, ]; $rs1 = Db::name('uidsale_bag')->insertGetId($data); if(!$rs1){ Db::rollback(); $this->error('购买失败'); } } //插入用户靓号 $data = [ 'user_id' => $this->auth->id, 'u_id' => $info['new_id'], 'is_cool' => 1, ]; $rs2 = Db::name('uidsale_bag')->insertGetId($data); if(!$rs2){ Db::rollback(); $this->error('购买失败'); } Db::commit(); $this->success('操作成功',$id); } //用户当前靓号背包 public function my_bag(){ $list = Db::name('uidsale_bag')->where('user_id',$this->auth->id)->order('is_using desc,is_cool desc,id desc')->select(); $this->success(1,$list); } //切换使用靓号 public function use_newone(){ if(!$this->apiLimit()){ $this->error('操作频繁'); } $id = input('id',0); if(!$id){ $this->error(); } Db::startTrans(); $info = Db::name('uidsale_bag')->where('user_id',$this->auth->id)->where('id',$id)->find(); if(empty($info)){ Db::rollback(); $this->error('操作有误,请刷新重试'); } //全部卸下 $rs = Db::name('uidsale_bag')->where('user_id',$this->auth->id)->update(['is_using'=>0]); if($rs === false){ Db::rollback(); $this->error('切换失败'); } //此靓号切换 $rs = Db::name('uidsale_bag')->where('user_id',$this->auth->id)->where('id',$id)->update(['is_using'=>1]); if($rs === false){ Db::rollback(); $this->error('切换失败'); } //更新用户 $rs = Db::name('user')->where('id',$this->auth->id)->update(['u_id'=>$info['u_id'],'is_cool'=>$info['is_cool']]); if($rs === false){ Db::rollback(); $this->error('切换失败'); } Db::commit(); $this->success(); } }