Merge remote-tracking branch 'origin/S01-轨迹中台' into S01-轨迹中台

# Conflicts:
#	src/SJZY.Track.Repository/SJZY.Track.Repository.csproj
#	src/SJZY.Track.Repository/TrackTemplate/Services/ITrackTemplateRepository.cs
#	src/SJZY.Track.Repository/TrackTemplate/Services/TrackTemplateRepository.cs
This commit is contained in:
李鹏军 2024-02-27 16:23:38 +08:00
commit c5b6d5e444
20 changed files with 940 additions and 0 deletions

View File

@ -0,0 +1,25 @@
using AutoMapper;
using SJZY.Track.Application.Dtos.Demo;
using SJZY.Track.Application.Dtos.TrackTemplates;
using SJZY.Track.Repository.TrackTemplate.ValueObjects;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SJZY.Track.Application.AutoMapper
{
/// <summary>
/// 轨迹模版自动映射
/// </summary>
public class TrackTemplateAutoMapperProfile : Profile
{
public TrackTemplateAutoMapperProfile()
{
CreateMap<GetTrackTemplateDetailVO, GetTrackTemplateDetailDto>(MemberList.None);
//CreateMap<UnifyResultDto<GetTrackTemplateDetailVO>, UnifyResultDto<GetTrackTemplateDetailDto>>(MemberList.None);
}
}
}

View File

@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SJZY.Track.Application.Dtos.TrackTemplates
{
/// <summary>
/// 获取轨迹模版分页输入
/// </summary>
public class GetPageTrackTemplateInput : PageInfoInput
{
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 关键字
/// </summary>
public string Keywords { get; set; }
}
}

View File

@ -0,0 +1,102 @@
using Microsoft.OpenApi.Writers;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SJZY.Track.Application.Dtos.TrackTemplates
{
/// <summary>
/// 获取轨迹模版详情
/// </summary>
public class GetTrackTemplateDetailDto
{
/// <summary>
/// Id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 子系统
/// </summary>
public string SubSystem { get; set; }
/// <summary>
/// 模版名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 模版代码
/// </summary>
public string Code { get; set; }
}
/// <summary>
/// 获取轨迹模版列表
/// </summary>
public class GetTrackTemplateListDto
{
/// <summary>
/// 轨迹模版id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 模板名称
/// </summary>
public string Name { set; get; }
/// <summary>
/// 模版代码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 所属子系统
/// </summary>
public string SubSystem { set; get; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
}
/// <summary>
/// 编辑轨迹模版
/// </summary>
public class EditTrackTemplateInput
{
/// <summary>
/// Id
/// </summary>
public int Id { set; get; }
/// <summary>
/// 操作类型
/// </summary>
public OptionType Options { get; set; }
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { set; get; }
/// <summary>
/// 模板名称
/// </summary>
public int Name { set; get; }
/// <summary>
/// 模板代码
/// </summary>
public int Code { set; get; }
}
}

View File

@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SJZY.Track.Application.Services.TrackTemplates
{
public interface ITrackTemplateService
{
}
}

View File

@ -0,0 +1,106 @@
using SJZY.Expand.ABP.Core.Common.Dto;
using SJZY.Track.Application.Dtos.TrackTemplates;
using SJZY.Track.Repository.TrackTemplate.Entitys;
using SJZY.Track.Repository.TrackTemplate.Services;
using SJZY.Track.Repository.TrackTemplate.ValueObjects;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.DependencyInjection;
using Volo.Abp.ObjectMapping;
namespace SJZY.Track.Application.Services.TrackTemplates
{
/// <summary>
/// 轨迹模版
/// </summary>
[ApiExplorerSettings(GroupName = "轨迹模版")]
[Route("/Track")]
public class TrackTemplateService : ApplicationService, ITrackTemplateService, IScopedDependency
{
private readonly ITrackTemplateRepository _trackTemplateRepository;
public TrackTemplateService(
ITrackTemplateRepository trackTemplateRepository
)
{
this._trackTemplateRepository=trackTemplateRepository;
}
/// <summary>
/// 轨迹模版编辑
/// </summary>
/// <returns></returns>
[HttpPost("/Template/Edit")]
public async Task<UnifyResultDto> EditAsync(EditTrackTemplateInput input)
{
return input.Options switch
{
OptionType.新增 => await AddAsync(input),
OptionType.修改 => await UpdateAsync(input),
OptionType.删除 => await DeleteAsync(input),
_ => throw new BusinessException(message: "当前操作动作不合法")
};
}
/// <summary>
/// 根据模版id获取轨迹模版
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet("/Template/GetDetail")]
public async Task<UnifyResultDto<GetTrackTemplateDetailDto>> GetDetailAsync(int id)
{
var detailInfo = await _trackTemplateRepository.GetDetailAsync(id);
if (detailInfo==null)
{
return new UnifyResultDto<GetTrackTemplateDetailDto>(false, null, "未查询到轨迹模版");
}
var dto = ObjectMapper.Map<GetTrackTemplateDetailVO, GetTrackTemplateDetailDto>(detailInfo);
return new UnifyResultDto<GetTrackTemplateDetailDto>("200", "", dto);
}
/// <summary>
/// 获取分页轨迹模版
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("/Template/GetList")]
public async Task<UnifyPageResultDto<GetTrackTemplateListDto>> GetPageTrackTemplate(GetPageTrackTemplateInput input)
{
var vo = ObjectMapper.Map<GetPageTrackTemplateInput, GetPageTrackTemplateVO>(input);
var resultDto = await _trackTemplateRepository.GetPageTrackTemplate(vo);
var pageResultDto = ObjectMapper.Map<UnifyPageResultDto<GetTrackTemplateListVO>, UnifyPageResultDto<GetTrackTemplateListDto>>(resultDto);
return pageResultDto;
}
#region 私有方法
private async Task<UnifyResultDto> AddAsync(EditTrackTemplateInput input)
{
var entity = ObjectMapper.Map<EditTrackTemplateInput, TrackTemplateEntity>(input);
var isTrue = await _trackTemplateRepository.InsertAsync(entity);
return new UnifyResultDto("200", "新增成功", isTrue);
}
private async Task<UnifyResultDto> UpdateAsync(EditTrackTemplateInput input)
{
var templateEntity = await _trackTemplateRepository.GetFirstAsync(a => a.Id==input.Id);
ObjectMapper.Map(input, templateEntity);
var isTrue = await _trackTemplateRepository.UpdateAsync(templateEntity);
return new UnifyResultDto("200", "修改成功", isTrue);
}
private async Task<UnifyResultDto> DeleteAsync(EditTrackTemplateInput input)
{
var isTrue = await _trackTemplateRepository.DeleteByIdAsync(input.Id);
return new UnifyResultDto("200", "删除成功", isTrue);
}
#endregion
}
}

View File

@ -0,0 +1,37 @@
using FluentValidation;
using SJZY.Track.Application.Dtos.Demo;
using SJZY.Track.Application.Dtos.TrackTemplates;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SJZY.Track.Application.Validations.TrackTemplates
{
/// <summary>
/// 轨迹模版编辑校验
/// </summary>
public class EditTrackTemplateInputValidation : AbstractValidator<EditTrackTemplateInput>, IValidationEnabled
{
public EditTrackTemplateInputValidation()
{
//条件分支
When(x => x.Options == OptionType.修改 || x.Options == OptionType.删除, () =>
{
RuleFor(x => x.Id).GreaterThan(0).WithMessage("修改或删除时Id必须大于0!");
});
When(x => x.Options == OptionType.新增, () =>
{
RuleFor(x => x.Id).Equal(0).WithMessage("新增时Id必须等于0!");
});
When(x => x.Options == OptionType.修改 || x.Options == OptionType.新增, () =>
{
RuleFor(x => x.Name).NotNull().WithMessage("模版名称必填!").NotEmpty().WithMessage("模版名称不能为空!");
RuleFor(x => x.Code).NotNull().WithMessage("模版代码必填!").NotEmpty().WithMessage("模版代码不能为空!");
});
}
}
}

View File

@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SJZY.Track.Repository.TrackTemplate.ValueObjects
{
public class GetPageTrackTemplateVO : PageInfoInput
{
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 关键字
/// </summary>
public string Keywords { get; set; }
}
}

View File

@ -0,0 +1,70 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SJZY.Track.Repository.TrackTemplate.ValueObjects
{
/// <summary>
/// 获取轨迹模版明细
/// </summary>
public class GetTrackTemplateDetailVO
{
/// <summary>
/// Id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 子系统
/// </summary>
public string SubSystem { get; set; }
/// <summary>
/// 模版名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 模版代码
/// </summary>
public string Code { get; set; }
}
/// <summary>
/// 获取轨迹模版列表
/// </summary>
public class GetTrackTemplateListVO
{
/// <summary>
/// 轨迹模版id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 模板名称
/// </summary>
public string Name { set; get; }
/// <summary>
/// 模版代码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 所属子系统
/// </summary>
public string SubSystem { set; get; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime? CreateTime { get; set; }
}
}

View File

@ -0,0 +1,131 @@
namespace SJZY.Track.Repository.VData.Entitys
{
/// <summary>
/// 外部主体
/// </summary>
[SugarTable("v_external_subject")]
public class VExternalSubjectEntity : IFullAuditedBasicEntitys
{
/// <summary>
///
/// </summary>
[SugarColumn(ColumnName = "Id", IsPrimaryKey = true, IsIdentity = true)]
public int Id { get; set; }
/// <summary>
/// 公司简称
/// </summary>
[SugarColumn(ColumnName = "Abbreviation")]
public string Abbreviation { get; set; }
/// <summary>
/// 所属网络(主数据枚举表 (属性=AffiliatedNetwork)WCA,WEB,Atlas,CCA,CTN,CLN,GLN,PCN,SCN,WPA,EGLN,Other)
/// </summary>
[SugarColumn(ColumnName = "AffiliatedNetwork")]
public int? AffiliatedNetwork { get; set; }
/// <summary>
/// 公司代码
/// </summary>
[SugarColumn(ColumnName = "Code")]
public string Code { get; set; }
/// <summary>
/// (主数据枚举表 (属性=CustomerQuality)国内同行,国外同行,国内直客,国外直客,海外代理,国内贸易公司,国外贸易公司,仅供应商,内部子公司,个人,内部子部门)
/// </summary>
[SugarColumn(ColumnName = "CooperationNature")]
public int? CooperationNature { get; set; }
/// <summary>
/// 公司英文名
/// </summary>
[SugarColumn(ColumnName = "EnName")]
public string EnName { get; set; }
/// <summary>
/// 是否核准
/// </summary>
[SugarColumn(ColumnName = "IsApprove")]
public bool IsApprove { get; set; }
/// <summary>
/// 是否黑名单
/// </summary>
[SugarColumn(ColumnName = "IsBlacklist")]
public bool IsBlacklist { get; set; }
/// <summary>
/// 是否订香港
/// </summary>
[SugarColumn(ColumnName = "IsBookingHongKong")]
public bool? IsBookingHongKong { get; set; }
/// <summary>
/// 是否海外代理
/// </summary>
[SugarColumn(ColumnName = "IsOverseasAgent")]
public bool IsOverseasAgent { get; set; }
/// <summary>
/// 是否自行结算
/// </summary>
[SugarColumn(ColumnName = "IsSelfSettlement")]
public bool IsSelfSettlement { get; set; }
/// <summary>
/// 是否结算主体
/// </summary>
[SugarColumn(ColumnName = "IsSettlementSubject")]
public bool IsSettlementSubject { get; set; }
/// <summary>
/// 主网络,从多选的所属网络中选其中一个
/// </summary>
[SugarColumn(ColumnName = "MainNetwork")]
public int? MainNetwork { get; set; }
/// <summary>
/// 公司名称
/// </summary>
[SugarColumn(ColumnName = "Name")]
public string Name { get; set; }
/// <summary>
/// 性质,t_enum_value_info表Property="CompanyQuality;1 国有企业,2 国有控股企业,3 外资企业,4 合资企业,5 股份企业,6 私营企业,7 个体户
/// </summary>
[SugarColumn(ColumnName = "Nature")]
public int? Nature { get; set; }
/// <summary>
/// 内部组织id
/// </summary>
[SugarColumn(ColumnName = "OrgId")]
public int? OrgId { get; set; }
/// <summary>
/// 母公司id
/// </summary>
[SugarColumn(ColumnName = "ParentId")]
public int? ParentId { get; set; }
/// <summary>
/// 备注
/// </summary>
[SugarColumn(ColumnName = "Remark")]
public string Remark { get; set; }
/// <summary>
/// 类型,位运算存储;t_enum_value_info表Property="SubjectType;1客户,2供应商,4内部子公司
/// </summary>
[SugarColumn(ColumnName = "Type")]
public int Type { get; set; }
/// <summary>
/// 已验证公司名称
/// </summary>
[SugarColumn(ColumnName = "VerifiedName")]
public string VerifiedName { get; set; }
}
}

View File

@ -0,0 +1,77 @@
namespace SJZY.Track.Repository.VData.Entitys
{
/// <summary>
/// 服务商主表
/// </summary>
[SugarTable("v_service_provider")]
public class VServiceProviderEntity : IFullAuditedBasicEntitys
{
/// <summary>
/// 自增主键
/// </summary>
[SugarColumn(ColumnName = "Id", IsPrimaryKey = true, IsIdentity = true)]
public int Id { get; set; }
/// <summary>
/// 授权接口Code
/// </summary>
[SugarColumn(ColumnName = "AuthInterfaceCode")]
public string AuthInterfaceCode { get; set; }
/// <summary>
/// 服务商代码
/// </summary>
[SugarColumn(ColumnName = "Code")]
public string Code { get; set; }
/// <summary>
/// 描述
/// </summary>
[SugarColumn(ColumnName = "Description")]
public string Description { get; set; }
/// <summary>
/// 流程代码
/// </summary>
[SugarColumn(ColumnName = "FlowCode")]
public string FlowCode { get; set; }
/// <summary>
/// 是否禁用账户验证
/// </summary>
[SugarColumn(ColumnName = "IsDisableAuth")]
public bool IsDisableAuth { get; set; }
/// <summary>
/// 服务商名称
/// </summary>
[SugarColumn(ColumnName = "Name")]
public string Name { get; set; }
/// <summary>
/// 请求超时(s)
/// </summary>
[SugarColumn(ColumnName = "Timeout")]
public int? Timeout { get; set; }
/// <summary>
/// 轨迹时区
/// </summary>
[SugarColumn(ColumnName = "TraceTimeZone")]
public string TraceTimeZone { get; set; }
/// <summary>
/// 服务商类型(弃用)
/// </summary>
[SugarColumn(ColumnName = "Type")]
public int Type { get; set; }
/// <summary>
/// 服务商类型(多选)
/// </summary>
[SugarColumn(ColumnName = "Types")]
public string Types { get; set; }
}
}

View File

@ -0,0 +1,155 @@
namespace SJZY.Track.Repository.VData.Entitys
{
/// <summary>
///
/// </summary>
[SugarTable("v_system")]
public class VSystemEntity : IFullAuditedBasicEntitys
{
/// <summary>
/// 子系统id
/// </summary>
[SugarColumn(ColumnName = "Id", IsPrimaryKey = true, IsIdentity = true)]
public int Id { get; set; }
/// <summary>
/// 关联的内部子系统
/// </summary>
[SugarColumn(ColumnName = "AssociatedInternalSubsystem")]
public int? AssociatedInternalSubsystem { get; set; }
/// <summary>
/// 子系统授权类型(1.标准 2.因素)
/// </summary>
[SugarColumn(ColumnName = "AuthType")]
public bool AuthType { get; set; }
/// <summary>
/// 中文名
/// </summary>
[SugarColumn(ColumnName = "CnName")]
public string CnName { get; set; }
/// <summary>
/// 备注
/// </summary>
[SugarColumn(ColumnName = "Comment")]
public string Comment { get; set; }
/// <summary>
/// 安装包下载链接,当类型为安装包时,必填
/// </summary>
[SugarColumn(ColumnName = "DownloadUrl")]
public string DownloadUrl { get; set; }
/// <summary>
/// 英文名
/// </summary>
[SugarColumn(ColumnName = "EnName")]
public string EnName { get; set; }
/// <summary>
/// 飞书应用ID
/// </summary>
[SugarColumn(ColumnName = "FsAppId")]
public string FsAppId { get; set; }
/// <summary>
/// 欠费允许下单(默认为是)
/// </summary>
[SugarColumn(ColumnName = "IsAllowPlaceOrder")]
public bool? IsAllowPlaceOrder { get; set; }
/// <summary>
/// 是否开通授信
/// </summary>
[SugarColumn(ColumnName = "IsCredit")]
public bool? IsCredit { get; set; }
/// <summary>
/// 是否启用
/// </summary>
[SugarColumn(ColumnName = "IsEnable")]
public bool IsEnable { get; set; }
/// <summary>
/// 是否启用业务主体(判断登录是否选择业务主体)
/// </summary>
[SugarColumn(ColumnName = "IsEnableBusiness")]
public bool? IsEnableBusiness { get; set; }
/// <summary>
/// 是否结束初始化
/// </summary>
[SugarColumn(ColumnName = "IsEndInit")]
public bool IsEndInit { get; set; }
/// <summary>
/// 是否开通余额
/// </summary>
[SugarColumn(ColumnName = "IsOpenBalance")]
public bool IsOpenBalance { get; set; }
/// <summary>
/// 子系统唯一值
/// </summary>
[SugarColumn(ColumnName = "Key")]
public string Key { get; set; }
/// <summary>
/// 子系统Logo图标
/// </summary>
[SugarColumn(ColumnName = "LogoIcon")]
public string LogoIcon { get; set; }
/// <summary>
/// 主账号Id
/// </summary>
[SugarColumn(ColumnName = "MainUserId")]
public int? MainUserId { get; set; }
/// <summary>
/// 移动端链接
/// </summary>
[SugarColumn(ColumnName = "MobileUrl")]
public string MobileUrl { get; set; }
/// <summary>
/// 运营主体
/// </summary>
[SugarColumn(ColumnName = "OperatingSubject")]
public int? OperatingSubject { get; set; }
/// <summary>
/// 排序值
/// </summary>
[SugarColumn(ColumnName = "Sort")]
public int? Sort { get; set; }
/// <summary>
/// 跨境电商物流1 干线物流2 国内代理贸易3 非业务类4
/// </summary>
[SugarColumn(ColumnName = "SysBusinessType")]
public int? SysBusinessType { get; set; }
/// <summary>
/// 系统所属1:内部 2:外部
/// </summary>
[SugarColumn(ColumnName = "SystemProperty")]
public int SystemProperty { get; set; }
/// <summary>
/// 子系统类型:1-Web、2-安装包exe
/// </summary>
[SugarColumn(ColumnName = "SystemType")]
public int? SystemType { get; set; }
/// <summary>
/// 子系统token
/// </summary>
[SugarColumn(ColumnName = "Token")]
public string Token { get; set; }
}
}

View File

@ -0,0 +1,107 @@
namespace SJZY.Track.Repository.VData.Entitys
{
/// <summary>
/// 用户信息表
/// </summary>
[SugarTable("v_user")]
public class VUserEntity : IFullAuditedBasicEntitys
{
/// <summary>
/// 用户id
/// </summary>
[SugarColumn(ColumnName = "Id", IsPrimaryKey = true, IsIdentity = true)]
public int Id { get; set; }
/// <summary>
/// 账号
/// </summary>
[SugarColumn(ColumnName = "Account")]
public string Account { get; set; }
/// <summary>
/// 公司Id
/// </summary>
[SugarColumn(ColumnName = "CompanyId")]
public int? CompanyId { get; set; }
/// <summary>
/// 国际区号
/// </summary>
[SugarColumn(ColumnName = "CountryCode")]
public string CountryCode { get; set; }
/// <summary>
/// 默认语言枚举
/// </summary>
[SugarColumn(ColumnName = "DefaultLang")]
public bool? DefaultLang { get; set; }
/// <summary>
/// 部门Id
/// </summary>
[SugarColumn(ColumnName = "DeptId")]
public int? DeptId { get; set; }
/// <summary>
/// 员工id
/// </summary>
[SugarColumn(ColumnName = "EmployeeId")]
public int? EmployeeId { get; set; }
/// <summary>
/// 英文名
/// </summary>
[SugarColumn(ColumnName = "EnName")]
public string EnName { get; set; }
/// <summary>
/// 是否业务员
/// </summary>
[SugarColumn(ColumnName = "IsBusiness")]
public bool? IsBusiness { get; set; }
/// <summary>
/// 是否启用
/// </summary>
[SugarColumn(ColumnName = "IsEnable")]
public bool IsEnable { get; set; }
/// <summary>
/// 固定电话(座机号码)
/// </summary>
[SugarColumn(ColumnName = "LandlinePhone")]
public string LandlinePhone { get; set; }
/// <summary>
/// 姓名
/// </summary>
[SugarColumn(ColumnName = "Name")]
public string Name { get; set; }
/// <summary>
/// 用户直接组织节点Id
/// </summary>
[SugarColumn(ColumnName = "OrgId")]
public int? OrgId { get; set; }
/// <summary>
/// 密码
/// </summary>
[SugarColumn(ColumnName = "PassWord")]
public string PassWord { get; set; }
/// <summary>
/// 绑定手机号
/// </summary>
[SugarColumn(ColumnName = "TelPhone")]
public string TelPhone { get; set; }
/// <summary>
/// 用户来源(1.员工入职 2.手动添加 3.其他)
/// </summary>
[SugarColumn(ColumnName = "UserOrigin")]
public bool? UserOrigin { get; set; }
}
}

View File

@ -0,0 +1,9 @@
using SJZY.Track.Repository.VData.Entitys;
namespace SJZY.Track.Repository.VData.Services
{
public class ExternalSubjectRepository : BasicRepository<VExternalSubjectEntity>, IExternalSubjectRepository, IScopedDependency
{
}
}

View File

@ -0,0 +1,9 @@
using SJZY.Track.Repository.VData.Entitys;
namespace SJZY.Track.Repository.VData.Services
{
public interface IExternalSubjectRepository : ISimpleClient<VExternalSubjectEntity>
{
}
}

View File

@ -0,0 +1,9 @@
using SJZY.Track.Repository.VData.Entitys;
namespace SJZY.Track.Repository.VData.Services
{
public interface IServiceProviderRepository : ISimpleClient<VServiceProviderEntity>
{
}
}

View File

@ -0,0 +1,9 @@
using SJZY.Track.Repository.VData.Entitys;
namespace SJZY.Track.Repository.VData.Services
{
public interface ISystemRepository : ISimpleClient<VSystemEntity>
{
}
}

View File

@ -0,0 +1,9 @@
using SJZY.Track.Repository.VData.Entitys;
namespace SJZY.Track.Repository.VData.Services
{
public interface IUserRepository : ISimpleClient<VUserEntity>
{
}
}

View File

@ -0,0 +1,9 @@
using SJZY.Track.Repository.VData.Entitys;
namespace SJZY.Track.Repository.VData.Services
{
public class VServiceProviderRepository : BasicRepository<VServiceProviderEntity>, IServiceProviderRepository, IScopedDependency
{
}
}

View File

@ -0,0 +1,9 @@
using SJZY.Track.Repository.VData.Entitys;
namespace SJZY.Track.Repository.VData.Services
{
public class SystemRepository : BasicRepository<VSystemEntity>, ISystemRepository, IScopedDependency
{
}
}

View File

@ -0,0 +1,9 @@
using SJZY.Track.Repository.VData.Entitys;
namespace SJZY.Track.Repository.VData.Services
{
public class UserRepository : BasicRepository<VUserEntity>, IUserRepository, IScopedDependency
{
}
}