|
|
|
@ -2,6 +2,7 @@ package cn.estsh.i3plus.core.apiservice.controller.busi;
|
|
|
|
|
|
|
|
|
|
import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService;
|
|
|
|
|
import cn.estsh.i3plus.core.api.iservice.busi.ISysFileService;
|
|
|
|
|
import cn.estsh.i3plus.core.api.iservice.busi.ISysLocaleLanguageService;
|
|
|
|
|
import cn.estsh.i3plus.core.api.iservice.busi.ISysLocaleResourceService;
|
|
|
|
|
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
|
|
|
|
|
import cn.estsh.i3plus.platform.common.exception.BaseImppException;
|
|
|
|
@ -15,7 +16,9 @@ import cn.estsh.i3plus.pojo.base.bean.ListPager;
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.common.Pager;
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
|
|
|
|
|
import cn.estsh.i3plus.pojo.model.platform.MissResourceModel;
|
|
|
|
|
import cn.estsh.i3plus.pojo.platform.bean.SysFile;
|
|
|
|
|
import cn.estsh.i3plus.pojo.platform.bean.SysLocaleLanguage;
|
|
|
|
|
import cn.estsh.i3plus.pojo.platform.bean.SysLocaleResource;
|
|
|
|
|
import cn.estsh.impp.framework.base.controller.CoreBaseController;
|
|
|
|
|
import cn.estsh.impp.framework.boot.auth.AuthUtil;
|
|
|
|
@ -41,6 +44,7 @@ import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
import java.io.*;
|
|
|
|
|
import java.nio.charset.StandardCharsets;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @Description :系统语言资源服务
|
|
|
|
@ -62,6 +66,9 @@ public class SysLocaleResourceController extends CoreBaseController {
|
|
|
|
|
private ISysLocaleResourceService sysLocaleResourceService;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private ISysLocaleLanguageService sysLocaleLanguageService;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private ISystemInitService systemInitService;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
@ -505,7 +512,6 @@ public class SysLocaleResourceController extends CoreBaseController {
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private Long getResourceKey(String resKey, String languageCode) {
|
|
|
|
@ -518,4 +524,162 @@ public class SysLocaleResourceController extends CoreBaseController {
|
|
|
|
|
}
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/************************* 缺失资源管理 **********************/
|
|
|
|
|
|
|
|
|
|
@GetMapping(value = "/miss/list")
|
|
|
|
|
@ApiOperation(value = "缺失资源列表")
|
|
|
|
|
public ResultBean listMissResource(){
|
|
|
|
|
try {
|
|
|
|
|
List<MissResourceModel> missResourceModelList = sysLocaleResourceService.listMissResourceModel();
|
|
|
|
|
|
|
|
|
|
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(missResourceModelList);
|
|
|
|
|
} catch (ImppBusiException busExcep) {
|
|
|
|
|
return ResultBean.fail(busExcep);
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@PutMapping(value = "/miss/update")
|
|
|
|
|
@ApiOperation(value = "更新缺失资源信息")
|
|
|
|
|
public ResultBean listMissResource(MissResourceModel missResourceModel){
|
|
|
|
|
try {
|
|
|
|
|
missResourceModel = sysLocaleResourceService.saveMissResourceModel(missResourceModel);
|
|
|
|
|
|
|
|
|
|
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(missResourceModel);
|
|
|
|
|
} catch (ImppBusiException busExcep) {
|
|
|
|
|
return ResultBean.fail(busExcep);
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@PutMapping(value = "/miss/batch-update-valid")
|
|
|
|
|
@ApiOperation(value = "更新缺失资源有效状态")
|
|
|
|
|
public ResultBean updateMissResourceIsValidByKeys(String[] keys,Integer valid){
|
|
|
|
|
try {
|
|
|
|
|
sysLocaleResourceService.updateMissResourceModelIsValidByKeys(keys, valid);
|
|
|
|
|
|
|
|
|
|
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
|
|
|
|
|
} catch (ImppBusiException busExcep) {
|
|
|
|
|
return ResultBean.fail(busExcep);
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@DeleteMapping(value = "/miss/clean-invalid")
|
|
|
|
|
@ApiOperation(value = "更新缺失资源有效状态")
|
|
|
|
|
public ResultBean cleanMissResourceByInvalid(){
|
|
|
|
|
try {
|
|
|
|
|
sysLocaleResourceService.doCleanInValidMissResource();
|
|
|
|
|
|
|
|
|
|
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
|
|
|
|
|
} catch (ImppBusiException busExcep) {
|
|
|
|
|
return ResultBean.fail(busExcep);
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@PostMapping(value = "/miss/batch-conversion")
|
|
|
|
|
@ApiOperation(value = "批量转换缺失资源")
|
|
|
|
|
public ResultBean doBatchConversionMissResource(String[] keys){
|
|
|
|
|
try {
|
|
|
|
|
sysLocaleResourceService.doConversionMissResourceByKeys(keys);
|
|
|
|
|
|
|
|
|
|
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
|
|
|
|
|
} catch (ImppBusiException busExcep) {
|
|
|
|
|
return ResultBean.fail(busExcep);
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@GetMapping(value = "/miss/export")
|
|
|
|
|
@ApiOperation(value = "导出缺失资源")
|
|
|
|
|
public ResultBean exportMissResource(HttpServletResponse response){
|
|
|
|
|
try {
|
|
|
|
|
List<MissResourceModel> missResourceModelList = sysLocaleResourceService.listMissResourceModel();
|
|
|
|
|
Map<String, String> langCodeMap = sysLocaleLanguageService.listSysLocaleLanguage()
|
|
|
|
|
.stream()
|
|
|
|
|
.collect(
|
|
|
|
|
Collectors.toMap(
|
|
|
|
|
SysLocaleLanguage::getLanguageCode,
|
|
|
|
|
SysLocaleLanguage::getLanguageName
|
|
|
|
|
)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
List<SysLocaleResource> sysLocaleResourceList = new ArrayList<>(missResourceModelList.size());
|
|
|
|
|
SysLocaleResource sysLocaleResource;
|
|
|
|
|
for (MissResourceModel resourceModel : missResourceModelList) {
|
|
|
|
|
sysLocaleResource = new SysLocaleResource();
|
|
|
|
|
sysLocaleResource.setSoftType(resourceModel.getSoftType());
|
|
|
|
|
sysLocaleResource.setLanguageCode(resourceModel.getLanguageCode());
|
|
|
|
|
sysLocaleResource.setLanguageNameRdd(langCodeMap.get(resourceModel.getLanguageCode()));
|
|
|
|
|
sysLocaleResource.setResourceType(resourceModel.getResourceType());
|
|
|
|
|
sysLocaleResource.setResourceKey(resourceModel.getResourceKey());
|
|
|
|
|
sysLocaleResource.setResourceValue(resourceModel.getResourceValue());
|
|
|
|
|
sysLocaleResource.setIsSystem(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
|
|
|
|
|
|
|
|
|
|
sysLocaleResourceList.add(sysLocaleResource);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ExcelTool excelTool = new ExcelTool(entityManager, redisRes);
|
|
|
|
|
String fileName = "locale_" + System.currentTimeMillis() + ".xls";
|
|
|
|
|
|
|
|
|
|
File file = new File(fileName);
|
|
|
|
|
if (file.createNewFile()) {
|
|
|
|
|
throw ImppExceptionBuilder.newInstance()
|
|
|
|
|
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
|
|
|
|
|
.setErrorCode(ImppExceptionEnum.IO_EXCEPTION_FILE.getCode())
|
|
|
|
|
.setErrorDetail("临时文件创建失败!")
|
|
|
|
|
.build();
|
|
|
|
|
}
|
|
|
|
|
File excle = excelTool.exportData(file, sysLocaleResourceList, SysLocaleResource.class, new String[]{
|
|
|
|
|
"resourceType", "languageCode", "languageNameRdd", "resourceKey", "resourceValue", "softType"
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
String userAgent = request.getHeader("User-Agent");
|
|
|
|
|
// 针对IE或者以IE为内核的浏览器:
|
|
|
|
|
if (userAgent.contains("MSIE") || userAgent.contains("Trident")) {
|
|
|
|
|
fileName = java.net.URLEncoder.encode(fileName, "UTF-8");
|
|
|
|
|
} else {
|
|
|
|
|
// 非IE浏览器的处理:
|
|
|
|
|
fileName = new String(fileName.getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
response.setContentType("application/force-download"); // 设置强制下载不打开
|
|
|
|
|
response.addHeader("Content-Disposition", "attachment;fileName=" + fileName); // 设置文件名
|
|
|
|
|
response.addHeader("Content-type", FileContentTypeTool.getContentType(".xls")); // 设置文件名
|
|
|
|
|
|
|
|
|
|
BufferedInputStream bis = null;
|
|
|
|
|
InputStream targetStream = null;
|
|
|
|
|
try {
|
|
|
|
|
targetStream = new DataInputStream(new FileInputStream(excle));
|
|
|
|
|
bis = new BufferedInputStream(targetStream);
|
|
|
|
|
OutputStream os = response.getOutputStream();
|
|
|
|
|
byte[] buffer = new byte[1024];
|
|
|
|
|
int i = bis.read(buffer);
|
|
|
|
|
while (i != -1) {
|
|
|
|
|
os.write(buffer, 0, i);
|
|
|
|
|
i = bis.read(buffer);
|
|
|
|
|
}
|
|
|
|
|
} finally {
|
|
|
|
|
if (bis != null) {
|
|
|
|
|
bis.close();
|
|
|
|
|
}
|
|
|
|
|
if (targetStream != null) {
|
|
|
|
|
targetStream.close();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
|
|
|
|
|
} catch (ImppBusiException busExcep) {
|
|
|
|
|
return ResultBean.fail(busExcep);
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|