# SpringCloud-demo-move **Repository Path**: xhh_code/spring-cloud-demo-move ## Basic Information - **Project Name**: SpringCloud-demo-move - **Description**: 购买电影票 - **Primary Language**: Unknown - **License**: AFL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-12-27 - **Last Updated**: 2024-12-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 需求说明 1. 使用多模块方式搭建项目,集成SpringBoot和SpringCloud 2. 使用Nacos作为服务注册与发现、配置中心 3. Gateway作为服务入口 4. 使用OpenFeign作为服务负载均衡 5. 使用Sentinel对OpenFeign进行降级 6. 完成“购买电影票”的需求案例 - 搭建微服务:“User用户服务” 以及 “Movie电影服务”,注册到Nacos中 - 电影服务:提供电影票查询、电影票购买、电影观看controller接口,提示:需要集成mybatis查询数据库 - 电影票查询:查询所有电影票信息并返回 - 电影票购买根据Id进行购买,购买前判断库存是否足够,如果不足响应提示,购买需要保存用户、电影票中间表,以及是否使用状态 - 根据电影Id,查询用户是否拥有此电影票,电影票是否过期,过期提示不可观看 - 用户服务:提供电影票查询、电影票购买、新增用户送电影票controller接口,远程调用电影服务接口 - 电影票查询:查询所有电影票 - 电影票购买:传入要购买的电影票Id,调用电影服务进行购买,购买成功扣减用户余额 - 新增用户:新增用户时,保存用户信息,并调用电影服务,送电影票 - 电影观看:传入要观看的电影Id,调用电影服务进行判断,返回提示信息 - 测试:使用POST测试 - **Feign接口的参数是一个对象的时候需要使用:@RequestBody 标签** 7. **整个业务过程用户可直接写死,测试使用测试工具进行接口调用测试** ## 已知资料 - 电影数据库:itsource-move - 电影票表设计:t_movie_ticket | id(bigint) | name | price | start_time | end_time | stock | | ---------- | -------- | ----- | ------------------- | ------------------- | ----- | | 1 | 大圣归来 | 100 | 2020-08-05 12:58:57 | 2020-08-05 13:59:10 | 34 | - 用户数据库:itsource-user - 用户表设计:t_user | id(bigint) | username | balance | | ---------- | -------- | ------- | | 1 | 张三 | 1000 | - 用户、电影票中间表,设计在电影服务方 | user_id | movie_ticket_id | count | | ------- | --------------- | -------- | | 1 | 1 | 电影数量 | ## 需要测试的接口 | 功能点 | 说明 | | ---------------- | ------------------------------------------------------------ | | 项目搭建 | user-server、movie-server | | 电影票查询 | 根据Id查询电影票信息,需要用户服务通过OpenFeign调用电影服务 | | 电影票购买 | 根据Id购买电影票,扣减用户余额、在电影服务中新增用户与电影票数据,用户可写死 | | 电影票观看 | 根据电影Id,查询用户是否拥有此电影票,电影票是否已经被使用,电影票是否过期,过期提示不可观看 | | 新增用户 | 新增用户时,保存用户信息,并调用电影服务,随机送一张电影票 | | 所有接口服务降级 | 用户、电影服务整合Sentinel,完成OpenFeign接口降级 | ## 上传须知 ### 一定不要上传到主分支,不要修改主分支上面的代码 **上传的时候在本地切换新的分支,分支类型为 dev-姓名拼音缩写 **