Veronique 1 gadu atpakaļ
vecāks
revīzija
e72595fabe

+ 3 - 1
conf/application-sdWebOne.xml

@@ -7,7 +7,7 @@
             <node addr="127.0.0.1" port="46101"/>
         </group>
 
-        <properties load="redis.properties;alidy.properties">
+        <properties load="redis.properties;alidy.properties;invoke.properties">
             <property name="orderFileRoot" value="${APP_HOME}/orderFiles"/>
             <!--注入sql脚本的目录-->
             <property name="sqlroot" value="${APP_HOME}/conf/sqlroot/"/>
@@ -98,6 +98,7 @@
             <service value="com.sdtool.webcore.rest.MallFrontRest"/>
             <service value="com.sdtool.webcore.rest.AddressRest"/>
             <service value="com.sdtool.webcore.rest.DesignRest"/>
+            <service value="com.sdtool.webcore.rest.InvokeRest"/>
         </services>
 
         <resource-servlet webroot="root" index="index.html">
@@ -124,6 +125,7 @@
             </service>
             <service value="com.sdtool.webcore.rest.SiteRest"/>
             <service value="com.sdtool.webcore.rest.DesignRest"/>
+            <service value="com.sdtool.webcore.rest.InvokeRest"/>
 
             <websocket value="com.sdtool.webcore.websocket.ERPWebSocket" name="aws" groups="ERP_SERVICE_REMOTE"/>
         </rest>

+ 1 - 0
conf/invoke.properties

@@ -0,0 +1 @@
+invoke.whiteList = 192.168.1.44;

BIN
doc/设计站技术手册.docx


BIN
doc/设计站用户手册.docx


+ 1 - 1
pom.xml

@@ -6,7 +6,7 @@
 
     <groupId>com.sdtool</groupId>
     <artifactId>dySdDesigner</artifactId>
-    <version>1.0-SNAPSHOT</version>
+    <version>1.0</version>
     <packaging>pom</packaging>
     <modules>
         <module>sdCommon</module>

+ 2 - 2
sdBusiness/pom.xml

@@ -6,7 +6,7 @@
     <parent>
         <groupId>com.sdtool</groupId>
         <artifactId>dySdDesigner</artifactId>
-        <version>1.0-SNAPSHOT</version>
+        <version>1.0</version>
     </parent>
 
     <artifactId>sdBusiness</artifactId>
@@ -21,7 +21,7 @@
         <dependency>
             <groupId>com.sdtool</groupId>
             <artifactId>sdCommon</artifactId>
-            <version>1.0-SNAPSHOT</version>
+            <version>1.0</version>
         </dependency>
     </dependencies>
 

+ 1 - 1
sdBusiness/src/main/java/com/sdtool/business/service/mall/DesignServiceImpl.java

@@ -184,7 +184,7 @@ public class DesignServiceImpl extends BaseService implements DesignService {
         List<DesignTemplate> templateList = designDao.selectDesignTemplates(params, dataSourceId, supplierCode, pageFlipper);
 
         templateList.forEach(x -> x.setJsonContent(""));
-        return RetResult.<List<DesignTemplate>>successT().result(templateList);
+        return RetResult.<List<DesignTemplate>>successT().result(templateList).page(pageFlipper);
     }
 
     @Override

+ 1 - 1
sdCommon/pom.xml

@@ -6,7 +6,7 @@
     <parent>
         <groupId>com.sdtool</groupId>
         <artifactId>dySdDesigner</artifactId>
-        <version>1.0-SNAPSHOT</version>
+        <version>1.0</version>
     </parent>
 
     <artifactId>sdCommon</artifactId>

+ 3 - 3
sdWebCore/pom.xml

@@ -6,7 +6,7 @@
     <parent>
         <groupId>com.sdtool</groupId>
         <artifactId>dySdDesigner</artifactId>
-        <version>1.0-SNAPSHOT</version>
+        <version>1.0</version>
     </parent>
 
     <artifactId>sdWebCore</artifactId>
@@ -21,12 +21,12 @@
         <dependency>
             <groupId>com.sdtool</groupId>
             <artifactId>sdBusiness</artifactId>
-            <version>1.0-SNAPSHOT</version>
+            <version>1.0</version>
         </dependency>
         <dependency>
             <groupId>com.sdtool</groupId>
             <artifactId>sdCommon</artifactId>
-            <version>1.0-SNAPSHOT</version>
+            <version>1.0</version>
         </dependency>
     </dependencies>
 

+ 161 - 0
sdWebCore/src/main/java/com/sdtool/webcore/rest/InvokeRest.java

@@ -0,0 +1,161 @@
+package com.sdtool.webcore.rest;
+
+import com.dySweetFishPlugin.sql.RMapUtils;
+import com.sdtool.common.api.mall.DesignService;
+import com.sdtool.common.base.BaseService;
+import com.sdtool.common.datas.ERPHeader;
+import com.sdtool.common.datas.HttpCode;
+import com.sdtool.common.entity.design.DesignFont;
+import com.sdtool.common.entity.design.DesignOrder;
+import com.sdtool.common.entity.design.DesignTemplate;
+import com.sdtool.common.entity.site.ERPTokenUser;
+import com.sweetfish.net.http.*;
+import com.sweetfish.service.Local;
+import com.sweetfish.service.RetResult;
+import com.sweetfish.source.PageFlipper;
+import com.sweetfish.util.AutoLoad;
+import org.apache.commons.lang3.StringUtils;
+import org.rex.RMap;
+
+import javax.annotation.Resource;
+import java.util.Arrays;
+import java.util.List;
+import java.util.concurrent.CompletableFuture;
+
+@AutoLoad(false)
+@Local
+@RestService(name = "invoke", moduleid = 99, comment = "外部调用模块")
+public class InvokeRest extends BaseService {
+    @Resource
+    private DesignService designService;
+
+    @Resource(name = "property.invoke.whiteList")
+    private String ipWhiteList;
+
+    private boolean canAccessServer(String clientIp) {
+        return Arrays.asList(ipWhiteList.split(";")).contains(clientIp);
+    }
+
+    private boolean canAccessClient(String cookie) {
+        //当前仅判断存不存在...
+        return StringUtils.isNotBlank(cookie);
+    }
+
+    @RestMapping(name = "queryDesignTemplates", auth = false, sort = 1, comment = "获取设计模板", methods = {"POST"})
+    @WebApiBean(result = true, type = DesignTemplate.class)
+    public CompletableFuture<RMap> queryDesignTemplates(
+            @RestParam(name = "params", comment = "搜索内容", required = false) RMap searchData,
+            @RestParam(name = "page", comment = "分页信息", required = false) PageFlipper pageFlipper,
+            @RestParam(name = "orderBy", comment = "排序", required = false) String orderBy,
+            @RestParam(name = "&", comment = "登录用户,无需传入") ERPTokenUser currentUser,
+            @RestHeader(name = ERPHeader.HTTPHEADER_DATASOURCE) String dataSourceId,
+            @RestHeader(name = ERPHeader.HTTPHEADER_SUPPLIER) String supplierCode,
+            @RestAddress(comment = "用户ip地址,不需传入") String clientIp) {
+        return CompletableFuture.supplyAsync(
+                () -> {
+                    if (!canAccessServer(clientIp)) {
+                        logger.info("invoke拒绝访问:" + clientIp);
+                        return RMapUtils.error(HttpCode.BAD_REQUEST.value(), "无权限访问");
+                    }
+                    RMap params = new RMap();
+                    if (searchData != null) {
+                        params.putAll(searchData);
+                    }
+                    params.set("voidFlag", 0);
+
+                    RetResult<List<DesignTemplate>> result = designService.queryDesignTemplates(params, pageFlipper, dataSourceId, Long.parseLong(supplierCode));
+                    if (result.isSuccess())
+                        return RMapUtils.successV2(result.getResult(), null, result.getPageFlipper());
+                    else return RMapUtils.error(HttpCode.BAD_REQUEST.value(), result.getRetinfo());
+                }, getExecutor()
+        );
+    }
+
+    @RestMapping(name = "getDesignTemplate", auth = false, sort = 2, comment = "获取设计模板", methods = {"POST"})
+    @WebApiBean(result = true, type = DesignTemplate.class)
+    public CompletableFuture<RMap> getDesignTemplate(
+            @RestParam(name = "id", comment = "id") long id,
+            @RestParam(name = "&", comment = "登录用户,无需传入") ERPTokenUser currentUser,
+            @RestHeader(name = ERPHeader.HTTPHEADER_DATASOURCE) String dataSourceId,
+            @RestHeader(name = ERPHeader.HTTPHEADER_SUPPLIER) String supplierCode,
+            @RestAddress(comment = "用户ip地址,不需传入") String clientIp) {
+        return CompletableFuture.supplyAsync(
+                () -> {
+                    if (!canAccessServer(clientIp)) {
+                        logger.info("invoke拒绝访问:" + clientIp);
+                        return RMapUtils.error(HttpCode.BAD_REQUEST.value(), "无权限访问");
+                    }
+                    RetResult<DesignTemplate> result = designService.getDesignTemplateEdit(id, new RMap(), dataSourceId, Long.parseLong(supplierCode));
+                    if (result.isSuccess())
+                        return RMapUtils.successV2(result.getResult(), null, result.getPageFlipper());
+                    else return RMapUtils.error(HttpCode.BAD_REQUEST.value(), result.getRetinfo());
+                }, getExecutor()
+        );
+    }
+
+    //仅有此接口完全无限制访问了
+    //原因在于后台设计器和前台客户都用到这个借口了,然后又偷懒不想区分
+    //算了,这个接口也没啥敏感数据
+    @RestMapping(name = "getDesignFonts", auth = false, sort = 3, comment = "获取设计字体", methods = {"POST"})
+    @WebApiBean(result = true, type = DesignFont.class)
+    public CompletableFuture<RMap> getDesignFonts(
+            @RestParam(name = "params", comment = "搜索内容", required = false) RMap searchData,
+            @RestParam(name = "orderBy", comment = "排序", required = false) String orderBy,
+            @RestParam(name = "&", comment = "登录用户,无需传入") ERPTokenUser currentUser,
+            @RestHeader(name = ERPHeader.HTTPHEADER_DATASOURCE) String dataSourceId,
+            @RestHeader(name = ERPHeader.HTTPHEADER_SUPPLIER) String supplierCode) {
+        return CompletableFuture.supplyAsync(
+                () -> {
+                    RetResult<List<DesignFont>> result = designService.getDesignFonts(searchData, dataSourceId, Long.parseLong(supplierCode));
+                    if (result.isSuccess())
+                        return RMapUtils.successV2(result.getResult(), null, result.getPageFlipper());
+                    else return RMapUtils.error(HttpCode.BAD_REQUEST.value(), result.getRetinfo());
+                }, getExecutor()
+        );
+    }
+
+    @RestMapping(name = "getPreViewTemplate", auth = false, sort = 20, comment = "传参获取设计模板,供前端预览", methods = {"POST"})
+    @WebApiBean(result = true, type = DesignTemplate.class)
+    public CompletableFuture<RMap> getPreViewTemplate(
+            @RestParam(name = "id", comment = "id") long id,
+            @RestParam(name = "params", comment = "可变参数", required = false) RMap params,
+            @RestParam(name = "outerSessionId", comment = "外部网站的sessionId") String outerSessionId,
+            @RestParam(name = "&", comment = "登录用户,无需传入") ERPTokenUser currentUser,
+            @RestHeader(name = ERPHeader.HTTPHEADER_DATASOURCE) String dataSourceId,
+            @RestHeader(name = ERPHeader.HTTPHEADER_SUPPLIER) String supplierCode,
+            @RestCookie(name = "ow") String clientCookie) {
+        return CompletableFuture.supplyAsync(
+                () -> {
+                    if (!canAccessClient(clientCookie)) {
+                        return RMapUtils.error(HttpCode.BAD_REQUEST.value(), "无权限访问");
+                    }
+                    RetResult<DesignTemplate> result = designService.getDesignTemplateEdit(id, params, outerSessionId, dataSourceId, Long.parseLong(supplierCode));
+                    if (result.isSuccess())
+                        return RMapUtils.successV2(result.getResult(), null, result.getPageFlipper());
+                    else return RMapUtils.error(HttpCode.BAD_REQUEST.value(), result.getRetinfo());
+                }, getExecutor()
+        );
+    }
+
+    @RestMapping(name = "newDesignOrder", auth = false, sort = 21, comment = "生成设计订单", methods = {"POST"})
+    @WebApiBean(result = true, type = DesignOrder.class)
+    public CompletableFuture<RMap> newDesignOrder(
+            @RestParam(name = "outerSessionId", comment = "外部网站的sessionId") String outerSessionId,
+            @RestBody(comment = "前端处理过的svg") String svgContent,
+            @RestParam(name = "&", comment = "登录用户,无需传入") ERPTokenUser currentUser,
+            @RestHeader(name = ERPHeader.HTTPHEADER_DATASOURCE) String dataSourceId,
+            @RestHeader(name = ERPHeader.HTTPHEADER_SUPPLIER) String supplierCode,
+            @RestCookie(name = "ow") String clientCookie) {
+        return CompletableFuture.supplyAsync(
+                () -> {
+                    if (!canAccessClient(clientCookie)) {
+                        return RMapUtils.error(HttpCode.BAD_REQUEST.value(), "无权限访问");
+                    }
+                    RetResult<DesignOrder> result = designService.newDesignOrder(outerSessionId, svgContent, dataSourceId, Long.parseLong(supplierCode), currentUser);
+                    if (result.isSuccess())
+                        return RMapUtils.successV2(result.getResult(), null, result.getPageFlipper());
+                    else return RMapUtils.error(HttpCode.BAD_REQUEST.value(), result.getRetinfo());
+                }, getExecutor()
+        );
+    }
+}

+ 3 - 3
sdWebOne/pom.xml

@@ -6,7 +6,7 @@
     <parent>
         <groupId>com.sdtool</groupId>
         <artifactId>dySdDesigner</artifactId>
-        <version>1.0-SNAPSHOT</version>
+        <version>1.0</version>
     </parent>
 
     <artifactId>sdWebOne</artifactId>
@@ -21,13 +21,13 @@
         <dependency>
             <groupId>com.sdtool</groupId>
             <artifactId>sdWebCore</artifactId>
-            <version>1.0-SNAPSHOT</version>
+            <version>1.0</version>
         </dependency>
 
         <dependency>
             <groupId>com.sdtool</groupId>
             <artifactId>sdBusiness</artifactId>
-            <version>1.0-SNAPSHOT</version>
+            <version>1.0</version>
         </dependency>
     </dependencies>