# pin **Repository Path**: hanbk/pin ## Basic Information - **Project Name**: pin - **Description**: 基于SpringBoot(SpringMVC+MyBatis-Plus)的拼车小程序 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-04-24 - **Last Updated**: 2024-04-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 拼车小程序 ### 项目背景 有些学校比较偏远,出行打车费用较高,为方便同学出行 推出此拼车小程序。方便一起出行,AA付款。 ### 使用技术 后端框架:SpringBoot(SpringMVC+MyBatis-Plus) 小程序端:原生+ViewUi 缓存:Redis(GeoHash+Spring Cache) 数据库:MySQL 聊天室:WebSocket ### 包结构 clinet:微信小程序端 server:Java服务端 sql:数据库文件 ### 大致流程 ![1649578080425](https://work-qgs.oss-cn-shenzhen.aliyuncs.com/share/1649578080425.png) ### 部署 Spring Boot配置文件中appId,secret,templateId切换为自身账号信息,没有的账号可以去微信开放平台申请 Redis地址和端口切换为自身配置好的 Mysql使用sql目录中sql文件生成即可 项目服务端需要打包成镜像部署的可以使用server目录下的DockerFile文件生成镜像使用Docker快速部署 ### 详情 #### 登录 ``` 登录页直接调用微信小程序登录接口,后端验证使用提前注册好的开放平台appId和secret发送验证请求。验证成功后会在redis中缓存登录用户的openid,token,sessionKey,和userId。 ``` ![1649526781987](https://work-qgs.oss-cn-shenzhen.aliyuncs.com/share/1649526781987.png) #### 发布行程 ​ ``` 登录成功进入首页,用户可以选择出发点和目的地。这里定位使用了微信开放的地图api。 ``` ![1649527633836](https://work-qgs.oss-cn-shenzhen.aliyuncs.com/share/1649527633836.png) ![1649528119626](https://work-qgs.oss-cn-shenzhen.aliyuncs.com/share/1649528119626.png) ​ ``` 选择完成后会查询有相似路线的行程,后台使用了redis的GeoHash实现相似路线查询功能。 ``` ![1649527901457](https://work-qgs.oss-cn-shenzhen.aliyuncs.com/share/1649527901457.png) ​ ``` 如果没有相似行程或者想发布自己的行程,可以点击下方发布图标,选择时间和人数后发布行程。 ``` ![1649528319333](https://work-qgs.oss-cn-shenzhen.aliyuncs.com/share/1649528319333.png) #### 聊天室 ​ ``` 有新用户进入聊天室会要求授权服务通知,后台通过调用接口发送微信服务通知信息给已经加入行程的所有成员。聊天室中各成员相互发送信息交流,后台使用了websocket实现该功能。 ``` ![1649529160144](https://work-qgs.oss-cn-shenzhen.aliyuncs.com/share/1649529160144.png) #### 申请加入行程 ​ ``` 如果通过在聊天室中的交流,用户希望加入到行程中,可以点击下方加号图标发送加入申请。发送申请后需要房主处理该申请。 ``` ![1649529565084](https://work-qgs.oss-cn-shenzhen.aliyuncs.com/share/1649529565084.png) #### 附近行程 ​ ``` 点击附近会获取当前定位,然后查询该位置下发布的所有行程信息。 ``` ![1649528534094](https://work-qgs.oss-cn-shenzhen.aliyuncs.com/share/1649528534094.png) #### 我的队伍 ​ ``` 点击“我的”图标下的“我的队伍”,会查询所有当前用户发布的或者申请通过的行程。用户可以点击“退出队伍”退出指定行程。发布行程者会成为该行程的房主,如果房主在“我的队伍”中退出行程,该行程如果还有其他成员,会随机选择一名成员成为房主,否则删除该行程。 ``` ![1649528724769](https://work-qgs.oss-cn-shenzhen.aliyuncs.com/share/1649528724769.png) ​ ![1649528900036](https://work-qgs.oss-cn-shenzhen.aliyuncs.com/share/1649528900036.png) #### 申请中心 ​ ``` 点击“我的”图标下的“申请中心”,会查询所有当前用户发布的或者申请通过的行程。 房主会收到希望加入行程成员发送的请求。房主可以拒绝或者同意用户加入申请的行程。 ``` ![1649530595706](https://work-qgs.oss-cn-shenzhen.aliyuncs.com/share/1649530595706.png) ![1649531445396](https://work-qgs.oss-cn-shenzhen.aliyuncs.com/share/1649531445396.png) ![1649531470953](https://work-qgs.oss-cn-shenzhen.aliyuncs.com/share/1649531470953.png)