Skip to content

Commit

Permalink
添加了自定义异常类型
Browse files Browse the repository at this point in the history
添加了一些常仓储
添加了获取玩家所有仓库列表接口
完善了mc服务器传递物品接口
  • Loading branch information
liuning committed Aug 17, 2023
1 parent 1cf0815 commit 2464c0e
Show file tree
Hide file tree
Showing 32 changed files with 460 additions and 72 deletions.
38 changes: 19 additions & 19 deletions MineCosmos.Core.Api/Controllers/DbFirst/MigrateController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,8 @@ public async Task<MessageModel<string>> DataMigrateFromOld2New()
{
try
{
var apiList = await _moduleServices.Query(d => d.IsDeleted == false);
var permissionsAllList = await _permissionServices.Query(d => d.IsDeleted == false);
var apiList = await _moduleServices.GetListAsync(d => d.IsDeleted == false);
var permissionsAllList = await _permissionServices.GetListAsync(d => d.IsDeleted == false);
var permissions = permissionsAllList.Where(d => d.Pid == 0).ToList();
var rmps = await _roleModulePermissionServices.GetRMPMaps();
List<PM> pms = new();
Expand Down Expand Up @@ -104,7 +104,7 @@ public async Task<MessageModel<string>> DataMigrateFromOld2New()
// 角色信息,防止重复添加,做了判断
if (item.Role != null)
{
var isExit = (await _roleServices.Query(d => d.Name == item.Role.Name && d.IsDeleted == false)).FirstOrDefault();
var isExit = (await _roleServices.GetListAsync(d => d.Name == item.Role.Name && d.IsDeleted == false)).FirstOrDefault();
if (isExit == null)
{
rid = await _roleServices.Add(item.Role);
Expand Down Expand Up @@ -172,28 +172,28 @@ public async Task<MessageModel<string>> SaveData2TsvAsync()
};

// 取出数据,序列化,自己可以处理判空
var SysUserInfoJson = JsonConvert.SerializeObject(await _sysUserInfoServices.Query(d => d.IsDeleted == false), microsoftDateFormatSettings);
var SysUserInfoJson = JsonConvert.SerializeObject(await _sysUserInfoServices.GetListAsync(d => d.IsDeleted == false), microsoftDateFormatSettings);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "BlogCore.Data.json", "SysUserInfo.tsv"), SysUserInfoJson, Encoding.UTF8);

var DepartmentJson = JsonConvert.SerializeObject(await _departmentServices.Query(d => d.IsDeleted == false), microsoftDateFormatSettings);
var DepartmentJson = JsonConvert.SerializeObject(await _departmentServices.GetListAsync(d => d.IsDeleted == false), microsoftDateFormatSettings);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "BlogCore.Data.json", "Department.tsv"), DepartmentJson, Encoding.UTF8);

var rolesJson = JsonConvert.SerializeObject(await _roleServices.Query(d => d.IsDeleted == false), microsoftDateFormatSettings);
var rolesJson = JsonConvert.SerializeObject(await _roleServices.GetListAsync(d => d.IsDeleted == false), microsoftDateFormatSettings);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "BlogCore.Data.json", "Role.tsv"), rolesJson, Encoding.UTF8);

var UserRoleJson = JsonConvert.SerializeObject(await _userRoleServices.Query(d => d.IsDeleted == false), microsoftDateFormatSettings);
var UserRoleJson = JsonConvert.SerializeObject(await _userRoleServices.GetListAsync(d => d.IsDeleted == false), microsoftDateFormatSettings);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "BlogCore.Data.json", "UserRole.tsv"), UserRoleJson, Encoding.UTF8);


var permissionsJson = JsonConvert.SerializeObject(await _permissionServices.Query(d => d.IsDeleted == false), microsoftDateFormatSettings);
var permissionsJson = JsonConvert.SerializeObject(await _permissionServices.GetListAsync(d => d.IsDeleted == false), microsoftDateFormatSettings);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "BlogCore.Data.json", "Permission.tsv"), permissionsJson, Encoding.UTF8);


var modulesJson = JsonConvert.SerializeObject(await _moduleServices.Query(d => d.IsDeleted == false), microsoftDateFormatSettings);
var modulesJson = JsonConvert.SerializeObject(await _moduleServices.GetListAsync(d => d.IsDeleted == false), microsoftDateFormatSettings);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "BlogCore.Data.json", "Modules.tsv"), modulesJson, Encoding.UTF8);


var rmpsJson = JsonConvert.SerializeObject(await _roleModulePermissionServices.Query(d => d.IsDeleted == false), microsoftDateFormatSettings);
var rmpsJson = JsonConvert.SerializeObject(await _roleModulePermissionServices.GetListAsync(d => d.IsDeleted == false), microsoftDateFormatSettings);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "BlogCore.Data.json", "RoleModulePermission.tsv"), rmpsJson, Encoding.UTF8);


Expand Down Expand Up @@ -229,31 +229,31 @@ public async Task<MessageModel<string>> SaveData2ExcelAsync()

// 取出数据,序列化,自己可以处理判空
IExporter exporter = new ExcelExporter();
var SysUserInfoList = await _sysUserInfoServices.Query(d => d.IsDeleted == false);
var SysUserInfoList = await _sysUserInfoServices.GetListAsync(d => d.IsDeleted == false);
var result = await exporter.ExportAsByteArray(SysUserInfoList);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "BlogCore.Data.excel", "SysUserInfo.xlsx"), result);

var DepartmentList = await _departmentServices.Query(d => d.IsDeleted == false);
var DepartmentList = await _departmentServices.GetListAsync(d => d.IsDeleted == false);
var DepartmentResult = await exporter.ExportAsByteArray(DepartmentList);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "BlogCore.Data.excel", "Department.xlsx"), DepartmentResult);

var RoleList = await _roleServices.Query(d => d.IsDeleted == false);
var RoleList = await _roleServices.GetListAsync(d => d.IsDeleted == false);
var RoleResult = await exporter.ExportAsByteArray(RoleList);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "BlogCore.Data.excel", "Role.xlsx"), RoleResult);

var UserRoleList = await _userRoleServices.Query(d => d.IsDeleted == false);
var UserRoleList = await _userRoleServices.GetListAsync(d => d.IsDeleted == false);
var UserRoleResult = await exporter.ExportAsByteArray(UserRoleList);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "BlogCore.Data.excel", "UserRole.xlsx"), UserRoleResult);

var PermissionList = await _permissionServices.Query(d => d.IsDeleted == false);
var PermissionList = await _permissionServices.GetListAsync(d => d.IsDeleted == false);
var PermissionResult = await exporter.ExportAsByteArray(PermissionList);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "BlogCore.Data.excel", "Permission.xlsx"), PermissionResult);

var ModulesList = await _moduleServices.Query(d => d.IsDeleted == false);
var ModulesList = await _moduleServices.GetListAsync(d => d.IsDeleted == false);
var ModulesResult = await exporter.ExportAsByteArray(ModulesList);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "BlogCore.Data.excel", "Modules.xlsx"), ModulesResult);

var RoleModulePermissionList = await _roleModulePermissionServices.Query(d => d.IsDeleted == false);
var RoleModulePermissionList = await _roleModulePermissionServices.GetListAsync(d => d.IsDeleted == false);
var RoleModulePermissionResult = await exporter.ExportAsByteArray(RoleModulePermissionList);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "BlogCore.Data.excel", "RoleModulePermission.xlsx"), RoleModulePermissionResult);

Expand Down Expand Up @@ -308,7 +308,7 @@ private async Task SavePermissionTreeAsync(List<Permission> permissionsTree, Lis
// 接口
if (item.Module != null)
{
var moduleModel = (await _moduleServices.Query(d => d.LinkUrl == item.Module.LinkUrl)).FirstOrDefault();
var moduleModel = (await _moduleServices.GetListAsync(d => d.LinkUrl == item.Module.LinkUrl)).FirstOrDefault();
if (moduleModel != null)
{
mid = moduleModel.Id;
Expand All @@ -323,7 +323,7 @@ private async Task SavePermissionTreeAsync(List<Permission> permissionsTree, Lis
// 菜单
if (item != null)
{
var permissionModel = (await _permissionServices.Query(d => d.Name == item.Name && d.Pid == item.Pid && d.Mid == item.Mid)).FirstOrDefault();
var permissionModel = (await _permissionServices.GetListAsync(d => d.Name == item.Name && d.Pid == item.Pid && d.Mid == item.Mid)).FirstOrDefault();
item.Pid = parendId;
item.Mid = mid;
if (permissionModel != null)
Expand Down
6 changes: 3 additions & 3 deletions MineCosmos.Core.Api/Controllers/DepartmentController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ public async Task<MessageModel<Department>> Get(string id)
public async Task<MessageModel<List<Department>>> GetTreeTable(long f = 0, string key = "")
{
List<Department> departments = new List<Department>();
var departmentList = await _departmentServices.Query(d => d.IsDeleted == false);
var departmentList = await _departmentServices.GetListAsync(d => d.IsDeleted == false);
if (string.IsNullOrEmpty(key) || string.IsNullOrWhiteSpace(key))
{
key = "";
Expand Down Expand Up @@ -118,7 +118,7 @@ public async Task<MessageModel<List<Department>>> GetTreeTable(long f = 0, strin
[HttpGet]
public async Task<MessageModel<DepartmentTree>> GetDepartmentTree(int pid = 0)
{
var departments = await _departmentServices.Query(d => d.IsDeleted == false);
var departments = await _departmentServices.GetListAsync(d => d.IsDeleted == false);
var departmentTrees = (from child in departments
where child.IsDeleted == false
orderby child.Id
Expand Down Expand Up @@ -204,7 +204,7 @@ public async Task<MessageModel<string>> SaveData2Tsv()
DateFormatHandling = DateFormatHandling.MicrosoftDateFormat
};

var rolesJson = JsonConvert.SerializeObject(await _departmentServices.Query(d => d.IsDeleted == false), microsoftDateFormatSettings);
var rolesJson = JsonConvert.SerializeObject(await _departmentServices.GetListAsync(d => d.IsDeleted == false), microsoftDateFormatSettings);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "BlogCore.Data.json", "Department_New.tsv"), rolesJson, Encoding.UTF8);

data.success = true;
Expand Down
2 changes: 1 addition & 1 deletion MineCosmos.Core.Api/Controllers/LoginController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ public async Task<MessageModel<TokenInfoViewModel>> GetJwtToken3(string name = "

pass = MD5Helper.MD5Encrypt32(pass);

var user = await _sysUserInfoServices.Query(d => d.LoginName == name && d.LoginPWD == pass && d.IsDeleted == false);
var user = await _sysUserInfoServices.GetListAsync(d => d.LoginName == name && d.LoginPWD == pass && d.IsDeleted == false);
if (user.Count > 0)
{
var userRoles = await _sysUserInfoServices.GetUserRoleNameStr(name, pass);
Expand Down
47 changes: 39 additions & 8 deletions MineCosmos.Core.Api/Controllers/McServer/MinecraftController.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using Microsoft.AspNetCore.Mvc;
using MineCosmos.Core.Api.Filter;
using MineCosmos.Core.IRepository.Base;
using MineCosmos.Core.IServices.Minecraft;
using MineCosmos.Core.Model.Models;
using Newtonsoft.Json.Linq;

Expand All @@ -17,9 +18,11 @@ public class MinecraftController : BaseApiController
{

readonly IBaseRepository<MinecraftPlayer> _mcPlayerRepostiory;
public MinecraftController(IBaseRepository<MinecraftPlayer> mcPlayerRepository)
readonly IWareHouseService _wareHouseService;
public MinecraftController(IBaseRepository<MinecraftPlayer> mcPlayerRepository, IWareHouseService wareHouseService)
{
_mcPlayerRepostiory = mcPlayerRepository;
_wareHouseService = wareHouseService;
}

/// <summary>
Expand All @@ -41,23 +44,50 @@ public async Task<dynamic> PutItem(ReqMinecraftItemDto model)
{

bool hasPlayer = await _mcPlayerRepostiory.AnyAsync(a => a.UUID == model.UUID);
if(hasPlayer)

PlayerWareHouse playerWareHouseDefault = new()
{
Name = $"{model.Name}的默认仓库",
Remark = "接受MC服务器传递的物品数据时,自动创建",
Type = PlayerWareHouseTypeEnum.默认仓库,
UpperLimit = 100
};


MinecraftPlayer player = new();

if (hasPlayer)
{
MinecraftPlayer player = await _mcPlayerRepostiory.GetAsync(a => a.UUID == model.UUID);

//TODO 存到玩家默认仓库,注意考虑仓库空间上限
player = await _mcPlayerRepostiory.GetAsync(a => a.UUID == model.UUID);

}
else
{
//直接创建用户 TODO:单独service封装
MinecraftPlayer player = new MinecraftPlayer()
player = new MinecraftPlayer()
{
UUID = model.UUID,
Name = model.Source,
Name = model.Name,
LastServerLoginTime = DateTime.Now
};
await _mcPlayerRepostiory.Add(player);
player.Id = await _mcPlayerRepostiory.Add(player);
}
playerWareHouseDefault.PlayerId = player.Id;
PlayerWareHouse wareHouse = await _wareHouseService.AutoCreateDefaultWareHouseAsync(new()
{
WareHouse = playerWareHouseDefault,
Items = new List<PlayerWareHouseItem>
{
new PlayerWareHouseItem (){
ItemData= model.Source,
ItemType = WareHouseItemTypeEnum.插件
}
}
});





return @model.Source;
}
Expand All @@ -66,6 +96,7 @@ public class ReqMinecraftItemDto
{
public string Source { get; set; }
public string UUID { get; set; }
public string Name { get; set; }
public string SourceVersion { get; set; }
public string ApiKey { get; set; }
}
Expand Down
19 changes: 16 additions & 3 deletions MineCosmos.Core.Api/Controllers/McServer/PlayerController.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
using System.Security.Permissions;
using System.ComponentModel.DataAnnotations;
using System.Security.Permissions;
using Microsoft.AspNetCore.Mvc;
using MineCosmos.Core.Api.Filter;
using MineCosmos.Core.IRepository.Base;
using MineCosmos.Core.IServices.Minecraft;
using MineCosmos.Core.Model.Models;
using Newtonsoft.Json.Linq;

Expand All @@ -11,15 +13,18 @@ namespace MineCosmos.Core.Controllers
/// Minecraft插件接口
/// </summary>
[Produces("application/json")]
[Route("api/mc/player/[action]")]
[Route("api/mc/[controller]/[action]")]
[ApiController]
[ApiResponse]
public class PlayerController : BaseApiController
{
readonly IBaseRepository<MinecraftPlayer> _mcPlayerRepostiory;
public PlayerController(IBaseRepository<MinecraftPlayer> mcPlayerRepository)
readonly IWareHouseService _wareHouseService;
public PlayerController(IBaseRepository<MinecraftPlayer> mcPlayerRepository, IWareHouseService wareHouseService)
{
_mcPlayerRepostiory = mcPlayerRepository;
_wareHouseService = wareHouseService;

}

/// <summary>
Expand All @@ -32,6 +37,14 @@ public IActionResult Get()
return Ok();
}

/// <summary>
/// 获取玩家所有仓库包括物品的信息
/// </summary>
/// <param name="playerId">玩家ID</param>
/// <returns></returns>
[HttpGet]
public async Task<dynamic> GetPlayerWareHouse([Required(ErrorMessage = "缺少玩家ID")] int playerId) => await _wareHouseService.GetPlayerAllWareHouse(playerId);


}
}
2 changes: 1 addition & 1 deletion MineCosmos.Core.Api/Controllers/MonitorController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@ public async Task<MessageModel<AccessApiDateView>> GetIds4Users()

if (AppSettings.app(new string[] { "MutiDBEnabled" }).ObjToBool())
{
var users = await _applicationUserServices.Query(d => d.tdIsDelete == false);
var users = await _applicationUserServices.GetListAsync(d => d.tdIsDelete == false);

apiDates = (from n in users
group n by new { n.birth.Date } into g
Expand Down
Loading

0 comments on commit 2464c0e

Please sign in to comment.