当前位置: 首页 > news >正文

【最新版】芸众商城独立版源码 425+插件 全新后台框架

一.系统介绍

芸众商城系统最新版 已经更新425+全插件版,一套系统支持各种新零售、商城、模式,天天美丽链动商城。不要相信那些外面的旧版本。旧版本等于是废品,无法小程序运营的,框架还是旧的!
芸众系统最新版 服务器可自备或托管,425+来个插件,包括小程序。后续新增插件可升级

源码全开源可二次开发(包更新!)

二.搭建环境

系统环境:CentOS、

运行环境:宝塔 Linux

网站环境:Nginx 1.15.10 + MySQL 5.6.46 + PHP-7.4

常见插件:fileinfo ; redis

系统测试图片

【最新版】芸众商城独立版源码 425+插件 全新后台框架

【最新版】芸众商城独立版源码 425+插件 全新后台框架

后端API-Yunshop.php 代码:

<?phpuse app\frontend\modules\member\services\MemberAnchorAppService;
use app\frontend\modules\member\services\MemberCpsAppService;
use Illuminate\Support\Str;
use app\common\services\PermissionService;
use app\common\models\Menu;
use app\common\services\Session;
use app\common\exceptions\NotFoundException;//商城根目录
define('SHOP_ROOT', dirname(__FILE__));class YunShop
{private static $_req;private static $_app;private static $_plugin;private static $_notice;public function __construct(){}/*** Configures an object with the initial property values.* @param object $object the object to be configured* @param array $properties the property initial values given in terms of name-value pairs.* @return object the object itself*/public static function configure($object, $properties){foreach ($properties as $name => $value) {$object->$name = $value;}return $object;}public static function getAppNamespace(){$rootName = 'app';if (self::isWeb()) {$rootName .= '\\backend';}if (self::isApp() || self::isApi()) {$rootName .= '\\frontend';}return $rootName;}public static function getAppPath(){$path = dirname(__FILE__);if (self::isWeb()) {$path .= '/backend';}if (self::isApp() || self::isApi()) {$path .= '/frontend';}return $path;}public static function isPHPUnit(){return strpos($_SERVER['PHP_SELF'], 'phpunit') !== false ? true : false;}public static function isWeb(){return request()->isBackend();}public static function isApp(){if (self::isPHPUnit()) {return true;}return strpos($_SERVER['PHP_SELF'], '/app/index.php') !== false ? true : false;}public static function isApi(){return (strpos($_SERVER['PHP_SELF'], '/addons/') !== false &&strpos($_SERVER['PHP_SELF'], '/api.php') !== false) ? true : false;}/**** @return bool*/public static function isWechatApi(){if (config('app.framework') == 'platform') {return (strpos($_SERVER['REQUEST_URI'], '/wechat') !== false &&strpos($_SERVER['REQUEST_URI'], '/api') !== false) ? true : false;} else {return (strpos($_SERVER['PHP_SELF'], '/addons/') === false &&strpos($_SERVER['PHP_SELF'], '/api.php') !== false) ? true : false;}}public static function isOutsideApi(){return strpos($_SERVER['REQUEST_URI'], '/outside') !== false ? true : false;}/*** 是否插件* @return bool*/public static function isPlugin(){if (config('app.framework') == 'platform') {return (strpos(request()->getRequestUri(), config('app.isWeb')) !== false &&strpos(request()->getRequestUri(), '/plugin') !== false) ? true : false;} else {return (strpos($_SERVER['PHP_SELF'], '/web/') !== false &&strpos($_SERVER['PHP_SELF'], '/plugin.php') !== false) ? true : false;}}/*** @name 验证是否商城操作员* @return array|bool|null|stdClass* @author*/public static function isRole(){global $_W;if (app('plugins')->isEnabled('supplier')) {$res = \Illuminate\Support\Facades\DB::table('yz_supplier')->where('uid', $_W['uid'])->first();if (!$res) {return false;}return $res;}return false;}/*** @name 验证是否文章营销管理员* @author* @return array|bool|null|stdClass*/public static function isArticle(){global $_W;if (app('plugins')->isEnabled('article')) {if (!\Illuminate\Support\Facades\Schema::hasTable('yz_plugin_article_manager')) {return false;}$res = \Illuminate\Support\Facades\DB::table('yz_plugin_article_manager')->where('uid', $_W['uid'])->first();if (!$res) {return false;}return $res;}return false;}/*** @name 验证是否商城操作员* @author* @return array|bool|null|stdClass*/public static function isAgencyCompany(){global $_W;if (app('plugins')->isEnabled('agency-statistics')) {$res = \Illuminate\Support\Facades\DB::table('yz_agency_company')->where('uid', $_W['uid'])->first();if (!$res) {return false;}return $res;}return false;}public static function cleanApp(){self::$_app = null;}/*** @name 验证是否门店店长* @return array|bool|null|stdClass* @author*/public static function isStore(){global $_W;if (app('plugins')->isEnabled('store-cashier')) {$res = \Illuminate\Support\Facades\DB::table('yz_store')->where('user_uid', $_W['uid'])->first();if (!$res) {return false;}return $res;}return false;}public static function isPayment(){return strpos($_SERVER['PHP_SELF'], '/payment/') > 0 ? true : false;}public static function request(){if (self::$_req !== null) {return self::$_req;} else {self::$_req = new YunRequest();return self::$_req;}}/*** @return YunApp*/public static function app(){if (self::$_app !== null) {return self::$_app;} else {self::$_app = new YunApp();return self::$_app;}}/*** 解析路由** 后台访问  /web/index.php?c=site&a=entry&m=sz_yi&do=xxx&route=module.controller.action* 前台      /app/index.php....** 多字母的路由用中划线隔开 比如:*      TestCacheController*          function testClean()* 路由写法为   test-cache.test-clean**/
//    public static function parseRoute($requestRoute)
//    {
//        try {
//            $vers = [];
//            $routes_params = explode('.', $requestRoute);
//
//            if (preg_match('/(v\d+)\./', $requestRoute, $vers)) {
//                foreach ($routes_params as $key => $item) {
//                    if ($item != $vers[1]) {
//                        $routes[] = $item;
//                    }
//                }
//            } else {
//                $routes = $routes_params;
//            }
//
//            $path = self::getAppPath();
//            $namespace = self::getAppNamespace();
//            $action = '';
//            $controllerName = '';
//            $currentRoutes = [];
//            $modules = [];
//
//            if ($routes) {
//                $length = count($routes);
//                $routeFirst = array_first($routes);
//                $countRoute = count($routes);
//                if ($routeFirst === 'plugin' || self::isPlugin()) {
//                    if (self::isPlugin()) {
//                        $currentRoutes[] = 'plugin';
//                        $countRoute += 1;
//                    } else {
//                        $currentRoutes[] = $routeFirst;
//                        array_shift($routes);
//                    }
//                    $namespace = 'Yunshop';
//                    $pluginName = array_shift($routes);
//                    if ($pluginName || plugin($pluginName)) {
//                        $currentRoutes[] = $pluginName;
//                        $namespace .= '\\' . ucfirst(Str::camel($pluginName));
//                        $path = base_path() . '/plugins/' . $pluginName . '/src';
//                        $length = $countRoute;
//
//                        self::findRouteFile($controllerName, $action, $routes, $namespace, $path, $length, $currentRoutes, $requestRoute, true, $vers);
//
//                        if (!app('plugins')->isEnabled($pluginName)) {
//                            throw new NotFoundException("{$pluginName}插件已禁用");
//
//                        }
//                    } else {
//                        throw new NotFoundException('无此插件');
//
//                    }
//                } else {
//
//                    self::findRouteFile($controllerName, $action, $routes, $namespace, $path, $length, $currentRoutes, $requestRoute, false, $vers);
//
//                }
//            }
//        } catch (Exception $exception) {dd($exception);exit;
//
//        }
//        //执行run
//        return static::run($namespace, $modules, $controllerName, $action, $currentRoutes);
//
//    }/*** 定位路由相关文件* @param $controllerName* @param $action* @param $routes* @param $namespace* @param $path* @param $length* @param $requestRoute* @param $isPlugin*/public static function findRouteFile(&$controllerName, &$action, $routes, &$namespace, &$path, $length, &$currentRoutes, $requestRoute, $isPlugin, $vers){foreach ($routes as $k => $r) {$ucFirstRoute = ucfirst(Str::camel($r));if (empty($vers)) {$controllerFile = $path . ($isPlugin ? '/' : '/controllers/') . $ucFirstRoute . 'Controller.php';} else {$controllerFile = $path . ($isPlugin ? '/' : '/controllers/') . 'vers/' . $vers[1] . '/' . $ucFirstRoute . 'Controller.php';}if (is_file($controllerFile)) {if (empty($vers)) {$namespace .= ($isPlugin ? '' : '\\controllers') . '\\' . $ucFirstRoute . 'Controller';} else {$namespace .= ($isPlugin ? '\\' : '\\controllers\\') . 'vers\\' . $vers[1] . '\\' . $ucFirstRoute . 'Controller';}$controllerName = $ucFirstRoute;$path = $controllerFile;$currentRoutes[] = $r;} elseif (is_dir($path .= ($isPlugin ? '' : '/modules') . '/' . $r)) {$namespace .= ($isPlugin ? '' : '\\modules') . '\\' . $r;$modules[] = $r;$currentRoutes[] = $r;} else {if ($length !== ($isPlugin ? $k + 3 : $k + 1)) {throw new NotFoundException('路由长度有误:' . $requestRoute);}$action = strpos($r, '-') === false ? $r : Str::camel($r);$currentRoutes[] = $r;}}}public static function getUcfirstName($name){if (strpos($name, '-')) {$names = explode('-', $name);$name = '';foreach ($names as $v) {$name .= ucfirst($v);}}return ucfirst($name);}public static function plugin(){self::$_plugin = new YunPlugin();return self::$_plugin;}public static function notice(){self::$_notice = new YunNotice();return self::$_notice;}private static function getContent($controller, $action){return (new \Illuminate\Pipeline\Pipeline(new \Illuminate\Container\Container()))->send(Illuminate\Http\Request::capture())->through(collect($controller->getMiddleware())->pluck('middleware')->all())->then(function ($request) use ($controller, $action) {return $controller->$action($request);});}
}class YunComponent implements ArrayAccess
{protected $values = [];public function __set($name, $value){return $this->values[$name] = $value;}public function __get($name){if (!array_key_exists($name, $this->values)) {$this->values[$name] = null;}return $this->values[$name];}function __isset($name){return array_key_exists($name, $this->values);}public function set($name, $value){$this->values[$name] = $value;return $this;}public function get($key = null){if (isset($key)) {$result = json_decode(array_get($this->values, $key, null), true);if (@is_array($result)) {return $result;}return array_get($this->values, $key, null);}return $this->values;}public function offsetUnset($offset){unset($this->values[$offset]);}public function offsetSet($offset, $value){$this->values[$offset] = $value;}public function offsetGet($offset){if (isset($this->values[$offset])) {return $this->values[$offset];}return null;}public function offsetExists($offset){if (isset($this->values[$offset])) {return true;}return false;}
}class YunRequest extends YunComponent
{public function __construct(){$this->values = request()->input();}
}/*** Class YunApp* @property int uniacid* @property int uid*/
class YunApp extends YunComponent
{protected $values;public $currentItems = [];public function __construct(){global $_W;$this->values = !YunShop::isWeb() && !YunShop::isWechatApi() ? $this->getW() : (array)$_W;}public function getW(){$uniacid = intval(trim(request()->get('i')));$account = \app\common\models\AccountWechats::getAccountByUniacid($uniacid);return ['uniacid' => $uniacid,'weid'    => $uniacid,'acid'    => $uniacid,'account' => $account ? $account->toArray() : '',];}/*** @return int* @todo set member id from session*/public function getMemberId($get_type = 0){$member_id = 0;$type = \Yunshop::request()->type ?: '';$token = \Yunshop::request()->yz_token ?: '';if ($get_type == 0 && request()->is_shop_pos && app('plugins')->isEnabled('shop-pos') && ($pos_uid = \Yunshop\ShopPos\services\CustomerService::getPosUid())) {$member_id = $pos_uid;} elseif ($get_type == 0 && request()->is_store_pos && app('plugins')->isEnabled('store-pos') && ($pos_uid = \Yunshop\StorePos\services\BuyerService::getBuyerMemberId())) {$member_id = $pos_uid;} elseif ($get_type == 0 && request()->live_install_order_replace && app('plugins')->isEnabled('live-install') && ($pos_uid = \Yunshop\LiveInstall\services\SettingService::cacheUid())) {$member_id = $pos_uid;} elseif ($type == 9) {$native_app = new \app\frontend\modules\member\services\MemberNativeAppService();$member_id = $native_app->getMemberId($token);} elseif ($type == 14) {$anchor_app = new MemberAnchorAppService();$member_id = $anchor_app->getMemberId($token);} elseif ($type == 15 && app('plugins')->isEnabled('aggregation-cps') && (!request()->appid || \Yunshop\AggregationCps\services\SettingManageService::getTrueKey() == request()->appid)) {$cps_app = new MemberCpsAppService();$member_id = $cps_app->getMemberId($token);} elseif ($session_id = request()->input('min_token')) {$session_data = \Illuminate\Support\Facades\Redis::hgetall('PHPSESSID:' . $session_id);return $this->getSessionMemberId($session_data['data']);} elseif (Session::get('member_id')) {$member_id = Session::get('member_id');}return $member_id;}private function getSessionMemberId($read_data){$member_data = '';if (!empty($read_data)) {preg_match_all('/yunzshop_([\w]+[^|]*|)/', $read_data, $name_matches);preg_match_all('/(a:[\w]+[^}]*})/', $read_data, $value_matches);if (!empty($name_matches)) {foreach ($name_matches[0] as $key => $val) {if ($val == 'yunzshop_member_id') {$member_data = $val . '|' . $value_matches[0][$key];}}}}return unserialize(explode('|', $member_data)[1])['data'];}}class YunPlugin
{protected $values;public function __construct(){$this->values = false;}/*** @param null $key* @return bool*/public function get($key = null){if (isset($key)) {if (app('plugins')->isEnabled($key)) {return true;}}return $this->values;}}class YunNotice
{protected $key;protected $value;public function __construct(){$this->key = 'shop';}/*** @param null $key* @return bool*/public function getNotSend($routes = null){$this->value = $routes;$routesData = explode('.', $routes);if (count($routesData) > 1) {$this->key = $routesData[0];$this->value = $routesData[1];}$noticeConfig = Config::get('notice.' . $this->key);return in_array($this->value, $noticeConfig) ? 0 : 1;}}

相关文章:

【最新版】芸众商城独立版源码 425+插件 全新后台框架

一.系统介绍 芸众商城系统最新版 已经更新425全插件版&#xff0c;一套系统支持各种新零售、商城、模式&#xff0c;天天美丽链动商城。不要相信那些外面的旧版本。旧版本等于是废品&#xff0c;无法小程序运营的&#xff0c;框架还是旧的&#xff01; 芸众系统最新版 服务器可…...

android liveData observeForever 与 observe对比

LiveData 是一个非常有用的组件,用于在数据变化时通知观察者。LiveData 提供了两种主要的观察方法:observe 和 observeForever。这两种方法在使用场景、生命周期感知以及内存管理等方面有所不同。 一、observe 方法​​ ​​1. 基本介绍​​ ​​生命周期感知​​:observe…...

定制化 Docsify 文档框架实战分享

&#x1f31f; 定制化 Docsify 文档框架实战分享 在构建前端文档平台时&#xff0c;我们希望拥有更友好的用户界面、便捷的搜索、清晰的目录导航以及实用的代码复制功能。借助 Docsify&#xff0c;我实现了以下几个方面的定制优化&#xff0c;分享给大家 &#x1f64c;。 &…...

蓝桥杯题目:二维前缀和

首先分析一下二维数组的差分。s[x2][y2]-s[x1][y1]s[x2][y2]-s[x2][y1-1]-s[x1-1][y2]s[x1-1][y1-1] 因为对于二维数组x2y2-x1y1范围内的值需要通过x2y2减去从x1&#xff0c;y2-1的这段存储的前缀和以及减去x2-1&#xff0c;y1这两部分的前缀和&#xff0c;但是还有一个x1-1&a…...

数字孪生城市技术应用典型实践案例汇编(22个典型案例)(附下载)

近年来&#xff0c;数字孪生技术在我国从战略框架逐步向系统性落地推进&#xff0c;成为推动数字中国建设的重要技术引擎。随着《数字中国建设整体布局规划》《"十四五"数字经济发展规划》《深化智慧城市发展推进城市全域数字化转型的指导意见》等政策的实施&#xf…...

Linux——信号(1)信号的产生

我们在讲进程的多种状态时提到过&#xff0c;一个进程的退出有三种情况&#xff1a;正常退出&#xff0c;结果出错退出&#xff08;代码也执行完了&#xff09;&#xff0c;异常终止退出&#xff08;代码未执行完&#xff09;&#xff0c;其中最后一种退出相当于进程在运行时&a…...

【模型常见评价指标(分类)】

目录 常见指标 其他的评估指标 3.1 BLEU 3.2 ROUGE 3.3 困惑度PPL(perplexity) 常见指标 其他的评估指标 3.1 BLEU BLEU&#xff08;Bilingual Evaluation Understudy&#xff0c;双语评估替补&#xff09;分数是评估一种语言翻译成另一种语言的文本质量的指标。它将“质…...

个人博客系统后端 - 用户信息管理功能实现指南(上)

本文记录了如何实现用获取户信息&#xff0c;用户信息更新&#xff0c;用户头像上传三大基础功能 先上接口实现截图&#xff1a; 一、项目结构概览 先介绍一下 个人博客系统采用了标准的 Spring Boot 项目结构&#xff0c;用户功能相关的文件主要分布在以下几个目录&#xff1a…...

CyberAgentAILab 开源数字人项目TANGO,heygen的开源版来了~

简介 TANGO 是 CyberAgentAILab 开源的一项前沿研究成果&#xff0c;其初衷在于探索高效生成模型在实际应用场景中的表现。项目诞生于 CyberAgent 在整合创意与人工智能的实践中&#xff0c;旨在为数字内容生成、交互和实时渲染等领域提供一个高性能、模块化、可扩展的解决方案…...

高等数学同步测试卷 同济7版 试卷部分 上 做题记录 上册期中同步测试卷 A 卷

上册期中同步测试卷A卷 一、单项选择题(本大题共5小题,每小题3分,总计15 分) 1. 2. 3. 4. 5. 二、填空题(本大题共5小题,每小题3分,总计15分) 6. 7. 8. 9. 10. 三、求解下列各题(本大题共5小题,每小题6分&#xff0c;总计30分) 11. …...

4.16 AT好题选做

文章目录 前言[ARC103D] Distance Sums(确定树的形态,trick)[AGC062B] Split and Insert(区间 d p dp dp)[AGC012E] Camel and Oases(状压&#xff0c;可行性dp转最优性dp)[ARC094D] Normalization(trick&#xff0c;转化)[ARC125F] Tree Degree Subset Sum(结论&#xff0c;a…...

数据库-day06

一、实验名称和性质 分类查询 验证 综合 设计 二、实验目的 1&#xff0e;掌握数据查询的Group by &#xff1b; 2&#xff0e; 掌握聚集函数的使用方法。 三、实验的软硬件环境要求 硬件环境要求&#xff1a; PC机(单机) 使用的软件名称、版本号以及模块&#xff1a; …...

基于Flask的漏洞挖掘知识库系统设计与实现

基于Flask的漏洞挖掘知识库系统设计与实现 一、系统架构设计 1.1 整体架构 本系统采用经典的三层Web架构&#xff0c;通过Mermaid图展示的组件交互流程清晰呈现了以下核心模块&#xff1a; 前端展示层&#xff1a;基于Bootstrap5构建响应式界面业务逻辑层&#xff1a;Flask…...

小白从0学习网站搭建的关键事项和避坑指南

以下是针对小白从零学习网站搭建时需要注意的关键事项和避坑指南&#xff0c;帮助你高效学习、少走弯路&#xff1a; 一、学习路径注意事项 不要跳过基础 误区&#xff1a;直接学习框架&#xff08;如 React、Laravel&#xff09;而忽视 HTML/CSS/JS 基础。 正确做法&#xff…...

OpenAI 推出一对 AI 推理模型 o3 和 o4-mini

OpenAI 于 2025 年 4 月 16 日&#xff08;美国东部时间&#xff09;宣布推出两款全新的 AI 推理模型——o3 与 o4-mini&#xff0c;它们能够在给出最终回答前进行思考与推理。 本文中所有的 ChatGPT 服务&#xff0c;由 ChatShare 镜像站 提供&#xff0c;无需担心网络和地区限…...

知识了解03——怎么解决使用npm包下载慢的问题?

1、为什么使用npm下载包会下载的慢 因为使用npm下载包时&#xff0c;默认使用国外服务器进行下载&#xff0c;此时的网络传输需要经过漫长的海底电缆&#xff0c;因此下载速度会变慢 2、怎么解决&#xff1f;&#xff08;切换镜像源&#xff09; &#xff08;1&#xff09;方…...

【网络】IP层的重要知识

目录 1.IP层的作用 2.主机和节点 3.网络层和数据链路层的关系 4.路由控制 4.1.路由控制的过程 4.2. IP地址与路由控制 4.3.路由控制表的聚合 4.4.静态路由和动态路由 4.5.动态路由的基础 5.数据链路的抽象化 5.1.数据链路不同&#xff0c;MTU则相异 5.2.路径MTU发…...

【随身WIFI】随身WiFi Debian系统优化教程

0.操作前必看 本教程基于Debian系统进行优化&#xff0c;有些操作对随身WiFi来说可能会带来负优化&#xff0c;根据需要选择。 所有操作需要在root用户环境下运行&#xff0c;否则都要加sudo 随身wifi Debian系统&#xff0c;可以去某安的随声WiFi模块自行搜索刷机 点赞&am…...

IPCC指南主要变化(各版本)

1996年IPCC国家温室气体清单指南 背景&#xff1a;是IPCC较早发布的指南之一&#xff0c;为国家温室气体清单编制提供了基础方法。 内容&#xff1a;包括了对温室气体排放源和汇的估算方法&#xff0c;涵盖了能源、工业、农业等多个部门。 2006年IPCC国家温室气体清单指南 背…...

关于Diamond机械手的运动学与动力学的推导

1.关于Diamond机械手 &#xff08;1&#xff09;位置模型推导 逆解&#xff1a;机械末端平台的位置与驱动关节之间的关系。 设p点在xy平面的坐标是&#xff08;x&#xff0c;y&#xff09;T&#xff0c;此时根据向量求解 OP等于向量r等于e向xy轴的向量主动臂长度向xy轴的向量…...

@JsonSerialize注解自定义序列化方式

JsonSerialize注解自定义序列化方式 文章目录 JsonSerialize注解自定义序列化方式**前言****创建自定义序列化器****应用自定义序列化器****测试序列化结果****高级用法&#xff1a;全局注册序列化器****关键点解析****常见问题解决****问题1&#xff1a;序列化结果不符合预期*…...

第二篇:linux之Xshell使用及相关linux操作

第二篇&#xff1a;linux之Xshell使用及相关linux操作 文章目录 第二篇&#xff1a;linux之Xshell使用及相关linux操作一、Xshell使用1、Xshell安装2、Xshell使用 二、Bash Shell介绍与使用1、什么是Bash Shell(壳)&#xff1f;2、Bash Shell能干什么&#xff1f;3、平时如何使…...

qt中关于思源雅黑字体的使用

首先&#xff0c;需要下载一份思源雅黑字体&#xff0c;我放在了下面位置&#xff0c;https://download.csdn.net/download/Littlehero_121/90631851 2、关于qt中的使用操作&#xff0c;如下&#xff1a; //QString path "绝对路径";QString path QCoreApplicatio…...

用 MongoIndexStore 实现对话存档和恢复 实现“多用户、多对话线程”场景(像一个 ChatGPT 对话列表那样)

用LlamaIndex写两个完整实用的案例&#xff01; 实现如何用 MongoIndexStore 实现对话存档和恢复实现“多用户、多对话线程”场景&#xff08;像一个 ChatGPT 对话列表那样&#xff09; ✅ 案例一&#xff1a;使用 MongoIndexStore 实现对话存档 恢复 单用户 单对话线程&am…...

接口测试:实用指南4.0

✨博客主页&#xff1a; https://blog.csdn.net/m0_63815035?typeblog &#x1f497;《博客内容》&#xff1a;.NET、Java.测试开发、Python、Android、Go、Node、Android前端小程序等相关领域知识 &#x1f4e2;博客专栏&#xff1a; https://blog.csdn.net/m0_63815035/cat…...

2000-2017年各省国有经济煤气生产和供应业固定资产投资数据

2000-2017年各省国有经济煤气生产和供应业固定资产投资数据 1、时间&#xff1a;2000-2017年 2、来源&#xff1a;国家统计局、能源年鉴 3、指标&#xff1a;行政区划代码、城市、年份、国有经济煤气生产和供应业固定资产投资 4、范围&#xff1a;31省 5、指标说明&#x…...

AOP的基本应用案例---统计每个函数的执行时间

1.导入依赖: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId> </dependency> 2.准备好要计算的SpringBoot的项目(本案例以service的实现类为例) 3.编写AOP的代码: package c…...

前端复习遗忘的知识点

这个是我个人平常学习一些博主的东西&#xff0c;如果侵权请联系我或者让我标上博主平台等信息&#xff0c;谢谢&#xff01; 1&#xff1a;如图涉及知识点jq&#xff1a; 1.获取元素 document.getElementById(""); document.getElementsByClassName(); document.g…...

Unity3d 6(6000.*.*)版本国区下载安装参考

前言 Unity3d 6.是最新的版本&#xff0c;是与来自世界各地的开发者合作构建、测试和优化的成果&#xff0c;现在可以完全投入生产&#xff0c;是我们迄今为止性能最出色、最稳定的 Unity 版本。Unity 6 有许多令人兴奋的新工具和功能&#xff1a;端到端多人游戏工作流程将加速…...

【JavaEE】Maven配置

一、Maven简介 什么是Maven&#xff1f; Maven是一个基于项目对象模型&#xff08;POM&#xff09;构建的自动化工具&#xff0c;主要用于Java项目构建、依赖管理和项目信息管理 我理解的Maven&#xff1a;自动下载和管理“代码零件”&#xff08;比如别人写好的工具包&#x…...

Java排序算法百科全书:原理、实现与实战指南

一、排序算法全景视图 1. 算法分类体系 graph TDA[排序算法] --> B[比较排序]A --> C[非比较排序]B --> B1[基本排序]B1 --> B11[冒泡排序]B1 --> B12[选择排序]B1 --> B13[插入排序]B --> B2[高效排序]B2 --> B21[快速排序]B2 --> B22[归并排序]…...

大模型在教育领域的五大应用

大模型在教育领域的五大应用 随着人工智能技术的迅猛发展&#xff0c;特别是大模型&#xff08;如GPT-3、BERT等&#xff09;的出现&#xff0c;教育领域正迎来一场前所未有的变革。大模型不仅能够处理复杂的自然语言任务&#xff0c;还能够通过深度学习算法理解和生成高质量的…...

Lesson 12 Goodbye and good luck

Lesson 12 Goodbye and good luck 词汇 luck n. 运气&#xff0c;幸运 相关&#xff1a;lucky a. 幸运的    luckily ad. 幸运地    unlucky a. 不幸的 搭配&#xff1a;lucky number 幸运数字    lucky color 幸运色    lucky day 幸运日    lucky dog 幸运儿…...

数据结构-前缀树

一、引言 前缀树又叫字典树&#xff0c;可以快速查找字符串或字符串前缀出现的次数&#xff0c;方便进行前缀匹配、词频统计 二、字典树模型 现有一个字典树&#xff0c;里面有money、mother、salary、salary、say五个单词 其中根节点位置还没有字符&#xff0c;相当于空串&am…...

搭建 vue 项目环境详细步骤

在平常的开发工作中&#xff0c;我们经常需要对项目进行打包&#xff0c;后端项目打包及部署在前面总结过。那么&#xff0c;现在前端基本都是 vue 项目&#xff0c;那么应该如何搭建一个 vue 环境呢&#xff1f;下载一个前端项目应该如何启动呢&#xff1f;今天&#xff0c;我…...

【2025最新版】火鸟门户v8.5系统源码+PC、H5、小程序 +数据化大屏插件

一.介绍 火鸟地方门户系统V8.5源码 系统包含4端&#xff1a; PCH5小程序APP 二.搭建环境 系统环境&#xff1a;CentOS、 运行环境&#xff1a;宝塔 Linux 网站环境&#xff1a;Nginx 1.2.22 MySQL 5.6 PHP-7.4 常见插件&#xff1a;fileinfo &#xff1b; redis 三.测…...

【eNSP实验】OSPF单区域配置

简介 OSPF&#xff08;开放最短路径优先&#xff09;是一种基于链路状态算法的内部网关协议&#xff08;IGP&#xff09;&#xff0c;用于自治系统内部动态路由。其核心机制为&#xff1a;各路由器通过泛洪链路状态通告&#xff08;LSA&#xff09;同步网络拓扑&#xff0c;构…...

e实例性能测评:Intel Xeon Platinum处理器,经济型入门级服务器

阿里云服务器ECS经济型e系列是阿里云面向个人开发者、学生、小微企业&#xff0c;在中小型网站建设、开发测试、轻量级应用等场景推出的全新入门级云服务器&#xff0c;阿里云百科分享CPU处理器采用Intel Xeon Platinum架构处理器&#xff0c;支持1:1、1:2、1:4多种处理器内存配…...

uniapp APP端 DOM生成图片保存到相册

<template> <view class"container" style"padding-bottom: 30rpx;"> <view class"hdbg pr w100 " style"height: 150rpx;"> <top-bar content分享 Back"Back"></top-b…...

Leetcode刷题 由浅入深之哈希表——242. 有效的字母异位词

目录 &#xff08;一&#xff09;字母异位词的C实现 写法一&#xff08;辅助数组&#xff09; &#xff08;二&#xff09;复杂度分析 时间复杂度 空间复杂度 &#xff08;三&#xff09;总结 【题目链接】242.有效的字母异位词 - 力扣&#xff08;LeetCode&#xff09; …...

Opencv函数及练习题

一、函数整理&#xff1a; 1、cv2.adaptiveThreshold&#xff08;&#xff09; 2、 cv2.split&#xff08;&#xff09; 3、cv2.merge&#xff08;&#xff09; 4、cv2.add&#xff08;&#xff09; 5、cv2.bitwise_and&#xff08;&#xff09; 6、 cv2.inRange&#xff08;&…...

16-算法打卡-哈希表-两个数组的交集-leetcode(349)-第十六天

1 题目地址 349. 两个数组的交集 - 力扣&#xff08;LeetCode&#xff09;349. 两个数组的交集 - 给定两个数组 nums1 和 nums2 &#xff0c;返回 它们的 交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 示例 1&#xff1a;输入&#xff1a;nu…...

计算机视觉——JPEG AI 标准发布了图像压缩新突破与数字图像取证的挑战及应对策略

概述 今年2月&#xff0c;经过多年旨在利用机器学习技术开发一种更小、更易于传输和存储且不损失感知质量的图像编解码器的研究后&#xff0c;JPEG AI国际标准正式发布。 来自JPEG AI官方发布流&#xff0c;峰值信噪比&#xff08;PSNR&#xff09;与JPEG AI的机器学习增强方法…...

【JavaWeb后端开发01】Maven入门

课程内容&#xff1a; 初始Maven Maven概述 Maven模型 Maven仓库介绍 Maven安装与配置 IDEA集成Maven 依赖管理 单元测试 文章目录 1. 初始Maven1.1 介绍1.2 Maven的作用1.2.1 依赖管理1.2.2 项目构建1.2.3 统一项目结构 2. Maven概述2.1 Maven介绍2.2 Maven模型2.3 Ma…...

【Leetcode】16. 最接近的三数之和

一、题目描述 给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。 返回这三个数的和。 假定每组输入只存在恰好一个解。 示例 1: 输入:nums = [-1,2,1,-4], target = 1 输出:2解释: 与 target 最接近…...

目标检测概述

为什么基于卷积网络的目标检测模型在预测后要使用非极大值抑制 基于卷积网络的目标检测模型可能会在目标的相邻区域生成多个相互重叠框&#xff0c;每个框的预测结果都是同一个目标&#xff0c;引起同一目标的重复检测。造成这一现象的原因主要有两个&#xff0c; 基于卷积网络…...

摄影跟拍预定|基于java+vue的摄影跟拍预定管理系统(源码+数据库+文档)

摄影跟拍预定管理系统 目录 基于SprinBootvue的摄影跟拍预定管理系统 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2管理员功能模块 3摄影师功能模块 4用户功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获…...

--图--

并查集 并查集原理 在一些应用问题中&#xff0c;需要将n个不同的元素划分成一些不相交的集合。开始时&#xff0c;每个元素自成一个单元素集合&#xff0c;然后按一定的规律将归于同一组元素的集合合并。在此过程中要反复用到查询某一个元素归属于那个集合的运算。适合于描述…...

Python中的count()方法

文章目录 Python中的count()方法基本语法在不同数据类型中的使用1. 列表(List)中的count()2. 元组(Tuple)中的count()3. 字符串(String)中的count() 高级用法1. 指定搜索范围2. 统计复杂元素 注意事项 Python中的count()方法 前言&#xff1a;count()是Python中用于序列类型&a…...

通过gird布局实现div的响应式分布排列

目标&#xff1a;实现对于固定宽度的div盒子在页面中自适应排布&#xff0c;并且最后一行的div盒子可以与前面的盒子对齐。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" con…...