多语言编辑优化

This commit is contained in:
不做码农 2022-05-14 12:22:41 +08:00
commit 9d6f5ff1c7
2 changed files with 17 additions and 62 deletions

View File

@ -1,14 +1,13 @@
using Infrastructure; using Infrastructure;
using Infrastructure.Attribute; using Infrastructure.Attribute;
using Infrastructure.Enums; using Infrastructure.Enums;
using Infrastructure.Extensions;
using Infrastructure.Model; using Infrastructure.Model;
using Mapster; using Mapster;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using ZR.Admin.WebApi.Extensions;
using ZR.Admin.WebApi.Filters; using ZR.Admin.WebApi.Filters;
using ZR.Common; using ZR.Common;
using ZR.Model; using ZR.Model;
@ -101,14 +100,10 @@ namespace ZR.Admin.WebApi.Controllers
public IActionResult GetCommonLang(long Id) public IActionResult GetCommonLang(long Id)
{ {
var response = _CommonLangService.GetFirst(x => x.Id == Id); var response = _CommonLangService.GetFirst(x => x.Id == Id);
var modal = response.Adapt<CommonLangDto>();
if (modal != null) var list = _CommonLangService.GetList(x => x.LangKey == response.LangKey);
{ var vo = list.Adapt<List<CommonLangDto>>();
var list = _CommonLangService.GetList(f => f.LangKey == modal.LangKey); var modal = new CommonLangDto() { LangKey = response.LangKey, LangList = vo };
modal.LangName = list.Find(f => f.LangCode == "zh-cn")?.LangName;
modal.LangNameEn = list.Find(f => f.LangCode == "en")?.LangName;
modal.LangNameTw = list.Find(f => f.LangCode == "zh-tw")?.LangName;
}
return SUCCESS(modal); return SUCCESS(modal);
} }
@ -121,47 +116,11 @@ namespace ZR.Admin.WebApi.Controllers
[ActionPermissionFilter(Permission = "system:lang:query")] [ActionPermissionFilter(Permission = "system:lang:query")]
public IActionResult GetCommonLangByKey(string langKey) public IActionResult GetCommonLangByKey(string langKey)
{ {
var response = _CommonLangService.GetList(x => x.LangKey == langKey); var list = _CommonLangService.GetList(x => x.LangKey == langKey);
var vo = list.Adapt<List<CommonLangDto>>();
var modal = new CommonLangDto() { LangKey = langKey, LangList = vo };
return SUCCESS(response); return SUCCESS(modal);
}
/// <summary>
/// 添加多语言配置
/// </summary>
/// <returns></returns>
[HttpPost]
[ActionPermissionFilter(Permission = "system:lang:add")]
[Log(Title = "多语言配置", BusinessType = BusinessType.INSERT)]
public IActionResult AddCommonLang([FromBody] CommonLangDto parm)
{
if (parm == null)
{
throw new CustomException("请求参数错误");
}
//从 Dto 映射到 实体
var modal = parm.Adapt<CommonLang>().ToCreate(HttpContext);
var list = _CommonLangService.GetList(f => f.LangKey == modal.LangKey);
modal.Addtime = DateTime.Now;
modal.LangCode = "zh-cn";
modal.LangName = parm.LangName;
if (!list.Any(f => f.LangCode == modal.LangCode))
{
_CommonLangService.InsertReturnSnowflakeId(modal);
}
modal.LangCode = "zh-tw";
modal.LangName = parm.LangNameTw;
if (!list.Any(f => f.LangCode == modal.LangCode))
{
_CommonLangService.InsertReturnSnowflakeId(modal);
}
modal.LangCode = "en";
modal.LangName = parm.LangNameEn;
if (!list.Any(f => f.LangCode == modal.LangCode))
{
_CommonLangService.InsertReturnSnowflakeId(modal);
}
return ToResponse(1);
} }
/// <summary> /// <summary>
@ -173,18 +132,16 @@ namespace ZR.Admin.WebApi.Controllers
[Log(Title = "多语言配置", BusinessType = BusinessType.UPDATE)] [Log(Title = "多语言配置", BusinessType = BusinessType.UPDATE)]
public IActionResult UpdateCommonLang([FromBody] CommonLangDto parm) public IActionResult UpdateCommonLang([FromBody] CommonLangDto parm)
{ {
if (parm == null) if (parm == null || parm.LangKey.IsEmpty())
{ {
throw new CustomException("请求实体不能为空"); throw new CustomException("请求实体不能为空");
} }
//从 Dto 映射到 实体
var modal = parm.Adapt<CommonLang>().ToUpdate(HttpContext);
var list = _CommonLangService.GetList(f => f.LangKey == modal.LangKey);
List<CommonLang> langs = new(); List<CommonLang> langs = new();
langs.Add(new CommonLang() { Addtime = DateTime.Now, LangCode = "zh-cn", LangKey = modal.LangKey, LangName = parm.LangName }); foreach (var item in parm.LangList)
langs.Add(new CommonLang() { Addtime = DateTime.Now, LangCode = "zh-tw", LangKey = modal.LangKey, LangName = parm.LangNameTw }); {
langs.Add(new CommonLang() { Addtime = DateTime.Now, LangCode = "en", LangKey = modal.LangKey, LangName = parm.LangNameEn }); langs.Add(new CommonLang() { Addtime = DateTime.Now, LangKey = parm.LangKey, LangCode = item.LangCode, LangName = item.LangName });
}
var storage = _CommonLangService.Storageable(langs).WhereColumns(it => new { it.LangKey, it.LangCode }).ToStorage(); var storage = _CommonLangService.Storageable(langs).WhereColumns(it => new { it.LangKey, it.LangCode }).ToStorage();
long r = storage.AsInsertable.ExecuteReturnSnowflakeId();//执行插入 long r = storage.AsInsertable.ExecuteReturnSnowflakeId();//执行插入

View File

@ -9,16 +9,14 @@ namespace ZR.Model.Dto
/// </summary> /// </summary>
public class CommonLangDto public class CommonLangDto
{ {
[Required(ErrorMessage = "id不能为空")] //[Required(ErrorMessage = "id不能为空")]
public long Id { get; set; } public long Id { get; set; }
//[Required(ErrorMessage = "语言code不能为空")] //[Required(ErrorMessage = "语言code不能为空")]
public string LangCode { get; set; } public string LangCode { get; set; }
public string LangKey { get; set; } public string LangKey { get; set; }
[Required(ErrorMessage = "名称不能为空")] //[Required(ErrorMessage = "名称不能为空")]
public string LangName { get; set; } public string LangName { get; set; }
public string LangNameEn { get; set; } public List<CommonLangDto> LangList { get; set; }
public string LangNameTw { get; set; }
//public List<CommonLangDto> Langs { get; set; }
} }
/// <summary> /// <summary>