|
@@ -26,6 +26,7 @@ namespace Hotline.Api.Controllers
|
|
|
private readonly ISysDicTypeRepository _sysDicTypeRepository;
|
|
|
private readonly ISysDicDataRepository _sysDicDataRepository;
|
|
|
private readonly ISystemAreaDomainService _systemAreaDomainService;
|
|
|
+ private readonly ISystemAreaRepository _systemAreaRepository;
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
@@ -42,7 +43,8 @@ namespace Hotline.Api.Controllers
|
|
|
ISystemMenuRepository systemMenuRepository,
|
|
|
ISysDicTypeRepository sysDicTypeRepository,
|
|
|
ISysDicDataRepository sysDicDataRepository,
|
|
|
- ISystemAreaDomainService systemAreaDomainService
|
|
|
+ ISystemAreaDomainService systemAreaDomainService,
|
|
|
+ ISystemAreaRepository systemAreaRepository
|
|
|
)
|
|
|
{
|
|
|
_mapper = mapper;
|
|
@@ -51,6 +53,7 @@ namespace Hotline.Api.Controllers
|
|
|
_sysDicTypeRepository = sysDicTypeRepository;
|
|
|
_sysDicDataRepository = sysDicDataRepository;
|
|
|
_systemAreaDomainService = systemAreaDomainService;
|
|
|
+ _systemAreaRepository = systemAreaRepository;
|
|
|
}
|
|
|
|
|
|
#region 菜单管理
|
|
@@ -326,6 +329,31 @@ namespace Hotline.Api.Controllers
|
|
|
public async Task AddArea([FromBody] AddAreaDto dto)
|
|
|
{
|
|
|
var model = _mapper.Map<SystemArea>(dto);
|
|
|
+ if (string.IsNullOrEmpty(model.ParentId) || model.ParentId.Length > 6)
|
|
|
+ {
|
|
|
+ throw UserFriendlyException.SameMessage("只允许添加乡镇、街道数据,请选择区县");
|
|
|
+ }
|
|
|
+ if(model.ParentId.Substring(4,2) == "00")
|
|
|
+ {
|
|
|
+ throw UserFriendlyException.SameMessage("只允许添加乡镇、街道数据,请选择区县");
|
|
|
+ }
|
|
|
+ //验证重复
|
|
|
+ var area = await _systemAreaRepository.GetAsync(x => x.ParentId == dto.ParentId && x.AreaName == dto.AreaName);
|
|
|
+ if (area!=null)
|
|
|
+ {
|
|
|
+ if (area.IsDeleted)
|
|
|
+ {
|
|
|
+ area.IsDeleted = false;
|
|
|
+ await _systemAreaRepository.UpdateAsync(area, HttpContext.RequestAborted);
|
|
|
+ throw UserFriendlyException.SameMessage("同目录下已存在被删除的相同数据,已重新启用");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ throw UserFriendlyException.SameMessage("同目录下已存在相同数据,不能重复添加");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //生成新Code
|
|
|
+ model.Id = await _systemAreaDomainService.GenerateNewAreaCodeAsync(dto.ParentId, HttpContext.RequestAborted);
|
|
|
model.IsCanModify = true;
|
|
|
await _systemAreaDomainService.AddArea(model, HttpContext.RequestAborted);
|
|
|
}
|
|
@@ -346,6 +374,14 @@ namespace Hotline.Api.Controllers
|
|
|
throw UserFriendlyException.SameMessage("系统数据,不能修改");
|
|
|
|
|
|
model = _mapper.Map<SystemArea>(dto);
|
|
|
+
|
|
|
+ //验证重复
|
|
|
+ var area = await _systemAreaRepository.GetAsync(x => x.ParentId == dto.ParentId && x.AreaName == dto.AreaName);
|
|
|
+ if (area != null)
|
|
|
+ {
|
|
|
+ throw UserFriendlyException.SameMessage("同目录下已存在相同数据,不能修改");
|
|
|
+ }
|
|
|
+
|
|
|
await _systemAreaDomainService.ModifyArea(model, HttpContext.RequestAborted);
|
|
|
}
|
|
|
|