<?php namespace app\api\controller; use app\common\controller\Api; use think\Db; /** * 改版接口 */ class Update extends Api { protected $noNeedLogin = ['*']; protected $noNeedRight = '*'; /** * 改版接口 * @ApiTitle (token换UserId) * @ApiSummary (token换UserId) * @ApiMethod (POST) * @ApiRoute (/api/Update/TokenToUser) * @ApiHeaders (name=token, type=string, required=true, description="请求的Token") * @ApiReturnParams (name="code", type="integer", required=true, sample="0") * @ApiReturnParams (name="msg", type="string", required=true, sample="返回成功") * @ApiReturn ({ 'code':'1', 'msg':'返回成功', "data": 29 用户UserID }) */ public function TokenToUser() { $UserId = $this->is_token($this->request->header()); $this->success('成功', $UserId); } /** * 改版接口 * @ApiTitle (被邀请页) * @ApiSummary (被邀请页) * @ApiMethod (POST) * @ApiRoute (/api/Update/InviteHtml) * @ApiParams (name="user_id", type="int", required=true, description="用户UserID") * @ApiReturnParams (name="code", type="integer", required=true, sample="0") * @ApiReturnParams (name="msg", type="string", required=true, sample="返回成功") * @ApiReturn ({ 'code':'1', 'msg':'返回成功', "data": { "Nickname": "允安", "Avatar": "https://thirdwx.qlogo.cn/mmopen/vi_32/PiajxSqBRaEKRz8aJsbiaEwSkCamJBVEx05Y9IHhic7qpd5AK7uQJv8fia6QPXnCBaTFpXxF0Epml7u8K1TybnSwVA/132" } }) */ public function InviteHtml() { $UserId = input('user_id'); $Info = Db::name('user')->where('id', $UserId)->find(); if (empty($Info)) { $this->error('网络异常', 0); } $this->success('成功', ['Nickname' => $Info['nickname'], 'Avatar' => $Info['avatar']]); } /** * 改版接口 * @ApiTitle (支付后分享内容) * @ApiSummary (支付后分享内容) * @ApiMethod (POST) * @ApiRoute (/api/Update/AfterPayWindow) * @ApiHeaders (name=token, type=string, required=true, description="请求的Token") * @ApiReturnParams (name="code", type="integer", required=true, sample="0") * @ApiReturnParams (name="msg", type="string", required=true, sample="返回成功") * @ApiReturn ({ 'code':'1', 'msg':'返回成功', "data": { "title": "点击领取榴莲味儿的鸡蛋仔送你的免费能量测试及健康礼券", "image": "http://xm-public.xyslife.com/life2c/20210106/FmpUPCk0MZAmKJ-LHaKzNwvCdhJk.jpg" } } }) */ public function AfterPayWindow() { $UserId = $this->is_token($this->request->header()); $UserInfo = Db::name('user')->where('id', $UserId)->find(); $Info = Db::name('pay_miniappfriends')->find(); $this->success('成功', ['title' => '点击领取' . $UserInfo['nickname'] . '送你的' . $Info['title'], 'image' => cdnurl($Info['image'])]); } /** * 改版接口 * @ApiTitle (氧气泡泡使用规则) * @ApiSummary (氧气泡泡使用规则) * @ApiMethod (POST) * @ApiRoute (/api/Update/WaterOOGroup) * @ApiReturnParams (name="code", type="integer", required=true, sample="0") * @ApiReturnParams (name="msg", type="string", required=true, sample="返回成功") * @ApiReturn ({ 'code':'1', 'msg':'返回成功', "data": { "id": 1, "content": "<p><span style=\"color: rgb(255, 192, 0);\"><strong>使用条件:</strong></span></p><ol class=\" list-paddingleft-2\" style=\"list-style-type: decimal;\"><li><p>订单金额≥199元</p></li><li><p>氧气泡泡≥100元</p></li></ol><p> 氧气泡泡支付不得超过每笔订单应付金额的20%<br/></p><p><br/></p><p><span style=\"color: rgb(255, 192, 0);\"><strong>使用数量</strong></span></p><p> 1.100氧气泡泡=1元<br/></p><p> 2.可兑换到分位,例如102氧气泡泡=1.02元<br/></p>" } } }) */ public function WaterOOGroup() { $Info = Db::name('warter_content')->find(); $this->success('成功', $Info); } /** * 改版接口 * @ApiTitle (用户获取一张优惠券) * @ApiSummary (用户获取一张优惠券) * @ApiMethod (POST) * @ApiRoute (/api/Update/InserUserTick) * @ApiHeaders (name=token, type=string, required=true, description="请求的Token") * @ApiReturnParams (name="code", type="integer", required=true, sample="0") * @ApiReturnParams (name="msg", type="string", required=true, sample="返回成功") * @ApiReturn ({ 'code':'1', 'msg':'返回成功', } }) */ public function InserUserTick() { $UserId = $this->is_token($this->request->header()); $TickInfo = Db::name('tick')->find(); $data = [ 'user_id' => $UserId, 'exp_time' => time() + $TickInfo['you_time'] * 86400, 'createtime' => time(), 'updatetime' => time(), 'status' => 0 ]; $Res = Db::name('user_tick')->insert($data); $this->Res($Res); } /** * 改版接口 * @ApiTitle (下单选择优惠券页面) * @ApiSummary (下单选择优惠券页面) * @ApiMethod (POST) * @ApiRoute (/api/Update/ThinkUserTick) * @ApiHeaders (name=token, type=string, required=true, description="请求的Token") * @ApiParams (name="status", type="int", required=true, description="0=可用优惠券,2=不可用优惠券") * @ApiParams (name="total", type="int", required=true, description="总价") * @ApiReturnParams (name="code", type="integer", required=true, sample="0") * @ApiReturnParams (name="msg", type="string", required=true, sample="返回成功") * @ApiReturn ({ 'code':'1', 'msg':'返回成功', "data": [ { "id": 1, //优惠券ID "title": "好友邀请优惠券", "door": 100, //门槛金额 "del_price": "30.00", //优惠金额 "exp_time": "2021-02-22 13:35:22—2021-03-24 13:35:22"//有效期 } ] } }) */ public function ThinkUserTick() { $UserId = $this->is_token($this->request->header()); $Status = input('status'); $Total = input('total'); $TickInfo = Db::name('tick')->find(); if (($Status == 0 && $Total < $TickInfo['door']) || ($Status == 2 && $Total > $TickInfo['door'] - 0.01)) { $this->success('成功', []); } else { $TickArray = Db::name('user_tick')->where('user_id', $UserId)->where('status', 0)->select(); } $List = []; if (!empty($TickArray)) { foreach ($TickArray as $k => $v) { $List[$k]['id'] = $v['id']; $List[$k]['title'] = $TickInfo['title']; $List[$k]['door'] = $TickInfo['door']; $List[$k]['del_price'] = $TickInfo['del_price']; $List[$k]['exp_time'] = date('Y-m-d H:i:s', $v['createtime']) . '—' . date('Y-m-d H:i:s', $v['exp_time']); } } $this->success('成功', $List); } /** * 改版接口 * @ApiTitle (订单页计算) * @ApiSummary (订单页计算) * @ApiMethod (POST) * @ApiRoute (/api/Update/OrderPages) * @ApiHeaders (name=token, type=string, required=true, description="请求的Token") * @ApiParams (name="address_id", type="int", required=true, description="地址ID") * @ApiParams (name="total", type="int", required=true, description="总价") * @ApiParams (name="tick", type="int", required=true, description="1=使用优惠,0=不使用优惠") * @ApiParams (name="water", type="int", required=true, description="1=使用氧气泡泡,0=不适用氧气泡泡") * @ApiReturnParams (name="code", type="integer", required=true, sample="0") * @ApiReturnParams (name="msg", type="string", required=true, sample="返回成功") * @ApiReturn ({ 'code':'1', 'msg':'返回成功', } }) */ public function OrderPages() { $UserId = $this->is_token($this->request->header()); $Parmas = $this->request->param(); //检测过期优惠券 $this->ExpTick($UserId); $Tick = 0; $Water = 0; $YunPrice = 0; if ($Parmas['tick'] == 1) { $Tick = Db::name('tick')->value('del_price'); } $WaterNum = Db::name('user')->where('id', $UserId)->value('num'); if ($Parmas['water'] == 1) { if ($Parmas['total'] < 199) { $this->error('订单金额小于199元,无法抵扣'); } if ($WaterNum / 100 < 100) { $this->error('氧气泡泡不足100元,无法抵扣'); } //计算总价20% if (($WaterNum / 100 > $Parmas['total'] * 0.2) || ($WaterNum / 100 == $Parmas['total'] * 0.2)) { //大于或等于 $Water = $Parmas['total'] * 0.2; } else { //小于 $Water = $WaterNum / 100; } } //运费 $City = Db::name('address')->where('id', $Parmas['address_id'])->value('city'); if (empty($City)) { $this->error('获取用户地区失败'); } $Area = explode('/', $City); $AreaId = Db::name('area')->where('name', $Area[0])->value('id'); $map[] = ['exp', Db::raw("FIND_IN_SET($AreaId,area_ids)")]; $YunArray = Db::name('freight_model')->find(); $YunModel = Db::name('freight_model')->where($map)->find(); if (empty($YunModel)) { $YunPrice = $YunArray['price']; } $NewTotal = $Parmas['total'] - $Tick - $Water + $YunPrice; $this->success('成功', [ //优惠券优惠金额 'Tick' => $Tick, //拥有氧气泡泡 'WaterNum' => $WaterNum, //商品金额 'Total' => $Parmas['total'], //运费 'YunPrice' => $YunPrice == 0 ? '免运费' : $YunPrice, //优惠 'HappyPrice' => $Tick + $Water, //实付 'NewTotal' => $NewTotal ]); } }