where("category_status",1) ->orderBy("category_sort_id","desc") ->get(); $userId = BaseUtil::getUserId(); $datas = []; $categoryMaps = CategoryTypeEnum::MAP; $instance = new LoggerFactoryUtil(HomeLogic::class); //加入缓存 $memkey = "homeListKey:".$userId; $val = BaseUtil::getCacheFromRedis($memkey); $instance->info("键:".$memkey); $instance->info("缓存值:".$val); if (!$val){ $instance->info("从数据库中获取"); //临时组合数据 $tmps = []; $linkUrl = ""; foreach ($recommends as $recommend) { try{ //判断列表数据 switch ($recommend->category_type){ case CategoryTypeEnum::WAIMAI: //外卖 switch ($recommend->category_name){ case "饿了么": $linkUrl = TaobaoLianMengUtil::getElmWaimaiSpreadUrl($userId,"20150318020002597","h5"); break; case "美团外卖": $platformSid = BaseUtil::getPlatformUserSpreadId(PlatformTypeEnum::PLATFORM_MEITUAN,$userId); $linkUrl = MeituanLianmengUtil::getMeituanWaimaiUrl($userId,$platformSid,$recommend->activity_id,MeiTuanLinkTypeEnum::H5); break; case "美团闪购": $platformSid = BaseUtil::getPlatformUserSpreadId(PlatformTypeEnum::PLATFORM_MEITUAN,$userId); $linkUrl = MeituanLianmengUtil::getMeituanWaimaiUrl($userId,$platformSid,$recommend->activity_id,MeiTuanLinkTypeEnum::H5); break; case "美团优选": $platformSid = BaseUtil::getPlatformUserSpreadId(PlatformTypeEnum::PLATFORM_MEITUAN,$userId); $linkUrl = MeituanLianmengUtil::getMeituanWaimaiUrl($userId,$platformSid,$recommend->activity_id,MeiTuanLinkTypeEnum::H5); break; case "美团酒店": $platformSid = BaseUtil::getPlatformUserSpreadId(PlatformTypeEnum::PLATFORM_MEITUAN,$userId); $linkUrl = MeituanLianmengUtil::getMeituanWaimaiUrl($userId,$platformSid,$recommend->activity_id,MeiTuanLinkTypeEnum::H5); break; default: $platformSid = BaseUtil::getPlatformUserSpreadId(PlatformTypeEnum::PLATFORM_JUTUIKE,$userId); $linkUrl = JutuikeUtil::transferAct($platformSid,$recommend->activity_id); break; } break; case CategoryTypeEnum::GOUWU: //购物(使用是聚推客) switch ($recommend->category_name){ case "百亿补贴": $platformSid = BaseUtil::getPlatformUserSpreadId(PlatformTypeEnum::PLATFORM_PINGDUODUO,$userId); $bean = new ResourceUrlGenParamBean( [ "pid"=>$platformSid, "resourceType"=>39996 ] ); $data = DuoDuoKeUtil::resourceUrlGen($bean); $linkUrl = $data["resource_url_response"]["single_url_list"]["short_url"]; break; case "领券中心": $platformSid = BaseUtil::getPlatformUserSpreadId(PlatformTypeEnum::PLATFORM_PINGDUODUO,$userId); $bean = new ResourceUrlGenParamBean( [ "pid"=>$platformSid, "resourceType"=>40000 ] ); $data = DuoDuoKeUtil::resourceUrlGen($bean); $linkUrl = $data["resource_url_response"]["single_url_list"]["short_url"]; break; default: $platformSid = BaseUtil::getPlatformUserSpreadId(PlatformTypeEnum::PLATFORM_JUTUIKE,$userId); $linkUrl = JutuikeUtil::transferAct($platformSid,$recommend->activity_id); break; } break; case CategoryTypeEnum::CHONGZHI: //充值(使用拼多多) $platformSid = BaseUtil::getPlatformUserSpreadId(PlatformTypeEnum::PLATFORM_PINGDUODUO,$userId); $bean = new ResourceUrlGenParamBean( [ "pid"=>$platformSid, "resourceType"=>39997 ] ); $data = DuoDuoKeUtil::resourceUrlGen($bean); $linkUrl = $data["resource_url_response"]["single_url_list"]["short_url"]; break; case CategoryTypeEnum::DAODIAN: //到店(使用聚推客) $platformSid = BaseUtil::getPlatformUserSpreadId(PlatformTypeEnum::PLATFORM_JUTUIKE,$userId); $linkUrl = JutuikeUtil::transferAct($platformSid,$recommend->activity_id); break; case CategoryTypeEnum::CHUXING: //出行使用拼多多 $platformSid = BaseUtil::getPlatformUserSpreadId(PlatformTypeEnum::PLATFORM_PINGDUODUO,$userId); $bean = new ResourceUrlGenParamBean( [ "pid"=>$platformSid, "resourceType"=>50005 ] ); $data = DuoDuoKeUtil::resourceUrlGen($bean); $linkUrl = $data["resource_url_response"]["single_url_list"]["short_url"]; break; } }catch (\Throwable $exception){} $recommend->link_url = $linkUrl; $tmps[$recommend->category_type][] = $recommend; } foreach ($tmps as $key=>$tmp){ $datas[] = [ "category_type_name"=>$categoryMaps[$key], "category_data"=>$tmp ]; } $flag = BaseUtil::setRedisCache($memkey,json_encode($datas),0); $instance->info("写入缓存:".$flag); $val = json_encode($datas); } return json_decode($val,true); } /** * 反钱赚钱列表逻辑 */ public static function getCommissionListLogic() { $params = request()->all(); $userId = BaseUtil::getUserId(); $query = UserOrderCommissionModel::query() ->where("user_id",$userId); switch ($params["type"]){ case 0: //赚钱 $query->where("user_provider_id",0); break; case 1: //返钱 $query->where("user_provider_id","<>",0); break; } $res = $query->select( [ "order_commission", "commission_status", "commission_type", "created_at", "user_id", "user_provider_id", "user_head_img_url", "user_provider_head_img_url", "order_title", "user_nickname" ] )->orderBy("id","desc") ->paginate($params["page_size"]); return [ "total"=>$res->total(), "list"=>$res->items() ]; } }