Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
fzm-joying
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lei
fzm-joying
Commits
a30d39f8
Commit
a30d39f8
authored
Apr 24, 2022
by
33
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Api版权接口
parent
0efddbd7
Hide whitespace changes
Inline
Side-by-side
Showing
47 changed files
with
1894 additions
and
1 deletion
+1894
-1
CopyrightApiController.java
...java/com/fzm/admin/controller/CopyrightApiController.java
+76
-0
CopyrightApiTask.java
...rc/main/java/com/fzm/admin/schedule/CopyrightApiTask.java
+142
-0
CopyrightTask.java
...n/src/main/java/com/fzm/admin/schedule/CopyrightTask.java
+2
-0
CopyrightRequest.java
...main/java/com/fzm/common/entity/dto/CopyrightRequest.java
+111
-0
AuthorityMapper.java
.../src/main/java/com/fzm/common/mapper/AuthorityMapper.java
+2
-0
CopyrightApiAuthorMapper.java
.../java/com/fzm/common/mapper/CopyrightApiAuthorMapper.java
+13
-0
CopyrightApiAuthorityRelationMapper.java
...zm/common/mapper/CopyrightApiAuthorityRelationMapper.java
+13
-0
CopyrightApiFileMapper.java
...in/java/com/fzm/common/mapper/CopyrightApiFileMapper.java
+13
-0
CopyrightApiMapper.java
...c/main/java/com/fzm/common/mapper/CopyrightApiMapper.java
+20
-0
CopyrightApiOwnerRelationMapper.java
...om/fzm/common/mapper/CopyrightApiOwnerRelationMapper.java
+13
-0
OpenKeyMapper.java
...on/src/main/java/com/fzm/common/mapper/OpenKeyMapper.java
+14
-0
CopyrightApiAuthorDO.java
...m/common/open/entity/dataobject/CopyrightApiAuthorDO.java
+22
-0
CopyrightApiAuthorityRelationDO.java
...en/entity/dataobject/CopyrightApiAuthorityRelationDO.java
+15
-0
CopyrightApiDO.java
...com/fzm/common/open/entity/dataobject/CopyrightApiDO.java
+90
-0
CopyrightApiFileDO.java
...fzm/common/open/entity/dataobject/CopyrightApiFileDO.java
+26
-0
CopyrightApiOwnerRelationDO.java
...n/open/entity/dataobject/CopyrightApiOwnerRelationDO.java
+49
-0
OpenKeyDO.java
...java/com/fzm/common/open/entity/dataobject/OpenKeyDO.java
+20
-0
BaseOO.java
...in/java/com/fzm/common/open/entity/openobject/BaseOO.java
+27
-0
CopyrightAuthorOO.java
.../fzm/common/open/entity/openobject/CopyrightAuthorOO.java
+25
-0
CopyrightFileOO.java
...om/fzm/common/open/entity/openobject/CopyrightFileOO.java
+33
-0
CopyrightOO.java
...va/com/fzm/common/open/entity/openobject/CopyrightOO.java
+110
-0
CopyrightOwnerOO.java
...m/fzm/common/open/entity/openobject/CopyrightOwnerOO.java
+79
-0
CopyrightApiMapperQO.java
.../common/open/entity/queryobject/CopyrightApiMapperQO.java
+18
-0
CopyrightApiQO.java
...om/fzm/common/open/entity/queryobject/CopyrightApiQO.java
+26
-0
CopyrightManagerQO.java
...zm/common/open/entity/queryobject/CopyrightManagerQO.java
+13
-0
CopyrightApiVO.java
...com/fzm/common/open/entity/viewobject/CopyrightApiVO.java
+31
-0
CopyrightApiAuthorService.java
...om/fzm/common/open/service/CopyrightApiAuthorService.java
+21
-0
CopyrightApiAuthorityRelationService.java
...on/open/service/CopyrightApiAuthorityRelationService.java
+13
-0
CopyrightApiFileService.java
.../com/fzm/common/open/service/CopyrightApiFileService.java
+22
-0
CopyrightApiOwnerRelationService.java
...common/open/service/CopyrightApiOwnerRelationService.java
+22
-0
CopyrightApiOwnerService.java
...com/fzm/common/open/service/CopyrightApiOwnerService.java
+21
-0
CopyrightApiService.java
...java/com/fzm/common/open/service/CopyrightApiService.java
+38
-0
OpenKeyService.java
...main/java/com/fzm/common/open/service/OpenKeyService.java
+12
-0
CopyrightApiAuthorServiceImpl.java
...mmon/open/service/impl/CopyrightApiAuthorServiceImpl.java
+30
-0
CopyrightApiAuthorityRelationServiceImpl.java
...ervice/impl/CopyrightApiAuthorityRelationServiceImpl.java
+20
-0
CopyrightApiFileServiceImpl.java
...common/open/service/impl/CopyrightApiFileServiceImpl.java
+31
-0
CopyrightApiOwnerRelationServiceImpl.java
...en/service/impl/CopyrightApiOwnerRelationServiceImpl.java
+28
-0
CopyrightApiOwnerServiceImpl.java
...ommon/open/service/impl/CopyrightApiOwnerServiceImpl.java
+26
-0
CopyrightApiServiceImpl.java
...fzm/common/open/service/impl/CopyrightApiServiceImpl.java
+273
-0
OpenKeyServiceImpl.java
.../com/fzm/common/open/service/impl/OpenKeyServiceImpl.java
+25
-0
AuthorityService.java
...rc/main/java/com/fzm/common/service/AuthorityService.java
+2
-0
AuthorityServiceImpl.java
...ava/com/fzm/common/service/impl/AuthorityServiceImpl.java
+5
-0
CopyrightApplyServiceImpl.java
...om/fzm/common/service/impl/CopyrightApplyServiceImpl.java
+1
-1
AuthoraityMapper.xml
joying-common/src/main/resources/mapper/AuthoraityMapper.xml
+7
-0
CopyrightApiMapper.xml
...g-common/src/main/resources/mapper/CopyrightApiMapper.xml
+32
-0
CopyrightApiController.java
...om/fzm/portal/controller/open/CopyrightApiController.java
+132
-0
update.sql
sql/update.sql
+130
-0
No files found.
joying-admin/src/main/java/com/fzm/admin/controller/CopyrightApiController.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
admin
.
controller
;
import
com.fzm.common.enums.CopyrightApplyState
;
import
com.fzm.common.enums.ResultCode
;
import
com.fzm.common.exception.GlobalException
;
import
com.fzm.common.model.ResponseModel
;
import
com.fzm.common.open.entity.dataobject.CopyrightApiDO
;
import
com.fzm.common.open.entity.queryobject.CopyrightApiQO
;
import
com.fzm.common.open.entity.queryobject.CopyrightManagerQO
;
import
com.fzm.common.open.entity.viewobject.CopyrightApiVO
;
import
com.fzm.common.open.service.CopyrightApiService
;
import
com.github.pagehelper.PageInfo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
/**
* @author tangtuo
* @date 2021/12/15 10:27
*/
@RestController
@RequestMapping
(
value
=
"/copyright/api/apply"
)
@Api
(
tags
=
"Api版权审核"
)
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
public
class
CopyrightApiController
{
private
final
CopyrightApiService
copyrightApiService
;
@PostMapping
(
value
=
"/pages"
)
@ApiOperation
(
value
=
"分页查询"
)
public
ResponseModel
<
PageInfo
<
CopyrightApiDO
>>
page
(
@RequestBody
CopyrightApiQO
copyrightApiQO
)
{
PageInfo
<
CopyrightApiDO
>
pages
=
copyrightApiService
.
pages
(
copyrightApiQO
);
return
ResponseModel
.
success
(
pages
);
}
@GetMapping
(
value
=
"/detail"
)
@ApiOperation
(
value
=
"获取详情"
)
public
ResponseModel
<
CopyrightApiVO
>
details
(
@RequestParam
Integer
id
)
{
return
ResponseModel
.
success
(
copyrightApiService
.
getDetail
(
id
));
}
@PostMapping
(
value
=
"/pass"
)
@ApiOperation
(
value
=
"通过"
)
public
ResponseModel
<
Object
>
pass
(
@RequestBody
CopyrightManagerQO
managerQO
)
{
Integer
id
=
managerQO
.
getId
();
verify
(
id
);
copyrightApiService
.
pass
(
id
);
return
ResponseModel
.
success
();
}
@PostMapping
(
value
=
"/reject"
)
@ApiOperation
(
value
=
"驳回"
)
public
ResponseModel
<
Object
>
reject
(
@RequestBody
CopyrightManagerQO
managerQO
)
{
Integer
id
=
managerQO
.
getId
();
verify
(
id
);
copyrightApiService
.
reject
(
id
,
managerQO
.
getRejectReason
());
return
ResponseModel
.
success
();
}
private
void
verify
(
Integer
id
)
{
if
(
id
==
null
||
id
<
0
)
{
throw
GlobalException
.
newException
(
ResultCode
.
DATA_ERROR
,
"此版权登记记录不存在,请核对后重试"
);
}
CopyrightApiDO
copyrightApiDO
=
copyrightApiService
.
getById
(
id
);
if
(
copyrightApiDO
==
null
)
{
throw
GlobalException
.
newException
(
ResultCode
.
DATA_ERROR
,
"此版权登记记录不存在,请核对后重试"
);
}
if
(
CopyrightApplyState
.
TO_BE_REVIEWED
.
getCode
()
!=
copyrightApiDO
.
getRegisterState
())
{
throw
GlobalException
.
newException
(
ResultCode
.
OPERATION_FAILED
,
"此版权申请记录的状态不是待提交,无法审核通过"
);
}
}
}
joying-admin/src/main/java/com/fzm/admin/schedule/CopyrightApiTask.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
admin
.
schedule
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.lang.TypeReference
;
import
cn.hutool.http.HttpUtil
;
import
cn.hutool.json.JSONUtil
;
import
com.fzm.common.entity.dto.CopyrightQueryRequest
;
import
com.fzm.common.entity.dto.CopyrightQueryResponse
;
import
com.fzm.common.enums.CopyrightApplyState
;
import
com.fzm.common.open.entity.dataobject.CopyrightApiDO
;
import
com.fzm.common.open.service.CopyrightApiService
;
import
com.fzm.common.properties.CopyrightProperties
;
import
com.fzm.common.utils.CopyrightSignUtil
;
import
com.fzm.common.utils.JsonUtil
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.redisson.Redisson
;
import
org.redisson.api.RLock
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Component
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.TreeMap
;
import
java.util.concurrent.TimeUnit
;
/**
* @author tangtuo
* @date 2022/1/10 15:17
*/
@Slf4j
@Component
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
public
class
CopyrightApiTask
{
private
final
CopyrightApiService
copyrightApiService
;
private
final
CopyrightProperties
copyrightProperties
;
private
final
Redisson
redisson
;
/**
* 定时任务更新版权申请状态
*/
@Scheduled
(
cron
=
"0 */10 * * * ?"
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updateCopyrightState
()
throws
InterruptedException
{
// 加锁,防止集群部署时,定时任务在多个节点上执行
RLock
lock
=
redisson
.
getLock
(
"update:copyright:api:state"
);
if
(!
lock
.
tryLock
(
30
,
TimeUnit
.
SECONDS
))
{
if
(
log
.
isDebugEnabled
())
{
log
.
debug
(
"更新版权状态的定时任务已在其他节点运行"
);
}
return
;
}
try
{
List
<
String
>
list
=
copyrightApiService
.
getSerialCodes
();
if
(
CollectionUtil
.
isEmpty
(
list
))
{
if
(
log
.
isDebugEnabled
())
{
log
.
debug
(
"当前无待更新状态的申请记录"
);
}
return
;
}
for
(
String
serialCode
:
list
)
{
try
{
log
.
info
(
"更新状态: 当前流水号为: {}"
,
serialCode
);
CopyrightQueryRequest
request
=
new
CopyrightQueryRequest
(
serialCode
,
copyrightProperties
.
getAppId
());
TreeMap
<
String
,
String
>
map
=
this
.
beanToMap
(
request
,
copyrightProperties
.
getAppSecret
());
String
sign
=
CopyrightSignUtil
.
generateSign
(
map
);
request
.
setSign
(
sign
);
String
json
=
JSONUtil
.
toJsonStr
(
request
);
log
.
info
(
"查询审核结果, 当前流水号为:{} , 请求参数为 : {}"
,
serialCode
,
json
);
String
response
=
HttpUtil
.
post
(
copyrightProperties
.
getQueryUrl
(),
json
,
10000
);
log
.
info
(
"查询审核结果接口响应内容: {}"
,
response
);
if
(
StringUtils
.
isBlank
(
response
))
{
log
.
error
(
"版权局查询存证接口无响应, 流水号: {}"
,
serialCode
);
continue
;
}
CopyrightQueryResponse
copyrightResponse
=
JsonUtil
.
toObject
(
response
,
CopyrightQueryResponse
.
class
);
if
(
copyrightResponse
==
null
)
{
log
.
error
(
"版权局查询存证接口无响应, 流水号: {}"
,
serialCode
);
continue
;
}
if
(!
copyrightResponse
.
isSuccess
())
{
log
.
error
(
"接口响应失败, 失败原因:{}, 流水号: {}"
,
copyrightResponse
.
getMessage
(),
serialCode
);
continue
;
}
// 审核状态(0:未提交,1:待审核,2:同意,3:驳回,4:已提交,5:待终审,6:审核通过)
Integer
audit_status
=
copyrightResponse
.
getAudit_status
();
Integer
registerState
=
getRegisterState
(
audit_status
);
if
(
registerState
==
null
)
{
log
.
info
(
"当前版权状态无更新, 流水号为: {}"
,
serialCode
);
continue
;
}
CopyrightApiDO
copyrightApiDO
=
copyrightApiService
.
getBySerialNum
(
serialCode
);
if
(
registerState
.
equals
(
copyrightApiDO
.
getRegisterState
()))
{
log
.
info
(
"当前版权状态无更新, 流水号为: {}"
,
serialCode
);
continue
;
}
CopyrightApiDO
apiDO
=
new
CopyrightApiDO
();
apiDO
.
setId
(
copyrightApiDO
.
getId
());
apiDO
.
setRegisterState
(
registerState
);
apiDO
.
setUpdateDate
(
new
Date
());
copyrightApiService
.
updateById
(
apiDO
);
}
catch
(
Exception
e
)
{
log
.
error
(
"更新版权状态发送异常, 当前流水号为:{}"
,
serialCode
);
log
.
error
(
e
.
getMessage
(),
e
);
}
}
}
finally
{
lock
.
unlock
();
}
}
private
TreeMap
<
String
,
String
>
beanToMap
(
CopyrightQueryRequest
request
,
String
app_secret
)
{
TreeMap
<
String
,
String
>
map
=
JSONUtil
.
toBean
(
JSONUtil
.
toJsonStr
(
request
),
new
TypeReference
<
TreeMap
<
String
,
String
>>()
{
},
true
);
map
.
put
(
"app_secret"
,
app_secret
);
return
map
;
}
private
Integer
getRegisterState
(
Integer
audi_status
)
{
// audi_status 审核状态(0:未提交,1:待审核,2:同意,3:驳回,4:已提交,5:待终审,6:审核通过)
switch
(
audi_status
)
{
case
1
:
return
CopyrightApplyState
.
EXAMINE
.
getCode
();
case
5
:
return
CopyrightApplyState
.
FINAL_JUDGMENT
.
getCode
();
case
3
:
return
CopyrightApplyState
.
FAILED
.
getCode
();
case
6
:
return
CopyrightApplyState
.
SUCCEEDED
.
getCode
();
default
:
return
null
;
}
}
}
joying-admin/src/main/java/com/fzm/admin/schedule/CopyrightTask.java
View file @
a30d39f8
...
@@ -35,6 +35,7 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -35,6 +35,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
...
@@ -67,6 +68,7 @@ public class CopyrightTask {
...
@@ -67,6 +68,7 @@ public class CopyrightTask {
* 定时任务更新版权申请状态
* 定时任务更新版权申请状态
*/
*/
@Scheduled
(
cron
=
"0 */10 * * * ?"
)
@Scheduled
(
cron
=
"0 */10 * * * ?"
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updateCopyrightState
()
throws
InterruptedException
{
public
void
updateCopyrightState
()
throws
InterruptedException
{
// 加锁,防止集群部署时,定时任务在多个节点上执行
// 加锁,防止集群部署时,定时任务在多个节点上执行
RLock
lock
=
redisson
.
getLock
(
"update:copyright:state"
);
RLock
lock
=
redisson
.
getLock
(
"update:copyright:state"
);
...
...
joying-common/src/main/java/com/fzm/common/entity/dto/CopyrightRequest.java
View file @
a30d39f8
...
@@ -5,6 +5,11 @@ import cn.hutool.json.JSONUtil;
...
@@ -5,6 +5,11 @@ import cn.hutool.json.JSONUtil;
import
com.fzm.common.entity.*
;
import
com.fzm.common.entity.*
;
import
com.fzm.common.entity.vo.CopyrightVo
;
import
com.fzm.common.entity.vo.CopyrightVo
;
import
com.fzm.common.enums.*
;
import
com.fzm.common.enums.*
;
import
com.fzm.common.open.entity.dataobject.CopyrightApiAuthorDO
;
import
com.fzm.common.open.entity.dataobject.CopyrightApiDO
;
import
com.fzm.common.open.entity.dataobject.CopyrightApiFileDO
;
import
com.fzm.common.open.entity.dataobject.CopyrightApiOwnerRelationDO
;
import
com.fzm.common.open.entity.viewobject.CopyrightApiVO
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Data
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
...
@@ -194,6 +199,63 @@ public class CopyrightRequest {
...
@@ -194,6 +199,63 @@ public class CopyrightRequest {
this
.
works_type_desc
=
""
;
this
.
works_type_desc
=
""
;
this
.
works_type_name
=
opusCategory
.
getValue
();
this
.
works_type_name
=
opusCategory
.
getValue
();
}
}
public
CopyrightDetail
(
CopyrightApiVO
copyrightApiVO
)
{
CopyrightApiDO
copyright
=
copyrightApiVO
.
getCopyright
();
this
.
serial_code
=
copyright
.
getSerialNum
();
this
.
affilia_photo
=
copyright
.
getAuthorityAscriptionProve
();
this
.
agency_photo
=
copyright
.
getRegisterEntrust
();
this
.
author_photo
=
""
;
this
.
end_address
=
copyright
.
getOpusCompleteProvince
()
+
copyright
.
getOpusCompleteCity
();
this
.
end_time
=
DateUtil
.
format
(
copyright
.
getOpusCompleteDate
(),
"yyyy-MM-dd"
);
this
.
entrust_photo
=
""
;
this
.
gain_code
=
AuthorityAcquire
.
getByType
(
copyright
.
getAuthorityAcquireMode
());
this
.
gain_name
=
copyright
.
getAuthorityAcquireMode
();
this
.
gain_photo
=
""
;
List
<
CopyrightApiAuthorDO
>
authors
=
copyrightApiVO
.
getAuthors
();
if
(
copyright
.
getAuthorityAscriptionMode
().
equals
(
AuthorityType
.
PERSONAL
.
getVal
()))
{
CopyrightApiAuthorDO
author
=
authors
.
get
(
0
);
this
.
geren_uname
=
author
.
getName
();
this
.
geren_uxname
=
author
.
getSign
();
this
.
geren_uxname_type
=
String
.
valueOf
(
SignatureType
.
getCode
(
author
.
getSignType
()));
this
.
geren_uxname_type_name
=
author
.
getSignType
();
}
else
{
for
(
CopyrightApiAuthorDO
author
:
authors
)
{
this
.
cooperator
.
add
(
new
Cooperator
(
author
));
}
}
this
.
is_grade
=
0
;
this
.
nature_code
=
OpusProperty
.
getCode
(
copyright
.
getOpusProperty
());
this
.
nature_desc
=
""
;
this
.
nature_name
=
copyright
.
getOpusProperty
();
this
.
other_photo
=
""
;
for
(
CopyrightApiOwnerRelationDO
copyrightOwner
:
copyrightApiVO
.
getOwners
())
{
this
.
owner_list
.
add
(
new
Owner
(
copyrightOwner
));
}
this
.
publish_status
=
copyright
.
getPublishState
()
+
1
;
if
(
this
.
publish_status
==
2
)
{
this
.
publish_address
=
copyright
.
getFirstPublishProvince
()
+
copyright
.
getFirstPublishCity
();
this
.
publish_time
=
DateUtil
.
format
(
copyright
.
getFirstPublishDate
(),
"yyyy-MM-dd"
);
}
this
.
rights_affilia_code
=
AuthorityType
.
getByType
(
copyright
.
getAuthorityAscriptionMode
());
this
.
rights_affilia_name
=
copyright
.
getAuthorityAscriptionMode
();
this
.
rights_desc
=
StringUtils
.
join
(
copyrightApiVO
.
getAuthorities
().
stream
().
map
(
Authority:
:
getId
).
collect
(
Collectors
.
toList
()),
"、"
);
this
.
rights_guarantee_photo
=
copyright
.
getOpusPowerGuarantee
();
this
.
works_create_desc
=
copyright
.
getCreateProcess
();
this
.
works_desc
=
copyright
.
getContentSynopsis
();
for
(
CopyrightApiFileDO
file
:
copyrightApiVO
.
getFiles
())
{
this
.
works_files
.
add
(
new
WorksFile
(
file
));
}
this
.
works_name
=
copyright
.
getOpusName
();
OpusCategory
opusCategory
=
copyrightApiVO
.
getOpusCategory
();
this
.
works_type_code
=
String
.
valueOf
(
opusCategory
.
getId
());
this
.
works_type_desc
=
""
;
this
.
works_type_name
=
opusCategory
.
getValue
();
}
}
}
...
@@ -218,6 +280,13 @@ public class CopyrightRequest {
...
@@ -218,6 +280,13 @@ public class CopyrightRequest {
this
.
uxname
=
author
.
getSign
();
this
.
uxname
=
author
.
getSign
();
this
.
signature_type_name
=
author
.
getSignType
();
this
.
signature_type_name
=
author
.
getSignType
();
}
}
public
Cooperator
(
CopyrightApiAuthorDO
author
)
{
this
.
signature_type
=
String
.
valueOf
(
SignatureType
.
getCode
(
author
.
getSignType
()));
this
.
uname
=
author
.
getName
();
this
.
uxname
=
author
.
getSign
();
this
.
signature_type_name
=
author
.
getSignType
();
}
}
}
@Data
@Data
...
@@ -318,6 +387,33 @@ public class CopyrightRequest {
...
@@ -318,6 +387,33 @@ public class CopyrightRequest {
this
.
valid_end_date
=
DateUtil
.
format
(
copyrightOwner
.
getEffectiveEndDate
(),
"yyyy-MM-dd"
);
this
.
valid_end_date
=
DateUtil
.
format
(
copyrightOwner
.
getEffectiveEndDate
(),
"yyyy-MM-dd"
);
}
}
}
}
public
Owner
(
CopyrightApiOwnerRelationDO
copyrightOwner
)
{
this
.
address
=
copyrightOwner
.
getProvince
()
+
copyrightOwner
.
getCity
();
this
.
back_photo
=
copyrightOwner
.
getPositivePhoto
();
this
.
city
=
copyrightOwner
.
getCity
();
this
.
city_id
=
copyrightOwner
.
getCityCode
();
this
.
company_photo
=
copyrightOwner
.
getCertificatesPhoto
();
this
.
document_code
=
copyrightOwner
.
getIdNumber
();
this
.
document_image
=
""
;
CertificatesType
certificatesType
=
CertificatesType
.
getByType
(
copyrightOwner
.
getIdType
());
this
.
document_type_code
=
certificatesType
.
getCode
();
this
.
document_type_name
=
certificatesType
.
getValue
();
this
.
front_photo
=
copyrightOwner
.
getBackPhoto
();
this
.
handheld_photo
=
copyrightOwner
.
getPersonalPhoto
();
this
.
is_forever
=
copyrightOwner
.
getIsEffective
()
==
1
?
1
:
2
;
this
.
owner_name
=
copyrightOwner
.
getOwner
();
this
.
owner_sign_name
=
""
;
this
.
owner_type_code
=
String
.
valueOf
(
copyrightOwner
.
getType
()
+
1
);
this
.
owner_type_name
=
OwnerType
.
getByType
(
copyrightOwner
.
getCopyrightId
());
this
.
prove_photo
=
copyrightOwner
.
getEntrustProve
();
this
.
province
=
copyrightOwner
.
getProvince
();
this
.
province_id
=
copyrightOwner
.
getProvinceCode
();
this
.
valid_start_date
=
DateUtil
.
format
(
copyrightOwner
.
getEffectiveStartDate
(),
"yyyy-MM-dd"
);
if
(
this
.
is_forever
==
2
)
{
this
.
valid_end_date
=
DateUtil
.
format
(
copyrightOwner
.
getEffectiveEndDate
(),
"yyyy-MM-dd"
);
}
}
}
}
...
@@ -350,6 +446,15 @@ public class CopyrightRequest {
...
@@ -350,6 +446,15 @@ public class CopyrightRequest {
this
.
file_token
=
file
.
getFileHash
();
this
.
file_token
=
file
.
getFileHash
();
this
.
keywords
=
""
;
this
.
keywords
=
""
;
}
}
public
WorksFile
(
CopyrightApiFileDO
file
)
{
this
.
file
=
file
.
getFileUrl
();
this
.
file_format
=
file
.
getFileSuffix
();
this
.
file_name
=
file
.
getFileName
();
this
.
file_size
=
String
.
valueOf
(
file
.
getFileSize
());
this
.
file_token
=
file
.
getFileHash
();
this
.
keywords
=
""
;
}
}
}
...
@@ -358,4 +463,9 @@ public class CopyrightRequest {
...
@@ -358,4 +463,9 @@ public class CopyrightRequest {
this
.
app_id
=
app_id
;
this
.
app_id
=
app_id
;
this
.
sign
=
sign
;
this
.
sign
=
sign
;
}
}
public
CopyrightRequest
(
CopyrightApiVO
copyrightApiVO
,
String
app_id
)
{
this
.
biz_content
=
JSONUtil
.
toJsonStr
(
new
CopyrightDetail
(
copyrightApiVO
));
this
.
app_id
=
app_id
;
}
}
}
\ No newline at end of file
joying-common/src/main/java/com/fzm/common/mapper/AuthorityMapper.java
View file @
a30d39f8
...
@@ -20,4 +20,6 @@ public interface AuthorityMapper extends BaseMapper<Authority> {
...
@@ -20,4 +20,6 @@ public interface AuthorityMapper extends BaseMapper<Authority> {
* @return
* @return
*/
*/
List
<
Authority
>
getByCopyrightId
(
Integer
copyrightId
);
List
<
Authority
>
getByCopyrightId
(
Integer
copyrightId
);
List
<
Authority
>
getApiByCopyrightId
(
Integer
copyrightId
);
}
}
joying-common/src/main/java/com/fzm/common/mapper/CopyrightApiAuthorMapper.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
common
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.fzm.common.open.entity.dataobject.CopyrightApiAuthorDO
;
import
org.apache.ibatis.annotations.Mapper
;
/**
* @author tangtuo
* @date 2021/12/9 11:29
*/
@Mapper
public
interface
CopyrightApiAuthorMapper
extends
BaseMapper
<
CopyrightApiAuthorDO
>
{
}
joying-common/src/main/java/com/fzm/common/mapper/CopyrightApiAuthorityRelationMapper.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
common
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.fzm.common.open.entity.dataobject.CopyrightApiAuthorityRelationDO
;
import
org.apache.ibatis.annotations.Mapper
;
/**
* @author tangtuo
* @date 2021/12/9 11:38
*/
@Mapper
public
interface
CopyrightApiAuthorityRelationMapper
extends
BaseMapper
<
CopyrightApiAuthorityRelationDO
>
{
}
joying-common/src/main/java/com/fzm/common/mapper/CopyrightApiFileMapper.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
common
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.fzm.common.open.entity.dataobject.CopyrightApiFileDO
;
import
org.apache.ibatis.annotations.Mapper
;
/**
* @author tangtuo
* @date 2021/12/9 11:27
*/
@Mapper
public
interface
CopyrightApiFileMapper
extends
BaseMapper
<
CopyrightApiFileDO
>
{
}
joying-common/src/main/java/com/fzm/common/mapper/CopyrightApiMapper.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
common
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.fzm.common.open.entity.dataobject.CopyrightApiDO
;
import
com.fzm.common.open.entity.queryobject.CopyrightApiMapperQO
;
import
org.apache.ibatis.annotations.Mapper
;
import
java.util.List
;
/**
* @author tangtuo
* @date 2021/12/9 11:27
*/
@Mapper
public
interface
CopyrightApiMapper
extends
BaseMapper
<
CopyrightApiDO
>
{
List
<
CopyrightApiDO
>
getList
(
CopyrightApiMapperQO
mapperQO
);
List
<
String
>
getSerialCodes
();
}
joying-common/src/main/java/com/fzm/common/mapper/CopyrightApiOwnerRelationMapper.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
common
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.fzm.common.open.entity.dataobject.CopyrightApiOwnerRelationDO
;
import
org.apache.ibatis.annotations.Mapper
;
/**
* @author tangtuo
* @date 2021/12/13 11:24
*/
@Mapper
public
interface
CopyrightApiOwnerRelationMapper
extends
BaseMapper
<
CopyrightApiOwnerRelationDO
>
{
}
joying-common/src/main/java/com/fzm/common/mapper/OpenKeyMapper.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
common
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.fzm.common.open.entity.dataobject.OpenKeyDO
;
import
org.apache.ibatis.annotations.Mapper
;
/**
* @author tangtuo
* @date 2021/7/1 14:35
*/
@Mapper
public
interface
OpenKeyMapper
extends
BaseMapper
<
OpenKeyDO
>
{
}
joying-common/src/main/java/com/fzm/common/open/entity/dataobject/CopyrightApiAuthorDO.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
common
.
open
.
entity
.
dataobject
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
@Data
@TableName
(
"tb_open_copyright_author"
)
public
class
CopyrightApiAuthorDO
{
@TableId
(
type
=
IdType
.
AUTO
)
private
Integer
id
;
private
Integer
copyrightId
;
private
String
name
;
private
String
signType
;
private
String
sign
;
}
joying-common/src/main/java/com/fzm/common/open/entity/dataobject/CopyrightApiAuthorityRelationDO.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
common
.
open
.
entity
.
dataobject
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
@Data
@TableName
(
value
=
"tb_open_copyright_authority_relation"
)
public
class
CopyrightApiAuthorityRelationDO
{
private
Integer
copyrightId
;
private
Integer
authorityId
;
}
joying-common/src/main/java/com/fzm/common/open/entity/dataobject/CopyrightApiDO.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
common
.
open
.
entity
.
dataobject
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
lombok.Data
;
import
java.util.Date
;
@Data
@TableName
(
"tb_open_copyright_apply"
)
public
class
CopyrightApiDO
{
@TableId
(
type
=
IdType
.
AUTO
)
private
Integer
id
;
private
String
serialNum
;
private
String
appKey
;
private
String
appName
;
private
String
bizId
;
private
String
registerEntrust
;
private
String
opusName
;
private
Integer
opusCategoryId
;
private
String
opusProperty
;
private
String
contentSynopsis
;
private
String
createProcess
;
private
Date
opusCompleteDate
;
private
String
opusCompleteProvince
;
private
String
opusCompleteCity
;
private
Integer
publishState
;
private
Date
firstPublishDate
;
private
String
firstPublishProvince
;
private
String
firstPublishCity
;
private
String
authorityAcquireMode
;
private
String
authorityAcquireProve
;
private
String
authorityAscriptionMode
;
private
String
authorityAscriptionProve
;
private
String
opusPowerGuarantee
;
private
Date
applyTime
;
private
Date
passTime
;
private
String
checkUsername
;
// 参考枚举类-com.fzm.common.enums.CopyrightApplyState
private
Integer
registerState
;
private
String
evidenceHash
;
private
Date
evidenceDate
;
private
String
rejectReason
;
@JsonProperty
(
access
=
JsonProperty
.
Access
.
WRITE_ONLY
)
private
String
content
;
private
String
registerCode
;
private
String
registerOwner
;
private
String
registerTime
;
private
Date
createDate
;
private
Date
updateDate
;
}
joying-common/src/main/java/com/fzm/common/open/entity/dataobject/CopyrightApiFileDO.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
common
.
open
.
entity
.
dataobject
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
@Data
@TableName
(
"tb_open_copyright_file"
)
public
class
CopyrightApiFileDO
{
@TableId
(
type
=
IdType
.
AUTO
)
private
Integer
id
;
private
Integer
copyrightId
;
private
String
fileName
;
private
String
fileUrl
;
private
String
fileHash
;
private
String
fileSuffix
;
private
Long
fileSize
;
}
joying-common/src/main/java/com/fzm/common/open/entity/dataobject/CopyrightApiOwnerRelationDO.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
common
.
open
.
entity
.
dataobject
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.util.Date
;
/**
* @author tangtuo
* @date 2021/12/13 11:22
*/
@Data
@TableName
(
value
=
"tb_open_copyright_apply_owner_relation"
)
public
class
CopyrightApiOwnerRelationDO
{
private
Integer
copyrightId
;
private
Integer
type
;
private
String
owner
;
private
String
idNumber
;
private
Integer
isEffective
;
private
Date
effectiveStartDate
;
private
Date
effectiveEndDate
;
private
String
province
;
private
String
provinceCode
;
private
String
city
;
private
String
cityCode
;
private
Integer
idType
;
private
String
positivePhoto
;
private
String
backPhoto
;
private
String
personalPhoto
;
private
String
certificatesPhoto
;
private
String
entrustProve
;
}
joying-common/src/main/java/com/fzm/common/open/entity/dataobject/OpenKeyDO.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
common
.
open
.
entity
.
dataobject
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
/**
* @author wt
* @date 2022/4/24
*/
@Data
@TableName
(
value
=
"tb_open_key"
)
public
class
OpenKeyDO
{
@TableId
(
type
=
IdType
.
AUTO
)
private
Integer
id
;
private
String
appKey
;
private
String
appKeySecret
;
private
String
appName
;
}
joying-common/src/main/java/com/fzm/common/open/entity/openobject/BaseOO.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
common
.
open
.
entity
.
openobject
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
/**
* @author wt
* @date 2022/4/24
*/
@Data
public
class
BaseOO
<
T
>
{
@NotBlank
(
message
=
"appKey不能为空"
)
@ApiModelProperty
(
value
=
"appKey"
)
private
String
appKey
;
@NotBlank
(
message
=
"业务id不能为空"
)
@ApiModelProperty
(
value
=
"业务id"
)
private
String
bizId
;
@NotBlank
(
message
=
"签名不能为空"
)
@ApiModelProperty
(
"签名"
)
private
String
signature
;
@NotNull
(
message
=
"数据不能为空"
)
@ApiModelProperty
(
"数据"
)
private
T
data
;
}
joying-common/src/main/java/com/fzm/common/open/entity/openobject/CopyrightAuthorOO.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
common
.
open
.
entity
.
openobject
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
/**
* @author wt
* @date 2022/4/24
*/
@Data
public
class
CopyrightAuthorOO
{
@NotBlank
(
message
=
"作者姓名不能为空"
)
@ApiModelProperty
(
value
=
"作者姓名或名称"
)
private
String
name
;
@NotBlank
(
message
=
"署名类型不能为空"
)
@ApiModelProperty
(
value
=
"署名类型 (本名 | 别名 | 匿名)"
)
private
String
signType
;
@NotBlank
(
message
=
"签名不能为空"
)
@ApiModelProperty
(
value
=
"签名"
)
private
String
sign
;
}
joying-common/src/main/java/com/fzm/common/open/entity/openobject/CopyrightFileOO.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
common
.
open
.
entity
.
openobject
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
/**
* @author wt
* @date 2022/4/24
*/
@Data
public
class
CopyrightFileOO
{
@NotBlank
(
message
=
"附件名不能为空"
)
@ApiModelProperty
(
"附件名"
)
private
String
fileName
;
@NotBlank
(
message
=
"附件路径不能为空"
)
@ApiModelProperty
(
"附件路径"
)
private
String
fileUrl
;
@NotBlank
(
message
=
"文件hash不能为空"
)
@ApiModelProperty
(
"文件hash"
)
private
String
fileHash
;
@NotBlank
(
message
=
"文件扩展名不能为空"
)
@ApiModelProperty
(
"文件扩展名"
)
private
String
fileSuffix
;
@NotBlank
(
message
=
"文件大小不能为空"
)
@ApiModelProperty
(
"文件大小"
)
private
Long
fileSize
;
}
joying-common/src/main/java/com/fzm/common/open/entity/openobject/CopyrightOO.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
common
.
open
.
entity
.
openobject
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
import
java.util.Date
;
import
java.util.List
;
/**
* @author tangtuo
* @date 2021/12/9 14:35
*/
@Data
public
class
CopyrightOO
{
@NotBlank
(
message
=
"登记委托书不能为空"
)
@ApiModelProperty
(
value
=
"登记委托书"
)
private
String
registerEntrust
;
@NotBlank
(
message
=
"作品名称不能为空"
)
@ApiModelProperty
(
value
=
"作品名称"
)
private
String
opusName
;
@NotNull
(
message
=
"作品类别id不能为空"
)
@ApiModelProperty
(
value
=
"作品类别id"
)
private
Integer
opusCategoryId
;
@NotBlank
(
message
=
"作品性质不能为空"
)
@ApiModelProperty
(
value
=
"作品性质"
)
private
String
opusProperty
;
@NotBlank
(
message
=
"内容简介不能为空"
)
@ApiModelProperty
(
value
=
"内容简介"
)
private
String
contentSynopsis
;
@NotBlank
(
message
=
"创作过程不能为空"
)
@ApiModelProperty
(
value
=
"创作过程"
)
private
String
createProcess
;
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
@JsonFormat
(
timezone
=
"GMT+8"
,
pattern
=
"yyyy-MM-dd"
)
@NotNull
(
message
=
"作品完成日期不能为空"
)
@ApiModelProperty
(
value
=
"作品完成日期,yyyy-MM-dd"
)
private
Date
opusCompleteDate
;
@NotBlank
(
message
=
"作品完成省份不能为空"
)
@ApiModelProperty
(
value
=
"作品完成省份"
)
private
String
opusCompleteProvince
;
@NotBlank
(
message
=
"作品完成城市不能为空"
)
@ApiModelProperty
(
value
=
"作品完成城市"
)
private
String
opusCompleteCity
;
@NotNull
(
message
=
"发表状态不能为空"
)
@ApiModelProperty
(
value
=
"'发表状态 0-未发表 1-已发表"
)
private
Integer
publishState
;
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
@JsonFormat
(
timezone
=
"GMT+8"
,
pattern
=
"yyyy-MM-dd"
)
@ApiModelProperty
(
value
=
"首次发表日期,yyyy-MM-dd"
)
private
Date
firstPublishDate
;
@ApiModelProperty
(
value
=
"首次发表省份"
)
private
String
firstPublishProvince
;
@ApiModelProperty
(
value
=
"首次发表城市"
)
private
String
firstPublishCity
;
@NotBlank
(
message
=
"权力取得方式不能为空"
)
@ApiModelProperty
(
value
=
"权力取得方式"
)
private
String
authorityAcquireMode
;
@ApiModelProperty
(
value
=
"权力取得证明材料"
)
private
String
authorityAcquireProve
;
@NotBlank
(
message
=
"权力归属方式不能为空"
)
@ApiModelProperty
(
value
=
"权力归属方式"
)
private
String
authorityAscriptionMode
;
@ApiModelProperty
(
value
=
"权力归属证明材料的文件地址"
)
private
String
authorityAscriptionProve
;
@NotBlank
(
message
=
"作品权力保证书不能为空"
)
@ApiModelProperty
(
value
=
"作品权力保证书"
)
private
String
opusPowerGuarantee
;
@NotEmpty
(
message
=
"作者列表不能为空"
)
@ApiModelProperty
(
value
=
"作者列表"
)
private
List
<
CopyrightAuthorOO
>
authors
;
@NotEmpty
(
message
=
"您还未选择任何著作权人"
)
@ApiModelProperty
(
value
=
"著作权人列表"
)
private
List
<
CopyrightOwnerOO
>
owners
;
@NotEmpty
(
message
=
"您还未勾选任何权力拥有情况"
)
@ApiModelProperty
(
"权力id集合"
)
private
List
<
Integer
>
authorityIds
;
@NotEmpty
(
message
=
"您还没有上传任何文件作品"
)
@ApiModelProperty
(
"文件列表"
)
private
List
<
CopyrightFileOO
>
files
;
@ApiModelProperty
(
"内容"
)
private
String
content
;
}
joying-common/src/main/java/com/fzm/common/open/entity/openobject/CopyrightOwnerOO.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
common
.
open
.
entity
.
openobject
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
java.util.Date
;
/**
* @author wt
* @date 2022/4/24
*/
@Data
public
class
CopyrightOwnerOO
{
@NotNull
(
message
=
"著作权人类型不能为空"
)
@ApiModelProperty
(
value
=
"类别 0-自然人 1-法人"
)
private
Integer
type
;
@NotBlank
(
message
=
"著作权人不能为空"
)
@ApiModelProperty
(
value
=
"著作权人"
)
private
String
owner
;
@NotBlank
(
message
=
"证件号码不能为空"
)
@ApiModelProperty
(
value
=
"证件号码"
)
private
String
idNumber
;
@NotNull
(
message
=
"证件是否长期有效不能为空"
)
@ApiModelProperty
(
value
=
"是否长期有效 0-否 1-是"
)
private
Integer
isEffective
;
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
@JsonFormat
(
timezone
=
"GMT+8"
,
pattern
=
"yyyy-MM-dd"
)
@NotNull
(
message
=
"证件有效期起始时间不能为空"
)
@ApiModelProperty
(
value
=
"证件有效起止时间"
)
private
Date
effectiveStartDate
;
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
@JsonFormat
(
timezone
=
"GMT+8"
,
pattern
=
"yyyy-MM-dd"
)
@ApiModelProperty
(
value
=
"证件有效终止时间"
)
private
Date
effectiveEndDate
;
@NotBlank
(
message
=
"用户所在省份不能为空"
)
@ApiModelProperty
(
value
=
"用户所在省份"
)
private
String
province
;
@NotBlank
(
message
=
"用户所在省份code不能为空"
)
@ApiModelProperty
(
value
=
"用户所在省份code"
)
private
String
provinceCode
;
@NotBlank
(
message
=
"用户所在城市不能为空"
)
@ApiModelProperty
(
value
=
"用户所在城市"
)
private
String
city
;
@NotBlank
(
message
=
"用户所在城市code不能为空"
)
@ApiModelProperty
(
value
=
"用户所在城市code"
)
private
String
cityCode
;
@NotNull
(
message
=
"证件类型不能为空"
)
@ApiModelProperty
(
value
=
"证件类型 0-身份证 1-营业执照 2-企业法人营业执照 3-组织机构代码证书 4-事业单位法人证书 5-社团法人证书 6-统一社会信用代码 7其他有效证件"
)
private
Integer
idType
;
@ApiModelProperty
(
value
=
"正面照片 (身份证人像面照片)"
)
private
String
positivePhoto
;
@ApiModelProperty
(
value
=
"反面照片(身份证国徽面照片)"
)
private
String
backPhoto
;
@ApiModelProperty
(
value
=
"手持身份证照片"
)
private
String
personalPhoto
;
@ApiModelProperty
(
value
=
"证件照片(营业执照等)"
)
private
String
certificatesPhoto
;
@ApiModelProperty
(
value
=
"委托证明"
)
private
String
entrustProve
;
}
joying-common/src/main/java/com/fzm/common/open/entity/queryobject/CopyrightApiMapperQO.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
common
.
open
.
entity
.
queryobject
;
import
lombok.Data
;
import
java.time.LocalDateTime
;
/**
* @author wt
* @date 2022/4/24
*/
@Data
public
class
CopyrightApiMapperQO
{
private
String
serialNum
;
private
Integer
state
;
private
String
appKey
;
private
LocalDateTime
startDate
;
private
LocalDateTime
endDate
;
}
joying-common/src/main/java/com/fzm/common/open/entity/queryobject/CopyrightApiQO.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
common
.
open
.
entity
.
queryobject
;
import
lombok.Data
;
/**
* @author wt
* @date 2022/4/24
*/
@Data
public
class
CopyrightApiQO
{
private
Integer
page
;
private
Integer
size
;
private
String
serialNum
;
private
Integer
state
;
private
String
appKey
;
private
String
startDate
;
private
String
endDate
;
public
Integer
getPage
()
{
return
page
==
null
?
1
:
page
<
1
?
1
:
page
;
}
public
Integer
getSize
()
{
return
size
==
null
?
40
:
size
<
1
?
40
:
size
>
200
?
200
:
size
;
}
}
joying-common/src/main/java/com/fzm/common/open/entity/queryobject/CopyrightManagerQO.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
common
.
open
.
entity
.
queryobject
;
import
lombok.Data
;
/**
* @author wt
* @date 2022/4/24
*/
@Data
public
class
CopyrightManagerQO
{
private
Integer
id
;
private
String
rejectReason
;
}
joying-common/src/main/java/com/fzm/common/open/entity/viewobject/CopyrightApiVO.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
common
.
open
.
entity
.
viewobject
;
import
com.fzm.common.entity.Authority
;
import
com.fzm.common.entity.OpusCategory
;
import
com.fzm.common.open.entity.dataobject.CopyrightApiAuthorDO
;
import
com.fzm.common.open.entity.dataobject.CopyrightApiDO
;
import
com.fzm.common.open.entity.dataobject.CopyrightApiFileDO
;
import
com.fzm.common.open.entity.dataobject.CopyrightApiOwnerRelationDO
;
import
lombok.Data
;
import
java.util.List
;
/**
* @author wt
* @date 2022/4/24
*/
@Data
public
class
CopyrightApiVO
{
private
CopyrightApiDO
copyright
;
private
OpusCategory
opusCategory
;
private
List
<
CopyrightApiFileDO
>
files
;
private
List
<
CopyrightApiAuthorDO
>
authors
;
private
List
<
Authority
>
authorities
;
private
List
<
CopyrightApiOwnerRelationDO
>
owners
;
}
joying-common/src/main/java/com/fzm/common/open/service/CopyrightApiAuthorService.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
common
.
open
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.fzm.common.open.entity.dataobject.CopyrightApiAuthorDO
;
import
java.util.List
;
/**
* @author tangtuo
* @date 2021/12/9 11:41
*/
public
interface
CopyrightApiAuthorService
extends
IService
<
CopyrightApiAuthorDO
>
{
/**
* 根据版权id查询作者列表
*
* @param copyrightId
* @return
*/
List
<
CopyrightApiAuthorDO
>
getByCopyrightId
(
int
copyrightId
);
}
joying-common/src/main/java/com/fzm/common/open/service/CopyrightApiAuthorityRelationService.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
common
.
open
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.fzm.common.open.entity.dataobject.CopyrightApiAuthorityRelationDO
;
/**
* @author tangtuo
* @date 2021/12/9 11:44
*/
public
interface
CopyrightApiAuthorityRelationService
extends
IService
<
CopyrightApiAuthorityRelationDO
>
{
}
joying-common/src/main/java/com/fzm/common/open/service/CopyrightApiFileService.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
common
.
open
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.fzm.common.open.entity.dataobject.CopyrightApiFileDO
;
import
java.util.List
;
/**
* @author tangtuo
* @date 2021/12/9 11:43
*/
public
interface
CopyrightApiFileService
extends
IService
<
CopyrightApiFileDO
>
{
/**
* 根据版权id查询
*
* @param copyrightId
* @return
*/
List
<
CopyrightApiFileDO
>
getByCopyrightId
(
Integer
copyrightId
);
}
joying-common/src/main/java/com/fzm/common/open/service/CopyrightApiOwnerRelationService.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
common
.
open
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.fzm.common.open.entity.dataobject.CopyrightApiOwnerRelationDO
;
import
java.util.List
;
/**
* @author tangtuo
* @date 2021/12/13 11:24
*/
public
interface
CopyrightApiOwnerRelationService
extends
IService
<
CopyrightApiOwnerRelationDO
>
{
/**
* 根据版权id查询
*
* @param copyrightId
* @return
*/
List
<
CopyrightApiOwnerRelationDO
>
getByCopyrightId
(
Integer
copyrightId
);
}
joying-common/src/main/java/com/fzm/common/open/service/CopyrightApiOwnerService.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
common
.
open
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.fzm.common.entity.CopyrightOwner
;
import
java.util.List
;
/**
* @author tangtuo
* @date 2021/12/9 11:40
*/
public
interface
CopyrightApiOwnerService
extends
IService
<
CopyrightOwner
>
{
/**
* 根据著作权id查询列表
*
* @param copyrightId
* @return
*/
List
<
CopyrightOwner
>
getByCopyrightId
(
Integer
copyrightId
);
}
joying-common/src/main/java/com/fzm/common/open/service/CopyrightApiService.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
common
.
open
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.fzm.common.open.entity.dataobject.CopyrightApiDO
;
import
com.fzm.common.open.entity.dataobject.OpenKeyDO
;
import
com.fzm.common.open.entity.openobject.BaseOO
;
import
com.fzm.common.open.entity.openobject.CopyrightOO
;
import
com.fzm.common.open.entity.queryobject.CopyrightApiQO
;
import
com.fzm.common.open.entity.viewobject.CopyrightApiVO
;
import
com.github.pagehelper.PageInfo
;
import
java.util.List
;
/**
* @author tangtuo
* @date 2021/12/9 11:40
*/
public
interface
CopyrightApiService
extends
IService
<
CopyrightApiDO
>
{
Integer
apply
(
BaseOO
<
CopyrightOO
>
baseOO
,
OpenKeyDO
openKeyDO
);
CopyrightApiDO
getByAppKeyAndBizId
(
String
appKey
,
String
bizId
);
PageInfo
<
CopyrightApiDO
>
pages
(
CopyrightApiQO
copyrightApiQO
);
CopyrightApiVO
getDetail
(
Integer
id
);
void
pass
(
Integer
id
);
void
reject
(
Integer
id
,
String
rejectReason
);
List
<
String
>
getSerialCodes
();
CopyrightApiDO
getBySerialNum
(
String
serialCode
);
}
joying-common/src/main/java/com/fzm/common/open/service/OpenKeyService.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
common
.
open
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.fzm.common.open.entity.dataobject.OpenKeyDO
;
/**
* @author wt
* @date 2022/4/24
*/
public
interface
OpenKeyService
extends
IService
<
OpenKeyDO
>
{
OpenKeyDO
getByAppKey
(
String
appKey
);
}
joying-common/src/main/java/com/fzm/common/open/service/impl/CopyrightApiAuthorServiceImpl.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
common
.
open
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.fzm.common.mapper.CopyrightApiAuthorMapper
;
import
com.fzm.common.open.entity.dataobject.CopyrightApiAuthorDO
;
import
com.fzm.common.open.service.CopyrightApiAuthorService
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
/**
* @author tangtuo
* @date 2021/12/9 11:41
*/
@Service
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
public
class
CopyrightApiAuthorServiceImpl
extends
ServiceImpl
<
CopyrightApiAuthorMapper
,
CopyrightApiAuthorDO
>
implements
CopyrightApiAuthorService
{
private
final
CopyrightApiAuthorMapper
copyrightApiAuthorMapper
;
@Override
public
List
<
CopyrightApiAuthorDO
>
getByCopyrightId
(
int
copyrightId
)
{
QueryWrapper
<
CopyrightApiAuthorDO
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
eq
(
"copyright_id"
,
copyrightId
);
return
copyrightApiAuthorMapper
.
selectList
(
queryWrapper
);
}
}
joying-common/src/main/java/com/fzm/common/open/service/impl/CopyrightApiAuthorityRelationServiceImpl.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
common
.
open
.
service
.
impl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.fzm.common.mapper.CopyrightApiAuthorityRelationMapper
;
import
com.fzm.common.open.entity.dataobject.CopyrightApiAuthorityRelationDO
;
import
com.fzm.common.open.service.CopyrightApiAuthorityRelationService
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
/**
* @author tangtuo
* @date 2021/12/9 11:44
*/
@Service
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
public
class
CopyrightApiAuthorityRelationServiceImpl
extends
ServiceImpl
<
CopyrightApiAuthorityRelationMapper
,
CopyrightApiAuthorityRelationDO
>
implements
CopyrightApiAuthorityRelationService
{
}
joying-common/src/main/java/com/fzm/common/open/service/impl/CopyrightApiFileServiceImpl.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
common
.
open
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.fzm.common.mapper.CopyrightApiFileMapper
;
import
com.fzm.common.open.entity.dataobject.CopyrightApiFileDO
;
import
com.fzm.common.open.service.CopyrightApiFileService
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
/**
* @author tangtuo
* @date 2021/12/9 11:43
*/
@Service
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
public
class
CopyrightApiFileServiceImpl
extends
ServiceImpl
<
CopyrightApiFileMapper
,
CopyrightApiFileDO
>
implements
CopyrightApiFileService
{
private
final
CopyrightApiFileMapper
copyrightApiFileMapper
;
@Override
public
List
<
CopyrightApiFileDO
>
getByCopyrightId
(
Integer
copyrightId
)
{
QueryWrapper
<
CopyrightApiFileDO
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
eq
(
"copyright_id"
,
copyrightId
);
return
copyrightApiFileMapper
.
selectList
(
queryWrapper
);
}
}
joying-common/src/main/java/com/fzm/common/open/service/impl/CopyrightApiOwnerRelationServiceImpl.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
common
.
open
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.fzm.common.mapper.CopyrightApiOwnerRelationMapper
;
import
com.fzm.common.open.entity.dataobject.CopyrightApiOwnerRelationDO
;
import
com.fzm.common.open.service.CopyrightApiOwnerRelationService
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
/**
* @author tangtuo
* @date 2021/12/13 11:25
*/
@Service
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
public
class
CopyrightApiOwnerRelationServiceImpl
extends
ServiceImpl
<
CopyrightApiOwnerRelationMapper
,
CopyrightApiOwnerRelationDO
>
implements
CopyrightApiOwnerRelationService
{
@Override
public
List
<
CopyrightApiOwnerRelationDO
>
getByCopyrightId
(
Integer
copyrightId
)
{
QueryWrapper
<
CopyrightApiOwnerRelationDO
>
wrapper
=
new
QueryWrapper
<>();
wrapper
.
eq
(
"copyright_id"
,
copyrightId
);
return
this
.
list
(
wrapper
);
}
}
joying-common/src/main/java/com/fzm/common/open/service/impl/CopyrightApiOwnerServiceImpl.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
common
.
open
.
service
.
impl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.fzm.common.entity.CopyrightOwner
;
import
com.fzm.common.mapper.CopyrightOwnerMapper
;
import
com.fzm.common.open.service.CopyrightApiOwnerService
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
/**
* @author tangtuo
* @date 2021/12/9 11:40
*/
@Service
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
public
class
CopyrightApiOwnerServiceImpl
extends
ServiceImpl
<
CopyrightOwnerMapper
,
CopyrightOwner
>
implements
CopyrightApiOwnerService
{
private
final
CopyrightOwnerMapper
ownerMapper
;
@Override
public
List
<
CopyrightOwner
>
getByCopyrightId
(
Integer
copyrightId
)
{
return
ownerMapper
.
getByCopyrightId
(
copyrightId
);
}
}
joying-common/src/main/java/com/fzm/common/open/service/impl/CopyrightApiServiceImpl.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
common
.
open
.
service
.
impl
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.lang.TypeReference
;
import
cn.hutool.http.HttpUtil
;
import
cn.hutool.json.JSONUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.fzm.common.entity.Authority
;
import
com.fzm.common.entity.OpusCategory
;
import
com.fzm.common.entity.dto.CopyrightRequest
;
import
com.fzm.common.entity.dto.CopyrightResponse
;
import
com.fzm.common.enums.CopyrightApplyState
;
import
com.fzm.common.enums.ResultCode
;
import
com.fzm.common.exception.GlobalException
;
import
com.fzm.common.interceptor.LoginUserInfo
;
import
com.fzm.common.mapper.CopyrightApiMapper
;
import
com.fzm.common.open.entity.dataobject.*
;
import
com.fzm.common.open.entity.openobject.*
;
import
com.fzm.common.open.entity.queryobject.CopyrightApiMapperQO
;
import
com.fzm.common.open.entity.queryobject.CopyrightApiQO
;
import
com.fzm.common.open.entity.viewobject.CopyrightApiVO
;
import
com.fzm.common.open.service.*
;
import
com.fzm.common.properties.CopyrightProperties
;
import
com.fzm.common.service.AuthorityService
;
import
com.fzm.common.service.OpusCategoryService
;
import
com.fzm.common.utils.CopyrightSignUtil
;
import
com.github.pagehelper.PageHelper
;
import
com.github.pagehelper.PageInfo
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.redisson.Redisson
;
import
org.redisson.api.RLock
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.annotation.Resource
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.TreeMap
;
import
java.util.concurrent.TimeUnit
;
/**
* @author tangtuo
* @date 2021/12/9 11:40
*/
@Slf4j
@Service
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
public
class
CopyrightApiServiceImpl
extends
ServiceImpl
<
CopyrightApiMapper
,
CopyrightApiDO
>
implements
CopyrightApiService
{
private
final
CopyrightApiFileService
copyrightApiFileService
;
private
final
CopyrightApiOwnerRelationService
copyrightApiOwnerRelationService
;
private
final
CopyrightApiAuthorService
copyrightApiAuthorService
;
private
final
CopyrightApiAuthorityRelationService
copyrightApiAuthorityRelationService
;
private
final
OpusCategoryService
opusCategoryService
;
private
final
AuthorityService
authorityService
;
private
final
CopyrightApiMapper
copyrightApiMapper
;
private
final
CopyrightProperties
copyrightProperties
;
@Resource
private
Redisson
redisson
;
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Integer
apply
(
BaseOO
<
CopyrightOO
>
baseOO
,
OpenKeyDO
openKeyDO
)
{
String
appKey
=
baseOO
.
getAppKey
();
String
appName
=
openKeyDO
.
getAppName
();
String
bizId
=
baseOO
.
getBizId
();
CopyrightOO
copyrightOO
=
baseOO
.
getData
();
CopyrightApiDO
copyrightApiDO
=
BeanUtil
.
copyProperties
(
copyrightOO
,
CopyrightApiDO
.
class
);
copyrightApiDO
.
setRegisterState
(
CopyrightApplyState
.
TO_BE_REVIEWED
.
getCode
());
copyrightApiDO
.
setAppKey
(
appKey
);
copyrightApiDO
.
setAppName
(
appName
);
copyrightApiDO
.
setBizId
(
bizId
);
copyrightApiDO
.
setApplyTime
(
new
Date
());
save
(
copyrightApiDO
);
// 保存附件
List
<
CopyrightFileOO
>
fileOOS
=
copyrightOO
.
getFiles
();
ArrayList
<
CopyrightApiFileDO
>
files
=
new
ArrayList
<>(
fileOOS
.
size
());
for
(
CopyrightFileOO
fileOO
:
fileOOS
)
{
CopyrightApiFileDO
fileDO
=
BeanUtil
.
copyProperties
(
fileOO
,
CopyrightApiFileDO
.
class
);
fileDO
.
setCopyrightId
(
copyrightApiDO
.
getId
());
files
.
add
(
fileDO
);
}
copyrightApiFileService
.
saveBatch
(
files
);
// 保存著作权人信息
List
<
CopyrightOwnerOO
>
ownerOOS
=
copyrightOO
.
getOwners
();
ArrayList
<
CopyrightApiOwnerRelationDO
>
owners
=
new
ArrayList
<>(
ownerOOS
.
size
());
for
(
CopyrightOwnerOO
ownerOO
:
ownerOOS
)
{
CopyrightApiOwnerRelationDO
ownerRelationDO
=
BeanUtil
.
copyProperties
(
ownerOO
,
CopyrightApiOwnerRelationDO
.
class
);
ownerRelationDO
.
setCopyrightId
(
copyrightApiDO
.
getId
());
owners
.
add
(
ownerRelationDO
);
}
copyrightApiOwnerRelationService
.
saveBatch
(
owners
);
// 保存作者信息
List
<
CopyrightAuthorOO
>
authorOOS
=
copyrightOO
.
getAuthors
();
ArrayList
<
CopyrightApiAuthorDO
>
authors
=
new
ArrayList
<>(
authorOOS
.
size
());
for
(
CopyrightAuthorOO
authorOO
:
authorOOS
)
{
CopyrightApiAuthorDO
authorDO
=
BeanUtil
.
copyProperties
(
authorOO
,
CopyrightApiAuthorDO
.
class
);
authorDO
.
setCopyrightId
(
copyrightApiDO
.
getId
());
authors
.
add
(
authorDO
);
}
copyrightApiAuthorService
.
saveBatch
(
authors
);
// 保存权力信息
List
<
Integer
>
authorityIds
=
copyrightOO
.
getAuthorityIds
();
ArrayList
<
CopyrightApiAuthorityRelationDO
>
relations
=
new
ArrayList
<>(
authorityIds
.
size
());
for
(
Integer
authorityId
:
authorityIds
)
{
CopyrightApiAuthorityRelationDO
relationDO
=
new
CopyrightApiAuthorityRelationDO
();
relationDO
.
setCopyrightId
(
copyrightApiDO
.
getId
());
relationDO
.
setAuthorityId
(
authorityId
);
relations
.
add
(
relationDO
);
}
copyrightApiAuthorityRelationService
.
saveBatch
(
relations
);
return
copyrightApiDO
.
getId
();
}
@Override
public
CopyrightApiDO
getByAppKeyAndBizId
(
String
appKey
,
String
bizId
)
{
QueryWrapper
<
CopyrightApiDO
>
wrapper
=
new
QueryWrapper
<>();
wrapper
.
eq
(
"app_key"
,
appKey
);
wrapper
.
eq
(
"biz_id"
,
bizId
);
return
getOne
(
wrapper
);
}
@Override
public
PageInfo
<
CopyrightApiDO
>
pages
(
CopyrightApiQO
copyrightApiQO
)
{
CopyrightApiMapperQO
mapperQO
=
BeanUtil
.
copyProperties
(
copyrightApiQO
,
CopyrightApiMapperQO
.
class
);
String
startDateStr
=
copyrightApiQO
.
getStartDate
();
if
(
StringUtils
.
isNotBlank
(
startDateStr
))
{
LocalDate
startDate
=
LocalDate
.
parse
(
startDateStr
);
LocalDateTime
startDateTime
=
startDate
.
atStartOfDay
();
mapperQO
.
setStartDate
(
startDateTime
);
}
String
endDateStr
=
copyrightApiQO
.
getEndDate
();
if
(
StringUtils
.
isNotBlank
(
endDateStr
))
{
LocalDate
endDate
=
LocalDate
.
parse
(
endDateStr
);
LocalDateTime
endDateTime
=
endDate
.
atTime
(
23
,
59
,
59
);
mapperQO
.
setEndDate
(
endDateTime
);
}
PageHelper
.
startPage
(
copyrightApiQO
.
getPage
(),
copyrightApiQO
.
getSize
());
List
<
CopyrightApiDO
>
list
=
copyrightApiMapper
.
getList
(
mapperQO
);
return
new
PageInfo
<>(
list
);
}
@Override
public
CopyrightApiVO
getDetail
(
Integer
id
)
{
CopyrightApiDO
apiDO
=
getById
(
id
);
if
(
apiDO
==
null
)
{
return
null
;
}
CopyrightApiVO
apiVO
=
new
CopyrightApiVO
();
apiVO
.
setCopyright
(
apiDO
);
Integer
opusCategoryId
=
apiDO
.
getOpusCategoryId
();
OpusCategory
category
=
opusCategoryService
.
getById
(
opusCategoryId
);
apiVO
.
setOpusCategory
(
category
);
List
<
CopyrightApiFileDO
>
fileDOS
=
copyrightApiFileService
.
getByCopyrightId
(
id
);
apiVO
.
setFiles
(
fileDOS
);
List
<
CopyrightApiAuthorDO
>
authorDOS
=
copyrightApiAuthorService
.
getByCopyrightId
(
id
);
apiVO
.
setAuthors
(
authorDOS
);
List
<
CopyrightApiOwnerRelationDO
>
relationDOS
=
copyrightApiOwnerRelationService
.
getByCopyrightId
(
id
);
apiVO
.
setOwners
(
relationDOS
);
List
<
Authority
>
authorities1
=
authorityService
.
getApiByCopyrightId
(
id
);
apiVO
.
setAuthorities
(
authorities1
);
return
apiVO
;
}
@Override
public
void
pass
(
Integer
id
)
{
RLock
lock
=
redisson
.
getLock
(
"copyright:api:apply:"
+
id
);
boolean
tryLock
;
try
{
tryLock
=
lock
.
tryLock
(
10
,
TimeUnit
.
SECONDS
);
}
catch
(
InterruptedException
e
)
{
throw
GlobalException
.
newException
(
ResultCode
.
FAILED
,
"操作频繁"
);
}
if
(!
tryLock
)
{
throw
GlobalException
.
newException
(
ResultCode
.
FAILED
,
"操作频繁"
);
}
try
{
// 请求版权局接口
CopyrightApiVO
copyrightApiVO
=
this
.
getDetail
(
id
);
CopyrightRequest
copyrightRequest
=
new
CopyrightRequest
(
copyrightApiVO
,
copyrightProperties
.
getAppId
());
TreeMap
<
String
,
String
>
param
=
this
.
beanToMap
(
copyrightRequest
,
copyrightProperties
.
getAppSecret
());
String
sign
=
CopyrightSignUtil
.
generateSign
(
param
);
copyrightRequest
.
setSign
(
sign
);
String
json
=
JSONUtil
.
toJsonStr
(
copyrightRequest
);
log
.
info
(
"请求版权局接口, 接口地址:{}, 请求参数:{}"
,
copyrightProperties
.
getApplyUrl
(),
json
);
String
response
=
HttpUtil
.
post
(
copyrightProperties
.
getApplyUrl
(),
json
,
10000
);
log
.
info
(
"版权局响应内容:{}"
,
response
);
if
(
StringUtils
.
isBlank
(
response
))
{
throw
GlobalException
.
newException
(
ResultCode
.
COPYRIGHT_FAILED
,
"版权局接口无响应,请稍后重试"
);
}
CopyrightResponse
copyrightResponse
=
JSONUtil
.
toBean
(
response
,
CopyrightResponse
.
class
);
if
(
copyrightResponse
==
null
)
{
throw
GlobalException
.
newException
(
ResultCode
.
COPYRIGHT_FAILED
,
"版权局接口无响应,请稍后重试"
);
}
if
(!
copyrightResponse
.
isSuccess
())
{
throw
GlobalException
.
newException
(
ResultCode
.
COPYRIGHT_FAILED
,
copyrightResponse
.
getMessage
());
}
// 申请成功
String
serialCode
=
copyrightResponse
.
getSerial_code
();
CopyrightApiDO
apiDO
=
new
CopyrightApiDO
();
apiDO
.
setId
(
id
);
apiDO
.
setSerialNum
(
serialCode
);
apiDO
.
setRegisterState
(
CopyrightApplyState
.
SUBMITTED
.
getCode
());
apiDO
.
setRejectReason
(
""
);
apiDO
.
setPassTime
(
new
Date
());
apiDO
.
setCheckUsername
(
LoginUserInfo
.
getLoginUser
().
getUsername
());
updateById
(
apiDO
);
}
finally
{
lock
.
unlock
();
}
}
@Override
public
void
reject
(
Integer
id
,
String
rejectReason
)
{
CopyrightApiDO
apiDO
=
new
CopyrightApiDO
();
apiDO
.
setId
(
id
);
apiDO
.
setRegisterState
(
CopyrightApplyState
.
REJECTED
.
getCode
());
apiDO
.
setRejectReason
(
rejectReason
);
apiDO
.
setCheckUsername
(
LoginUserInfo
.
getLoginUser
().
getUsername
());
updateById
(
apiDO
);
}
@Override
public
List
<
String
>
getSerialCodes
()
{
return
copyrightApiMapper
.
getSerialCodes
();
}
@Override
public
CopyrightApiDO
getBySerialNum
(
String
serialCode
)
{
QueryWrapper
<
CopyrightApiDO
>
wrapper
=
new
QueryWrapper
<>();
wrapper
.
eq
(
"serial_num"
,
serialCode
);
return
getOne
(
wrapper
);
}
private
TreeMap
<
String
,
String
>
beanToMap
(
CopyrightRequest
copyrightRequest
,
String
app_secret
)
{
TreeMap
<
String
,
String
>
treeMap
=
JSONUtil
.
toBean
(
JSONUtil
.
toJsonStr
(
copyrightRequest
),
new
TypeReference
<
TreeMap
<
String
,
String
>>()
{
},
true
);
treeMap
.
put
(
"app_secret"
,
app_secret
);
return
treeMap
;
}
}
joying-common/src/main/java/com/fzm/common/open/service/impl/OpenKeyServiceImpl.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
common
.
open
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.fzm.common.mapper.OpenKeyMapper
;
import
com.fzm.common.open.entity.dataobject.OpenKeyDO
;
import
com.fzm.common.open.service.OpenKeyService
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
/**
* @author wt
* @date 2022/4/24
*/
@Service
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
public
class
OpenKeyServiceImpl
extends
ServiceImpl
<
OpenKeyMapper
,
OpenKeyDO
>
implements
OpenKeyService
{
@Override
public
OpenKeyDO
getByAppKey
(
String
appKey
)
{
QueryWrapper
<
OpenKeyDO
>
wrapper
=
new
QueryWrapper
<>();
wrapper
.
eq
(
"app_key"
,
appKey
);
return
getOne
(
wrapper
);
}
}
joying-common/src/main/java/com/fzm/common/service/AuthorityService.java
View file @
a30d39f8
...
@@ -21,4 +21,6 @@ public interface AuthorityService extends IService<Authority> {
...
@@ -21,4 +21,6 @@ public interface AuthorityService extends IService<Authority> {
* @return
* @return
*/
*/
List
<
Authority
>
getByCopyrightId
(
Integer
id
);
List
<
Authority
>
getByCopyrightId
(
Integer
id
);
List
<
Authority
>
getApiByCopyrightId
(
Integer
id
);
}
}
joying-common/src/main/java/com/fzm/common/service/impl/AuthorityServiceImpl.java
View file @
a30d39f8
...
@@ -31,4 +31,9 @@ public class AuthorityServiceImpl extends ServiceImpl<AuthorityMapper, Authority
...
@@ -31,4 +31,9 @@ public class AuthorityServiceImpl extends ServiceImpl<AuthorityMapper, Authority
public
List
<
Authority
>
getByCopyrightId
(
Integer
copyrightId
)
{
public
List
<
Authority
>
getByCopyrightId
(
Integer
copyrightId
)
{
return
authorityMapper
.
getByCopyrightId
(
copyrightId
);
return
authorityMapper
.
getByCopyrightId
(
copyrightId
);
}
}
@Override
public
List
<
Authority
>
getApiByCopyrightId
(
Integer
id
)
{
return
authorityMapper
.
getApiByCopyrightId
(
id
);
}
}
}
joying-common/src/main/java/com/fzm/common/service/impl/CopyrightApplyServiceImpl.java
View file @
a30d39f8
...
@@ -154,11 +154,11 @@ public class CopyrightApplyServiceImpl extends ServiceImpl<CopyrightApplyMapper,
...
@@ -154,11 +154,11 @@ public class CopyrightApplyServiceImpl extends ServiceImpl<CopyrightApplyMapper,
CopyrightAuthorityRelation
relation
=
new
CopyrightAuthorityRelation
(
copyrightApply
.
getId
(),
authorityId
);
CopyrightAuthorityRelation
relation
=
new
CopyrightAuthorityRelation
(
copyrightApply
.
getId
(),
authorityId
);
relations
.
add
(
relation
);
relations
.
add
(
relation
);
}
}
copyrightAuthorityRelationService
.
saveBatch
(
relations
);
// 如果是从草稿箱进来的需要删除草稿信息
// 如果是从草稿箱进来的需要删除草稿信息
if
(
copyrightDTO
.
getDraftId
()
!=
null
)
{
if
(
copyrightDTO
.
getDraftId
()
!=
null
)
{
draftService
.
removeById
(
copyrightDTO
.
getDraftId
());
draftService
.
removeById
(
copyrightDTO
.
getDraftId
());
}
}
copyrightAuthorityRelationService
.
saveBatch
(
relations
);
return
copyrightApply
.
getId
();
return
copyrightApply
.
getId
();
}
}
...
...
joying-common/src/main/resources/mapper/AuthoraityMapper.xml
View file @
a30d39f8
...
@@ -9,4 +9,10 @@
...
@@ -9,4 +9,10 @@
where id in
where id in
(select authority_id from tb_copyright_authority_relation where copyright_id = #{copyrightId})
(select authority_id from tb_copyright_authority_relation where copyright_id = #{copyrightId})
</select>
</select>
<select
id=
"getApiByCopyrightId"
resultType=
"com.fzm.common.entity.Authority"
>
select *
from tb_authority
where id in
(select authority_id from tb_open_copyright_authority_relation where copyright_id = #{copyrightId})
</select>
</mapper>
</mapper>
\ No newline at end of file
joying-common/src/main/resources/mapper/CopyrightApiMapper.xml
0 → 100644
View file @
a30d39f8
<?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.fzm.common.mapper.CopyrightApiMapper"
>
<select
id=
"getList"
resultType=
"com.fzm.common.open.entity.dataobject.CopyrightApiDO"
>
select *
from tb_open_copyright_apply
<where>
<if
test=
"serialNum != null and serialNum != ''"
>
and serial_num = #{serialNum}
</if>
<if
test=
"state != null"
>
and register_state = #{state}
</if>
<if
test=
"appKey != null and appKey != ''"
>
and app_key = #{appKey}
</if>
<if
test=
"startDate != null"
>
and apply_time >= #{startDate}
</if>
<if
test=
"endDate != null"
>
and apply_time
<
= #{endDate}
</if>
</where>
</select>
<select
id=
"getSerialCodes"
resultType=
"java.lang.String"
>
SELECT serial_num
FROM tb_open_copyright_apply
WHERE register_state IN (2, 6, 7)
</select>
</mapper>
\ No newline at end of file
joying-portal/src/main/java/com/fzm/portal/controller/open/CopyrightApiController.java
0 → 100644
View file @
a30d39f8
package
com
.
fzm
.
portal
.
controller
.
open
;
import
com.fzm.common.constant.SystemConstant
;
import
com.fzm.common.entity.vo.CopyrightStateVo
;
import
com.fzm.common.enums.CopyrightApplyState
;
import
com.fzm.common.enums.ResultCode
;
import
com.fzm.common.exception.GlobalException
;
import
com.fzm.common.model.ResponseModel
;
import
com.fzm.common.open.entity.dataobject.CopyrightApiDO
;
import
com.fzm.common.open.entity.dataobject.OpenKeyDO
;
import
com.fzm.common.open.entity.openobject.BaseOO
;
import
com.fzm.common.open.entity.openobject.CopyrightAuthorOO
;
import
com.fzm.common.open.entity.openobject.CopyrightOO
;
import
com.fzm.common.open.entity.openobject.CopyrightOwnerOO
;
import
com.fzm.common.open.service.CopyrightApiService
;
import
com.fzm.common.open.service.OpenKeyService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.RequiredArgsConstructor
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.Date
;
import
java.util.List
;
/**
* @author wt
* @date 2022/4/24
*/
@RestController
@Api
(
tags
=
"Api版权服务"
)
@RequestMapping
(
"/api/copyright"
)
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
public
class
CopyrightApiController
{
private
final
OpenKeyService
openKeyService
;
private
final
CopyrightApiService
copyrightApiService
;
@PostMapping
(
"/apply"
)
@ApiOperation
(
"/申请版权"
)
public
ResponseModel
<
Integer
>
apply
(
@Validated
@RequestBody
BaseOO
<
CopyrightOO
>
baseOO
)
{
String
appKey
=
baseOO
.
getAppKey
();
OpenKeyDO
openKeyDO
=
openKeyService
.
getByAppKey
(
appKey
);
if
(
openKeyDO
==
null
)
{
throw
GlobalException
.
newException
(
ResultCode
.
VALIDATE_FAILED
);
}
String
bizId
=
baseOO
.
getBizId
();
CopyrightApiDO
apiDO
=
copyrightApiService
.
getByAppKeyAndBizId
(
appKey
,
bizId
);
if
(
apiDO
!=
null
)
{
return
ResponseModel
.
success
(
apiDO
.
getId
());
}
CopyrightOO
copyrightOO
=
baseOO
.
getData
();
Integer
publishState
=
copyrightOO
.
getPublishState
();
if
(
publishState
==
null
||
publishState
!=
0
&&
publishState
!=
1
)
{
throw
GlobalException
.
newException
(
ResultCode
.
VALIDATE_FAILED
);
}
// 如果发表状态是已发表的话,需要传入首次发表日期和省市
if
(
SystemConstant
.
BOOLEAN_DATA_TRUE
.
equals
(
publishState
)
&&
(
copyrightOO
.
getFirstPublishDate
()
==
null
||
StringUtils
.
isAnyBlank
(
copyrightOO
.
getFirstPublishCity
(),
copyrightOO
.
getFirstPublishProvince
())))
{
throw
GlobalException
.
newException
(
ResultCode
.
VALIDATE_FAILED
);
}
List
<
CopyrightAuthorOO
>
authors
=
copyrightOO
.
getAuthors
();
for
(
CopyrightAuthorOO
author
:
authors
)
{
String
signType
=
author
.
getSignType
();
if
(!
"本名"
.
equals
(
signType
)
&&
!
"别名"
.
equals
(
signType
)
&&
!
"匿名"
.
equals
(
signType
))
{
throw
GlobalException
.
newException
(
ResultCode
.
VALIDATE_FAILED
);
}
}
List
<
CopyrightOwnerOO
>
owners
=
copyrightOO
.
getOwners
();
for
(
CopyrightOwnerOO
owner
:
owners
)
{
Integer
type
=
owner
.
getType
();
if
(
type
!=
0
&&
type
!=
1
)
{
throw
GlobalException
.
newException
(
ResultCode
.
VALIDATE_FAILED
);
}
Integer
isEffective
=
owner
.
getIsEffective
();
if
(
isEffective
!=
0
&&
isEffective
!=
1
)
{
throw
GlobalException
.
newException
(
ResultCode
.
VALIDATE_FAILED
);
}
if
(
isEffective
==
0
)
{
Date
endDate
=
owner
.
getEffectiveEndDate
();
if
(
endDate
==
null
)
{
throw
GlobalException
.
newException
(
ResultCode
.
VALIDATE_FAILED
);
}
}
Integer
idType
=
owner
.
getIdType
();
if
(
idType
<
0
||
idType
>
7
)
{
throw
GlobalException
.
newException
(
ResultCode
.
VALIDATE_FAILED
);
}
if
(
idType
==
0
)
{
String
positivePhoto
=
owner
.
getPositivePhoto
();
String
backPhoto
=
owner
.
getBackPhoto
();
String
personalPhoto
=
owner
.
getPersonalPhoto
();
if
(
StringUtils
.
isAnyBlank
(
positivePhoto
,
backPhoto
,
personalPhoto
))
{
throw
GlobalException
.
newException
(
ResultCode
.
VALIDATE_FAILED
);
}
}
else
{
String
certificatesPhoto
=
owner
.
getCertificatesPhoto
();
if
(
StringUtils
.
isBlank
(
certificatesPhoto
))
{
throw
GlobalException
.
newException
(
ResultCode
.
VALIDATE_FAILED
);
}
}
}
Integer
apply
=
copyrightApiService
.
apply
(
baseOO
,
openKeyDO
);
return
ResponseModel
.
success
(
apply
);
}
@GetMapping
(
value
=
"/state"
)
@ApiOperation
(
value
=
"获取状态"
)
public
ResponseModel
<
CopyrightStateVo
>
getCopyrightState
(
@RequestParam
(
required
=
false
)
Integer
id
,
@RequestParam
(
required
=
false
)
String
appKey
,
@RequestParam
(
required
=
false
)
String
bizId
)
{
CopyrightApiDO
apiDO
=
null
;
if
(
id
!=
null
)
{
apiDO
=
copyrightApiService
.
getById
(
id
);
}
if
(
StringUtils
.
isNoneBlank
(
appKey
,
bizId
))
{
apiDO
=
copyrightApiService
.
getByAppKeyAndBizId
(
appKey
,
bizId
);
}
if
(
apiDO
==
null
)
{
throw
GlobalException
.
newException
(
ResultCode
.
DATA_ERROR
,
"请核对后再重试"
);
}
CopyrightStateVo
copyrightStateVo
=
new
CopyrightStateVo
(
CopyrightApplyState
.
getByState
(
apiDO
.
getRegisterState
()),
apiDO
.
getRejectReason
());
return
ResponseModel
.
success
(
copyrightStateVo
);
}
}
sql/update.sql
View file @
a30d39f8
SET
FOREIGN_KEY_CHECKS
=
0
;
CREATE
TABLE
`tb_open_copyright_apply`
(
`id`
int
(
11
)
NOT
NULL
AUTO_INCREMENT
,
`serial_num`
varchar
(
32
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_general_ci
NOT
NULL
DEFAULT
''
COMMENT
'流水号'
,
`app_key`
varchar
(
32
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_general_ci
NOT
NULL
DEFAULT
''
COMMENT
'appkey'
,
`app_name`
varchar
(
32
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_general_ci
NULL
DEFAULT
NULL
COMMENT
'appname'
,
`biz_id`
varchar
(
32
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_general_ci
NULL
DEFAULT
NULL
COMMENT
'业务id'
,
`register_entrust`
varchar
(
255
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_general_ci
NOT
NULL
DEFAULT
''
COMMENT
'登记委托书'
,
`opus_name`
varchar
(
64
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
DEFAULT
''
COMMENT
'作品名称'
,
`opus_category_id`
int
(
11
)
NOT
NULL
COMMENT
'作品类别id'
,
`opus_property`
varchar
(
16
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
DEFAULT
''
COMMENT
'作品性质'
,
`content_synopsis`
varchar
(
1024
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
DEFAULT
''
COMMENT
'内容简介'
,
`create_process`
varchar
(
1000
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
DEFAULT
''
COMMENT
'创作过程'
,
`opus_complete_date`
date
NOT
NULL
COMMENT
'作品完成日期'
,
`opus_complete_province`
varchar
(
8
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
DEFAULT
''
COMMENT
'作品完成省份'
,
`opus_complete_city`
varchar
(
8
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
COMMENT
'作品完成城市'
,
`publish_state`
tinyint
(
1
)
NOT
NULL
DEFAULT
0
COMMENT
'发表状态 0-未发表 1-已发表'
,
`first_publish_date`
date
NULL
DEFAULT
NULL
COMMENT
'首次发表日期'
,
`first_publish_province`
varchar
(
8
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
COMMENT
'首次发表省份'
,
`first_publish_city`
varchar
(
8
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
COMMENT
'首次发表城市'
,
`authority_acquire_mode`
varchar
(
8
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
DEFAULT
''
COMMENT
'权力取得方式'
,
`authority_acquire_prove`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
DEFAULT
''
COMMENT
'权力取得证明材料'
,
`authority_ascription_mode`
varchar
(
8
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
DEFAULT
''
COMMENT
'权力归属方式'
,
`authority_ascription_prove`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
DEFAULT
''
COMMENT
'权力归属证明材料'
,
`opus_power_guarantee`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
COMMENT
'作品权力保证书'
,
`apply_time`
datetime
NOT
NULL
COMMENT
'申请时间'
,
`pass_time`
datetime
NULL
DEFAULT
NULL
COMMENT
'版权申请后台核验通过时间'
,
`check_username`
varchar
(
32
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_general_ci
NULL
DEFAULT
''
COMMENT
'审核人员'
,
`register_state`
tinyint
(
1
)
NOT
NULL
DEFAULT
0
COMMENT
'登记状态 -1:已撤回 0:待审核 2:已提交 3:已驳回 4:登记成功 5:审核失败'
,
`evidence_hash`
varchar
(
128
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
DEFAULT
''
COMMENT
'存证哈希'
,
`evidence_date`
datetime
NULL
DEFAULT
NULL
COMMENT
'存证时间'
,
`reject_reason`
varchar
(
512
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
DEFAULT
''
COMMENT
'驳回原因'
,
`content`
text
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
COMMENT
'json'
,
`register_code`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
DEFAULT
''
COMMENT
'登记证书编号,在版权登记审核通过后生成'
,
`register_owner`
varchar
(
32
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_general_ci
NULL
DEFAULT
''
COMMENT
'登记证书人名称,在版权登记审核通过后生成'
,
`register_time`
varchar
(
16
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_general_ci
NULL
DEFAULT
''
COMMENT
'登记证书时间,在版权登记审核通过后生成'
,
`create_date`
datetime
NOT
NULL
DEFAULT
CURRENT_TIMESTAMP
,
`update_date`
datetime
NOT
NULL
DEFAULT
CURRENT_TIMESTAMP
ON
UPDATE
CURRENT_TIMESTAMP
,
PRIMARY
KEY
(
`id`
)
USING
BTREE
,
INDEX
`serial_num`
(
`serial_num`
,
`app_key`
)
USING
BTREE
)
ENGINE
=
InnoDB
CHARACTER
SET
=
utf8mb4
COLLATE
=
utf8mb4_general_ci
COMMENT
=
'版权申请表'
ROW_FORMAT
=
DYNAMIC
;
CREATE
TABLE
`tb_open_copyright_apply_owner_relation`
(
`id`
int
(
11
)
UNSIGNED
NOT
NULL
AUTO_INCREMENT
,
`copyright_id`
int
(
11
)
NOT
NULL
COMMENT
'版权id'
,
`type`
tinyint
(
1
)
NOT
NULL
DEFAULT
0
COMMENT
'类别 0-自然人 1-法人'
,
`owner`
varchar
(
64
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
DEFAULT
''
COMMENT
'著作权人'
,
`id_number`
varchar
(
64
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
DEFAULT
''
COMMENT
'证件号码'
,
`is_effective`
tinyint
(
1
)
NOT
NULL
DEFAULT
1
COMMENT
'是否长期有效 0-否 1-是'
,
`effective_start_date`
date
NULL
DEFAULT
NULL
COMMENT
'证件有效起止时间'
,
`effective_end_date`
date
NULL
DEFAULT
NULL
COMMENT
'证件有效终止时间'
,
`province`
varchar
(
8
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
DEFAULT
''
COMMENT
'用户所在省份'
,
`province_code`
varchar
(
12
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
DEFAULT
''
COMMENT
'省对应的code'
,
`city`
varchar
(
8
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
DEFAULT
''
COMMENT
'用户所在城市'
,
`city_code`
varchar
(
12
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
DEFAULT
''
COMMENT
'市对应的code'
,
`id_type`
tinyint
(
1
)
NOT
NULL
DEFAULT
0
COMMENT
'证件类型 0-身份证 1-营业执照 2-企业法人营业执照 3-组织机构代码证书 4-事业单位法人证书 5-社团法人证书 6-统一社会信用代码 7其他有效证件'
,
`positive_photo`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
COMMENT
'正面照片 (身份证人像面照片)'
,
`back_photo`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
COMMENT
'反面照片(身份证国徽面照片)'
,
`personal_photo`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
COMMENT
'手持身份证照片'
,
`certificates_photo`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
COMMENT
'证件照片(营业执照等)'
,
`entrust_prove`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
DEFAULT
''
COMMENT
'委托证明'
,
PRIMARY
KEY
(
`id`
)
USING
BTREE
,
INDEX
`copyright_id`
(
`copyright_id`
)
USING
BTREE
)
ENGINE
=
InnoDB
CHARACTER
SET
=
utf8mb4
COLLATE
=
utf8mb4_general_ci
COMMENT
=
'版权申请记录和著作权人关联表'
ROW_FORMAT
=
DYNAMIC
;
CREATE
TABLE
`tb_open_copyright_author`
(
`id`
int
(
11
)
NOT
NULL
AUTO_INCREMENT
,
`copyright_id`
int
(
11
)
NOT
NULL
COMMENT
'版权id'
,
`name`
varchar
(
100
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
DEFAULT
''
COMMENT
'作者姓名或名称'
,
`sign_type`
varchar
(
2
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
COMMENT
'署名类型 (本名 | 别名 | 匿名)'
,
`sign`
varchar
(
100
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
DEFAULT
''
COMMENT
'签名'
,
PRIMARY
KEY
(
`id`
)
USING
BTREE
,
INDEX
`copyright_id`
(
`copyright_id`
)
USING
BTREE
)
ENGINE
=
InnoDB
CHARACTER
SET
=
utf8mb4
COLLATE
=
utf8mb4_general_ci
COMMENT
=
'版权作者表'
ROW_FORMAT
=
DYNAMIC
;
CREATE
TABLE
`tb_open_copyright_authority_relation`
(
`id`
int
(
10
)
UNSIGNED
NOT
NULL
AUTO_INCREMENT
,
`copyright_id`
int
(
11
)
NOT
NULL
COMMENT
'版权id'
,
`authority_id`
int
(
11
)
NOT
NULL
COMMENT
'权力id'
,
PRIMARY
KEY
(
`id`
)
USING
BTREE
,
INDEX
`copyright_id`
(
`copyright_id`
)
USING
BTREE
)
ENGINE
=
InnoDB
CHARACTER
SET
=
utf8mb4
COLLATE
=
utf8mb4_general_ci
COMMENT
=
'版权和权力关联表'
ROW_FORMAT
=
DYNAMIC
;
CREATE
TABLE
`tb_open_copyright_file`
(
`id`
int
(
11
)
UNSIGNED
NOT
NULL
AUTO_INCREMENT
COMMENT
'主键'
,
`copyright_id`
int
(
11
)
NOT
NULL
COMMENT
'版权id'
,
`file_name`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
DEFAULT
''
COMMENT
'附件名'
,
`file_url`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
DEFAULT
''
COMMENT
'附件路径'
,
`file_hash`
varchar
(
512
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
DEFAULT
''
COMMENT
'文件hash'
,
`file_suffix`
varchar
(
16
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
DEFAULT
''
COMMENT
'文件扩展名'
,
`file_size`
bigint
(
20
)
NOT
NULL
DEFAULT
0
COMMENT
'文件大小(字节数)'
,
PRIMARY
KEY
(
`id`
)
USING
BTREE
,
INDEX
`copyright_id`
(
`copyright_id`
)
USING
BTREE
)
ENGINE
=
InnoDB
CHARACTER
SET
=
utf8mb4
COLLATE
=
utf8mb4_general_ci
COMMENT
=
'版权附件表'
ROW_FORMAT
=
DYNAMIC
;
CREATE
TABLE
`tb_open_key`
(
`id`
int
(
10
)
UNSIGNED
NOT
NULL
AUTO_INCREMENT
,
`app_key`
varchar
(
32
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_general_ci
NULL
DEFAULT
NULL
,
`app_key_secret`
varchar
(
32
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_general_ci
NULL
DEFAULT
NULL
,
`app_name`
varchar
(
32
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_general_ci
NULL
DEFAULT
NULL
,
PRIMARY
KEY
(
`id`
)
USING
BTREE
)
ENGINE
=
InnoDB
CHARACTER
SET
=
utf8mb4
COLLATE
=
utf8mb4_general_ci
ROW_FORMAT
=
Dynamic
;
SET
FOREIGN_KEY_CHECKS
=
1
;
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment