Browse Source

20220126优化

master
zy_Java 4 years ago
parent
commit
69718af918
  1. 22
      ptos_open/src/main/java/com/ccsens/ptos_open/api/BusinessController.java
  2. 9
      ptos_open/src/main/java/com/ccsens/ptos_open/bean/dto/BusinessDto.java
  3. 15
      ptos_open/src/main/java/com/ccsens/ptos_open/bean/vo/BusinessVo.java
  4. 15
      ptos_open/src/main/java/com/ccsens/ptos_open/persist/dao/BusinessDao.java
  5. 2
      ptos_open/src/main/java/com/ccsens/ptos_open/persist/dao/PluginDao.java
  6. 10
      ptos_open/src/main/java/com/ccsens/ptos_open/service/BusinessService.java
  7. 13
      ptos_open/src/main/java/com/ccsens/ptos_open/service/IBusinessService.java
  8. 2
      ptos_open/src/main/java/com/ccsens/ptos_open/service/PluginService.java
  9. 40
      ptos_open/src/main/resources/mapper_dao/BusinessDao.xml
  10. 52
      ptos_tall/src/main/java/com/ccsens/ptos_tall/api/BusinessController.java
  11. 40
      ptos_tall/src/main/java/com/ccsens/ptos_tall/bean/vo/BusinessVo.java
  12. 30
      ptos_tall/src/main/java/com/ccsens/ptos_tall/bean/vo/PluginVo.java
  13. 17
      ptos_tall/src/main/java/com/ccsens/ptos_tall/persist/dao/BusinessPluginDao.java
  14. 101
      ptos_tall/src/main/java/com/ccsens/ptos_tall/service/BusinessService.java
  15. 27
      ptos_tall/src/main/java/com/ccsens/ptos_tall/service/IBusinessService.java
  16. 51
      ptos_tall/src/main/java/com/ccsens/ptos_tall/service/ProjectService.java
  17. 2
      ptos_tall/src/main/java/com/ccsens/ptos_tall/util/PtOsConstant.java
  18. 89
      ptos_tall/src/main/resources/mapper_dao/BusinessPluginDao.xml
  19. 12
      tall_sdk/src/main/java/com/ccsensptos/tallsdk/api/ProjectController.java
  20. 5
      tall_sdk/src/main/java/com/ccsensptos/tallsdk/api/RoleController.java
  21. 13
      tall_sdk/src/main/java/com/ccsensptos/tallsdk/api/TaskController.java
  22. 29
      tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/dto/TallPluginDto.java
  23. 9
      tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/dto/TallProjectDto.java
  24. 25
      tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/vo/TallPluginVo.java
  25. 7
      tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/vo/TallTaskVo.java
  26. 5
      tall_sdk/src/main/java/com/ccsensptos/tallsdk/service/ITallService.java
  27. 16
      tall_sdk/src/main/java/com/ccsensptos/tallsdk/util/Constant.java
  28. 61
      tall_sdk/src/main/java/com/ccsensptos/tallsdk/util/PluginUtil.java
  29. 8
      tall_sdk/src/main/java/com/ccsensptos/tallsdk/util/TokenUtil.java
  30. 32
      util/src/main/java/com/ccsens/util/baidu/BaiDuUtil.java
  31. 21
      util/src/main/java/com/ccsens/util/baidu/BaiDuVo.java

22
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<BusinessVo.BusinessPluginInfo> 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<BusinessVo.BusinessPlugin> businessPluginById(@ApiParam @Validated @RequestBody QueryDto<BusinessDto.BusinessPlugin> params) throws Exception{
log.info("通过插件业务关联id查找插件信息:{}",params);
BusinessVo.BusinessPlugin businessPlugin = businessService.businessPluginById(params.getParam());
log.info("返回插件信息");
return JsonResponse.newInstance().ok(businessPlugin);
}
}

9
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;
}
}

15
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;
}
}

15
ptos_open/src/main/java/com/ccsens/ptos_open/persist/dao/BusinessDao.java

@ -37,4 +37,19 @@ public interface BusinessDao extends OpenBusinessMapper {
* @return 返回业务下的插件信息
*/
List<BusinessVo.BusinessPlugin> 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);
}

2
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<PluginVo.PluginInfo> queryPluginList(@Param("name") String name, @Param("depth") Byte depth, @Param("userId") Long userId);
List<PluginVo.PluginInfo> queryPluginList(@Param("name") String name, @Param("depth") Byte depth, @Param("userId") Long userId,@Param("mine") Byte mine);
/**
* 验证插件是否存在

10
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());
}
}

13
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);
}

2
ptos_open/src/main/java/com/ccsens/ptos_open/service/PluginService.java

@ -45,7 +45,7 @@ public class PluginService implements IPluginService {
@Override
public PageInfo<PluginVo.PluginInfo> queryPlugin(PluginDto.QueryByPage param, Long userId) {
PageHelper.startPage(param.getPageNum(), param.getPageSize());
List<PluginVo.PluginInfo> pluginInfos = pluginDao.queryPluginList(param.getName(), param.getDepth(), userId);
List<PluginVo.PluginInfo> pluginInfos = pluginDao.queryPluginList(param.getName(), param.getDepth(), userId,param.getMine());
return new PageInfo<>(pluginInfos);
}

40
ptos_open/src/main/resources/mapper_dao/BusinessDao.xml

@ -65,4 +65,44 @@
and bp.rec_status = 0
and p.rec_status = 0
</select>
<select id="byBusinessCodeAndPluginName"
resultType="com.ccsens.ptos_open.bean.vo.BusinessVo$BusinessPluginInfo">
SELECT
p.plugin_id as pluginId,
p.id as businessPluginId,
p.`code`,
op.`inner`
FROM
t_open_business b,
t_open_business_plugin p,
t_open_plugin op
WHERE
b.id = p.business_id
and p.plugin_id = op.id
and b.`code` = #{code}
and p.`code` = #{pluginName}
and b.rec_status = 0
and p.rec_status = 0
and op.rec_status = 0
limit 1
</select>
<select id="businessPluginById" resultType="com.ccsens.ptos_open.bean.vo.BusinessVo$BusinessPlugin">
SELECT
bp.id as businessPluginId,
bp.`code`,
p.`name`,
if(bp.config = '' or bp.config = null,p.config,bp.config) as config,
bp.debug,
p.id as pluginId,
p.html,
p.css,
p.js
FROM
t_open_business_plugin bp
LEFT JOIN t_open_plugin p on bp.plugin_id = p.id
WHERE
bp.id = #{businessPluginId}
and bp.rec_status = 0
and p.rec_status = 0
</select>
</mapper>

52
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<List<BusinessVo.BusinessInfo>> queryBusiness() throws Exception{
@RequestMapping(value = "/query/plugin", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<PluginVo.PluginInfo>> queryPluginAll() throws Exception{
log.info("缓存时查找域内插件类表");
List<PluginVo.PluginInfo> 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<List<BusinessVo.BusinessPlugin>> queryBusinessPlugin() throws Exception{
log.info("缓存时查找域内插件类表");
List<BusinessVo.BusinessPlugin> 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<List<BusinessVo.BusinessInfo>> queryBusiness(@ApiParam @Validated @RequestBody QueryDto<Object> params) throws Exception{
log.info("查找域内的业务列表");
List<BusinessVo.BusinessInfo> businessInfoList = businessService.queryBusiness();
List<BusinessVo.BusinessInfo> 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<PluginVo.PluginInfo> 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<PluginVo.PluginInfo> getGuidePlugin(@RequestParam() Byte type) throws Exception{
public JsonResponse<String> 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 = "")

40
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<MwbsInfo> 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<BusinessPluginConfig> pluginConfigs;
}
@Data
@ApiModel("缓存时查询业务和插件的关联配置")
public static class BusinessPluginConfig{
@ApiModelProperty("插件id")
private Long pluginId;
@ApiModelProperty("业务插件关联Id")
private Long businessPluginId;
@ApiModelProperty("配置信息")
private String config;
}
}

30
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;
// }
}

17
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<BusinessVo.BusinessInfo> queryBusiness(@Param("lastAnswerTime")Long lastAnswerTime);
List<PluginVo.PluginInfo> queryPluginAll();
List<BusinessVo.BusinessPlugin> queryBusinessPlugin();
}

101
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<String, Object> 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<BusinessVo.BusinessInfo> queryBusiness() {
public List<BusinessVo.BusinessInfo> queryBusiness(String token) {
Long lastAnswerTime = System.currentTimeMillis() - PtOsConstant.LAST_ANSWER_TIME;
return businessPluginDao.queryBusiness(lastAnswerTime);
List<BusinessVo.BusinessInfo> 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<String,String> 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<PluginVo.PluginInfo> queryPluginAll() {
return businessPluginDao.queryPluginAll();
}
@Override
public List<BusinessVo.BusinessPlugin> queryBusinessPlugin() {
return businessPluginDao.queryBusinessPlugin();
}
}

27
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<BusinessVo.BusinessInfo> queryBusiness(String token);
/**
* 查号零号业务内的引导页插件
* @param type 0引导页 1广告页
* @return 返回插件详情
*/
PluginVo.PluginInfo getGuidePlugin(Byte type);
String getGuidePlugin(Byte type);
/**
* 查找域内在线启用且开放的业务列表不包括零号业务
* @return 返回业务列表
* 查找域内的所有插件信息
* @return
*/
List<PluginVo.PluginInfo> queryPluginAll();
/**
* 缓存时查找业务和业务插件配置信息
* @return
*/
List<BusinessVo.BusinessInfo> queryBusiness();
List<BusinessVo.BusinessPlugin> queryBusinessPlugin();
}

51
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<List<FeignProjectVo.ProjectInfo>> 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<List<FeignProjectVo.ProjectInfo>> 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<ProjectVo.ProjectInfo> 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<ProjectVo.ProjectInfo> 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 项目列表
*/

2
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;

89
ptos_tall/src/main/resources/mapper_dao/BusinessPluginDao.xml

@ -3,38 +3,83 @@
<mapper namespace="com.ccsens.ptos_tall.persist.dao.BusinessPluginDao">
<select id="getPluginByBusinessPluginId" resultType="com.ccsens.ptos_tall.bean.vo.PluginVo$PluginInfo">
SELECT
p.id as pluginId,
bp.id as businessPluginId,
bp.`code`,
p.`name`,
p.versions,
p.html,
p.css,
p.js,
if(bp.config = '' or bp.config = null,p.config,bp.config) as config
FROM
t_open_business_plugin bp
LEFT JOIN t_open_plugin p on bp.plugin_id = p.id
LEFT JOIN t_open_plugin_img i on p.id = i.plugin_id and i.type = 0 and i.rec_status = 0
WHERE
bp.id = #{businessPluginId}
and bp.rec_status = 0
and p.rec_status = 0
</select>
<!-- <select id="getPluginByBusinessPluginId" resultType="com.ccsens.ptos_tall.bean.vo.PluginVo$PluginInfo">-->
<!-- SELECT-->
<!-- p.id as pluginId,-->
<!-- bp.id as businessPluginId,-->
<!-- bp.`code`,-->
<!-- p.`name`,-->
<!-- p.versions,-->
<!-- p.html,-->
<!-- p.css,-->
<!-- p.js,-->
<!-- if(bp.config = '' or bp.config = null,p.config,bp.config) as config-->
<!-- FROM-->
<!-- t_open_business_plugin bp-->
<!-- LEFT JOIN t_open_plugin p on bp.plugin_id = p.id-->
<!-- LEFT JOIN t_open_plugin_img i on p.id = i.plugin_id and i.type = 0 and i.rec_status = 0-->
<!-- WHERE-->
<!-- bp.id = #{businessPluginId}-->
<!-- and bp.rec_status = 0-->
<!-- and p.rec_status = 0-->
<!-- </select>-->
<select id="queryBusiness" resultType="com.ccsens.ptos_tall.bean.vo.BusinessVo$BusinessInfo">
SELECT
id,
`name`
`name`,
url
FROM
t_open_business
WHERE
`type` = 0
and pub = 1
and pub >= 2
and start_using = 1
and last_answer_time >= #{lastAnswerTime}
and rec_status = 0
</select>
<select id="queryPluginAll" resultType="com.ccsens.ptos_tall.bean.vo.PluginVo$PluginInfo">
SELECT
p.id,
p.`name`,
p.versions,
p.html,
p.css,
p.js,
p.config as config
FROM
t_open_plugin p
WHERE
p.rec_status = 0
ORDER BY p.id
</select>
<resultMap id="queryTask" type="com.ccsens.ptos_tall.bean.vo.BusinessVo$BusinessPlugin">
<id column="id" property="id"/>
<result column="name" property="name"/>
<result column="url" property="url"/>
<collection property="pluginConfigs" ofType="com.ccsens.ptos_tall.bean.vo.BusinessVo$BusinessPluginConfig">
<result column="businessPluginId" property="businessPluginId"/>
<result column="pluginId" property="pluginId"/>
<result column="config" property="config"/>
</collection>
</resultMap>
<select id="queryBusinessPlugin" resultMap="queryTask">
SELECT
b.id,
b.`name`,
b.url,
p.id as businessPluginId,
p.plugin_id as pluginId,
p.config
FROM
t_open_business b
LEFT JOIN t_open_business_plugin p on b.id = p.business_id and p.rec_status = 0
WHERE
b.`type` = 0
and b.start_using = 1
and b.rec_status = 0
</select>
</mapper>

12
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<TallProjectVo.ProjectInfo> queryProjectByUser(HttpServletRequest request, @ApiParam @Validated @RequestBody MultipartFile params) throws Exception{
public JsonResponse<TallProjectVo.ProjectInfo> importWbs(HttpServletRequest request, QueryDto<MultipartFile> 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<TallProjectVo.ProjectInfo> findProjectById(HttpServletRequest request,@ApiParam @Validated @RequestBody QueryDto<TallProjectDto.ProjectById> params) throws Exception{
TallProjectVo.ProjectInfo projectById = tallService.findProjectById(request.getHeader(WebConstant.HEADER_KEY_TOKEN),params.getParam());
return JsonResponse.newInstance().ok(projectById);
}
}

5
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<TallRoleVo.QueryRole> queryByProjectId(HttpServletRequest request, @ApiParam @Validated @RequestBody TallRoleDto.QueryRoleById params) {
public JsonResponse<TallRoleVo.QueryRole> queryByProjectId(HttpServletRequest request, @ApiParam @Validated @RequestBody QueryDto<TallRoleDto.QueryRoleById> 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);
}

13
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<List<TallTaskVo.QueryTask>> queryPermanentGlobalTask(HttpServletRequest request, @ApiParam @Validated @RequestBody TallTaskDto.QueryPermanentGlobalTask params) {
List<TallTaskVo.QueryTask> queryTasks = tallService.queryPermanentGlobalTask(request.getHeader(WebConstant.HEADER_KEY_TOKEN),params);
public JsonResponse<List<TallTaskVo.QueryTask>> queryPermanentGlobalTask(HttpServletRequest request, @ApiParam @Validated @RequestBody QueryDto<TallTaskDto.QueryPermanentGlobalTask> params) {
List<TallTaskVo.QueryTask> 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<List<TallTaskVo.QueryTask>> queryGlobalTask(HttpServletRequest request, @ApiParam @Validated @RequestBody TallTaskDto.QueryGlobalTask params) {
List<TallTaskVo.QueryTask> queryTasks = tallService.queryGlobalTask(request.getHeader(WebConstant.HEADER_KEY_TOKEN),params);
public JsonResponse<List<TallTaskVo.QueryTask>> queryGlobalTask(HttpServletRequest request, @ApiParam @Validated @RequestBody QueryDto<TallTaskDto.QueryGlobalTask> params) {
List<TallTaskVo.QueryTask> 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<List<TallTaskVo.QueryTask>> queryRegularTask(HttpServletRequest request, @ApiParam @Validated @RequestBody TallTaskDto.QueryRegularTask params) {
List<TallTaskVo.QueryTask> queryTasks = tallService.queryRegularTask(request.getHeader(WebConstant.HEADER_KEY_TOKEN),params);
public JsonResponse<List<TallTaskVo.QueryTask>> queryRegularTask(HttpServletRequest request, @ApiParam @Validated @RequestBody QueryDto<TallTaskDto.QueryRegularTask> params) {
List<TallTaskVo.QueryTask> queryTasks = tallService.queryRegularTask(request.getHeader(WebConstant.HEADER_KEY_TOKEN),params.getParam());
return JsonResponse.newInstance().ok(queryTasks);
}
}

29
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() {
}
}
}

9
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{

25
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;
}
}

7
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("行")

5
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);
}

16
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";

61
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;
}
}

8
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{

32
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";

21
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<BillInfo> 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;
}
}

Loading…
Cancel
Save