<?php // +---------------------------------------------------------------------- // | bronet [ 以客户为中心 以奋斗者为本 ] // +---------------------------------------------------------------------- // | Copyright (c) 2013-2017 http://www.bronet.cn All rights reserved. // +---------------------------------------------------------------------- // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 ) // +---------------------------------------------------------------------- namespace app\portal\controller; use cmf\controller\WeChatBaseController; use EasyWeChat\Foundation\Application; use think\Db; class IndexController extends WeChatBaseController { /** * 显示首页 */ public function index(){ //显示分类 $data_classif= Db::name('classification') -> select(); $this -> assign('data_classif',$data_classif); //热门推荐 $data_goods_hot = Db::name('goods') -> alias('a') -> field('a.*,b.name') -> join('classification b','a.classify_id = b.id','LEFT') -> where("a.recommend_hot=1 and a.type = 1 and a.is_out = 1") -> select() -> toArray(); if(!empty($data_goods_hot)){ foreach($data_goods_hot as $key => $val){ $price = explode('.',$data_goods_hot[$key]['price']); $data_goods_hot[$key]['price0'] = $price[0]; $data_goods_hot[$key]['price1'] = $price[1]; } } //首页轮播图 $slideshow = Db::name('slide_item') -> select(); $this -> assign('slideshow',$slideshow); //判断用户是否存在 $uid = cmf_get_current_user_id(); $data_my_user = Db::name('my_user') -> where('uid',$uid) -> find(); if($data_my_user){ //用户是否为自由人 是自由人则绑定 不是自由人判断是不是老师 if($data_my_user['status'] == 0 || $data_my_user['status'] == 1 || $data_my_user['status'] == 5 || $data_my_user['status'] == 6){ $data_id = $this -> request -> param(); //判断跳转链接是否存在数据 存在则绑定关系 if(!empty($data_id['my_user_id'])){ //判断上级权限是否存在 $my_user = Db::name('my_user') -> where('id',$data_id['my_user_id']) -> find(); if(empty($my_user)){ $this->error('查无此人','','',''); } if($my_user['status'] != $data_id['status_id']){ $this->error('链接失效','','',''); } //判断数据是老师还是业务员 if($data_id['status_id'] == 2){ //业务员分享 更改用户身份为老师 $my_user_phone = Db::name('my_user') -> where('id',$data_id['my_user_id']) -> find(); $data_update['status'] = 3; $data_update['inviter_phone'] = $my_user_phone['phone']; $data_update['is_pro'] = 1; $data_update['pid'] = $my_user_phone['id']; $data_update['bind_time'] = time(); $data_update['bind_status'] = 1; Db::name('my_user') -> where('uid',$uid) -> update($data_update); $data_goods = Db::name('goods') -> where('uid',$my_user_phone['uid']) -> where('is_out',1) -> order("sort desc") -> limit(6) -> select() -> toArray(); }elseif ($data_id['status_id'] == 3){ //老师分享 更改用户身份为学生 $my_user_phone = Db::name('my_user') -> where('id',$data_id['my_user_id']) -> find(); $data_update['status'] = 4; $data_update['inviter_phone'] = $my_user_phone['phone']; $data_update['is_pro'] = 0; $data_update['pid'] = $my_user_phone['id']; $data_update['bind_time'] = time(); $data_update['bind_status'] = 1; Db::name('my_user') -> where('uid',$uid) -> update($data_update); $salesman_id = Db::name('my_user') -> where('id',$my_user_phone['pid']) -> find(); $data_goods = Db::name('goods') -> where('uid',$salesman_id['uid']) -> where('is_out',1) -> order("sort desc") -> limit(6) -> select() -> toArray(); } } }else{ $data_id = $this -> request -> param(); //判断跳转链接是否存在数据 if(!empty($data_id['status_id'])){ //判断上级权限是否存在 $my_user = Db::name('my_user') -> where('id',$data_id['my_user_id']) -> find(); if(empty($my_user)){ $this->error('查无此人','','',''); } if($my_user['status'] != $data_id['status_id']){ $this->error('链接失效','','',''); } //判断用户是不是老师 if($data_my_user['status'] == 3){ //是老师则判断老师绑定状态 if($data_my_user['bind_status'] = 2){ //判断是否为业务员分享的链接 if($data_id['status_id'] == 2){ //是业务员分享则更新老师的pid $my_user_phone = Db::name('my_user') -> where('id',$data_id['my_user_id']) -> find(); $data_update['pid'] = $my_user_phone['id']; $data_update['bind_time'] = time(); $data_update['bind_status'] = 1; Db::name('my_user') -> where('uid',$uid) -> update($data_update); $data_goods = Db::name('goods') -> where('uid',$my_user_phone['uid']) -> where('is_out',1) -> order("sort desc") -> limit(6) -> select() -> toArray(); }else{ $salesman_id = Db::name('my_user') -> where('id',$data_my_user['pid']) -> find(); $data_goods = Db::name('goods') -> where('uid',$salesman_id['uid']) -> where('is_out',1) -> order("sort desc") -> limit(6) -> select() -> toArray(); } }else{ $salesman_id = Db::name('my_user') -> where('id',$data_my_user['pid']) -> find(); $data_goods = Db::name('goods') -> where('uid',$salesman_id['uid']) -> where('is_out',1) -> order("sort desc") -> limit(6) -> select() -> toArray(); } }else{ //当为业务员时显示的数据 if($data_my_user['status'] == 2){ $data_goods = Db::name('goods') -> where('uid',$data_my_user['uid']) -> where('is_out',1) -> order("sort desc") -> limit(6) -> select() -> toArray(); } //当为学生时显示的数据 if($data_my_user['status'] == 4){ $teacher_id = Db::name('my_user') -> where('id',$data_my_user['pid']) -> find(); $salesman_id = Db::name('my_user') -> where('id',$teacher_id['pid']) -> find(); $data_goods = Db::name('goods') -> where('uid',$salesman_id['uid']) -> where('is_out',1) -> order("sort desc") -> limit(6) -> select() -> toArray(); } } }else{ //当为业务员时显示的数据 if($data_my_user['status'] == 2){ $data_goods = Db::name('goods') -> where('uid',$data_my_user['uid']) -> where('is_out',1) -> order("sort desc") -> limit(6) -> select() -> toArray(); } //当为老师时显示的数据 if($data_my_user['status'] == 3){ $salesman_id = Db::name('my_user') -> where('id',$data_my_user['pid']) -> find(); $data_goods = Db::name('goods') -> where('uid',$salesman_id['uid']) -> where('is_out',1) -> order("sort desc") -> limit(6) -> select() -> toArray(); } //当为学生时显示的数据 if($data_my_user['status'] == 4){ $teacher_id = Db::name('my_user') -> where('id',$data_my_user['pid']) -> find(); $salesman_id = Db::name('my_user') -> where('id',$teacher_id['pid']) -> find(); $data_goods = Db::name('goods') -> where('uid',$salesman_id['uid']) -> where('is_out',1) -> order("sort desc") -> limit(6) -> select() -> toArray(); } } } }else{ $data_id = $this -> request -> param(); //判断跳转链接是否存在数据 如果不存在添加一条自由人用户 if(!empty($data_id['my_user_id'])){ //判断上级权限是否存在 $my_user = Db::name('my_user') -> where('id',$data_id['my_user_id']) -> find(); if(empty($my_user)){ $this->error('查无此人','','',''); } if($my_user['status'] != $data_id['status_id']){ $this->error('链接失效','','',''); } //判断数据是老师还是业务员 if($data_id['status_id'] == 2){ //业务员分享 添加老师 $my_user_phone = Db::name('my_user') -> where('id',$data_id['my_user_id']) -> find(); $data_inser['status'] = 3; $data_inser['uid'] = $uid; $data_inser['inviter_phone'] = $my_user_phone['phone']; $data_inser['create_time'] = time(); $data_inser['is_pro'] = 1; $data_inser['pid'] = $my_user_phone['id']; $data_inser['bind_time'] = time(); $data_inser['bind_status'] = 1; Db::name('my_user') -> insert($data_inser); $data_goods = Db::name('goods') -> where('uid',$my_user_phone['uid']) -> where('is_out',1) -> order("sort desc") -> limit(6) -> select() -> toArray(); }elseif ($data_id['status_id'] == 3){ //老师分享 添加学生 $my_user_phone = Db::name('my_user') -> where('id',$data_id['my_user_id']) -> find(); $data_inser['status'] = 4; $data_inser['uid'] = $uid; $data_inser['inviter_phone'] = $my_user_phone['phone']; $data_inser['create_time'] = time(); $data_inser['is_pro'] = 0; $data_inser['pid'] = $my_user_phone['id']; $data_inser['bind_time'] = time(); $data_inser['bind_status'] = 1; Db::name('my_user') -> insert($data_inser); $salesman_id = Db::name('my_user') -> where('id',$my_user_phone['pid']) -> find(); $data_goods = Db::name('goods') -> where('uid',$salesman_id['uid']) -> where('is_out',1) -> order("sort desc") -> limit(6) -> select() -> toArray(); } }else{ $data_inser['status'] = 0; $data_inser['uid'] = $uid; $data_inser['create_time'] = time(); $data_inser['is_pro'] = 0; Db::name('my_user') -> insert($data_inser); } } if(empty($data_goods)) { $data_goods = null; $limit_num = 6; }else{ $limit_num = 6-count($data_goods); } $this -> assign('data_goods',$data_goods); //推荐新品 if($limit_num != 0){ $data_goods_recommend_new = Db::name('goods') -> alias('a') -> field('a.*,b.name') -> join('classification b','a.classify_id = b.id','LEFT') -> where("recommend_new=1 and is_out = 1 and type = 1") -> limit(0) -> select() -> toArray(); }else{ $data_goods_recommend_new = null; } //分享 $options=config('wechat_config'); $app = new Application($options); $js = $app->js; $jssdk=$js->config(array('onMenuShareAppMessage', 'onMenuShareTimeline'), false,false,true); $this->assign('jssdk',$jssdk); $arr = []; if($data_my_user['status'] == 3){ $arr['status_id'] = 3; $arr['my_user_id'] = $data_my_user['id']; }else if($data_my_user['status'] == 4) { $arr['status_id'] = 3; $arr['my_user_id'] = $data_my_user['pid']; } $url = url('',$arr,true,true); $this->assign('url',$url); $this -> assign('data_goods_recommend_new',$data_goods_recommend_new); $this -> assign('data_goods_hot',$data_goods_hot); return $this -> fetch(); } /** * 首页搜索 */ public function search_salesman_goods(){ $book_name = $this -> request -> param(); $uid = cmf_get_current_user_id(); $data_status = Db::name('my_user') -> where("uid",$uid) -> find(); $where = ['type'=>1]; if($data_status['status'] == 2){ $where = "type = 1 or uid = ".$uid; } if($data_status['status'] == 3){ $salesman_uid = Db::name('my_user') -> where('id',$data_status['pid']) -> find(); $where = "type = 1 or uid =".$salesman_uid['uid']; } if($data_status['status'] == 4){ $teacher_id = Db::name('my_user') -> where('id',$data_status['pid']) -> find(); $salesman_id = Db::name('my_user') -> where('id',$teacher_id['pid']) -> find(); $where = "type = 1 or uid =".$salesman_id['uid']; } if(empty($book_name['book_name'])){ $book_name = ''; $data_salesman_goods = Db::name('goods') -> alias('a') -> field("a.*,b.name") -> join('classification b','a.classify_id = b.id','LEFT') -> where($where) -> where('is_out',1) -> select() -> toArray(); }else{ $book_name = $book_name['book_name']; $data_salesman_goods = Db::name('goods') -> alias('a') -> field("a.*,b.name") -> join('classification b','a.classify_id = b.id','LEFT') -> where($where) -> where('is_out',1) -> where('book_name','like',"%".$book_name."%") -> select() -> toArray(); } if(!empty($data_salesman_goods)){ foreach ($data_salesman_goods as $key => $val){ $price = explode('.',$data_salesman_goods[$key]['price']); $data_salesman_goods[$key]['price0'] = $price[0]; $data_salesman_goods[$key]['price1'] = $price[1]; } } $this -> assign('search_content',$book_name); $this -> assign('data_salesman_goods',$data_salesman_goods); return $this -> fetch(); } /** * 首页搜索结果页 销量排序 */ public function search_sales_order(){ $uid = cmf_get_current_user_id(); $data_status = Db::name('my_user') -> where("uid",$uid) -> find(); $where = ['type'=>1]; if($data_status['status'] == 2){ $where = "type = 1 or uid = ".$uid; } if($data_status['status'] == 3){ $salesman_uid = Db::name('my_user') -> where('id',$data_status['pid']) -> find(); $where = "type = 1 or uid =".$salesman_uid['uid']; } if($data_status['status'] == 4){ $teacher_id = Db::name('my_user') -> where('id',$data_status['pid']) -> find(); $salesman_id = Db::name('my_user') -> where('id',$teacher_id['pid']) -> find(); $where = "type = 1 or uid =".$salesman_id['uid']; } $search_content = $_POST['search_content']; $search_content_data = Db::name('goods') -> alias('a') -> field("a.*,b.name") -> join('classification b','a.classify_id = b.id','LEFT') -> where($where) -> where('book_name','like',"%".$search_content."%") -> order('sales desc') -> select() -> toArray(); if(!empty($search_content_data)){ foreach ($search_content_data as $key => $val){ $price = explode('.',$search_content_data[$key]['price']); $search_content_data[$key]['price0'] = $price[0]; $search_content_data[$key]['price1'] = $price[1]; $search_content_data[$key]['show_img'] = cmf_get_image_url($search_content_data[$key]['show_img']); } } return json_encode($search_content_data); } /** * 首页搜索结果页 价格排序 */ public function search_price_order(){ $uid = cmf_get_current_user_id(); $data_status = Db::name('my_user') -> where("uid",$uid) -> find(); $where = ['type'=>1]; if($data_status['status'] == 2){ $where = "type = 1 or uid = ".$uid; } if($data_status['status'] == 3){ $salesman_uid = Db::name('my_user') -> where('id',$data_status['pid']) -> find(); $where = "type = 1 or uid =".$salesman_uid['uid']; } if($data_status['status'] == 4){ $teacher_id = Db::name('my_user') -> where('id',$data_status['pid']) -> find(); $salesman_id = Db::name('my_user') -> where('id',$teacher_id['pid']) -> find(); $where = "type = 1 or uid =".$salesman_id['uid']; } $search_content = $_POST['search_content']; $search_content_data = Db::name('goods') -> alias('a') -> field("a.*,b.name") -> join('classification b','a.classify_id = b.id','LEFT') -> where($where) -> where('book_name','like',"%".$search_content."%") -> order('price desc') -> select() -> toArray(); if(!empty($search_content_data)){ foreach ($search_content_data as $key => $val){ $price = explode('.',$search_content_data[$key]['price']); $search_content_data[$key]['price0'] = $price[0]; $search_content_data[$key]['price1'] = $price[1]; $search_content_data[$key]['show_img'] = cmf_get_image_url($search_content_data[$key]['show_img']); } } return json_encode($search_content_data); } /** * 首页搜索结果页 综合 */ public function search_synthesis_order(){ $uid = cmf_get_current_user_id(); $data_status = Db::name('my_user') -> where("uid",$uid) -> find(); $where = ['type'=>1]; if($data_status['status'] == 2){ $where = "type = 1 or uid = ".$uid; } if($data_status['status'] == 3){ $salesman_uid = Db::name('my_user') -> where('id',$data_status['pid']) -> find(); $where = "type = 1 or uid =".$salesman_uid['uid']; } if($data_status['status'] == 4){ $teacher_id = Db::name('my_user') -> where('id',$data_status['pid']) -> find(); $salesman_id = Db::name('my_user') -> where('id',$teacher_id['pid']) -> find(); $where = "type = 1 or uid =".$salesman_id['uid']; } $book_name = $_POST['search_content']; $data_salesman_goods = Db::name('goods') -> alias('a') -> field("a.*,b.name") -> join('classification b','a.classify_id = b.id','LEFT') -> where($where) -> where('book_name','like',"%".$book_name."%") -> select() -> toArray(); if(!empty($data_salesman_goods)){ foreach ($data_salesman_goods as $key => $val){ $price = explode('.',$data_salesman_goods[$key]['price']); $data_salesman_goods[$key]['price0'] = $price[0]; $data_salesman_goods[$key]['price1'] = $price[1]; $data_salesman_goods[$key]['show_img'] = cmf_get_image_url($data_salesman_goods[$key]['show_img']); } } return json_encode($data_salesman_goods); } /** * 搜索跳转详情页 */ public function search_goods_details(){ $goods_id = $this -> request -> param(); $data = Db::name('goods') -> alias('a') -> field("a.*,b.name") -> join('classification b','a.classify_id = b.id','LEFT') -> where('a.id',$goods_id['goods_id']) -> find(); $price = explode('.',$data['price']); $pricing = explode('.',$data['pricing']); $data['price0'] = $price[0]; $data['price1'] = $price[1]; $data['pricing0'] = $pricing[0]; $data['pricing1'] = $pricing[1]; $data['det_img'] = json_decode($data['det_img'],true); $this -> assign('det_img',$data['det_img']); $this -> assign('data',$data); $data_label = Db::name('label') -> alias('a') -> field("a.*,b.goods_id,b.label_id") -> join('goods_label b','a.id=b.label_id','LEFT') -> where("b.goods_id = ".$goods_id['goods_id']) -> select(); $this -> assign('data_label',$data_label); if($data['type'] == 1){ //相关推荐 $data_recomm = Db::name('goods') -> where("classify_id =".$data['classify_id']." and type = 1") -> limit(3) -> select(); $this -> assign('data_recomm',$data_recomm); $this -> assign('is_recomm',1); }else{ $this -> assign('is_recomm',2); } //添加浏览记录 $uid = cmf_get_current_user_id(); $data_browsing_history = Db::name('browsing_history') -> where("uid = ".$uid." and goods_id =".$goods_id['goods_id']) -> find(); if(empty($data_browsing_history)){ $browsing_history['uid'] = $uid; $browsing_history['goods_id'] = $goods_id['goods_id']; Db::name('browsing_history') -> insert($browsing_history); } return $this -> fetch(); } /** * 显示业务员商城页 */ public function salesman_goods(){ $uid = cmf_get_current_user_id(); $user = Db::name('my_user') -> where('uid',$uid) -> find(); if($user['status'] == 0 || $user['status'] == 1 || $user['status'] == 5 || $user['status'] == 6){ $salesman_goods = null; }elseif ($user['status'] == 2){ $salesman_goods = Db::name('goods') -> where('uid',$uid) -> where('is_out',1) -> order("sort desc") -> select() -> toArray(); }elseif ($user['status'] == 3){ $salesman_id = Db::name('my_user') -> where('id',$user['pid']) -> find(); $salesman_goods = Db::name('goods') -> where('uid',$salesman_id['uid']) -> where('is_out',1) -> order("sort desc") -> select() -> toArray(); }elseif ($user['status'] == 4){ $teacher_id = Db::name('my_user') -> where('id',$user['pid']) -> find(); $salesman_id = Db::name('my_user') -> where('id',$teacher_id['pid']) -> find(); $salesman_goods = Db::name('goods') -> where('uid',$salesman_id['uid']) -> where('is_out',1) -> order("sort desc") -> select() -> toArray(); } $param = $this->request->param(); if(!empty($param['status_id']) && !empty($param['my_user_id'])){ //判断上级权限是否存在 $my_user = Db::name('my_user') -> where('id',$param['my_user_id']) -> find(); if(empty($my_user)){ $this->error('查无此人','','',''); } if($my_user['status'] != $param['status_id']){ $this->error('分享失效','','',''); } if($user['status'] == 0){ //判断数据是老师还是业务员 if($param['status_id'] == 2){ //业务员分享 更改用户身份为老师 $my_user_phone = Db::name('my_user') -> where('id',$param['my_user_id']) -> find(); $data_update['status'] = 3; $data_update['inviter_phone'] = $my_user_phone['phone']; $data_update['is_pro'] = 1; $data_update['pid'] = $my_user_phone['id']; $data_update['bind_time'] = time(); $data_update['bind_status'] = 1; Db::name('my_user') -> where('uid',$uid) -> update($data_update); }elseif ($param['status_id'] == 3){ //老师分享 更改用户身份为学生 $my_user_phone = Db::name('my_user') -> where('id',$param['my_user_id']) -> find(); $data_update['status'] = 4; $data_update['inviter_phone'] = $my_user_phone['phone']; $data_update['is_pro'] = 0; $data_update['pid'] = $my_user_phone['id']; $data_update['bind_time'] = time(); $data_update['bind_status'] = 1; Db::name('my_user') -> where('uid',$uid) -> update($data_update); $salesman_id = Db::name('my_user') -> where('id',$my_user_phone['pid']) -> find(); } } } if(!empty($salesman_goods)){ foreach ($salesman_goods as $key => $val){ $price = explode('.',$salesman_goods[$key]['price']); $salesman_goods[$key]['price0'] = $price[0]; $salesman_goods[$key]['price1'] = $price[1]; } } $this -> assign('salesman_goods',$salesman_goods); $goods = Db::name('goods') -> where("type = 1 and is_out = 1 and recommend_new = 1") -> select() -> toArray(); if(!empty($goods)){ foreach($goods as $key => $val){ $price = explode('.',$goods[$key]['price']); $goods[$key]['price0'] = $price[0]; $goods[$key]['price1'] = $price[1]; } } $this -> assign('goods',$goods); //分享 $options=config('wechat_config'); $app = new Application($options); $js = $app->js; $jssdk=$js->config(array('onMenuShareAppMessage', 'onMenuShareTimeline'), false,false,true); $this->assign('jssdk',$jssdk); $arr = []; if($user['status'] == 3){ $arr['status_id'] = 3; $arr['my_user_id'] = $user['id']; }else if($user['status'] == 4) { $arr['status_id'] = 3; $arr['my_user_id'] = $user['pid']; } $url = url('portal/index/salesman_goods',$arr,true,true); $this->assign('url',$url); return $this -> fetch(); } /** * 显示热门推荐页 */ public function hot_goods(){ $hot_goods = Db::name('goods') -> alias('a') -> field("a.*,b.name") -> join("classification b","a.classify_id = b.id","LEFT") -> where("a.type = 1 and a.is_out = 1 and recommend_hot = 1") -> select() -> toArray(); if(!empty($hot_goods)){ foreach ($hot_goods as $key => $val){ $price = explode('.',$hot_goods[$key]['price']); $hot_goods[$key]['price0'] = $price[0]; $hot_goods[$key]['price1'] = $price[1]; } } $this -> assign('hot_goods',$hot_goods); return $this -> fetch(); } /** *搜索页点击搜索 */ public function my_search(){ $uid = cmf_get_current_user_id(); $data_status = Db::name('my_user') -> where("uid",$uid) -> find(); $where = ['type'=>1]; if($data_status['status'] == 2){ $where = "type = 1 or uid = ".$uid; } if($data_status['status'] == 3){ $salesman_uid = Db::name('my_user') -> where('id',$data_status['pid']) -> find(); $where = "type = 1 or uid =".$salesman_uid['uid']; } if($data_status['status'] == 4){ $teacher_id = Db::name('my_user') -> where('id',$data_status['pid']) -> find(); $salesman_id = Db::name('my_user') -> where('id',$teacher_id['pid']) -> find(); $where = "type = 1 or uid =".$salesman_id['uid']; } if(empty($_POST['book_name'])){ $book_name = ''; $data_salesman_goods = Db::name('goods') -> alias('a') -> field("a.*,b.name") -> join('classification b','a.classify_id = b.id','LEFT') -> where($where) -> where('is_out',1) -> select() -> toArray(); }else{ $book_name = $_POST['book_name']; $data_salesman_goods = Db::name('goods') -> alias('a') -> field("a.*,b.name") -> join('classification b','a.classify_id = b.id','LEFT') -> where($where) -> where('is_out',1) -> where('book_name','like',"%".$book_name."%") -> select() -> toArray(); } if(!empty($data_salesman_goods)){ foreach ($data_salesman_goods as $key => $val){ $price = explode('.',$data_salesman_goods[$key]['price']); $data_salesman_goods[$key]['price0'] = $price[0]; $data_salesman_goods[$key]['price1'] = $price[1]; $data_salesman_goods[$key]['show_img'] = cmf_get_image_url($data_salesman_goods[$key]['show_img']); } } return json_encode($data_salesman_goods); } }