基于JAVA+SpringBoot+Vue+uniapp+协同过滤算法+爬虫+AI的减肥小程序

✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌

🍅文末获取项目下载方式🍅


一、项目背景介绍:

小程序用户登录,注册,然后填写自己的个人信息(姓名,性别,出生日期,身高,当前体重),然后可以为自己添加减肥计划(比如 需要通过几周减肥XX斤变成目标体重,并且选择自己的运行类型(久坐不动,少量运行,中等运动),如果设置目标体重时,经计算得出每日减肥体重大于健康减肥体重系统(初始体重的%1)给出提示),系统获取到用户计划之后 为用户进行相关计算
相关计算包括(和当日体重有关的计算都应当动态变化,体重变化周期以日为单位),1:通过对应公式计算用户的BMR,然后通过BMR和用户运动类型计算出对应的 用户一天需要摄入的卡路里;2:减肥一千克需要减少摄入9000卡路里 然后通过用户一天该摄入的卡路里减去9000得出 系统建议用户一天摄入的卡路里;3:通过上述计算之后得出用户一天建议摄入的卡路里之后 然后通过某个比例得出早中晚三次应该摄入的比例(比如,早中晚分别对应2 5 3,就是假如系统建议用户一天摄入1000卡路里那么得出的 早餐中餐晚餐应该摄入的卡路里就是200 500 300);4:通过上述建议的早中晚三餐应该摄入的卡路里和协同过滤算法来推荐今日对应的食谱;5:计算出用户当前体重的BMI,然后通过人工智能AI进行用户对应的运动推荐

二、项目技术简介:

  1. JAVA:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
  2. Vue:Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的JavaScript框架。它基于标准HTML、CSS和JavaScript构建,并提供了一套声明式的、组件化的编程模型,帮助开发者高效地开发用户界面。
    Vue是一个独立的社区驱动的项目,它是由尤雨溪在2014年作为其个人项目创建, 是一个成熟的、经历了无数实战考验的框架,它是目前生产环境中使用最广泛的JavaScript框架之一,可以轻松处理大多数web应用的场景,并且几乎不需要手动优化,并且Vue完全有能力处理大规模的应用。
  3. Element-UI:Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库。
  4. SpringBoot:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
  5. Mybatis-Plus:MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为 简化开发、提高效率而生。
  6. smart:微信小程序,小程序的一种,英文名Wechat Mini Program,是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用。
    全面开放申请后,主体类型为企业、政府、媒体、其他组织或个人的开发者,均可申请注册小程序。微信小程序、微信订阅号、微信服务号、微信企业号是并行的体系。
    微信小程序是一种不用下载就能使用的应用,也是一项创新,经过将近两年的发展,已经构造了新的微信小程序开发环境和开发者生态。微信小程序也是这么多年来中国IT行业里一个真正能够影响到普通程序员的创新成果,已经有超过150万的开发者加入到了微信小程序的开发,与我们一起共同发力推动微信小程序的发展,微信小程序应用数量超过了一百万,覆盖200多个细分的行业,日活用户达到两个亿,微信小程序还在许多城市实现了支持地铁、公交服务。微信小程序发展带来更多的就业机会,2017年小程序带动就业104万人,社会效应不断提升。
  7. 协同过滤算法:协同过滤算法是一种基于用户历史行为数据的推荐算法,它通过对用户历史行为数据的挖掘发现用户的偏好,基于不同的偏好对用户进行群组划分并推荐品味相似的商品。协同过滤推荐算法分为两类,分别是基于用户的协同过滤算法和基于物品的协同过滤算法。

基于用户的协同过滤算法是根据用户之间的相似性来进行推荐,而基于物品的协同过滤算法则是根据物品之间的相似性来进行推荐。
8. 爬虫:网络爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。 通俗地讲,我们把互联网比作一张大蜘蛛网,每个站点资源比作蜘蛛网上的一个结点,爬虫就像一只蜘蛛,按照设计好的路线和规则在这张蜘蛛网上找到目标结点,获取资源。

三、系统功能模块介绍:

功能模块图

四、数据库设计:

1:‘管理员’(admins)

字段名类型默认值列注释
idbigintNULL管理员编号
ad_namevarcharNULL昵称
ad_usernamevarcharNULL账号
ad_passwordvarcharNULL密码
ad_headervarcharNULL头像

2:‘文章’(blogs)

字段名类型默认值列注释
idbigintNULL文章编号
titlevarcharNULL文章标题
cover_imgvarcharNULL封面图片
contenttextNULL详情
detailtextNULL图片数组
create_timedatetimeNULL发布时间

3:‘评论’(comment)

字段名类型默认值列注释
idbigintNULL评论编号
contentvarcharNULL评论内容
blog_idbigintNULL文章编号
user_idbigintNULL用户编号
parent_idbigintNULL父评论编号
create_timedatetimeNULL创建时间

4:‘饮水记录’(drink_records)

字段名类型默认值列注释
idbigintNULL饮水记录编号
user_idbigintNULL所属用户
mlintNULL饮水量
create_timedateNULL创建时间
plan_idbigintNULL所属计划
update_timedatetimeNULL修改时间

5:‘饮食记录管理’(food_records)

字段名类型默认值列注释
idbigintNULL记录编号
plan_idbigintNULL所属计划
user_idbigintNULL所属用户
food_idbigintNULL食品编号
typeintNULL类型[0:早餐,1:午餐,2:晚餐,3:加餐]
create_timedateNULL创建时间
update_timedatetimeNULL更新时间

6:‘食品管理’(foods)

字段名类型默认值列注释
idbigintNULL食品编号
food_namevarcharNULL食品名称
food_imgvarcharNULL食品图片
calorievarcharNULL热量
food_typebigintNULL商品分类
time_typeintNULL时间类型[0:早餐,1:午餐,2:晚餐]
create_timedatetimeNULL创建时间

7:‘运动记录管理’(motion_records)

字段名类型默认值列注释
idbigintNULL运动记录编号
plan_idbigintNULL所属计划
user_idbigintNULL所属用户
motion_idbigintNULL所属运动
create_timedateNULL创建时间

8:‘运动管理’(motions)

字段名类型默认值列注释
idbigintNULL运动编号
motion_namevarcharNULL运动名称
motion_imgvarcharNULL运动图标
calorievarcharNULL热量
type_idbigintNULL所属分类
create_timedatetimeNULL创建时间

9:‘每日计划详细’(plan_detail)

字段名类型默认值列注释
idbigintNULL记录编号
current_weightvarcharNULL当前体重
bmrvarcharNULL基础代谢率
bmivarcharNULL身体质量指数
drinkvarcharNULL推荐饮水量
normal_caloriesvarcharNULL正常卡路里
recommend_caloriesvarcharNULL推荐卡路里
motions_infotextNULL运动推荐
breakfastbigintNULL推荐早餐编号
lunchbigintNULL午餐推荐编号
dinnerbigintNULL晚餐推荐编号
plan_idbigintNULL所属计划
user_idbigintNULL所属用户
create_timedateNULL创建时间

10:‘计划管理’(plans)

字段名类型默认值列注释
idbigintNULL计划编号
user_idbigintNULL所属用户
plan_namevarcharNULL计划名称
plan_start_timedateNULL计划开始时间
plan_end_timedateNULL计划结束时间
statusintNULL计划状态[0:启用,1:禁用]
target_weightvarcharNULL目标体重
motion_typeintNULL运动类型[0:久坐不动,1:少量运行,2:中等运动,3:大量运动]
create_timedatetimeNULL创建时间

11:‘分类管理’(types)

字段名类型默认值列注释
idbigintNULL分类编号
type_namevarcharNULL分类名称
typeintNULL分类[0:食品,1:运动]
create_timedatetimeNULL创建时间

12:‘用户管理’(users)

字段名类型默认值列注释
idbigintNULL用户编号
nicknamevarcharNULL用户姓名
sexintNULL性别[0:男,1:女]
avatarvarcharNULL头像
birthdayvarcharNULL出生日期
weightvarcharNULL当前体重
heightvarcharNULL身高
usernamevarcharNULL用户名
passwordvarcharNULL密码
create_timedatetimeNULL创建时间

五、功能模块:

  1. 小程序登录注册:用户可以进行账号登录已经注册

    小程序登录注册

  2. 小程序首页:小程序首页包含减肥计划,以及体重记录,热量记录入口,当前饮水已经二十摄入,运动训练记录

    小程序首页

  3. 饮食记录:记录用户今日摄入的卡路里,消耗的卡路里,以及早中晚三餐的具体饮食,运动详情

    饮食记录

  4. 饮食记录:记录用户每日的饮水量

    饮食记录

  5. 减肥资讯:通过爬虫自动获取减肥资讯,用户可以进行相关评论

    减肥资讯

  6. 饮食推荐:根据用户体重情况以及协同过滤算法来推荐用户的早中晚三餐

    饮食推荐

  7. 运动推荐:AI通过用户的体重来进行合适的运动推荐

    运动推荐

  8. 后台管理:对整个系统的数据进行管理,包括饮食分类,食品,运动,用户,减肥计划等数据管理

    后台管理

六、代码示例:

@GetMapping("/home/init/{id}")public ReturnMsg homeInit(@PathVariable Long id) throws Exception {UsersDTO usersDTO = usersService.getById(id);// 查询用户当前计划LambdaQueryWrapper<PlansDTO> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.eq(PlansDTO::getStatus, 0).eq(PlansDTO::getUserId, id).last("limit 1");PlansDTO plansDTO = baseService.getOne(queryWrapper);if (plansDTO == null) throw new Exception("暂无减肥计划");boolean greaterOrEqual = LocalDateTimeUtils.isCurrentDateGreaterOrEqual(plansDTO.getPlanStartTime());if (!greaterOrEqual) throw new Exception("减肥计划未到达开始时间");Long planId = plansDTO.getId();String currentDay = LocalDateTimeUtils.formatNowyyMMdd();LambdaQueryWrapper<PlanDetailDTO> queryWrapper1 = new LambdaQueryWrapper<>();queryWrapper1.eq(PlanDetailDTO::getPlanId, planId).eq(PlanDetailDTO::getCreateTime, currentDay).eq(PlanDetailDTO::getUserId, id).last("limit 1");PlanDetailDTO planDetailDTO = planDetailService.getOne(queryWrapper1);HomeVO homeVO = new HomeVO();homeVO.setPlanId(planId);homeVO.setStartTime(plansDTO.getPlanStartTime());homeVO.setEndTime(plansDTO.getPlanEndTime());// 当前体重String currentWeight = getCurrentWeight(id, planId, usersDTO);homeVO.setCurrentWeight(currentWeight);// 开始体重homeVO.setStartWeight(usersDTO.getWeight());// 每天需要减肥double needWeight = Double.parseDouble(currentWeight) - Double.parseDouble(plansDTO.getTargetWeight());if (needWeight <= 0) {homeVO.setDayWeight(0d);} else {int days = LocalDateTimeUtils.differentDays(new Date(), plansDTO.getPlanEndTime());double dayNeedWeight = needWeight / days;homeVO.setDayWeight(handleScale(dayNeedWeight));}if (planDetailDTO == null) {// 处理今日计划planDetailDTO = handlePlanDetail(plansDTO, usersDTO, homeVO.getCurrentWeight());planDetailDTO.setCurrentWeight(currentWeight);planDetailService.save(planDetailDTO);// 运动推荐handleMotionsInfo(planDetailDTO.getId(), usersDTO, homeVO.getCurrentWeight(), plansDTO);// 早中晚三餐推荐handleFood(planDetailDTO.getId(), planDetailDTO.getRecommendCalories());}homeVO.setPlanDetailId(planDetailDTO.getId());homeVO.setUpdateTime(planDetailDTO.getCreateTime());// 今日目标饮水量homeVO.setDayDrink(planDetailDTO.getDrink());// 还需要的饮水量homeVO.setDrink(dayDrink(planId, usersDTO.getId(), planDetailDTO.getDrink()));// 目标体重homeVO.setTargetWeight(plansDTO.getTargetWeight());// 热量记录查询FoodRecordsDTO foodRecordsDTO = new FoodRecordsDTO();foodRecordsDTO.setUserId(id);foodRecordsDTO.setPlanId(planId);foodRecordsDTO.setCreateTimeStr(currentDay);List<FoodRecordsDTO> foodRecordsDTOS = foodRecordsService.findList(foodRecordsDTO);homeVO.setFoodRecordsDTOS(foodRecordsDTOS);// 饮食卡路里double foodCaloriesTotal = 0d;// 运动消耗的卡路里double motionsCaloriesTotal = 0d;if (CollectionUtil.isNotEmpty(foodRecordsDTOS)) {homeVO.setFoodUpdateTime(foodRecordsDTOS.get(0).getUpdateTime());for (FoodRecordsDTO recordsDTO : foodRecordsDTOS) {foodCaloriesTotal += Double.parseDouble(recordsDTO.getCalorie());}}homeVO.setFoodCalories(foodCaloriesTotal);homeVO.setRecommendCalories(handleScale(Double.parseDouble(planDetailDTO.getRecommendCalories())));// 运动记录查询MotionRecordsDTO motionRecordsDTO = new MotionRecordsDTO();motionRecordsDTO.setUserId(id);motionRecordsDTO.setPlanId(planId);motionRecordsDTO.setCreateTimeStr(currentDay);List<MotionRecordsDTO> motionRecordsDTOS = motionRecordsService.findList(motionRecordsDTO);homeVO.setMotionRecordsDTOS(motionRecordsDTOS);if (CollectionUtil.isNotEmpty(motionRecordsDTOS)) {for (MotionRecordsDTO recordsDTO : motionRecordsDTOS) {motionsCaloriesTotal += Double.parseDouble(recordsDTO.getCalorie());}}// 设置今日运动消耗卡路里homeVO.setMotionCalories(motionsCaloriesTotal);// 今日还可卡路里 = 推荐卡路里 + 运动消耗的卡路里 - 饮食的卡路里double dayCalories = Double.parseDouble(planDetailDTO.getRecommendCalories()) + motionsCaloriesTotal - foodCaloriesTotal;homeVO.setDayCalories(handleScale(dayCalories));return ReturnMsg.ok(homeVO);}

七、项目总结:

通过对基于JAVA+SpringBoot+Vue+uniapp+协同过滤算法+爬虫+AI的减肥小程序的开发,让我深刻明白开发一个程序软件需要经历的流程,当确定要开发一个基于JAVA+SpringBoot+Vue+uniapp+协同过滤算法+爬虫+AI的减肥小程序的程序时,
我在开发期间,对其功能进行合理的需求分析,然后才是程序软件的功能的框架设计,数据库的实体与数据表设计,
程序软件的功能详细界面实现,以及程序的功能测试等进行全方位的细致考虑,虽然在此过程中,各个环节都遇到了大大小小的困难,但是通过对这些问题进行反复的分析,深入的思考,
借助各种相关文献资料提供的方法与解决思路成功解决面临的各个问题,最后成功的让我开发的基于JAVA+SpringBoot+Vue+uniapp+协同过滤算法+爬虫+AI的减肥小程序得以正常运行。
基于JAVA+SpringBoot+Vue+uniapp+协同过滤算法+爬虫+AI的减肥小程序在功能上面是基本可以满足用户对系统的操作,但是这个程序软件也有许多方面是不足的,因此,在下一个时间阶段,有几点需要改进的地方需要提出来,它们分别是:
(1)操作页面可以满足用户简易操作的要求,但是在页面多样化设计层面上需要把一些比较丰富的设计结构考虑进来。
(2)程序软件的总体安全性能需要优化,例如程序的退出安全性,以及程序的并发性等问题都需要进行安全性升级,让开发的基于JAVA+SpringBoot+Vue+uniapp+协同过滤算法+爬虫+AI的减肥小程序中的相关网站更贴合。
(3)需要对程序的数据结构方面,程序的代码方面等进行优化,让运行起来的程序可以保持稳定运行,也让程序能够保证短时间内处理相关事务,节省处理事务的时间,提高事务处理的效率,
同时对服务器上资源占用的比例进行降低。
基于JAVA+SpringBoot+Vue+uniapp+协同过滤算法+爬虫+AI的减肥小程序的开发一方面是对自身专业知识技能进行最终考核,另一方面也是让自己学会独立解决程序开发过程中所遇到的问题,掌握将理论知识运用于程序开发实践的方法。
基于JAVA+SpringBoot+Vue+uniapp+协同过滤算法+爬虫+AI的减肥小程序的开发最终目标就是让系统更具人性化,同时在逻辑设计上,让系统能够更加的严谨。

八、源码获取:

大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻获取项目下载链接,博主联系方式👇🏻👇🏻👇🏻

链接点击直达:下载链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/872108.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端开发体系+html文件详解

目录 html骨架 body主体内基本元素 基本元素 超文本&#xff08;超链接跳转&#xff09; 锚点 图片标签 列表标签 表格标签 框架标签&#xff08;窗口标签&#xff09; 音频标签 视频标签 VScode编译器 输入框 字体样式 实例展示&#xff1a; 首先简要介绍前端的整…

在VS2017下FFmpeg+SDL编写最简单的视频播放器

1.下载ShiftMediaProject/FFmpeg 2.下载SDL2 3.新建VC控制台应用 3.配置include和lib 4.把FFmpeg和SDL的dll 复制到工程Debug目录下&#xff0c;并设置调试命令 5.复制一下mp4视频到工程Debug目录下&#xff08;复制一份到*.vcxproj同一目录&#xff0c;用于调试&#xff09; 6…

python中的re模块--正则表达式

正则表达式&#xff0c;又称规则表达式。&#xff08;英语&#xff1a;Regular Expression&#xff0c;在代码中常简写为regex、regexp或RE&#xff09;&#xff0c;计算机科 学的一个概念。正则表达式通常被用来检索、替换那些符合某个模 式(规则)的文本 re模块作用 通过使用…

JVM 内存介绍

本文主要介绍&#xff1a; JVM 内存分哪几个区&#xff0c;每个区的作用是什么 备注: 橙色:堆 和 方法区 &#xff0c;属于jvm公有部分,可以进行调优 灰色:java栈,本地方法栈和计数器 属于jvm的私有部分,不可进行调优 一个对象从创建到被回收的过程是怎样的? Personpnew Perso…

【HarmonyOS】HarmonyOS NEXT学习日记:一、创建和运行一个页面

【HarmonyOS】HarmonyOS NEXT学习日记&#xff1a;一 DevEco Studio下载与安装 直接到官网的下载地址下载即可 正常下载、解压、安装完成后 正常来说不会有项目&#xff0c;并且是英文界面。 需要汉化的话可以按照下面的步骤设置插件 选择customize里的 all setting 进入…

macOS Sequoia 15(Macos15系统)v15.0 Beta 3发布 macOS Sequoia 15 功能预览

macOS Sequoia 15 功能预览 犀利一如 Mac macOS Sequoia 15(Macos15系统)v15.0 Beta 3测试版本下载安装 连续互通 你的 Mac 上&#xff0c;iPhone 用起来。 有了 iPhone 镜像功能&#xff0c;在 Mac 上就能看到 iPhone 屏幕画面&#xff0c;还能直接进行操控&#xff0c;不拿…

uniapp 实现上传文件的功能

上传单个文件 <script setup>const handleUploadClick () > {console.log("上传文件")uni.chooseImage({success: (chooseImageRes) > {const tempFilePaths chooseImageRes.tempFilePaths;console.log("用户选择的图片&#xff1a;", temp…

誉天教育与武汉晴川学院携手开展鸿蒙实训营,共筑鸿蒙生态新篇章!

在数字经济蓬勃发展的今天&#xff0c;鸿蒙系统作为华为自主研发的操作系统&#xff0c;正逐步构建起一个开放、协同、共赢的生态体系。为了进一步推动鸿蒙生态的繁荣发展&#xff0c;培养更多具备鸿蒙原生应用开发能力的专业人才&#xff0c;誉天教育与武汉晴川学院强强联合&a…

十九、【文本编辑器(五)】排版功能

目录 一、搭建框架 二、实现段落对齐 三、实现文本排序 一、搭建框架 (1) 在imgprocessor.h文件中添加private变量&#xff1a; QLabel *listLabel; //排序设置项QComboBox *listComboBox;QActionGroup *actGrp;QAction *leftAction;QAction *…

C#知识|SqlParameterCollection 只接受非空的 SqlParameter 类型对象,不接受 SqlParameter[] 对象

哈喽&#xff0c;你好啊&#xff0c;我是雷工&#xff01; 今天在练习C#时遇到报错&#xff1a; SqlParameterCollection 只接受非空的 SqlParameter 类型对象&#xff0c;不接受 SqlParameter[] 对象。 01 为什么使用SqlParameter 开发中之所以采用SqlParameter[]param是因为…

weblogic中间件运维常见问题

背景&#xff1a; 工作需要经常使用到weblogic中间件产品&#xff0c;在维护过程中有遇见的一些常见故障问题&#xff0c;这里分享给大家。 问题一&#xff1a;密码文件报错 问题描述&#xff1a; weblogic应用在启动过程中出现如下的报错内容&#xff1a; # tail -f nohup.ou…

五、 计算机网络(考点篇)试题

A、B、C都没问题&#xff0c;选D。现在基本上所有的互联网网站都是https了&#xff0c;电子支付类的更不用说了。 简单邮件传输的协议是SMTP(发)和POP3(收)&#xff0c;分别是25和110。选B和B 网络分片技术&#xff0c;分割切片嘛。 选C&#xff0c;AES加密等级比较高了&#x…

MFC程序创建word,创建表格,写入数据

文章目录 1、MFC程序功能&#xff1a;2、MFC程序实现2.1 创建项目2.2 添加word操作类2.3 添加word资源2.4 编写代码&#xff0c;实现将数据写入到word2.5 运行程序、验证功能3、工程代码下载 1、MFC程序功能&#xff1a; 创建word文档&#xff1b;向文档中写入字符串&#xff…

Jenkins用户权限管理指定操作任务

安装插件 在 Jenkins 的管理插件中进行插件安装。 搜索插件库&#xff1a;Role-based Authorization Strategy 修改授权策略 在全局安全配置中&#xff0c;把授权策略改为Role-Based Strategy 添加角色规则 在安全中选择Manage and Assign Roles 在Global roles中添加一个…

Docker的虚拟化安装、常用命令和使用案例

文章目录 一、Docker的虚拟机安装1、完成虚拟机的更新2、完成Docker安装3、配置镜像加速器 二、Docker常用命令三、Docker的容器创建四、理解虚拟机中的Docker容器 一、Docker的虚拟机安装 1、完成虚拟机的更新 详见我的文章。 2、完成Docker安装 yum list installed|grep …

数据的力量:Facebook如何通过数据分析驱动创新

在当今数字化和信息化的时代&#xff0c;数据被认为是推动企业创新和发展的关键因素之一。作为全球最大的社交媒体平台&#xff0c;Facebook不仅积累了庞大的用户数据&#xff0c;还利用先进的数据分析技术&#xff0c;不断探索和实现新的创新。本文将深入探讨Facebook如何通过…

知识付费小程序源码 thinkphp后台 带3000多条教程数据

知识付费小程序源码 thinkphp后台 带3000多条教程数据,云码素材有进行了更新开发,更新了广告位管理,后台一键更新数据,用户登录 不单单是一个源码,我们对接了云码素材的教程资源,也就是说你可以免费拥有云码素材所有教程资源,后台一键更新,无须自己再更新资源,每天有我们更新,…

​iredmail邮件系统如何有效配置SMTP服务器?​

iredmail邮件系统安全性如何保障&#xff1f;怎么选择邮件系统&#xff1f; SMTP是发送邮件的标准协议&#xff0c;设置正确的SMTP服务器可以保证邮件能够顺利发送到接收者的收件箱中。AokSend将详细介绍在iredmail邮件系统中如何配置SMTP服务器&#xff0c;以确保您的邮件系统…

EPLAN 去掉PDF中的红色跳转标识

EPLAN PDF图纸导出后体验跳转标识会有红色标识&#xff0c;如何去掉呢&#xff1f;下面介绍一下方法&#xff1a; 此为现象&#xff1a; EPLAN 2.9的帮助文档里提示&#xff1a; 在导出的 PDF 文档中&#xff0c;跳转后的跳转目标现在通过红色的闪烁框进行标识。可能的跳转目…

RocketMQ控制台(rocketmq-dashboard/)

RocketMQ控制台的官网&#xff1a;RocketMQ控制台官网 页面往下拉 用户指导 https方式访问rocketmq-dashboard