Browse Source

查询引导页

master
zy_Java 4 years ago
parent
commit
b4182530ab
  1. 2
      cloudutil/src/main/java/com/ccsens/cloudutil/aspect/CacheMd5Aspect.java
  2. 1
      cloudutil/src/main/java/com/ccsens/cloudutil/aspect/MustLoginAspect.java
  3. 12
      ptos_diplomatist/src/main/java/com/ccsens/ptos_diplomatist/service/DomainService.java
  4. 23
      ptos_diplomatist/src/main/java/com/ccsens/ptos_diplomatist/service/HeartbeatService.java
  5. 20
      ptos_open/src/main/java/com/ccsens/ptos_open/api/BusinessController.java
  6. 23
      ptos_open/src/main/java/com/ccsens/ptos_open/api/PluginController.java
  7. 9
      ptos_open/src/main/java/com/ccsens/ptos_open/bean/dto/BusinessDto.java
  8. 6
      ptos_open/src/main/java/com/ccsens/ptos_open/bean/dto/PluginDto.java
  9. 2
      ptos_open/src/main/java/com/ccsens/ptos_open/bean/vo/PluginVo.java
  10. 37
      ptos_open/src/main/java/com/ccsens/ptos_open/service/BusinessService.java
  11. 14
      ptos_open/src/main/java/com/ccsens/ptos_open/service/IBusinessService.java
  12. 15
      ptos_open/src/main/java/com/ccsens/ptos_open/service/IPluginService.java
  13. 41
      ptos_open/src/main/java/com/ccsens/ptos_open/service/PluginService.java
  14. 1
      ptos_open/src/main/java/com/ccsens/ptos_open/util/OpenCodeError.java
  15. 4
      ptos_open/src/main/resources/mapper_dao/BusinessDao.xml
  16. 7
      ptos_open/src/main/resources/mapper_dao/PluginDao.xml
  17. 37
      ptos_tall/src/main/java/com/ccsens/ptos_tall/api/BusinessController.java
  18. 2
      ptos_tall/src/main/java/com/ccsens/ptos_tall/api/ProjectController.java
  19. 21
      ptos_tall/src/main/java/com/ccsens/ptos_tall/api/TestController.java
  20. 2
      ptos_tall/src/main/java/com/ccsens/ptos_tall/api/UserController.java
  21. 3
      ptos_tall/src/main/java/com/ccsens/ptos_tall/bean/dto/BusinessDto.java
  22. 4
      ptos_tall/src/main/java/com/ccsens/ptos_tall/bean/dto/UserDto.java
  23. 35
      ptos_tall/src/main/java/com/ccsens/ptos_tall/bean/po/OpenBusiness.java
  24. 184
      ptos_tall/src/main/java/com/ccsens/ptos_tall/bean/po/OpenBusinessExample.java
  25. 19
      ptos_tall/src/main/java/com/ccsens/ptos_tall/bean/vo/BusinessVo.java
  26. 36
      ptos_tall/src/main/java/com/ccsens/ptos_tall/bean/vo/PluginVo.java
  27. 25
      ptos_tall/src/main/java/com/ccsens/ptos_tall/persist/dao/BusinessPluginDao.java
  28. 30
      ptos_tall/src/main/java/com/ccsens/ptos_tall/persist/mapper/OpenBusinessMapper.java
  29. 30
      ptos_tall/src/main/java/com/ccsens/ptos_tall/persist/mapper/SysBusinessMapper.java
  30. 51
      ptos_tall/src/main/java/com/ccsens/ptos_tall/service/BusinessService.java
  31. 58
      ptos_tall/src/main/java/com/ccsens/ptos_tall/service/HeartbeatService.java
  32. 16
      ptos_tall/src/main/java/com/ccsens/ptos_tall/service/IBusinessService.java
  33. 2
      ptos_tall/src/main/java/com/ccsens/ptos_tall/service/IProjectService.java
  34. 4
      ptos_tall/src/main/java/com/ccsens/ptos_tall/service/IUserService.java
  35. 97
      ptos_tall/src/main/java/com/ccsens/ptos_tall/service/ProjectService.java
  36. 88
      ptos_tall/src/main/java/com/ccsens/ptos_tall/service/UserService.java
  37. 3
      ptos_tall/src/main/java/com/ccsens/ptos_tall/util/PtOsCodeError.java
  38. 3
      ptos_tall/src/main/java/com/ccsens/ptos_tall/util/PtOsConstant.java
  39. 40
      ptos_tall/src/main/resources/mapper_dao/BusinessPluginDao.xml
  40. 93
      ptos_tall/src/main/resources/mapper_raw/OpenBusinessMapper.xml
  41. 4
      ptoszero/src/main/resources/mapper_dao/ProRoleDao.xml
  42. 2
      ptoszero/src/main/resources/mapper_dao/ProRoleTaskDao.xml
  43. 4
      ptoszero/src/main/resources/mapper_dao/ProTaskDetailDao.xml
  44. 2
      ptoszero/src/main/resources/mapper_dao/ProTaskPluginDao.xml
  45. 12
      tall_sdk/src/main/java/com/ccsensptos/tallsdk/api/ProjectController.java
  46. 8
      tall_sdk/src/main/java/com/ccsensptos/tallsdk/api/RoleController.java
  47. 16
      tall_sdk/src/main/java/com/ccsensptos/tallsdk/api/TaskController.java
  48. 2
      tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/dto/TallProjectDto.java
  49. 2
      tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/dto/TallRoleDto.java
  50. 2
      tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/dto/TallTaskDto.java
  51. 11
      tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/dto/TallTokenDto.java
  52. 2
      tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/vo/TallProjectVo.java
  53. 2
      tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/vo/TallRoleVo.java
  54. 2
      tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/vo/TallTaskVo.java
  55. 2
      tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/vo/TallTokenVo.java
  56. 24
      tall_sdk/src/main/java/com/ccsensptos/tallsdk/service/ITallService.java
  57. 55
      tall_sdk/src/main/java/com/ccsensptos/tallsdk/util/TokenUtil.java
  58. 1
      util/src/main/java/com/ccsens/util/WebConstant.java
  59. 2
      util/src/main/java/com/ccsens/util/bean/dto/QueryDto.java

2
cloudutil/src/main/java/com/ccsens/cloudutil/aspect/CacheMd5Aspect.java

@ -73,7 +73,7 @@ public class CacheMd5Aspect {
try {
data = JSONObject.toJSONString(proceed.getData());
} catch (Exception e) {
log.error("md5转换json异常:{}", e);
log.error("md5转换json异常:" + e);
data = proceed.getData().toString();
}
}

1
cloudutil/src/main/java/com/ccsens/cloudutil/aspect/MustLoginAspect.java

@ -115,6 +115,7 @@ public class MustLoginAspect {
dto.setDeviceId(deviceId);
dto.setClientType(clientType1);
dto.setClientIp(clientIp);
dto.setToken(authHeader);
}
Object result = pjp.proceed();
if(result instanceof JsonResponse && authHeader == null){

12
ptos_diplomatist/src/main/java/com/ccsens/ptos_diplomatist/service/DomainService.java

@ -122,10 +122,16 @@ public class DomainService implements IDomainService {
sendDomain.setData(encrypt);
//发送请求
String url = pubDomain.getUrl() + "/domain/list";
// String url = "http://localhost:7280/domain/list";
log.info("调用接口:{}--{}", url, sendDomain);
String postBody = RestTemplateUtil.postBody(url, sendDomain);
System.out.println(postBody);
String postBody = null;
try{
postBody = RestTemplateUtil.postBody(url,sendDomain);
}catch (Exception e){
log.error("公域更新自身域列表信息异常" + e);
}
if(StrUtil.isBlank(postBody)){
return;
}
JSONObject jsonObject = JSONObject.parseObject(postBody);
log.info("接口返回:{}", jsonObject);
//请求正确返回则修改域列表信息,否则无操作

23
ptos_diplomatist/src/main/java/com/ccsens/ptos_diplomatist/service/HeartbeatService.java

@ -96,14 +96,21 @@ public class HeartbeatService implements IHeartbeatService {
//发送心跳
String url = idcDomain.getUrl() + "/heart";
log.info("调用接口:{}--{}", url, sendDomain);
String postBody = RestTemplateUtil.postBody(url, sendDomain);
JSONObject jsonObject = JSONObject.parseObject(postBody);
log.info("接口返回:{}", jsonObject);
//请求正确返回则修改最后应答时间,否则无操作
Integer code = jsonObject.getInteger("code");
if (code != null && code == 200) {
idcDomain.setLastAnswerTime(System.currentTimeMillis());
domainDao.updateByPrimaryKeySelective(idcDomain);
String postBody = null;
try{
postBody = RestTemplateUtil.postBody(url,sendDomain);
}catch (Exception e){
log.error("发送心跳信息--" + idcDomain.getName() + e);
}
if(StrUtil.isNotBlank(postBody)){
JSONObject jsonObject = JSONObject.parseObject(postBody);
log.info("接口返回:{}", jsonObject);
//请求正确返回则修改最后应答时间,否则无操作
Integer code = jsonObject.getInteger("code");
if (code != null && code == 200) {
idcDomain.setLastAnswerTime(System.currentTimeMillis());
domainDao.updateByPrimaryKeySelective(idcDomain);
}
}
});
}

20
ptos_open/src/main/java/com/ccsens/ptos_open/api/BusinessController.java

@ -90,4 +90,24 @@ public class BusinessController {
log.info("返回业务信息");
return JsonResponse.newInstance().ok(businessInfos);
}
@MustLogin
@ApiOperation(value = "删除业务", notes = "")
@RequestMapping(value = "/del", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse deleteBusiness(@ApiParam @Validated @RequestBody QueryDto<BusinessDto.QueryIdBusiness> params) throws Exception{
log.info("删除业务:{}",params);
businessService. deleteBusiness(params.getParam(),params.getUserId());
log.info("删除业务成功");
return JsonResponse.newInstance().ok();
}
@MustLogin
@ApiOperation(value = "移除业务下关联的插件", notes = "")
@RequestMapping(value = "/delRelevance", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse delRelevance(@ApiParam @Validated @RequestBody QueryDto<BusinessDto.BusinessPlugin> params) throws Exception{
log.info("删除业务:{}",params);
businessService. delRelevance(params.getParam(),params.getUserId());
log.info("删除业务成功");
return JsonResponse.newInstance().ok();
}
}

23
ptos_open/src/main/java/com/ccsens/ptos_open/api/PluginController.java

@ -43,6 +43,7 @@ public class PluginController {
}
@MustLogin
@ApiOperation(value = "创建插件", notes = "")
@RequestMapping(value = "/save", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
@ -53,6 +54,16 @@ public class PluginController {
return JsonResponse.newInstance().ok(plugreturn);
}
@MustLogin
@ApiOperation(value = "删除插件", notes = "")
@RequestMapping(value = "/del", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<PageInfo<PluginVo.PluginInfo>> deletePlugin(@ApiParam @Validated @RequestBody QueryDto<PluginDto.QueryPluginById> params) throws Exception{
log.info("删除插件:{}",params);
pluginService.deletePlugin(params.getParam(),params.getUserId());
log.info("删除插件成功");
return JsonResponse.newInstance().ok();
}
@MustLogin
@ApiOperation(value = "修改插件信息", notes = "")
@RequestMapping(value = "/update", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
@ -65,11 +76,19 @@ public class PluginController {
@MustLogin
@ApiOperation(value = "根据id查询插件", notes = "")
@RequestMapping(value = "/queryIdPlugin", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse <PluginVo.PluginInfo> queryIdPlugin(@ApiParam @Validated @RequestBody QueryDto<PluginDto.QueryIdPlugin> params) throws Exception{
@RequestMapping(value = "/queryById", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse <PluginVo.PluginInfo> queryIdPlugin(@ApiParam @Validated @RequestBody QueryDto<PluginDto.QueryPluginById> params) throws Exception{
log.info("根据id查询插件:{}",params);
PluginVo.PluginInfo pluginInfo = pluginService. queryIdPlugin(params.getParam(),params.getUserId());
log.info("返回插件信息");
return JsonResponse.newInstance().ok(pluginInfo);
}
@MustLogin
@ApiOperation(value = "获取一个随机id", notes = "")
@RequestMapping(value = "/randomId", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<Long> queryPlugin() {
Long id = pluginService.getRandomId();
return JsonResponse.newInstance().ok(id);
}
}

9
ptos_open/src/main/java/com/ccsens/ptos_open/bean/dto/BusinessDto.java

@ -80,8 +80,15 @@ public class BusinessDto {
@Data
@ApiModel("通过id查询业务信息")
public static class QueryIdBusiness {
@ApiModelProperty("业务信息对应的id")
@ApiModelProperty("业务id")
private Long businessId;
}
@Data
@ApiModel("移除业务下的插件信息")
public static class BusinessPlugin {
@ApiModelProperty("业务插件关联id")
private Long businessPluginId;
}
}

6
ptos_open/src/main/java/com/ccsens/ptos_open/bean/dto/PluginDto.java

@ -19,6 +19,8 @@ public class PluginDto {
private String name;
@ApiModelProperty("查询深度 0则只查名称,1则查询全部")
private Byte depth = 0;
@ApiModelProperty("查询全部插件还是自己的插件 0全部 1自己")
private Byte mine = 0;
@ApiModelProperty("第几页")
private Integer pageNum = 1;
@ApiModelProperty("每页几条信息")
@ -28,6 +30,8 @@ public class PluginDto {
@Data
@ApiModel("添加插件")
public static class SavePlugin{
@ApiModelProperty("插件id")
private Long id;
@ApiModelProperty("插件名")
private String name;
@ApiModelProperty("版本号")
@ -85,7 +89,7 @@ public class PluginDto {
@Data
@ApiModel("根据id查找插件")
public static class QueryIdPlugin {
public static class QueryPluginById {
@ApiModelProperty("插件id")
private Long id;
}

2
ptos_open/src/main/java/com/ccsens/ptos_open/bean/vo/PluginVo.java

@ -24,7 +24,7 @@ public class PluginVo {
@ApiModelProperty("详细说明")
private String description;
@ApiModelProperty("更新时间")
private Long updatedTime;
private Long updateTime;
@ApiModelProperty("作者id(userId)")
private Long authorId;
@ApiModelProperty("作者名")

37
ptos_open/src/main/java/com/ccsens/ptos_open/service/BusinessService.java

@ -13,6 +13,7 @@ import com.ccsens.ptos_open.persist.dao.PluginDao;
import com.ccsens.ptos_open.persist.mapper.OpenBusinessPluginMapper;
import com.ccsens.ptos_open.util.GenerateAppIdUtil;
import com.ccsens.ptos_open.util.OpenCodeError;
import com.ccsens.util.CodeEnum;
import com.ccsens.util.exception.BaseException;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@ -145,4 +146,40 @@ public class BusinessService implements IBusinessService {
return businessInfo;
}
@Override
public void deleteBusiness(BusinessDto.QueryIdBusiness param, Long userId) {
//查找业务信息
OpenBusiness openBusiness = businessDao.selectByPrimaryKey(param.getBusinessId());
if(ObjectUtil.isNull(openBusiness)){
throw new BaseException(OpenCodeError.NOT_BUSINESS);
}
//判断当前用户是否是业务的创建者
if(!openBusiness.getCreatorId().equals(userId)){
throw new BaseException(CodeEnum.NOT_POWER);
}
//删除业务
openBusiness.setRecStatus((byte) 2);
businessDao.updateByPrimaryKeySelective(openBusiness);
}
@Override
public void delRelevance(BusinessDto.BusinessPlugin param, Long userId) {
//查找业务关联的插件
OpenBusinessPlugin openBusinessPlugin = businessPluginMapper.selectByPrimaryKey(param.getBusinessPluginId());
if(ObjectUtil.isNull(openBusinessPlugin)){
throw new BaseException(OpenCodeError.NOT_PLUGIN);
}
//查找业务信息
OpenBusiness openBusiness = businessDao.selectByPrimaryKey(openBusinessPlugin.getBusinessId());
if(ObjectUtil.isNull(openBusiness)){
throw new BaseException(OpenCodeError.NOT_BUSINESS);
}
//判断当前用户是否是业务的创建者
if(!openBusiness.getCreatorId().equals(userId)){
throw new BaseException(CodeEnum.NOT_POWER);
}
//移除业务下的插件
openBusinessPlugin.setRecStatus((byte) 2);
businessPluginMapper.updateByPrimaryKeySelective(openBusinessPlugin);
}
}

14
ptos_open/src/main/java/com/ccsens/ptos_open/service/IBusinessService.java

@ -53,4 +53,18 @@ public interface IBusinessService {
*/
BusinessVo.BusinessInfo queryIdBusiness(BusinessDto.QueryIdBusiness param, Long userId);
/**
* 删除业务
* @param param 业务id
* @param userId userId
*/
void deleteBusiness(BusinessDto.QueryIdBusiness param, Long userId);
/**
* 移除业务下的插件
* @param param 业务插件关联id
* @param userId userId
*/
void delRelevance(BusinessDto.BusinessPlugin param, Long userId);
}

15
ptos_open/src/main/java/com/ccsens/ptos_open/service/IPluginService.java

@ -36,5 +36,18 @@ public interface IPluginService {
* @param param 插件信息
* @param userId userId
*/
PluginVo.PluginInfo queryIdPlugin(PluginDto.QueryIdPlugin param, Long userId);
PluginVo.PluginInfo queryIdPlugin(PluginDto.QueryPluginById param, Long userId);
/**
* 获取随机id
* @return 返回id
*/
Long getRandomId();
/**
* 删除插件
* @param param 插件id
* @param userId userId
*/
void deletePlugin(PluginDto.QueryPluginById param, Long userId);
}

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

@ -5,17 +5,14 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.ccsens.ptos_open.bean.dto.BusinessDto;
import com.ccsens.ptos_open.bean.dto.PluginDto;
import com.ccsens.ptos_open.bean.po.*;
import com.ccsens.ptos_open.bean.vo.BusinessVo;
import com.ccsens.ptos_open.bean.vo.PluginVo;
import com.ccsens.ptos_open.persist.dao.PluginDao;
import com.ccsens.ptos_open.persist.dao.UserDao;
import com.ccsens.ptos_open.persist.mapper.OpenPluginImgMapper;
import com.ccsens.ptos_open.util.OpenCodeError;
import com.ccsens.util.CodeEnum;
import com.ccsens.util.CodeError;
import com.ccsens.util.exception.BaseException;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@ -55,10 +52,14 @@ public class PluginService implements IPluginService {
@Override
public PluginVo.PluginReturn savePlugin(PluginDto.SavePlugin param, Long userId) {
//TODO 验证用户权限
//查询插件,判断插件是否存在
Boolean a = pluginDao.verifyById(param.getId());
if (a != null && a) {
throw new BaseException(OpenCodeError.REPEAT_PLUGIN);
}
//添加插件
OpenPluginWithBLOBs openPlugin = new OpenPluginWithBLOBs();
BeanUtil.copyProperties(param, openPlugin);
openPlugin.setId(snowflake.nextId());
openPlugin.setCreatorId(userId);
pluginDao.insertSelective(openPlugin);
//保存预览图
@ -100,7 +101,7 @@ public class PluginService implements IPluginService {
if(!userId.equals(creatorId)){
throw new BaseException(CodeEnum.NOT_POWER);
}
//新建插件
OpenPluginWithBLOBs plugin = new OpenPluginWithBLOBs();
plugin.setId(param.getId());
//修改插件信息
@ -173,7 +174,7 @@ public class PluginService implements IPluginService {
}
@Override
public PluginVo.PluginInfo queryIdPlugin(PluginDto.QueryIdPlugin param, Long userId) {
public PluginVo.PluginInfo queryIdPlugin(PluginDto.QueryPluginById param, Long userId) {
//查询插件信息
OpenPluginWithBLOBs openPlugin = pluginDao.selectByPrimaryKey(param.getId());
@ -186,7 +187,7 @@ public class PluginService implements IPluginService {
pluginInfo.setName(openPlugin.getName());
pluginInfo.setVersions(openPlugin.getVersions());
pluginInfo.setIntro(openPlugin.getIntro());
pluginInfo.setUpdatedTime(openPlugin.getUpdatedAt().getTime());
pluginInfo.setUpdateTime(openPlugin.getUpdatedAt().getTime());
pluginInfo.setAuthorId(openPlugin.getCreatorId());
//作者id查user表
String userName = userDao.getUserNameById(openPlugin.getCreatorId());
@ -202,7 +203,7 @@ public class PluginService implements IPluginService {
}
pluginInfo.setPreview(path);
if(openPlugin.getCreatorId() == userId) {
if(openPlugin.getCreatorId().equals(userId)) {
Byte main = 1;
pluginInfo.setMine(main);
} else {
@ -215,6 +216,30 @@ public class PluginService implements IPluginService {
pluginInfo.setConfig(openPlugin.getConfig());
return pluginInfo;
}
@Override
public Long getRandomId() {
return snowflake.nextId();
}
@Override
public void deletePlugin(PluginDto.QueryPluginById param, Long userId) {
//查询插件,判断插件是否存在
Boolean a = pluginDao.verifyById(param.getId());
if (a == null || !a) {
throw new BaseException(OpenCodeError.NOT_PLUGIN);
}
//查询插件的创建者id,判断当前用户是否是插件的创建
Long creatorId = pluginDao.getPluginCreatorId(param.getId());
if(!userId.equals(creatorId)){
throw new BaseException(CodeEnum.NOT_POWER);
}
//删除插件
OpenPluginWithBLOBs openPlugin = new OpenPluginWithBLOBs();
openPlugin.setId(param.getId());
openPlugin.setRecStatus((byte) 2);
pluginDao.updateByPrimaryKeySelective(openPlugin);
}
}

1
ptos_open/src/main/java/com/ccsens/ptos_open/util/OpenCodeError.java

@ -9,6 +9,7 @@ public class OpenCodeError extends CodeError {
public static final Code ILLEGAL_LOG_IN = new Code(400,"非法登录",true);
public static final Code NOT_PLUGIN = new Code(501,"插件不存在",true);
public static final Code REPEAT_PLUGIN = new Code(501,"插件id已存在,请重新生成",true);
public static final Code NOT_BUSINESS = new Code(502,"找不到对应的业务",true);
public static final Code BUSINESS_PLUGIN = new Code(503,"业务已经关联此插件,请勿重复添加",true);

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

@ -43,12 +43,12 @@
bp.id as businessPluginId,
bp.`code`,
p.`name`,
if(bp.config = null,p.config,bp.config) as config,
if(bp.config = '' or bp.config = null,p.config,bp.config) as config,
bp.debug,
p.id as pluginId,
p.versions,
p.intro,
UNIX_TIMESTAMP(p.updated_at) * 1000 as updatedTime,
UNIX_TIMESTAMP(p.updated_at) * 1000 as updateTime,
p.creator_id as authorId,
(SELECT `name` FROM t_sys_user WHERE id = p.creator_id and rec_status = 0 limit 1) as authorName,
if(p.creator_id = #{userId}, 1, 0) as mine,

7
ptos_open/src/main/resources/mapper_dao/PluginDao.xml

@ -11,7 +11,7 @@
,
p.versions,
p.intro,
UNIX_TIMESTAMP(p.updated_at) * 1000 as updatedTime,
UNIX_TIMESTAMP(p.updated_at) * 1000 as updateTime,
p.creator_id as authorId,
i.file_path as preview,
(SELECT `name` FROM t_sys_user WHERE id = p.creator_id and rec_status = 0 limit 1) as authorName,
@ -19,13 +19,16 @@
p.html,
p.css,
p.js,
p.config
p.config as config
</if>
FROM
t_open_plugin p
LEFT JOIN t_open_plugin_img i on p.id = i.plugin_id and i.type = 0 and i.rec_status = 0
WHERE
p.rec_status = 0
<if test="mine == 1">
and p.creator_id = #{userId}
</if>
<if test="name != null and name != ''">
and p.`name` like concat('%',#{name, jdbcType=VARCHAR},'%')
</if>

37
ptos_tall/src/main/java/com/ccsens/ptos_tall/api/BusinessController.java

@ -1,20 +1,18 @@
package com.ccsens.ptos_tall.api;
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 io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
* @author
@ -28,6 +26,30 @@ public class BusinessController {
@Resource
private IBusinessService businessService;
@ApiOperation(value = "查找域内的业务列表", notes = "只查在线、启用且开放的业务,不包括零号业务")
@ApiImplicitParams({
})
@RequestMapping(value = "/query", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<BusinessVo.BusinessInfo>> queryBusiness() throws Exception{
log.info("查找域内的业务列表");
List<BusinessVo.BusinessInfo> businessInfoList = businessService.queryBusiness();
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 = "根据appId获取accessToken", notes = "")
@RequestMapping(value = "/accessToken", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<String> getAccessTokenByAppId(HttpServletRequest request, @ApiParam @Validated @RequestBody BusinessDto.BusinessToken params) throws Exception{
@ -37,4 +59,5 @@ public class BusinessController {
return JsonResponse.newInstance().ok(accessToken);
}
}

2
ptos_tall/src/main/java/com/ccsens/ptos_tall/api/ProjectController.java

@ -36,7 +36,7 @@ public class ProjectController {
@RequestMapping(value = "/query", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<ProjectVo.ProjectInfo>> queryProjectByUser(@ApiParam @Validated @RequestBody QueryDto<ProjectDto.QueryProjectDto> params) throws Exception{
log.info("查询用户所有域下所有业务内的所有项目:{}",params);
List<ProjectVo.ProjectInfo> projectInfoList = projectService.queryProjectByUser(params.getPhone(),params.getParam(),params.getUserId());
List<ProjectVo.ProjectInfo> projectInfoList = projectService.queryProjectByUser(params.getToken(),params.getPhone(),params.getParam(),params.getUserId());
log.info("返回用户所有域下所有业务内的所有项目");
return JsonResponse.newInstance().ok(projectInfoList);
}

21
ptos_tall/src/main/java/com/ccsens/ptos_tall/api/TestController.java

@ -1,21 +0,0 @@
//package com.ccsens.ptos_tall.api;
//
//import com.ccsens.ptos_open.api.CcsensTestController;
//import com.ccsens.ptos_open.bean.dto.BusinessDto;
//import com.ccsens.ptos_open.bean.vo.BusinessVo;
//import com.ccsens.util.JsonResponse;
//import com.ccsens.util.bean.dto.QueryDto;
//import com.github.pagehelper.PageInfo;
//
//public class TestController implements CcsensTestController {
//
// @Override
// public JsonResponse<PageInfo<BusinessVo.BusinessInfo>> queryBusiness(QueryDto<BusinessDto.QueryByPage> params) {
// return JsonResponse.newInstance().ok(null,"werwer","werwer");
// }
//
// @Override
// public JsonResponse saveBusiness(QueryDto<BusinessDto.SaveBusiness> params) {
// return null;
// }
//}

2
ptos_tall/src/main/java/com/ccsens/ptos_tall/api/UserController.java

@ -49,7 +49,7 @@ public class UserController {
@RequestMapping(value = "/businessToken", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<UserVo.TokenToUserId> userByBusinessToken(HttpServletRequest request, @ApiParam @Validated @RequestBody UserDto.BusinessToken params) throws Exception{
log.info("根据token换取用户信息:{}",params);
UserVo.TokenToUserId userInfo = userService.userByBusinessToken(params);
UserVo.TokenToUserId userInfo = userService.userByBusinessToken(request.getHeader("accessToken"),params);
log.info("返回用户信息");
return JsonResponse.newInstance().ok(userInfo);
}

3
ptos_tall/src/main/java/com/ccsens/ptos_tall/bean/dto/BusinessDto.java

@ -9,6 +9,8 @@ import lombok.Data;
*/
@Data
public class BusinessDto {
@Data
@ApiModel("根据appId获取accessToken")
public static class BusinessToken{
@ -16,7 +18,6 @@ public class BusinessDto {
private String appId;
@ApiModelProperty("secret")
private String secret;
}
}

4
ptos_tall/src/main/java/com/ccsens/ptos_tall/bean/dto/UserDto.java

@ -42,10 +42,6 @@ public class UserDto {
public static class BusinessToken{
@ApiModelProperty("token")
private String token;
@ApiModelProperty("appId")
private String appId;
@ApiModelProperty("secret")
private String secret;
}

35
ptos_tall/src/main/java/com/ccsens/ptos_tall/bean/po/SysBusiness.java → ptos_tall/src/main/java/com/ccsens/ptos_tall/bean/po/OpenBusiness.java

@ -3,7 +3,7 @@ package com.ccsens.ptos_tall.bean.po;
import java.io.Serializable;
import java.util.Date;
public class SysBusiness implements Serializable {
public class OpenBusiness implements Serializable {
private Long id;
private String name;
@ -26,6 +26,12 @@ public class SysBusiness implements Serializable {
private Byte type;
private Byte pub;
private Byte startUsing;
private Byte debug;
private Long operator;
private Date createdAt;
@ -124,6 +130,30 @@ public class SysBusiness implements Serializable {
this.type = type;
}
public Byte getPub() {
return pub;
}
public void setPub(Byte pub) {
this.pub = pub;
}
public Byte getStartUsing() {
return startUsing;
}
public void setStartUsing(Byte startUsing) {
this.startUsing = startUsing;
}
public Byte getDebug() {
return debug;
}
public void setDebug(Byte debug) {
this.debug = debug;
}
public Long getOperator() {
return operator;
}
@ -173,6 +203,9 @@ public class SysBusiness implements Serializable {
sb.append(", lastAskTime=").append(lastAskTime);
sb.append(", lastAnswerTime=").append(lastAnswerTime);
sb.append(", type=").append(type);
sb.append(", pub=").append(pub);
sb.append(", startUsing=").append(startUsing);
sb.append(", debug=").append(debug);
sb.append(", operator=").append(operator);
sb.append(", createdAt=").append(createdAt);
sb.append(", updatedAt=").append(updatedAt);

184
ptos_tall/src/main/java/com/ccsens/ptos_tall/bean/po/SysBusinessExample.java → ptos_tall/src/main/java/com/ccsens/ptos_tall/bean/po/OpenBusinessExample.java

@ -4,14 +4,14 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class SysBusinessExample {
public class OpenBusinessExample {
protected String orderByClause;
protected boolean distinct;
protected List<Criteria> oredCriteria;
public SysBusinessExample() {
public OpenBusinessExample() {
oredCriteria = new ArrayList<Criteria>();
}
@ -825,6 +825,186 @@ public class SysBusinessExample {
return (Criteria) this;
}
public Criteria andPubIsNull() {
addCriterion("pub is null");
return (Criteria) this;
}
public Criteria andPubIsNotNull() {
addCriterion("pub is not null");
return (Criteria) this;
}
public Criteria andPubEqualTo(Byte value) {
addCriterion("pub =", value, "pub");
return (Criteria) this;
}
public Criteria andPubNotEqualTo(Byte value) {
addCriterion("pub <>", value, "pub");
return (Criteria) this;
}
public Criteria andPubGreaterThan(Byte value) {
addCriterion("pub >", value, "pub");
return (Criteria) this;
}
public Criteria andPubGreaterThanOrEqualTo(Byte value) {
addCriterion("pub >=", value, "pub");
return (Criteria) this;
}
public Criteria andPubLessThan(Byte value) {
addCriterion("pub <", value, "pub");
return (Criteria) this;
}
public Criteria andPubLessThanOrEqualTo(Byte value) {
addCriterion("pub <=", value, "pub");
return (Criteria) this;
}
public Criteria andPubIn(List<Byte> values) {
addCriterion("pub in", values, "pub");
return (Criteria) this;
}
public Criteria andPubNotIn(List<Byte> values) {
addCriterion("pub not in", values, "pub");
return (Criteria) this;
}
public Criteria andPubBetween(Byte value1, Byte value2) {
addCriterion("pub between", value1, value2, "pub");
return (Criteria) this;
}
public Criteria andPubNotBetween(Byte value1, Byte value2) {
addCriterion("pub not between", value1, value2, "pub");
return (Criteria) this;
}
public Criteria andStartUsingIsNull() {
addCriterion("start_using is null");
return (Criteria) this;
}
public Criteria andStartUsingIsNotNull() {
addCriterion("start_using is not null");
return (Criteria) this;
}
public Criteria andStartUsingEqualTo(Byte value) {
addCriterion("start_using =", value, "startUsing");
return (Criteria) this;
}
public Criteria andStartUsingNotEqualTo(Byte value) {
addCriterion("start_using <>", value, "startUsing");
return (Criteria) this;
}
public Criteria andStartUsingGreaterThan(Byte value) {
addCriterion("start_using >", value, "startUsing");
return (Criteria) this;
}
public Criteria andStartUsingGreaterThanOrEqualTo(Byte value) {
addCriterion("start_using >=", value, "startUsing");
return (Criteria) this;
}
public Criteria andStartUsingLessThan(Byte value) {
addCriterion("start_using <", value, "startUsing");
return (Criteria) this;
}
public Criteria andStartUsingLessThanOrEqualTo(Byte value) {
addCriterion("start_using <=", value, "startUsing");
return (Criteria) this;
}
public Criteria andStartUsingIn(List<Byte> values) {
addCriterion("start_using in", values, "startUsing");
return (Criteria) this;
}
public Criteria andStartUsingNotIn(List<Byte> values) {
addCriterion("start_using not in", values, "startUsing");
return (Criteria) this;
}
public Criteria andStartUsingBetween(Byte value1, Byte value2) {
addCriterion("start_using between", value1, value2, "startUsing");
return (Criteria) this;
}
public Criteria andStartUsingNotBetween(Byte value1, Byte value2) {
addCriterion("start_using not between", value1, value2, "startUsing");
return (Criteria) this;
}
public Criteria andDebugIsNull() {
addCriterion("debug is null");
return (Criteria) this;
}
public Criteria andDebugIsNotNull() {
addCriterion("debug is not null");
return (Criteria) this;
}
public Criteria andDebugEqualTo(Byte value) {
addCriterion("debug =", value, "debug");
return (Criteria) this;
}
public Criteria andDebugNotEqualTo(Byte value) {
addCriterion("debug <>", value, "debug");
return (Criteria) this;
}
public Criteria andDebugGreaterThan(Byte value) {
addCriterion("debug >", value, "debug");
return (Criteria) this;
}
public Criteria andDebugGreaterThanOrEqualTo(Byte value) {
addCriterion("debug >=", value, "debug");
return (Criteria) this;
}
public Criteria andDebugLessThan(Byte value) {
addCriterion("debug <", value, "debug");
return (Criteria) this;
}
public Criteria andDebugLessThanOrEqualTo(Byte value) {
addCriterion("debug <=", value, "debug");
return (Criteria) this;
}
public Criteria andDebugIn(List<Byte> values) {
addCriterion("debug in", values, "debug");
return (Criteria) this;
}
public Criteria andDebugNotIn(List<Byte> values) {
addCriterion("debug not in", values, "debug");
return (Criteria) this;
}
public Criteria andDebugBetween(Byte value1, Byte value2) {
addCriterion("debug between", value1, value2, "debug");
return (Criteria) this;
}
public Criteria andDebugNotBetween(Byte value1, Byte value2) {
addCriterion("debug not between", value1, value2, "debug");
return (Criteria) this;
}
public Criteria andOperatorIsNull() {
addCriterion("operator is null");
return (Criteria) this;

19
ptos_tall/src/main/java/com/ccsens/ptos_tall/bean/vo/BusinessVo.java

@ -0,0 +1,19 @@
package com.ccsens.ptos_tall.bean.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author
*/
@Data
public class BusinessVo {
@Data
public static class BusinessInfo{
@ApiModelProperty("业务id")
private Long id;
@ApiModelProperty("业务名")
private String name;
}
}

36
ptos_tall/src/main/java/com/ccsens/ptos_tall/bean/vo/PluginVo.java

@ -0,0 +1,36 @@
package com.ccsens.ptos_tall.bean.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author
*/
@Data
public class PluginVo {
@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;
}
}

25
ptos_tall/src/main/java/com/ccsens/ptos_tall/persist/dao/BusinessPluginDao.java

@ -0,0 +1,25 @@
package com.ccsens.ptos_tall.persist.dao;
import com.ccsens.ptos_tall.bean.vo.BusinessVo;
import com.ccsens.ptos_tall.bean.vo.PluginVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author
*/
public interface BusinessPluginDao {
/**
* 根据插件关联id查询插件详情
* @param businessPluginId 插件关联id
* @return 返回插件详情
*/
PluginVo.PluginInfo getPluginByBusinessPluginId(@Param("businessPluginId") Long businessPluginId);
/**
* 查询域下的业务列表
* @return 返回业务信息
*/
List<BusinessVo.BusinessInfo> queryBusiness(@Param("lastAnswerTime")Long lastAnswerTime);
}

30
ptos_tall/src/main/java/com/ccsens/ptos_tall/persist/mapper/OpenBusinessMapper.java

@ -0,0 +1,30 @@
package com.ccsens.ptos_tall.persist.mapper;
import com.ccsens.ptos_tall.bean.po.OpenBusiness;
import com.ccsens.ptos_tall.bean.po.OpenBusinessExample;
import java.util.List;
import org.apache.ibatis.annotations.Param;
public interface OpenBusinessMapper {
long countByExample(OpenBusinessExample example);
int deleteByExample(OpenBusinessExample example);
int deleteByPrimaryKey(Long id);
int insert(OpenBusiness record);
int insertSelective(OpenBusiness record);
List<OpenBusiness> selectByExample(OpenBusinessExample example);
OpenBusiness selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") OpenBusiness record, @Param("example") OpenBusinessExample example);
int updateByExample(@Param("record") OpenBusiness record, @Param("example") OpenBusinessExample example);
int updateByPrimaryKeySelective(OpenBusiness record);
int updateByPrimaryKey(OpenBusiness record);
}

30
ptos_tall/src/main/java/com/ccsens/ptos_tall/persist/mapper/SysBusinessMapper.java

@ -1,30 +0,0 @@
package com.ccsens.ptos_tall.persist.mapper;
import com.ccsens.ptos_tall.bean.po.SysBusiness;
import com.ccsens.ptos_tall.bean.po.SysBusinessExample;
import java.util.List;
import org.apache.ibatis.annotations.Param;
public interface SysBusinessMapper {
long countByExample(SysBusinessExample example);
int deleteByExample(SysBusinessExample example);
int deleteByPrimaryKey(Long id);
int insert(SysBusiness record);
int insertSelective(SysBusiness record);
List<SysBusiness> selectByExample(SysBusinessExample example);
SysBusiness selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") SysBusiness record, @Param("example") SysBusinessExample example);
int updateByExample(@Param("record") SysBusiness record, @Param("example") SysBusinessExample example);
int updateByPrimaryKeySelective(SysBusiness record);
int updateByPrimaryKey(SysBusiness record);
}

51
ptos_tall/src/main/java/com/ccsens/ptos_tall/service/BusinessService.java

@ -1,17 +1,22 @@
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.JSONObject;
import com.ccsens.ptos_tall.bean.dto.BusinessDto;
import com.ccsens.util.JwtUtil;
import com.ccsens.util.RedisKeyManager;
import com.ccsens.util.RedisUtil;
import com.ccsens.util.WebConstant;
import com.ccsens.ptos_tall.bean.vo.BusinessVo;
import com.ccsens.ptos_tall.bean.vo.PluginVo;
import com.ccsens.ptos_tall.persist.dao.BusinessPluginDao;
import com.ccsens.ptos_tall.util.PtOsConstant;
import com.ccsens.util.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
@Slf4j
@ -20,6 +25,8 @@ import java.util.Map;
public class BusinessService implements IBusinessService {
@Resource
private RedisUtil redisUtil;
@Resource
private BusinessPluginDao businessPluginDao;
@Override
public String getAccessTokenByAppId(BusinessDto.BusinessToken params) {
@ -33,4 +40,40 @@ public class BusinessService implements IBusinessService {
redisUtil.set(RedisKeyManager.getTokenCachedKey(params.getAppId()), accessToken, tokenExpired / 1000);
return accessToken;
}
@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() {
Long lastAnswerTime = System.currentTimeMillis() - PtOsConstant.LAST_ANSWER_TIME;
return businessPluginDao.queryBusiness(lastAnswerTime);
}
}

58
ptos_tall/src/main/java/com/ccsens/ptos_tall/service/HeartbeatService.java

@ -1,18 +1,12 @@
package com.ccsens.ptos_tall.service;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.asymmetric.KeyType;
import cn.hutool.crypto.asymmetric.RSA;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.ccsens.ptos_tall.bean.po.SysBusiness;
import com.ccsens.ptos_tall.bean.po.SysBusinessExample;
import com.ccsens.ptos_tall.persist.mapper.SysBusinessMapper;
import com.ccsens.ptos_tall.bean.po.OpenBusiness;
import com.ccsens.ptos_tall.bean.po.OpenBusinessExample;
import com.ccsens.ptos_tall.persist.mapper.OpenBusinessMapper;
import com.ccsens.util.RestTemplateUtil;
import com.ccsens.util.exception.BaseException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
@ -20,7 +14,9 @@ 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;
/**
* @author
@ -30,34 +26,40 @@ import java.util.List;
@Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
public class HeartbeatService{
@Resource
private SysBusinessMapper businessMapper;
private OpenBusinessMapper businessMapper;
/**
* 定时发送心跳信息
*/
@Scheduled(cron="0 */10 * * * ?")
@Scheduled(cron="0/30 * * * * ?")
public void sendHeartbeat(){
//查找业务列表
SysBusinessExample businessExample = new SysBusinessExample();
businessExample.clear();
List<SysBusiness> sysBusinesses = businessMapper.selectByExample(businessExample);
OpenBusinessExample businessExample = new OpenBusinessExample();
businessExample.createCriteria().andTypeEqualTo((byte) 0);
List<OpenBusiness> openBusinesses = businessMapper.selectByExample(businessExample);
//循环请求业务
if(CollectionUtil.isNotEmpty(sysBusinesses)){
sysBusinesses.forEach(sysBusiness -> {
sysBusiness.setLastAskTime(System.currentTimeMillis());
businessMapper.updateByPrimaryKeySelective(sysBusiness);
if(CollectionUtil.isNotEmpty(openBusinesses)){
openBusinesses.forEach(business -> {
business.setLastAskTime(System.currentTimeMillis());
businessMapper.updateByPrimaryKeySelective(business);
//发送心跳
String url = sysBusiness.getUrl() + "/heart/tall";
String url = business.getUrl() + "/tall/heart";
log.info("调用接口:{}--", url);
String postBody = RestTemplateUtil.postBody(url,null);
JSONObject jsonObject = JSONObject.parseObject(postBody);
log.info("接口返回:{}", jsonObject);
//请求正确返回则修改最后应答时间,否则无操作
Integer code = jsonObject.getInteger("code");
if (code != null && code == 200) {
sysBusiness.setLastAnswerTime(System.currentTimeMillis());
businessMapper.updateByPrimaryKeySelective(sysBusiness);
String postBody = null;
try{
postBody = RestTemplateUtil.postBody(url,null);
}catch (Exception e){
log.error("请求业务心跳异常--" + business.getName() + e);
}
if(StrUtil.isNotBlank(postBody)){
JSONObject jsonObject = JSONObject.parseObject(postBody);
log.info("接口返回:{}", jsonObject);
//请求正确返回则修改最后应答时间,否则无操作
Integer code = jsonObject.getInteger("code");
if (code != null && code == 200) {
business.setLastAnswerTime(System.currentTimeMillis());
businessMapper.updateByPrimaryKeySelective(business);
}
}
});
}

16
ptos_tall/src/main/java/com/ccsens/ptos_tall/service/IBusinessService.java

@ -1,6 +1,10 @@
package com.ccsens.ptos_tall.service;
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 java.util.List;
public interface IBusinessService {
/**
@ -10,4 +14,16 @@ public interface IBusinessService {
*/
String getAccessTokenByAppId(BusinessDto.BusinessToken params);
/**
* 查号零号业务内的引导页插件
* @param type 0引导页 1广告页
* @return 返回插件详情
*/
PluginVo.PluginInfo getGuidePlugin(Byte type);
/**
* 查找域内在线启用且开放的业务列表不包括零号业务
* @return 返回业务列表
*/
List<BusinessVo.BusinessInfo> queryBusiness();
}

2
ptos_tall/src/main/java/com/ccsens/ptos_tall/service/IProjectService.java

@ -15,7 +15,7 @@ public interface IProjectService {
* @param userId userId
* @return 返回项目列表
*/
List<ProjectVo.ProjectInfo> queryProjectByUser(String phone, ProjectDto.QueryProjectDto param, Long userId);
List<ProjectVo.ProjectInfo> queryProjectByUser(String token,String phone, ProjectDto.QueryProjectDto param, Long userId);
/**
* 根据手机号获取项目信息

4
ptos_tall/src/main/java/com/ccsens/ptos_tall/service/IUserService.java

@ -15,14 +15,14 @@ public interface IUserService {
* @param deviceId 设备id
* @return 返回token
*/
UserVo.TokenBean userSignin(UserDto.SigninDto params, String deviceId,String clientIp);
UserVo.TokenBean userSignin(UserDto.SigninDto params, String deviceId,String clientIp) throws Exception;
/**
* 业务根据token获取用户信息
* @param params 业务app和token
* @return 返回用户信息
*/
UserVo.TokenToUserId userByBusinessToken(UserDto.BusinessToken params);
UserVo.TokenToUserId userByBusinessToken(String accessToken,UserDto.BusinessToken params);
/**
* 获取手机验证码

97
ptos_tall/src/main/java/com/ccsens/ptos_tall/service/ProjectService.java

@ -2,25 +2,24 @@ package com.ccsens.ptos_tall.service;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.ccsens.cloudutil.bean.ptos.dto.FeignProjectDto;
import com.ccsens.cloudutil.bean.ptos.vo.FeignProjectVo;
import com.ccsens.cloudutil.feign.DiplomatistFeignClient;
import com.ccsens.ptos_tall.bean.dto.ProjectDto;
import com.ccsens.ptos_tall.bean.po.IdcDomain;
import com.ccsens.ptos_tall.bean.po.OpenBusiness;
import com.ccsens.ptos_tall.bean.po.OpenBusinessExample;
import com.ccsens.ptos_tall.bean.po.SysAuth;
import com.ccsens.ptos_tall.bean.po.SysBusiness;
import com.ccsens.ptos_tall.bean.po.SysBusinessExample;
import com.ccsens.ptos_tall.bean.vo.ProjectVo;
import com.ccsens.ptos_tall.bean.vo.UserVo;
import com.ccsens.ptos_tall.persist.dao.IdcDomainDao;
import com.ccsens.ptos_tall.persist.dao.SysAuthDao;
import com.ccsens.ptos_tall.persist.mapper.SysBusinessMapper;
import com.ccsens.ptos_tall.persist.mapper.OpenBusinessMapper;
import com.ccsens.ptos_tall.util.PtOsConstant;
import com.ccsens.util.JsonResponse;
import com.ccsens.util.RestTemplateUtil;
import com.ccsens.util.WebConstant;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
@ -37,7 +36,7 @@ import java.util.*;
@Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
public class ProjectService implements IProjectService {
@Resource
private SysBusinessMapper businessMapper;
private OpenBusinessMapper businessMapper;
@Resource
private DiplomatistFeignClient diplomatistFeignClient;
@Resource
@ -46,7 +45,7 @@ public class ProjectService implements IProjectService {
private IUserService userService;
@Override
public List<ProjectVo.ProjectInfo> queryProjectByUser(String phone, ProjectDto.QueryProjectDto param, Long userId) {
public List<ProjectVo.ProjectInfo> queryProjectByUser(String token,String phone, ProjectDto.QueryProjectDto param, Long userId) {
List<ProjectVo.ProjectInfo> projectInfoList = new ArrayList<>();
//访问传达室,请求该用户在其他域的项目信息
@ -65,20 +64,57 @@ public class ProjectService implements IProjectService {
});
}
}
queryBusinessProject(token, projectInfoList,param.getStartTime(),param.getEndTime());
//TODO 排序
//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 项目列表
*/
private void queryBusinessProject(String token, List<ProjectVo.ProjectInfo> projectInfoList,Long startTime,Long endTime) {
//查询本域所有在线的业务信息
Long lastAnswerTime = System.currentTimeMillis() - PtOsConstant.LAST_ANSWER_TIME;
SysBusinessExample businessExample = new SysBusinessExample();
OpenBusinessExample businessExample = new OpenBusinessExample();
businessExample.createCriteria().andLastAnswerTimeGreaterThanOrEqualTo(lastAnswerTime).andTypeEqualTo((byte) 0);
List<SysBusiness> sysBusinesses = businessMapper.selectByExample(businessExample);
List<OpenBusiness> openBusinessList = businessMapper.selectByExample(businessExample);
//遍历业务
if(CollectionUtil.isNotEmpty(sysBusinesses)){
for (SysBusiness business : sysBusinesses) {
String url = business.getUrl() + "/project/query";
if(CollectionUtil.isNotEmpty(openBusinessList)){
for (OpenBusiness business : openBusinessList) {
String url = business.getUrl() + "/tall/project/query";
log.info("调用接口:{}--", url);
//TODO token
String postBody = RestTemplateUtil.postBody(url,param);
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);
//请求正确返回则修改最后应答时间,否则无操作
@ -101,40 +137,25 @@ public class ProjectService implements IProjectService {
}
}
}
//TODO 排序
//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;
}
@Override
public List<ProjectVo.ProjectInfo> queryProjectByPhone(ProjectDto.QueryProjectByPhone param) {
List<ProjectVo.ProjectInfo> projectInfos = new ArrayList<>();
//根据手机号查询用户信息
SysAuth sysAuth = sysAuthDao.getByPhone(param.getPhone().get(0));
//生成token
Map<String, Object> theMap = CollectionUtil.newHashMap();
theMap.put("authId", String.valueOf(sysAuth.getId()));
UserVo.TokenBean tokenBean = userService.generateToken(sysAuth.getUserId(), sysAuth.getId());
//TODO
//查找所有在线的业务
//遍历业务
//查询用户在业务内的项目信息(带token过去)
return null;
//查找所有在线的业务的项目
queryBusinessProject(tokenBean.getToken(),projectInfos,param.getStartTime(),param.getEndTime());
return projectInfos;
}
//TODO
@Override
public List<String> haveProjectDay(ProjectDto.QueryHaveProject param, Long userId) {
//返回值

88
ptos_tall/src/main/java/com/ccsens/ptos_tall/service/UserService.java

@ -10,6 +10,7 @@ import com.ccsens.ptos_tall.bean.po.*;
import com.ccsens.ptos_tall.bean.vo.UserVo;
import com.ccsens.ptos_tall.persist.dao.SysAuthDao;
import com.ccsens.ptos_tall.persist.dao.SysUserDao;
import com.ccsens.ptos_tall.persist.mapper.OpenBusinessMapper;
import com.ccsens.ptos_tall.persist.mapper.SysSigninLogMapper;
import com.ccsens.ptos_tall.persist.mapper.SysUserDeviceMapper;
import com.ccsens.ptos_tall.util.PtOsCodeError;
@ -27,6 +28,8 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.lang.annotation.Annotation;
import java.security.NoSuchAlgorithmException;
import java.security.spec.InvalidKeySpecException;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
@ -51,9 +54,11 @@ public class UserService implements IUserService {
private SysUserDeviceMapper userDeviceMapper;
@Resource
private SysSigninLogMapper sysSigninLogMapper;
@Resource
private OpenBusinessMapper businessMapper;
@Override
public UserVo.TokenBean userSignin(UserDto.SigninDto params, String deviceId, String clientIp) {
public UserVo.TokenBean userSignin(UserDto.SigninDto params, String deviceId, String clientIp) throws Exception {
if(StrUtil.isBlank(deviceId)){
throw new BaseException(PtOsCodeError.ILLEGAL_LOG_IN);
}
@ -85,6 +90,9 @@ public class UserService implements IUserService {
userSign = phoneLogin(identifier, credential, deviceId);
phone = identifier;
break;
case 3:
userSign = accountLogin(identifier, credential);
break;
case 4:
//微信登录
WebConstant.IDENTIFY_TYPE identifyType = WebConstant.IDENTIFY_TYPE.valueOf(params.getType());
@ -110,6 +118,35 @@ public class UserService implements IUserService {
return tokenBean;
}
/**
* 账号登录
* @param account 账号密码
* @param password 密码
* @return 返回
*/
private UserVo.UserSign accountLogin(String account, String password) throws Exception {
UserVo.UserSign userSignVo;
List<SysAuth> authList;
SysAuth theAuth;
SysAuthExample authExample = new SysAuthExample();
authExample.createCriteria()
.andIdentifyTypeEqualTo((byte) WebConstant.IDENTIFY_TYPE.Account.value).andIdentifierEqualTo(account);
authList = sysAuthDao.selectByExample(authExample);
if (CollectionUtil.isNotEmpty(authList)) {
theAuth = authList.get(0);
if (ShiroKit.authenticate(password, theAuth.getCredential(), theAuth.getSalt())) {
userSignVo = new UserVo.UserSign();
userSignVo.setUserId(theAuth.getUserId());
userSignVo.setAuthId(theAuth.getId());
} else {
throw new BaseException(CodeEnum.PASSWORD_ERROR);
}
} else {
throw new BaseException(CodeEnum.PASSWORD_ERROR);
}
return userSignVo;
}
/**
* 获取token
*/
@ -488,10 +525,53 @@ public class UserService implements IUserService {
}
@Override
public UserVo.TokenToUserId userByBusinessToken(UserDto.BusinessToken params) {
//验证业务的appId和secret
public UserVo.TokenToUserId userByBusinessToken(String accessToken, UserDto.BusinessToken params) {
//验证业务的accessToken
Claims claims;
try {
claims = JwtUtil.parseJWT(accessToken, WebConstant.JWT_ACCESS_TOKEN_SECERT);
}catch(Exception e){
log.info("token无效");
throw new BaseException(CodeEnum.NOT_LOGIN);
}
//检查业务是否存在
String appId = claims.getSubject();
Object secret = claims.get(WebConstant.ACCESS_TOKEN_SECRET);
OpenBusinessExample openBusinessExample = new OpenBusinessExample();
openBusinessExample.createCriteria().andAppIdEqualTo(appId).andSecretEqualTo(String.valueOf(secret));
long l = businessMapper.countByExample(openBusinessExample);
if(l == 0){
throw new BaseException(PtOsCodeError.NOT_BUSINESS);
}
//根据token查找用户信息
//验证token是否有效
// Claims userClaims;
// try {
// userClaims = JwtUtil.parseJWT(params.getToken(), WebConstant.JWT_ACCESS_TOKEN_SECERT);
// }catch(Exception e){
// log.info("token无效");
// throw new BaseException(CodeEnum.NOT_LOGIN);
// }
// //验证用户存根
// if(!redisUtil.hasKey(RedisKeyManager.getTokenCachedKey(Long.valueOf(userClaims.getSubject())))){
// log.info("用户存根不存在:{}",userClaims.getSubject());
// throw new BaseException(CodeEnum.NOT_LOGIN);
// }
// SysUser sysUser = sysUserDao.selectByPrimaryKey(Long.valueOf(userClaims.getSubject()));
// if(ObjectUtil.isNull(sysUser)){
// throw new BaseException(CodeEnum.NOT_LOGIN);
// }
// UserVo.TokenToUserId userInfo = new UserVo.TokenToUserId();
// userInfo.setId(sysUser.getId());
// //获取用户信息
// userInfo.setAvatarUrl(sysUser.getAvatarUrl());
// userInfo.setUserName(sysUser.getName());
// userInfo.setAuthType(sysUser.getAuthType());
//
// //查找手机号
// userInfo.setPhone(sysAuthDao.getPhoneByUserId(sysUser.getId()));
//返回用户信息
return null;
return getUserByToken(params.getToken());
}
}

3
ptos_tall/src/main/java/com/ccsens/ptos_tall/util/PtOsCodeError.java

@ -13,6 +13,7 @@ public class PtOsCodeError extends CodeError {
public static final Code SIGNIN_TYPE_ERROR = new Code(502,"登录类型异常",true);
public static final Code NOT_PHONE = new Code(503,"手机号不能为空",true);
public static final Code NOT_SMS_CODE = new Code(504,"请填写手机号验证码",true);
public static final Code ERROR_SEND_TOO_FAST = new Code(504,"60秒内只能发送一次,请稍后再试",true);
public static final Code ERROR_SEND_TOO_FAST = new Code(505,"60秒内只能发送一次,请稍后再试",true);
public static final Code NOT_BUSINESS = new Code(506,"业务信息异常",true);
}

3
ptos_tall/src/main/java/com/ccsens/ptos_tall/util/PtOsConstant.java

@ -8,6 +8,9 @@ import java.util.Map;
*/
public class PtOsConstant {
/**零号业务路径*/
public static final String ZERO_BUSINESS_URL = "http://127.0.0.1:7310";
/**业务离线时间*/
public static final Long LAST_ANSWER_TIME = 21 * 60 * 1000L;

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

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<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="queryBusiness" resultType="com.ccsens.ptos_tall.bean.vo.BusinessVo$BusinessInfo">
SELECT
id,
`name`
FROM
t_open_business
WHERE
`type` = 0
and pub = 1
and start_using = 1
and last_answer_time >= #{lastAnswerTime}
and rec_status = 0
</select>
</mapper>

93
ptos_tall/src/main/resources/mapper_raw/SysBusinessMapper.xml → ptos_tall/src/main/resources/mapper_raw/OpenBusinessMapper.xml

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ccsens.ptos_tall.persist.mapper.SysBusinessMapper">
<resultMap id="BaseResultMap" type="com.ccsens.ptos_tall.bean.po.SysBusiness">
<mapper namespace="com.ccsens.ptos_tall.persist.mapper.OpenBusinessMapper">
<resultMap id="BaseResultMap" type="com.ccsens.ptos_tall.bean.po.OpenBusiness">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="code" jdbcType="VARCHAR" property="code" />
@ -13,6 +13,9 @@
<result column="last_ask_time" jdbcType="BIGINT" property="lastAskTime" />
<result column="last_answer_time" jdbcType="BIGINT" property="lastAnswerTime" />
<result column="type" jdbcType="TINYINT" property="type" />
<result column="pub" jdbcType="TINYINT" property="pub" />
<result column="start_using" jdbcType="TINYINT" property="startUsing" />
<result column="debug" jdbcType="TINYINT" property="debug" />
<result column="operator" jdbcType="BIGINT" property="operator" />
<result column="created_at" jdbcType="TIMESTAMP" property="createdAt" />
<result column="updated_at" jdbcType="TIMESTAMP" property="updatedAt" />
@ -78,15 +81,15 @@
</sql>
<sql id="Base_Column_List">
id, name, code, description, url, app_id, secret, creator_id, last_ask_time, last_answer_time,
type, operator, created_at, updated_at, rec_status
type, pub, start_using, debug, operator, created_at, updated_at, rec_status
</sql>
<select id="selectByExample" parameterType="com.ccsens.ptos_tall.bean.po.SysBusinessExample" resultMap="BaseResultMap">
<select id="selectByExample" parameterType="com.ccsens.ptos_tall.bean.po.OpenBusinessExample" resultMap="BaseResultMap">
select
<if test="distinct">
distinct
</if>
<include refid="Base_Column_List" />
from t_sys_business
from t_open_business
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
@ -97,35 +100,37 @@
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from t_sys_business
from t_open_business
where id = #{id,jdbcType=BIGINT}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
delete from t_sys_business
delete from t_open_business
where id = #{id,jdbcType=BIGINT}
</delete>
<delete id="deleteByExample" parameterType="com.ccsens.ptos_tall.bean.po.SysBusinessExample">
delete from t_sys_business
<delete id="deleteByExample" parameterType="com.ccsens.ptos_tall.bean.po.OpenBusinessExample">
delete from t_open_business
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</delete>
<insert id="insert" parameterType="com.ccsens.ptos_tall.bean.po.SysBusiness">
insert into t_sys_business (id, name, code,
<insert id="insert" parameterType="com.ccsens.ptos_tall.bean.po.OpenBusiness">
insert into t_open_business (id, name, code,
description, url, app_id,
secret, creator_id, last_ask_time,
last_answer_time, type, operator,
last_answer_time, type, pub,
start_using, debug, operator,
created_at, updated_at, rec_status
)
values (#{id,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{code,jdbcType=VARCHAR},
#{description,jdbcType=VARCHAR}, #{url,jdbcType=VARCHAR}, #{appId,jdbcType=VARCHAR},
#{secret,jdbcType=VARCHAR}, #{creatorId,jdbcType=BIGINT}, #{lastAskTime,jdbcType=BIGINT},
#{lastAnswerTime,jdbcType=BIGINT}, #{type,jdbcType=TINYINT}, #{operator,jdbcType=BIGINT},
#{lastAnswerTime,jdbcType=BIGINT}, #{type,jdbcType=TINYINT}, #{pub,jdbcType=TINYINT},
#{startUsing,jdbcType=TINYINT}, #{debug,jdbcType=TINYINT}, #{operator,jdbcType=BIGINT},
#{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT}
)
</insert>
<insert id="insertSelective" parameterType="com.ccsens.ptos_tall.bean.po.SysBusiness">
insert into t_sys_business
<insert id="insertSelective" parameterType="com.ccsens.ptos_tall.bean.po.OpenBusiness">
insert into t_open_business
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
@ -160,6 +165,15 @@
<if test="type != null">
type,
</if>
<if test="pub != null">
pub,
</if>
<if test="startUsing != null">
start_using,
</if>
<if test="debug != null">
debug,
</if>
<if test="operator != null">
operator,
</if>
@ -207,6 +221,15 @@
<if test="type != null">
#{type,jdbcType=TINYINT},
</if>
<if test="pub != null">
#{pub,jdbcType=TINYINT},
</if>
<if test="startUsing != null">
#{startUsing,jdbcType=TINYINT},
</if>
<if test="debug != null">
#{debug,jdbcType=TINYINT},
</if>
<if test="operator != null">
#{operator,jdbcType=BIGINT},
</if>
@ -221,14 +244,14 @@
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.ccsens.ptos_tall.bean.po.SysBusinessExample" resultType="java.lang.Long">
select count(*) from t_sys_business
<select id="countByExample" parameterType="com.ccsens.ptos_tall.bean.po.OpenBusinessExample" resultType="java.lang.Long">
select count(*) from t_open_business
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</select>
<update id="updateByExampleSelective" parameterType="map">
update t_sys_business
update t_open_business
<set>
<if test="record.id != null">
id = #{record.id,jdbcType=BIGINT},
@ -263,6 +286,15 @@
<if test="record.type != null">
type = #{record.type,jdbcType=TINYINT},
</if>
<if test="record.pub != null">
pub = #{record.pub,jdbcType=TINYINT},
</if>
<if test="record.startUsing != null">
start_using = #{record.startUsing,jdbcType=TINYINT},
</if>
<if test="record.debug != null">
debug = #{record.debug,jdbcType=TINYINT},
</if>
<if test="record.operator != null">
operator = #{record.operator,jdbcType=BIGINT},
</if>
@ -281,7 +313,7 @@
</if>
</update>
<update id="updateByExample" parameterType="map">
update t_sys_business
update t_open_business
set id = #{record.id,jdbcType=BIGINT},
name = #{record.name,jdbcType=VARCHAR},
code = #{record.code,jdbcType=VARCHAR},
@ -293,6 +325,9 @@
last_ask_time = #{record.lastAskTime,jdbcType=BIGINT},
last_answer_time = #{record.lastAnswerTime,jdbcType=BIGINT},
type = #{record.type,jdbcType=TINYINT},
pub = #{record.pub,jdbcType=TINYINT},
start_using = #{record.startUsing,jdbcType=TINYINT},
debug = #{record.debug,jdbcType=TINYINT},
operator = #{record.operator,jdbcType=BIGINT},
created_at = #{record.createdAt,jdbcType=TIMESTAMP},
updated_at = #{record.updatedAt,jdbcType=TIMESTAMP},
@ -301,8 +336,8 @@
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByPrimaryKeySelective" parameterType="com.ccsens.ptos_tall.bean.po.SysBusiness">
update t_sys_business
<update id="updateByPrimaryKeySelective" parameterType="com.ccsens.ptos_tall.bean.po.OpenBusiness">
update t_open_business
<set>
<if test="name != null">
name = #{name,jdbcType=VARCHAR},
@ -334,6 +369,15 @@
<if test="type != null">
type = #{type,jdbcType=TINYINT},
</if>
<if test="pub != null">
pub = #{pub,jdbcType=TINYINT},
</if>
<if test="startUsing != null">
start_using = #{startUsing,jdbcType=TINYINT},
</if>
<if test="debug != null">
debug = #{debug,jdbcType=TINYINT},
</if>
<if test="operator != null">
operator = #{operator,jdbcType=BIGINT},
</if>
@ -349,8 +393,8 @@
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<update id="updateByPrimaryKey" parameterType="com.ccsens.ptos_tall.bean.po.SysBusiness">
update t_sys_business
<update id="updateByPrimaryKey" parameterType="com.ccsens.ptos_tall.bean.po.OpenBusiness">
update t_open_business
set name = #{name,jdbcType=VARCHAR},
code = #{code,jdbcType=VARCHAR},
description = #{description,jdbcType=VARCHAR},
@ -361,6 +405,9 @@
last_ask_time = #{lastAskTime,jdbcType=BIGINT},
last_answer_time = #{lastAnswerTime,jdbcType=BIGINT},
type = #{type,jdbcType=TINYINT},
pub = #{pub,jdbcType=TINYINT},
start_using = #{startUsing,jdbcType=TINYINT},
debug = #{debug,jdbcType=TINYINT},
operator = #{operator,jdbcType=BIGINT},
created_at = #{createdAt,jdbcType=TIMESTAMP},
updated_at = #{updatedAt,jdbcType=TIMESTAMP},

4
ptoszero/src/main/resources/mapper_dao/ProRoleDao.xml

@ -27,7 +27,7 @@
and rm.rec_status = 0
and m.rec_status = 0
</select>
<select id="notAttentionQueryRole" resultType="com.ccsensptos.tallsdk.bean.vo.RoleVo$RoleInfo">
<select id="notAttentionQueryRole" resultType="com.ccsensptos.tallsdk.bean.vo.TallRoleVo$RoleInfo">
SELECT
r.id,
r.`name`,
@ -62,7 +62,7 @@
GROUP BY r.id
ORDER BY pm DESC,mine DESC,r.id
</select>
<select id="attentionQueryRole" resultType="com.ccsensptos.tallsdk.bean.vo.RoleVo$RoleInfo">
<select id="attentionQueryRole" resultType="com.ccsensptos.tallsdk.bean.vo.TallRoleVo$RoleInfo">
SELECT
r.id,
r.`name`,

2
ptoszero/src/main/resources/mapper_dao/ProRoleTaskDao.xml

@ -54,7 +54,7 @@
<!-- </select>-->
<select id="queryCheckerOfTask" resultType="com.ccsensptos.tallsdk.bean.vo.TaskVo$CheckerOfTask">
<select id="queryCheckerOfTask" resultType="com.ccsensptos.tallsdk.bean.vo.TallTaskVo$CheckerOfTask">
SELECT
r.id,
r.`name`

4
ptoszero/src/main/resources/mapper_dao/ProTaskDetailDao.xml

@ -2,7 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ccsens.ptoszero.persist.dao.ProTaskDetailDao">
<resultMap id="queryTask" type="com.ccsensptos.tallsdk.bean.vo.TaskVo$QueryTask">
<resultMap id="queryTask" type="com.ccsensptos.tallsdk.bean.vo.TallTaskVo$QueryTask">
<id column="id" property="id"/>
<result column="detailId" property="detailId"/>
<result column="name" property="name"/>
@ -16,7 +16,7 @@
<result column="process" property="process"/>
<result column="skip" property="skip"/>
<result column="skipTaskId" property="skipTaskId"/>
<collection property="panel" ofType="com.ccsensptos.tallsdk.bean.vo.TaskVo$PanelInfo">
<collection property="panel" ofType="com.ccsensptos.tallsdk.bean.vo.TallTaskVo$PanelInfo">
<result column="backgroundColor" property="backgroundColor"/>
<result column="borderRadius" property="borderRadius"/>
<result column="border" property="border"/>

2
ptoszero/src/main/resources/mapper_dao/ProTaskPluginDao.xml

@ -28,7 +28,7 @@
<!-- task_detail_id = #{taskDetailId}-->
<!-- </update>-->
<select id="queryTaskOfPlugin" resultType="com.ccsensptos.tallsdk.bean.vo.TaskVo$TaskPluginInfo">
<select id="queryTaskOfPlugin" resultType="com.ccsensptos.tallsdk.bean.vo.TallTaskVo$TaskPluginInfo">
SELECT
tp.plugin_id AS pluginId,
tp.param As param,

12
tall_sdk/src/main/java/com/ccsensptos/tallsdk/api/ProjectController.java

@ -1,9 +1,9 @@
package com.ccsensptos.tallsdk.api;
import com.ccsens.util.WebConstant;
import com.ccsensptos.tallsdk.bean.dto.ProjectDto;
import com.ccsensptos.tallsdk.bean.dto.TallProjectDto;
import com.ccsensptos.tallsdk.service.ITallService;
import com.ccsensptos.tallsdk.bean.vo.ProjectVo;
import com.ccsensptos.tallsdk.bean.vo.TallProjectVo;
import com.ccsens.util.JsonResponse;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -34,9 +34,9 @@ public class ProjectController {
@ApiOperation(value = "日历页获取项目列表", notes = "")
@RequestMapping(value = "/query", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<ProjectVo.ProjectInfo>> queryProjectByUser(HttpServletRequest request,@ApiParam @Validated @RequestBody ProjectDto.QueryProjectDto params) throws Exception{
public JsonResponse<List<TallProjectVo.ProjectInfo>> queryProjectByUser(HttpServletRequest request, @ApiParam @Validated @RequestBody TallProjectDto.QueryProjectDto params) throws Exception{
log.info("查询用户所有域下所有业务内的所有项目:{}",params);
List<ProjectVo.ProjectInfo> projectInfoList = tallService.queryProjectByUser(request.getHeader(WebConstant.HEADER_KEY_TOKEN),params);
List<TallProjectVo.ProjectInfo> projectInfoList = tallService.queryProjectByUser(request.getHeader(WebConstant.HEADER_KEY_TOKEN),params);
log.info("返回用户所有域下所有业务内的所有项目");
return JsonResponse.newInstance().ok(projectInfoList);
}
@ -44,9 +44,9 @@ public class ProjectController {
@ApiOperation(value = "导入Wbs", notes = "")
@RequestMapping(value = "/wbs", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<ProjectVo.ProjectInfo> queryProjectByUser(HttpServletRequest request,@ApiParam @Validated @RequestBody MultipartFile params) throws Exception{
public JsonResponse<TallProjectVo.ProjectInfo> queryProjectByUser(HttpServletRequest request, @ApiParam @Validated @RequestBody MultipartFile params) throws Exception{
log.info("导入Wbs:{}",params);
List<ProjectVo.ProjectInfo> projectInfoList = tallService.importWbs(request.getHeader(WebConstant.HEADER_KEY_TOKEN),params);
TallProjectVo.ProjectInfo projectInfoList = tallService.importWbs(request.getHeader(WebConstant.HEADER_KEY_TOKEN),params);
log.info("导入Wbs");
return JsonResponse.newInstance().ok(projectInfoList);
}

8
tall_sdk/src/main/java/com/ccsensptos/tallsdk/api/RoleController.java

@ -1,8 +1,8 @@
package com.ccsensptos.tallsdk.api;
import com.ccsens.util.WebConstant;
import com.ccsensptos.tallsdk.bean.dto.RoleDto;
import com.ccsensptos.tallsdk.bean.vo.RoleVo;
import com.ccsensptos.tallsdk.bean.dto.TallRoleDto;
import com.ccsensptos.tallsdk.bean.vo.TallRoleVo;
import com.ccsensptos.tallsdk.service.ITallService;
import com.ccsens.util.JsonResponse;
import io.swagger.annotations.Api;
@ -33,9 +33,9 @@ public class RoleController {
@ApiOperation(value = "根据项目id查找角色", notes = "")
@RequestMapping(value = "/show", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<RoleVo.QueryRole> queryByProjectId(HttpServletRequest request, @ApiParam @Validated @RequestBody RoleDto.QueryRoleById params) {
public JsonResponse<TallRoleVo.QueryRole> queryByProjectId(HttpServletRequest request, @ApiParam @Validated @RequestBody TallRoleDto.QueryRoleById params) {
log.info("根据项目id查找角色{}",params);
RoleVo.QueryRole queryRole = tallService.queryShowRole(request.getHeader(WebConstant.HEADER_KEY_TOKEN),params);
TallRoleVo.QueryRole queryRole = tallService.queryShowRole(request.getHeader(WebConstant.HEADER_KEY_TOKEN),params);
log.info("项目id查找角色列表{}",queryRole);
return JsonResponse.newInstance().ok(queryRole);
}

16
tall_sdk/src/main/java/com/ccsensptos/tallsdk/api/TaskController.java

@ -2,8 +2,8 @@ package com.ccsensptos.tallsdk.api;
import com.ccsens.util.WebConstant;
import com.ccsensptos.tallsdk.service.ITallService;
import com.ccsensptos.tallsdk.bean.dto.TaskDto;
import com.ccsensptos.tallsdk.bean.vo.TaskVo;
import com.ccsensptos.tallsdk.bean.dto.TallTaskDto;
import com.ccsensptos.tallsdk.bean.vo.TallTaskVo;
import com.ccsens.util.JsonResponse;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -34,24 +34,24 @@ public class TaskController {
@ApiOperation(value = "查找永久日常任务", notes = "")
@RequestMapping(value = "/permanent", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<TaskVo.QueryTask>> queryPermanentGlobalTask(HttpServletRequest request,@ApiParam @Validated @RequestBody TaskDto.QueryPermanentGlobalTask params) {
List<TaskVo.QueryTask> queryTasks = tallService.queryPermanentGlobalTask(request.getHeader(WebConstant.HEADER_KEY_TOKEN),params);
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);
return JsonResponse.newInstance().ok(queryTasks);
}
@ApiOperation(value = "查找带时间的日常任务", notes = "")
@RequestMapping(value = "/global", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<TaskVo.QueryTask>> queryGlobalTask(HttpServletRequest request,@ApiParam @Validated @RequestBody TaskDto.QueryGlobalTask params) {
List<TaskVo.QueryTask> queryTasks = tallService.queryGlobalTask(request.getHeader(WebConstant.HEADER_KEY_TOKEN),params);
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);
return JsonResponse.newInstance().ok(queryTasks);
}
@ApiOperation(value = "查找定期任务", notes = "")
@RequestMapping(value = "/regular", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<TaskVo.QueryTask>> queryRegularTask(HttpServletRequest request, @ApiParam @Validated @RequestBody TaskDto.QueryRegularTask params) {
List<TaskVo.QueryTask> queryTasks = tallService.queryRegularTask(request.getHeader(WebConstant.HEADER_KEY_TOKEN),params);
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);
return JsonResponse.newInstance().ok(queryTasks);
}
}

2
tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/dto/ProjectDto.java → tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/dto/TallProjectDto.java

@ -10,7 +10,7 @@ import javax.validation.constraints.NotNull;
* @author
*/
@Data
public class ProjectDto {
public class TallProjectDto {
@Data
@ApiModel("用户查询可见的项目")

2
tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/dto/RoleDto.java → tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/dto/TallRoleDto.java

@ -7,7 +7,7 @@ import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
public class RoleDto {
public class TallRoleDto {
@Data
@ApiModel("查看角色栏展示")
public static class QueryRoleById{

2
tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/dto/TaskDto.java → tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/dto/TallTaskDto.java

@ -7,7 +7,7 @@ import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
public class TaskDto {
public class TallTaskDto {
@Data
@ApiModel("查看永久日常任务")
public static class QueryPermanentGlobalTask{

11
tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/dto/TokenDto.java → tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/dto/TallTokenDto.java

@ -8,7 +8,7 @@ import lombok.Data;
* @author
*/
@Data
public class TokenDto {
public class TallTokenDto {
@Data
@ -35,6 +35,15 @@ public class TokenDto {
private String appId;
//"secret")
private String secret;
public GetUserByToken() {
}
public GetUserByToken(String token, String appId, String secret) {
this.token = token;
this.appId = appId;
this.secret = secret;
}
}
}

2
tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/vo/ProjectVo.java → tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/vo/TallProjectVo.java

@ -13,7 +13,7 @@ import java.util.List;
* @author
*/
@Data
public class ProjectVo {
public class TallProjectVo {
@Data
@ApiModel("域信息")

2
tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/vo/RoleVo.java → tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/vo/TallRoleVo.java

@ -7,7 +7,7 @@ import lombok.Data;
import java.util.List;
@Data
public class RoleVo {
public class TallRoleVo {
@Data
@ApiModel("查看角色栏展示的角色信息")

2
tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/vo/TaskVo.java → tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/vo/TallTaskVo.java

@ -7,7 +7,7 @@ import lombok.Data;
import java.util.List;
@Data
public class TaskVo {
public class TallTaskVo {
@Data
@ApiModel("查看定期任务返回值")

2
tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/vo/TokenVo.java → tall_sdk/src/main/java/com/ccsensptos/tallsdk/bean/vo/TallTokenVo.java

@ -9,7 +9,7 @@ import lombok.Data;
* @author
*/
@Data
public class TokenVo {
public class TallTokenVo {
@Data
public static class UserIdByToken {

24
tall_sdk/src/main/java/com/ccsensptos/tallsdk/service/ITallService.java

@ -1,11 +1,11 @@
package com.ccsensptos.tallsdk.service;
import com.ccsensptos.tallsdk.bean.dto.ProjectDto;
import com.ccsensptos.tallsdk.bean.dto.RoleDto;
import com.ccsensptos.tallsdk.bean.dto.TaskDto;
import com.ccsensptos.tallsdk.bean.vo.ProjectVo;
import com.ccsensptos.tallsdk.bean.vo.RoleVo;
import com.ccsensptos.tallsdk.bean.vo.TaskVo;
import com.ccsensptos.tallsdk.bean.dto.TallProjectDto;
import com.ccsensptos.tallsdk.bean.dto.TallRoleDto;
import com.ccsensptos.tallsdk.bean.dto.TallTaskDto;
import com.ccsensptos.tallsdk.bean.vo.TallProjectVo;
import com.ccsensptos.tallsdk.bean.vo.TallRoleVo;
import com.ccsensptos.tallsdk.bean.vo.TallTaskVo;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
@ -19,40 +19,40 @@ public interface ITallService {
* @param param 开始结束时间
* @return 返回项目列表
*/
List<ProjectVo.ProjectInfo> queryProjectByUser(String token,ProjectDto.QueryProjectDto param);
List<TallProjectVo.ProjectInfo> queryProjectByUser(String token, TallProjectDto.QueryProjectDto param);
/**
* 查询项目下的角色列表
* @param param 项目id
* @return 返回角色列表
*/
RoleVo.QueryRole queryShowRole(String token,RoleDto.QueryRoleById param);
TallRoleVo.QueryRole queryShowRole(String token, TallRoleDto.QueryRoleById param);
/**
* 查询没有时间的日常任务
* @param param 角色id等
* @return 返回任务列表
*/
List<TaskVo.QueryTask> queryPermanentGlobalTask(String token,TaskDto.QueryPermanentGlobalTask param);
List<TallTaskVo.QueryTask> queryPermanentGlobalTask(String token, TallTaskDto.QueryPermanentGlobalTask param);
/**
* 查询有时间的日常任务
* @param param 角色id和时间
* @return 返回任务列表
*/
List<TaskVo.QueryTask> queryGlobalTask(String token,TaskDto.QueryGlobalTask param);
List<TallTaskVo.QueryTask> queryGlobalTask(String token, TallTaskDto.QueryGlobalTask param);
/**
* 查询定期任务
* @param param 角色id和时间
* @return 返回任务列表
*/
List<TaskVo.QueryTask> queryRegularTask(String token,TaskDto.QueryRegularTask param);
List<TallTaskVo.QueryTask> queryRegularTask(String token, TallTaskDto.QueryRegularTask param);
/**
* 导入wbs
* @param params wbs文件
* @return 返回项目信息
*/
List<ProjectVo.ProjectInfo> importWbs(String token,MultipartFile params);
TallProjectVo.ProjectInfo importWbs(String token, MultipartFile params);
}

55
tall_sdk/src/main/java/com/ccsensptos/tallsdk/util/TokenUtil.java

@ -1,24 +1,19 @@
package com.ccsensptos.tallsdk.util;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.ccsens.util.RedisUtil;
import com.ccsens.util.RestTemplateUtil;
import com.ccsensptos.tallsdk.bean.dto.TokenDto;
import com.ccsensptos.tallsdk.bean.vo.TokenVo;
import com.ccsensptos.tallsdk.bean.dto.TallTokenDto;
import com.ccsensptos.tallsdk.bean.vo.TallTokenVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import javax.servlet.http.HttpServlet;
import java.util.HashMap;
import java.util.Map;
@ -68,7 +63,7 @@ public class TokenUtil {
//查找map内的数据
long now = System.currentTimeMillis();
TokenVo.AccessToken accessToken = (TokenVo.AccessToken) accessTokenMap.get(appId);
TallTokenVo.AccessToken accessToken = (TallTokenVo.AccessToken) accessTokenMap.get(appId);
if(ObjectUtil.isNotNull(accessToken)){
if(accessToken.getTime() + Constant.EXPIRATION_TIME > now){
return accessToken.getAccessToken();
@ -78,10 +73,19 @@ public class TokenUtil {
}
}
//map内查不到,则去请求tall获取新的accessToken
String url = Constant.TALL_URL + Constant.TALL_GET_ACCESS_TOKEN;
TokenDto.GetAccessToken getAccessToken = new TokenDto.GetAccessToken(appId,secret);
log.info("调用接口:{}--{}", url, getAccessToken);
String postBody = RestTemplateUtil.postBody(url, getAccessToken);
String url = "http://127.0.0.1:7290/" + Constant.TALL_GET_ACCESS_TOKEN;
// String url = Constant.TALL_URL + Constant.TALL_GET_ACCESS_TOKEN;
TallTokenDto.GetAccessToken get = new TallTokenDto.GetAccessToken(appId,secret);
log.info("调用接口:{}--{}", url, get);
String postBody = null;
try{
postBody = RestTemplateUtil.postBody(url,get);
}catch (Exception e){
log.error("获取accessToken异常--" + e);
}
if(StrUtil.isBlank(postBody)){
return null;
}
JSONObject jsonObject = JSONObject.parseObject(postBody);
log.info("接口返回:{}", jsonObject);
//请求正确返回则,否则无操作
@ -93,10 +97,10 @@ public class TokenUtil {
if(ObjectUtil.isNull(data)){
return null;
}
TokenVo.AccessToken t = new TokenVo.AccessToken();
TallTokenVo.AccessToken t = new TallTokenVo.AccessToken();
t.setAccessToken(data);
t.setTime(System.currentTimeMillis());
accessTokenMap.put(getAccessToken.getAppId(),t);
accessTokenMap.put(get.getAppId(),t);
return data;
}
@ -104,7 +108,7 @@ public class TokenUtil {
* 通过token获取用户信息
* @return 返回accessToken
*/
public static TokenVo.UserIdByToken getUserByToken(TokenDto.GetUserByToken getUserByToken){
public static TallTokenVo.UserIdByToken getUserByToken(TallTokenDto.GetUserByToken getUserByToken){
//查看业务是否开启redis缓存
// if(REDIS_IS_OPEN.equals(openRedis)){
// //查询token是否存在
@ -115,11 +119,20 @@ public class TokenUtil {
//调用tall的接口生成查询项目信息
//发送请求
String url = Constant.TALL_URL + Constant.TALL_USER_TOKEN;
// String url = Constant.TALL_URL + Constant.TALL_USER_TOKEN;
String url = "http://127.0.0.1:7290/" + Constant.TALL_USER_TOKEN;
log.info("调用接口:{}--{}", url, getUserByToken);
Map<String,String> map = new HashMap<>();
map.put(Constant.ACCESS_TOKEN,getAccessToken(getUserByToken.getAppId(),getUserByToken.getSecret()));
String postBody = RestTemplateUtil.postBodySpecialHeader(url, getUserByToken,map);
String postBody = null;
try{
Map<String,String> map = new HashMap<>();
map.put(Constant.ACCESS_TOKEN,getAccessToken(getUserByToken.getAppId(),getUserByToken.getSecret()));
postBody = RestTemplateUtil.postBodySpecialHeader(url, getUserByToken,map);
}catch (Exception e){
log.error("获取accessToken异常--" + e);
}
if(StrUtil.isBlank(postBody)){
return null;
}
JSONObject jsonObject = JSONObject.parseObject(postBody);
log.info("接口返回:{}", jsonObject);
//请求正确返回则,否则无操作
@ -131,9 +144,9 @@ public class TokenUtil {
if(ObjectUtil.isNull(data)){
return null;
}
TokenVo.UserIdByToken userIdByToken;
TallTokenVo.UserIdByToken userIdByToken;
try {
userIdByToken = JSON.parseObject(data,TokenVo.UserIdByToken.class);
userIdByToken = JSON.parseObject(data, TallTokenVo.UserIdByToken.class);
}catch (Exception e){
log.info("返回值转换失败");
return null;

1
util/src/main/java/com/ccsens/util/WebConstant.java

@ -190,6 +190,7 @@ public class WebConstant {
public static final String PARAMETER_KEY_TOKEN = "token";
public static final String PARAMETER_KEY_TOKEN_AUTH_ID = "authId";
public static final String ACCESS_TOKEN_SECRET = "secret";
public static final String HEADER_KEY_TOKEN = "Authorization";
public static final String HEADER_KEY_MD5 = "md5";
public static final String HEADER_KEY_TOKEN_PREFIX = "Bearer ";

2
util/src/main/java/com/ccsens/util/bean/dto/QueryDto.java

@ -34,5 +34,7 @@ public class QueryDto<T> {
private Byte clientType;
@ApiModelProperty("ip地址")
private String clientIp;
@ApiModelProperty("token")
private String token;
}

Loading…
Cancel
Save