Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
T
tron-explore
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
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
张建华@五瓣科技
tron-explore
Commits
843cc04b
Commit
843cc04b
authored
Dec 03, 2020
by
jianhua.zhang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
合约事件功能模块开发
parent
fd5a0cdc
Changes
12
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
1348 additions
and
7 deletions
+1348
-7
ContractEventRepository.java
...a/com/wuban/tron/explore/dao/ContractEventRepository.java
+48
-0
TronAccount.java
src/main/java/com/wuban/tron/explore/domain/TronAccount.java
+2
-2
TronActivePermission.java
...a/com/wuban/tron/explore/domain/TronActivePermission.java
+2
-2
TronKeys.java
src/main/java/com/wuban/tron/explore/domain/TronKeys.java
+1
-1
TronOwnerPermission.java
...va/com/wuban/tron/explore/domain/TronOwnerPermission.java
+2
-2
ContractEvent.java
...ain/java/com/wuban/tron/explore/entity/ContractEvent.java
+77
-0
ContractEventExample.java
...ban/tron/explore/entity/example/ContractEventExample.java
+816
-0
ContractEventService.java
.../com/wuban/tron/explore/service/ContractEventService.java
+31
-0
ContractEventServiceImpl.java
...n/tron/explore/service/impl/ContractEventServiceImpl.java
+74
-0
ContractEventMapper.xml
src/main/resources/mapper/ContractEventMapper.xml
+249
-0
ContractEventServiceImplTest.java
...on/explore/service/impl/ContractEventServiceImplTest.java
+37
-0
TronServiceImplTest.java
.../wuban/tron/explore/service/impl/TronServiceImplTest.java
+9
-0
No files found.
src/main/java/com/wuban/tron/explore/dao/ContractEventRepository.java
0 → 100644
View file @
843cc04b
package
com
.
wuban
.
tron
.
explore
.
dao
;
import
com.wuban.tron.explore.entity.ContractEvent
;
import
com.wuban.tron.explore.entity.example.ContractEventExample
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
/**
* <core>合约事件DAO</core>
*
* @author sky
* @date 2020/12/3
*/
@Repository
public
interface
ContractEventRepository
{
/**
* 添加合约事件信息
*
* @param record
* @return
*/
int
insert
(
@Param
(
"record"
)
ContractEvent
record
);
/**
* 批量添加合约事件信息
* @param records
* @return
*/
int
batchInsert
(
@Param
(
"records"
)
List
<
ContractEvent
>
records
);
/**
* 根据条件检索记录数
* @param example
* @return
*/
int
countByExample
(
@Param
(
"example"
)
ContractEventExample
example
);
/**
* 根据条件删除记录
*
* @param example
*/
void
deleteByExample
(
@Param
(
"example"
)
ContractEventExample
example
);
}
src/main/java/com/wuban/tron/explore/domain/TronAccount.java
View file @
843cc04b
...
...
@@ -19,7 +19,7 @@ public class TronAccount {
/* private Long create_time;
private Long latest_opration_time;
private Long latest_consume_free_time;
private ActivePermission active_permission;
private OwnerPermission owner_permission;*/
private
Tron
ActivePermission active_permission;
private
Tron
OwnerPermission owner_permission;*/
}
src/main/java/com/wuban/tron/explore/domain/ActivePermission.java
→
src/main/java/com/wuban/tron/explore/domain/
Tron
ActivePermission.java
View file @
843cc04b
...
...
@@ -11,13 +11,13 @@ import java.util.List;
* @date 2020/11/02
*/
@Data
public
class
ActivePermission
{
public
class
Tron
ActivePermission
{
private
String
type
;
private
Integer
id
;
private
String
permission_name
;
private
Integer
threshold
;
private
String
operations
;
private
List
<
Keys
>
keys
;
private
List
<
Tron
Keys
>
keys
;
}
src/main/java/com/wuban/tron/explore/domain/Keys.java
→
src/main/java/com/wuban/tron/explore/domain/
Tron
Keys.java
View file @
843cc04b
...
...
@@ -9,7 +9,7 @@ import lombok.Data;
* @date 2020/11/02
*/
@Data
public
class
Keys
{
public
class
Tron
Keys
{
private
String
address
;
private
Integer
weight
;
}
src/main/java/com/wuban/tron/explore/domain/OwnerPermission.java
→
src/main/java/com/wuban/tron/explore/domain/
Tron
OwnerPermission.java
View file @
843cc04b
...
...
@@ -11,10 +11,10 @@ import java.util.List;
* @date 2020/11/02
*/
@Data
public
class
OwnerPermission
{
public
class
Tron
OwnerPermission
{
private
String
permission_name
;
private
Integer
threshold
;
private
List
<
Keys
>
keys
;
private
List
<
Tron
Keys
>
keys
;
}
src/main/java/com/wuban/tron/explore/entity/ContractEvent.java
0 → 100644
View file @
843cc04b
package
com
.
wuban
.
tron
.
explore
.
entity
;
import
lombok.AccessLevel
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* 合约事件
* @author sky
* @date 2020-12-03
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
(
access
=
AccessLevel
.
PRIVATE
)
public
class
ContractEvent
{
/**
*
*/
private
Long
id
;
/**
*
*/
private
String
callerContractAddress
;
/**
*
*/
private
String
result
;
/**
*
*/
private
String
transactionId
;
/**
*
*/
private
String
resultType
;
/**
*
*/
private
Long
blockTimestamp
;
/**
*
*/
private
Integer
blockNumber
;
/**
*
*/
private
String
eventName
;
/**
*
*/
private
String
contractAddress
;
/**
*
*/
private
Integer
eventIndex
;
public
static
ContractEvent
getInstance
()
{
return
ContractEvent
.
builder
()
.
id
(
0L
)
.
callerContractAddress
(
""
)
.
result
(
""
)
.
transactionId
(
""
)
.
resultType
(
""
)
.
blockTimestamp
(
0L
)
.
blockNumber
(
0
)
.
eventName
(
""
)
.
contractAddress
(
""
)
.
eventIndex
(
0
)
.
build
();
}
}
\ No newline at end of file
src/main/java/com/wuban/tron/explore/entity/example/ContractEventExample.java
0 → 100644
View file @
843cc04b
This diff is collapsed.
Click to expand it.
src/main/java/com/wuban/tron/explore/service/ContractEventService.java
0 → 100644
View file @
843cc04b
package
com
.
wuban
.
tron
.
explore
.
service
;
import
com.wuban.tron.explore.domain.TronTransEvent
;
import
com.wuban.tron.explore.entity.ContractEvent
;
import
java.util.List
;
/**
* <core>合约事件服务接口</core>
*
* @author sky
* @date 2020/12/3
*/
public
interface
ContractEventService
{
/**
* 添加合约事件信息
* @param record
* @return
*/
int
insert
(
ContractEvent
record
);
/**
* 批量添加合约事件信息
* @param list
* @return
*/
int
batchInsert
(
List
<
TronTransEvent
>
list
);
}
src/main/java/com/wuban/tron/explore/service/impl/ContractEventServiceImpl.java
0 → 100644
View file @
843cc04b
package
com
.
wuban
.
tron
.
explore
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.google.gson.JsonObject
;
import
com.wuban.tron.explore.dao.ContractEventRepository
;
import
com.wuban.tron.explore.domain.TronTransEvent
;
import
com.wuban.tron.explore.entity.ContractEvent
;
import
com.wuban.tron.explore.entity.example.ContractEventExample
;
import
com.wuban.tron.explore.service.ContractEventService
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* <core>合约事件服务接口实现类</core>
*
* @author sky
* @date 2020/12/3
*/
@Service
@RequiredArgsConstructor
(
onConstructor_
=
@Autowired
)
public
class
ContractEventServiceImpl
implements
ContractEventService
{
private
final
ContractEventRepository
contractEventRepository
;
@Override
public
int
insert
(
ContractEvent
record
)
{
return
this
.
contractEventRepository
.
insert
(
record
);
}
@Override
public
int
batchInsert
(
List
<
TronTransEvent
>
records
)
{
List
<
ContractEvent
>
list
=
new
ArrayList
<>();
if
(!
CollectionUtils
.
isEmpty
(
records
))
{
/*
根据合约地址查询表(tron_contract_event)中是否存在记录,如果存在删除记录
*/
String
contractAddress
=
records
.
get
(
0
).
getContract_address
();
ContractEventExample
example
=
new
ContractEventExample
();
example
.
createCriteria
().
andContractAddressEqualTo
(
contractAddress
);
int
count
=
this
.
contractEventRepository
.
countByExample
(
example
);
if
(
count
!=
0
)
{
this
.
contractEventRepository
.
deleteByExample
(
example
);
}
records
.
forEach
(
o
->
{
ContractEvent
event
=
new
ContractEvent
();
event
.
setBlockNumber
(
o
.
getBlock_number
());
event
.
setBlockTimestamp
(
o
.
getBlock_timestamp
());
event
.
setCallerContractAddress
(
o
.
getCaller_contract_address
());
event
.
setContractAddress
(
o
.
getContract_address
());
event
.
setEventIndex
(
o
.
getEvent_index
());
event
.
setEventName
(
o
.
getEvent_name
());
event
.
setTransactionId
(
o
.
getTransaction_id
());
String
result
=
JSON
.
toJSONString
(
o
.
getResult
());
String
resultType
=
JSON
.
toJSONString
(
o
.
getResult_type
());
event
.
setResult
(
result
);
event
.
setResultType
(
resultType
);
list
.
add
(
event
);
});
}
return
this
.
contractEventRepository
.
batchInsert
(
list
);
}
}
src/main/resources/mapper/ContractEventMapper.xml
0 → 100644
View file @
843cc04b
This diff is collapsed.
Click to expand it.
src/test/java/com/wuban/tron/explore/service/impl/ContractEventServiceImplTest.java
0 → 100644
View file @
843cc04b
package
com
.
wuban
.
tron
.
explore
.
service
.
impl
;
import
com.wuban.tron.explore.BaseTest
;
import
com.wuban.tron.explore.domain.TronTransEvent
;
import
com.wuban.tron.explore.service.ContractEventService
;
import
com.wuban.tron.explore.service.TronService
;
import
org.junit.jupiter.api.BeforeEach
;
import
org.junit.jupiter.api.Test
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
java.util.List
;
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.*;
class
ContractEventServiceImplTest
extends
BaseTest
{
@Autowired
private
TronService
tronService
;
@Autowired
private
ContractEventService
contractEventService
;
@BeforeEach
void
setUp
()
{
}
@Test
void
insert
()
{
}
@Test
void
batchInsert
()
{
List
<
TronTransEvent
>
data
=
this
.
tronService
.
getContractEvent
(
"TMypW2w7P2y8QzV8i9BAE31yzQukp63tbo"
);
this
.
contractEventService
.
batchInsert
(
data
);
}
}
\ No newline at end of file
src/test/java/com/wuban/tron/explore/service/impl/TronServiceImplTest.java
View file @
843cc04b
package
com
.
wuban
.
tron
.
explore
.
service
.
impl
;
import
com.wuban.tron.explore.domain.*
;
import
com.wuban.tron.explore.entity.ContractEvent
;
import
com.wuban.tron.explore.service.ContractEventService
;
import
com.wuban.tron.explore.service.TronService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.junit.jupiter.api.Test
;
import
org.junit.platform.commons.util.StringUtils
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
org.springframework.util.CollectionUtils
;
import
org.tron.common.utils.ByteArray
;
import
org.tron.walletserver.WalletApi
;
import
java.util.ArrayList
;
import
java.util.List
;
@RunWith
(
SpringRunner
.
class
)
...
...
@@ -21,6 +27,9 @@ class TronServiceImplTest {
@Autowired
private
TronService
tronService
;
@Autowired
private
ContractEventService
contractEventService
;
@Test
void
getBlockByNum
()
{
TronResponseData
data
=
this
.
tronService
.
getBlockByNum
(
850000L
);
...
...
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