Commit 13011d6e LN

资源上传下载功能。语言设置功能

1 个父辈 917b02b8
......@@ -109,7 +109,15 @@ public class Constants {
*/
public static final String CACHE_msdSetting="msdSetting";
/**
* 客户端自定义配置
*/
public static final String CACHE_clientSetting="clientSetting";
/**
* 语言列表配置
*/
public static final String CACHE_languageType="CACHE_languageType";
}
package com.neotel.smfcore.core.language.rest;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.Constants;
import com.neotel.smfcore.common.utils.SecurityUtils;
import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.language.util.MessageUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
@Slf4j
@RestController
@RequiredArgsConstructor
@Api(tags = "设置:语言设置")
@RequestMapping("api/language")
public class LanguageSetController {
@Autowired
DataCache dataCache;
public List<String> getAllLanList() {
List<String> lanList = dataCache.getCache(Constants.CACHE_languageType);
if (lanList == null || lanList.size() <= 0) {
lanList=new ArrayList<>();
lanList.add(MessageUtils.ZH_CN);
lanList.add(MessageUtils.ZH_TW);
lanList.add(MessageUtils.EN_US);
lanList.add(MessageUtils.JA_JP);
dataCache.updateCache(Constants.CACHE_languageType, lanList);
}
return lanList;
}
@ApiOperation("获取语言列表")
@GetMapping
@PreAuthorize("@el.check('translation')")
public List<String> getList(){
return getAllLanList();
}
@ApiOperation("新增语言")
@PostMapping
@PreAuthorize("@el.check('translation')")
public ResponseEntity<Object> create( @RequestBody String languageType) {
//判断是否是admin
String userName= SecurityUtils.getCurrentUsername();
if(!userName.equals(Constants.SUPER_USERNAME)){
throw new ValidateException("smfcode.noLanguageSetAccess","没有编辑语言的权限");
}
if(languageType==null ){
throw new ValidateException("smfcode.languageCanotNull","语言类型不能为空" );
}
List<String> languageTypeList =getAllLanList();
if(!languageTypeList.contains(languageType)){
log.info("用户["+SecurityUtils.getCurrentUsername()+"] 新增语言:"+languageType);
languageTypeList.add(languageType);
dataCache.updateCache(Constants.CACHE_languageType, languageTypeList);
}
return new ResponseEntity<>(HttpStatus.CREATED);
}
@ApiOperation("删除指定语言")
@DeleteMapping
@PreAuthorize("@el.check('translation')")
public ResponseEntity<Object> delete(@RequestBody Set<String> languageTypes) {
//判断是否是admin
String userName = SecurityUtils.getCurrentUsername();
if (!userName.equals(Constants.SUPER_USERNAME)) {
throw new ValidateException("smfcode.noLanguageSetAccess", "没有编辑语言的权限");
}
List<String> languageTypeList = getAllLanList();
for (String type : languageTypes) {
if (type == null) {
throw new ValidateException("smfcode.languageCanotNull", "语言类型不能为空");
}
languageTypeList.remove(type);
log.info("用户["+SecurityUtils.getCurrentUsername()+"] 删除语言:"+type);
}
if (languageTypeList == null || languageTypeList.size() <= 0) {
throw new ValidateException("smfcode.languageCanotRemoveAll", "不能删除所有语言");
}
dataCache.updateCache(Constants.CACHE_languageType, languageTypeList);
return new ResponseEntity<>(HttpStatus.OK);
}
// @ApiOperation("修改语言列表")
// @PostMapping
// @PreAuthorize("@el.check('translation')")
// public ResultBean create(@RequestBody List<String> languageTypeList) {
// if(languageTypeList==null||languageTypeList.size()<=0){
// throw new ValidateException("smfcode.languageCanotNull","语言类型不能为空" );
// }
//
// //判断是否是admin
// String userName= SecurityUtils.getCurrentUsername();
// if(!userName.equals(Constants.SUPER_USERNAME)){
// throw new ValidateException("smfcode.noLanguageSetAccess","没有修改语言的权限");
// }
// dataCache.updateCache(Constants.CACHE_languageType, languageTypeList);
//
// return ResultBean.newOkResult("ok");
// }
}
package com.neotel.smfcore.core.language.rest.bean.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.HashMap;
import java.util.Map;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class LanguageResourceDto {
@ApiModelProperty("语言类型")
private String lanCode;
@ApiModelProperty("资源集合,key=code")
private Map<String,String> resourceMap=new HashMap<>();
}
......@@ -3,9 +3,11 @@ package com.neotel.smfcore.core.language.service.nanager.impl;
import cn.hutool.core.util.ObjectUtil;
import com.neotel.smfcore.common.bean.PageData;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.Constants;
import com.neotel.smfcore.common.utils.FileUtil;
import com.neotel.smfcore.core.barcode.bean.PlateSizeBean;
import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.language.service.bean.Content;
import com.neotel.smfcore.core.language.service.dao.ILanguageMsgDao;
import com.neotel.smfcore.core.language.service.nanager.ILanguageMsgManager;
......@@ -59,7 +61,21 @@ public class LanguageMsgManagerImpl implements ILanguageMsgManager {
public List<LanguageMsg> findByQuery(Query query) {
return languageMsgDao.findByQuery(query);
}
@Autowired
DataCache dataCache;
public List<String> getAllLanList(){
List<String> lanList=dataCache.getCache(Constants.CACHE_languageType);
if(lanList==null||lanList.size()<=0){
lanList.add(MessageUtils. ZH_CN);
lanList.add(MessageUtils.ZH_TW);
lanList.add(MessageUtils.EN_US);
lanList.add(MessageUtils.JA_JP);
dataCache.updateCache(Constants.CACHE_languageType,lanList);
}
return lanList;
}
@Override
public void download(List<LanguageMsg> msgList, HttpServletResponse response) throws IOException {
List<Map<String, Object>> list = new ArrayList<>();
......@@ -68,10 +84,15 @@ public class LanguageMsgManagerImpl implements ILanguageMsgManager {
map.put("编号", msg.getCode());
map.put("类型", msg.getType());
map.put("默认值", msg.getMsg());
map.put("简体中文", msg.getContent(MessageUtils.ZH_CH));
map.put("繁体中文", msg.getContent(MessageUtils.ZH_TW));
map.put("英文", msg.getContent(MessageUtils.EN_US));
map.put("日文", msg.getContent(MessageUtils.JA_JP));
List<String> lanList=getAllLanList();
for (String lanType :
lanList) {
map.put(lanType,msg.getContent(lanType));
}
// map.put("简体中文", msg.getContent(MessageUtils.ZH_CN));
// map.put("繁体中文", msg.getContent(MessageUtils.ZH_TW));
// map.put("英文", msg.getContent(MessageUtils.EN_US));
// map.put("日文", msg.getContent(MessageUtils.JA_JP));
list.add(map);
}
FileUtil.downloadExcel(list, response);
......
......@@ -3,19 +3,15 @@ package com.neotel.smfcore.core.language.util;
import cn.hutool.core.util.ObjectUtil;
import com.neotel.smfcore.core.language.service.bean.Content;
import com.neotel.smfcore.core.language.service.nanager.ILanguageMsgManager;
import com.neotel.smfcore.core.language.service.nanager.impl.LanguageMsgManagerImpl;
import com.neotel.smfcore.core.language.service.po.LanguageMsg;
import lombok.extern.slf4j.Slf4j;
import org.apache.tomcat.jni.Directory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Repository;
import javax.annotation.PostConstruct;
import java.io.*;
import java.text.MessageFormat;
import java.util.*;
/**
......@@ -67,16 +63,28 @@ public class MessageUtils {
@Autowired
ILanguageMsgManager languageMsgManager;
public static final String ZH_CH = "zh-CH";
public static final String ZH_CN = "zh-CN";
public static final String ZH_TW = "zh-TW";
public static final String EN_US = "en-US";
public static final String JA_JP = "ja-JP";
@PostConstruct
public void initialize() {
initLanguageMsgList();
}
// public static List<String> getAllLanList(){
//
//
// List<String> lanList=new ArrayList<>();
// lanList.add(ZH_CN);
// lanList.add(ZH_TW);
// lanList.add(EN_US);
// lanList.add(JA_JP);
// return lanList;
// }
// public static Locale getDefaultLocal(){
// return new Locale("zh-CH");
......@@ -134,6 +142,16 @@ public class MessageUtils {
return msgMap.get(code);
}
public static List<LanguageMsg> getLanMsgByType(String type) {
List<LanguageMsg> msgList=new ArrayList<>();
for (LanguageMsg msg :
msgMap.values()) {
if(msg.getType().equals(type)){
msgList.add(msg);
}
}
return msgList;
}
private Map<String, LanguageMsg> loadMsgMap() {
Map<String, LanguageMsg> msgMap = new HashMap<>();
List<LanguageMsg> msgs = languageMsgManager.findByQuery(new Query());
......
......@@ -139,5 +139,7 @@ smfcore.msd=MSD\u7BA1\u7406
smfcore.msdManage=MSD\u5E93\u5B58
smfcore.msdData=MSD\u8FFD\u6EAF\u6027
smfcore.msdSetting=MSD\u8BBE\u7F6E
smfcore.translation=\u8D44\u6E90\u7FFB\u8BD1
smfcode.languageCanotNull=\u8BED\u8A00\u7C7B\u578B\u4E0D\u80FD\u4E3A\u7A7A
smfcode.noLanguageSetAccess=\u6CA1\u6709\u7F16\u8F91\u8BED\u8A00\u7684\u6743\u9650
smfcode.languageCanotRemoveAll=\u4E0D\u80FD\u5220\u9664\u6240\u6709\u8BED\u8A00
\ No newline at end of file
......@@ -139,3 +139,7 @@ smfcore.msd=MSD Management
smfcore.msdManage=MSD Inventory
smfcore.msdData=MSD Traceability
smfcore.msdSetting=MSD Setting
smfcore.translation=Resource Translation
smfcode.languageCanotNull=Language type cannot be empty
smfcode.noLanguageSetAccess=No permission to edit the language
smfcode.languageCanotRemoveAll=Cannot delete all languages
......@@ -138,4 +138,8 @@ smfcode.label.noReel=\u6750\u6599\u304C\u898B\u3064\u304B\u3089\u306A\u3044
smfcore.msd=MSD\u7BA1\u7406
smfcore.msdManage=MSD\u5E93\u5B58
smfcore.msdData=MSD\u8FFD\u6EAF\u6027
smfcore.msdSetting=MSD\u8BBE\u7F6E
\ No newline at end of file
smfcore.msdSetting=MSD\u8BBE\u7F6E
smfcore.translation=\u30EA\u30BD\u30FC\u30B9\u306E\u7FFB\u8A33
smfcode.languageCanotNull=\u8A00\u8A9E\u30BF\u30A4\u30D7\u306F\u7A7A\u3067\u306F\u3042\u308A\u307E\u305B\u3093
smfcode.noLanguageSetAccess=\u8A00\u8A9E\u3092\u7DE8\u96C6\u3059\u308B\u6A29\u9650\u304C\u306A\u3044
smfcode.languageCanotRemoveAll=\u3059\u3079\u3066\u306E\u8A00\u8A9E\u3092\u524A\u9664\u3067\u304D\u306A\u3044
\ No newline at end of file
......@@ -138,4 +138,8 @@ smfcode.label.noReel=\u672A\u627E\u5230\u53EF\u51FA\u5E93\u7684\u7269\u6599
smfcore.msd=MSD\u7BA1\u7406
smfcore.msdManage=MSD\u5E93\u5B58
smfcore.msdData=MSD\u8FFD\u6EAF\u6027
smfcore.msdSetting=MSD\u8BBE\u7F6E
\ No newline at end of file
smfcore.msdSetting=MSD\u8BBE\u7F6E
smfcore.translation=\u8D44\u6E90\u7FFB\u8BD1
smfcode.languageCanotNull=\u8BED\u8A00\u7C7B\u578B\u4E0D\u80FD\u4E3A\u7A7A
smfcode.noLanguageSetAccess=\u6CA1\u6709\u7F16\u8F91\u8BED\u8A00\u7684\u6743\u9650
smfcode.languageCanotRemoveAll=\u4E0D\u80FD\u5220\u9664\u6240\u6709\u8BED\u8A00
\ No newline at end of file
......@@ -138,4 +138,8 @@ smfcode.label.noReel=\u672A\u627E\u5230\u53EF\u51FA\u5EAB\u7684\u7269\u6599
smfcore.msd=MSD\u7BA1\u7406
smfcore.msdManage=MSD\u5E93\u5B58
smfcore.msdData=MSD\u8FFD\u6EAF\u6027
smfcore.msdSetting=MSD\u8A2D\u7F6E
\ No newline at end of file
smfcore.msdSetting=MSD\u8A2D\u7F6E
smfcore.translation=\u8CC7\u6E90\u7FFB\u8B6F
smfcode.languageCanotNull=\u8A9E\u8A00\u985E\u578B\u4E0D\u80FD\u70BA\u7A7A
smfcode.noLanguageSetAccess=\u6C92\u6709\u7DE8\u8F2F\u8A9E\u8A00\u7684\u6B0A\u9650
smfcode.languageCanotRemoveAll=\u4E0D\u80FD\u522A\u9664\u6240\u6709\u8A9E\u8A00
\ No newline at end of file
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!