123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409 |
- <?php
- namespace bibidd\Controller;
- use Bibidd\Controller\CommonBaseController;
- /**
- *
- * 商品首页
- */
- class ShopIndexController extends CommonBaseController
- {
- /**
- * 查询首页数据
- * @return void
- */
- public function query_list()
- {
- $this->addHeaders(); //添加头部请求
- $search_key = $_POST['searchKey']; //搜索关键字
- $shop_state = $_POST['shopState']; //推荐
- $shop_type = $_POST['shopType']; //推荐,商品分类
- $page = $_POST['page'];
- $one_size = empty($_POST['pageSize']) ? 30 : $_POST['pageSize']; //每頁30行記錄
- $page_one = ($page - 1) * $one_size<=0?0:($page - 1) * $one_size;
- $sql = "";
- if(!empty($search_key))
- {
- //关键字查询
- $sql = $sql." AND order_str LIKE '%$search_key%' OR MATCH(shop_describe) AGAINST ('+\"$search_key\"' IN BOOLEAN MODE) ";
- }
- if(!empty($shop_state))
- {
- //查询推荐
- $sql = $sql." AND shop_state = ".$shop_state;
- }
- if(!empty($shop_type) || $shop_type=='0')
- {
- //$shop_type
- $sql = $sql." AND shop_type = '".$shop_type."'";
- }
- $seach_data = M("qq_shopping")
- ->field("id,order_str,order_img,order_type,amount,shop_state,shop_type,shop_stock,shop_format,shop_describe,des_img,shop_count")
- ->where("1=1".$sql." AND order_type=0")->LIMIT($page_one, $one_size)->select();
- $data['code'] = '200';
- $data['message'] = 'ok';
- $data['all_num'] = M("qq_shopping")->where("1=1".$sql." AND order_type=0")->count();
- $data['data'] = $seach_data;
- echo json_encode($data);
- }
- /**
- * 获取商品详情
- * @return void
- */
- public function get_detail()
- {
- $this->addHeaders(); //添加头部请求
- $id = $_POST['id']; //商品id
- $data['code'] = '200';
- $data['message'] = 'ok';
- $data['data'] = M("qq_shopping")
- ->field("id,order_str,order_img,order_type,amount,shop_state,shop_type,shop_stock,shop_format,shop_describe,des_img,shop_count")
- ->where("id='$id'")->find();
- echo json_encode($data);
- }
- /**
- * 添加收货地址
- * @return void
- */
- public function add_addr()
- {
- $this->addHeaders(); //添加头部请求
- $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
- $uid = $user_info['id'];
- $name = $_POST['name']; //用户姓名
- $phone = $_POST['phone']; //用户电话
- $address = $_POST['address']; //用户地址
- $address_type = empty($_POST['addressType'])?0:$_POST['addressType']; //默认地址1
- //添加字段
- $addressDetail = $_POST['addressDetail']; //详细地址
- $areaCode = $_POST['areaCode']; //区域编码
- $city = $_POST['city']; //城市
- $country = $_POST['country']; //国家
- $county = $_POST['county']; //不懂是什么
- $province = $_POST['province']; //省份
- if(empty($name) || empty($phone) || empty($address))
- {
- $this->returnDataAndSendMsg("请输入完整地址");
- die();
- }
- $add_info['uid'] = $uid;
- $add_info['name'] = $name;
- $add_info['phone'] = $phone;
- $add_info['address'] = $address;
- $add_info['address_type'] = $address_type;
- $add_info['addressDetail'] = $addressDetail;
- $add_info['areaCode'] = $areaCode;
- $add_info['city'] = $city;
- $add_info['isDefault'] = $address_type;
- $add_info['country'] = $country;
- $add_info['county'] = $county;
- $add_info['province'] = $province;
- $add_info['tel'] = $phone;
- if(!empty($address_type) && $address_type==1)
- {
- M("qq_user_address")->where("uid='$uid'")->setField("address_type",0);
- }
- $data['code'] = '200';
- $data['message'] = 'ok';
- $data['data'] = M("qq_user_address")->add($add_info);
- echo json_encode($data);
- }
- public function edit_addr()
- {
- $this->addHeaders(); //添加头部请求
- $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
- $uid = $user_info['id'];
- $id = $_POST['id']; //地址id
- $name = $_POST['name']; //用户姓名
- $phone = $_POST['phone']; //用户电话
- $address = $_POST['address']; //用户地址
- $address_type = empty($_POST['addressType'])?0:$_POST['addressType']; //默认地址1
- $addressDetail = $_POST['addressDetail']; //详细地址
- $areaCode = $_POST['areaCode']; //区域编码
- $city = $_POST['city']; //城市
- $country = $_POST['country']; //国家
- $county = $_POST['county']; //不懂是什么
- $province = $_POST['province']; //省份
- if(empty($name) || empty($phone) || empty($address))
- {
- $this->returnDataAndSendMsg("请输入完整地址");
- die();
- }
- $add_info['uid'] = $uid;
- $add_info['name'] = $name;
- $add_info['phone'] = $phone;
- $add_info['address'] = $address;
- $add_info['address_type'] = $address_type;
- $add_info['addressDetail'] = $addressDetail;
- $add_info['areaCode'] = $areaCode;
- $add_info['city'] = $city;
- $add_info['isDefault'] = $address_type;
- $add_info['country'] = $country;
- $add_info['county'] = $county;
- $add_info['province'] = $province;
- $add_info['tel'] = $phone;
- if(!empty($address_type) && $address_type==1)
- {
- M("qq_user_address")->where("uid='$uid'")->setField("address_type",0);
- }
- $data['code'] = '200';
- $data['message'] = 'ok';
- $data['data'] = M("qq_user_address")->where("id='$id'")->save($add_info);
- echo json_encode($data);
- }
- /**
- * 更新默认收获地址
- * @return void
- */
- public function up_default_addr()
- {
- $this->addHeaders(); //添加头部请求
- $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
- $uid = $user_info['id'];
- $id = $_POST['id']; //地址id
- $check_addr = M("qq_user_address")->where("id='$id'")->find();
- if(empty($check_addr))
- {
- $this->returnDataAndSendMsg("无效收货地址");
- die();
- }
- M("qq_user_address")->where("uid='$uid'")->setField("address_type",0);
- $rs = M("qq_user_address")->where("id='$id'")->setField("address_type",1);
- $data['code'] = '200';
- $data['message'] = 'ok';
- $data['data'] = $rs;
- echo json_encode($data);
- }
- public function del_addr()
- {
- $this->addHeaders(); //添加头部请求
- $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
- $uid = $user_info['id'];
- $id = $_POST['id']; //地址id
- $data['code'] = '200';
- $data['message'] = 'ok';
- $data['data'] = M("qq_user_address")->where("id='$id'")->delete();
- echo json_encode($data);
- }
- /**
- * 获取地址详情
- * @return void
- */
- public function get_addr_detail()
- {
- $this->addHeaders(); //添加头部请求
- $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
- $uid = $user_info['id'];
- $id = $_POST['id']; //地址id
- $data['code'] = '200';
- $data['message'] = 'ok';
- $data['data'] = M("qq_user_address")->where("id='$id'")->find();
- echo json_encode($data);
- }
- /**
- * 查询用户收货地址列表
- * @return void
- */
- public function query_addr_list()
- {
- $this->addHeaders(); //添加头部请求
- $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
- $uid = $user_info['id'];
- $page = $_POST['page'];
- $one_size = empty($_POST['pageSize']) ? 30 : $_POST['pageSize']; //每頁30行記錄
- $page_one = ($page - 1) * $one_size;
- $data['code'] = '200';
- $data['message'] = 'ok';
- $data['data'] = M("qq_user_address")->where("uid='$uid'")->LIMIT($page_one, $one_size)->select();
- $data['all_num'] = M("qq_user_address")->where("uid='$uid'")->count();
- echo json_encode($data);
- }
- /**
- * 查询订单列表
- * @return void
- */
- public function query_order_list()
- {
- $this->addHeaders(); //添加头部请求
- $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
- $uid = $user_info['id'];
- $page = $_POST['page'];
- $one_size = empty($_POST['pageSize']) ? 30 : $_POST['pageSize']; //每頁30行記錄
- $page_one = ($page - 1) * $one_size;
- $state = $_POST['state']; //订单状态0/待发1/已发2/已送达/3取消/4退款
- $sql = " AND shop_type='$state'";
- if(empty($state) && $state!='0' || $state=='-1')
- {
- $sql = "";
- }
- if($state=='6')
- {
- $sql = " AND shop_type in(3,4)";
- }
- $data['code'] = '200';
- $data['message'] = 'ok';
- $data['data'] = M("qq_user_shopping")
- ->field("id,uid,order_img,order_str,apply_date,pay_date,shop_count,amount,shop_type,shop_format,name,phone,address,remark,shipping_date,shop_wu_liu")
- ->where("uid='$uid'".$sql)->LIMIT($page_one, $one_size)->select();
- $data['all_num'] = M("qq_user_shopping")->where("uid='$uid'".$sql)->count();
- echo json_encode($data);
- }
- /**
- * 查询订单详情
- * @return void
- */
- public function get_order_detail()
- {
- $this->addHeaders(); //添加头部请求
- $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
- $uid = $user_info['id'];
- $id = $_POST['id'];
- $data['code'] = '200';
- $data['message'] = 'ok';
- $data['data'] = M("qq_user_shopping")
- ->field("id,uid,order_img,order_str,apply_date,pay_date,shop_count,amount,shop_type,shop_format,name,phone,address,remark,shipping_date,shop_wu_liu")
- ->where("id='$id'")->find();
- echo json_encode($data);
- }
- /**
- * 用户下单
- * @return void
- */
- public function buy()
- {
- $this->addHeaders(); //添加头部请求
- $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
- $uid = $user_info['id'];
- $user_money = $user_info['gold_coins_number'];
- $shop_id = $_POST['shopId']; //商品id
- $addr_id = $_POST['addr_id']; //收获地址id
- $shop_count = $_POST['shop_count']; //商品数量
- $shop_format = $_POST['shop_format']; //商品规格
- $remark = $_POST['remark']; //备注
- if (empty($shop_id) || empty($addr_id))
- {
- $this->returnDataAndSendMsg("商品标识或收货地址标识不能为空");
- die();
- }
- if (empty($shop_count) || empty($shop_format))
- {
- $this->returnDataAndSendMsg("购买数量或规格不能为空");
- die();
- }
- $shop_info = M("qq_shopping")->where("id='$shop_id'")->find();
- if(empty($shop_info))
- {
- $this->returnDataAndSendMsg("商品已下架");
- die();
- }
- //判断是否已售罄
- if($shop_info['shop_stock']<$shop_count)
- {
- $this->returnDataAndSendMsg("商品已售罄");
- die();
- }
- $addr_info = M("qq_user_address")->where("id='$addr_id'")->find();
- if(empty($shop_info))
- {
- $this->returnDataAndSendMsg("收货地址已不存在");
- die();
- }
- if($shop_count==0)
- {
- $this->returnDataAndSendMsg("非法操作");
- die();
- }
- $add_info['uid']=$uid;
- $add_info['order_img']=$shop_info['order_img'];//商品名称
- $add_info['order_str']=$shop_info['order_str']; //商品图片
- $add_info['apply_date']=date('Y-m-d H:i:s'); //提交时间
- $add_info['amount']=$shop_info['amount']*$shop_count; //付款金额
- $add_info['pay_date']=$add_info['apply_date'];
- $add_info['shop_count']=$shop_count;//商品数量
- $add_info['amount_due']=$shop_info['amount_due'];//付款时间
- $add_info['shop_id']=$shop_info['id'];
- $add_info['shop_type']=0; //订单状态0/待发1/已发2/已送达/3取消/4退款
- $add_info['shop_format']=$shop_format;
- //收货信息
- $add_info['name'] = $addr_info['name'];
- $add_info['phone'] = $addr_info['phone'];
- $add_info['address'] = $addr_info['address'];
- $add_info['remark'] = $remark;
- $add_info['shop_wu_liu'] = "已下单:".$add_info['apply_date'].","; //物流
- if($user_money<$add_info['amount'])
- {
- $this->returnDataAndSendMsg("您的金币余额不足,请及时充值");
- die();
- }
- //先扣款在下单
- $rs = M("user_info")->where("id='$uid'")->setDec("gold_coins_number",$add_info['amount']);
- if($rs<=0)
- {
- $this->returnDataAndSendMsg("操作失败,请稍后在试");
- die();
- }
- //剪库存
- $update_info['shop_stock'] = $shop_info['shop_stock']-$shop_count;//库存
- $update_info['shop_count'] = $shop_info['shop_count']+1;//下单数量
- M("qq_shopping")->where("id='$shop_id'")->save($update_info);
- //添加订单
- $rs = M("qq_user_shopping")->add($add_info);
- $data['code'] = '200';
- $data['message'] = 'ok';
- $data['data'] = $rs;
- echo json_encode($data);
- }
- }
|