From 69718af9187a762fbef803f9c3c78d77191bfff2 Mon Sep 17 00:00:00 2001 From: zy_Java <654600784@qq.com> Date: Wed, 26 Jan 2022 18:19:28 +0800 Subject: [PATCH] =?UTF-8?q?20220126=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ptos_open/api/BusinessController.java | 22 ++++ .../ptos_open/bean/dto/BusinessDto.java | 9 ++ .../ccsens/ptos_open/bean/vo/BusinessVo.java | 15 +++ .../ptos_open/persist/dao/BusinessDao.java | 15 +++ .../ptos_open/persist/dao/PluginDao.java | 2 +- .../ptos_open/service/BusinessService.java | 10 ++ .../ptos_open/service/IBusinessService.java | 13 +++ .../ptos_open/service/PluginService.java | 2 +- .../main/resources/mapper_dao/BusinessDao.xml | 40 +++++++ .../ptos_tall/api/BusinessController.java | 52 +++++++-- .../ccsens/ptos_tall/bean/vo/BusinessVo.java | 40 +++++++ .../ccsens/ptos_tall/bean/vo/PluginVo.java | 30 +++++- .../persist/dao/BusinessPluginDao.java | 17 +-- .../ptos_tall/service/BusinessService.java | 101 ++++++++++++++++-- .../ptos_tall/service/IBusinessService.java | 27 ++++- .../ptos_tall/service/ProjectService.java | 51 ++++----- .../ccsens/ptos_tall/util/PtOsConstant.java | 2 +- .../mapper_dao/BusinessPluginDao.xml | 89 +++++++++++---- .../tallsdk/api/ProjectController.java | 12 ++- .../tallsdk/api/RoleController.java | 5 +- .../tallsdk/api/TaskController.java | 13 +-- .../tallsdk/bean/dto/TallPluginDto.java | 29 +++++ .../tallsdk/bean/dto/TallProjectDto.java | 9 ++ .../tallsdk/bean/vo/TallPluginVo.java | 25 +++++ .../tallsdk/bean/vo/TallTaskVo.java | 7 ++ .../tallsdk/service/ITallService.java | 5 + .../com/ccsensptos/tallsdk/util/Constant.java | 16 +-- .../ccsensptos/tallsdk/util/PluginUtil.java | 61 +++++++++++ .../ccsensptos/tallsdk/util/TokenUtil.java | 8 +- .../java/com/ccsens/util/baidu/BaiDuUtil.java | 32 ++++++ .../java/com/ccsens/util/baidu/BaiDuVo.java | 21 +++- 31 files changed, 682 insertions(+), 98 deletions(-) create mode 100644 tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/dto/TallPluginDto.java create mode 100644 tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/vo/TallPluginVo.java create mode 100644 tall_sdk/src/main/java/com/ccsensptos/tallsdk/util/PluginUtil.java diff --git a/ptos_open/src/main/java/com/ccsens/ptos_open/api/BusinessController.java b/ptos_open/src/main/java/com/ccsens/ptos_open/api/BusinessController.java index 516444c..28c6225 100644 --- a/ptos_open/src/main/java/com/ccsens/ptos_open/api/BusinessController.java +++ b/ptos_open/src/main/java/com/ccsens/ptos_open/api/BusinessController.java @@ -32,6 +32,16 @@ public class BusinessController { @Resource private IBusinessService businessService; + + @ApiOperation(value = "通过业务code和插件名查询插件信息", notes = "") + @RequestMapping(value = "/businessPluginByName", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse businessPluginByName(@ApiParam @Validated @RequestBody BusinessDto.BusinessPluginByName params) throws Exception{ + log.info("通过业务code和插件名查询插件信息:{}",params); + BusinessVo.BusinessPluginInfo businessPluginInfo = businessService.businessPluginByName(params); + return JsonResponse.newInstance().ok(businessPluginInfo); + } + + @MustLogin @ApiOperation(value = "查询业务列表", notes = "") @RequestMapping(value = "/query", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) @@ -110,4 +120,16 @@ public class BusinessController { log.info("删除业务成功"); return JsonResponse.newInstance().ok(); } + + + + @ApiOperation(value = "通过插件业务关联id查找插件信息", notes = "") + @RequestMapping(value = "/businessPluginById", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse businessPluginById(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{ + log.info("通过插件业务关联id查找插件信息:{}",params); + BusinessVo.BusinessPlugin businessPlugin = businessService.businessPluginById(params.getParam()); + log.info("返回插件信息"); + return JsonResponse.newInstance().ok(businessPlugin); + } + } diff --git a/ptos_open/src/main/java/com/ccsens/ptos_open/bean/dto/BusinessDto.java b/ptos_open/src/main/java/com/ccsens/ptos_open/bean/dto/BusinessDto.java index 5112f34..3e0364b 100644 --- a/ptos_open/src/main/java/com/ccsens/ptos_open/bean/dto/BusinessDto.java +++ b/ptos_open/src/main/java/com/ccsens/ptos_open/bean/dto/BusinessDto.java @@ -91,4 +91,13 @@ public class BusinessDto { private Long businessPluginId; } + @Data + @ApiModel("通过业务code和插件名查找插件信息") + public static class BusinessPluginByName { + @ApiModelProperty("业务插件关联id") + private String code; + @ApiModelProperty("业务插件关联id") + private String pluginName; + } + } diff --git a/ptos_open/src/main/java/com/ccsens/ptos_open/bean/vo/BusinessVo.java b/ptos_open/src/main/java/com/ccsens/ptos_open/bean/vo/BusinessVo.java index 85c01ea..1fa8be3 100644 --- a/ptos_open/src/main/java/com/ccsens/ptos_open/bean/vo/BusinessVo.java +++ b/ptos_open/src/main/java/com/ccsens/ptos_open/bean/vo/BusinessVo.java @@ -73,4 +73,19 @@ public class BusinessVo { } + + + @Data + @ApiModel("查找插件信息,通过服务code和插件名") + public static class BusinessPluginInfo{ + @ApiModelProperty("插件id") + private Long pluginId; + @ApiModelProperty("业务插件关联id") + private Long businessPluginId; + @ApiModelProperty("插件在业务下的唯一code") + private String code; + @ApiModelProperty("是否是内置组件 0否 1是") + private Byte inner; + } + } diff --git a/ptos_open/src/main/java/com/ccsens/ptos_open/persist/dao/BusinessDao.java b/ptos_open/src/main/java/com/ccsens/ptos_open/persist/dao/BusinessDao.java index 108ff9d..9da8e72 100644 --- a/ptos_open/src/main/java/com/ccsens/ptos_open/persist/dao/BusinessDao.java +++ b/ptos_open/src/main/java/com/ccsens/ptos_open/persist/dao/BusinessDao.java @@ -37,4 +37,19 @@ public interface BusinessDao extends OpenBusinessMapper { * @return 返回业务下的插件信息 */ List businessQueryPlugin(@Param("businessId")Long businessId,@Param("userId")Long userId); + + /** + * 通过业务code和插件名查询插件信息 + * @param code 业务code + * @param pluginName 插件名 + * @return 返回插件名 + */ + BusinessVo.BusinessPluginInfo byBusinessCodeAndPluginName(@Param("code")String code, @Param("pluginName")String pluginName); + + /** + * 通过业务插件关联id查找插件 + * @param businessPluginId 业务插件关联id + * @return 返回插件信息 + */ + BusinessVo.BusinessPlugin businessPluginById(@Param("businessPluginId")Long businessPluginId); } diff --git a/ptos_open/src/main/java/com/ccsens/ptos_open/persist/dao/PluginDao.java b/ptos_open/src/main/java/com/ccsens/ptos_open/persist/dao/PluginDao.java index a7fb829..c5844f6 100644 --- a/ptos_open/src/main/java/com/ccsens/ptos_open/persist/dao/PluginDao.java +++ b/ptos_open/src/main/java/com/ccsens/ptos_open/persist/dao/PluginDao.java @@ -20,7 +20,7 @@ public interface PluginDao extends OpenPluginMapper { * @param userId userId * @return 返回插件列表 */ - List queryPluginList(@Param("name") String name, @Param("depth") Byte depth, @Param("userId") Long userId); + List queryPluginList(@Param("name") String name, @Param("depth") Byte depth, @Param("userId") Long userId,@Param("mine") Byte mine); /** * 验证插件是否存在 diff --git a/ptos_open/src/main/java/com/ccsens/ptos_open/service/BusinessService.java b/ptos_open/src/main/java/com/ccsens/ptos_open/service/BusinessService.java index 46eaa1a..720abad 100644 --- a/ptos_open/src/main/java/com/ccsens/ptos_open/service/BusinessService.java +++ b/ptos_open/src/main/java/com/ccsens/ptos_open/service/BusinessService.java @@ -182,4 +182,14 @@ public class BusinessService implements IBusinessService { openBusinessPlugin.setRecStatus((byte) 2); businessPluginMapper.updateByPrimaryKeySelective(openBusinessPlugin); } + + @Override + public BusinessVo.BusinessPluginInfo businessPluginByName(BusinessDto.BusinessPluginByName params) { + return businessDao.byBusinessCodeAndPluginName(params.getCode(),params.getPluginName()); + } + + @Override + public BusinessVo.BusinessPlugin businessPluginById(BusinessDto.BusinessPlugin param) { + return businessDao.businessPluginById(param.getBusinessPluginId()); + } } diff --git a/ptos_open/src/main/java/com/ccsens/ptos_open/service/IBusinessService.java b/ptos_open/src/main/java/com/ccsens/ptos_open/service/IBusinessService.java index ef9664b..e98f4b9 100644 --- a/ptos_open/src/main/java/com/ccsens/ptos_open/service/IBusinessService.java +++ b/ptos_open/src/main/java/com/ccsens/ptos_open/service/IBusinessService.java @@ -67,4 +67,17 @@ public interface IBusinessService { */ void delRelevance(BusinessDto.BusinessPlugin param, Long userId); + /** + * 通过服务code和插件名获取插件信息 + * @param params 服务code和插件名 + * @return 插件在业务内的信息 + */ + BusinessVo.BusinessPluginInfo businessPluginByName(BusinessDto.BusinessPluginByName params); + + /** + * 通过业务插件关联id查找插件 + * @param param 业务插件关联id + * @return 返回插件信息 + */ + BusinessVo.BusinessPlugin businessPluginById(BusinessDto.BusinessPlugin param); } diff --git a/ptos_open/src/main/java/com/ccsens/ptos_open/service/PluginService.java b/ptos_open/src/main/java/com/ccsens/ptos_open/service/PluginService.java index 175ebdc..146477c 100644 --- a/ptos_open/src/main/java/com/ccsens/ptos_open/service/PluginService.java +++ b/ptos_open/src/main/java/com/ccsens/ptos_open/service/PluginService.java @@ -45,7 +45,7 @@ public class PluginService implements IPluginService { @Override public PageInfo queryPlugin(PluginDto.QueryByPage param, Long userId) { PageHelper.startPage(param.getPageNum(), param.getPageSize()); - List pluginInfos = pluginDao.queryPluginList(param.getName(), param.getDepth(), userId); + List pluginInfos = pluginDao.queryPluginList(param.getName(), param.getDepth(), userId,param.getMine()); return new PageInfo<>(pluginInfos); } diff --git a/ptos_open/src/main/resources/mapper_dao/BusinessDao.xml b/ptos_open/src/main/resources/mapper_dao/BusinessDao.xml index 8086377..3be0887 100644 --- a/ptos_open/src/main/resources/mapper_dao/BusinessDao.xml +++ b/ptos_open/src/main/resources/mapper_dao/BusinessDao.xml @@ -65,4 +65,44 @@ and bp.rec_status = 0 and p.rec_status = 0 + + \ No newline at end of file diff --git a/ptos_tall/src/main/java/com/ccsens/ptos_tall/api/BusinessController.java b/ptos_tall/src/main/java/com/ccsens/ptos_tall/api/BusinessController.java index dcb0f33..ac5a467 100644 --- a/ptos_tall/src/main/java/com/ccsens/ptos_tall/api/BusinessController.java +++ b/ptos_tall/src/main/java/com/ccsens/ptos_tall/api/BusinessController.java @@ -1,10 +1,12 @@ package com.ccsens.ptos_tall.api; +import com.ccsens.cloudutil.annotation.MustLogin; import com.ccsens.ptos_tall.bean.dto.BusinessDto; import com.ccsens.ptos_tall.bean.vo.BusinessVo; import com.ccsens.ptos_tall.bean.vo.PluginVo; import com.ccsens.ptos_tall.service.IBusinessService; import com.ccsens.util.JsonResponse; +import com.ccsens.util.bean.dto.QueryDto; import io.swagger.annotations.*; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; @@ -27,27 +29,63 @@ public class BusinessController { private IBusinessService businessService; - @ApiOperation(value = "查找域内的业务列表", notes = "只查在线、启用且开放的业务,不包括零号业务") + @ApiOperation(value = "缓存时查找域内插件类表", notes = "只查在线、启用且开放的业务,不包括零号业务") @ApiImplicitParams({ }) - @RequestMapping(value = "/query", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse> queryBusiness() throws Exception{ + @RequestMapping(value = "/query/plugin", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse> queryPluginAll() throws Exception{ + log.info("缓存时查找域内插件类表"); + List businessInfoList = businessService.queryPluginAll(); + log.info("返回域内的插件列表"); + return JsonResponse.newInstance().ok(businessInfoList); + } + + @ApiOperation(value = "缓存时业务信息(包括业务插件关联信息)", notes = "只查在线、启用且开放的业务,不包括零号业务") + @ApiImplicitParams({ + }) + @RequestMapping(value = "/query/businessPlugin", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse> queryBusinessPlugin() throws Exception{ + log.info("缓存时查找域内插件类表"); + List businessInfoList = businessService.queryBusinessPlugin(); + log.info("返回域内的插件列表"); + return JsonResponse.newInstance().ok(businessInfoList); + } + + + @MustLogin + @ApiOperation(value = "导入时查找域内的业务列表", notes = "只查在线、启用且开放的业务,不包括零号业务") + @ApiImplicitParams({ + }) + @RequestMapping(value = "/import/query", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse> queryBusiness(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{ log.info("查找域内的业务列表"); - List businessInfoList = businessService.queryBusiness(); + List businessInfoList = businessService.queryBusiness(params.getToken()); log.info("返回域内的业务列表"); return JsonResponse.newInstance().ok(businessInfoList); } +// @ApiOperation(value = "查找引导页或广告页插件详情", notes = "") +// @ApiImplicitParams({ +// @ApiImplicitParam(name="type",value = "查询类型 0引导页 1广告页",required = true,paramType = "query") +// }) +// @RequestMapping(value = "/guide", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"}) +// public JsonResponse getGuidePlugin(@RequestParam() Byte type) throws Exception{ +// log.info("查找引导页或广告页插件详情:{}",type); +// PluginVo.PluginInfo pluginInfo = businessService.getGuidePlugin(type); +// log.info("返回插件详情"); +// return JsonResponse.newInstance().ok(pluginInfo); +// } + @ApiOperation(value = "查找引导页或广告页插件详情", notes = "") @ApiImplicitParams({ @ApiImplicitParam(name="type",value = "查询类型 0引导页 1广告页",required = true,paramType = "query") }) @RequestMapping(value = "/guide", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"}) - public JsonResponse getGuidePlugin(@RequestParam() Byte type) throws Exception{ + public JsonResponse getGuidePlugin(@RequestParam() Byte type) throws Exception{ log.info("查找引导页或广告页插件详情:{}",type); - PluginVo.PluginInfo pluginInfo = businessService.getGuidePlugin(type); + String urlList = businessService.getGuidePlugin(type); log.info("返回插件详情"); - return JsonResponse.newInstance().ok(pluginInfo); + return JsonResponse.newInstance().ok(urlList); } @ApiOperation(value = "根据appId获取accessToken", notes = "") diff --git a/ptos_tall/src/main/java/com/ccsens/ptos_tall/bean/vo/BusinessVo.java b/ptos_tall/src/main/java/com/ccsens/ptos_tall/bean/vo/BusinessVo.java index e9e71c2..c3096c2 100644 --- a/ptos_tall/src/main/java/com/ccsens/ptos_tall/bean/vo/BusinessVo.java +++ b/ptos_tall/src/main/java/com/ccsens/ptos_tall/bean/vo/BusinessVo.java @@ -4,16 +4,56 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * @author 逗 */ @Data public class BusinessVo { @Data + @ApiModel("导入wbs时查询业务列表") public static class BusinessInfo{ @ApiModelProperty("业务id") private Long id; @ApiModelProperty("业务名") private String name; + @ApiModelProperty("访问路径") + private String url; + @ApiModelProperty("MWBS列表") + private List mwbsList; + } + + @Data + public static class MwbsInfo{ + @ApiModelProperty("项目id") + private Long projectId; + @ApiModelProperty("项目名") + private String projectName; + } + + @Data + @ApiModel("缓存时查询业务列表") + public static class BusinessPlugin{ + @ApiModelProperty("业务id") + private Long id; + @ApiModelProperty("业务名") + private String name; + @ApiModelProperty("访问路径") + private String url; + @ApiModelProperty("访问路径") + private List pluginConfigs; + } + + @Data + @ApiModel("缓存时查询业务和插件的关联配置") + public static class BusinessPluginConfig{ + @ApiModelProperty("插件id") + private Long pluginId; + @ApiModelProperty("业务插件关联Id") + private Long businessPluginId; + @ApiModelProperty("配置信息") + private String config; + } } diff --git a/ptos_tall/src/main/java/com/ccsens/ptos_tall/bean/vo/PluginVo.java b/ptos_tall/src/main/java/com/ccsens/ptos_tall/bean/vo/PluginVo.java index 3f0f704..1e05889 100644 --- a/ptos_tall/src/main/java/com/ccsens/ptos_tall/bean/vo/PluginVo.java +++ b/ptos_tall/src/main/java/com/ccsens/ptos_tall/bean/vo/PluginVo.java @@ -10,17 +10,14 @@ import lombok.Data; @Data public class PluginVo { + @Data @ApiModel("插件信息") public static class PluginInfo { @ApiModelProperty("插件id") - private Long pluginId; - @ApiModelProperty("业务插件关联id") - private Long businessPluginId; + private Long id; @ApiModelProperty("插件名") private String name; - @ApiModelProperty("插件在业务下的code") - private String code; @ApiModelProperty("版本号") private String versions; @ApiModelProperty("html") @@ -33,4 +30,27 @@ public class PluginVo { private String config; } +// @Data +// @ApiModel("插件信息") +// public static class PluginInfo { +// @ApiModelProperty("插件id") +// private Long pluginId; +// @ApiModelProperty("业务插件关联id") +// private Long businessPluginId; +// @ApiModelProperty("插件名") +// private String name; +// @ApiModelProperty("插件在业务下的code") +// private String code; +// @ApiModelProperty("版本号") +// private String versions; +// @ApiModelProperty("html") +// private String html; +// @ApiModelProperty("css") +// private String css; +// @ApiModelProperty("js") +// private String js; +// @ApiModelProperty("config") +// private String config; +// } + } diff --git a/ptos_tall/src/main/java/com/ccsens/ptos_tall/persist/dao/BusinessPluginDao.java b/ptos_tall/src/main/java/com/ccsens/ptos_tall/persist/dao/BusinessPluginDao.java index b3dc30c..fa73912 100644 --- a/ptos_tall/src/main/java/com/ccsens/ptos_tall/persist/dao/BusinessPluginDao.java +++ b/ptos_tall/src/main/java/com/ccsens/ptos_tall/persist/dao/BusinessPluginDao.java @@ -10,16 +10,21 @@ import java.util.List; * @author 逗 */ public interface BusinessPluginDao { - /** - * 根据插件关联id查询插件详情 - * @param businessPluginId 插件关联id - * @return 返回插件详情 - */ - PluginVo.PluginInfo getPluginByBusinessPluginId(@Param("businessPluginId") Long businessPluginId); +// /** +// * 根据插件关联id查询插件详情 +// * @param businessPluginId 插件关联id +// * @return 返回插件详情 +// */ +// PluginVo.PluginInfo getPluginByBusinessPluginId(@Param("businessPluginId") Long businessPluginId); /** * 查询域下的业务列表 * @return 返回业务信息 */ List queryBusiness(@Param("lastAnswerTime")Long lastAnswerTime); + + List queryPluginAll(); + + + List queryBusinessPlugin(); } diff --git a/ptos_tall/src/main/java/com/ccsens/ptos_tall/service/BusinessService.java b/ptos_tall/src/main/java/com/ccsens/ptos_tall/service/BusinessService.java index 476cc5b..57a31aa 100644 --- a/ptos_tall/src/main/java/com/ccsens/ptos_tall/service/BusinessService.java +++ b/ptos_tall/src/main/java/com/ccsens/ptos_tall/service/BusinessService.java @@ -3,10 +3,14 @@ package com.ccsens.ptos_tall.service; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.ccsens.ptos_tall.bean.dto.BusinessDto; +import com.ccsens.ptos_tall.bean.dto.ProjectDto; +import com.ccsens.ptos_tall.bean.po.OpenBusiness; import com.ccsens.ptos_tall.bean.vo.BusinessVo; import com.ccsens.ptos_tall.bean.vo.PluginVo; +import com.ccsens.ptos_tall.bean.vo.ProjectVo; import com.ccsens.ptos_tall.persist.dao.BusinessPluginDao; import com.ccsens.ptos_tall.util.PtOsConstant; import com.ccsens.util.*; @@ -16,6 +20,7 @@ import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -30,6 +35,8 @@ public class BusinessService implements IBusinessService { @Override public String getAccessTokenByAppId(BusinessDto.BusinessToken params) { + //TODO 是否是正确的域(pt使用零号的appId也可以成功) + //生成accessToken Map payLoads = CollectionUtil.newHashMap(); payLoads.put("secret", params.getSecret()); @@ -42,7 +49,7 @@ public class BusinessService implements IBusinessService { } @Override - public PluginVo.PluginInfo getGuidePlugin(Byte type) { + public String getGuidePlugin(Byte type) { //调用零号业务的接口获取插件id(业务关联插件id) String url = PtOsConstant.ZERO_BUSINESS_URL + "/common/guide?type=" + type; String body; @@ -52,7 +59,7 @@ public class BusinessService implements IBusinessService { log.error("请求零号业务失败--" + url + e); return null; } - Long data = null; + String data = null; if(StrUtil.isNotBlank(body)){ JSONObject jsonObject = JSONObject.parseObject(body); log.info("接口返回:{}", jsonObject); @@ -63,17 +70,99 @@ public class BusinessService implements IBusinessService { } try { - data = jsonObject.getLong("data"); + data = jsonObject.getString("data"); }catch (Exception e){ log.error("返回值转换异常--" + e); } } - return businessPluginDao.getPluginByBusinessPluginId(data); + return data; } + + // @Override +// public PluginVo.PluginInfo getGuidePlugin(Byte type) { +// //调用零号业务的接口获取插件id(业务关联插件id) +// String url = PtOsConstant.ZERO_BUSINESS_URL + "/common/guide?type=" + type; +// String body; +// try{ +// body = HttpUtil.get(url); +// }catch (Exception e){ +// log.error("请求零号业务失败--" + url + e); +// return null; +// } +// Long data = null; +// if(StrUtil.isNotBlank(body)){ +// JSONObject jsonObject = JSONObject.parseObject(body); +// log.info("接口返回:{}", jsonObject); +// //请求正确返回则修改最后应答时间,否则无操作 +// Integer code = jsonObject.getInteger("code"); +// if (code == null || code != 200) { +// return null; +// } +// +// try { +// data = jsonObject.getLong("data"); +// }catch (Exception e){ +// log.error("返回值转换异常--" + e); +// } +// } +// return businessPluginDao.getPluginByBusinessPluginId(data); +// } + @Override - public List queryBusiness() { + public List queryBusiness(String token) { Long lastAnswerTime = System.currentTimeMillis() - PtOsConstant.LAST_ANSWER_TIME; - return businessPluginDao.queryBusiness(lastAnswerTime); + List businessInfoList = businessPluginDao.queryBusiness(lastAnswerTime); +// if(CollectionUtil.isNotEmpty(businessInfoList)){ +// for (BusinessVo.BusinessInfo business: businessInfoList) { +// String url = business.getUrl() + "/tall/project/query"; +// log.info("调用接口:{}--", url); +// String postBody = null; +// try{ +// Map map = new HashMap<>(); +// map.put(WebConstant.HEADER_KEY_TOKEN, token); +// ProjectDto.QueryProjectDto queryProjectDto = new ProjectDto.QueryProjectDto(); +// queryProjectDto.setStartTime(startTime); +// queryProjectDto.setEndTime(endTime); +// postBody = RestTemplateUtil.postBodySpecialHeader(url, queryProjectDto,map); +// }catch (Exception e){ +// log.error("请求业务项目列表--" + business.getName() + e); +// } +// if(StrUtil.isBlank(postBody)){ +// continue; +// } +// JSONObject jsonObject = JSONObject.parseObject(postBody); +// log.info("接口返回:{}", jsonObject); +// //请求正确返回则修改最后应答时间,否则无操作 +// Integer code = jsonObject.getInteger("code"); +// if (code == null || code != 200) { +// continue; +// } +// JSONArray data = jsonObject.getJSONArray("data"); +// if(CollectionUtil.isNotEmpty(data)){ +// for (Object object : data) { +// ProjectVo.ProjectInfo projectInfo; +// try { +// JSONObject object1 = (JSONObject) object; +// projectInfo = object1.toJavaObject(ProjectVo.ProjectInfo.class); +// projectInfoList.add(projectInfo); +// }catch (Exception e){ +// log.error("项目转换失败"+e); +// } +// } +// } +// } + return businessInfoList; + } + + + @Override + public List queryPluginAll() { + return businessPluginDao.queryPluginAll(); + } + + @Override + public List queryBusinessPlugin() { + return businessPluginDao.queryBusinessPlugin(); } } diff --git a/ptos_tall/src/main/java/com/ccsens/ptos_tall/service/IBusinessService.java b/ptos_tall/src/main/java/com/ccsens/ptos_tall/service/IBusinessService.java index f294f34..49b94a7 100644 --- a/ptos_tall/src/main/java/com/ccsens/ptos_tall/service/IBusinessService.java +++ b/ptos_tall/src/main/java/com/ccsens/ptos_tall/service/IBusinessService.java @@ -14,16 +14,35 @@ public interface IBusinessService { */ String getAccessTokenByAppId(BusinessDto.BusinessToken params); +// /** +// * 查号零号业务内的引导页插件 +// * @param type 0引导页 1广告页 +// * @return 返回插件详情 +// */ +// PluginVo.PluginInfo getGuidePlugin(Byte type); + + /** + * 查找域内在线启用且开放的业务列表(不包括零号业务) + * @return 返回业务列表 + */ + List queryBusiness(String token); + /** * 查号零号业务内的引导页插件 * @param type 0引导页 1广告页 * @return 返回插件详情 */ - PluginVo.PluginInfo getGuidePlugin(Byte type); + String getGuidePlugin(Byte type); /** - * 查找域内在线启用且开放的业务列表(不包括零号业务) - * @return 返回业务列表 + * 查找域内的所有插件信息 + * @return + */ + List queryPluginAll(); + + /** + * 缓存时查找业务和业务插件配置信息 + * @return */ - List queryBusiness(); + List queryBusinessPlugin(); } diff --git a/ptos_tall/src/main/java/com/ccsens/ptos_tall/service/ProjectService.java b/ptos_tall/src/main/java/com/ccsens/ptos_tall/service/ProjectService.java index 1570490..e91dc88 100644 --- a/ptos_tall/src/main/java/com/ccsens/ptos_tall/service/ProjectService.java +++ b/ptos_tall/src/main/java/com/ccsens/ptos_tall/service/ProjectService.java @@ -53,40 +53,43 @@ public class ProjectService implements IProjectService { queryProjectByPhone.setStartTime(param.getStartTime()); queryProjectByPhone.setEndTime(param.getEndTime()); queryProjectByPhone.setPhone(new ArrayList<>(Collections.singleton(phone))); - JsonResponse> response = diplomatistFeignClient.queryDomainProject(queryProjectByPhone); - - if (response != null && response.getCode() == 200) { - if(CollectionUtil.isNotEmpty(response.getData())){ - response.getData().forEach(project -> { - ProjectVo.ProjectInfo projectInfo = new ProjectVo.ProjectInfo(); - BeanUtil.copyProperties(project,projectInfo); - projectInfoList.add(projectInfo); - }); + try { + JsonResponse> response = diplomatistFeignClient.queryDomainProject(queryProjectByPhone); + + if (response != null && response.getCode() == 200) { + if(CollectionUtil.isNotEmpty(response.getData())){ + response.getData().forEach(project -> { + ProjectVo.ProjectInfo projectInfo = new ProjectVo.ProjectInfo(); + BeanUtil.copyProperties(project,projectInfo); + projectInfoList.add(projectInfo); + }); + } } + }catch (Exception e){ + log.error("查询其他域项目信息异常"+e); } + queryBusinessProject(token, projectInfoList,param.getStartTime(),param.getEndTime()); //TODO 排序 + //添加测试数据 +// projectInfoList.add(new ProjectVo.ProjectInfo(1L,"测试项目1",1641799829000L,1644718446001L,"http://101.201.226.163/gateway/ptos/debug","dh","tall")); +// projectInfoList.add(new ProjectVo.ProjectInfo(2L,"测试项目2",1641799829001L,1644718446002L,"http://101.201.226.163/gateway/ptos/debug","dh","tall")); +// projectInfoList.add(new ProjectVo.ProjectInfo(3L,"测试项目3",1641799829002L,1644718446003L,"http://101.201.226.163/gateway/ptos/debug","dh","tall")); +// projectInfoList.add(new ProjectVo.ProjectInfo(4L,"测试项目4",1641799829003L,1644718446004L,"http://101.201.226.163/gateway/ptos/debug","dh","tall")); +// +// ProjectVo.ProjectInfo projectInfo = new ProjectVo.ProjectInfo(4L,"测试项目4",1641799829003L,1644718446004L,"http://101.201.226.163/gateway/ptos/debug","dh","tall"); +// List p1 = new ArrayList<>(); +// p1.add(new ProjectVo.ProjectInfo(5L,"子项目1",1641799829003L,1644718446004L,"http://101.201.226.163/gateway/ptos/debug","dh","tall")); +// p1.add(new ProjectVo.ProjectInfo(6L,"子项目2",1641799829003L,1644718446004L,"http://101.201.226.163/gateway/ptos/debug","dh","tall")); +// projectInfo.setSonProjectList(p1); +// projectInfoList.add(projectInfo); - //TODO 添加测试数据 - - projectInfoList.add(new ProjectVo.ProjectInfo(1L,"测试项目1",1641799829000L,1644718446001L,"http://101.201.226.163/gateway/ptos/debug","dh","tall")); - projectInfoList.add(new ProjectVo.ProjectInfo(2L,"测试项目2",1641799829001L,1644718446002L,"http://101.201.226.163/gateway/ptos/debug","dh","tall")); - projectInfoList.add(new ProjectVo.ProjectInfo(3L,"测试项目3",1641799829002L,1644718446003L,"http://101.201.226.163/gateway/ptos/debug","dh","tall")); - projectInfoList.add(new ProjectVo.ProjectInfo(4L,"测试项目4",1641799829003L,1644718446004L,"http://101.201.226.163/gateway/ptos/debug","dh","tall")); - - ProjectVo.ProjectInfo projectInfo = new ProjectVo.ProjectInfo(4L,"测试项目4",1641799829003L,1644718446004L,"http://101.201.226.163/gateway/ptos/debug","dh","tall"); - List p1 = new ArrayList<>(); - p1.add(new ProjectVo.ProjectInfo(5L,"子项目1",1641799829003L,1644718446004L,"http://101.201.226.163/gateway/ptos/debug","dh","tall")); - p1.add(new ProjectVo.ProjectInfo(6L,"子项目2",1641799829003L,1644718446004L,"http://101.201.226.163/gateway/ptos/debug","dh","tall")); - projectInfo.setSonProjectList(p1); - - projectInfoList.add(projectInfo); return projectInfoList; } /** - * 查找用户在域下所有业务下的项目 + * 查找用户在本域下所有业务下的项目 * @param token token * @param projectInfoList 项目列表 */ diff --git a/ptos_tall/src/main/java/com/ccsens/ptos_tall/util/PtOsConstant.java b/ptos_tall/src/main/java/com/ccsens/ptos_tall/util/PtOsConstant.java index 721d536..4922a36 100644 --- a/ptos_tall/src/main/java/com/ccsens/ptos_tall/util/PtOsConstant.java +++ b/ptos_tall/src/main/java/com/ccsens/ptos_tall/util/PtOsConstant.java @@ -9,7 +9,7 @@ import java.util.Map; public class PtOsConstant { /**零号业务路径*/ - public static final String ZERO_BUSINESS_URL = "http://127.0.0.1:7310"; + public static final String ZERO_BUSINESS_URL = "http://101.201.226.163:7310"; /**业务离线时间*/ public static final Long LAST_ANSWER_TIME = 21 * 60 * 1000L; diff --git a/ptos_tall/src/main/resources/mapper_dao/BusinessPluginDao.xml b/ptos_tall/src/main/resources/mapper_dao/BusinessPluginDao.xml index 868aa3c..0bfc612 100644 --- a/ptos_tall/src/main/resources/mapper_dao/BusinessPluginDao.xml +++ b/ptos_tall/src/main/resources/mapper_dao/BusinessPluginDao.xml @@ -3,38 +3,83 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tall_sdk/src/main/java/com/ccsensptos/tallsdk/api/ProjectController.java b/tall_sdk/src/main/java/com/ccsensptos/tallsdk/api/ProjectController.java index c157e44..975ac7c 100644 --- a/tall_sdk/src/main/java/com/ccsensptos/tallsdk/api/ProjectController.java +++ b/tall_sdk/src/main/java/com/ccsensptos/tallsdk/api/ProjectController.java @@ -1,6 +1,7 @@ package com.ccsensptos.tallsdk.api; import com.ccsens.util.WebConstant; +import com.ccsens.util.bean.dto.QueryDto; import com.ccsensptos.tallsdk.bean.dto.TallProjectDto; import com.ccsensptos.tallsdk.service.ITallService; import com.ccsensptos.tallsdk.bean.vo.TallProjectVo; @@ -44,11 +45,18 @@ public class ProjectController { @ApiOperation(value = "导入Wbs", notes = "") @RequestMapping(value = "/wbs", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse queryProjectByUser(HttpServletRequest request, @ApiParam @Validated @RequestBody MultipartFile params) throws Exception{ + public JsonResponse importWbs(HttpServletRequest request, QueryDto params) throws Exception{ log.info("导入Wbs:{}",params); - TallProjectVo.ProjectInfo projectInfoList = tallService.importWbs(request.getHeader(WebConstant.HEADER_KEY_TOKEN),params); + TallProjectVo.ProjectInfo projectInfoList = tallService.importWbs(request.getHeader(WebConstant.HEADER_KEY_TOKEN),params.getParam()); log.info("导入Wbs"); return JsonResponse.newInstance().ok(projectInfoList); } + @ApiOperation(value = "根据id查询项目信息", notes = "根据id查询项目信息") + @RequestMapping(value = "/findProjectById", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse findProjectById(HttpServletRequest request,@ApiParam @Validated @RequestBody QueryDto params) throws Exception{ + TallProjectVo.ProjectInfo projectById = tallService.findProjectById(request.getHeader(WebConstant.HEADER_KEY_TOKEN),params.getParam()); + return JsonResponse.newInstance().ok(projectById); + } + } diff --git a/tall_sdk/src/main/java/com/ccsensptos/tallsdk/api/RoleController.java b/tall_sdk/src/main/java/com/ccsensptos/tallsdk/api/RoleController.java index d22cfaf..797a1a2 100644 --- a/tall_sdk/src/main/java/com/ccsensptos/tallsdk/api/RoleController.java +++ b/tall_sdk/src/main/java/com/ccsensptos/tallsdk/api/RoleController.java @@ -1,6 +1,7 @@ package com.ccsensptos.tallsdk.api; import com.ccsens.util.WebConstant; +import com.ccsens.util.bean.dto.QueryDto; import com.ccsensptos.tallsdk.bean.dto.TallRoleDto; import com.ccsensptos.tallsdk.bean.vo.TallRoleVo; import com.ccsensptos.tallsdk.service.ITallService; @@ -33,9 +34,9 @@ public class RoleController { @ApiOperation(value = "根据项目id查找角色", notes = "") @RequestMapping(value = "/show", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse queryByProjectId(HttpServletRequest request, @ApiParam @Validated @RequestBody TallRoleDto.QueryRoleById params) { + public JsonResponse queryByProjectId(HttpServletRequest request, @ApiParam @Validated @RequestBody QueryDto params) { log.info("根据项目id查找角色{}",params); - TallRoleVo.QueryRole queryRole = tallService.queryShowRole(request.getHeader(WebConstant.HEADER_KEY_TOKEN),params); + TallRoleVo.QueryRole queryRole = tallService.queryShowRole(request.getHeader(WebConstant.HEADER_KEY_TOKEN),params.getParam()); log.info("项目id查找角色列表{}",queryRole); return JsonResponse.newInstance().ok(queryRole); } diff --git a/tall_sdk/src/main/java/com/ccsensptos/tallsdk/api/TaskController.java b/tall_sdk/src/main/java/com/ccsensptos/tallsdk/api/TaskController.java index f11761f..758ed23 100644 --- a/tall_sdk/src/main/java/com/ccsensptos/tallsdk/api/TaskController.java +++ b/tall_sdk/src/main/java/com/ccsensptos/tallsdk/api/TaskController.java @@ -1,6 +1,7 @@ package com.ccsensptos.tallsdk.api; import com.ccsens.util.WebConstant; +import com.ccsens.util.bean.dto.QueryDto; import com.ccsensptos.tallsdk.service.ITallService; import com.ccsensptos.tallsdk.bean.dto.TallTaskDto; import com.ccsensptos.tallsdk.bean.vo.TallTaskVo; @@ -34,24 +35,24 @@ public class TaskController { @ApiOperation(value = "查找永久日常任务", notes = "") @RequestMapping(value = "/permanent", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse> queryPermanentGlobalTask(HttpServletRequest request, @ApiParam @Validated @RequestBody TallTaskDto.QueryPermanentGlobalTask params) { - List queryTasks = tallService.queryPermanentGlobalTask(request.getHeader(WebConstant.HEADER_KEY_TOKEN),params); + public JsonResponse> queryPermanentGlobalTask(HttpServletRequest request, @ApiParam @Validated @RequestBody QueryDto params) { + List queryTasks = tallService.queryPermanentGlobalTask(request.getHeader(WebConstant.HEADER_KEY_TOKEN),params.getParam()); return JsonResponse.newInstance().ok(queryTasks); } @ApiOperation(value = "查找带时间的日常任务", notes = "") @RequestMapping(value = "/global", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse> queryGlobalTask(HttpServletRequest request, @ApiParam @Validated @RequestBody TallTaskDto.QueryGlobalTask params) { - List queryTasks = tallService.queryGlobalTask(request.getHeader(WebConstant.HEADER_KEY_TOKEN),params); + public JsonResponse> queryGlobalTask(HttpServletRequest request, @ApiParam @Validated @RequestBody QueryDto params) { + List queryTasks = tallService.queryGlobalTask(request.getHeader(WebConstant.HEADER_KEY_TOKEN),params.getParam()); return JsonResponse.newInstance().ok(queryTasks); } @ApiOperation(value = "查找定期任务", notes = "") @RequestMapping(value = "/regular", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse> queryRegularTask(HttpServletRequest request, @ApiParam @Validated @RequestBody TallTaskDto.QueryRegularTask params) { - List queryTasks = tallService.queryRegularTask(request.getHeader(WebConstant.HEADER_KEY_TOKEN),params); + public JsonResponse> queryRegularTask(HttpServletRequest request, @ApiParam @Validated @RequestBody QueryDto params) { + List queryTasks = tallService.queryRegularTask(request.getHeader(WebConstant.HEADER_KEY_TOKEN),params.getParam()); return JsonResponse.newInstance().ok(queryTasks); } } diff --git a/tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/dto/TallPluginDto.java b/tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/dto/TallPluginDto.java new file mode 100644 index 0000000..882d33b --- /dev/null +++ b/tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/dto/TallPluginDto.java @@ -0,0 +1,29 @@ +package com.ccsensptos.tallsdk.bean.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author 逗 + */ +@Data +public class TallPluginDto { + @Data + @ApiModel("通过业务code和插件名查找插件信息") + public static class BusinessPluginByName { + @ApiModelProperty("业务插件关联id") + private String code; + @ApiModelProperty("业务插件关联id") + private String pluginName; + + public BusinessPluginByName(String code, String pluginName) { + this.code = code; + this.pluginName = pluginName; + } + + public BusinessPluginByName() { + } + } + +} diff --git a/tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/dto/TallProjectDto.java b/tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/dto/TallProjectDto.java index 6ef751e..6aa78c5 100644 --- a/tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/dto/TallProjectDto.java +++ b/tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/dto/TallProjectDto.java @@ -12,6 +12,15 @@ import javax.validation.constraints.NotNull; @Data public class TallProjectDto { + @Data + @ApiModel("根据id查找项目信息") + public static class ProjectById { + @NotNull(message = "请选择项目") + @ApiModelProperty("项目id") + private Long projectId; + private Long userId; + } + @Data @ApiModel("用户查询可见的项目") public static class QueryProjectDto{ diff --git a/tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/vo/TallPluginVo.java b/tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/vo/TallPluginVo.java new file mode 100644 index 0000000..8433230 --- /dev/null +++ b/tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/vo/TallPluginVo.java @@ -0,0 +1,25 @@ +package com.ccsensptos.tallsdk.bean.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author 逗 + */ +@Data +public class TallPluginVo { + + @Data + @ApiModel("查找插件信息,通过服务code和插件名") + public static class BusinessPluginInfo{ + @ApiModelProperty("插件id") + private Long pluginId; + @ApiModelProperty("业务插件关联id") + private Long businessPluginId; + @ApiModelProperty("插件在业务下的唯一code") + private String code; + @ApiModelProperty("是否是内置组件 0否 1是") + private Byte inner; + } +} diff --git a/tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/vo/TallTaskVo.java b/tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/vo/TallTaskVo.java index a185b84..59ce0fe 100644 --- a/tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/vo/TallTaskVo.java +++ b/tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/vo/TallTaskVo.java @@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.validation.constraints.NotBlank; import java.util.List; @Data @@ -82,6 +83,12 @@ public class TallTaskVo { private Long pluginTaskId; @ApiModelProperty("插件id") private Long pluginId; + @ApiModelProperty("插件和服务关联的id") + private Long businessPluginId; + @ApiModelProperty("插件code") + private String pluginCode; + @ApiModelProperty("是否是内置组件 0否 1是") + private Byte inner; @ApiModelProperty("参数") private String param; @ApiModelProperty("行") diff --git a/tall_sdk/src/main/java/com/ccsensptos/tallsdk/service/ITallService.java b/tall_sdk/src/main/java/com/ccsensptos/tallsdk/service/ITallService.java index e8c7e24..ec39764 100644 --- a/tall_sdk/src/main/java/com/ccsensptos/tallsdk/service/ITallService.java +++ b/tall_sdk/src/main/java/com/ccsensptos/tallsdk/service/ITallService.java @@ -55,4 +55,9 @@ public interface ITallService { * @return 返回项目信息 */ TallProjectVo.ProjectInfo importWbs(String token, MultipartFile params); + + /** + * 根据id查询项目信息 + */ + TallProjectVo.ProjectInfo findProjectById(String header, TallProjectDto.ProjectById params); } diff --git a/tall_sdk/src/main/java/com/ccsensptos/tallsdk/util/Constant.java b/tall_sdk/src/main/java/com/ccsensptos/tallsdk/util/Constant.java index f801b22..ed1d02b 100644 --- a/tall_sdk/src/main/java/com/ccsensptos/tallsdk/util/Constant.java +++ b/tall_sdk/src/main/java/com/ccsensptos/tallsdk/util/Constant.java @@ -5,12 +5,16 @@ package com.ccsensptos.tallsdk.util; */ public class Constant { - /**域内的tall请求前缀*/ - public static final String TALL_URL = "http://101.201.226.163/gateway/ptostall/"; - /**请求用户信息的接口路径*/ - public static final String TALL_USER_TOKEN = "users/businessToken"; - /**获取accessToken*/ - public static final String TALL_GET_ACCESS_TOKEN = "business/accessToken"; + /**域内gateway请求前缀*/ + public static final String GATEWAY_URL = "http://101.201.226.163/gateway/"; + + /**tall-请求的用户信息的接口路径*/ + public static final String TALL_USER_TOKEN = "ptostall/users/businessToken"; + /**tall-获取accessToken*/ + public static final String TALL_GET_ACCESS_TOKEN = "ptostall/business/accessToken"; + /**开放平台-获取插件信息*/ + public static final String OPEN_GET_PLUGIN = "opt/business/businessPluginByName"; + /**请求头--accessToken*/ public static final String ACCESS_TOKEN = "accessToken"; diff --git a/tall_sdk/src/main/java/com/ccsensptos/tallsdk/util/PluginUtil.java b/tall_sdk/src/main/java/com/ccsensptos/tallsdk/util/PluginUtil.java new file mode 100644 index 0000000..2d37f05 --- /dev/null +++ b/tall_sdk/src/main/java/com/ccsensptos/tallsdk/util/PluginUtil.java @@ -0,0 +1,61 @@ +package com.ccsensptos.tallsdk.util; + +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.ccsens.util.RestTemplateUtil; +import com.ccsensptos.tallsdk.bean.dto.TallPluginDto; +import com.ccsensptos.tallsdk.bean.dto.TallTokenDto; +import com.ccsensptos.tallsdk.bean.vo.TallPluginVo; +import com.ccsensptos.tallsdk.bean.vo.TallTokenVo; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.Map; + +@Component +@Slf4j +public class PluginUtil { + + /** + * 通过业务code和插件名获取插件信息 + * @return 返回accessToken + */ + public static TallPluginVo.BusinessPluginInfo getPluginByCodeAndName(String businessCode,String pluginName){ + TallPluginVo.BusinessPluginInfo businessPluginInfo; + TallPluginDto.BusinessPluginByName businessPluginByName = new TallPluginDto.BusinessPluginByName(businessCode,pluginName); + + //发送请求 + String url = Constant.GATEWAY_URL + Constant.OPEN_GET_PLUGIN; + log.info("调用接口:{}--{}", url, businessPluginByName); + String postBody = null; + try{ + postBody = RestTemplateUtil.postBody(url, businessPluginByName); + }catch (Exception e){ + log.error("请求开放品台失败--" + e); + } + if(StrUtil.isBlank(postBody)){ + return null; + } + JSONObject jsonObject = JSONObject.parseObject(postBody); + log.info("接口返回:{}", jsonObject); + //请求正确返回则,否则无操作 + Integer code = jsonObject.getInteger("code"); + if (code == null || code != 200) { + return null; + } + String data = jsonObject.getString("data"); + if(ObjectUtil.isNull(data)){ + return null; + } + try { + businessPluginInfo = JSON.parseObject(data, TallPluginVo.BusinessPluginInfo.class); + }catch (Exception e){ + log.info("返回值转换失败"); + return null; + } + return businessPluginInfo; + } +} diff --git a/tall_sdk/src/main/java/com/ccsensptos/tallsdk/util/TokenUtil.java b/tall_sdk/src/main/java/com/ccsensptos/tallsdk/util/TokenUtil.java index 1cb2978..293bb5c 100644 --- a/tall_sdk/src/main/java/com/ccsensptos/tallsdk/util/TokenUtil.java +++ b/tall_sdk/src/main/java/com/ccsensptos/tallsdk/util/TokenUtil.java @@ -73,8 +73,8 @@ public class TokenUtil { } } //map内查不到,则去请求tall获取新的accessToken - String url = "http://127.0.0.1:7290/" + Constant.TALL_GET_ACCESS_TOKEN; -// String url = Constant.TALL_URL + Constant.TALL_GET_ACCESS_TOKEN; +// String url = "http://127.0.0.1:7290/" + Constant.TALL_GET_ACCESS_TOKEN; + String url = Constant.GATEWAY_URL + Constant.TALL_GET_ACCESS_TOKEN; TallTokenDto.GetAccessToken get = new TallTokenDto.GetAccessToken(appId,secret); log.info("调用接口:{}--{}", url, get); String postBody = null; @@ -119,8 +119,8 @@ public class TokenUtil { //调用tall的接口生成查询项目信息 //发送请求 -// String url = Constant.TALL_URL + Constant.TALL_USER_TOKEN; - String url = "http://127.0.0.1:7290/" + Constant.TALL_USER_TOKEN; + String url = Constant.GATEWAY_URL + Constant.TALL_USER_TOKEN; +// String url = "http://127.0.0.1:7290/" + Constant.TALL_USER_TOKEN; log.info("调用接口:{}--{}", url, getUserByToken); String postBody = null; try{ diff --git a/util/src/main/java/com/ccsens/util/baidu/BaiDuUtil.java b/util/src/main/java/com/ccsens/util/baidu/BaiDuUtil.java index 3ba89e9..64cd7b5 100644 --- a/util/src/main/java/com/ccsens/util/baidu/BaiDuUtil.java +++ b/util/src/main/java/com/ccsens/util/baidu/BaiDuUtil.java @@ -31,6 +31,7 @@ public class BaiDuUtil { private static final String GENERAL_BASIC_URL = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token={}"; /**通用文字识别(高精度版)*/ private static final String ACCURATE_BASIC_URL = "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic?access_token={}"; + private static final String VAT_INVOICE = "https://aip.baidubce.com/rest/2.0/ocr/v1/vat_invoice?access_token={}"; @PostConstruct public void init(){ @@ -112,6 +113,37 @@ public class BaiDuUtil { return getGeneralBasic(appKey, secretKey, basic, GENERAL_BASIC_URL); } + /** + * 调用百度增值税发票识别 + * @param appKey appKey + * @param secretKey secretKey + * @param basic 图像 + * @return 识别结果 + */ + public static BaiDuVo.BillBasic billBasic(String appKey, String secretKey, BaiDuDto.GeneralBasic basic) { + return getBillBasic(appKey, secretKey, basic, VAT_INVOICE); + } + /** + * 增值税发票识别 + * @param appKey appKey + * @param secretKey secretKey + * @param basic 图像 + * @param accurateBasicUrl 路径 + * @return 识别结果 + */ + private static BaiDuVo.BillBasic getBillBasic(String appKey, String secretKey, BaiDuDto.GeneralBasic basic, String accurateBasicUrl) { + String token = getToken(appKey, secretKey); + String url = StrUtil.format(accurateBasicUrl, token); + String result = RestTemplateUtil.postUrlEncode(url, basic); + log.info("百度orc调用{}的结果是:{}", url, result); + if (result.contains(Code.GENERAL_BASIC_ERROR)) { + CodeEnum thirdError = CodeEnum.THIRD_ERROR; + thirdError.setMsg(result); + throw new BaseException(thirdError); + } + return JSONObject.parseObject(result, BaiDuVo.BillBasic.class); + } + private static class Code{ private final static String ERROR = "error"; private final static String GENERAL_BASIC_ERROR = "error_code"; diff --git a/util/src/main/java/com/ccsens/util/baidu/BaiDuVo.java b/util/src/main/java/com/ccsens/util/baidu/BaiDuVo.java index 4c722df..93e55aa 100644 --- a/util/src/main/java/com/ccsens/util/baidu/BaiDuVo.java +++ b/util/src/main/java/com/ccsens/util/baidu/BaiDuVo.java @@ -1,7 +1,6 @@ package com.ccsens.util.baidu; import com.alibaba.fastjson.annotation.JSONField; -import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import lombok.Data; @@ -30,4 +29,24 @@ public class BaiDuVo { public static class GeneralWord{ private String words; } + + @ApiModel("增值税发票识别(标准版)") + @Data + public static class BillBasic{ + @JSONField(name="log_id") + private String logId; + @JSONField(name="words_result") + private List wordsResult; + @JSONField(name="words_result_num") + private int wordsResultNum; + } + @Data + @ApiModel("发票识别-结果") + public static class BillInfo{ + private String invoiceCode; + private String invoiceNum; + private String totalAmount; + private String totalTax; + private String invoiceDate; + } }