【记录】《云尚办公》完成


个人记录 (2023.06.11)

一、简介:
项目名称:尚硅谷Java项目《云尚办公》 以SpringBoot为核心
开发时间:24天
开发工具:后端IDEA2020.3.2、前端VSCode、内网穿透工具Ngrok、数据库Navicat、服务器部署redis
所用技术:SpringBoot、MyBatisPlus、SpringSecurity、Activiti、Redis、微信公众号部分功能、自动化办公部分功能 等

二、实现的功能模块有:
1、管理端
2、用户端
3、微信公众号(临时) 消息推送,数据绑定

三、责任描述:
负责开发,运营(还没部署到服务器上)


一、项目功能模块和核心业务流程

1. 管理端

系统管理

  1. 用户管理
    重点:设置用户对应角色
  2. 角色管理
    重点:分配给角色不同权限,根据不同的权限显示不同的操作页面
  3. 菜单管理
    重点:封装数据库中的菜单数据,前端页面以缩进的方式表示嵌套关系,其中菜单数据格式也方便传到前端作动态路由设置

审批模块

  1. 审批类型管理

  2. 审批模板管理
    重点:创建不同的审批模板,可发布
    工具类:form-create :可以通过 JSON 生成功能的表单生成组件
    form-create-designer 可以通过拖拽的方式快速创建表单

  3. 审批列表

公众号菜单管理

  1. 消息审批
  2. 消息推送
    工具类:weixin-java-mp 用于微信开发

2. 员工端

微信授权登录

  1. 通过手机号和微信openid进行用户关联
  2. 显示所有审批类型和模板
  3. 发起申请
  4. 消息推送
  5. 待处理和已处理
  6. 查询审批详情和审批操作

3. 数据库

  1. 表之间关系
    角色表、用户表、菜单表
    用户和角色是多对多关系
    角色和菜单是多对多关系

二、项目技术

基础框架SpringBoot
数据缓存Redis
数据库MyBatisPlus + MySQL
权限控制SpringSecurity
工作流引擎Activiti7
前端技术vue-admin-template + Node.js + Npm + Vue + ElementUI + Axios
微信公众号公众号菜单 + 微信授权登录 + 消息推送

三、项目问题和解决方式

1. 跨域问题

访问协议: http https
ip地址(域名): oa.atguigu.com oa.baidu.com
端口号:8800 9528

原因:在不做任何处理的情况下,跨域请求无法成功,因为浏览器基于同源策略会对跨域请求做一定的限制

同源策略:

同源策略发生的场景——浏览器。如果不是浏览器的话, 就不会受到同源策略的影响。也就是说,两个服务器直接进行跨域请求是可以进行数据请求的。同源策略限制了从同一个源加载的文档或者脚本如何与来自另 一个源的资源进行交互。同源策略用于隔离潜在恶意文件的重要安全机制。

同源策略限制内容:

Cookie、LocalStorage、IndexedDB 等存储性内容
DOM 节点
AJAX 请求不能发送

多种解决方式:

(1)在后端进行配置

  • 在controller类上面添加 @CrossOrigin 注解
  • CORS跨域资源共享 ( 简单请求 / 复杂请求 ) 其中有编写过滤器等方法

(2)在前端进行配置

  • 添加跨域设置

(3)Nginx反向代理

  • 搭建nginx中转服务器,用于转发请求

2. mapper扫描问题

//第一种方式 :创建配置类,使用@MapperScan注解
@Configuration
@MapperScan(basePackages = {"com.atguigu.auth.mapper","com.atguigu.process.mapper","com.atguigu.wechat.mapper"})
public class MybatisPlusConfig { }

//第二种方式:在mapper的接口上面添加注解 @Mapper
@Mapper
public interface SysMenuMapper extends BaseMapper<SysMenu> { }

3. xml文件加载问题

Maven默认情况下,在src - main -java目录下面,只会加载java类型文件,其他类型文件不会加载的

第一种解决方式:把xml文件放到resources目录下 ( 同名文件夹 )

第二种解决方式:在pom.xml和项目配置文件进行配置

4. 流程定义部署zip文件

上传zip文件规范(要求)

(1)zip文件名称和流程key保持一致
例:< process id=“qingjia” isExecutable=“true”>     文件名称 qingjia.zip

(2)在zip文件打包xml文件,xml文件命名 .bpmn20.xml
例:jiaban.bpmn20.xml

5. 内网穿透问题

接口和页面在本地localhost,公众号不能直接访问本地路径的,需要使用内网穿透

第一个:前端公众号页面通过内网穿透到本地后端页面 9090

第二个:公众号里面功能接口通过内网穿透到本地后端接口 8800

6. 其他问题

公众号关闭自动授权,否则会出现“自动授权”,“重新访问” 的死循环
解决方案:关闭公众号自动授权,或者增大访问超时时间


后续

其实发现它有的功能还可以写,性能也不算高,希望后期可以多次优化更新。

根据引用的解释,云尚办公集成knife4j出现空指针异常的原因可能是无法找到knife4j的任何版本。解决方案是通过project structure配置libraries,并通过Maven从正确的依赖中安装knife4j。此外,根据引用,knife4j是一个为Java MVC框架集成Swagger生成Api文档的增强解决方案。因此,集成knife4j可以帮助你生成和管理Api文档。 另外,引用提到,作者在练习云尚办公项目时遇到了一些问题,并对项目提出了一些其他的见解。然而,具体关于云尚办公集成knife4j出现空指针异常的详细问题没有在提供的引用中找到。如果你能提供更多关于空指针异常的细节,我将能够更好地帮助你解决问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [尚硅谷-云尚办公-项目复盘](https://blog.csdn.net/qq_47168235/article/details/130468136)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [云尚办公系统学习笔记(1.基础设置)](https://blog.csdn.net/Kiritoasu/article/details/130726289)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值