Commit 2f1d9517 by 赵剑炜

增加消息队列,同时调整框架

parent 841a13f9
......@@ -2,6 +2,7 @@
using AutoMapper;
using Microsoft.AspNetCore.Mvc;
using Models.SqlModel;
using Models.Table;
using Services.Interface;
namespace APIs.Controllers
......
using APIs.Dto;
using AutoMapper;
using Common.Utility.Model;
using Models.SqlModel;
using Models.Table;
namespace APIs.Profiles;
......@@ -10,5 +12,9 @@ public class MapperProfile : Profile
{
CreateMap<EquipmentType, EquipmentTypeDto>().ForMember(dest=>dest.id,opt=>opt.MapFrom(src=>src.id));
CreateMap<EquipmentSize, EquipmentSizeDto>().ForMember(dest =>dest.id,opt => opt.MapFrom(src => src.id));
CreateMap<LogSummary, RecordsReq>();
CreateMap<RecordsReq, LogSummary>();
CreateMap<LogDetail, EquipmentList>();
CreateMap<EquipmentList, LogDetail>();
}
}
\ No newline at end of file
......@@ -46,15 +46,24 @@ namespace APIs
{
});
services.AddScoped<ISugarUnitOfWork, SugarUnitOfWork>();
#region Service
services.AddScoped<ILocalSugarUnitOfWork, LocalSugarUnitOfWork>();
services.AddScoped<IPoliceService, PoliceService>();
services.AddScoped<ICarService, CarService>();
services.AddScoped<IEquipmentSizeService, EquipmentSizeService>();
services.AddScoped<IEquipmentTypeService, EquipmentTypeService>();
services.AddScoped<ILogService, LogService>();
#endregion
#region Repository
services.AddScoped<IPoliceRepository, PoliceRepository>();
services.AddScoped<ICarRepository, CarRepository>();
services.AddScoped<IEquipmentSizeRepository, EquipmentSizeRepository>();
services.AddScoped<IEquipmentTypeRepository, EquipmentTypeRepository>();
services.AddScoped<ILogDetailRepository, LogDetailRepository>();
services.AddScoped<ILogSummaryRepository, LogSummaryRepository>();
#endregion
#region 注册RabbitMQ消费者
services.AddHostedService<RabbitMQCustomContext>();
......
......@@ -9,9 +9,13 @@
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="7.0.0" />
<PackageReference Include="Microsoft.IdentityModel.Tokens" Version="6.8.0" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="RabbitMQ.Client" Version="6.5.0" />
<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="6.8.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Services\Services.csproj" />
</ItemGroup>
</Project>
......@@ -9,6 +9,8 @@ using Microsoft.Extensions.Hosting;
using Common.Global;
using Newtonsoft.Json;
using Common.Utility.Model;
using Services.Interface;
using Services;
namespace Common.Utility.RabbitMQ
{
......@@ -17,6 +19,13 @@ namespace Common.Utility.RabbitMQ
{
ConnectionFactory factory = null;
IConnection connection = null;
private readonly ILogService _LogService;
public RabbitMQCustomContext(ILogService logService)
{
_LogService = logService;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
......@@ -48,8 +57,9 @@ namespace Common.Utility.RabbitMQ
{
var body = ea.Body.ToArray();
string str = Encoding.UTF8.GetString(body);
RecordsReq req= JsonConvert.DeserializeObject<RecordsReq>(str);
RecordsReq req = JsonConvert.DeserializeObject<RecordsReq>(str);
Console.WriteLine("接受到的mq消息:" + str);
_LogService.AddLogs(req);
channel.BasicAck(ea.DeliveryTag, false);
//Thread.Sleep(1000);
};
......
......@@ -7,7 +7,13 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="SqlSugarCore" Version="5.0.6.4" />
<Reference Include="SqlSugar">
<HintPath>..\..\..\..\..\Users\DELL\.nuget\packages\sqlsugarcore\5.1.4.106\lib\netstandard2.1\SqlSugar.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Folder Include="Entity\" />
</ItemGroup>
</Project>
......@@ -8,10 +8,9 @@ namespace Common.Utility.Model
{
public class RecordsReq
{
public String id { get; set; }
public DateTime useTime { get; set; }
public String userName { get; set; }
public String type { get; set; }
public int type { get; set; }
public String equipments { get; set; }
public List<EquipmentList> equipmentList { get; set; }
......@@ -25,8 +24,8 @@ namespace Common.Utility.Model
public String epc { get; set; }
public String equipmentName { get; set; }
public String equipmentSize { get; set; }
public String outInState { get; set; }
public String errorState { get; set; }
public int outInState { get; set; }
public int errorState { get; set; }
}
......
......@@ -6,7 +6,7 @@ using System.Security.Principal;
using System.Text;
using System.Threading.Tasks;
namespace Models.SqlModel
namespace Models.Table
{
[SugarTable("base_car")]
......
using SqlSugar;

using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
......@@ -6,7 +7,7 @@ using System.Security.Principal;
using System.Text;
using System.Threading.Tasks;
namespace Models.SqlModel
namespace Models.Table
{
[SugarTable("base_equipment_size")]
......
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Principal;
using System.Text;
using System.Threading.Tasks;
namespace Models.Table
{
[SugarTable("base_log_detail")]
public class LogDetail
{
[SugarColumn(IsIdentity = true, IsPrimaryKey = true)]
public int id { get; set; }
[SugarColumn(ColumnName = "summary_id")]
public int summaryId { get; set; }
public String epc { get; set; }
[SugarColumn(ColumnName = "equipment_name")]
public String? equipmentName { get; set; }
[SugarColumn(ColumnName = "equipment_size")]
public String? equipmentSize { get; set; }
[SugarColumn(ColumnName = "error_state")]
public int? errorState { get; set; }
public int? state { get; set; }
[SugarColumn(ColumnName = "car_id")]
public int? carid { get; set; }
[SugarColumn(ColumnName = "update_time")]
public DateTime? updateTime { get; set; }
[SugarColumn(ColumnName = "create_time")]
public DateTime? createTime { get; set; }
}
}
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Principal;
using System.Text;
using System.Threading.Tasks;
namespace Models.Table
{
[SugarTable("base_log_summary")]
public class LogSummary
{
[SugarColumn(IsIdentity = true, IsPrimaryKey = true)]
public int id { get; set; }
[SugarColumn(ColumnName = "cabinet_id")]
public String cabinet_id { get; set; }
public int type { get; set; }
[SugarColumn(ColumnName = "user_name")]
public String? user_name { get; set; }
public String? equipments { get; set; }
[SugarColumn(ColumnName = "use_time")]
public DateTime? useTime { get; set; }
[SugarColumn(ColumnName = "plan_id")]
public String? planId { get; set; }
[SugarColumn(ColumnName = "plan_name")]
public String? planName { get; set; }
[SugarColumn(ColumnName = "update_time")]
public DateTime? updateTime { get; set; }
[SugarColumn(ColumnName = "create_time")]
public DateTime? createTime { get; set; }
[Navigate(NavigateType.OneToMany, nameof(LogDetail.summaryId))]
public List<LogDetail> DetailList { get; set; } = new List<LogDetail>();
}
}
......@@ -6,7 +6,7 @@ using System.Security.Principal;
using System.Text;
using System.Threading.Tasks;
namespace Models.SqlModel
namespace Models.Table
{
......
......@@ -7,7 +7,7 @@ using System.Security.Principal;
using System.Text;
using System.Threading.Tasks;
namespace Models.SqlModel
namespace Models.Table
{
[SugarTable("sys_user")]
public class Users
......
using Models.SqlModel;
using Models.Table;
using System;
using System.Collections.Generic;
using System.Linq;
......
using Models.SqlModel;
using Models.Table;
using System;
using System.Collections.Generic;
using System.Linq;
......
using Models.SqlModel;
using Models.Table;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Repositories.IRepository.IBussiness
{
public interface ILogDetailRepository : IBaseRepository<LogDetail>
{
}
}

using Models.SqlModel;
using Models.Table;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Repositories.IRepository.IBussiness
{
public interface ILogSummaryRepository : IBaseRepository<LogSummary>
{
/// <summary>
///
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
Task<bool> AddLogs(LogSummary model);
}
}
using Models.SqlModel;
using Models.Table;
using System;
using System.Collections.Generic;
using System.Linq;
......
......@@ -7,7 +7,7 @@ using System.Threading.Tasks;
namespace Repositories.IRepository.IUnitOfWork
{
public interface ISugarUnitOfWork : IDisposable
public interface ILocalSugarUnitOfWork : IDisposable
{
SqlSugarClient GetDbClient();
......
......@@ -11,6 +11,11 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="AutoMapper" Version="11.0.0" />
<PackageReference Include="SqlSugarCore" Version="5.1.4.106" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Models\Models.csproj" />
</ItemGroup>
......
using Models.ToolsModel;
using Repositories.IRepository;
using SqlSugar.Extensions;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
......@@ -9,14 +8,15 @@ using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
using Repositories.IRepository.IUnitOfWork;
using SqlSugar;
namespace Repositories.Repository
{
public class BaseRepository<TEntity> : IBaseRepository<TEntity> where TEntity : class, new()
{
private ISugarUnitOfWork _db;
private ILocalSugarUnitOfWork _db;
public BaseRepository(ISugarUnitOfWork sugarUnitOfWork)
public BaseRepository(ILocalSugarUnitOfWork sugarUnitOfWork)
{
_db = sugarUnitOfWork;
}
......@@ -37,7 +37,6 @@ namespace Repositories.Repository
{
return await context.Updateable(entity).ExecuteCommandHasChangeAsync();
}
}
public async Task<bool> DeleteByIds(int[] ids)
{
......
using Models.SqlModel;
using Models.Table;
using Repositories.IRepository.IBussiness;
using Repositories.IRepository.IUnitOfWork;
using System;
......@@ -12,7 +13,7 @@ namespace Repositories.Repository.Bussiness
public class CarRepository : BaseRepository<Car>, ICarRepository
{
public CarRepository(ISugarUnitOfWork sugarUnitOfWork) : base(sugarUnitOfWork)
public CarRepository(ILocalSugarUnitOfWork sugarUnitOfWork) : base(sugarUnitOfWork)
{
}
......
using Models.SqlModel;
using Models.Table;
using Repositories.IRepository.IBussiness;
using Repositories.IRepository.IUnitOfWork;
using System;
......@@ -12,7 +13,7 @@ namespace Repositories.Repository.Bussiness
public class EquipmentSizeRepository : BaseRepository<EquipmentSize>, IEquipmentSizeRepository
{
public EquipmentSizeRepository(ISugarUnitOfWork sugarUnitOfWork) : base(sugarUnitOfWork)
public EquipmentSizeRepository(ILocalSugarUnitOfWork sugarUnitOfWork) : base(sugarUnitOfWork)
{
}
......
......@@ -12,7 +12,7 @@ namespace Repositories.Repository.Bussiness
public class EquipmentTypeRepository : BaseRepository<EquipmentType>, IEquipmentTypeRepository
{
public EquipmentTypeRepository(ISugarUnitOfWork sugarUnitOfWork) : base(sugarUnitOfWork)
public EquipmentTypeRepository(ILocalSugarUnitOfWork sugarUnitOfWork) : base(sugarUnitOfWork)
{
}
......
using Models.SqlModel;
using Models.Table;
using Repositories.IRepository.IBussiness;
using Repositories.IRepository.IUnitOfWork;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Repositories.Repository.Bussiness
{
public class LogDetailRepository : BaseRepository<LogDetail>, ILogDetailRepository
{
public LogDetailRepository(ILocalSugarUnitOfWork sugarUnitOfWork) : base(sugarUnitOfWork)
{
}
}
}
using AutoMapper;
using Models.SqlModel;
using Models.Table;
using Repositories.IRepository.IBussiness;
using Repositories.IRepository.IUnitOfWork;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Repositories.Repository.Bussiness
{
public class LogSummaryRepository : BaseRepository<LogSummary>, ILogSummaryRepository
{
protected readonly ILocalSugarUnitOfWork _suger;
public IMapper mapper;
public LogSummaryRepository(ILocalSugarUnitOfWork sugarUnitOfWork) : base(sugarUnitOfWork)
{
_suger = sugarUnitOfWork;
}
public async Task<bool> AddLogs(LogSummary model)
{
using (var context = _suger.GetDbClient())
{
try
{
context.BeginTran();
var logSum = context.InsertNav(model)
.Include(z1=>z1.DetailList)
.ExecuteCommand();
context.CommitTran();
}
catch (Exception e)
{
context.RollbackTran();
return false;
throw e;
}
}
return true;
}
}
}
using Models.SqlModel;
using Models.Table;
using Repositories.IRepository.IBussiness;
using Repositories.IRepository.IUnitOfWork;
using Repositories.Repository;
......@@ -12,7 +13,7 @@ namespace Repositories.Repository.Bussiness
{
public class PoliceRepository : BaseRepository<Police>, IPoliceRepository
{
public PoliceRepository(ISugarUnitOfWork sugarUnitOfWork) : base(sugarUnitOfWork)
public PoliceRepository(ILocalSugarUnitOfWork sugarUnitOfWork) : base(sugarUnitOfWork)
{
}
......
......@@ -8,11 +8,11 @@ using System.Threading.Tasks;
namespace Repositories.Repository.UnitOfWork
{
public sealed class SugarUnitOfWork : ISugarUnitOfWork
public sealed class LocalSugarUnitOfWork : ILocalSugarUnitOfWork
{
private ISqlSugarClient _sqlSugarClient;
public SugarUnitOfWork(ISqlSugarClient sqlSugarClient)
public LocalSugarUnitOfWork(ISqlSugarClient sqlSugarClient)
{
_sqlSugarClient = sqlSugarClient;
}
......@@ -51,7 +51,7 @@ namespace Repositories.Repository.UnitOfWork
{
GC.SuppressFinalize(this);
}
~SugarUnitOfWork()
~LocalSugarUnitOfWork()
{
Dispose();
}
......
using Models.SqlModel;
using Models.Table;
using Repositories.IRepository.IBussiness;
using Services.Interface;
using System;
......
using Models.SqlModel;
using Models.Table;
using Repositories.IRepository.IBussiness;
using Services.Interface;
using System;
......
using Models.SqlModel;
using Models.Table;
using System;
using System.Collections.Generic;
using System.Linq;
......
using Models.SqlModel;
using Models.Table;
using System;
using System.Collections.Generic;
using System.Linq;
......
using Common.Utility.Model;
using Models.SqlModel;
using Models.Table;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Services.Interface
{
public interface ILogService : IBaseServices<LogSummary>
{
/// <summary>
/// 增加出入库日志
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
Task<bool> AddLogs(RecordsReq model);
}
}
using Models.SqlModel;
using Models.Table;
using System;
using System.Collections.Generic;
using System.Linq;
......
using Models.SqlModel;
using Models.Table;
using System;
using System.Collections.Generic;
using System.Linq;
......
using AutoMapper;
using Common.Utility.Model;
using Models.SqlModel;
using Models.Table;
using Models.ToolsModel;
using Repositories.IRepository.IBussiness;
using Services.Interface;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Services
{
public class LogService : BaseService<LogSummary>, ILogService
{
private readonly ILogSummaryRepository _logSummaryRepository;
private readonly ILogDetailRepository _logDetailRepository;
public IMapper mapper;
public LogService(ILogSummaryRepository logSummaryRepository, ILogDetailRepository logDetailepository, IMapper _mapper)
{
base.BaseDal = logSummaryRepository;
_logSummaryRepository = logSummaryRepository;
_logDetailRepository = logDetailepository;
mapper = _mapper;
}
public Task<bool> AddLogs(RecordsReq model)
{
LogSummary log = mapper.Map<LogSummary>(model);
log.updateTime = DateTime.Now;
log.createTime = DateTime.Now;
foreach (var item in model.equipmentList)
{
LogDetail logdetail = mapper.Map<LogDetail>(item);
logdetail.createTime = DateTime.Now;
logdetail.updateTime = DateTime.Now;
log.DetailList.Add(logdetail);
}
return _logSummaryRepository.AddLogs(log);
}
}
}
using Models.SqlModel;
using Models.Table;
using Repositories.IRepository.IBussiness;
using Services.Interface;
using System;
......
......@@ -14,10 +14,6 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="SqlSugarCore" Version="5.1.4.106" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Repositories\Repositories.csproj" />
</ItemGroup>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论