diff --git a/jeecg-boot/jeecg-module-system/jeecg-system-api/jeecg-system-cloud-api/src/main/java/org/jeecg/common/online/api/IOnlineBaseExtApi.java b/jeecg-boot/jeecg-module-system/jeecg-system-api/jeecg-system-cloud-api/src/main/java/org/jeecg/common/online/api/IOnlineBaseExtApi.java new file mode 100644 index 000000000..113e50de3 --- /dev/null +++ b/jeecg-boot/jeecg-module-system/jeecg-system-api/jeecg-system-cloud-api/src/main/java/org/jeecg/common/online/api/IOnlineBaseExtApi.java @@ -0,0 +1,89 @@ +package org.jeecg.common.online.api; + +import com.alibaba.fastjson.JSONObject; +import org.jeecg.common.constant.ServiceNameConstants; +import org.jeecg.common.online.api.factory.OnlineBaseExtApiFallbackFactory; +import org.jeecg.common.system.vo.DictModel; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.stereotype.Component; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + +/** + * @Description: 【Online】Feign API接口 + * + * @ConditionalOnMissingClass("org.jeecg.modules.online.cgform.service.impl.OnlineBaseExtApiImpl") => 有实现类的时候,不实例化Feign接口 + * @author: jeecg-boot + */ +@Component +//@FeignClient(contextId = "onlineBaseRemoteApi", value = ServiceNameConstants.SERVICE_ONLINE, fallbackFactory = OnlineBaseExtApiFallbackFactory.class) +@FeignClient(contextId = "onlineBaseRemoteApi", value = ServiceNameConstants.SERVICE_SYSTEM, fallbackFactory = OnlineBaseExtApiFallbackFactory.class) +@ConditionalOnMissingClass("org.jeecg.modules.online.cgform.service.impl.OnlineBaseExtApiImpl") +public interface IOnlineBaseExtApi { + + /** + * 【Online】 表单设计器专用:同步新增 + * @param tableName 表名 + * @param jsonObject + * @throws Exception + * @return String + */ + @PostMapping(value = "/online/api/cgform/crazyForm/{name}") + String cgformPostCrazyForm(@PathVariable("name") String tableName, @RequestBody JSONObject jsonObject) throws Exception; + + /** + * 【Online】 表单设计器专用:同步编辑 + * @param tableName 表名 + * @param jsonObject + * @throws Exception + * @return String + */ + @PutMapping(value = "/online/api/cgform/crazyForm/{name}") + String cgformPutCrazyForm(@PathVariable("name") String tableName, @RequestBody JSONObject jsonObject) throws Exception; + + /** + * 通过online表名查询数据,同时查询出子表的数据 + * + * @param tableName online表名 + * @param dataIds online数据ID + * @return + */ + @GetMapping(value = "/online/api/cgform/queryAllDataByTableName") + JSONObject cgformQueryAllDataByTableName(@RequestParam("tableName") String tableName, @RequestParam("dataIds") String dataIds); + + /** + * online表单删除数据 + * + * @param cgformCode Online表单code + * @param dataIds 数据ID,可逗号分割 + * @return + */ + @DeleteMapping("/online/api/cgform/cgformDeleteDataByCode") + String cgformDeleteDataByCode(@RequestParam("cgformCode") String cgformCode, @RequestParam("dataIds") String dataIds); + + /** + * 【cgreport】通过 head code 获取 sql语句,并执行该语句返回查询数据 + * + * @param code 报表Code,如果没传ID就通过code查 + * @param forceKey + * @param dataList + * @return + */ + @GetMapping("/online/api/cgreportGetData") + Map cgreportGetData(@RequestParam("code") String code, @RequestParam("forceKey") String forceKey, @RequestParam("dataList") String dataList); + + /** + * 【cgreport】对 cgreportGetData 的返回值做优化,封装 DictModel 集合 + * @param code + * @param dictText + * @param dictCode + * @param dataList + * @return + */ + @GetMapping("/online/api/cgreportGetDataPackage") + List cgreportGetDataPackage(@RequestParam("code") String code, @RequestParam("dictText") String dictText, @RequestParam("dictCode") String dictCode, @RequestParam("dataList") String dataList); + +} diff --git a/jeecg-boot/jeecg-module-system/jeecg-system-api/jeecg-system-cloud-api/src/main/java/org/jeecg/common/online/api/factory/OnlineBaseExtApiFallbackFactory.java b/jeecg-boot/jeecg-module-system/jeecg-system-api/jeecg-system-cloud-api/src/main/java/org/jeecg/common/online/api/factory/OnlineBaseExtApiFallbackFactory.java new file mode 100644 index 000000000..5056abebe --- /dev/null +++ b/jeecg-boot/jeecg-module-system/jeecg-system-api/jeecg-system-cloud-api/src/main/java/org/jeecg/common/online/api/factory/OnlineBaseExtApiFallbackFactory.java @@ -0,0 +1,21 @@ +package org.jeecg.common.online.api.factory; + +import org.springframework.cloud.openfeign.FallbackFactory; +import org.jeecg.common.online.api.IOnlineBaseExtApi; +import org.jeecg.common.online.api.fallback.OnlineBaseExtApiFallback; +import org.springframework.stereotype.Component; + +/** + * @Description: OnlineBaseExtAPIFallbackFactory + * @author: jeecg-boot + */ +@Component +public class OnlineBaseExtApiFallbackFactory implements FallbackFactory { + + @Override + public IOnlineBaseExtApi create(Throwable throwable) { + OnlineBaseExtApiFallback fallback = new OnlineBaseExtApiFallback(); + fallback.setCause(throwable); + return fallback; + } +} \ No newline at end of file diff --git a/jeecg-boot/jeecg-module-system/jeecg-system-api/jeecg-system-cloud-api/src/main/java/org/jeecg/common/online/api/fallback/OnlineBaseExtApiFallback.java b/jeecg-boot/jeecg-module-system/jeecg-system-api/jeecg-system-cloud-api/src/main/java/org/jeecg/common/online/api/fallback/OnlineBaseExtApiFallback.java new file mode 100644 index 000000000..632892f26 --- /dev/null +++ b/jeecg-boot/jeecg-module-system/jeecg-system-api/jeecg-system-cloud-api/src/main/java/org/jeecg/common/online/api/fallback/OnlineBaseExtApiFallback.java @@ -0,0 +1,52 @@ +package org.jeecg.common.online.api.fallback; + +import com.alibaba.fastjson.JSONObject; +import lombok.Setter; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.online.api.IOnlineBaseExtApi; +import org.jeecg.common.system.vo.DictModel; + +import java.util.List; +import java.util.Map; + +/** + * 进入fallback的方法 检查是否token未设置 + * @author: jeecg-boot + */ +@Slf4j +public class OnlineBaseExtApiFallback implements IOnlineBaseExtApi { + + @Setter + private Throwable cause; + + @Override + public String cgformPostCrazyForm(String tableName, JSONObject jsonObject) { + return null; + } + + @Override + public String cgformPutCrazyForm(String tableName, JSONObject jsonObject) { + return null; + } + + @Override + public JSONObject cgformQueryAllDataByTableName(String tableName, String dataIds) { + return null; + } + + @Override + public String cgformDeleteDataByCode(String cgformCode, String dataIds) { + return null; + } + + @Override + public Map cgreportGetData(String code, String forceKey, String dataList) { + return null; + } + + @Override + public List cgreportGetDataPackage(String code, String dictText, String dictCode, String dataList) { + return null; + } + +} diff --git a/jeecg-boot/jeecg-module-system/jeecg-system-api/jeecg-system-local-api/src/main/java/org/jeecg/common/online/api/IOnlineBaseExtApi.java b/jeecg-boot/jeecg-module-system/jeecg-system-api/jeecg-system-local-api/src/main/java/org/jeecg/common/online/api/IOnlineBaseExtApi.java new file mode 100644 index 000000000..4019e958d --- /dev/null +++ b/jeecg-boot/jeecg-module-system/jeecg-system-api/jeecg-system-local-api/src/main/java/org/jeecg/common/online/api/IOnlineBaseExtApi.java @@ -0,0 +1,72 @@ +package org.jeecg.common.online.api; + +import com.alibaba.fastjson.JSONObject; +import org.jeecg.common.system.vo.DictModel; + +import java.util.List; +import java.util.Map; + +/** + * 表单设计器【Online】翻译API接口 + * + * @author sunjianlei + */ +public interface IOnlineBaseExtApi { + + /** + * 【Online】 表单设计器专用:同步新增 + * @param tableName 表名 + * @param jsonObject + * @throws Exception + * @return String + */ + String cgformPostCrazyForm(String tableName, JSONObject jsonObject) throws Exception; + + /** + * 【Online】 表单设计器专用:同步编辑 + * @param tableName 表名 + * @param jsonObject + * @throws Exception + * @return String + */ + String cgformPutCrazyForm(String tableName, JSONObject jsonObject) throws Exception; + + /** + * online表单删除数据 + * + * @param cgformCode Online表单code + * @param dataIds 数据ID,可逗号分割 + * @return + */ + String cgformDeleteDataByCode(String cgformCode, String dataIds); + + /** + * 通过online表名查询数据,同时查询出子表的数据 + * + * @param tableName online表名 + * @param dataIds online数据ID + * @return + */ + JSONObject cgformQueryAllDataByTableName(String tableName, String dataIds); + + /** + * 对 cgreportGetData 的返回值做优化,封装 DictModel 集合 + * @param code + * @param dictCode + * @param dataList + * @param dictText 字典文本 + * @return + */ + List cgreportGetDataPackage(String code, String dictText, String dictCode, String dataList); + + /** + * 【cgreport】通过 head code 获取 sql语句,并执行该语句返回查询数据 + * + * @param code 报表Code,如果没传ID就通过code查 + * @param forceKey + * @param dataList + * @return + */ + Map cgreportGetData(String code, String forceKey, String dataList); + +} diff --git a/jeecg-boot/pom.xml b/jeecg-boot/pom.xml index 0a0e50898..bc30880d3 100644 --- a/jeecg-boot/pom.xml +++ b/jeecg-boot/pom.xml @@ -254,7 +254,7 @@ org.jeecgframework.boot hibernate-re - 3.7.4-GA + 3.8.0-GA