Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
W
wangxiaolu-link-report
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
sfa
wangxiaolu-link-report
Commits
5219fadc
提交
5219fadc
authored
12月 11, 2025
作者:
吕本才
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(report): 新增QuickBI报表嵌入管理功能
上级
b9a00811
隐藏空白字符变更
内嵌
并排
正在显示
12 个修改的文件
包含
877 行增加
和
0 行删除
+877
-0
ExtraQuickBiConfig.java
src/main/java/com/link/report/config/ExtraQuickBiConfig.java
+26
-0
ExtraReportQuickbiEmbedController.java
...t/controller/query/ExtraReportQuickbiEmbedController.java
+80
-0
ExtraReportQuickbiEmbedDao.java
...om/link/report/domain/dao/ExtraReportQuickbiEmbedDao.java
+21
-0
ExtraReportQuickbiEmbedDaoImpl.java
...eport/domain/dao/impl/ExtraReportQuickbiEmbedDaoImpl.java
+93
-0
ExtraReportQuickbiEmbed.java
...om/link/report/domain/entity/ExtraReportQuickbiEmbed.java
+90
-0
ExtraReportQuickbiEmbedMapper.java
...k/report/domain/mapper/ExtraReportQuickbiEmbedMapper.java
+13
-0
ExtraReportQuickbiEmbedDto.java
...java/com/link/report/pojo/ExtraReportQuickbiEmbedDto.java
+69
-0
ExtraReportQuickbiEmbedDto.java
.../com/link/report/pojo/dto/ExtraReportQuickbiEmbedDto.java
+69
-0
ExtraReportQuickbiEmbedBo.java
...m/link/report/pojo/request/ExtraReportQuickbiEmbedBo.java
+44
-0
ExtraReportQuickbiEmbedVo.java
.../link/report/pojo/response/ExtraReportQuickbiEmbedVo.java
+87
-0
ExtraReportQuickbiEmbedService.java
.../report/service/query/ExtraReportQuickbiEmbedService.java
+46
-0
ExtraReportQuickbiEmbedServiceImpl.java
...ervice/query/impl/ExtraReportQuickbiEmbedServiceImpl.java
+239
-0
没有找到文件。
src/main/java/com/link/report/config/ExtraQuickBiConfig.java
0 → 100644
浏览文件 @
5219fadc
package
com
.
link
.
report
.
config
;
import
lombok.Data
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.stereotype.Component
;
/**
* 扩展报表配置
*
* @author : lvbencai
* @date : 2025-12-05
* @describe :
*/
@ConfigurationProperties
(
prefix
=
"extra.quickbi"
)
@Data
@Component
public
class
ExtraQuickBiConfig
{
private
String
aliyunUid
;
// AccessKey ID和AccessKey Secret。
private
String
accessId
;
// AccessKey ID和AccessKey Secret。
private
String
accessKey
;
}
src/main/java/com/link/report/controller/query/ExtraReportQuickbiEmbedController.java
0 → 100644
浏览文件 @
5219fadc
package
com
.
link
.
report
.
controller
.
query
;
import
com.link.report.pojo.request.ExtraReportQuickbiEmbedBo
;
import
com.link.report.pojo.response.ExtraReportQuickbiEmbedVo
;
import
com.link.report.service.query.ExtraReportQuickbiEmbedService
;
import
com.sfa.common.core.domain.R
;
import
com.sfa.common.core.web.controller.BaseController
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
/**
* QuickBI报表嵌入信息控制器
* @author lvbencai
* @date 2025年12月12日
*/
@RestController
@RequestMapping
(
"/extra/quickbi/embed"
)
//@Api(tags = "QuickBI报表嵌入管理")
public
class
ExtraReportQuickbiEmbedController
extends
BaseController
{
@Autowired
private
ExtraReportQuickbiEmbedService
extraReportQuickbiEmbedService
;
@PostMapping
// @ApiOperation("新增QuickBI报表嵌入信息")
public
R
<
ExtraReportQuickbiEmbedVo
>
insert
(
@RequestBody
ExtraReportQuickbiEmbedBo
bo
)
{
ExtraReportQuickbiEmbedVo
vo
=
extraReportQuickbiEmbedService
.
insert
(
bo
);
return
R
.
ok
(
vo
);
}
@PutMapping
// @ApiOperation("更新QuickBI报表嵌入信息")
public
R
<
ExtraReportQuickbiEmbedVo
>
update
(
@RequestBody
ExtraReportQuickbiEmbedBo
bo
)
{
ExtraReportQuickbiEmbedVo
vo
=
extraReportQuickbiEmbedService
.
update
(
bo
);
return
vo
!=
null
?
R
.
ok
(
vo
)
:
R
.
fail
(
"更新失败,记录不存在"
);
}
@GetMapping
(
"/{id}"
)
// @ApiOperation("根据ID查询QuickBI报表嵌入信息")
public
R
<
ExtraReportQuickbiEmbedVo
>
getById
(
@PathVariable
Long
id
)
{
ExtraReportQuickbiEmbedVo
vo
=
extraReportQuickbiEmbedService
.
getById
(
id
);
return
vo
!=
null
?
R
.
ok
(
vo
)
:
R
.
fail
(
"记录不存在"
);
}
@GetMapping
(
"/page/{pageId}"
)
// @ApiOperation("根据pageId查询QuickBI报表嵌入信息")
public
R
<
ExtraReportQuickbiEmbedVo
>
getByPageId
(
@PathVariable
String
pageId
)
{
ExtraReportQuickbiEmbedVo
vo
=
extraReportQuickbiEmbedService
.
getByPageId
(
pageId
);
return
vo
!=
null
?
R
.
ok
(
vo
)
:
R
.
fail
(
"记录不存在"
);
}
/**
* 查询所有QuickBI报表嵌入信息列表
* @return
*/
@GetMapping
(
"/list"
)
// @ApiOperation("查询所有QuickBI报表嵌入信息列表")
public
R
<
List
<
ExtraReportQuickbiEmbedVo
>>
listAll
()
{
List
<
ExtraReportQuickbiEmbedVo
>
list
=
extraReportQuickbiEmbedService
.
listAll
();
return
R
.
ok
(
list
);
}
@DeleteMapping
(
"/{id}"
)
// @ApiOperation("删除QuickBI报表嵌入信息")
public
R
<
Boolean
>
deleteById
(
@PathVariable
Long
id
)
{
boolean
result
=
extraReportQuickbiEmbedService
.
deleteById
(
id
);
return
result
?
R
.
ok
(
true
)
:
R
.
fail
(
"删除失败,记录不存在"
);
}
/**
* 获取quickbi的accessTicket
* @return accessTicket
*/
@GetMapping
(
"/accessTicket"
)
public
R
<
ExtraReportQuickbiEmbedVo
>
queryAccessTicket
(
Long
id
)
{
return
R
.
ok
(
extraReportQuickbiEmbedService
.
queryAccessTicket
(
id
));
}
}
src/main/java/com/link/report/domain/dao/ExtraReportQuickbiEmbedDao.java
0 → 100644
浏览文件 @
5219fadc
package
com
.
link
.
report
.
domain
.
dao
;
import
com.link.report.domain.entity.ExtraReportQuickbiEmbed
;
import
java.util.List
;
public
interface
ExtraReportQuickbiEmbedDao
{
int
insert
(
ExtraReportQuickbiEmbed
entity
);
int
updateById
(
ExtraReportQuickbiEmbed
entity
);
ExtraReportQuickbiEmbed
selectById
(
Long
id
);
ExtraReportQuickbiEmbed
selectByPageId
(
String
pageId
);
List
<
ExtraReportQuickbiEmbed
>
selectAll
();
int
deleteById
(
Long
id
);
void
update
(
ExtraReportQuickbiEmbed
entity
);
}
src/main/java/com/link/report/domain/dao/impl/ExtraReportQuickbiEmbedDaoImpl.java
0 → 100644
浏览文件 @
5219fadc
package
com
.
link
.
report
.
domain
.
dao
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.link.report.domain.dao.ExtraReportQuickbiEmbedDao
;
import
com.link.report.domain.entity.ExtraReportQuickbiEmbed
;
import
com.link.report.domain.mapper.ExtraReportQuickbiEmbedMapper
;
import
org.springframework.stereotype.Repository
;
import
javax.annotation.Resource
;
import
java.util.List
;
/**
* QuickBI报表嵌入信息 DAO层
* 负责与数据库交互,通过mapper执行CRUD操作
*/
@Repository
public
class
ExtraReportQuickbiEmbedDaoImpl
implements
ExtraReportQuickbiEmbedDao
{
@Resource
private
ExtraReportQuickbiEmbedMapper
extraReportQuickbiEmbedMapper
;
/**
* 新增报表嵌入信息
*
* @param entity 报表嵌入信息实体
* @return 影响行数
*/
@Override
public
int
insert
(
ExtraReportQuickbiEmbed
entity
)
{
return
extraReportQuickbiEmbedMapper
.
insert
(
entity
);
}
/**
* 更新报表嵌入信息
*
* @param entity 报表嵌入信息实体(含更新条件)
* @return 影响行数
*/
@Override
public
int
updateById
(
ExtraReportQuickbiEmbed
entity
)
{
return
extraReportQuickbiEmbedMapper
.
updateById
(
entity
);
}
/**
* 根据ID查询报表嵌入信息
*
* @param id 主键ID
* @return 报表嵌入信息实体
*/
@Override
public
ExtraReportQuickbiEmbed
selectById
(
Long
id
)
{
return
extraReportQuickbiEmbedMapper
.
selectById
(
id
);
}
/**
* 根据pageId查询报表嵌入信息
*
* @param pageId QuickBI报表唯一标识ID
* @return 报表嵌入信息实体
*/
@Override
public
ExtraReportQuickbiEmbed
selectByPageId
(
String
pageId
)
{
QueryWrapper
<
ExtraReportQuickbiEmbed
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
eq
(
"page_id"
,
pageId
);
// 匹配数据库字段page_id
return
extraReportQuickbiEmbedMapper
.
selectOne
(
queryWrapper
);
}
/**
* 查询所有报表嵌入信息
*
* @return 报表嵌入信息列表
*/
@Override
public
List
<
ExtraReportQuickbiEmbed
>
selectAll
()
{
return
extraReportQuickbiEmbedMapper
.
selectList
(
null
);
}
/**
* 根据ID删除报表嵌入信息(逻辑删除)
*
* @param id 主键ID
* @return 影响行数
*/
@Override
public
int
deleteById
(
Long
id
)
{
return
extraReportQuickbiEmbedMapper
.
deleteById
(
id
);
}
@Override
public
void
update
(
ExtraReportQuickbiEmbed
entity
)
{
extraReportQuickbiEmbedMapper
.
updateById
(
entity
);
}
}
src/main/java/com/link/report/domain/entity/ExtraReportQuickbiEmbed.java
0 → 100644
浏览文件 @
5219fadc
package
com
.
link
.
report
.
domain
.
entity
;
import
com.baomidou.mybatisplus.annotation.*
;
import
com.link.report.pojo.request.ExtraReportQuickbiEmbedBo
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* QuickBI报表嵌入信息表实体类
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
@Accessors
(
chain
=
true
)
@TableName
(
"extra_report_quickbi_embed"
)
public
class
ExtraReportQuickbiEmbed
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 主键ID
*/
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
* QuickBI报表名称
*/
private
String
name
;
/**
* 报表预览访问地址
*/
private
String
previewUrl
;
/**
* QuickBI报表唯一标识ID
*/
private
String
pageId
;
/**
* 报表访问凭证(临时票据)
*/
private
String
accessTicket
;
/**
* 报表类型,如:普通报表、仪表盘、数据门户等
*/
private
String
reportType
;
/**
* 创建人(用户账号/ID)
*/
private
String
createBy
;
/**
* 创建时间
*/
@TableField
(
fill
=
FieldFill
.
INSERT
)
private
LocalDateTime
createTime
;
/**
* 更新人(用户账号/ID)
*/
private
String
updateBy
;
/**
* 更新时间(自动更新)
*/
@TableField
(
fill
=
FieldFill
.
INSERT_UPDATE
)
private
LocalDateTime
updateTime
;
/**
* 删除标识:0-未删除 1-已删除(软删除)
*/
@TableLogic
private
Integer
delFlag
;
public
void
create
()
{
}
public
void
updateFromBo
(
ExtraReportQuickbiEmbedBo
bo
)
{
}
public
void
markAsDeleted
()
{
}
}
src/main/java/com/link/report/domain/mapper/ExtraReportQuickbiEmbedMapper.java
0 → 100644
浏览文件 @
5219fadc
package
com
.
link
.
report
.
domain
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.link.report.domain.entity.ExtraReportQuickbiEmbed
;
import
org.apache.ibatis.annotations.Mapper
;
/**
* QuickBI报表嵌入信息表 Mapper 接口
*/
@Mapper
public
interface
ExtraReportQuickbiEmbedMapper
extends
BaseMapper
<
ExtraReportQuickbiEmbed
>
{
}
src/main/java/com/link/report/pojo/ExtraReportQuickbiEmbedDto.java
0 → 100644
浏览文件 @
5219fadc
package
com
.
link
.
report
.
pojo
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* QuickBI报表嵌入信息DTO
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
@Accessors
(
chain
=
true
)
public
class
ExtraReportQuickbiEmbedDto
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 主键ID
*/
private
Long
id
;
/**
* QuickBI报表名称
*/
private
String
name
;
/**
* 报表预览访问地址
*/
private
String
previewUrl
;
/**
* QuickBI报表唯一标识ID
*/
private
String
pageId
;
/**
* 报表访问凭证(临时票据)
*/
private
String
accessTicket
;
/**
* 报表类型,如:普通报表、仪表盘、数据门户等
*/
private
String
reportType
;
/**
* 创建人(用户账号/ID)
*/
private
String
createBy
;
/**
* 创建时间
*/
private
LocalDateTime
createTime
;
/**
* 更新人(用户账号/ID)
*/
private
String
updateBy
;
/**
* 更新时间(自动更新)
*/
private
LocalDateTime
updateTime
;
}
src/main/java/com/link/report/pojo/dto/ExtraReportQuickbiEmbedDto.java
0 → 100644
浏览文件 @
5219fadc
package
com
.
link
.
report
.
pojo
.
dto
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* QuickBI报表嵌入信息DTO
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
@Accessors
(
chain
=
true
)
public
class
ExtraReportQuickbiEmbedDto
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 主键ID
*/
private
Long
id
;
/**
* QuickBI报表名称
*/
private
String
name
;
/**
* 报表预览访问地址
*/
private
String
previewUrl
;
/**
* QuickBI报表唯一标识ID
*/
private
String
pageId
;
/**
* 报表访问凭证(临时票据)
*/
private
String
accessTicket
;
/**
* 报表类型,如:普通报表、仪表盘、数据门户等
*/
private
String
reportType
;
/**
* 创建人(用户账号/ID)
*/
private
String
createBy
;
/**
* 创建时间
*/
private
LocalDateTime
createTime
;
/**
* 更新人(用户账号/ID)
*/
private
String
updateBy
;
/**
* 更新时间(自动更新)
*/
private
LocalDateTime
updateTime
;
}
src/main/java/com/link/report/pojo/request/ExtraReportQuickbiEmbedBo.java
0 → 100644
浏览文件 @
5219fadc
package
com
.
link
.
report
.
pojo
.
request
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
/**
* QuickBI报表嵌入信息BO
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
@Accessors
(
chain
=
true
)
public
class
ExtraReportQuickbiEmbedBo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
private
Long
id
;
/**
* QuickBI报表名称
*/
private
String
name
;
/**
* 报表预览访问地址
*/
private
String
previewUrl
;
/**
* QuickBI报表唯一标识ID
*/
private
String
pageId
;
/**
* 报表访问凭证(临时票据)
*/
private
String
accessTicket
;
/**
* 报表类型,如:普通报表、仪表盘、数据门户等
*/
private
String
reportType
;
}
src/main/java/com/link/report/pojo/response/ExtraReportQuickbiEmbedVo.java
0 → 100644
浏览文件 @
5219fadc
package
com
.
link
.
report
.
pojo
.
response
;
import
com.link.report.domain.entity.ExtraReportQuickbiEmbed
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* QuickBI报表嵌入信息VO
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
@Accessors
(
chain
=
true
)
public
class
ExtraReportQuickbiEmbedVo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 主键ID
*/
private
Long
id
;
/**
* QuickBI报表名称
*/
private
String
name
;
/**
* 报表预览访问地址
*/
private
String
previewUrl
;
/**
* QuickBI报表唯一标识ID
*/
private
String
pageId
;
/**
* 报表访问凭证(临时票据)
*/
private
String
accessTicket
;
/**
* 报表类型,如:普通报表、仪表盘、数据门户等
*/
private
String
reportType
;
/**
* 创建人(用户账号/ID)
*/
private
String
createBy
;
/**
* 创建时间
*/
private
LocalDateTime
createTime
;
/**
* 更新人(用户账号/ID)
*/
private
String
updateBy
;
/**
* 更新时间(自动更新)
*/
private
LocalDateTime
updateTime
;
public
static
ExtraReportQuickbiEmbedVo
convertEntityToVo
(
ExtraReportQuickbiEmbed
entity
)
{
ExtraReportQuickbiEmbedVo
vo
=
new
ExtraReportQuickbiEmbedVo
();
// 设置属性值...
vo
.
setId
(
entity
.
getId
());
vo
.
setName
(
entity
.
getName
());
vo
.
setPreviewUrl
(
entity
.
getPreviewUrl
());
vo
.
setPageId
(
entity
.
getPageId
());
vo
.
setAccessTicket
(
entity
.
getAccessTicket
());
vo
.
setReportType
(
entity
.
getReportType
());
vo
.
setCreateBy
(
entity
.
getCreateBy
());
vo
.
setCreateTime
(
entity
.
getCreateTime
());
vo
.
setUpdateBy
(
entity
.
getUpdateBy
());
vo
.
setUpdateTime
(
entity
.
getUpdateTime
());
return
vo
;
}
}
src/main/java/com/link/report/service/query/ExtraReportQuickbiEmbedService.java
0 → 100644
浏览文件 @
5219fadc
package
com
.
link
.
report
.
service
.
query
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.link.report.domain.entity.ExtraReportQuickbiEmbed
;
import
com.link.report.pojo.request.ExtraReportQuickbiEmbedBo
;
import
com.link.report.pojo.response.ExtraReportQuickbiEmbedVo
;
import
java.util.List
;
/**
* QuickBI报表嵌入信息服务接口
*/
public
interface
ExtraReportQuickbiEmbedService
extends
IService
<
ExtraReportQuickbiEmbed
>
{
/**
* 新增QuickBI报表嵌入信息
*/
ExtraReportQuickbiEmbedVo
insert
(
ExtraReportQuickbiEmbedBo
bo
);
/**
* 更新QuickBI报表嵌入信息
*/
ExtraReportQuickbiEmbedVo
update
(
ExtraReportQuickbiEmbedBo
bo
);
/**
* 根据ID查询QuickBI报表嵌入信息
*/
ExtraReportQuickbiEmbedVo
getById
(
Long
id
);
/**
* 根据pageId查询QuickBI报表嵌入信息
*/
ExtraReportQuickbiEmbedVo
getByPageId
(
String
pageId
);
/**
* 查询所有QuickBI报表嵌入信息列表
*/
List
<
ExtraReportQuickbiEmbedVo
>
listAll
();
/**
* 删除QuickBI报表嵌入信息(软删除)
*/
boolean
deleteById
(
Long
id
);
ExtraReportQuickbiEmbedVo
queryAccessTicket
(
Long
id
);
}
src/main/java/com/link/report/service/query/impl/ExtraReportQuickbiEmbedServiceImpl.java
0 → 100644
浏览文件 @
5219fadc
package
com
.
link
.
report
.
service
.
query
.
impl
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.http.HttpUtil
;
import
cn.hutool.http.Method
;
import
com.alibaba.fastjson2.JSONObject
;
import
com.baomidou.mybatisplus.core.conditions.Wrapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.link.report.config.ExtraQuickBiConfig
;
import
com.link.report.domain.dao.ExtraReportQuickbiEmbedDao
;
import
com.link.report.domain.entity.ExtraReportQuickbiEmbed
;
import
com.link.report.pojo.request.ExtraReportQuickbiEmbedBo
;
import
com.link.report.pojo.response.ExtraReportQuickbiEmbedVo
;
import
com.link.report.service.query.ExtraReportQuickbiEmbedService
;
import
com.sfa.common.core.exception.ServiceException
;
import
com.sfa.common.redis.service.RedisService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.util.Collection
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.TimeUnit
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
/**
* QuickBI报表嵌入信息服务实现类
*/
@Slf4j
@Service
public
class
ExtraReportQuickbiEmbedServiceImpl
implements
ExtraReportQuickbiEmbedService
{
@Resource
private
final
ExtraReportQuickbiEmbedDao
extraReportQuickbiEmbedDao
;
@Resource
private
ExtraQuickBiConfig
extraQuickBiConfig
;
@Resource
private
RedisService
cacheService
;
@Autowired
public
ExtraReportQuickbiEmbedServiceImpl
(
ExtraReportQuickbiEmbedDao
extraReportQuickbiEmbedDao
)
{
this
.
extraReportQuickbiEmbedDao
=
extraReportQuickbiEmbedDao
;
}
/**
* 新增QuickBI报表嵌入信息
*/
@Override
public
ExtraReportQuickbiEmbedVo
insert
(
ExtraReportQuickbiEmbedBo
bo
)
{
// 领域对象转换与业务逻辑处理
ExtraReportQuickbiEmbed
entity
=
convertBoToEntity
(
bo
);
entity
.
create
();
// 调用领域对象行为
// 通过DAO进行数据持久化
extraReportQuickbiEmbedDao
.
insert
(
entity
);
return
ExtraReportQuickbiEmbedVo
.
convertEntityToVo
(
entity
);
}
/**
* 更新QuickBI报表嵌入信息
*/
@Override
public
ExtraReportQuickbiEmbedVo
update
(
ExtraReportQuickbiEmbedBo
bo
)
{
ExtraReportQuickbiEmbed
entity
=
extraReportQuickbiEmbedDao
.
selectById
(
bo
.
getId
());
if
(
entity
==
null
)
{
throw
new
RuntimeException
(
"记录不存在"
);
}
// 领域对象更新与业务逻辑处理
entity
.
updateFromBo
(
bo
);
// 调用领域对象行为
extraReportQuickbiEmbedDao
.
update
(
entity
);
return
ExtraReportQuickbiEmbedVo
.
convertEntityToVo
(
entity
);
}
/**
* 根据ID查询QuickBI报表嵌入信息
*/
@Override
public
ExtraReportQuickbiEmbedVo
getById
(
Long
id
)
{
ExtraReportQuickbiEmbed
entity
=
extraReportQuickbiEmbedDao
.
selectById
(
id
);
return
entity
!=
null
?
ExtraReportQuickbiEmbedVo
.
convertEntityToVo
(
entity
)
:
null
;
}
/**
* 根据pageId查询QuickBI报表嵌入信息
*/
@Override
public
ExtraReportQuickbiEmbedVo
getByPageId
(
String
pageId
)
{
ExtraReportQuickbiEmbed
entity
=
extraReportQuickbiEmbedDao
.
selectByPageId
(
pageId
);
return
entity
!=
null
?
ExtraReportQuickbiEmbedVo
.
convertEntityToVo
(
entity
)
:
null
;
}
/**
* 查询所有QuickBI报表嵌入信息列表
*/
@Override
public
List
<
ExtraReportQuickbiEmbedVo
>
listAll
()
{
List
<
ExtraReportQuickbiEmbed
>
entities
=
extraReportQuickbiEmbedDao
.
selectAll
();
return
entities
.
stream
()
.
map
(
ExtraReportQuickbiEmbedVo:
:
convertEntityToVo
)
.
collect
(
Collectors
.
toList
());
}
/**
* 删除QuickBI报表嵌入信息(软删除)
*/
@Override
public
boolean
deleteById
(
Long
id
)
{
ExtraReportQuickbiEmbed
entity
=
extraReportQuickbiEmbedDao
.
selectById
(
id
);
if
(
entity
==
null
)
{
return
false
;
}
entity
.
markAsDeleted
();
// 调用领域对象行为
extraReportQuickbiEmbedDao
.
update
(
entity
);
return
true
;
}
@Override
public
ExtraReportQuickbiEmbedVo
queryAccessTicket
(
Long
id
)
{
// 查询workId
ExtraReportQuickbiEmbed
entity
=
extraReportQuickbiEmbedDao
.
selectById
(
id
);
if
(
entity
==
null
)
{
log
.
error
(
"记录不存在,id:{}"
,
id
);
throw
new
ServiceException
(
"记录不存在"
);
}
String
workId
=
entity
.
getPageId
();
// 保存accessTicket
String
accessTicketNew
=
checkAccessTicketExist
(
workId
);
entity
.
setAccessTicket
(
accessTicketNew
);
extraReportQuickbiEmbedDao
.
update
(
entity
);
ExtraReportQuickbiEmbedVo
vo
=
ExtraReportQuickbiEmbedVo
.
convertEntityToVo
(
entity
);
return
vo
;
}
/**
* 检查accessTicket
* 缓存中不存在则从QuickBI获取accessTicket
* @param workId
* @return
*/
private
String
checkAccessTicketExist
(
String
workId
)
{
// 从配置中获取appId和appSecret
String
accessId
=
extraQuickBiConfig
.
getAccessId
();
String
accessKey
=
extraQuickBiConfig
.
getAccessKey
();
String
aliyunUid
=
extraQuickBiConfig
.
getAliyunUid
();
// 从缓存中获取
String
accessTicketCache
=
cacheService
.
getCacheObject
(
getRedisKey
(
workId
));
if
(
accessTicketCache
!=
null
)
{
return
accessTicketCache
;
}
String
url
=
String
.
format
(
"https://bi.aliyun.com/openapi/ac3rd/ticket/create?worksId=%s&aliyunUid=%s&accessKey=%s&accessId=%s&validityTime=%s"
,
workId
,
aliyunUid
,
accessKey
,
accessId
,
"240"
);
String
body
=
HttpUtil
.
createRequest
(
Method
.
GET
,
url
)
.
execute
()
.
body
();
log
.
info
(
"获取accessTicket结果:{}"
,
body
);
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
body
);
String
code
=
jsonObject
.
getString
(
"code"
);
if
(
ObjectUtil
.
isEmpty
(
code
)
||
!
code
.
equals
(
"0"
)){
throw
new
ServiceException
(
"获取accessTicket失败"
);
}
String
accessTicketNew
=
jsonObject
.
getJSONObject
(
"data"
).
getString
(
"accessTicket"
);
// 缓存更新
cacheService
.
setCacheObject
(
getRedisKey
(
workId
),
accessTicketNew
,
240L
,
TimeUnit
.
MINUTES
);
return
accessTicketNew
;
}
private
String
getRedisKey
(
String
workId
)
{
return
"extra:report:quickbi:accessTicket:"
+
workId
;
}
// 对象转换方法
private
ExtraReportQuickbiEmbed
convertBoToEntity
(
ExtraReportQuickbiEmbedBo
bo
)
{
ExtraReportQuickbiEmbed
entity
=
new
ExtraReportQuickbiEmbed
();
// 设置属性值...
entity
.
setName
(
bo
.
getName
());
entity
.
setPreviewUrl
(
bo
.
getPreviewUrl
());
entity
.
setPageId
(
bo
.
getPageId
());
entity
.
setAccessTicket
(
bo
.
getAccessTicket
());
entity
.
setReportType
(
bo
.
getReportType
());
return
entity
;
}
@Override
public
boolean
saveBatch
(
Collection
<
ExtraReportQuickbiEmbed
>
entityList
,
int
batchSize
)
{
return
false
;
}
@Override
public
boolean
saveOrUpdateBatch
(
Collection
<
ExtraReportQuickbiEmbed
>
entityList
,
int
batchSize
)
{
return
false
;
}
@Override
public
boolean
updateBatchById
(
Collection
<
ExtraReportQuickbiEmbed
>
entityList
,
int
batchSize
)
{
return
false
;
}
@Override
public
boolean
saveOrUpdate
(
ExtraReportQuickbiEmbed
entity
)
{
return
false
;
}
@Override
public
ExtraReportQuickbiEmbed
getOne
(
Wrapper
<
ExtraReportQuickbiEmbed
>
queryWrapper
,
boolean
throwEx
)
{
return
null
;
}
@Override
public
Map
<
String
,
Object
>
getMap
(
Wrapper
<
ExtraReportQuickbiEmbed
>
queryWrapper
)
{
return
null
;
}
@Override
public
<
V
>
V
getObj
(
Wrapper
<
ExtraReportQuickbiEmbed
>
queryWrapper
,
Function
<?
super
Object
,
V
>
mapper
)
{
return
null
;
}
@Override
public
BaseMapper
<
ExtraReportQuickbiEmbed
>
getBaseMapper
()
{
return
null
;
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论