| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661 |
- <?php
- namespace app\api\controller;
- use app\common\controller\Api;
- class Shop extends Api
- {
- protected $noNeedLogin = [];
- protected $noNeedRight = '*';
- function checktime()
- {
- $goodsid=$this->request->request('goodsid');
- $goodsinfo=db('goods')->where(['id'=>$goodsid,'on_sale'=>1])->find();
- $sinfo=db('studio')->where(['id'=>$goodsinfo['stuid']])->find();
- if($goodsinfo)
- {
- if(time()>=strtotime(date("Y-m-d {$sinfo['start']}")) && time()<=strtotime(date("Y-m-d {$sinfo['end']}")))
- {
- if($goodsinfo['istrade'] == 1)
- {
- $this->error('已售完' ,['flag'=>1]);
- }else{
- $this->success('成功');
- }
- }elseif(time()<strtotime(date("Y-m-d {$sinfo['start']}"))){
- $this->error('待开售' ,['flag'=>0]);
- }else{
- $this->error('已结束' ,['flag'=>1]);
- }
- }else{
- $this->error('商品已下架,请抢购其他商品');
- }
- }
- /* 获取数据 */
- function getgoodslist()
- {
- $catid=$this->request->request('catid');
- $map['catid']=$catid;
- $p=$this->request->request('p');
- if(empty($p))
- {
- $this->error('缺少参数页码');
- }
- $map['on_sale']=1;
- // $map['on_resale']=2;
- $pagesize=10;
- $map['istrade']=0;
- /*获取画室*/
- $studio=db('studio')->where(['title'=>$this->auth->login_studio])->find();
- if($studio)
- {
- $map['stuid']=$studio['id'];
- }else{
- $map['stuid']=0;
- }
- $total=db('goods')->where($map)->count();
- $totalPage=ceil($total/$pagesize);
- if($p>$totalPage && $total>0)
- {
- $this->error('页码有误');
- }
-
- if(time()>=strtotime(date("Y-m-d {$studio['start']}")) && time()<=strtotime(date("Y-m-d {$studio['end']}")))
- {
- $list=db('goods')->where($map)->page($p,$pagesize)->order('id desc')->select();
- $data['sql']=db()->getlastsql();
- }else{
- $totalPage=0;
- $list=[];
- }
- if(empty($list))
- {
- $data['list']=[];
- }else{
- $data['list']=$list;
- }
- $data['total']=$totalPage;
- $this->success('',$data);
- }
- /* 加入购物车 */
- function addcart()
- {
- $id=$this->request->request('id');
- if(empty($id))
- {
- $this->error('缺少参数商品id');
- }
- $attr=$this->request->request('attr');
- if(empty($attr))
- {
- $this->error('请选择商品规格');
- }
- $price=$this->request->request('price');
- $nums=$this->request->request('nums');
- if(empty($nums))
- {
- $this->error('缺少参数商品数量');
- }
- $type=$this->request->request('type');
- $cartinfo=db('goods_cart')->where(['userid'=>$this->auth->id,'goodsid'=>$id,'attr'=>$attr])->find();
- if(empty($cartinfo))
- {
- $info=db('goods')->where(['id'=>$id])->find();
- $data=[
- 'userid'=>$this->auth->id,
- 'goodsid'=>$id,
- 'title'=>$info['title'],
- 'attr'=>$attr,
- 'image'=>$info['image'],
- 'nums'=>$nums,
- 'price'=>$price,
- 'ctime'=>time(),
- 'type'=>$info['type'],
- ];
- $ids=db('goods_cart')->insertGetId($data);
- if($ids)
- {
- $this->success('加入购物车成功');
- }else{
- $this->error('加入购物车失败');
- }
- }else{
- if($type == 1)
- {
- $res=db('goods_cart')->where(['userid'=>$this->auth->id,'goodsid'=>$id,'attr'=>$attr])->update(['nums'=>$nums]);
- $this->success('加入购物车成功');
- }else{
- $res=db('goods_cart')->where(['userid'=>$this->auth->id,'goodsid'=>$id,'attr'=>$attr])->setInc('nums',$nums);
- if($res)
- {
- $this->success('加入购物车成功');
- }else{
- $this->error('加入购物车失败');
- }
- }
- }
- }
- /* 勾选 */
- function selectedcart()
- {
- $id=$this->request->request('id');
- if(empty($id))
- {
- $this->error('缺少参数商品id');
- }
- $iselected=$this->request->request('isselected');
- $res=db('goods_cart')->where(['id'=>$id])->update(['isselected'=>$iselected]);
- if($res)
- {
- $data['totalMoney']=0;
- $data['totalNums']=db('goods_cart')->where(['userid'=>$this->auth->id,'isselected'=>1])->count();
- $data['totalMoney']=db('goods_cart')->where(['userid'=>$this->auth->id,'isselected'=>1])->sum('nums*price');
- $this->success('',$data);
- }else{
- $this->error('');
- }
- }
- /* 勾选所有的 */
- function selectedall()
- {
- $iselected=$this->request->request('isselected');
- $res=db('goods_cart')->where(['userid'=>$this->auth->id])->update(['isselected'=>$iselected]);
- if($res)
- {
- $data['totalMoney']=0;
- $data['totalNums']=db('goods_cart')->where(['userid'=>$this->auth->id,'isselected'=>1])->count();
- $data['totalMoney']=db('goods_cart')->where(['userid'=>$this->auth->id,'isselected'=>1])->sum('nums*price');
- $this->success('',$data);
- }else{
- $this->error('');
- }
- }
- /* 购物车内的数量变化 */
- function addnums()
- {
- $id=$this->request->request('id');
- if(empty($id))
- {
- $this->error('缺少参数商品id');
- }
- $nums=$this->request->request('nums');
- if(empty($nums))
- {
- $this->error('缺少参数商品数量');
- }
- $res=db('goods_cart')->where(['id'=>$id])->update(['nums'=>$nums]);
- if($res)
- {
- $data['totalMoney']=0;
- $data['totalNums']=db('goods_cart')->where(['userid'=>$this->auth->id,'isselected'=>1])->count();
- $data['totalMoney']=db('goods_cart')->where(['userid'=>$this->auth->id,'isselected'=>1])->sum('nums*price');
- $this->success('',$data);
- }else{
- $this->error('');
- }
- }
- function todelcart()
- {
- $ids=$this->request->request('ids');
- $res=db('goods_cart')->where(['id'=>['in',$ids]])->delete();
- if($res)
- {
- $this->success('');
- }else{
- $this->error('删除失败');
- }
- }
- /*购物区*/
- function checkcart()
- {
- $count=db('goods_cart')->where(['userid'=>$this->auth->id,'isselected'=>1])->group('type')->count();
- if($count>1)
- {
- $this->error('不同购物区不能一起支付');
- }else{
- $this->success('');
- }
- }
- function checkstock()
- {
- $data=[];
- $list=db('goods_cart')->where(['userid'=>$this->auth->id,'isselected'=>1])->select();
- foreach($list as $v)
- {
- $info=db('goods')->where(['id'=>$v['goodsid']])->find();
- if($info['stock']<$v['nums'])
- {
- $data['id']=$v['id'];
- $data['stock']=$info['stock'];
- break;
- }
- }
- if(empty($data))
- {
- $this->success('检测完毕');
- }else{
- $this->error('部分商品库存不足',$data);
- }
-
- }
- /* 新增地址 */
- function addressadd()
- {
- $data['userName']=$this->request->request('userName');
- if(empty($data['userName']))
- {
- $this->error("请输入联系人");
- }
- $data['userPhone']=$this->request->request('userPhone');
- if(empty($data['userPhone']))
- {
- $this->error("请输入联系电话");
- }
- $data['area']=$this->request->request('area');
- if(empty($data['area']))
- {
- $this->error("请选择省市区");
- }
- $data['address']=$this->request->request('address');
- if(empty($data['address']))
- {
- $this->error("请输入详细地址");
- }
- $data['isdefault']=$this->request->request('isdefault');
- if(empty($data['isdefault']))
- {
- $data['isdefault']=0;
- }
- $data['ctime']=time();
- $data['userid']=$this->auth->id;
- $ids=db('user_address')->insertGetId($data);
- if($ids)
- {
- if($data['isdefault'] == 1)
- {
- db('user_address')->where(['userid'=>$data['userid'],'id'=>['neq',$ids]])->update(['isdefault'=>0]);
- }
- $this->success('新增地址成功');
- }else{
- $this->error('新增地址失败');
- }
- }
- function addressedit()
- {
- $id=$this->request->request('id');
- $data['userName']=$this->request->request('userName');
- if(empty($data['userName']))
- {
- $this->error("请输入联系人");
- }
- $data['userPhone']=$this->request->request('userPhone');
- if(empty($data['userPhone']))
- {
- $this->error("请输入联系电话");
- }
- $data['area']=$this->request->request('area');
- if(empty($data['area']))
- {
- $this->error("请选择省市区");
- }
- $data['address']=$this->request->request('address');
- if(empty($data['address']))
- {
- $this->error("请输入详细地址");
- }
- $data['isdefault']=$this->request->request('isdefault');
- if(empty($data['isdefault']))
- {
- $data['isdefault']=0;
- }
- $res=db('user_address')->where(['id'=>$id])->update($data);
- if($res)
- {
- if($data['isdefault'] == 1)
- {
- db('user_address')->where(['userid'=>$this->auth->id,'id'=>['neq',$id]])->update(['isdefault'=>0]);
- }
- $this->success('编辑地址成功');
- }else{
- $this->error('编辑地址失败');
- }
- }
- /* 删除地址 */
- function deladdress()
- {
- $id=$this->request->request('id');
- $res=db('user_address')->where(['id'=>$id])->delete();
- if($res)
- {
- $this->success('删除地址成功');
- }else{
- $this->error('删除地址失败');
- }
- }
- /* 生成订单 */
- function addorder()
- {
- $addressid=$this->request->request('addressid');
- $addressinfo=db('user_address')->where(['id'=>$addressid])->find();
- if(empty($addressinfo))
- {
- $this->error("地址不存在,请更换");
- }
- $remark=$this->request->request('remark');
- $deliver=0;$totalMoney=0;
- $goods=db('goods_cart')->where(['userid'=>$this->auth->id,'isselected'=>1])->select();
- if(empty($goods))
- {
- $this->error('订单已生成,请勿重复操作');
- }
- $goodsid=db('goods_cart')->where(['userid'=>$this->auth->id,'isselected'=>1])->column('goodsid');
- $deliver=db('goods')->where(['id'=>['in',$goodsid]])->sum('delivery');
- $totalMoney=db('goods_cart')->where(['userid'=>$this->auth->id,'isselected'=>1])->sum('price*nums');
- db()->startTrans();
- $data=[
- 'orderNo'=>date('YmdHis').rand(100,999),
- 'orderStatus'=>-2,
- 'totalMoney'=>$totalMoney,
- 'deliverMoney'=>$deliver,
- 'userid'=>$this->auth->id,
- 'userName'=>$addressinfo['userName'],
- 'userPhone'=>$addressinfo['userPhone'],
- 'userAddress'=>$addressinfo['area'].$addressinfo['address'],
- 'addressId'=>$addressid,
- 'remark'=>$remark,
- 'createTime'=>date('Y-m-d H:i:s'),
- 'needPay'=>$deliver+$totalMoney,
- 'utime'=>time(),
- 'type'=>get_table_column('goods',$goodsid[0],'type')
- ];
- $oids=db('order')->insertGetId($data);
- foreach ($goods as $v)
- {
- $ordGod=[
- 'orderid'=>$oids,
- 'goodsid'=>$v['goodsid'],
- 'nums'=>$v['nums'],
- 'price'=>$v['price'],
- 'attr'=>$v['attr'],
- 'title'=>$v['title'],
- 'image'=>$v['image'],
- 'guserid'=>get_table_column('goods',$v['goodsid'],'userid')
- ];
- $ogids=db('order_goods')->insertGetId($ordGod);
- }
- $logid=db('order_log')->insertGetId(['orderid'=>$oids,'content'=>'您的订单已生成,请尽快支付','userid'=>$this->auth->id,'ctime'=>time()]);
- if($oids && $ogids && $logid)
- {
- db('goods_cart')->where(['userid'=>$this->auth->id,'isselected'=>1])->delete();
- db()->commit();
- $this->success("订单生成成功",['orderid'=>$oids]);
- }else{
- db()->rollback();
- $this->error("订单生成失败");
- }
- }
- /* 取消订单 */
- function cancelorder()
- {
- $id=$this->request->request('orderid');
- $orderinfo=db('order')->where(['id'=>$id,'orderStatus'=>-2])->find();
- if(empty($orderinfo))
- {
- $this->error('订单不存在或状态已发生改变');
- }
- $res=db('order')->where(['id'=>$id])->update(['orderStatus'=>-1,'utime'=>time()]);
- if($res)
- {
- db('order_log')->insertGetId(['orderid'=>$id,'content'=>'您的订单已取消','userid'=>$this->auth->id,'ctime'=>time()]);
- $this->success("订单取消成功");
- }else{
- $this->error("订单取消失败");
- }
- }
- /* 确认订单 */
- function confirmorder()
- {
- $id=$this->request->request('orderid');
- $orderinfo=db('order')->where(['id'=>$id,'orderStatus'=>2])->find();
- if(empty($orderinfo))
- {
- $this->error('订单不存在或状态已发生改变');
- }
- $res=db('order')->where(['id'=>$id])->update(['orderStatus'=>3,'utime'=>time()]);
- if($res)
- {
- db('order_log')->insertGetId(['orderid'=>$id,'content'=>'您的订单已签收','userid'=>$this->auth->id,'ctime'=>time()]);
- $this->success("订单签收成功");
- }else{
- $this->error("订单签收失败");
- }
- }
- /* 退款 */
- function torefund()
- {
- $orderid=$this->request->request('orderid');
- $refundremark=$this->request->request('refundremark');
- if(empty($refundremark))
- {
- $this->error('请输入退款理由');
- }
- $res=db('order')->where(['id'=>$orderid])->update(['isrefund'=>1,'refundremark'=>$refundremark,'utime'=>time()]);
- if($res)
- {
- db('order_log')->insertGetId(['orderid'=>$orderid,'content'=>'您的订单已申请退款,请耐心等待审核','userid'=>$this->auth->id,'ctime'=>time()]);
- $this->success("退款申请提交成功");
- }else{
- $this->error("退款申请提交失败");
- }
- }
- /* 支付 */
- function payorder()
- {
- $id=$this->request->request('orderid');
- $psd2=$this->request->request('psd2');
- if(empty($psd2))
- {
- $this->error('请输入支付密码');
- }
- $orderinfo=db('order')->where(['id'=>$id,'orderStatus'=>-2])->find();
- if(empty($orderinfo))
- {
- $this->error('订单不存在或状态已发生改变');
- }
- /*判断上级是否在网体内*/
- $up=db('user_parent')->where(['userid'=>get_user_data($orderinfo['userid'],'refereeid')])->find();
- if(empty($up))
- {
- $this->error('上级未进入网体,您还暂时不能购物');
- }
- $user=db('user')->where(['id'=>$orderinfo['userid']])->find();
- if($user['password2'] != getEncryptPassword($psd2,$user['salt']))
- {
- $this->error('支付密码输入错误');
- }
- if($user['bonus']<$orderinfo['needPay'])
- {
- $this->error('余额不足,请充值');
- }
- db()->startTrans();
- $changedata=[
- 'type'=>14,
- 'money'=>0-abs($orderinfo['needPay']),
- 'userid'=>$orderinfo['userid'],
- 'relevant_userid'=>$orderinfo['userid'],
- 'remark'=>'购物扣除',
- ];
- $res1=caiwu($changedata, 'bonus');
- $res=db('order')->where(['id'=>$id])->update(['orderStatus'=>1,'utime'=>time(),'paytime'=>time()]);
- if($res)
- {
-
- db('order_log')->insertGetId(['orderid'=>$id,'content'=>'您的订单已支付,请耐心等待发货','userid'=>$this->auth->id,'ctime'=>time()]);
- bonusorder($id);
- db()->commit();
- $this->success("订单取消成功");
- }else{
- db()->rollback();
- $this->error("订单取消失败");
- }
- }
- /*回调*/
- function notify()
- {
- $json = file_get_contents('php://input');
- $key=config('site')['paykey'];
- $arr = json_decode($json,true);
- $jsonBase64 = base64_encode(json_encode($arr['paramsJson']));
- $jsonBase64Md5 = md5($jsonBase64);
- $sign = strtoupper(md5($key.$jsonBase64Md5));
- if($sign == $arr['sign']){
- # if($_SERVER['REMOTE_ADDR'] == "47.104.25.167"||$_SERVER['REMOTE_ADDR'] == "47.104.25.167"){
- $orderid=$arr['paramsJson']['data']['orderId'];
- $orderinfo=db('order')->where(['id'=>$orderid])->find();
- if($orderinfo['orderStatus'] == -2)
- {
- db('order')->where(['id'=>$orderid])->update(['orderStatus'=>1,'utime'=>time(),'paytime'=>time()]);
- db('order_log')->insertGetId(['orderid'=>$orderid,'content'=>'您的订单已支付,请耐心等待发货','userid'=>$orderinfo['userid'],'ctime'=>time()]);
- bonusorder($orderid);
- echo 'success';
- }
- # }
- }
- }
- /* 获取订单 */
- function getorderlist()
- {
- $status=$this->request->request('status');
- if(empty($status))
- {
- $this->error('缺少参数状态');
- }else{
- if($status != 'all')
- {
- if($status == 1)
- {
- $map['orderStatus']=$status;
- $map['isrefund']=0;
- }elseif($status == 3)
- {
- $map['orderStatus']=['in','3,4'];
- }else{
- $map['orderStatus']=$status;
- }
- }
- }
- $p=$this->request->request('p');
- if(empty($p))
- {
- $this->error('缺少参数页码');
- }
- $map['userid']=$this->auth->id;
- $pagesize=10;
- $total=db('order')->where($map)->count();
- $totalPage=ceil($total/$pagesize);
- if($p>$totalPage && $total>0)
- {
- $this->error('页码有误');
- }
- $list=db('order')->where($map)->page($p,$pagesize)->field('id,orderNo,totalMoney,deliverMoney,orderStatus,isrefund')->order('id desc')->select();
- foreach ($list as &$v)
- {
- $v['allMoney']=$v['totalMoney']+$v['deliverMoney'];
- if($v['orderStatus'] == 1)
- {
- if($v['isrefund'] == 1)
- {
- $v['status']='退款中';
- }else{
- $v['status']='待发货';
- }
- }else{
- $v['status']=config('orderStatus')[$v['orderStatus']];
- }
-
-
- $goods=db('order_goods')->where(['orderid'=>$v['id']])->select();
- if(empty($goods))
- {
- $v['goods']=[];
- }else{
- $v['goods']=$goods;
- }
- $v['nums']=count($goods);
- }
- if(empty($list))
- {
- $data['list']=[];
- }else{
- $data['list']=$list;
- }
- $data['total']=$totalPage;
- $this->success('',$data);
- }
- /* 平乱 */
- function toappraise()
- {
- $params = $this->request->post("row/a");
- $user=db('user')->where(['id'=>$this->auth->id])->find();
- foreach ($params as $v)
- {
- $data=[
- 'userid'=>$this->auth->id,
- 'orderid'=>$v['orderid'],
- 'goodsid'=>$v['goodsid'],
- 'content'=>$v['content'],
- 'ctime'=>time(),
- 'avatar'=>$user['avatar'] == ''?'/assets/img/avatar.png':$user['avatar'],
- 'nickname'=>$user['nickname']
- ];
- $ids=db('order_comment')->insertGetId($data);
- db('goods')->where(['id'=>$data['goodsid']])->setInc('review',1);
- }
- db('order')->where(['id'=>$data['orderid']])->update(['orderStatus'=>4,'utime'=>time()]);
- $this->success('评论完毕');
- }
- /* 评论记录 */
- function getappraiselist()
- {
- $goodsid=$this->request->request('goodsid');
- if(empty($goodsid))
- {
- $this->error('缺少参数商品id');
- }
- $map['goodsid']=$goodsid;
- $map['status']=1;
- $p=$this->request->request('p');
- if(empty($p))
- {
- $this->error('缺少参数页码');
- }
- $pagesize=10;
- $total=db('order_comment')->where($map)->count();
- $totalPage=ceil($total/$pagesize);
- if($p>$totalPage && $total>0)
- {
- $this->error('页码有误');
- }
- $list=db('order_comment')->where($map)->page($p,$pagesize)->order('id desc')->select();
- foreach ($list as &$v)
- {
- $v['ctime']=date('Y-m-d',$v['ctime']);
- }
- if(empty($list))
- {
- $data['list']=[];
- }else{
- $data['list']=$list;
- }
- $data['total']=$totalPage;
- $this->success('',$data);
- }
- }
|