|
|
@@ -8,6 +8,9 @@ import com.sdtool.common.api.NoSqlKeysService;
|
|
|
import com.sdtool.common.api.mall.DesignService;
|
|
|
import com.sdtool.common.base.BaseService;
|
|
|
import com.sdtool.common.datas.RedisKeys;
|
|
|
+import com.sdtool.common.entity.base.BaseEntity;
|
|
|
+import com.sdtool.common.entity.base.ProcessIdItem;
|
|
|
+import com.sdtool.common.entity.base.ProcessStringItem;
|
|
|
import com.sdtool.common.entity.design.DesignFont;
|
|
|
import com.sdtool.common.entity.design.DesignTemplate;
|
|
|
import com.sdtool.common.entity.design.DesignTemplateItem;
|
|
|
@@ -29,10 +32,12 @@ import java.io.File;
|
|
|
import java.io.IOException;
|
|
|
import java.nio.charset.StandardCharsets;
|
|
|
import java.nio.file.Files;
|
|
|
+import java.nio.file.Path;
|
|
|
import java.nio.file.Paths;
|
|
|
import java.nio.file.StandardOpenOption;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Collections;
|
|
|
+import java.util.Comparator;
|
|
|
import java.util.List;
|
|
|
|
|
|
@Local
|
|
|
@@ -58,6 +63,9 @@ public class DesignServiceImpl extends BaseService implements DesignService {
|
|
|
@Resource(name = "APP_HOME")
|
|
|
private String appHome;
|
|
|
|
|
|
+ @Resource(name = "property.PC.Mall.Admin.commonkey")
|
|
|
+ private String tokenKey;
|
|
|
+
|
|
|
private String designContentRoot;
|
|
|
|
|
|
private DesignDao designDao;
|
|
|
@@ -73,9 +81,9 @@ public class DesignServiceImpl extends BaseService implements DesignService {
|
|
|
public RetResult<List<DesignFont>> getDesignFonts(RMap params, String dataSourceId, long supplierCode) {
|
|
|
List<DesignFont> fontList = getRedisDocInfos(keysService.getRedisKey(RedisKeys.KEY_DESIGNER_DESIGN_FONT, supplierCode), DesignFont.class);
|
|
|
if (ERPUtils.mapContainKey(params, "voidFlag")) {
|
|
|
- return RetResult.<List<DesignFont>>successT().result(fontList.stream().filter(x -> x.getVoidFlag() == params.getInt("voidFlag")).toList());
|
|
|
+ return RetResult.<List<DesignFont>>successT().result(fontList.stream().filter(x -> x.getVoidFlag() == params.getInt("voidFlag")).sorted(Comparator.comparingLong(BaseEntity::getCreateTimeLong)).toList());
|
|
|
} else {
|
|
|
- return RetResult.<List<DesignFont>>successT().result(fontList.stream().filter(x -> x.getVoidFlag() == 0).toList());
|
|
|
+ return RetResult.<List<DesignFont>>successT().result(fontList.stream().filter(x -> x.getVoidFlag() == 0).sorted(Comparator.comparingLong(BaseEntity::getCreateTimeLong)).toList());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -111,6 +119,7 @@ public class DesignServiceImpl extends BaseService implements DesignService {
|
|
|
public RetResult<List<DesignTemplate>> queryDesignTemplates(RMap params, PageFlipper pageFlipper, String dataSourceId, long supplierCode) {
|
|
|
List<DesignTemplate> templateList = designDao.selectDesignTemplates(params, dataSourceId, supplierCode, pageFlipper);
|
|
|
|
|
|
+ templateList.forEach(x -> x.setJsonContent(""));
|
|
|
return RetResult.<List<DesignTemplate>>successT().result(templateList);
|
|
|
}
|
|
|
|
|
|
@@ -141,8 +150,10 @@ public class DesignServiceImpl extends BaseService implements DesignService {
|
|
|
|
|
|
@Override
|
|
|
public RetResult<DesignTemplate> updateDesignTemplate(DesignTemplate template, String dataSourceId, long supplierCode, ERPTokenUser currentUser) {
|
|
|
+ boolean isNew = false;
|
|
|
if (template.getId() <= 0) {
|
|
|
//新增
|
|
|
+ isNew = true;
|
|
|
template.setId(tableIdService.getTableIdMulti("deDesignTemplate.id", 1, dataSourceId, String.valueOf(supplierCode)));
|
|
|
DesignTemplate.create(template, currentUser.getId());
|
|
|
} else {
|
|
|
@@ -151,13 +162,17 @@ public class DesignServiceImpl extends BaseService implements DesignService {
|
|
|
|
|
|
String fileName = designContentRoot + File.separator + supplierCode +
|
|
|
File.separator + template.getId() + ".txt";
|
|
|
+ Path path = Paths.get(fileName);
|
|
|
|
|
|
String writeContent = "";
|
|
|
if (StringUtils.isNotEmpty(template.getJsonContent())) {
|
|
|
writeContent = template.getJsonContent();
|
|
|
}
|
|
|
try {
|
|
|
- Files.write(Paths.get(fileName),
|
|
|
+ if (!Files.exists(path.getParent())) {
|
|
|
+ Files.createDirectories(path.getParent());
|
|
|
+ }
|
|
|
+ Files.write(path,
|
|
|
Collections.singleton(new StringBuilder(writeContent)),
|
|
|
StandardCharsets.UTF_8,
|
|
|
StandardOpenOption.CREATE,
|
|
|
@@ -173,25 +188,87 @@ public class DesignServiceImpl extends BaseService implements DesignService {
|
|
|
template.setItemList(itemList);
|
|
|
redisService.hset(keysService.getRedisKey(RedisKeys.KEY_DESIGNER_DESIGN_TEMPLATE_IMPOSITION, supplierCode), String.valueOf(template.getId()), template);
|
|
|
|
|
|
- designDao.updateDesignTemplate(template, template.getItemList(), dataSourceId, supplierCode);
|
|
|
+ if (isNew)
|
|
|
+ designDao.addDesignTemplate(template, template.getItemList(), dataSourceId, supplierCode);
|
|
|
+ else
|
|
|
+ designDao.updateDesignTemplate(template, template.getItemList(), dataSourceId, supplierCode);
|
|
|
|
|
|
return RetResult.<DesignTemplate>successT().result(template);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ public RetResult<DesignTemplate> updateDesignTemplateThumb(DesignTemplate template, String dataSourceId, long supplierCode, ERPTokenUser currentUser) {
|
|
|
+ DesignTemplate redisTemplateEdit = getRedisDocInfo(keysService.getRedisKey(RedisKeys.KEY_DESIGNER_DESIGN_TEMPLATE_EDIT, supplierCode),
|
|
|
+ String.valueOf(template.getId()), DesignTemplate.class);
|
|
|
+ DesignTemplate redisTemplateImposition = getRedisDocInfo(keysService.getRedisKey(RedisKeys.KEY_DESIGNER_DESIGN_TEMPLATE_IMPOSITION, supplierCode),
|
|
|
+ String.valueOf(template.getId()), DesignTemplate.class);
|
|
|
+
|
|
|
+ if (redisTemplateEdit != null) {
|
|
|
+ redisTemplateEdit.setViewThumbPath(template.getViewThumbPath());
|
|
|
+ redisTemplateEdit.setTemplateName(template.getTemplateName());
|
|
|
+
|
|
|
+ redisService.hset(keysService.getRedisKey(RedisKeys.KEY_DESIGNER_DESIGN_TEMPLATE_EDIT, supplierCode), String.valueOf(redisTemplateEdit.getId()), redisTemplateEdit);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (redisTemplateImposition != null) {
|
|
|
+ redisTemplateImposition.setViewThumbPath(template.getViewThumbPath());
|
|
|
+ redisTemplateImposition.setTemplateName(template.getTemplateName());
|
|
|
+
|
|
|
+ redisService.hset(keysService.getRedisKey(RedisKeys.KEY_DESIGNER_DESIGN_TEMPLATE_IMPOSITION, supplierCode), String.valueOf(redisTemplateImposition.getId()), redisTemplateImposition);
|
|
|
+ }
|
|
|
+
|
|
|
+ designDao.updateDesignTemplateThumb(template, dataSourceId, supplierCode);
|
|
|
+
|
|
|
+ return RetResult.successT();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
public RetResult<DesignTemplate> voidDesignTemplate(DesignTemplate template, String dataSourceId, long supplierCode, ERPTokenUser currentUser) {
|
|
|
DesignTemplate redisTemplateEdit = getRedisDocInfo(keysService.getRedisKey(RedisKeys.KEY_DESIGNER_DESIGN_TEMPLATE_EDIT, supplierCode),
|
|
|
String.valueOf(template.getId()), DesignTemplate.class);
|
|
|
DesignTemplate redisTemplateImposition = getRedisDocInfo(keysService.getRedisKey(RedisKeys.KEY_DESIGNER_DESIGN_TEMPLATE_IMPOSITION, supplierCode),
|
|
|
String.valueOf(template.getId()), DesignTemplate.class);
|
|
|
|
|
|
- if (redisTemplateEdit != null)
|
|
|
+ if (redisTemplateEdit != null) {
|
|
|
redisTemplateEdit.setVoidFlag(template.getVoidFlag());
|
|
|
- if (redisTemplateImposition != null)
|
|
|
+ redisService.hset(keysService.getRedisKey(RedisKeys.KEY_DESIGNER_DESIGN_TEMPLATE_EDIT, supplierCode), String.valueOf(redisTemplateEdit.getId()), redisTemplateEdit);
|
|
|
+ }
|
|
|
+ if (redisTemplateImposition != null) {
|
|
|
redisTemplateImposition.setVoidFlag(template.getVoidFlag());
|
|
|
+ redisService.hset(keysService.getRedisKey(RedisKeys.KEY_DESIGNER_DESIGN_TEMPLATE_IMPOSITION, supplierCode), String.valueOf(redisTemplateImposition.getId()), redisTemplateImposition);
|
|
|
+ }
|
|
|
|
|
|
designDao.voidDesignTemplate(template, dataSourceId, supplierCode);
|
|
|
|
|
|
return RetResult.successT();
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public RetResult<ProcessIdItem> saveCurrentUserTokenInfo(String virtualCode, String dataSourceId, long supplierCode, ERPTokenUser currentUser) {
|
|
|
+ RMap currentToken = new RMap();
|
|
|
+ currentToken.set("dataSourceId", dataSourceId);
|
|
|
+ currentToken.set("supplierCode", String.valueOf(supplierCode));
|
|
|
+ String accessToken = ERPUtils.parseTokenFromERPUser(currentUser, tokenKey, jsonConvert);
|
|
|
+ currentToken.set("token", accessToken);
|
|
|
+
|
|
|
+ redisService.hset(keysService.getRedisKey(RedisKeys.KEY_DESIGNER_SYS_USER_TOKEN, -1000), virtualCode, jsonConvert.convertTo(currentToken));
|
|
|
+ return RetResult.successT();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public RetResult<ProcessStringItem> getCurrentUserTokenInfo(String virtualCode) {
|
|
|
+ String accessToken = redisService.hget(keysService.getRedisKey(RedisKeys.KEY_DESIGNER_SYS_USER_TOKEN, -1000), virtualCode);
|
|
|
+ if (StringUtils.isEmpty(accessToken)) {
|
|
|
+ return RetResult.<ProcessStringItem>errorT().retinfo("用户信息不正确");
|
|
|
+ }
|
|
|
+ RMap currentToken = jsonConvert.convertFrom(RMap.class, accessToken);
|
|
|
+ ProcessStringItem resultItem = new ProcessStringItem();
|
|
|
+ resultItem.setItemValue(currentToken.getString("token"));
|
|
|
+ resultItem.setSupplierCode(currentToken.getLong("supplierCode"));
|
|
|
+ resultItem.setDataSourceId(currentToken.getString("dataSourceId"));
|
|
|
+
|
|
|
+ redisService.hdel(keysService.getRedisKey(RedisKeys.KEY_DESIGNER_SYS_USER_TOKEN, -1000), virtualCode);
|
|
|
+
|
|
|
+ return RetResult.<ProcessStringItem>successT().result(resultItem);
|
|
|
+ }
|
|
|
}
|