소스 검색

靓号商城

lizhen_gitee 1 년 전
부모
커밋
6934230581
1개의 변경된 파일167개의 추가작업 그리고 0개의 파일을 삭제
  1. 167 0
      application/api/controller/Uidsale.php

+ 167 - 0
application/api/controller/Uidsale.php

@@ -0,0 +1,167 @@
+<?php
+
+namespace app\api\controller;
+
+use app\common\controller\Api;
+use think\Db;
+/**
+ * 靓号
+ */
+class Uidsale extends Api
+{
+    protected $noNeedLogin = [];
+    protected $noNeedRight = ['*'];
+
+    //靓号首页
+    public function lists(){
+        $keyword = input('keyword','');
+
+        $typelist = Db::name('uidsale_type')->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(){
+        $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();
+
+    }
+
+
+}