517 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			517 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			PHP
		
	
	
|  | <?php | ||
|  | namespace app\api\logic; | ||
|  | 
 | ||
|  | use app\common\basics\Logic; | ||
|  | use app\common\enum\CommunityArticleEnum; | ||
|  | use app\common\enum\FootprintEnum; | ||
|  | use app\common\enum\ShopEnum; | ||
|  | use app\common\model\community\CommunityArticle; | ||
|  | use app\common\model\content\Article; | ||
|  | use app\common\model\goods\Goods; | ||
|  | use app\common\enum\GoodsEnum; | ||
|  | use app\common\model\shop\Shop; | ||
|  | use app\common\model\goods\GoodsCategory; | ||
|  | use app\common\server\ConfigServer; | ||
|  | use app\common\server\UrlServer; | ||
|  | use app\api\logic\SeckillGoodsLogic; | ||
|  | use think\facade\Db; | ||
|  | use app\common\model\activity_area\ActivityArea; | ||
|  | use think\facade\Event; | ||
|  | 
 | ||
|  | 
 | ||
|  | class IndexLogic extends Logic | ||
|  | { | ||
|  |     public static function index($user_id,$terminal) | ||
|  |     { | ||
|  |         // 记录访问足迹
 | ||
|  |         event('Footprint', [ | ||
|  |             'type'    => FootprintEnum::ENTER_MALL, | ||
|  |             'user_id' => $user_id | ||
|  |         ]); | ||
|  | 
 | ||
|  |         // 记录统计信息(用户访问量)
 | ||
|  |         Event::listen('UserStat', 'app\common\listener\UserStat'); | ||
|  |         event('UserStat'); | ||
|  | 
 | ||
|  |         // 商城头条
 | ||
|  |         $headlines = self::getHeadlines(); | ||
|  | 
 | ||
|  |         // 热销榜单
 | ||
|  |         $hots = self::getHots(); | ||
|  | 
 | ||
|  |         // 新品推荐
 | ||
|  |         $news = self::getNews(); | ||
|  | 
 | ||
|  |         // 推荐店铺列表
 | ||
|  |         $shopLists = self::getShopList(); | ||
|  |         // 精选推荐店铺
 | ||
|  |         $shopRecommend = self::getShopRecommend(); | ||
|  | 
 | ||
|  |         // 秒杀商品
 | ||
|  |         $seckillTimes = SeckillGoodsLogic::seckillTime(); | ||
|  |         $seckillGoods = []; | ||
|  |         foreach($seckillTimes as $item) { | ||
|  |             $item['goods'] = SeckillGoodsLogic::getSeckillGoodsTwo($item['id'],$terminal); | ||
|  |             $seckillGoods[] = $item; | ||
|  |         } | ||
|  |         //活动专区
 | ||
|  |         $activity_area = ActivityArea::field('id,name,synopsis as title,image')->where(['del'=>0,'status'=>1])->select(); | ||
|  |         foreach ($activity_area as &$area_item){ | ||
|  |             $area_item['image'] = UrlServer::getFileUrl($area_item['image']); | ||
|  |         } | ||
|  | 
 | ||
|  |         // 种草社区文章
 | ||
|  |         $communityArticle = self::getCommunityArticle(); | ||
|  | 
 | ||
|  |         return [ | ||
|  |             'headlines' => $headlines, | ||
|  |             'hots' => $hots, | ||
|  |             'news' => $news, | ||
|  |             'activity_area' => $activity_area, | ||
|  |             'shop_lists' => $shopLists, | ||
|  |             'shop_recommend' => $shopRecommend, | ||
|  |             'seckill_goods' => $seckillGoods, | ||
|  |             'community_article' => $communityArticle | ||
|  |         ]; | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * 获取商城头条 | ||
|  |      */ | ||
|  |     public static function getHeadlines() | ||
|  |     { | ||
|  |         $headlines = Article::field('id,title') | ||
|  |             ->where([ | ||
|  |                 'del' => 0, | ||
|  |                 'is_show' => 1, | ||
|  |                 'is_notice' => 1,  // 是否为商城公告
 | ||
|  |             ]) | ||
|  |             ->order([ | ||
|  |                 'create_time' => 'desc', | ||
|  |                 'id' => 'desc' | ||
|  |             ]) | ||
|  |             ->limit(3) | ||
|  |             ->select() | ||
|  |             ->toArray(); | ||
|  |         return $headlines; | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * 获取热销榜单 | ||
|  |      */ | ||
|  |     public static function getHots() | ||
|  |     { | ||
|  |         // 销售中商品:未删除/审核通过/已上架
 | ||
|  |         $onSaleWhere = [ | ||
|  |             'del' => GoodsEnum::DEL_NORMAL, // 未删除
 | ||
|  |             'status' => GoodsEnum::STATUS_SHELVES, // 上架中
 | ||
|  |             'audit_status' => GoodsEnum::AUDIT_STATUS_OK, // 审核通过
 | ||
|  |         ]; | ||
|  |         $order = [ | ||
|  |             'sales_total' => 'desc', // 实际销量+虚拟销量倒序
 | ||
|  |             'sales_actual' => 'desc', // 实际销量倒序
 | ||
|  |             'sort_weight' => 'asc', // 商品权重
 | ||
|  |             'id' => 'desc' | ||
|  |         ]; | ||
|  |         $hots = Goods::field('id,name,image,min_price,market_price,sales_actual,create_time,sales_virtual,(sales_actual + sales_virtual) as sales_total') | ||
|  |             ->where($onSaleWhere) | ||
|  |             ->order($order) | ||
|  |             ->limit(9) | ||
|  |             ->select() | ||
|  |             ->toArray(); | ||
|  | 
 | ||
|  |         return $hots; | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * 获取新品推荐 | ||
|  |      */ | ||
|  |     public static function getNews() | ||
|  |     { | ||
|  |         // 销售中商品:未删除/审核通过/已上架
 | ||
|  |         $onSaleWhere = [ | ||
|  |             'del' => GoodsEnum::DEL_NORMAL, // 未删除
 | ||
|  |             'status' => GoodsEnum::STATUS_SHELVES, // 上架中
 | ||
|  |             'audit_status' => GoodsEnum::AUDIT_STATUS_OK, // 审核通过
 | ||
|  |         ]; | ||
|  |         $order = [ | ||
|  |             'create_time' => 'desc', // 创建时间
 | ||
|  |             'sales_actual' => 'desc', // 实际销量
 | ||
|  |             'sort_weight' => 'asc', // 商品权重
 | ||
|  |             'id' => 'desc' | ||
|  |         ]; | ||
|  |         $news = Goods::field('id,name,image,min_price,market_price,sales_actual,create_time,sales_virtual,(sales_actual + sales_virtual) as sales_total') | ||
|  |             ->where($onSaleWhere) | ||
|  |             ->order($order) | ||
|  |             ->limit(3) | ||
|  |             ->select() | ||
|  |             ->toArray(); | ||
|  | 
 | ||
|  |         return $news; | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * 获取推荐店铺列表 | ||
|  |      */ | ||
|  |     public static function getShopList() | ||
|  |     { | ||
|  |         $where = [ | ||
|  |             ['del', '=', 0], | ||
|  |             ['is_recommend', '=', 1], | ||
|  |             ['is_freeze', '=', 0], | ||
|  |             ['is_run', '=', 1], | ||
|  |         ]; | ||
|  |         $order = [ | ||
|  |             'weight' => 'asc', | ||
|  |             'id' => 'desc' | ||
|  |         ]; | ||
|  |         $shopLists = Db::name('shop') | ||
|  |             ->field('id,name,logo,background,expire_time,cover,banner,visited_num') | ||
|  |             ->where($where) | ||
|  |             ->order($order) | ||
|  |             ->select() | ||
|  |             ->toArray(); | ||
|  | 
 | ||
|  |         // 计算在线销售商品
 | ||
|  |         $goodsWhere = [ | ||
|  |             'del' => GoodsEnum::DEL_NORMAL, // 未删除
 | ||
|  |             'status' => GoodsEnum::STATUS_SHELVES, // 上架中
 | ||
|  |             'audit_status' => GoodsEnum::AUDIT_STATUS_OK, // 审核通过
 | ||
|  |         ]; | ||
|  |         foreach($shopLists as $key => &$shop) { | ||
|  |             $shop['expire'] = $shop['expire_time']; | ||
|  |             $shop['expire_time'] = self::getExpire($shop['expire_time']); | ||
|  |             if(!empty($shop['expire']) && $shop['expire'] <= time()) { | ||
|  |                 // 去除到期店铺
 | ||
|  |                 unset($shopLists[$key]); | ||
|  |                 continue; | ||
|  |             } | ||
|  |             $goodsWhere['shop_id'] = $shop['id']; | ||
|  |             $shop['on_sales_count'] = Goods::where($goodsWhere)->count(); | ||
|  | 
 | ||
|  |             // logo及背景图
 | ||
|  |             $shop['logo'] = $shop['logo'] ? UrlServer::getFileUrl($shop['logo']) : UrlServer::getFileUrl(ShopEnum::DEFAULT_LOGO); | ||
|  |             $shop['background'] = $shop['background'] ? UrlServer::getFileUrl($shop['background']) : UrlServer::getFileUrl(ShopEnum::DEFAULT_BG); | ||
|  |             $shop['cover'] = $shop['cover'] ? UrlServer::getFileUrl($shop['cover']) : UrlServer::getFileUrl(ShopEnum::DEFAULT_COVER); | ||
|  |             $shop['banner'] = $shop['banner'] ? UrlServer::getFileUrl($shop['banner']) : ''; | ||
|  |         } | ||
|  |         return array_values($shopLists); | ||
|  |     } | ||
|  | 
 | ||
|  |     public static function getExpire($value) | ||
|  |     { | ||
|  |         return $value === 0 ? '无期限' : date('Y-m-d H:i:s', $value); | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * 精选推荐店铺 | ||
|  |      */ | ||
|  |     public static function getShopRecommend() | ||
|  |     { | ||
|  |         $where = [ | ||
|  |             ['del', '=', 0], | ||
|  |             ['is_recommend', '=', 1], | ||
|  |             ['is_freeze', '=', 0], | ||
|  |             ['is_run', '=', 1], | ||
|  |         ]; | ||
|  |         $order = [ | ||
|  |             'weight' => 'asc', | ||
|  |             'id' => 'desc' | ||
|  |         ]; | ||
|  |         $shopLists = Db::name('shop') | ||
|  |             ->field('id,name,logo,background,expire_time,cover,banner,visited_num') | ||
|  |             ->where($where) | ||
|  |             ->order($order) | ||
|  |             ->select() | ||
|  |             ->toArray(); | ||
|  |         // 去除过期店铺
 | ||
|  |         foreach($shopLists as $key => $shop) { | ||
|  |             $shop['expire'] = $shop['expire_time']; | ||
|  |             $shop['expire_time'] = self::getExpire($shop['expire_time']); | ||
|  |             if(!empty($shop['expire']) && $shop['expire'] <= time()) { | ||
|  |                 // 去除到期店铺
 | ||
|  |                 unset($shopLists[$key]); | ||
|  |                 continue; | ||
|  |             } | ||
|  |         } | ||
|  |         // 取最前面的3家
 | ||
|  |         $shopLists = array_slice($shopLists, 0, 3); | ||
|  |         // 店铺信息
 | ||
|  |         foreach($shopLists as &$shop) { | ||
|  |             // 店铺推荐商品
 | ||
|  |             $goodsWhere = [ | ||
|  |                 ['del', '=', GoodsEnum::DEL_NORMAL],  // 未删除
 | ||
|  |                 ['status', '=', GoodsEnum::STATUS_SHELVES], // 上架中
 | ||
|  |                 ['audit_status', '=', GoodsEnum::AUDIT_STATUS_OK], // 审核通过
 | ||
|  |                 ['is_recommend', '=', 1], // 推荐商品
 | ||
|  |                 ['shop_id', '=', $shop['id']] | ||
|  |             ]; | ||
|  |             $shop['goods_list'] = Goods::field('id,image,name,min_price,market_price') | ||
|  |                 ->where($goodsWhere) | ||
|  |                 ->order([ | ||
|  |                     'sort_weight' => 'asc', | ||
|  |                     'id' => 'desc' | ||
|  |                 ]) | ||
|  |                 ->limit(9) | ||
|  |                 ->select() | ||
|  |                 ->toArray(); | ||
|  |             // logo及背景图
 | ||
|  |             $shop['logo'] = $shop['logo'] ? UrlServer::getFileUrl($shop['logo']) : UrlServer::getFileUrl(ShopEnum::DEFAULT_LOGO); | ||
|  |             $shop['background'] = $shop['background'] ? UrlServer::getFileUrl($shop['background']) : UrlServer::getFileUrl(ShopEnum::DEFAULT_BG); | ||
|  |             $shop['cover'] = $shop['cover'] ? UrlServer::getFileUrl($shop['cover']) : UrlServer::getFileUrl(ShopEnum::DEFAULT_COVER); | ||
|  |             $shop['banner'] = $shop['banner'] ? UrlServer::getFileUrl($shop['banner']) : ''; | ||
|  |         } | ||
|  |         return $shopLists; | ||
|  |     } | ||
|  | 
 | ||
|  |     public static function indexCategory($platform_category_id) | ||
|  |     { | ||
|  |         // 二级分类
 | ||
|  |         $levelTwo = self::levelTwo($platform_category_id); | ||
|  |         // 品类热销
 | ||
|  |         $categoryHots = self::categoryHots($platform_category_id); | ||
|  |         // 品类推荐
 | ||
|  |         $categoryRecommend = self::categoryRecommend($platform_category_id); | ||
|  | 
 | ||
|  |         return [ | ||
|  |             'level_two' => $levelTwo, | ||
|  |             'category_hots' => $categoryHots, | ||
|  |             'category_recommend' => $categoryRecommend | ||
|  |         ]; | ||
|  |     } | ||
|  | 
 | ||
|  |     public static function levelTwo($platform_category_id) | ||
|  |     { | ||
|  |         $where = [ | ||
|  |             'del' => 0, | ||
|  |             'is_show' => 1, | ||
|  |             'pid' => $platform_category_id | ||
|  |         ]; | ||
|  |         $order = [ | ||
|  |             'sort' => 'asc', | ||
|  |             'id' => 'desc' | ||
|  |         ]; | ||
|  |         $levelTwo = GoodsCategory::field('id,name,image') | ||
|  |             ->where($where) | ||
|  |             ->order($order) | ||
|  |             ->select() | ||
|  |             ->toArray(); | ||
|  |         return $levelTwo; | ||
|  |     } | ||
|  | 
 | ||
|  |     public static function categoryHots($platform_category_id) | ||
|  |     { | ||
|  |         // 销售中商品:未删除/审核通过/已上架
 | ||
|  |         $where = [ | ||
|  |             ['del', '=', GoodsEnum::DEL_NORMAL],  // 未删除
 | ||
|  |             ['status', '=', GoodsEnum::STATUS_SHELVES], // 上架中
 | ||
|  |             ['audit_status', '=', GoodsEnum::AUDIT_STATUS_OK], // 审核通过
 | ||
|  |             ['first_cate_id|second_cate_id|third_cate_id', '=', $platform_category_id], // 分类id
 | ||
|  |         ]; | ||
|  |         $order = [ | ||
|  |             'sales_actual' => 'desc', // 实际销量倒序
 | ||
|  |             'id' => 'desc' | ||
|  |         ]; | ||
|  | 
 | ||
|  |         $lists = Goods::field('id,name,image,min_price,market_price,sales_actual,(sales_actual + sales_virtual) as sales_total') | ||
|  |             ->where($where) | ||
|  |             ->order($order) | ||
|  |             ->limit(9) | ||
|  |             ->select() | ||
|  |             ->toArray(); | ||
|  | 
 | ||
|  |         return $lists; | ||
|  |     } | ||
|  | 
 | ||
|  |     public static function categoryRecommend($platform_category_id) | ||
|  |     { | ||
|  |         // 销售中商品:未删除/审核通过/已上架
 | ||
|  |         $where = [ | ||
|  |             ['del', '=', GoodsEnum::DEL_NORMAL],  // 未删除
 | ||
|  |             ['status', '=', GoodsEnum::STATUS_SHELVES], // 上架中
 | ||
|  |             ['audit_status', '=', GoodsEnum::AUDIT_STATUS_OK], // 审核通过
 | ||
|  |             ['first_cate_id|second_cate_id|third_cate_id', '=', $platform_category_id], // 分类id
 | ||
|  |             ['is_recommend', '=', 1] // 推荐商品
 | ||
|  |         ]; | ||
|  |         $order = [ | ||
|  |             'sales_actual' => 'desc', // 实际销量倒序
 | ||
|  |             'id' => 'desc' | ||
|  |         ]; | ||
|  | 
 | ||
|  |         $lists = Goods::field('id,name,image,min_price,market_price,sales_actual,(sales_actual + sales_virtual) as sales_total') | ||
|  |             ->where($where) | ||
|  |             ->order($order) | ||
|  |             ->limit(3) | ||
|  |             ->select() | ||
|  |             ->toArray(); | ||
|  | 
 | ||
|  |         return $lists; | ||
|  |     } | ||
|  | 
 | ||
|  |     public static function config() | ||
|  |     { | ||
|  |         $navigation = Db::name('dev_navigation') | ||
|  |           ->field('name,selected_icon,un_selected_icon') | ||
|  |           ->where('del', 0) | ||
|  |           ->order('id', 'desc') | ||
|  |           ->withAttr('selected_icon',function($value,$data){ | ||
|  |             return UrlServer::getFileUrl($value); | ||
|  |           }) | ||
|  |           ->withAttr('un_selected_icon',function($value,$data){ | ||
|  |             return UrlServer::getFileUrl($value); | ||
|  |           }) | ||
|  |           ->select(); | ||
|  |         $share_h5 = ConfigServer::get('share', 'h5', [ | ||
|  |             'h5_share_title' => '', | ||
|  |             'h5_share_intro' => '', | ||
|  |             'h5_share_image' => '' | ||
|  |         ]); | ||
|  |         if($share_h5['h5_share_image']){ | ||
|  |             $share_h5['h5_share_image'] = UrlServer::getFileUrl($share_h5['h5_share_image']); | ||
|  |         } | ||
|  |         $share_mnp = ConfigServer::get('share', 'mnp', [ | ||
|  |             'mnp_share_title' => '', | ||
|  |             'mnp_share_image' => '' | ||
|  |         ]); | ||
|  |         if (empty($share_mnp['mnp_share_image'])) { | ||
|  |             $share_mnp['mnp_share_image'] = ''; | ||
|  |         } else { | ||
|  |             $share_mnp['mnp_share_image'] = UrlServer::getFileUrl($share_mnp['mnp_share_image']); | ||
|  |         } | ||
|  | 
 | ||
|  |         //首页顶部背景图
 | ||
|  |         $index_top_bg = ConfigServer::get('decoration_index', 'background_image', ''); | ||
|  |         if (!empty($index_top_bg)) { | ||
|  |             $index_top_bg = UrlServer::getFileUrl($index_top_bg); | ||
|  |         } | ||
|  | 
 | ||
|  |         //个人中心背景图
 | ||
|  |         $center_top_bg = ConfigServer::get('decoration_center', 'background_image', ''); | ||
|  |         if (!empty($center_top_bg)) { | ||
|  |             $center_top_bg = UrlServer::getFileUrl($center_top_bg); | ||
|  |         } | ||
|  | 
 | ||
|  |         $config = [ | ||
|  |             'shop_hide_goods'  => ConfigServer::get('decoration', 'shop_hide_goods', 0), //商品详细是否显示店铺
 | ||
|  |             'shop_street_hide' => ConfigServer::get('decoration', 'shop_street_hide', 0), //是否显示店铺街
 | ||
|  |             'register_setting' => ConfigServer::get('register', 'captcha', 0),//注册设置-是否开启短信验证注册
 | ||
|  |             'app_wechat_login' => ConfigServer::get('app', 'wechat_login', 0),//APP是否允许微信授权登录
 | ||
|  |             'shop_login_logo'  => UrlServer::getFileUrl(ConfigServer::get('website', 'client_login_logo')),//移动端商城logo
 | ||
|  |             'pc_login_logo'    => UrlServer::getFileUrl(ConfigServer::get('website', 'pc_client_login_logo')), //pc登录封面
 | ||
|  |             'web_favicon'      => UrlServer::getFileUrl(ConfigServer::get('website', 'web_favicon')),//浏览器标签图标
 | ||
|  |             'name'             => ConfigServer::get('website', 'name'),//商城名称
 | ||
|  |             'copyright_info'   => ConfigServer::get('copyright', 'company_name'),//版权信息
 | ||
|  |             'icp_number'       => ConfigServer::get('copyright', 'number'),//ICP备案号
 | ||
|  |             'icp_link'         => ConfigServer::get('copyright', 'link'),//备案号链接
 | ||
|  |             'app_agreement'    => ConfigServer::get('app', 'agreement', 0),//app弹出协议
 | ||
|  |             'ios_download'     => ConfigServer::get('app', 'line_ios', ''),//ios_app下载链接
 | ||
|  |             'android_download' => ConfigServer::get('app', 'line_android', ''),//安卓下载链接
 | ||
|  |             'download_doc'     => ConfigServer::get('app', 'download_doc', ''),//app下载文案
 | ||
|  |             'cate_style'       => ConfigServer::get('decoration', 'layout_no', 1),//分类页面风格
 | ||
|  |             'index_setting' => [ // 首页设置
 | ||
|  |               // 热销榜单
 | ||
|  |               'host_show' => ConfigServer::get('decoration_index', 'host_show', 1), | ||
|  |               // 新品推荐
 | ||
|  |               'new_show' => ConfigServer::get('decoration_index', 'new_show', 1), | ||
|  |               // 推荐店铺
 | ||
|  |               'shop_show' => ConfigServer::get('decoration_index', 'shop_show', 1), | ||
|  |               // 种草推荐
 | ||
|  |                 'community_show' => ConfigServer::get('decoration_index','community_show',1), | ||
|  |               // 顶部背景图
 | ||
|  |               'top_bg_image' => $index_top_bg | ||
|  |             ], | ||
|  |             'center_setting' => [ // 个人中心设置
 | ||
|  |               // 顶部背景图
 | ||
|  |               'top_bg_image' => $center_top_bg | ||
|  |             ], | ||
|  |             'navigation_setting' => [ // 底部导航设置
 | ||
|  |               // 未选中文字颜色
 | ||
|  |               'ust_color' => ConfigServer::get('decoration', 'navigation_setting_ust_color', '#000000'), | ||
|  |               // 选中文字颜色
 | ||
|  |               'st_color' => ConfigServer::get('decoration', 'navigation_setting_st_color', '#000000'), | ||
|  |             ], | ||
|  |             // 分享设置
 | ||
|  |             'share' => array_merge($share_h5,$share_mnp), | ||
|  |             // 首页底部导航菜单
 | ||
|  |             'navigation_menu' => $navigation, | ||
|  |             // 域名
 | ||
|  |             'base_domain' => UrlServer::getFileUrl(), | ||
|  |             // 微信访问H5时,是否自动授权登录,默认关闭-0
 | ||
|  |             'wechat_h5' => ConfigServer::get('login', 'wechat_h5', 0), | ||
|  |             // 客服请求域名
 | ||
|  |             'ws_domain' => env('project.ws_domain', 'ws:127.0.0.1') | ||
|  |         ]; | ||
|  |         return $config; | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * @notes 版权资质 | ||
|  |      * @return array|int|mixed|string|null | ||
|  |      * @author ljj | ||
|  |      * @date 2022/2/22 10:16 上午 | ||
|  |      */ | ||
|  |     public static function copyright($shop_id) | ||
|  |     { | ||
|  |         $other_qualifications = []; | ||
|  |         if (!$shop_id) { | ||
|  |             $business_license = ConfigServer::get('copyright', 'business_license'); | ||
|  |             $other_qualifications = ConfigServer::get('copyright', 'other_qualifications',[]); | ||
|  |             if (!empty($business_license)) { | ||
|  |                 array_unshift($other_qualifications,$business_license); | ||
|  |             } | ||
|  |             if (!empty($other_qualifications)) { | ||
|  |                 foreach ($other_qualifications as &$val) { | ||
|  |                     $val = UrlServer::getFileUrl($val); | ||
|  |                 } | ||
|  |             } | ||
|  |         }else { | ||
|  |             $result = Shop::where('id',$shop_id)->json(['other_qualifications'],true)->field('business_license,other_qualifications')->findOrEmpty()->toArray(); | ||
|  |             $business_license = $result['business_license'] ? UrlServer::getFileUrl($result['business_license']) : ''; | ||
|  |             if (!empty($result['other_qualifications'])) { | ||
|  |                 foreach ($result['other_qualifications'] as &$val) { | ||
|  |                     $other_qualifications[] = UrlServer::getFileUrl($val); | ||
|  |                 } | ||
|  |             } | ||
|  |             if (!empty($business_license)) { | ||
|  |                 array_unshift($other_qualifications,$business_license); | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         return $other_qualifications; | ||
|  |     } | ||
|  | 
 | ||
|  |      | ||
|  |     /** | ||
|  |      * @notes 首页社区文章 | ||
|  |      * @return array | ||
|  |      * @throws \think\db\exception\DataNotFoundException | ||
|  |      * @throws \think\db\exception\DbException | ||
|  |      * @throws \think\db\exception\ModelNotFoundException | ||
|  |      * @author 段誉 | ||
|  |      * @date 2022/5/5 9:38 | ||
|  |      */ | ||
|  |     public static function getCommunityArticle() | ||
|  |     { | ||
|  |         $lists = (new CommunityArticle()) | ||
|  |             ->with(['user' => function($query) { | ||
|  |                 $query->field(['id', 'nickname', 'avatar']); | ||
|  |             }]) | ||
|  |             ->field(['id', 'content', 'image', 'user_id']) | ||
|  |             ->where(['del' => 0, 'status' => CommunityArticleEnum::STATUS_SUCCESS]) | ||
|  |             ->order(['like' => 'desc', 'id' => 'desc']) | ||
|  |             ->limit(10) | ||
|  |             ->select() | ||
|  |             ->bindAttr('user', ['nickname', 'avatar']) | ||
|  |             ->hidden(['user']) | ||
|  |             ->toArray(); | ||
|  | 
 | ||
|  |         foreach ($lists as $key => $item) { | ||
|  |             $lists[$key]['avatar'] = UrlServer::getFileUrl($item['avatar']); | ||
|  |         } | ||
|  | 
 | ||
|  |         return $lists; | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  | } |