diff --git a/README.md b/README.md index 78a3716a7e99947bbd9405325024dd7e8b1c5da3..e0e94094a9b9f550b901af33b803c3ebf65b2ca0 100644 --- a/README.md +++ b/README.md @@ -5,33 +5,32 @@ #### 软件架构 软件架构说明 - +利用 Dapr 通过 k8s 搭建整套运行方案 +前端采用Blaor WebAssembly 高性能单页面应用程序将请求发送到 Envoy 网关 +再通过 Envoy 路由到后端微服务。 +通过 Dapr 的发布/订阅组件,进行服务与服务之间的 消息传送。 +利用Dapr中的Actor模型,提高预约的并发量,以及简化编程的复杂度。 #### 安装教程 -1. xxxx -2. xxxx -3. xxxx - -#### 使用说明 +环境:Docker,k8s,Darp +命令: +![输入图片说明](deploy/f35df8606fa14141bbed998159ed0bd.png) -1. xxxx -2. xxxx -3. xxxx #### 参与贡献 -1. Fork 本仓库 -2. 新建 Feat_xxx 分支 -3. 提交代码 -4. 新建 Pull Request +郑子铭,陈城,彭志勇,易紫云 -#### 特技 +#### 项目介绍 +预约接种系统 +可帮助接种机构进行在线疫苗接种预约,以及接种情况记录。 +预约用户端,采用微信小程序,后台管理端采B/S结构。 +![输入图片说明](image1.png) +![输入图片说明](image2.png) +![输入图片说明](image3.png) -1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md -2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) -3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 -4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 -5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) -6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) +![输入图片说明](image4.png) +![输入图片说明](image6.png) +![输入图片说明](image5.png) \ No newline at end of file diff --git a/deploy/f35df8606fa14141bbed998159ed0bd.png b/deploy/f35df8606fa14141bbed998159ed0bd.png new file mode 100644 index 0000000000000000000000000000000000000000..5225a334c8bb53ce8c1735ff0d9f31ebcddebea7 Binary files /dev/null and b/deploy/f35df8606fa14141bbed998159ed0bd.png differ diff --git a/deploy/image.png b/deploy/image.png new file mode 100644 index 0000000000000000000000000000000000000000..9229e9e02c2896b3cfb49e32699f89ec35bd85ad Binary files /dev/null and b/deploy/image.png differ diff --git a/deploy/image1.png b/deploy/image1.png new file mode 100644 index 0000000000000000000000000000000000000000..c8d45604618be04c066b743b23d67c688a22fac5 Binary files /dev/null and b/deploy/image1.png differ diff --git a/image1.png b/image1.png new file mode 100644 index 0000000000000000000000000000000000000000..167bd4a363d7ee21b8de9f9882faec632de22489 Binary files /dev/null and b/image1.png differ diff --git a/image2.png b/image2.png new file mode 100644 index 0000000000000000000000000000000000000000..d2d060413159a5d45a770f62606b17face96fdfd Binary files /dev/null and b/image2.png differ diff --git a/image3.png b/image3.png new file mode 100644 index 0000000000000000000000000000000000000000..8d753ef61a4c87362b1792e4548b03ee159903a7 Binary files /dev/null and b/image3.png differ diff --git a/image4.png b/image4.png new file mode 100644 index 0000000000000000000000000000000000000000..3ec67055d27a55d90e87a3176ffb8a0a8f15f758 Binary files /dev/null and b/image4.png differ diff --git a/image5.png b/image5.png new file mode 100644 index 0000000000000000000000000000000000000000..27c1a5096e772baa673cfc9abc4801c3b46700cd Binary files /dev/null and b/image5.png differ diff --git a/image6.png b/image6.png new file mode 100644 index 0000000000000000000000000000000000000000..5bd474c6ae0ee2659986a3e6cfd26a4fcf478cef Binary files /dev/null and b/image6.png differ diff --git a/src/Web/VaccineHost/Controllers/VaccineController.cs b/src/Web/VaccineHost/Controllers/VaccineController.cs index f664949af86ea2bed8f8b1588061dad530c194f5..cfd8bdaafd537ac1ddbb5cb416d9d17c4710bfce 100644 --- a/src/Web/VaccineHost/Controllers/VaccineController.cs +++ b/src/Web/VaccineHost/Controllers/VaccineController.cs @@ -33,14 +33,14 @@ namespace VaccineHost.Controllers } [Route("create")] - [HttpGet] + [HttpPost] public async Task Create(CreateVaccineInfoInput createInput) { return await _vaccineService.Create(createInput); } [Route("update")] - [HttpGet] + [HttpPut] public async Task Update(UpdateVaccineInfoInput updateInput) { return await _vaccineService.Update(updateInput); diff --git a/src/Web/VaccineHost/Extend/PreOptionRequestMiddleware.cs b/src/Web/VaccineHost/Extend/PreOptionRequestMiddleware.cs new file mode 100644 index 0000000000000000000000000000000000000000..a5259e5490e609fed9df8a8527e2502f6a1c0b47 --- /dev/null +++ b/src/Web/VaccineHost/Extend/PreOptionRequestMiddleware.cs @@ -0,0 +1,30 @@ +namespace VaccineHost.Extend +{ + /// + /// 处理Option预请求的中间件 + /// + public class PreOptionRequestMiddleware + { + private readonly RequestDelegate _next; + + public PreOptionRequestMiddleware(RequestDelegate next) + { + _next = next; + } + /// + /// 中间件处理 + /// + /// + /// + public async Task Invoke(HttpContext context) + { + // 当请求类型为OPTIONS直接返回200:跨越预请求处理 + if (context.Request.Method.ToUpper() == "OPTIONS") + { + context.Response.StatusCode = 200; + return; + } + await _next.Invoke(context); + } + } +} diff --git a/src/Web/VaccineHost/Extend/PreOptionsRequestMiddlewareExtensions.cs b/src/Web/VaccineHost/Extend/PreOptionsRequestMiddlewareExtensions.cs new file mode 100644 index 0000000000000000000000000000000000000000..c46019627ff72c398dfb5940491b3269ba1450de --- /dev/null +++ b/src/Web/VaccineHost/Extend/PreOptionsRequestMiddlewareExtensions.cs @@ -0,0 +1,18 @@ +namespace VaccineHost.Extend +{ + /// + /// 扩展中间件 + /// + public static class PreOptionsRequestMiddlewareExtensions + { + /// + /// 注册中间件 + /// + /// + /// + public static IApplicationBuilder UsePreOptionsRequest(this IApplicationBuilder app) + { + return app.UseMiddleware(); + } + } +} diff --git a/src/Web/VaccineHost/Program.cs b/src/Web/VaccineHost/Program.cs index 36ffcbe6d90b3c83f781036ef61e9985479571fb..558021e83f142ae07c1071009169810ba7fda56e 100644 --- a/src/Web/VaccineHost/Program.cs +++ b/src/Web/VaccineHost/Program.cs @@ -21,7 +21,7 @@ builder.Services.AddSwaggerGen(); builder.Services.AddCors(options => options.AddPolicy("cors", -p => p.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod().AllowCredentials())); +p => p.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod())); builder.Services.Configure(builder.Configuration.GetSection("UserOptions")); diff --git a/src/Web/VaccineHost/Properties/launchSettings.json b/src/Web/VaccineHost/Properties/launchSettings.json index bb01f3f6f3dbb13e37530a8bca3f0caf3187fa53..eac7d36837cb506484ada35ccc53820374f3e049 100644 --- a/src/Web/VaccineHost/Properties/launchSettings.json +++ b/src/Web/VaccineHost/Properties/launchSettings.json @@ -16,7 +16,7 @@ "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" }, - "applicationUrl": "http://localhost:5175", + "applicationUrl": "http://localhost:5000", "dotnetRunMessages": true }, "IIS Express": { diff --git a/src/Web/VaccineHost/appsettings.json b/src/Web/VaccineHost/appsettings.json index d096774e60461bf8d5fe1375d45b6a52df0a78e1..4d31344174dc49dbc0786414bbddf5eec0f7d423 100644 --- a/src/Web/VaccineHost/appsettings.json +++ b/src/Web/VaccineHost/appsettings.json @@ -10,5 +10,10 @@ "UserId": "17581DA7-52EF-4E66-C26F-08D4C82ABAC6", "UserName": "admin", "Password": "admindw" + }, + "Kestrel": { + "Endpoints": { + "Http": { "Url": "http://10.105.53.235:5000" } + } } }