| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313 |
- <?php
- namespace app\ebapi\controller;
- use app\core\model\user\UserBill;
- use app\core\model\system\SystemUserLevel;
- use app\core\model\system\SystemUserTask;
- use app\core\model\user\UserLevel;
- use app\ebapi\model\store\StoreCategory;
- use app\core\model\routine\RoutineFormId;//待完善
- use app\ebapi\model\store\StoreCouponIssue;
- use app\ebapi\model\store\StoreProduct;
- use app\core\util\GroupDataService;
- use service\HttpService;
- use service\JsonService;
- use app\core\util\SystemConfigService;
- use service\UploadService;
- use service\UtilService;
- use service\CacheService;
- use think\Cache;
- /**
- * 小程序公共接口
- * Class PublicApi
- * @package app\ebapi\controller
- *
- */
- class PublicApi extends AuthController
- {
- /*
- * 白名单不验证token 如果传入token执行验证获取信息,没有获取到用户信息
- * */
- public static function whiteList()
- {
- return [
- 'index',
- 'get_index_groom_list',
- 'get_hot_product',
- 'refresh_cache',
- 'clear_cache',
- 'get_logo_url',
- 'get_my_naviga',
- ];
- }
- /*
- * 获取个人中心菜单
- * */
- public function get_my_naviga()
- {
- return JsonService::successful(['routine_my_menus'=>GroupDataService::getData('routine_my_menus')]);
- }
- /*
- * 获取授权登录log
- * */
- public function get_logo_url()
- {
- $routine_logo=SystemConfigService::get('routine_logo');
- return JsonService::successful(['logo_url'=>str_replace('\\','/',$routine_logo)]);
- }
- /**
- * TODO 获取首页推荐不同类型产品的轮播图和产品
- * @param int $type
- */
- public function get_index_groom_list($type = 1){
- $info['banner'] = [];
- $info['list'] = [];
- if($type == 1){//TODO 精品推荐
- $info['banner'] = GroupDataService::getData('routine_home_bast_banner')?:[];//TODO 首页精品推荐图片
- $info['list'] = StoreProduct::getBestProduct('id,image,store_name,cate_id,price,ot_price,IFNULL(sales,0) + IFNULL(ficti,0) as sales,unit_name,sort');//TODO 精品推荐个数
- }else if($type == 2){//TODO 热门榜单
- $info['banner'] = GroupDataService::getData('routine_home_hot_banner')?:[];//TODO 热门榜单 猜你喜欢推荐图片
- $info['list'] = StoreProduct::getHotProduct('id,image,store_name,cate_id,price,ot_price,unit_name,sort,IFNULL(sales,0) + IFNULL(ficti,0) as sales',0,$this->uid);//TODO 热门榜单 猜你喜欢
- }else if($type == 3){//TODO 首发新品
- $info['banner'] = GroupDataService::getData('routine_home_new_banner')?:[];//TODO 首发新品推荐图片
- $info['list'] = StoreProduct::getNewProduct('id,image,store_name,cate_id,price,ot_price,unit_name,sort,IFNULL(sales,0) + IFNULL(ficti,0) as sales',0,$this->uid);//TODO 首发新品
- }else if($type == 4){//TODO 促销单品
- $info['banner'] = GroupDataService::getData('routine_home_benefit_banner')?:[];//TODO 促销单品推荐图片
- $info['list'] = StoreProduct::getBenefitProduct('id,image,store_name,cate_id,price,ot_price,stock,unit_name,sort');//TODO 促销单品
- }
- return JsonService::successful($info);
- }
- /**
- * 首页
- */
- public function index(){
- $banner = GroupDataService::getData('routine_home_banner')?:[];//TODO 首页banner图
- $menus = GroupDataService::getData('routine_home_menus')?:[];//TODO 首页按钮
- $roll = GroupDataService::getData('routine_home_roll_news')?:[];//TODO 首页滚动新闻
- $activity = GroupDataService::getData('routine_home_activity',3)?:[];//TODO 首页活动区域图片
- $info['fastInfo'] = SystemConfigService::get('fast_info');//TODO 快速选择简介
- $info['bastInfo'] = SystemConfigService::get('bast_info');//TODO 精品推荐简介
- $info['firstInfo'] = SystemConfigService::get('first_info');//TODO 首发新品简介
- $info['salesInfo'] = SystemConfigService::get('sales_info');//TODO 促销单品简介
- $logoUrl = SystemConfigService::get('routine_index_logo');//TODO 促销单品简介
- if(strstr($logoUrl,'http')===false) $logoUrl=SystemConfigService::get('site_url').$logoUrl;
- $logoUrl=str_replace('\\','/',$logoUrl);
- $fastNumber = (int)SystemConfigService::get('fast_number');//TODO 快速选择分类个数
- $bastNumber = (int)SystemConfigService::get('bast_number');//TODO 精品推荐个数
- $firstNumber = (int)SystemConfigService::get('first_number');//TODO 首发新品个数
- $info['fastList'] = StoreCategory::byIndexList($fastNumber);//TODO 快速选择分类个数
- $info['bastList'] = StoreProduct::getBestProduct('id,image,store_name,cate_id,price,ot_price,IFNULL(sales,0) + IFNULL(ficti,0) as sales,unit_name,sort',$bastNumber,$this->uid);//TODO 精品推荐个数
- $info['firstList'] = StoreProduct::getNewProduct('id,image,store_name,cate_id,price,unit_name,sort',$firstNumber);//TODO 首发新品个数
- $info['bastBanner'] = GroupDataService::getData('routine_home_bast_banner')?:[];//TODO 首页精品推荐图片
- $benefit = StoreProduct::getBenefitProduct('id,image,store_name,cate_id,price,ot_price,stock,unit_name,sort',3);//TODO 首页促销单品
- $lovely =[];//TODO 首发新品顶部图
- $likeInfo = StoreProduct::getHotProduct('id,image,store_name,cate_id,price,unit_name,sort',3);//TODO 热门榜单 猜你喜欢
- $couponList=StoreCouponIssue::getIssueCouponList($this->uid,3);
- return $this->successful(compact('banner','menus','roll','info','activity','lovely','benefit','likeInfo','logoUrl','couponList'));
- }
- /**
- * 猜你喜欢 加载
- * @param Request $request
- */
- public function get_hot_product(){
- $data = UtilService::getMore([['offset',0],['limit',0]],$this->request);
- $hot = StoreProduct::getHotProductLoading('id,image,store_name,cate_id,price,unit_name,sort',$data['offset'],$data['limit']);//猜你喜欢
- return $this->successful($hot);
- }
- /*
- * 根据经纬度获取当前地理位置
- * */
- public function getlocation($latitude='',$longitude=''){
- $location=HttpService::getRequest('https://apis.map.qq.com/ws/geocoder/v1/',
- ['location'=>$latitude.','.$longitude,'key'=>'U65BZ-F2IHX-CGZ4I-73I7L-M6FZF-TEFCH']);
- $location=$location ? json_decode($location,true) : [];
- if($location && isset($location['result']['address'])){
- try{
- $address=$location['result']['address_component']['street'];
- return $this->successful(['address'=>$address]);
- }catch (\Exception $e){
- return $this->fail('获取位置信息失败!');
- }
- }else{
- return $this->fail('获取位置信息失败!');
- }
- }
- /*
- * 根据key来取系统的值
- * */
- public function get_system_config_value($name=''){
- if($name=='') return JsonService::fail('缺少参数');
- $name=str_replace(SystemConfigService::$ProtectedKey,'',$name);
- if(strstr($name,',')!==false){
- return $this->successful(SystemConfigService::more($name));
- }else{
- $value=SystemConfigService::get($name);
- $value=is_array($value) ? $value[0] : $value;
- return $this->successful([$name=>$value]);
- }
- }
- /*
- * 获取系统
- * */
- public function get_system_group_data_value($name='',$multi=0){
- if($name=='') return $this->successful([$name=>[]]);
- if($multi==1){
- $name=json_decode($name,true);
- $value=[];
- foreach ($name as $item){
- $value[$item]=GroupDataService::getData($item)?:[];
- }
- return $this->successful($value);
- }else{
- $value= GroupDataService::getData($name)?:[];
- return $this->successful([$name=>$value]);
- }
- }
- /*
- * 删除指定资源
- *
- * */
- public function delete_image(){
- $post=UtilService::postMore([
- ['pic',''],
- ]);
- if($post['pic']=='') return $this->fail('缺少删除资源');
- $type=['php','js','css','html','ttf','otf'];
- $post['pic']=substr($post['pic'],1);
- $ext=substr($post['pic'],-3);
- if(in_array($ext,$type)) return $this->fail('非法操作');
- if(strstr($post['pic'],'uploads')===false) return $this->fail('非法操作');
- try{
- if(file_exists($post['pic'])) unlink($post['pic']);
- if(strstr($post['pic'],'s_')!==false){
- $pic=str_replace(['s_'],'',$post['pic']);
- if(file_exists($pic)) unlink($pic);
- }
- return $this->successful('删除成功');
- }catch (\Exception $e){
- return $this->fail('刪除失败',['line'=>$e->getLine(),'message'=>$e->getMessage()]);
- }
- }
- /**
- * 上传图片
- * @param string $filename
- * @return \think\response\Json
- */
- public function upload($dir='')
- {
- $data = UtilService::postMore([
- ['filename',''],
- ],$this->request);
- if(Cache::has('start_uploads_'.$this->uid) && Cache::get('start_uploads_'.$this->uid) >= 100) return $this->fail('非法操作');
- $res = UploadService::image($data['filename'],$dir ? $dir: 'store/comment');
- if($res->status == 200){
- if(Cache::has('start_uploads_'.$this->uid))
- $start_uploads=(int)Cache::get('start_uploads_'.$this->uid);
- else
- $start_uploads=0;
- $start_uploads++;
- Cache::set('start_uploads_'.$this->uid,$start_uploads,86400);
- return $this->successful('图片上传成功!', ['name' => $res->fileInfo->getSaveName(), 'url' => UploadService::pathToUrl($res->dir)]);
- }else
- return $this->fail($res->error);
- }
- /**
- * 获取退款理由
- */
- public function get_refund_reason(){
- $reason = SystemConfigService::get('stor_reason')?:[];//退款理由
- $reason = str_replace("\r\n","\n",$reason);//防止不兼容
- $reason = explode("\n",$reason);
- return $this->successful($reason);
- }
- /**
- * 获取提现银行
- */
- public function get_user_extract_bank(){
- $extractBank = SystemConfigService::get('user_extract_bank')?:[];//提现银行
- $extractBank = str_replace("\r\n","\n",$extractBank);//防止不兼容
- $data['extractBank'] = explode("\n",$extractBank);
- $data['minPrice'] = SystemConfigService::get('user_extract_min_price');//提现最低金额
- return $this->successful($data);
- }
- /**
- * 收集发送模板信息的formID
- * @param string $formId
- */
- public function get_form_id($formId = ''){
- if($formId==''){
- list($formIds)=UtilService::postMore([
- ['formIds',[]]
- ],$this->request,true);
- foreach ($formIds as $formId){
- RoutineFormId::SetFormId($formId,$this->uid);
- }
- }else
- RoutineFormId::SetFormId($formId,$this->uid);
- return $this->successful('');
- }
- /**
- * 刷新数据缓存
- */
- public function refresh_cache(){
- `php think optimize:schema`;
- `php think optimize:autoload`;
- `php think optimize:route`;
- `php think optimize:config`;
- }
- /*
- * 清除系统全部缓存
- * @return
- * */
- public function clear_cache()
- {
- \think\Cache::clear();
- }
- /*
- * 获取会员等级
- * */
- public function get_level_list()
- {
- return JsonService::successful(SystemUserLevel::getLevelList($this->uid));
- }
- /*
- * 获取某个等级的任务
- * @param int $level_id 等级id
- * @return json
- * */
- public function get_task($level_id=''){
- return JsonService::successful(SystemUserTask::getTashList($level_id,$this->uid));
- }
- /*
- * 检测用户是否可以成为会员
- * */
- public function set_level_complete()
- {
- return JsonService::successful(UserLevel::setLevelComplete($this->uid));
- }
- /*
- * 记录用户分享次数
- * */
- public function set_user_share()
- {
- return JsonService::successful(UserBill::setUserShare($this->uid));
- }
- }
|