|
|
@@ -325,17 +325,26 @@ public class DesignServiceImpl extends BaseService implements DesignService {
|
|
|
|
|
|
@Override
|
|
|
public RetResult<DesignTemplate> getDesignTemplateEdit(long id, RMap params, String outerSessionId, String dataSourceId, long supplierCode) {
|
|
|
- RetResult<DesignTemplate> templateRetResult = this.getDesignTemplateEdit(id, params, dataSourceId, supplierCode);
|
|
|
- if (!templateRetResult.isSuccess()) return templateRetResult;
|
|
|
- DesignTemplate designTemplate = templateRetResult.getResult();
|
|
|
+ //这里多了一个暂存设计的需求,进来之后先用outerSessionId找一下有没有暂存的设计稿,有了就直接返回暂存,没有的话正常加载模板
|
|
|
+ String templateJson = redisService.get(keysService.getRedisKey(RedisKeys.KEY_DESIGNER_DESIGN_TEMPLATE_SESSION, supplierCode, true)
|
|
|
+ + outerSessionId);
|
|
|
+ if (StringUtils.isNotEmpty(templateJson)) {
|
|
|
+ DesignTemplate template = jsonConvert.convertFrom(DesignTemplate.class, templateJson);
|
|
|
+ template.setJsonContent(preProcessTemplateContent(template.getJsonContent()));
|
|
|
+ return RetResult.<DesignTemplate>successT().result(template);
|
|
|
+ } else {
|
|
|
+ RetResult<DesignTemplate> templateRetResult = this.getDesignTemplateEdit(id, params, dataSourceId, supplierCode);
|
|
|
+ if (!templateRetResult.isSuccess()) return templateRetResult;
|
|
|
+ DesignTemplate designTemplate = templateRetResult.getResult();
|
|
|
|
|
|
- //给前端预处理一下权限
|
|
|
- designTemplate.setJsonContent(preProcessTemplateContent(designTemplate.getJsonContent()));
|
|
|
+ //给前端预处理一下权限
|
|
|
+ designTemplate.setJsonContent(preProcessTemplateContent(designTemplate.getJsonContent()));
|
|
|
|
|
|
- //将当前临时模板记录在redis中,设置个过期时间就行了
|
|
|
- redisService.setex(keysService.getRedisKey(RedisKeys.KEY_DESIGNER_DESIGN_TEMPLATE_SESSION, supplierCode, true)
|
|
|
- + outerSessionId, tempTemplateExpire, designTemplate);
|
|
|
- return RetResult.<DesignTemplate>successT().result(designTemplate);
|
|
|
+ //将当前临时模板记录在redis中,设置个过期时间就行了
|
|
|
+ redisService.setex(keysService.getRedisKey(RedisKeys.KEY_DESIGNER_DESIGN_TEMPLATE_SESSION, supplierCode, true)
|
|
|
+ + outerSessionId, tempTemplateExpire, designTemplate);
|
|
|
+ return RetResult.<DesignTemplate>successT().result(designTemplate);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -551,6 +560,24 @@ public class DesignServiceImpl extends BaseService implements DesignService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ public RetResult<DesignTemplate> tmpSaveUserDesign(DesignTemplate tmpTemplate, String dataSourceId, long supplierCode) {
|
|
|
+ String outerSessionId = tmpTemplate.getTemplateName();
|
|
|
+ String jsonContent = tmpTemplate.getJsonContent();
|
|
|
+
|
|
|
+ String templateJson = redisService.get(keysService.getRedisKey(RedisKeys.KEY_DESIGNER_DESIGN_TEMPLATE_SESSION, supplierCode, true)
|
|
|
+ + outerSessionId);
|
|
|
+ if (StringUtils.isEmpty(templateJson))
|
|
|
+ return RetResult.<DesignTemplate>errorT().retinfo("当前设计已超时,请刷新后操作");
|
|
|
+ DesignTemplate template = jsonConvert.convertFrom(DesignTemplate.class, templateJson);
|
|
|
+ template.setJsonContent(jsonContent);
|
|
|
+
|
|
|
+ //将当前临时模板记录在redis中,设置个过期时间就行了
|
|
|
+ redisService.setex(keysService.getRedisKey(RedisKeys.KEY_DESIGNER_DESIGN_TEMPLATE_SESSION, supplierCode, true)
|
|
|
+ + outerSessionId, tempTemplateExpire, template);
|
|
|
+ return RetResult.<DesignTemplate>successT();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
public RetResult<ProcessIdItem> saveCurrentUserTokenInfo(String virtualCode, String dataSourceId, long supplierCode, ERPTokenUser currentUser) {
|
|
|
RMap currentToken = new RMap();
|
|
|
currentToken.set("dataSourceId", dataSourceId);
|
|
|
@@ -597,6 +624,10 @@ public class DesignServiceImpl extends BaseService implements DesignService {
|
|
|
if (StringUtils.isEmpty(templateJson))
|
|
|
return RetResult.<DesignOrder>errorT().retinfo("当前设计已超时,请刷新后操作");
|
|
|
DesignTemplate template = jsonConvert.convertFrom(DesignTemplate.class, templateJson);
|
|
|
+ //将缓存中的该session临时设计删掉了
|
|
|
+ redisService.del(keysService.getRedisKey(RedisKeys.KEY_DESIGNER_DESIGN_TEMPLATE_SESSION, supplierCode, true)
|
|
|
+ + outerSessionId);
|
|
|
+
|
|
|
svgContent = StringEscapeUtils.unescapeJava(svgContent);
|
|
|
if (svgContent.startsWith("\"") && svgContent.endsWith("\"")) {
|
|
|
svgContent = svgContent.substring(1, svgContent.length() - 1);
|
|
|
@@ -634,8 +665,16 @@ public class DesignServiceImpl extends BaseService implements DesignService {
|
|
|
//生成订单结构
|
|
|
DesignOrder designOrder = convertTemplateToOrder(template);
|
|
|
designOrder.setId(tableIdService.getTableIdMulti("deDesignOrder.id", 1, dataSourceId, String.valueOf(supplierCode)));
|
|
|
- designOrder.setUserIdentity(String.valueOf(currentUser.getId()));
|
|
|
- DesignOrder.create(designOrder, currentUser.getId());
|
|
|
+ if (currentUser != null) {
|
|
|
+ //后台测试
|
|
|
+ designOrder.setUserIdentity(String.valueOf(currentUser.getId()));
|
|
|
+ DesignOrder.create(designOrder, currentUser.getId());
|
|
|
+ } else {
|
|
|
+ //实际使用
|
|
|
+ designOrder.setUserIdentity(outerSessionId);
|
|
|
+ DesignOrder.create(designOrder, 999L);
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
// 获取 SVG 根元素
|
|
|
Element rootElement = document.getRootElement();
|
|
|
@@ -768,6 +807,22 @@ public class DesignServiceImpl extends BaseService implements DesignService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ public RetResult<DesignOrder> downloadDesignPDF(String outerSessionId, String dataSourceId, long supplierCode) {
|
|
|
+ RMap params = new RMap();
|
|
|
+ params.put("userIdentity", outerSessionId);
|
|
|
+
|
|
|
+ List<DesignOrder> orderList = designDao.selectDesignOrders(params, dataSourceId, supplierCode, null);
|
|
|
+ if (orderList.isEmpty()) return RetResult.<DesignOrder>errorT().retinfo("未找到当前用户的设计订单");
|
|
|
+
|
|
|
+ //假如多个,取最后一个
|
|
|
+ DesignOrder designOrder = orderList.stream().sorted(Comparator.comparingLong(DesignOrder::getId).reversed()).toList().get(0);
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(designOrder.getPdfDownloadUrl()))
|
|
|
+ return RetResult.<DesignOrder>successT().retcode(201).retinfo("当前设计订单生成中");
|
|
|
+ else return RetResult.<DesignOrder>successT().result(designOrder).retinfo("success");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
public RetResult<List<DesignOrder>> queryDesignOrders(RMap params, PageFlipper pageFlipper, String dataSourceId, long supplierCode, ERPTokenUser currentUser) {
|
|
|
//默认来说这里查的都是自己的设计单
|
|
|
params.set("userIdentity", currentUser.getId());
|