Merge branch 'main' of https://github.com/ccnetcore/Yi into main

This commit is contained in:
lzw
2021-11-03 20:48:24 +08:00
19 changed files with 192 additions and 149 deletions

View File

@@ -50,7 +50,7 @@ namespace Yi.Framework.ApiMicroservice.Controllers
if ( user_data!=null)
{
var token = MakeJwt.app(new jwtUser() {user=user_data,menuIds= menuList});
return Result.Success().SetData(new { user = new { _user.id, _user.username, _user.introduction, _user.icon, _user.nick }, token });
return Result.Success().SetData(new { user = new { user_data.id, user_data.username, user_data.introduction, user_data.icon, user_data.nick }, token });
}
return Result.Error();
}

View File

@@ -23,26 +23,42 @@ namespace Yi.Framework.ApiMicroservice.Controllers
{
_userService = userService;
_env = env;
}
}
[HttpPost]
[Authorize]
public async Task<Result> EditIcon(IFormFile file)
{
var _user = HttpContext.GetCurrentUserInfo();
var user_data = await _userService.GetUserById(_user.id);
var type = "image";
var filename = await Upload(type, file);
user_data.icon = filename;
await _userService.UpdateAsync(user_data);
return Result.Success();
try
{
var _user = HttpContext.GetCurrentUserInfo();
var user_data = await _userService.GetUserById(_user.id);
var type = "image";
var filename = await Upload(type, file);
user_data.icon = filename;
await _userService.UpdateAsync(user_data);
return Result.Success();
}
catch
{
return Result.Error();
}
}
[Route("/api/{type}/{fileName}")]
[HttpGet]
public IActionResult Get(string type, string imageNmae)
public IActionResult Get(string type, string fileName)
{
var path = Path.Combine($"wwwroot/{type}", imageNmae);
var stream = System.IO.File.OpenRead(path);
var MimeType = Common.Helper.MimeHelper.GetMimeMapping(imageNmae);
return new FileStreamResult(stream, MimeType);
try
{
var path = Path.Combine($"wwwroot/{type}", fileName);
var stream = System.IO.File.OpenRead(path);
var MimeType = Common.Helper.MimeHelper.GetMimeMapping(fileName);
return new FileStreamResult(stream, MimeType);
}
catch
{
return new NotFoundResult();
}
}
/// <summary>
@@ -51,9 +67,8 @@ namespace Yi.Framework.ApiMicroservice.Controllers
/// <param name="type"></param>
/// <param name="file"></param>
/// <returns></returns>
private async Task<string> Upload(string type,IFormFile file)
private async Task<string> Upload(string type, IFormFile file)
{
string filename = Guid.NewGuid().ToString() + Path.GetExtension(file.FileName);
using (var stream = new FileStream(Path.Combine($"wwwroot/{type}", filename), FileMode.CreateNew, FileAccess.Write))
{
@@ -63,13 +78,13 @@ namespace Yi.Framework.ApiMicroservice.Controllers
return filename;
}
[HttpGet]
public async Task<IActionResult>ExportFile()
[HttpGet]
public async Task<IActionResult> ExportFile()
{
var userdata = await _userService.GetAllEntitiesTrueAsync();
var userList = userdata.ToList();
List<string> header = new() { "用户", "密码", "头像", "昵称", "邮箱", "ip","年龄", "个人介绍", "地址", "手机", "角色" };
var filename= Common.Helper.ExcelHelper.CreateExcelFromList(userList,header,_env.ContentRootPath.ToString());
List<string> header = new() { "用户", "密码", "头像", "昵称", "邮箱", "ip", "年龄", "个人介绍", "地址", "手机", "角色" };
var filename = Common.Helper.ExcelHelper.CreateExcelFromList(userList, header, _env.ContentRootPath.ToString());
var MimeType = Common.Helper.MimeHelper.GetMimeMapping(filename);
return new FileStreamResult(new FileStream(Path.Combine(_env.ContentRootPath+@"/wwwroot/Excel", filename), FileMode.Open),MimeType);
}

View File

@@ -84,7 +84,7 @@ namespace Yi.Framework.ApiMicroservice
#endregion
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env,IDbContextFactory _DbFactory)
public void Configure(IApplicationBuilder app, IWebHostEnvironment env,IDbContextFactory _DbFactory, CacheClientDB _cacheClientDB)
{
//if (env.IsDevelopment())
{
@@ -103,6 +103,11 @@ namespace Yi.Framework.ApiMicroservice
#endregion
//app.UseErrorHandlingService();
#region
//静态文件注入
#endregion
//app.UseStaticFiles();
#region
//HttpsRedirection注入
#endregion
@@ -142,7 +147,11 @@ namespace Yi.Framework.ApiMicroservice
//数据库种子注入
#endregion
app.UseDbSeedInitService(_DbFactory);
//app.UseRedisInitService(_cacheClientDB);
#region
//redis种子注入
#endregion
app.UseRedisSeedInitService(_cacheClientDB);
#region
//Endpoints注入
#endregion

View File

@@ -39,6 +39,14 @@
<param name="pwdDto"></param>
<returns></returns>
</member>
<member name="M:Yi.Framework.ApiMicroservice.Controllers.FileController.Upload(System.String,Microsoft.AspNetCore.Http.IFormFile)">
<summary>
该方法不对外暴露
</summary>
<param name="type"></param>
<param name="file"></param>
<returns></returns>
</member>
<member name="M:Yi.Framework.ApiMicroservice.Controllers.MenuController.GetMenuInMould">
<summary>
这个是要递归的,但是要过滤掉删除的,所以,可以写一个通用过滤掉删除的方法
@@ -159,11 +167,11 @@
</summary>
<returns></returns>
</member>
<member name="M:Yi.Framework.ApiMicroservice.Controllers.SettingController.UpdateSetting">
<member name="M:Yi.Framework.ApiMicroservice.Controllers.SettingController.UpdateSetting(Yi.Framework.DTOModel.SettingDto)">
<summary>
</summary>
<param name="_Setting"></param>
<param name="settingDto"></param>
<returns></returns>
</member>
<member name="M:Yi.Framework.ApiMicroservice.Controllers.UserController.GetUser">

View File

@@ -1,69 +1,69 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"Consul_Enabled": false,
"DbSeed_Enabled": true,
"Apollo_Enabled": false,
"HealthCheck_Enabled": false,
"Cors_Enabled": true,
"RabbitMQ_Enabled": false,
"Redis_Enabled": false,
"RedisSet_Enabled": false,
"Kafka_Enabled": false,
"MutiDB_Enabled": false,
"DbList": ["Sqlite", "Mysql", "Sqlserver", "Oracle"],
"DbSelect": "Mysql",
"Consul_Enabled": false,
"DbSeed_Enabled": true,
"Apollo_Enabled": false,
"HealthCheck_Enabled": false,
"Cors_Enabled": true,
"RabbitMQ_Enabled": false,
"Redis_Enabled": true,
"RedisSeed_Enabled": false,
"Kafka_Enabled": false,
"MutiDB_Enabled": false,
"DbList": [ "Sqlite", "Mysql", "Sqlserver", "Oracle" ],
"DbSelect": "Mysql",
"DbConn": {
"WriteUrl": "server=118.195.191.41;port=3306;database=YIDB;user id=root;password=Qz52013142020.",
"ReadUrl": [
"server=118.195.191.41;port=3306;database=YIDB;user id=root;password=Qz52013142020.",
"server=118.195.191.41;port=3306;database=YIDB;user id=root;password=Qz52013142020.",
"server=118.195.191.41;port=3306;database=YIDB;user id=root;password=Qz52013142020."
]
},
"Apollo": {
"AppId": "Yi.Framework.ApiMicroservice",
"Env": "DEV",
"MetaServer": "http://192.168.2.168:8080",
"ConfigServer": ["http://192.168.2.168:8080"]
},
"JWTTokenOptions": {
"Audience": "http://localhost:7000",
"Issuer": "http://localhost:7000",
"SecurityKey": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDI2a2EJ7m872v0afyoSDJT2o1+SitIeJSWtLJU8/Wz2m7gStexajkeD+Lka6DSTy8gt9UwfgVQo6uKjVLG5Ex7PiGOODVqAEghBuS7JzIYU5RvI543nNDAPfnJsas96mSA7L/mD7RTE2drj6hf3oZjJpMPZUQI/B1Qjb5H3K3PNwIDAQAB"
},
"RedisConn": {
"Host": "118.195.191.41",
"Prot": 6379,
"DB": 1,
"Password": "Qz52013142020."
},
"KafkaOptions": {
"BrokerList": "192.168.3.230:9092",
"TopicName": "kafkalog"
},
"ConsulClientOption": {
"IP": "192.168.2.128",
"Port": "8500",
"Datacenter": "dc1"
},
"ConsulRegisterOption": {
"IP": "192.168.1.104",
"Port": "7001",
"GroupName": "ApiMicroservice",
"HealthCheckUrl": "/Health",
"Interval": 10,
"Timeout": 5,
"DeregisterCriticalServiceAfter": 60,
"Tag": "13"
},
"IPLibraryServiceUrl": "http://gRPCIPLibraryService"
"DbConn": {
"WriteUrl": "server=118.195.191.41;port=3306;database=YIDB;user id=root;password=Qz52013142020.",
"ReadUrl": [
"server=118.195.191.41;port=3306;database=YIDB;user id=root;password=Qz52013142020.",
"server=118.195.191.41;port=3306;database=YIDB;user id=root;password=Qz52013142020.",
"server=118.195.191.41;port=3306;database=YIDB;user id=root;password=Qz52013142020."
]
},
"Apollo": {
"AppId": "Yi.Framework.ApiMicroservice",
"Env": "DEV",
"MetaServer": "http://192.168.2.168:8080",
"ConfigServer": [ "http://192.168.2.168:8080" ]
},
"JWTTokenOptions": {
"Audience": "http://localhost:7000",
"Issuer": "http://localhost:7000",
"SecurityKey": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDI2a2EJ7m872v0afyoSDJT2o1+SitIeJSWtLJU8/Wz2m7gStexajkeD+Lka6DSTy8gt9UwfgVQo6uKjVLG5Ex7PiGOODVqAEghBuS7JzIYU5RvI543nNDAPfnJsas96mSA7L/mD7RTE2drj6hf3oZjJpMPZUQI/B1Qjb5H3K3PNwIDAQAB"
},
"RedisConnOptions": {
"Host": "118.195.191.41",
"Prot": 6379,
"DB": 1,
"Password": "Qz52013142020."
},
"KafkaOptions": {
"BrokerList": "192.168.3.230:9092",
"TopicName": "kafkalog"
},
"ConsulClientOption": {
"IP": "192.168.2.128",
"Port": "8500",
"Datacenter": "dc1"
},
"ConsulRegisterOption": {
"IP": "192.168.1.104",
"Port": "7001",
"GroupName": "ApiMicroservice",
"HealthCheckUrl": "/Health",
"Interval": 10,
"Timeout": 5,
"DeregisterCriticalServiceAfter": 60,
"Tag": "13"
},
"IPLibraryServiceUrl": "http://gRPCIPLibraryService"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -44,9 +44,9 @@ namespace Yi.Framework.Core
// }
//}
#endregion
public CacheClientDB(IOptionsMonitor<RedisConnOptions> jwtTokenOptions)
public CacheClientDB(IOptionsMonitor<RedisConnOptions> redisConnOptions)
{
this._RedisOptions = jwtTokenOptions.CurrentValue;
this._RedisOptions = redisConnOptions.CurrentValue;
client = new RedisClient(_RedisOptions.Host, _RedisOptions.Prot, _RedisOptions.Password, _RedisOptions.DB);
}
// 管道模式 三种模式

View File

@@ -93,7 +93,7 @@ namespace Yi.Framework.Core
{
for (int i = menu_data.children.Count() - 1; i >= 0; i--)
{
menu_data.children = menu_data.children.AsEnumerable().OrderBy(u => u.sort).ToList();
menu_data.children = menu_data.children.AsEnumerable().OrderByDescending(u => u.sort).ToList();
if (menu_data.children != null || menu_data.children.Count() != 0)
{

View File

@@ -17,7 +17,7 @@ namespace Yi.Framework.WebCore.MiddlewareExtend
{
if (Appsettings.appBool("Redis_Enabled"))
{
services.Configure<RedisConnOptions>(Appsettings.appConfiguration("RedisConn"));
services.Configure<RedisConnOptions>(Appsettings.appConfiguration("RedisConnOptions"));
services.AddTransient<CacheClientDB>();
}
return services;

View File

@@ -15,10 +15,10 @@ namespace Yi.Framework.WebCore.MiddlewareExtend
public static class RedisInitExtend
{
private static readonly ILog log = LogManager.GetLogger(typeof(RedisInitExtend));
public static void UseRedisInitService(this IApplicationBuilder app, CacheClientDB _cacheClientDB)
public static void UseRedisSeedInitService(this IApplicationBuilder app, CacheClientDB _cacheClientDB)
{
if (Appsettings.appBool("RedisSet_Enabled"))
if (Appsettings.appBool("RedisSeed_Enabled"))
{
if (app == null) throw new ArgumentNullException(nameof(app));