feat: 完成合并

This commit is contained in:
陈淳
2023-02-22 19:21:21 +08:00
parent 49acf0c7c9
commit 8639372513
30 changed files with 61 additions and 43 deletions

View File

@@ -7,10 +7,10 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Cike.AutoApi" Version="1.0.7" />
<PackageReference Include="Microsoft.AspNetCore.Cors" Version="2.2.0" /> <PackageReference Include="Microsoft.AspNetCore.Cors" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="6.0.13" /> <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="6.0.13" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="6.0.0" /> <PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="6.0.0" />
<PackageReference Include="NET.AutoApi" Version="1.0.5" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0" /> <PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0" />
</ItemGroup> </ItemGroup>

View File

@@ -1,5 +1,4 @@
using NET.AutoWebApi.Helper; using System;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Security.Principal; using System.Security.Principal;

View File

@@ -122,7 +122,7 @@ namespace Yi.Framework.Ddd.Services
/// <param name="id"></param> /// <param name="id"></param>
/// <returns></returns> /// <returns></returns>
/// <exception cref="ArgumentNullException"></exception> /// <exception cref="ArgumentNullException"></exception>
public async Task<bool> DeleteAsync(string id) public virtual async Task<bool> DeleteAsync(string id)
{ {
if (id is null) if (id is null)
{ {

View File

@@ -1,16 +1,16 @@
using NET.AutoWebApi.Setting;
using Yi.Framework.Ddd.Services; using Yi.Framework.Ddd.Services;
using Yi.Framework.Ddd.Dtos; using Yi.Framework.Ddd.Dtos;
using Yi.Framework.Core.Attributes; using Yi.Framework.Core.Attributes;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using SqlSugar; using SqlSugar;
using Cike.AutoWebApi.Setting;
namespace Yi.Framework.OperLogManager namespace Yi.Framework.OperLogManager
{ {
/// <summary> /// <summary>
/// OperationLog服务实现 /// OperationLog服务实现
/// </summary> /// </summary>
[AppService] //[AppService]
public class OperationLogService : CrudAppService<OperationLogEntity, OperationLogGetListOutputDto, long, OperationLogGetListInputVo>, public class OperationLogService : CrudAppService<OperationLogEntity, OperationLogGetListOutputDto, long, OperationLogGetListInputVo>,
IOperationLogService, IAutoApiService IOperationLogService, IAutoApiService
{ {

View File

@@ -15,17 +15,21 @@ namespace Yi.Framework.OperLogManager
public void ConfigureServices(IServiceCollection services, ConfigureServicesContext context) public void ConfigureServices(IServiceCollection services, ConfigureServicesContext context)
{ {
services.AddControllers(options => {
services.AddControllers(options =>
{
options.Filters.Add<GlobalOperLogAttribute>(); options.Filters.Add<GlobalOperLogAttribute>();
}); });
services.AddAutoApiService(opt => //services.AddAutoApiService(opt =>
{ //{
//NETServiceTest所在程序集添加进动态api配置 // //NETServiceTest所在程序集添加进动态api配置
opt.CreateConventional(typeof(YiFrameworkOperLogManagerModule).Assembly, option => option.RootPath = string.Empty); // opt.CreateConventional(typeof(YiFrameworkOperLogManagerModule).Assembly, option => option.RootPath = string.Empty);
}); //});
services.AddSingleton<GlobalOperLogAttribute>(); services.AddSingleton<GlobalOperLogAttribute>();
services.AddTransient<OperationLogService>();
services.AddTransient<IOperationLogService, OperationLogService>();
} }
} }
} }

View File

@@ -1,5 +1,5 @@
using #NameSpaces#.Application.Contracts.#ModelName#; using #NameSpaces#.Application.Contracts.#ModelName#;
using NET.AutoWebApi.Setting; using Cike.AutoWebApi.Setting;
using #NameSpaces#.Application.Contracts.#ModelName#.Dtos; using #NameSpaces#.Application.Contracts.#ModelName#.Dtos;
using #NameSpaces#.Domain.#ModelName#.Entities; using #NameSpaces#.Domain.#ModelName#.Entities;
using Yi.Framework.Ddd.Services; using Yi.Framework.Ddd.Services;

View File

@@ -1,5 +1,5 @@
using Yi.Template.Application.Contracts.School; using Yi.Template.Application.Contracts.School;
using NET.AutoWebApi.Setting; using Cike.AutoWebApi.Setting;
using Yi.Template.Application.Contracts.School.Dtos; using Yi.Template.Application.Contracts.School.Dtos;
using Yi.Template.Domain.School.Entities; using Yi.Template.Domain.School.Entities;
using Yi.Framework.Ddd.Services; using Yi.Framework.Ddd.Services;

View File

@@ -1,5 +1,5 @@
using Yi.BBS.Application.Contracts.Exhibition; using Yi.BBS.Application.Contracts.Exhibition;
using NET.AutoWebApi.Setting; using Cike.AutoWebApi.Setting;
using Yi.BBS.Application.Contracts.Exhibition.Dtos; using Yi.BBS.Application.Contracts.Exhibition.Dtos;
using Yi.BBS.Domain.Exhibition.Entities; using Yi.BBS.Domain.Exhibition.Entities;
using Yi.Framework.Ddd.Services; using Yi.Framework.Ddd.Services;

View File

@@ -1,5 +1,5 @@
using Yi.BBS.Application.Contracts.Forum; using Yi.BBS.Application.Contracts.Forum;
using NET.AutoWebApi.Setting; using Cike.AutoWebApi.Setting;
using Yi.BBS.Application.Contracts.Forum.Dtos; using Yi.BBS.Application.Contracts.Forum.Dtos;
using Yi.BBS.Domain.Forum.Entities; using Yi.BBS.Domain.Forum.Entities;
using Yi.Framework.Ddd.Services; using Yi.Framework.Ddd.Services;

View File

@@ -1,5 +1,5 @@
using Yi.BBS.Application.Contracts.Forum; using Yi.BBS.Application.Contracts.Forum;
using NET.AutoWebApi.Setting; using Cike.AutoWebApi.Setting;
using Yi.BBS.Application.Contracts.Forum.Dtos; using Yi.BBS.Application.Contracts.Forum.Dtos;
using Yi.BBS.Domain.Forum.Entities; using Yi.BBS.Domain.Forum.Entities;
using Yi.Framework.Ddd.Services; using Yi.Framework.Ddd.Services;

View File

@@ -1,5 +1,5 @@
using Yi.BBS.Application.Contracts.Forum; using Yi.BBS.Application.Contracts.Forum;
using NET.AutoWebApi.Setting; using Cike.AutoWebApi.Setting;
using Yi.BBS.Application.Contracts.Forum.Dtos; using Yi.BBS.Application.Contracts.Forum.Dtos;
using Yi.BBS.Domain.Forum.Entities; using Yi.BBS.Domain.Forum.Entities;
using Yi.Framework.Ddd.Services; using Yi.Framework.Ddd.Services;

View File

@@ -1,5 +1,5 @@
using Yi.BBS.Application.Contracts.Forum; using Yi.BBS.Application.Contracts.Forum;
using NET.AutoWebApi.Setting; using Cike.AutoWebApi.Setting;
using Yi.BBS.Application.Contracts.Forum.Dtos; using Yi.BBS.Application.Contracts.Forum.Dtos;
using Yi.BBS.Domain.Forum.Entities; using Yi.BBS.Domain.Forum.Entities;
using Yi.Framework.Ddd.Services; using Yi.Framework.Ddd.Services;

View File

@@ -1,5 +1,5 @@
using Yi.BBS.Application.Contracts.Forum; using Yi.BBS.Application.Contracts.Forum;
using NET.AutoWebApi.Setting; using Cike.AutoWebApi.Setting;
using Yi.BBS.Application.Contracts.Forum.Dtos; using Yi.BBS.Application.Contracts.Forum.Dtos;
using Yi.BBS.Domain.Forum.Entities; using Yi.BBS.Domain.Forum.Entities;
using Yi.Framework.Ddd.Services; using Yi.Framework.Ddd.Services;

View File

@@ -1,5 +1,5 @@
using Yi.BBS.Application.Contracts.GlobalSetting; using Yi.BBS.Application.Contracts.GlobalSetting;
using NET.AutoWebApi.Setting; using Cike.AutoWebApi.Setting;
using Yi.BBS.Domain.GlobalSetting.Entities; using Yi.BBS.Domain.GlobalSetting.Entities;
using Yi.Framework.Ddd.Services; using Yi.Framework.Ddd.Services;

View File

@@ -1,5 +1,5 @@
using Yi.BBS.Application.Contracts.GlobalSetting; using Yi.BBS.Application.Contracts.GlobalSetting;
using NET.AutoWebApi.Setting; using Cike.AutoWebApi.Setting;
using Yi.BBS.Domain.GlobalSetting.Entities; using Yi.BBS.Domain.GlobalSetting.Entities;
using Yi.Framework.Ddd.Services; using Yi.Framework.Ddd.Services;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;

View File

@@ -1,5 +1,5 @@
using Yi.RBAC.Application.Contracts.Dictionary; using Yi.RBAC.Application.Contracts.Dictionary;
using NET.AutoWebApi.Setting; using Cike.AutoWebApi.Setting;
using Yi.RBAC.Application.Contracts.Dictionary.Dtos; using Yi.RBAC.Application.Contracts.Dictionary.Dtos;
using Yi.RBAC.Domain.Dictionary.Entities; using Yi.RBAC.Domain.Dictionary.Entities;
using Yi.Framework.Ddd.Services; using Yi.Framework.Ddd.Services;

View File

@@ -1,5 +1,5 @@
using Yi.RBAC.Application.Contracts.Dictionary; using Yi.RBAC.Application.Contracts.Dictionary;
using NET.AutoWebApi.Setting; using Cike.AutoWebApi.Setting;
using Yi.RBAC.Application.Contracts.Dictionary.Dtos; using Yi.RBAC.Application.Contracts.Dictionary.Dtos;
using Yi.RBAC.Domain.Dictionary.Entities; using Yi.RBAC.Domain.Dictionary.Entities;
using Yi.Framework.Ddd.Services; using Yi.Framework.Ddd.Services;

View File

@@ -4,7 +4,7 @@ using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using NET.AutoWebApi.Setting; using Cike.AutoWebApi.Setting;
using SqlSugar; using SqlSugar;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;

View File

@@ -1,11 +1,12 @@
using Yi.RBAC.Application.Contracts.Identity; using Yi.RBAC.Application.Contracts.Identity;
using NET.AutoWebApi.Setting; using Cike.AutoWebApi.Setting;
using Yi.RBAC.Application.Contracts.Identity.Dtos; using Yi.RBAC.Application.Contracts.Identity.Dtos;
using Yi.RBAC.Domain.Identity.Entities; using Yi.RBAC.Domain.Identity.Entities;
using Yi.Framework.Ddd.Services; using Yi.Framework.Ddd.Services;
using Yi.Framework.Ddd.Dtos; using Yi.Framework.Ddd.Dtos;
using SqlSugar; using SqlSugar;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Cike.AutoWebApi.Setting;
namespace Yi.RBAC.Application.Identity namespace Yi.RBAC.Application.Identity
{ {

View File

@@ -1,5 +1,5 @@
using Yi.RBAC.Application.Contracts.Identity; using Yi.RBAC.Application.Contracts.Identity;
using NET.AutoWebApi.Setting; using Cike.AutoWebApi.Setting;
using Yi.RBAC.Application.Contracts.Identity.Dtos; using Yi.RBAC.Application.Contracts.Identity.Dtos;
using Yi.RBAC.Domain.Identity.Entities; using Yi.RBAC.Domain.Identity.Entities;
using Yi.Framework.Ddd.Services; using Yi.Framework.Ddd.Services;

View File

@@ -1,5 +1,5 @@
using Yi.RBAC.Application.Contracts.Identity; using Yi.RBAC.Application.Contracts.Identity;
using NET.AutoWebApi.Setting; using Cike.AutoWebApi.Setting;
using Yi.RBAC.Application.Contracts.Identity.Dtos; using Yi.RBAC.Application.Contracts.Identity.Dtos;
using Yi.RBAC.Domain.Identity.Entities; using Yi.RBAC.Domain.Identity.Entities;
using Yi.Framework.Ddd.Services; using Yi.Framework.Ddd.Services;

View File

@@ -1,5 +1,5 @@
using Yi.RBAC.Application.Contracts.Identity; using Yi.RBAC.Application.Contracts.Identity;
using NET.AutoWebApi.Setting; using Cike.AutoWebApi.Setting;
using Yi.RBAC.Application.Contracts.Identity.Dtos; using Yi.RBAC.Application.Contracts.Identity.Dtos;
using Yi.RBAC.Domain.Identity.Entities; using Yi.RBAC.Domain.Identity.Entities;
using Yi.Framework.Ddd.Services; using Yi.Framework.Ddd.Services;

View File

@@ -1,5 +1,5 @@
using Yi.RBAC.Application.Contracts.Identity; using Yi.RBAC.Application.Contracts.Identity;
using NET.AutoWebApi.Setting; using Cike.AutoWebApi.Setting;
using Yi.RBAC.Application.Contracts.Identity.Dtos; using Yi.RBAC.Application.Contracts.Identity.Dtos;
using Yi.RBAC.Domain.Identity.Entities; using Yi.RBAC.Domain.Identity.Entities;
using Yi.Framework.Ddd.Services; using Yi.Framework.Ddd.Services;
@@ -14,6 +14,7 @@ using Microsoft.AspNetCore.Mvc;
using Yi.Framework.Auth.JwtBearer.Authorization; using Yi.Framework.Auth.JwtBearer.Authorization;
using Yi.RBAC.Application.Contracts.Identity.Dtos.User; using Yi.RBAC.Application.Contracts.Identity.Dtos.User;
using Yi.Framework.Core.CurrentUsers; using Yi.Framework.Core.CurrentUsers;
using Yi.Framework.OperLogManager;
namespace Yi.RBAC.Application.Identity namespace Yi.RBAC.Application.Identity
{ {
@@ -72,6 +73,7 @@ namespace Yi.RBAC.Application.Identity
/// <param name="input"></param> /// <param name="input"></param>
/// <returns></returns> /// <returns></returns>
/// <exception cref="UserFriendlyException"></exception> /// <exception cref="UserFriendlyException"></exception>
[OperLog("添加用户", OperEnum.Insert)]
public async override Task<UserGetOutputDto> CreateAsync(UserCreateInputVo input) public async override Task<UserGetOutputDto> CreateAsync(UserCreateInputVo input)
{ {
if (string.IsNullOrEmpty(input.Password)) if (string.IsNullOrEmpty(input.Password))
@@ -116,6 +118,7 @@ namespace Yi.RBAC.Application.Identity
/// <param name="id"></param> /// <param name="id"></param>
/// <param name="input"></param> /// <param name="input"></param>
/// <returns></returns> /// <returns></returns>
[OperLog("更新用户", OperEnum.Update)]
public async override Task<UserGetOutputDto> UpdateAsync(long id, UserUpdateInputVo input) public async override Task<UserGetOutputDto> UpdateAsync(long id, UserUpdateInputVo input)
{ {
if (await _repository.IsAnyAsync(u => input.UserName!.Equals(u.UserName) && !id.Equals(u.Id))) if (await _repository.IsAnyAsync(u => input.UserName!.Equals(u.UserName) && !id.Equals(u.Id)))
@@ -145,6 +148,7 @@ namespace Yi.RBAC.Application.Identity
/// </summary> /// </summary>
/// <param name="input"></param> /// <param name="input"></param>
/// <returns></returns> /// <returns></returns>
[OperLog("更新个人信息", OperEnum.Update)]
public async Task<UserGetOutputDto> UpdateProfileAsync(ProfileUpdateInputVo input) public async Task<UserGetOutputDto> UpdateProfileAsync(ProfileUpdateInputVo input)
{ {
var entity = await _repository.GetByIdAsync(_currentUser.Id); var entity = await _repository.GetByIdAsync(_currentUser.Id);
@@ -161,6 +165,7 @@ namespace Yi.RBAC.Application.Identity
/// <param name="state"></param> /// <param name="state"></param>
/// <returns></returns> /// <returns></returns>
[Route("/api/user/{id}/{state}")] [Route("/api/user/{id}/{state}")]
[OperLog("更新用户状态", OperEnum.Update)]
public async Task<UserGetOutputDto> UpdateStateAsync([FromRoute] long id, [FromRoute] bool state) public async Task<UserGetOutputDto> UpdateStateAsync([FromRoute] long id, [FromRoute] bool state)
{ {
var entity = await _repository.GetByIdAsync(id); var entity = await _repository.GetByIdAsync(id);
@@ -170,7 +175,13 @@ namespace Yi.RBAC.Application.Identity
} }
entity.State = state; entity.State = state;
await _repository.UpdateAsync(entity);
return await MapToGetOutputDtoAsync(entity); return await MapToGetOutputDtoAsync(entity);
} }
[OperLog("删除用户", OperEnum.Delete)]
public override Task<bool> DeleteAsync(string id)
{
return base.DeleteAsync(id);
}
} }
} }

View File

@@ -1,5 +1,5 @@
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using NET.AutoWebApi.Setting; using Cike.AutoWebApi.Setting;
using SqlSugar; using SqlSugar;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;

View File

@@ -1,5 +1,5 @@
using Yi.RBAC.Application.Contracts.Setting; using Yi.RBAC.Application.Contracts.Setting;
using NET.AutoWebApi.Setting; using Cike.AutoWebApi.Setting;
using Yi.RBAC.Application.Contracts.Setting.Dtos; using Yi.RBAC.Application.Contracts.Setting.Dtos;
using Yi.RBAC.Domain.Setting.Entities; using Yi.RBAC.Domain.Setting.Entities;
using Yi.Framework.Ddd.Services; using Yi.Framework.Ddd.Services;

View File

@@ -1,4 +1,4 @@
using NET.AutoWebApi.Setting; using Cike.AutoWebApi.Setting;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;

View File

@@ -29,13 +29,16 @@ namespace Yi.RBAC.Web
opt.JsonSerializerOptions.Converters.Add(new DateTimeJsonConverter("yyyy-MM-dd HH:mm:ss")); opt.JsonSerializerOptions.Converters.Add(new DateTimeJsonConverter("yyyy-MM-dd HH:mm:ss"));
}); });
services.AddAutoApiService(opt => services.AddAutoApiService(opt =>
{ {
//NETServiceTest所在程序集添加进动态api配置 opt.CreateConventional(AssemblyHelper.GetAllLoadAssembly(), option => option.RootPath = string.Empty);
opt.CreateConventional(typeof(YiRBACApplicationModule).Assembly, option => option.RootPath = string.Empty);
}); });
//添加swagger //添加swagger
services.AddSwaggerServer<YiRBACApplicationModule>(); services.AddSwaggerServer<YiRBACApplicationModule>();
} }

View File

@@ -1,5 +1,5 @@
using Yi.Template.Application.Contracts.School; using Yi.Template.Application.Contracts.School;
using NET.AutoWebApi.Setting; using Cike.AutoWebApi.Setting;
using Yi.Template.Application.Contracts.School.Dtos; using Yi.Template.Application.Contracts.School.Dtos;
using Yi.Template.Domain.School.Entities; using Yi.Template.Domain.School.Entities;
using Yi.Framework.Ddd.Services; using Yi.Framework.Ddd.Services;

View File

@@ -34,8 +34,8 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="状态" prop="isDeleted"> <el-form-item label="状态" prop="state">
<el-select v-model="queryParams.isDeleted" placeholder="日志状态" clearable style="width: 240px"> <el-select v-model="queryParams.state" placeholder="日志状态" clearable style="width: 240px">
<el-option v-for="dict in sys_common_status" :key="dict.value" :label="dict.label" <el-option v-for="dict in sys_common_status" :key="dict.value" :label="dict.label"
:value="dict.value" /> :value="dict.value" />
</el-select> </el-select>
@@ -100,9 +100,9 @@
<el-table-column label="请求方式" align="center" prop="requestMethod" /> <el-table-column label="请求方式" align="center" prop="requestMethod" />
<el-table-column label="操作人员" align="center" prop="operUser" :show-overflow-tooltip="true" sortable="custom" :sort-orders="['descending', 'ascending']" width="100" /> <el-table-column label="操作人员" align="center" prop="operUser" :show-overflow-tooltip="true" sortable="custom" :sort-orders="['descending', 'ascending']" width="100" />
<el-table-column label="主机" align="center" prop="operIp" width="130" :show-overflow-tooltip="true" /> <el-table-column label="主机" align="center" prop="operIp" width="130" :show-overflow-tooltip="true" />
<el-table-column label="操作状态" align="center" prop="isDeleted"> <el-table-column label="操作状态" align="center" prop="state">
<template #default="scope"> <template #default="scope">
<dict-tag :options="sys_common_status" :value="scope.row.isDeleted" /> <dict-tag :options="sys_common_status" :value="scope.row.state" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作日期" align="center" prop="createTime" sortable="custom" :sort-orders="['descending', 'ascending']" width="180"> <el-table-column label="操作日期" align="center" prop="createTime" sortable="custom" :sort-orders="['descending', 'ascending']" width="180">
@@ -163,7 +163,7 @@
<el-form-item label="操作时间:">{{ parseTime(form.createTime) }}</el-form-item> <el-form-item label="操作时间:">{{ parseTime(form.createTime) }}</el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="异常信息:" v-if="form.isDeleted === 1">{{ form.errorMsg }}</el-form-item> <el-form-item label="异常信息:" v-if="form.state === 1">{{ form.errorMsg }}</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
@@ -202,7 +202,7 @@ const data = reactive({
title: undefined, title: undefined,
operUser: undefined, operUser: undefined,
operType: undefined, operType: undefined,
isDeleted: undefined state: undefined
} }
}); });