基于Java+SpringBoot+Vue3+Uniapp+TypeScript(有视频教程)前后端分离的求职招聘小程序

博主介绍:✌全网粉丝5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验✌

博主作品:《Java项目案例》主要基于SpringBoot+MyBatis/MyBatis-plus+MySQL+Vue等前后端分离项目,可以在左边的分类专栏找到更多项目。《Uniapp项目案例》有几个有uniapp教程,企业实战开发。《微服务实战》专栏是本人的实战经验总结,《Spring家族及微服务系列》专注Spring、SpringMVC、SpringBoot、SpringCloud系列、Nacos等源码解读、热门面试题、架构设计等。除此之外还有不少文章等你来细细品味,更多惊喜等着你哦

🍅uniapp微信小程序🍅面试题软考题免费使用,还可以使用ChatGPT,微信支付,扫码加群

点击这里预览

🍅文末获取联系🍅精彩专栏推荐订阅👇🏻👇🏻 不然下次找不到哟

Java项目案例《100套》

https://blog.csdn.net/qq_57756904/category_12173599.html
uniapp小程序《100套》

https://blog.csdn.net/qq_57756904/category_12199600.html

0

一、前言

基于Uniapp+Vue3+TypeScript的微信小程序,Uniapp具备多端部署的特性,后期也可能考虑进行多端部署。

    诚海网络技术(考学宝)系列已经成熟了,并衍生出一系列其他类别的小程序,如健身约课、求职招聘等。经过小中大厂、单体、微服务的洗礼以及对源码底层理解后,决定沉淀出一些自己总结的成果。

    该系列产品有着复用代码特性,可以做到一处编码到处可用,提高代码的可维护性与简洁性,提高编码效率降低开发成本。系统也有着内核设计,扩展了底层框架以满足更加复杂的需求。本系统也是在受微服务影响下完成的,对于改造成微服务也是比较丝滑的事情。

功能架构如下所示

  • 管理后台的web端:Vue3 提供ant-design-vue)版本,Vue2 提供element-ui版本

  • 管理后台的移动端:采用uni-app方案,一份代码多终端适配,同时支持 APP、小程序、H5!

  • 后端采用 SpringBoot架构,对于改造微服务也是丝滑的事情。

  • 数据库可使用 MySQL,ORM基于 MyBatis Plus、Redis + Redisson 

  • 权限认证使用 Spring Security & Token & Redis

  • 支持加载动态权限菜单,按钮级别权限控制,Redis 缓存提升性能

  • 支持多租户系统

  • 高效率开发,使用代码生成器可以一键生成 Java代码

  • 实时通信,采用 WebSocket 实现,内置 Token 身份校验

  • 集成微信小程序三方登陆,集成支付宝、微信等支付

  • 集成 MinIO云存储服务

  • 支持皮肤切换,提供多套风格让用户选择

  • 支持Docker容器化部署,Nginx反向代理等

  • 具有ChatGPT功能,学习、工作、情感以及生活都可以向她咨询提问获得优质答案

以上就是 诚海网络技术(考学宝)系列产品的特性,接下来的求职招聘小程序也是建立在此基础上。

二、系统设计简述

1、系统运行环境

开发系统:Windows10

架构模式:MVC/前后端分离

JDK版本:Java8

开发工具:IDEA

数据库版本: mysql5.7或以上

数据库可视化工具: SQL yog或Navicat for MySQL

服务器:SpringBoot自带 apache tomcat

主要技术:Java、SpringBoot、MyBatis-plus、MySQL、WebSocket、Redis、Minio、Uniapp、Vue3、Elementui等

2、系统架构设计
 

三、需求分析简介

    招聘平台系统的用户共分为三类:个人用户、企业用户、管理员。

1、个人用户

    求职用户首先完成注册登录,维护自己的简历信息,也可以实时浏览企业发布的招聘信息,按自己的要求筛选出合适的企业从而决定投递简历、可以收藏职位、关注企业,并可以在企业应答之后收到相应的回复、查看面试信息等。求职用户的用例图如图3-1所示。
 

图3-1 个人用户用例图

2、企业用户


    企业用户首先注册将用户信息录入系统,登录后先完成企业认证等待系统管理员审核,审核通过后发布招聘岗位,也可以实时浏览求职者投递的简历进行筛选,简历通过的就可以发送面试通知。企业用户的用例图如图3-2所示。

                                  图3-2 企业用户用例图

3、管理员

    管理员首先完成注册登录,可以进行用户管理、角色管理以及授予系统权限,手动操作企业认证审核的流程、手动操作职位认证审核以及职位分类的管理维护。管理员的用例图如图3-3所示。

四、功能截图

1、

2、

3、

3.1、

4、

4.1、

5、

6、

7、

7.1、

7.2、

7.3、

8、

9、

9.1、

9.2、

10、

五、代码实现 

1、用户控制器

@Slf4j
@RestController
@AllArgsConstructor
@RequestMapping("/api/users")
public class CeamSysUserController {private final ICeamSysUserService ceamSysUserService;@GetMappingpublic ResponseEntity page(PageableDTO pageableDTO) {IPage<CeaMSysUserVO> ceaMSysUserVOIPage = ceamSysUserService.pageCeaMSysUserVO(pageableDTO);return ResponseEntity.ok(ceaMSysUserVOIPage);}@PostMappingpublic ResponseEntity<Object> add(@RequestBody CeaMSysUserDTO data) {ceamSysUserService.add(data);return ResponseEntity.ok("成功");}@PutMappingpublic ResponseEntity<Object> edit(@RequestBody CeaMSysUserDTO data) {ceamSysUserService.edit(data);return ResponseEntity.ok("成功");}@DeleteMappingpublic ResponseEntity<Object> add(@RequestParam String id) {ceamSysUserService.remove(Long.parseLong(id));return ResponseEntity.ok("成功");}
}

2、用户服务接口

/*** <p>* 用户表 服务类* </p>** @author CeaM* @since 2023-01-28*/
public interface ICeamSysUserService extends IService<CeamSysUser> {/*** 分页查询** @param pageableDTO 分页入参* @return 分页数据*/IPage<CeaMSysUserVO> pageCeaMSysUserVO(PageableDTO pageableDTO);/*** 根据账号加载用户信息** @param userName 用户账号* @return CeaMSysUserDTO*/CeaMSysUserDTO loadUserInfo(String userName);/*** 添加用户** @param data 前端入参*/void add(CeaMSysUserDTO data);/*** 修改用户** @param data 前端入参*/void edit(CeaMSysUserDTO data);/*** 根据用户ID删除用户** @param id userId*/void remove(Long id);
}

3、服务实现类

@Service
public class CeamSysUserServiceImplextends ServiceImpl<CeamSysUserMapper, CeamSysUser> implements ICeamSysUserService {@Overridepublic IPage<CeaMSysUserVO> pageCeaMSysUserVO(PageableDTO pageableDTO) {LambdaQueryWrapper<CeamSysUser> queryWrapper = Wrappers.<CeamSysUser>lambdaQuery().eq(CeamSysUser::getDeleted, GlobalConstants.FALSE);Page<CeamSysUser> page = new Page<>(pageableDTO.getPage(), pageableDTO.getSize());page.setCurrent((long)pageableDTO.getPage()  + GlobalConstants.ONE);Page<CeamSysUser> ceamSysUserPage = page(page, queryWrapper);IPage<CeaMSysUserVO> ceaMSysUserVOIPage = PageVOUtil.copyToPageVO(ceamSysUserPage, CeaMSysUserVO.class);return ceaMSysUserVOIPage;}@Overridepublic CeaMSysUserDTO loadUserInfo(String userName) {LambdaQueryWrapper<CeamSysUser> queryWrapper = Wrappers.<CeamSysUser>lambdaQuery().eq(CeamSysUser::getUsername, userName);CeamSysUser ceamSysUser = baseMapper.selectOne(queryWrapper);if (ObjectUtils.isEmpty(ceamSysUser)) {throw new ServiceException("账号不存在");}if (ceamSysUser.getStatus() == GlobalConstants.ONE) {throw new ServiceException("账号已禁用");}CeaMSysUserDTO ceaMSysUserDTO = BeanCopyUtil.copyProperties(ceamSysUser, CeaMSysUserDTO.class);return ceaMSysUserDTO;}@Overridepublic void add(CeaMSysUserDTO data) {CeamSysUser ceamSysUser = BeanCopyUtil.copyProperties(data, CeamSysUser.class);save(ceamSysUser);}@Overridepublic void edit(CeaMSysUserDTO data) {CeamSysUser ceamSysUser = BeanCopyUtil.copyProperties(data, CeamSysUser.class);updateById(ceamSysUser);}@Overridepublic void remove(Long id) {removeById(id);}
}

六、uniapp视频教程与SpringBoot项目实战视频教程

点击这里拉到底部

七、获取源码

 大家点赞、收藏、关注、评论啦 、非开源商业使用需要授权关注下方公众号获取联系方式👇🏻👇🏻

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

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

相关文章

机器人AGV小车避障传感器测距

一、A22超声波传感器 该模块是基于机器人自动控制应用而设计的超声波避障传感器&#xff0c;针对目前市场上对于超声波传感器模组盲区大、测量角度大、响应时间长、安装适配性差等问题而着重设计。 具备了盲区小、测量角度小、响应时间短、过滤同频干扰、体积小、安装适配性高…

csapp-linklab之第3阶段“输出学号”实验报告(强弱符号)

题目 新建一个phase3_patch.o&#xff0c;使其与main.o和phase3.o链接后&#xff0c;运行输出自己的学号&#xff1a; $ gcc -o linkbomb main.o phase3.o phase3_patch.o $ ./linkbomb $学号 提示 利用符号解析中的强弱符号规则。&#xff08;COOKIE字符串未初始化&#xff…

编写算法,对n个关键字取整数值的记录序列进行整理。以使所有关键字为负值的记录排在关键字为非负值的记录之前

编写算法&#xff0c;对n个关键字取整数值的记录序列进行整理。以使所有关键字为负值的记录排在关键字为非负值的记录之前&#xff0c;要求&#xff1a; &#xff08;1&#xff09;采用顺序存储结构&#xff0c;至少使用一个记录的辅助存储空间 &#xff08;2&#xff09;算法的…

Echarts大屏可视化_04 横向柱状图模块的引入和开发

模块的引入 1.寻找官方示例引入 ECharts官方实例入口 2.引入示例 ECharts 示例 可从这里直接进入 标题、提示信息、图例都不需要所以直接删掉 <div class"column"><div class"panel bar2"><h2>柱状图-技能掌握</h2><div cla…

直线上最多的点数

题目链接 直线上最多的点数 题目描述 注意点 points 中的所有点 互不相同points[i].length 2 解答思路 一条直线的函数为f(x)axb&#xff0c;两个点决定一条直线&#xff0c;也就是决定了f(x)中斜率a和截距b的值&#xff0c;所以考虑使用一个哈希表存储直线中的a和b并记录…

Springboot如何快速生成分页展示以及统计条数

这是表结构&#xff1a; 前置知识&#xff1a; 分页查询公式&#xff08;&#xff09;&#xff1a; -- 推导一个公式 -- select * from emp -- order by empno -- limit 每页显示记录数 * (第几页-1)&#xff0c;每页显示记录数 统计条数公式&#xff1a; select count…

Python基础语法之学习字符串快速格式化

Python基础语法之学习字符串快速格式化 一、代码二、效果 一、代码 # 通过f"{占位}"控制字符串快速格式化,不做精度控制 name "张三" age 13 money 12.5 text f"姓名是{name},年龄是{age},钱是{money}" print(text)二、效果 每一天都是一个…

MySQL处理并发访问和高负载的关键技术和策略

我深知在数据库管理中处理并发访问和高负载的重要性。在这篇文章中&#xff0c;我将探讨MySQL处理并发访问和高负载的关键技术和策略&#xff0c;以帮助读者更好地优化数据库性能。 图片来源&#xff1a;MySQL处理并发访问和高负载的关键技术和策略 MySQL数据库在处理并发访问…

iptables防火墙之SNAT与DNAT

1. SNAT SNAT 应用环境:局域网主机共享单个公网IP地址接入Internet (私有IP不能在Internet中正常路由) SNAT原理:源地址转换&#xff0c;根据指定条件修改数据包的源IP地址&#xff0c;通常被叫做源映射。 数据包从内网发送到公网时&#xff0c;SNAT会把数据包的源IP由私网IP…

python技术栈之单元测试中mock的使用

什么是mock&#xff1f; mock测试就是在测试过程中&#xff0c;对于某些不容易构造或者不容易获取的对象&#xff0c;用一个虚拟的对象来创建以便测试的测试方法。 mock的作用 特别是开发过程中上下游未完成的工序导致当前无法测试&#xff0c;需要虚拟某些特定对象以便测试…

基于Java SSM框架+Vue实现垃圾分类网站系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架Vue实现垃圾分类网站系统演示 摘要 本论文主要论述了如何使用JAVA语言开发一个垃圾分类网站 &#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;采用B/S架构&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff0c;作者将论述…

Python快速实现BMI(身体质量指数)计算器(窗口界面形式)

BMI是身体质量指数&#xff08;Body Mass Index&#xff09;的缩写&#xff0c;是一种衡量人体肥胖程度的指标。它是根据人的身高和体重计算得出的&#xff0c;公式为&#xff1a; BMI 体重&#xff08;kg&#xff09;/ 身高^2&#xff08;m&#xff09; 其中&#xff0c;体…

【UE】透视效果

效果 步骤 1. 新建一个空白工程 2. 添加一个第三人称游戏和初学者内容包到内容浏览器 3. 新建一个材质&#xff0c;这里命名为“M_Perspective” 打开“M_Perspective”&#xff0c;设置材质域为后期处理 添加三个“SceneTexture”节点&#xff0c;场景纹理ID选项分别设置为“…

【同济大学主办】第七届先进算法与控制工程国际学术会议(ICAACE 2024)

第七届先进算法与控制工程国际学术会议&#xff08;ICAACE 2024&#xff09; 2024 7th International Conference on Advanced Algorithms and Control Engineering 第七届先进算法与控制工程国际学术会议&#xff08;ICAACE 2024&#xff09;定于2024年1月26-28日在中国上…

python中的enumerate函数

enumerate函数是Python内置builtins模块中的一个函数&#xff0c;用于将一个可迭代对象转换为一个索引-元素对的枚举对象&#xff0c;从而方便地同时获得索引和元素&#xff0c;并在循环迭代中使用。 enumerate函数的语法格式为&#xff1a;enumerate(iterable, start0) itera…

软件开发流程:基础源代码与实战详解

一、引言 在当今的信息时代&#xff0c;软件开发已成为推动社会进步和发展的重要力量&#xff0c;从智能手机应用程序到复杂的企业级系统&#xff0c;软件开发在我们的日常生活和工作中发挥着越来越重要的作用。 然而&#xff0c;对于初学者来说&#xff0c;了解软件开发流程…

【设计模式】03:单例模式

单例模式 OVERVIOW 单例模式1.单例模式实现2.饿汉与懒汉&#xff08;1&#xff09;饿汉模式&#xff08;2&#xff09;懒汉模式 3.懒汉线程安全1&#xff08;1&#xff09;引入互斥锁&#xff08;2&#xff09;引入双重检查锁定&#xff08;3&#xff09;引入原子变量 4.懒汉线…

Jmeter接口自动化测试断言之Json断言

json断言可以让我们很快的定位到响应数据中的某一字段&#xff0c;当然前提是响应数据是json格式的&#xff0c;所以如果响应数据为json格式的话&#xff0c;使用json断言还是相当方便的。 还是以之前的接口举例 Url: https://data.cma.cn/weatherGis/web/weather/weatherFcst…

2023/11/30JAVAweb学习

数组json形式 想切换实现类,只需要只在你需要的类上添加 Component 如果在同一层,可以更改扫描范围,但是不推荐这种方法 注入时存在多个同类型bean解决方式

一些好用的12款前端小插件

1. cropper.js Cropper.js 2.0 是一系列用于图像裁剪的 Web 组件。 官网地址&#xff1a;https://fengyuanchen.github.io/cropperjs/v2/zh/ 2. Vditor Vditor是一款浏览器端的 Markdown 编辑器&#xff0c;支持所见即所得、即时渲染&#xff08;类似 Typora&#xff09;和分…