Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
mall-server
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
yimu
mall-server
Commits
5d7bb839
Commit
5d7bb839
authored
Feb 24, 2022
by
wp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
发布商品重构以及盲盒商品
parent
fa88ccc7
Hide whitespace changes
Inline
Side-by-side
Showing
31 changed files
with
760 additions
and
165 deletions
+760
-165
ChainStatusEnum.java
.../mall/server/admin/block_chain/enums/ChainStatusEnum.java
+21
-0
NftEvm.java
...ava/com/fzm/mall/server/admin/block_chain/nft/NftEvm.java
+51
-45
SpuController.java
...l/server/admin/goods_center/controller/SpuController.java
+16
-6
GoodsSkuDTO.java
...all/server/admin/goods_center/entity/dto/GoodsSkuDTO.java
+3
-0
GoodsSpuDTO.java
...all/server/admin/goods_center/entity/dto/GoodsSpuDTO.java
+12
-19
GoodsSpuDraftDTO.java
...erver/admin/goods_center/entity/dto/GoodsSpuDraftDTO.java
+104
-0
SpuStatusEnum.java
...server/admin/goods_center/enums/status/SpuStatusEnum.java
+2
-1
NFTSalesTypeEnum.java
...erver/admin/goods_center/enums/type/NFTSalesTypeEnum.java
+33
-0
SalesTypeEnum.java
...l/server/admin/goods_center/enums/type/SalesTypeEnum.java
+33
-0
Sku.java
...ava/com/fzm/mall/server/admin/goods_center/model/Sku.java
+8
-0
Spu.java
...ava/com/fzm/mall/server/admin/goods_center/model/Spu.java
+7
-0
ICategorySpuService.java
...erver/admin/goods_center/service/ICategorySpuService.java
+7
-0
ICountService.java
...mall/server/admin/goods_center/service/ICountService.java
+7
-0
IExternalTokenService.java
...ver/admin/goods_center/service/IExternalTokenService.java
+2
-0
IGoodsNftService.java
...l/server/admin/goods_center/service/IGoodsNftService.java
+15
-0
ISkuPropService.java
...ll/server/admin/goods_center/service/ISkuPropService.java
+6
-0
ISkuService.java
...m/mall/server/admin/goods_center/service/ISkuService.java
+11
-1
ISpuService.java
...m/mall/server/admin/goods_center/service/ISpuService.java
+12
-6
CategorySpuServiceImpl.java
...min/goods_center/service/impl/CategorySpuServiceImpl.java
+7
-0
CountServiceImpl.java
...ver/admin/goods_center/service/impl/CountServiceImpl.java
+7
-0
ExternalTokenServiceImpl.java
...n/goods_center/service/impl/ExternalTokenServiceImpl.java
+7
-0
GoodsNftServiceImpl.java
.../admin/goods_center/service/impl/GoodsNftServiceImpl.java
+14
-0
SkuPropServiceImpl.java
...r/admin/goods_center/service/impl/SkuPropServiceImpl.java
+7
-1
SkuServiceImpl.java
...erver/admin/goods_center/service/impl/SkuServiceImpl.java
+151
-33
SpuServiceImpl.java
...erver/admin/goods_center/service/impl/SpuServiceImpl.java
+141
-45
CoinsConsumer.java
.../server/admin/mq/consumer/goods_center/CoinsConsumer.java
+33
-1
HttpUtil.java
...rc/main/java/com/fzm/mall/server/admin/util/HttpUtil.java
+17
-2
application-dev.yml
mall-server-admin/src/main/resources/application-dev.yml
+1
-1
SkuMapper.xml
...dmin/src/main/resources/mapper/goods_center/SkuMapper.xml
+2
-0
SpuMapper.xml
...dmin/src/main/resources/mapper/goods_center/SpuMapper.xml
+3
-0
mall_create.sql
mall-sql/mall_create.sql
+20
-4
No files found.
mall-server-admin/src/main/java/com/fzm/mall/server/admin/block_chain/enums/ChainStatusEnum.java
0 → 100644
View file @
5d7bb839
package
com
.
fzm
.
mall
.
server
.
admin
.
block_chain
.
enums
;
/**
* 通证类型 1:token 2:ft 3:nft(外部) 4:nft(内部)
*/
public
enum
ChainStatusEnum
{
RUNNING
(
0
),
//待确认
SUCCESS
(
1
),
//成功
FAIL
(
2
);
//失败
private
Integer
status
;
ChainStatusEnum
(
Integer
status
)
{
this
.
status
=
status
;
}
public
Integer
getStatus
()
{
return
status
;
}
}
mall-server-admin/src/main/java/com/fzm/mall/server/admin/block_chain/nft/NftEvm.java
View file @
5d7bb839
...
@@ -74,7 +74,7 @@ public class NftEvm {
...
@@ -74,7 +74,7 @@ public class NftEvm {
private static String cName = "user.evm.0x83fee8a54d0d3c981dcbcddc8fa42abe9645a2106c5583c35ffe5708659574fc";
private static String cName = "user.evm.0x83fee8a54d0d3c981dcbcddc8fa42abe9645a2106c5583c35ffe5708659574fc";
private static String cAddr = "1MebTQtN87KDoeoKyQddLkxgKrufQw3hTX";*/
private static String cAddr = "1MebTQtN87KDoeoKyQddLkxgKrufQw3hTX";*/
private
static
String
rpcUrl
=
"http://119.8.39.159:8901"
;
/*
private static String rpcUrl = "http://119.8.39.159:8901";
private static String withhold = "1Ae6FfgdYJn6LLaqDoRjwga3j4TTmMq3t7";
private static String withhold = "1Ae6FfgdYJn6LLaqDoRjwga3j4TTmMq3t7";
private static String withholdKey = "0xa4c49dcb35e0032dc8db5891dc81481943b68fc558ce93ce74d0382c1d104934";
private static String withholdKey = "0xa4c49dcb35e0032dc8db5891dc81481943b68fc558ce93ce74d0382c1d104934";
private static String tokenManager = "1N2ABERwHgxGhebVw6fVSwaQ5uLAysmGEu";
private static String tokenManager = "1N2ABERwHgxGhebVw6fVSwaQ5uLAysmGEu";
...
@@ -83,7 +83,16 @@ public class NftEvm {
...
@@ -83,7 +83,16 @@ public class NftEvm {
// private static String cName = "user.evm.0xdc173544bb1876b9811d679f0dd33acc03772c6694f34a9f51b79cbae8af10f4";
// private static String cName = "user.evm.0xdc173544bb1876b9811d679f0dd33acc03772c6694f34a9f51b79cbae8af10f4";
private static String cName = "user.evm.0xa038a372ab27d9038328932c98454e52390b94555a69ab9559e8ab14ff2e540f";
private static String cName = "user.evm.0xa038a372ab27d9038328932c98454e52390b94555a69ab9559e8ab14ff2e540f";
// private static String cAddr = "1MHibNozeurswCpinxR9md147dYUUG3vRN";
// private static String cAddr = "1MHibNozeurswCpinxR9md147dYUUG3vRN";
private
static
String
cAddr
=
"1Nhju8CgSUmkQQwc7ECk4bFxnv48iRLNRX"
;
private static String cAddr = "1Nhju8CgSUmkQQwc7ECk4bFxnv48iRLNRX";*/
private
static
String
rpcUrl
=
"http://121.37.141.165:8901"
;
private
static
String
withhold
=
"1417K9fd5vt4zYW86xinWiCbAkNP794aNy"
;
private
static
String
withholdKey
=
"0x19d78691584930407e63cd35ac6e67fae6113894b41812e65847d4a365a802a0"
;
private
static
String
tokenManager
=
"1N2ABERwHgxGhebVw6fVSwaQ5uLAysmGEu"
;
private
static
String
tokenManagerKey
=
"0x4e92bda2477ded0e7c07a9e3acd2370de8d7401c68cc83ee8376806db3121e77"
;
private
static
String
title
=
"user.p.testproofv2."
;
private
static
String
cName
=
"user.p.FILMCHAIN.user.evm.0xdc173544bb1876b9811d679f0dd33acc03772c6694f34a9f51b79cbae8af10f4"
;
private
static
String
cAddr
=
"144YmkA72Cd5hR9iUkv6QWNx7PVM1TrqfV"
;
/*private static String rpcUrl = "http://123.60.25.57:18901";
/*private static String rpcUrl = "http://123.60.25.57:18901";
private static String withhold = "1417K9fd5vt4zYW86xinWiCbAkNP794aNy";
private static String withhold = "1417K9fd5vt4zYW86xinWiCbAkNP794aNy";
...
@@ -94,7 +103,7 @@ public class NftEvm {
...
@@ -94,7 +103,7 @@ public class NftEvm {
private static String cName = "user.p.FILMCHAIN.user.evm.0xdc173544bb1876b9811d679f0dd33acc03772c6694f34a9f51b79cbae8af10f4";
private static String cName = "user.p.FILMCHAIN.user.evm.0xdc173544bb1876b9811d679f0dd33acc03772c6694f34a9f51b79cbae8af10f4";
private static String cAddr = "144YmkA72Cd5hR9iUkv6QWNx7PVM1TrqfV";*/
private static String cAddr = "144YmkA72Cd5hR9iUkv6QWNx7PVM1TrqfV";*/
private
static
RpcApi
ra
=
new
RpcApi
(
rpcUrl
,
null
,
withholdKey
,
title
);
private
static
RpcApi
ra
=
new
RpcApi
(
rpcUrl
,
withhold
,
withholdKey
,
title
);
// private static String code = "60806040523480156200001157600080fd5b506040805160208101909152600081526200002c8162000033565b506200012f565b8051620000489060029060208401906200004c565b5050565b8280546200005a90620000f2565b90600052602060002090601f0160209004810192826200007e5760008555620000c9565b82601f106200009957805160ff1916838001178555620000c9565b82800160010185558215620000c9579182015b82811115620000c9578251825591602001919060010190620000ac565b50620000d7929150620000db565b5090565b5b80821115620000d75760008155600101620000dc565b6002810460018216806200010757607f821691505b602082108114156200012957634e487b7160e01b600052602260045260246000fd5b50919050565b6117fc806200013f6000396000f3fe608060405234801561001057600080fd5b50600436106100a85760003560e01c80634e1273f4116100715780634e1273f41461013e5780638c7a63ae1461015e578063a22cb46514610171578063aba7e0fd14610184578063e985e9c514610197578063f242432a146101aa576100a8565b8062fdd58e146100ad57806301ffc9a7146100d65780630e89341c146100f657806323a36d2b146101165780632eb2c2d61461012b575b600080fd5b6100c06100bb366004610f69565b6101bd565b6040516100cd9190611603565b60405180910390f35b6100e96100e4366004611082565b610214565b6040516100cd91906112b9565b6101096101043660046110c1565b61025c565b6040516100cd91906112c4565b610129610124366004610f92565b6102f0565b005b610129610139366004610e26565b610310565b61015161014c366004610fc4565b61036e565b6040516100cd9190611278565b61010961016c3660046110c1565b61048e565b61012961017f366004610f2f565b6104ab565b6101296101923660046110d9565b610579565b6100e96101a5366004610df4565b610598565b6101296101b8366004610ecc565b6105c6565b60006001600160a01b0383166101ee5760405162461bcd60e51b81526004016101e590611373565b60405180910390fd5b506000908152602081815260408083206001600160a01b03949094168352929052205490565b60006001600160e01b03198216636cdb3d1360e11b148061024557506001600160e01b031982166303a24d0760e21b145b8061025457506102548261061d565b90505b919050565b60606002805461026b90611680565b80601f016020809104026020016040519081016040528092919081815260200182805461029790611680565b80156102e45780601f106102b9576101008083540402835291602001916102e4565b820191906000526020600020905b8154815290600101906020018083116102c757829003601f168201915b50505050509050919050565b61030b83838360405180602001604052806000815250610636565b505050565b610318610725565b6001600160a01b0316856001600160a01b0316148061033e575061033e856101a5610725565b61035a5760405162461bcd60e51b81526004016101e59061144c565b610367858585858561072a565b5050505050565b606081518351146103915760405162461bcd60e51b81526004016101e590611531565b6000835167ffffffffffffffff8111156103bb57634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156103e4578160200160208202803683370190505b50905060005b84518110156104865761044b85828151811061041657634e487b7160e01b600052603260045260246000fd5b602002602001015185838151811061043e57634e487b7160e01b600052603260045260246000fd5b60200260200101516101bd565b82828151811061046b57634e487b7160e01b600052603260045260246000fd5b602090810291909101015261047f816116bb565b90506103ea565b509392505050565b600081815260036020526040902080546060919061026b90611680565b816001600160a01b03166104bd610725565b6001600160a01b031614156104e45760405162461bcd60e51b81526004016101e5906114e8565b80600160006104f1610725565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120805460ff191692151592909217909155610535610725565b6001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161056d91906112b9565b60405180910390a35050565b6000838152600360205260409020610592908383610c6d565b50505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b6105ce610725565b6001600160a01b0316856001600160a01b031614806105f457506105f4856101a5610725565b6106105760405162461bcd60e51b81526004016101e5906113be565b61036785858585856108fb565b6001600160e01b031981166301ffc9a760e01b14919050565b6001600160a01b03841661065c5760405162461bcd60e51b81526004016101e5906115c2565b6000610666610725565b90506106878160008761067888610a2f565b61068188610a2f565b876108f3565b6000848152602081815260408083206001600160a01b0389168452909152812080548592906106b7908490611668565b92505081905550846001600160a01b031660006001600160a01b0316826001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62878760405161070e92919061160c565b60405180910390a461036781600087878787610a88565b335b90565b815183511461074b5760405162461bcd60e51b81526004016101e59061157a565b6001600160a01b0384166107715760405162461bcd60e51b81526004016101e590611407565b600061077b610725565b905061078b8187878787876108f3565b60005b845181101561088d5760008582815181106107b957634e487b7160e01b600052603260045260246000fd5b6020026020010151905060008583815181106107e557634e487b7160e01b600052603260045260246000fd5b602090810291909101810151600084815280835260408082206001600160a01b038e1683529093529190912054909150818110156108355760405162461bcd60e51b81526004016101e59061149e565b6000838152602081815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290610872908490611668565b9250508190555050505080610886906116bb565b905061078e565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516108dd92919061128b565b60405180910390a46108f3818787878787610b96565b505050505050565b6001600160a01b0384166109215760405162461bcd60e51b81526004016101e590611407565b600061092b610725565b905061093c81878761067888610a2f565b6000848152602081815260408083206001600160a01b038a1684529091529020548381101561097d5760405162461bcd60e51b81526004016101e59061149e565b6000858152602081815260408083206001600160a01b038b81168552925280832087850390559088168252812080548692906109ba908490611668565b92505081905550856001600160a01b0316876001600160a01b0316836001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628888604051610a1092919061160c565b60405180910390a4610a26828888888888610a88565b50505050505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110610a7757634e487b7160e01b600052603260045260246000fd5b602090810291909101015292915050565b610a9a846001600160a01b0316610c67565b156108f35760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190610ad39089908990889088908890600401611233565b602060405180830381600087803b158015610aed57600080fd5b505af1925050508015610b1d575060408051601f3d908101601f19168201909252610b1a918101906110a5565b60015b610b6657610b29611708565b80610b345750610b4e565b8060405162461bcd60e51b81526004016101e591906112c4565b60405162461bcd60e51b81526004016101e5906112d7565b6001600160e01b0319811663f23a6e6160e01b14610a265760405162461bcd60e51b81526004016101e59061132b565b610ba8846001600160a01b0316610c67565b156108f35760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190610be190899089908890889088906004016111d5565b602060405180830381600087803b158015610bfb57600080fd5b505af1925050508015610c2b575060408051601f3d908101601f19168201909252610c28918101906110a5565b60015b610c3757610b29611708565b6001600160e01b0319811663bc197c8160e01b14610a265760405162461bcd60e51b81526004016101e59061132b565b3b151590565b828054610c7990611680565b90600052602060002090601f016020900481019282610c9b5760008555610ce1565b82601f10610cb45782800160ff19823516178555610ce1565b82800160010185558215610ce1579182015b82811115610ce1578235825591602001919060010190610cc6565b50610ced929150610cf1565b5090565b5b80821115610ced5760008155600101610cf2565b80356001600160a01b038116811461025757600080fd5b600082601f830112610d2d578081fd5b81356020610d42610d3d83611644565b61161a565b8281528181019085830183850287018401881015610d5e578586fd5b855b85811015610d7c57813584529284019290840190600101610d60565b5090979650505050505050565b600082601f830112610d99578081fd5b813567ffffffffffffffff811115610db357610db36116ec565b610dc6601f8201601f191660200161161a565b818152846020838601011115610dda578283fd5b816020850160208301379081016020019190915292915050565b60008060408385031215610e06578182fd5b610e0f83610d06565b9150610e1d60208401610d06565b90509250929050565b600080600080600060a08688031215610e3d578081fd5b610e4686610d06565b9450610e5460208701610d06565b9350604086013567ffffffffffffffff80821115610e70578283fd5b610e7c89838a01610d1d565b94506060880135915080821115610e91578283fd5b610e9d89838a01610d1d565b93506080880135915080821115610eb2578283fd5b50610ebf88828901610d89565b9150509295509295909350565b600080600080600060a08688031215610ee3578081fd5b610eec86610d06565b9450610efa60208701610d06565b93506040860135925060608601359150608086013567ffffffffffffffff811115610f23578182fd5b610ebf88828901610d89565b60008060408385031215610f41578182fd5b610f4a83610d06565b915060208301358015158114610f5e578182fd5b809150509250929050565b60008060408385031215610f7b578182fd5b610f8483610d06565b946020939093013593505050565b600080600060608486031215610fa6578283fd5b610faf84610d06565b95602085013595506040909401359392505050565b60008060408385031215610fd6578182fd5b823567ffffffffffffffff80821115610fed578384fd5b818501915085601f830112611000578384fd5b81356020611010610d3d83611644565b82815281810190858301838502870184018b101561102c578889fd5b8896505b848710156110555761104181610d06565b835260019690960195918301918301611030565b509650508601359250508082111561106b578283fd5b5061107885828601610d1d565b9150509250929050565b600060208284031215611093578081fd5b813561109e816117ad565b9392505050565b6000602082840312156110b6578081fd5b815161109e816117ad565b6000602082840312156110d2578081fd5b5035919050565b6000806000604084860312156110ed578081fd5b83359250602084013567ffffffffffffffff8082111561110b578283fd5b818601915086601f83011261111e578283fd5b81358181111561112c578384fd5b87602082850101111561113d578384fd5b6020830194508093505050509250925092565b6000815180845260208085019450808401835b8381101561117f57815187529582019590820190600101611163565b509495945050505050565b60008151808452815b818110156111af57602081850181015186830182015201611193565b818111156111c05782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0386811682528516602082015260a06040820181905260009061120190830186611150565b82810360608401526112138186611150565b90508281036080840152611227818561118a565b98975050505050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061126d9083018461118a565b979650505050505050565b60006020825261109e6020830184611150565b60006040825261129e6040830185611150565b82810360208401526112b08185611150565b95945050505050565b901515815260200190565b60006020825261109e602083018461118a565b60208082526034908201527f455243313135353a207472616e7366657220746f206e6f6e20455243313135356040820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b606082015260800190565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6020808252602b908201527f455243313135353a2062616c616e636520717565727920666f7220746865207a60408201526a65726f206164647265737360a81b606082015260800190565b60208082526029908201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260408201526808185c1c1c9bdd995960ba1b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526032908201527f455243313135353a207472616e736665722063616c6c6572206973206e6f74206040820152711bdddb995c881b9bdc88185c1c1c9bdd995960721b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b60208082526029908201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604082015268103337b91039b2b63360b91b606082015260800190565b60208082526029908201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604082015268040dad2e6dac2e8c6d60bb1b606082015260800190565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526021908201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736040820152607360f81b606082015260800190565b90815260200190565b918252602082015260400190565b60405181810167ffffffffffffffff8111828210171561163c5761163c6116ec565b604052919050565b600067ffffffffffffffff82111561165e5761165e6116ec565b5060209081020190565b6000821982111561167b5761167b6116d6565b500190565b60028104600182168061169457607f821691505b602082108114156116b557634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156116cf576116cf6116d6565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60e01c90565b600060443d101561171857610727565b600481823e6308c379a061172c8251611702565b1461173657610727565b6040513d600319016004823e80513d67ffffffffffffffff81602484011181841117156117665750505050610727565b828401925082519150808211156117805750505050610727565b503d8301602082840101111561179857505050610727565b601f01601f1916810160200160405291505090565b6001600160e01b0319811681146117c357600080fd5b5056fea26469706673582212209cf51eb3daad4f0c1c653142bc91893c5a26f1a14f11a3152bc64105d2e942bc64736f6c63430008000033";
// private static String code = "60806040523480156200001157600080fd5b506040805160208101909152600081526200002c8162000033565b506200012f565b8051620000489060029060208401906200004c565b5050565b8280546200005a90620000f2565b90600052602060002090601f0160209004810192826200007e5760008555620000c9565b82601f106200009957805160ff1916838001178555620000c9565b82800160010185558215620000c9579182015b82811115620000c9578251825591602001919060010190620000ac565b50620000d7929150620000db565b5090565b5b80821115620000d75760008155600101620000dc565b6002810460018216806200010757607f821691505b602082108114156200012957634e487b7160e01b600052602260045260246000fd5b50919050565b6117fc806200013f6000396000f3fe608060405234801561001057600080fd5b50600436106100a85760003560e01c80634e1273f4116100715780634e1273f41461013e5780638c7a63ae1461015e578063a22cb46514610171578063aba7e0fd14610184578063e985e9c514610197578063f242432a146101aa576100a8565b8062fdd58e146100ad57806301ffc9a7146100d65780630e89341c146100f657806323a36d2b146101165780632eb2c2d61461012b575b600080fd5b6100c06100bb366004610f69565b6101bd565b6040516100cd9190611603565b60405180910390f35b6100e96100e4366004611082565b610214565b6040516100cd91906112b9565b6101096101043660046110c1565b61025c565b6040516100cd91906112c4565b610129610124366004610f92565b6102f0565b005b610129610139366004610e26565b610310565b61015161014c366004610fc4565b61036e565b6040516100cd9190611278565b61010961016c3660046110c1565b61048e565b61012961017f366004610f2f565b6104ab565b6101296101923660046110d9565b610579565b6100e96101a5366004610df4565b610598565b6101296101b8366004610ecc565b6105c6565b60006001600160a01b0383166101ee5760405162461bcd60e51b81526004016101e590611373565b60405180910390fd5b506000908152602081815260408083206001600160a01b03949094168352929052205490565b60006001600160e01b03198216636cdb3d1360e11b148061024557506001600160e01b031982166303a24d0760e21b145b8061025457506102548261061d565b90505b919050565b60606002805461026b90611680565b80601f016020809104026020016040519081016040528092919081815260200182805461029790611680565b80156102e45780601f106102b9576101008083540402835291602001916102e4565b820191906000526020600020905b8154815290600101906020018083116102c757829003601f168201915b50505050509050919050565b61030b83838360405180602001604052806000815250610636565b505050565b610318610725565b6001600160a01b0316856001600160a01b0316148061033e575061033e856101a5610725565b61035a5760405162461bcd60e51b81526004016101e59061144c565b610367858585858561072a565b5050505050565b606081518351146103915760405162461bcd60e51b81526004016101e590611531565b6000835167ffffffffffffffff8111156103bb57634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156103e4578160200160208202803683370190505b50905060005b84518110156104865761044b85828151811061041657634e487b7160e01b600052603260045260246000fd5b602002602001015185838151811061043e57634e487b7160e01b600052603260045260246000fd5b60200260200101516101bd565b82828151811061046b57634e487b7160e01b600052603260045260246000fd5b602090810291909101015261047f816116bb565b90506103ea565b509392505050565b600081815260036020526040902080546060919061026b90611680565b816001600160a01b03166104bd610725565b6001600160a01b031614156104e45760405162461bcd60e51b81526004016101e5906114e8565b80600160006104f1610725565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120805460ff191692151592909217909155610535610725565b6001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161056d91906112b9565b60405180910390a35050565b6000838152600360205260409020610592908383610c6d565b50505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b6105ce610725565b6001600160a01b0316856001600160a01b031614806105f457506105f4856101a5610725565b6106105760405162461bcd60e51b81526004016101e5906113be565b61036785858585856108fb565b6001600160e01b031981166301ffc9a760e01b14919050565b6001600160a01b03841661065c5760405162461bcd60e51b81526004016101e5906115c2565b6000610666610725565b90506106878160008761067888610a2f565b61068188610a2f565b876108f3565b6000848152602081815260408083206001600160a01b0389168452909152812080548592906106b7908490611668565b92505081905550846001600160a01b031660006001600160a01b0316826001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62878760405161070e92919061160c565b60405180910390a461036781600087878787610a88565b335b90565b815183511461074b5760405162461bcd60e51b81526004016101e59061157a565b6001600160a01b0384166107715760405162461bcd60e51b81526004016101e590611407565b600061077b610725565b905061078b8187878787876108f3565b60005b845181101561088d5760008582815181106107b957634e487b7160e01b600052603260045260246000fd5b6020026020010151905060008583815181106107e557634e487b7160e01b600052603260045260246000fd5b602090810291909101810151600084815280835260408082206001600160a01b038e1683529093529190912054909150818110156108355760405162461bcd60e51b81526004016101e59061149e565b6000838152602081815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290610872908490611668565b9250508190555050505080610886906116bb565b905061078e565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516108dd92919061128b565b60405180910390a46108f3818787878787610b96565b505050505050565b6001600160a01b0384166109215760405162461bcd60e51b81526004016101e590611407565b600061092b610725565b905061093c81878761067888610a2f565b6000848152602081815260408083206001600160a01b038a1684529091529020548381101561097d5760405162461bcd60e51b81526004016101e59061149e565b6000858152602081815260408083206001600160a01b038b81168552925280832087850390559088168252812080548692906109ba908490611668565b92505081905550856001600160a01b0316876001600160a01b0316836001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628888604051610a1092919061160c565b60405180910390a4610a26828888888888610a88565b50505050505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110610a7757634e487b7160e01b600052603260045260246000fd5b602090810291909101015292915050565b610a9a846001600160a01b0316610c67565b156108f35760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190610ad39089908990889088908890600401611233565b602060405180830381600087803b158015610aed57600080fd5b505af1925050508015610b1d575060408051601f3d908101601f19168201909252610b1a918101906110a5565b60015b610b6657610b29611708565b80610b345750610b4e565b8060405162461bcd60e51b81526004016101e591906112c4565b60405162461bcd60e51b81526004016101e5906112d7565b6001600160e01b0319811663f23a6e6160e01b14610a265760405162461bcd60e51b81526004016101e59061132b565b610ba8846001600160a01b0316610c67565b156108f35760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190610be190899089908890889088906004016111d5565b602060405180830381600087803b158015610bfb57600080fd5b505af1925050508015610c2b575060408051601f3d908101601f19168201909252610c28918101906110a5565b60015b610c3757610b29611708565b6001600160e01b0319811663bc197c8160e01b14610a265760405162461bcd60e51b81526004016101e59061132b565b3b151590565b828054610c7990611680565b90600052602060002090601f016020900481019282610c9b5760008555610ce1565b82601f10610cb45782800160ff19823516178555610ce1565b82800160010185558215610ce1579182015b82811115610ce1578235825591602001919060010190610cc6565b50610ced929150610cf1565b5090565b5b80821115610ced5760008155600101610cf2565b80356001600160a01b038116811461025757600080fd5b600082601f830112610d2d578081fd5b81356020610d42610d3d83611644565b61161a565b8281528181019085830183850287018401881015610d5e578586fd5b855b85811015610d7c57813584529284019290840190600101610d60565b5090979650505050505050565b600082601f830112610d99578081fd5b813567ffffffffffffffff811115610db357610db36116ec565b610dc6601f8201601f191660200161161a565b818152846020838601011115610dda578283fd5b816020850160208301379081016020019190915292915050565b60008060408385031215610e06578182fd5b610e0f83610d06565b9150610e1d60208401610d06565b90509250929050565b600080600080600060a08688031215610e3d578081fd5b610e4686610d06565b9450610e5460208701610d06565b9350604086013567ffffffffffffffff80821115610e70578283fd5b610e7c89838a01610d1d565b94506060880135915080821115610e91578283fd5b610e9d89838a01610d1d565b93506080880135915080821115610eb2578283fd5b50610ebf88828901610d89565b9150509295509295909350565b600080600080600060a08688031215610ee3578081fd5b610eec86610d06565b9450610efa60208701610d06565b93506040860135925060608601359150608086013567ffffffffffffffff811115610f23578182fd5b610ebf88828901610d89565b60008060408385031215610f41578182fd5b610f4a83610d06565b915060208301358015158114610f5e578182fd5b809150509250929050565b60008060408385031215610f7b578182fd5b610f8483610d06565b946020939093013593505050565b600080600060608486031215610fa6578283fd5b610faf84610d06565b95602085013595506040909401359392505050565b60008060408385031215610fd6578182fd5b823567ffffffffffffffff80821115610fed578384fd5b818501915085601f830112611000578384fd5b81356020611010610d3d83611644565b82815281810190858301838502870184018b101561102c578889fd5b8896505b848710156110555761104181610d06565b835260019690960195918301918301611030565b509650508601359250508082111561106b578283fd5b5061107885828601610d1d565b9150509250929050565b600060208284031215611093578081fd5b813561109e816117ad565b9392505050565b6000602082840312156110b6578081fd5b815161109e816117ad565b6000602082840312156110d2578081fd5b5035919050565b6000806000604084860312156110ed578081fd5b83359250602084013567ffffffffffffffff8082111561110b578283fd5b818601915086601f83011261111e578283fd5b81358181111561112c578384fd5b87602082850101111561113d578384fd5b6020830194508093505050509250925092565b6000815180845260208085019450808401835b8381101561117f57815187529582019590820190600101611163565b509495945050505050565b60008151808452815b818110156111af57602081850181015186830182015201611193565b818111156111c05782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0386811682528516602082015260a06040820181905260009061120190830186611150565b82810360608401526112138186611150565b90508281036080840152611227818561118a565b98975050505050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061126d9083018461118a565b979650505050505050565b60006020825261109e6020830184611150565b60006040825261129e6040830185611150565b82810360208401526112b08185611150565b95945050505050565b901515815260200190565b60006020825261109e602083018461118a565b60208082526034908201527f455243313135353a207472616e7366657220746f206e6f6e20455243313135356040820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b606082015260800190565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6020808252602b908201527f455243313135353a2062616c616e636520717565727920666f7220746865207a60408201526a65726f206164647265737360a81b606082015260800190565b60208082526029908201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260408201526808185c1c1c9bdd995960ba1b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526032908201527f455243313135353a207472616e736665722063616c6c6572206973206e6f74206040820152711bdddb995c881b9bdc88185c1c1c9bdd995960721b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b60208082526029908201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604082015268103337b91039b2b63360b91b606082015260800190565b60208082526029908201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604082015268040dad2e6dac2e8c6d60bb1b606082015260800190565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526021908201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736040820152607360f81b606082015260800190565b90815260200190565b918252602082015260400190565b60405181810167ffffffffffffffff8111828210171561163c5761163c6116ec565b604052919050565b600067ffffffffffffffff82111561165e5761165e6116ec565b5060209081020190565b6000821982111561167b5761167b6116d6565b500190565b60028104600182168061169457607f821691505b602082108114156116b557634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156116cf576116cf6116d6565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60e01c90565b600060443d101561171857610727565b600481823e6308c379a061172c8251611702565b1461173657610727565b6040513d600319016004823e80513d67ffffffffffffffff81602484011181841117156117665750505050610727565b828401925082519150808211156117805750505050610727565b503d8301602082840101111561179857505050610727565b601f01601f1916810160200160405291505090565b6001600160e01b0319811681146117c357600080fd5b5056fea26469706673582212209cf51eb3daad4f0c1c653142bc91893c5a26f1a14f11a3152bc64105d2e942bc64736f6c63430008000033";
// private static String abi = "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getTokenInfo\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mintToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"tokenInfo\",\"type\":\"string\"}],\"name\":\"setTokenInfo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]";
// private static String abi = "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getTokenInfo\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mintToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"tokenInfo\",\"type\":\"string\"}],\"name\":\"setTokenInfo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]";
private
static
String
code
=
"60806040523480156200001157600080fd5b506040805160208101909152600081526200002c8162000033565b506200012f565b8051620000489060029060208401906200004c565b5050565b8280546200005a90620000f2565b90600052602060002090601f0160209004810192826200007e5760008555620000c9565b82601f106200009957805160ff1916838001178555620000c9565b82800160010185558215620000c9579182015b82811115620000c9578251825591602001919060010190620000ac565b50620000d7929150620000db565b5090565b5b80821115620000d75760008155600101620000dc565b600181811c908216806200010757607f821691505b602082108114156200012957634e487b7160e01b600052602260045260246000fd5b50919050565b61203a806200013f6000396000f3fe608060405234801561001057600080fd5b50600436106100ff5760003560e01c80638c7a63ae11610097578063e985e9c511610066578063e985e9c514610227578063ed8c593814610263578063f240ec3614610276578063f242432a1461028957600080fd5b80638c7a63ae146101db578063a08fad67146101ee578063a22cb46514610201578063aba7e0fd1461021457600080fd5b806323a36d2b116100d357806323a36d2b146101825780632eb2c2d6146101955780634e1273f4146101a8578063519dc8d2146101c857600080fd5b8062fdd58e1461010457806301ffc9a71461012a578063036ebef91461014d5780630e89341c14610162575b600080fd5b610117610112366004611553565b61029c565b6040519081526020015b60405180910390f35b61013d610138366004611596565b610336565b6040519015158152602001610121565b61016061015b3660046115ba565b610386565b005b6101756101703660046115fc565b6103e3565b6040516101219190611662565b610160610190366004611675565b610477565b6101606101a33660046117f4565b6104d2565b6101bb6101b636600461189e565b610569565b60405161012191906119a4565b6101bb6101d63660046119b7565b610693565b6101756101e93660046115fc565b6106fe565b6101606101fc366004611a1e565b61071b565b61016061020f366004611a9f565b610830565b610160610222366004611adb565b61083f565b61013d610235366004611b57565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b610160610271366004611675565b610858565b610160610284366004611a1e565b610863565b610160610297366004611b8a565b6108d1565b60006001600160a01b03831661030d5760405162461bcd60e51b815260206004820152602b60248201527f455243313135353a2062616c616e636520717565727920666f7220746865207a60448201526a65726f206164647265737360a81b60648201526084015b60405180910390fd5b506000818152602081815260408083206001600160a01b03861684529091529020545b92915050565b60006001600160e01b03198216636cdb3d1360e11b148061036757506001600160e01b031982166303a24d0760e21b145b8061033057506301ffc9a760e01b6001600160e01b0319831614610330565b6103a284848484604051806020016040528060008152506108d1565b6103ac8383610958565b156103dd576001600160a01b0383166000908152600460209081526040822080546001810182559083529120018290555b50505050565b6060600280546103f290611bef565b80601f016020809104026020016040519081016040528092919081815260200182805461041e90611bef565b801561046b5780601f106104405761010080835404028352916020019161046b565b820191906000526020600020905b81548152906001019060200180831161044e57829003601f168201915b50505050509050919050565b61049283838360405180602001604052806000815250610a11565b61049c8383610958565b156104cd576001600160a01b0383166000908152600460209081526040822080546001810182559083529120018290555b505050565b6001600160a01b0385163314806104ee57506104ee8533610235565b6105555760405162461bcd60e51b815260206004820152603260248201527f455243313135353a207472616e736665722063616c6c6572206973206e6f74206044820152711bdddb995c881b9bdc88185c1c1c9bdd995960721b6064820152608401610304565b6105628585858585610ae1565b5050505050565b606081518351146105ce5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b6064820152608401610304565b6000835167ffffffffffffffff8111156105ea576105ea6116a8565b604051908082528060200260200182016040528015610613578160200160208202803683370190505b50905060005b845181101561068b5761065e85828151811061063757610637611c2a565b602002602001015185838151811061065157610651611c2a565b602002602001015161029c565b82828151811061067057610670611c2a565b602090810291909101015261068481611c56565b9050610619565b509392505050565b6001600160a01b03811660009081526004602090815260409182902080548351818402810184019094528084526060939283018282801561046b57602002820191906000526020600020905b8154815260200190600101908083116106df5750505050509050919050565b60008181526003602052604090208054606091906103f290611bef565b6107978585858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092018290525060408051602081019091529081529250610c75915050565b60005b83811015610828576107c4868686848181106107b8576107b8611c2a565b90506020020135610958565b15610816576001600160a01b03861660009081526004602052604090208585838181106107f3576107f3611c2a565b835460018101855560009485526020948590209190940292909201359190920155505b8061082081611c56565b91505061079a565b505050505050565b61083b338383610dc0565b5050565b60008381526003602052604090206103dd90838361149e565b6104cd838383610ea1565b6105628585858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250610fa392505050565b6001600160a01b0385163314806108ed57506108ed8533610235565b61094b5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b6064820152608401610304565b610562858585858561111f565b6001600160a01b0382166000908152600460209081526040808320805482518185028101850190935280835284938301828280156109b557602002820191906000526020600020905b8154815260200190600101908083116109a1575b5050505050905060005b8151811015610a0657838282815181106109db576109db611c2a565b602002602001015114156109f457600092505050610330565b806109fe81611c56565b9150506109bf565b506001949350505050565b6001600160a01b038416610a375760405162461bcd60e51b815260040161030490611c71565b33610a5181600087610a488861123c565b6105628861123c565b6000848152602081815260408083206001600160a01b038916845290915281208054859290610a81908490611cb2565b909155505060408051858152602081018590526001600160a01b0380881692600092918516917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461056281600087878787611287565b8151835114610b025760405162461bcd60e51b815260040161030490611cca565b6001600160a01b038416610b285760405162461bcd60e51b815260040161030490611d12565b3360005b8451811015610c0f576000858281518110610b4957610b49611c2a565b602002602001015190506000858381518110610b6757610b67611c2a565b602090810291909101810151600084815280835260408082206001600160a01b038e168352909352919091205490915081811015610bb75760405162461bcd60e51b815260040161030490611d57565b6000838152602081815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290610bf4908490611cb2565b9250508190555050505080610c0890611c56565b9050610b2c565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610c5f929190611da1565b60405180910390a46108288187878787876113e3565b6001600160a01b038416610c9b5760405162461bcd60e51b815260040161030490611c71565b8151835114610cbc5760405162461bcd60e51b815260040161030490611cca565b3360005b8451811015610d5857838181518110610cdb57610cdb611c2a565b6020026020010151600080878481518110610cf857610cf8611c2a565b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b031681526020019081526020016000206000828254610d409190611cb2565b90915550819050610d5081611c56565b915050610cc0565b50846001600160a01b031660006001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610da9929190611da1565b60405180910390a4610562816000878787876113e3565b816001600160a01b0316836001600160a01b03161415610e345760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b6064820152608401610304565b6001600160a01b03838116600081815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b038316610ec75760405162461bcd60e51b815260040161030490611dcf565b33610ef781856000610ed88761123c565b610ee18761123c565b5050604080516020810190915260009052505050565b6000838152602081815260408083206001600160a01b038816845290915290205482811015610f385760405162461bcd60e51b815260040161030490611e12565b6000848152602081815260408083206001600160a01b03898116808652918452828520888703905582518981529384018890529092908616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a45050505050565b6001600160a01b038316610fc95760405162461bcd60e51b815260040161030490611dcf565b8051825114610fea5760405162461bcd60e51b815260040161030490611cca565b604080516020810190915260009081905233905b83518110156110c057600084828151811061101b5761101b611c2a565b60200260200101519050600084838151811061103957611039611c2a565b602090810291909101810151600084815280835260408082206001600160a01b038c1683529093529190912054909150818110156110895760405162461bcd60e51b815260040161030490611e12565b6000928352602083815260408085206001600160a01b038b16865290915290922091039055806110b881611c56565b915050610ffe565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611111929190611da1565b60405180910390a450505050565b6001600160a01b0384166111455760405162461bcd60e51b815260040161030490611d12565b33611155818787610a488861123c565b6000848152602081815260408083206001600160a01b038a168452909152902054838110156111965760405162461bcd60e51b815260040161030490611d57565b6000858152602081815260408083206001600160a01b038b81168552925280832087850390559088168252812080548692906111d3908490611cb2565b909155505060408051868152602081018690526001600160a01b03808916928a821692918616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4611233828888888888611287565b50505050505050565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061127657611276611c2a565b602090810291909101015292915050565b6001600160a01b0384163b156108285760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906112cb9089908990889088908890600401611e56565b6020604051808303816000875af1925050508015611306575060408051601f3d908101601f1916820190925261130391810190611e9b565b60015b6113b357611312611eb8565b806308c379a0141561134c5750611327611ed4565b80611332575061134e565b8060405162461bcd60e51b81526004016103049190611662565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e20455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b6064820152608401610304565b6001600160e01b0319811663f23a6e6160e01b146112335760405162461bcd60e51b815260040161030490611f5e565b6001600160a01b0384163b156108285760405163bc197c8160e01b81526001600160a01b0385169063bc197c81906114279089908990889088908890600401611fa6565b6020604051808303816000875af1925050508015611462575060408051601f3d908101601f1916820190925261145f91810190611e9b565b60015b61146e57611312611eb8565b6001600160e01b0319811663bc197c8160e01b146112335760405162461bcd60e51b815260040161030490611f5e565b8280546114aa90611bef565b90600052602060002090601f0160209004810192826114cc5760008555611512565b82601f106114e55782800160ff19823516178555611512565b82800160010185558215611512579182015b828111156115125782358255916020019190600101906114f7565b5061151e929150611522565b5090565b5b8082111561151e5760008155600101611523565b80356001600160a01b038116811461154e57600080fd5b919050565b6000806040838503121561156657600080fd5b61156f83611537565b946020939093013593505050565b6001600160e01b03198116811461159357600080fd5b50565b6000602082840312156115a857600080fd5b81356115b38161157d565b9392505050565b600080600080608085870312156115d057600080fd5b6115d985611537565b93506115e760208601611537565b93969395505050506040820135916060013590565b60006020828403121561160e57600080fd5b5035919050565b6000815180845260005b8181101561163b5760208185018101518683018201520161161f565b8181111561164d576000602083870101525b50601f01601f19169290920160200192915050565b6020815260006115b36020830184611615565b60008060006060848603121561168a57600080fd5b61169384611537565b95602085013595506040909401359392505050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff811182821017156116e4576116e46116a8565b6040525050565b600067ffffffffffffffff821115611705576117056116a8565b5060051b60200190565b600082601f83011261172057600080fd5b8135602061172d826116eb565b60405161173a82826116be565b83815260059390931b850182019282810191508684111561175a57600080fd5b8286015b84811015611775578035835291830191830161175e565b509695505050505050565b600082601f83011261179157600080fd5b813567ffffffffffffffff8111156117ab576117ab6116a8565b6040516117c2601f8301601f1916602001826116be565b8181528460208386010111156117d757600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561180c57600080fd5b61181586611537565b945061182360208701611537565b9350604086013567ffffffffffffffff8082111561184057600080fd5b61184c89838a0161170f565b9450606088013591508082111561186257600080fd5b61186e89838a0161170f565b9350608088013591508082111561188457600080fd5b5061189188828901611780565b9150509295509295909350565b600080604083850312156118b157600080fd5b823567ffffffffffffffff808211156118c957600080fd5b818501915085601f8301126118dd57600080fd5b813560206118ea826116eb565b6040516118f782826116be565b83815260059390931b850182019282810191508984111561191757600080fd5b948201945b8386101561193c5761192d86611537565b8252948201949082019061191c565b9650508601359250508082111561195257600080fd5b5061195f8582860161170f565b9150509250929050565b600081518084526020808501945080840160005b838110156119995781518752958201959082019060010161197d565b509495945050505050565b6020815260006115b36020830184611969565b6000602082840312156119c957600080fd5b6115b382611537565b60008083601f8401126119e457600080fd5b50813567ffffffffffffffff8111156119fc57600080fd5b6020830191508360208260051b8501011115611a1757600080fd5b9250929050565b600080600080600060608688031215611a3657600080fd5b611a3f86611537565b9450602086013567ffffffffffffffff80821115611a5c57600080fd5b611a6889838a016119d2565b90965094506040880135915080821115611a8157600080fd5b50611a8e888289016119d2565b969995985093965092949392505050565b60008060408385031215611ab257600080fd5b611abb83611537565b915060208301358015158114611ad057600080fd5b809150509250929050565b600080600060408486031215611af057600080fd5b83359250602084013567ffffffffffffffff80821115611b0f57600080fd5b818601915086601f830112611b2357600080fd5b813581811115611b3257600080fd5b876020828501011115611b4457600080fd5b6020830194508093505050509250925092565b60008060408385031215611b6a57600080fd5b611b7383611537565b9150611b8160208401611537565b90509250929050565b600080600080600060a08688031215611ba257600080fd5b611bab86611537565b9450611bb960208701611537565b93506040860135925060608601359150608086013567ffffffffffffffff811115611be357600080fd5b61189188828901611780565b600181811c90821680611c0357607f821691505b60208210811415611c2457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611c6a57611c6a611c40565b5060010190565b60208082526021908201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60008219821115611cc557611cc5611c40565b500190565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b604081526000611db46040830185611969565b8281036020840152611dc68185611969565b95945050505050565b60208082526023908201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526024908201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604082015263616e636560e01b606082015260800190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090611e9090830184611615565b979650505050505050565b600060208284031215611ead57600080fd5b81516115b38161157d565b600060033d1115611ed15760046000803e5060005160e01c5b90565b600060443d1015611ee25790565b6040516003193d81016004833e81513d67ffffffffffffffff8160248401118184111715611f1257505050505090565b8285019150815181811115611f2a5750505050505090565b843d8701016020828501011115611f445750505050505090565b611f53602082860101876116be565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6001600160a01b0386811682528516602082015260a060408201819052600090611fd290830186611969565b8281036060840152611fe48186611969565b90508281036080840152611ff88185611615565b9897505050505050505056fea2646970667358221220df77f45404bbc21d49cd14e361e1a97dba87e98ae5c61aa4f7c14cad9666448d64736f6c634300080a0033"
;
private
static
String
code
=
"60806040523480156200001157600080fd5b506040805160208101909152600081526200002c8162000033565b506200012f565b8051620000489060029060208401906200004c565b5050565b8280546200005a90620000f2565b90600052602060002090601f0160209004810192826200007e5760008555620000c9565b82601f106200009957805160ff1916838001178555620000c9565b82800160010185558215620000c9579182015b82811115620000c9578251825591602001919060010190620000ac565b50620000d7929150620000db565b5090565b5b80821115620000d75760008155600101620000dc565b600181811c908216806200010757607f821691505b602082108114156200012957634e487b7160e01b600052602260045260246000fd5b50919050565b61203a806200013f6000396000f3fe608060405234801561001057600080fd5b50600436106100ff5760003560e01c80638c7a63ae11610097578063e985e9c511610066578063e985e9c514610227578063ed8c593814610263578063f240ec3614610276578063f242432a1461028957600080fd5b80638c7a63ae146101db578063a08fad67146101ee578063a22cb46514610201578063aba7e0fd1461021457600080fd5b806323a36d2b116100d357806323a36d2b146101825780632eb2c2d6146101955780634e1273f4146101a8578063519dc8d2146101c857600080fd5b8062fdd58e1461010457806301ffc9a71461012a578063036ebef91461014d5780630e89341c14610162575b600080fd5b610117610112366004611553565b61029c565b6040519081526020015b60405180910390f35b61013d610138366004611596565b610336565b6040519015158152602001610121565b61016061015b3660046115ba565b610386565b005b6101756101703660046115fc565b6103e3565b6040516101219190611662565b610160610190366004611675565b610477565b6101606101a33660046117f4565b6104d2565b6101bb6101b636600461189e565b610569565b60405161012191906119a4565b6101bb6101d63660046119b7565b610693565b6101756101e93660046115fc565b6106fe565b6101606101fc366004611a1e565b61071b565b61016061020f366004611a9f565b610830565b610160610222366004611adb565b61083f565b61013d610235366004611b57565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b610160610271366004611675565b610858565b610160610284366004611a1e565b610863565b610160610297366004611b8a565b6108d1565b60006001600160a01b03831661030d5760405162461bcd60e51b815260206004820152602b60248201527f455243313135353a2062616c616e636520717565727920666f7220746865207a60448201526a65726f206164647265737360a81b60648201526084015b60405180910390fd5b506000818152602081815260408083206001600160a01b03861684529091529020545b92915050565b60006001600160e01b03198216636cdb3d1360e11b148061036757506001600160e01b031982166303a24d0760e21b145b8061033057506301ffc9a760e01b6001600160e01b0319831614610330565b6103a284848484604051806020016040528060008152506108d1565b6103ac8383610958565b156103dd576001600160a01b0383166000908152600460209081526040822080546001810182559083529120018290555b50505050565b6060600280546103f290611bef565b80601f016020809104026020016040519081016040528092919081815260200182805461041e90611bef565b801561046b5780601f106104405761010080835404028352916020019161046b565b820191906000526020600020905b81548152906001019060200180831161044e57829003601f168201915b50505050509050919050565b61049283838360405180602001604052806000815250610a11565b61049c8383610958565b156104cd576001600160a01b0383166000908152600460209081526040822080546001810182559083529120018290555b505050565b6001600160a01b0385163314806104ee57506104ee8533610235565b6105555760405162461bcd60e51b815260206004820152603260248201527f455243313135353a207472616e736665722063616c6c6572206973206e6f74206044820152711bdddb995c881b9bdc88185c1c1c9bdd995960721b6064820152608401610304565b6105628585858585610ae1565b5050505050565b606081518351146105ce5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b6064820152608401610304565b6000835167ffffffffffffffff8111156105ea576105ea6116a8565b604051908082528060200260200182016040528015610613578160200160208202803683370190505b50905060005b845181101561068b5761065e85828151811061063757610637611c2a565b602002602001015185838151811061065157610651611c2a565b602002602001015161029c565b82828151811061067057610670611c2a565b602090810291909101015261068481611c56565b9050610619565b509392505050565b6001600160a01b03811660009081526004602090815260409182902080548351818402810184019094528084526060939283018282801561046b57602002820191906000526020600020905b8154815260200190600101908083116106df5750505050509050919050565b60008181526003602052604090208054606091906103f290611bef565b6107978585858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092018290525060408051602081019091529081529250610c75915050565b60005b83811015610828576107c4868686848181106107b8576107b8611c2a565b90506020020135610958565b15610816576001600160a01b03861660009081526004602052604090208585838181106107f3576107f3611c2a565b835460018101855560009485526020948590209190940292909201359190920155505b8061082081611c56565b91505061079a565b505050505050565b61083b338383610dc0565b5050565b60008381526003602052604090206103dd90838361149e565b6104cd838383610ea1565b6105628585858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250610fa392505050565b6001600160a01b0385163314806108ed57506108ed8533610235565b61094b5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b6064820152608401610304565b610562858585858561111f565b6001600160a01b0382166000908152600460209081526040808320805482518185028101850190935280835284938301828280156109b557602002820191906000526020600020905b8154815260200190600101908083116109a1575b5050505050905060005b8151811015610a0657838282815181106109db576109db611c2a565b602002602001015114156109f457600092505050610330565b806109fe81611c56565b9150506109bf565b506001949350505050565b6001600160a01b038416610a375760405162461bcd60e51b815260040161030490611c71565b33610a5181600087610a488861123c565b6105628861123c565b6000848152602081815260408083206001600160a01b038916845290915281208054859290610a81908490611cb2565b909155505060408051858152602081018590526001600160a01b0380881692600092918516917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461056281600087878787611287565b8151835114610b025760405162461bcd60e51b815260040161030490611cca565b6001600160a01b038416610b285760405162461bcd60e51b815260040161030490611d12565b3360005b8451811015610c0f576000858281518110610b4957610b49611c2a565b602002602001015190506000858381518110610b6757610b67611c2a565b602090810291909101810151600084815280835260408082206001600160a01b038e168352909352919091205490915081811015610bb75760405162461bcd60e51b815260040161030490611d57565b6000838152602081815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290610bf4908490611cb2565b9250508190555050505080610c0890611c56565b9050610b2c565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610c5f929190611da1565b60405180910390a46108288187878787876113e3565b6001600160a01b038416610c9b5760405162461bcd60e51b815260040161030490611c71565b8151835114610cbc5760405162461bcd60e51b815260040161030490611cca565b3360005b8451811015610d5857838181518110610cdb57610cdb611c2a565b6020026020010151600080878481518110610cf857610cf8611c2a565b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b031681526020019081526020016000206000828254610d409190611cb2565b90915550819050610d5081611c56565b915050610cc0565b50846001600160a01b031660006001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610da9929190611da1565b60405180910390a4610562816000878787876113e3565b816001600160a01b0316836001600160a01b03161415610e345760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b6064820152608401610304565b6001600160a01b03838116600081815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b038316610ec75760405162461bcd60e51b815260040161030490611dcf565b33610ef781856000610ed88761123c565b610ee18761123c565b5050604080516020810190915260009052505050565b6000838152602081815260408083206001600160a01b038816845290915290205482811015610f385760405162461bcd60e51b815260040161030490611e12565b6000848152602081815260408083206001600160a01b03898116808652918452828520888703905582518981529384018890529092908616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a45050505050565b6001600160a01b038316610fc95760405162461bcd60e51b815260040161030490611dcf565b8051825114610fea5760405162461bcd60e51b815260040161030490611cca565b604080516020810190915260009081905233905b83518110156110c057600084828151811061101b5761101b611c2a565b60200260200101519050600084838151811061103957611039611c2a565b602090810291909101810151600084815280835260408082206001600160a01b038c1683529093529190912054909150818110156110895760405162461bcd60e51b815260040161030490611e12565b6000928352602083815260408085206001600160a01b038b16865290915290922091039055806110b881611c56565b915050610ffe565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611111929190611da1565b60405180910390a450505050565b6001600160a01b0384166111455760405162461bcd60e51b815260040161030490611d12565b33611155818787610a488861123c565b6000848152602081815260408083206001600160a01b038a168452909152902054838110156111965760405162461bcd60e51b815260040161030490611d57565b6000858152602081815260408083206001600160a01b038b81168552925280832087850390559088168252812080548692906111d3908490611cb2565b909155505060408051868152602081018690526001600160a01b03808916928a821692918616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4611233828888888888611287565b50505050505050565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061127657611276611c2a565b602090810291909101015292915050565b6001600160a01b0384163b156108285760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906112cb9089908990889088908890600401611e56565b6020604051808303816000875af1925050508015611306575060408051601f3d908101601f1916820190925261130391810190611e9b565b60015b6113b357611312611eb8565b806308c379a0141561134c5750611327611ed4565b80611332575061134e565b8060405162461bcd60e51b81526004016103049190611662565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e20455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b6064820152608401610304565b6001600160e01b0319811663f23a6e6160e01b146112335760405162461bcd60e51b815260040161030490611f5e565b6001600160a01b0384163b156108285760405163bc197c8160e01b81526001600160a01b0385169063bc197c81906114279089908990889088908890600401611fa6565b6020604051808303816000875af1925050508015611462575060408051601f3d908101601f1916820190925261145f91810190611e9b565b60015b61146e57611312611eb8565b6001600160e01b0319811663bc197c8160e01b146112335760405162461bcd60e51b815260040161030490611f5e565b8280546114aa90611bef565b90600052602060002090601f0160209004810192826114cc5760008555611512565b82601f106114e55782800160ff19823516178555611512565b82800160010185558215611512579182015b828111156115125782358255916020019190600101906114f7565b5061151e929150611522565b5090565b5b8082111561151e5760008155600101611523565b80356001600160a01b038116811461154e57600080fd5b919050565b6000806040838503121561156657600080fd5b61156f83611537565b946020939093013593505050565b6001600160e01b03198116811461159357600080fd5b50565b6000602082840312156115a857600080fd5b81356115b38161157d565b9392505050565b600080600080608085870312156115d057600080fd5b6115d985611537565b93506115e760208601611537565b93969395505050506040820135916060013590565b60006020828403121561160e57600080fd5b5035919050565b6000815180845260005b8181101561163b5760208185018101518683018201520161161f565b8181111561164d576000602083870101525b50601f01601f19169290920160200192915050565b6020815260006115b36020830184611615565b60008060006060848603121561168a57600080fd5b61169384611537565b95602085013595506040909401359392505050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff811182821017156116e4576116e46116a8565b6040525050565b600067ffffffffffffffff821115611705576117056116a8565b5060051b60200190565b600082601f83011261172057600080fd5b8135602061172d826116eb565b60405161173a82826116be565b83815260059390931b850182019282810191508684111561175a57600080fd5b8286015b84811015611775578035835291830191830161175e565b509695505050505050565b600082601f83011261179157600080fd5b813567ffffffffffffffff8111156117ab576117ab6116a8565b6040516117c2601f8301601f1916602001826116be565b8181528460208386010111156117d757600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561180c57600080fd5b61181586611537565b945061182360208701611537565b9350604086013567ffffffffffffffff8082111561184057600080fd5b61184c89838a0161170f565b9450606088013591508082111561186257600080fd5b61186e89838a0161170f565b9350608088013591508082111561188457600080fd5b5061189188828901611780565b9150509295509295909350565b600080604083850312156118b157600080fd5b823567ffffffffffffffff808211156118c957600080fd5b818501915085601f8301126118dd57600080fd5b813560206118ea826116eb565b6040516118f782826116be565b83815260059390931b850182019282810191508984111561191757600080fd5b948201945b8386101561193c5761192d86611537565b8252948201949082019061191c565b9650508601359250508082111561195257600080fd5b5061195f8582860161170f565b9150509250929050565b600081518084526020808501945080840160005b838110156119995781518752958201959082019060010161197d565b509495945050505050565b6020815260006115b36020830184611969565b6000602082840312156119c957600080fd5b6115b382611537565b60008083601f8401126119e457600080fd5b50813567ffffffffffffffff8111156119fc57600080fd5b6020830191508360208260051b8501011115611a1757600080fd5b9250929050565b600080600080600060608688031215611a3657600080fd5b611a3f86611537565b9450602086013567ffffffffffffffff80821115611a5c57600080fd5b611a6889838a016119d2565b90965094506040880135915080821115611a8157600080fd5b50611a8e888289016119d2565b969995985093965092949392505050565b60008060408385031215611ab257600080fd5b611abb83611537565b915060208301358015158114611ad057600080fd5b809150509250929050565b600080600060408486031215611af057600080fd5b83359250602084013567ffffffffffffffff80821115611b0f57600080fd5b818601915086601f830112611b2357600080fd5b813581811115611b3257600080fd5b876020828501011115611b4457600080fd5b6020830194508093505050509250925092565b60008060408385031215611b6a57600080fd5b611b7383611537565b9150611b8160208401611537565b90509250929050565b600080600080600060a08688031215611ba257600080fd5b611bab86611537565b9450611bb960208701611537565b93506040860135925060608601359150608086013567ffffffffffffffff811115611be357600080fd5b61189188828901611780565b600181811c90821680611c0357607f821691505b60208210811415611c2457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611c6a57611c6a611c40565b5060010190565b60208082526021908201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60008219821115611cc557611cc5611c40565b500190565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b604081526000611db46040830185611969565b8281036020840152611dc68185611969565b95945050505050565b60208082526023908201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526024908201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604082015263616e636560e01b606082015260800190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090611e9090830184611615565b979650505050505050565b600060208284031215611ead57600080fd5b81516115b38161157d565b600060033d1115611ed15760046000803e5060005160e01c5b90565b600060443d1015611ee25790565b6040516003193d81016004833e81513d67ffffffffffffffff8160248401118184111715611f1257505050505090565b8285019150815181811115611f2a5750505050505090565b843d8701016020828501011115611f445750505050505090565b611f53602082860101876116be565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6001600160a01b0386811682528516602082015260a060408201819052600090611fd290830186611969565b8281036060840152611fe48186611969565b90508281036080840152611ff88185611615565b9897505050505050505056fea2646970667358221220df77f45404bbc21d49cd14e361e1a97dba87e98ae5c61aa4f7c14cad9666448d64736f6c634300080a0033"
;
...
@@ -144,29 +153,29 @@ public class NftEvm {
...
@@ -144,29 +153,29 @@ public class NftEvm {
//=============================================================================================
//=============================================================================================
// oid pay_id status
coin amount
// oid pay_id status
coin
// 20220118203105uIRfMTVdsckFtPpa2H 20220118203105263208959744302735 1
// 20220118203105uIRfMTVdsckFtPpa2H 20220118203105263208959744302735 1
164129641600000029 1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg---1Gk8jFnYzJU64q6CUsknbbkiAQcoy8ntKd
// 20220118101915XPlkMmVqS9MtkOwGE1 20220118101915790288719351862853 1
// 20220118101915XPlkMmVqS9MtkOwGE1 20220118101915790288719351862853 1
164129641600000028 1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg---13gAUt8YqJf3yt2Mo7aTKgU4jd8sCeCcVa
// 20220118100611G6DFEGqaOCm5WtqYkR 20220118100611484569303328077251 1
// 20220118100611G6DFEGqaOCm5WtqYkR 20220118100611484569303328077251 1
164129641600000026, 164129641600000027, 164129641600000027 1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg---18Yc5VwfsM1DRb5ZCdAU1v3D4C78xB9gKS
// 20220115105707EBPqGrI942gxVIrWf6 20220115105707221842481006366498 1
// 20220115105707EBPqGrI942gxVIrWf6 20220115105707221842481006366498 1
164129641600000022, 164129641600000024, 164129641600000025] 1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg---18Yc5VwfsM1DRb5ZCdAU1v3D4C78xB9gKS |
// 20220114222820hd7OUHXzSFSsc12K2t 20220114222820289573854028028784 1
// 20220114222820hd7OUHXzSFSsc12K2t 20220114222820289573854028028784 1
164129641600000023 1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg---1DqiUcWKRAK3WJvMqg42D8u32ZJ5YbX4He
// 20220114204244W8zVpMKqwQzNtilsBM 20220114204244595630030375890176 1
// 20220114204244W8zVpMKqwQzNtilsBM 20220114204244595630030375890176 1
164129641600000019, 164129641600000020, 164129641600000021 1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg---18Yc5VwfsM1DRb5ZCdAU1v3D4C78xB9gKS
// 20220114095345VEXsaD11kPqYsXQ8Yl 20220114095345252269936047485833 1
// 20220114095345VEXsaD11kPqYsXQ8Yl 20220114095345252269936047485833 1
164129641600000004, 164129641600000007, 164129641600000010, 164129641600000011, 164129641600000012, 164129641600000013, 164129641600000014, 164129641600000015, 164129641600000016, 164129641600000017 1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg---18Yc5VwfsM1DRb5ZCdAU1v3D4C78xB9gKS
// 20220113155553EWyYm9G8RQr1UVlj7f 20220113155553494385335129525220 1
// 20220113155553EWyYm9G8RQr1UVlj7f 20220113155553494385335129525220 1
164129641600000009 1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg---1FSG58tKcRJoMkK4ngcJD6MjWUvcPuabmK
// 20220113155544tp8YlcmjYzC8Qqd72i 20220113155544084183984528975273 1
// 20220113155544tp8YlcmjYzC8Qqd72i 20220113155544084183984528975273 1
164129641600000008 1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg---19GNCAWTs3JaZ2i6PcTAhTEuhh3C4gduCy
// 20220113135218fvTfkrGTUdCyA4qhuq 20220113135218657274053058216133 1
// 20220113135218fvTfkrGTUdCyA4qhuq 20220113135218657274053058216133 1
164129641600000005 1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg---17mUhDEWzPWwK3RBF37Ueq3pBCqfiAkCTG
// 20220112205835K8tPhzmYBYkHfbT0CU 20220112205835604363821385855706 1
// 20220112205835K8tPhzmYBYkHfbT0CU 20220112205835604363821385855706 1
164129641600000002 1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg---1Pm586wYpAyuGhBRTzeWSR2TNW6AjukZiS
// 20220112175111J5mAXNtAecZD4b7TW7 20220112175111743895723255869004 1
// 20220112175111J5mAXNtAecZD4b7TW7 20220112175111743895723255869004 1
164129641600000001
// 2022011114111073YsnlUFT3JSEzlQ4i 20220111141110236873418488730693 1
// 2022011114111073YsnlUFT3JSEzlQ4i 20220111141110236873418488730693 1
164129639500000007
// 20220110170037VIIYi46xoMaIDLqVqJ 20220110170037844620255147496610 1
// 20220110170037VIIYi46xoMaIDLqVqJ 20220110170037844620255147496610 1
164129639500000003
// 20220110164858FIim8xrJwXdta5jzVL 20220110164858263981305279503196 1
// 20220110164858FIim8xrJwXdta5jzVL 20220110164858263981305279503196 1
1641804505229
// 20220110164438pp0s9B0tK5X7LmtnWo 20220110164438547660913805483698 1
// 20220110164438pp0s9B0tK5X7LmtnWo 20220110164438547660913805483698 1
1641804118765
// 20220105194213e7KijafsxtPWL4LANF 20220105194213641454925484246629 1 164129639500000001
1
// 20220105194213e7KijafsxtPWL4LANF 20220105194213641454925484246629 1 164129639500000001
// 20220105174220HzSu6dhAM7gI41X0lL 20220105174220891225251100171019 1 1641296392
1
// 20220105174220HzSu6dhAM7gI41X0lL 20220105174220891225251100171019 1 1641296392
// 20220105174153CVaouFxDPZm3VTfSC8 20220105174153671740652521296427 1 164129639300000001
1
// 20220105174153CVaouFxDPZm3VTfSC8 20220105174153671740652521296427 1 164129639300000001
// 202201051637100I8UpE4tSOUXO3YtZI 20220105163710195486453355063315 1 1641365008370
1
// 202201051637100I8UpE4tSOUXO3YtZI 20220105163710195486453355063315 1 1641365008370
// 20220105162303QfnZpNjfzaq306p0Sy 20220105162303481784277443720093 1 1641365008370
1
// 20220105162303QfnZpNjfzaq306p0Sy 20220105162303481784277443720093 1 1641365008370
// 20220105152249tvKSqjXkLkQcPKHuw4 20220105152249723717824780290935 1 1641365008370
1
// 20220105152249tvKSqjXkLkQcPKHuw4 20220105152249723717824780290935 1 1641365008370
//30dfdc0977e343a5919b527448a7123f 1Bfv5YPE4zPvSfWab5XSnF3DgCHMfKWEY6
//30dfdc0977e343a5919b527448a7123f 1Bfv5YPE4zPvSfWab5XSnF3DgCHMfKWEY6
//36ba783ea0394650ac28aa6e71df0784 1Bp1Lc8VepfbuY6fFaUW78LT3YNtGXzyqr
//36ba783ea0394650ac28aa6e71df0784 1Bp1Lc8VepfbuY6fFaUW78LT3YNtGXzyqr
...
@@ -174,36 +183,33 @@ public class NftEvm {
...
@@ -174,36 +183,33 @@ public class NftEvm {
//d6effa7f4fef49d69989599e7ae6f125 1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg
//d6effa7f4fef49d69989599e7ae6f125 1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg
/*long[] arr = {
/*long[] arr = {
164129641600000001L, 164129641600000002L, 164129641600000003L, 164129641600000004L, 164129641600000005L, 164129641600000006L, 164129641600000007L, 164129641600000008L, 164129641600000009L, 164129641600000010L,
164129641600000004L, 164129641600000007L, 164129641600000010L, 164129641600000011L, 164129641600000012L,
164129641600000011L, 164129641600000012L, 164129641600000013L, 164129641600000014L, 164129641600000015L, 164129641600000016L, 164129641600000017L, 164129641600000018L, 164129641600000019L, 164129641600000020L,
164129641600000013L, 164129641600000014L, 164129641600000015L, 164129641600000016L, 164129641600000017L
164129641600000021L, 164129641600000022L, 164129641600000023L, 164129641600000024L, 164129641600000025L, 164129641600000026L, 164129641600000027L, 164129641600000028L, 164129641600000029L, 164129641600000030L,
};*/
164129641600000031L, 164129641600000032L, 164129641600000033L, 164129641600000034L, 164129641600000035L, 164129641600000036L, 164129641600000037L, 164129641600000038L, 164129641600000039L, 164129641600000040L,
164129641600000041L, 164129641600000042L, 164129641600000043L, 164129641600000044L, 164129641600000045L, 164129641600000046L, 164129641600000047L, 164129641600000048L, 164129641600000049L, 164129641600000050L,
/*for (long ar : arr) {
164129641600000051L, 164129641600000052L, 164129641600000053L, 164129641600000054L, 164129641600000055L, 164129641600000056L, 164129641600000057L, 164129641600000058L, 164129641600000059L, 164129641600000060L,
String hash = ra.evmTransfer(ymabi, cAddr, EvmTokenEnum.ERC1155, 0L, "18Yc5VwfsM1DRb5ZCdAU1v3D4C78xB9gKS", ar, 1L, "transfer", "1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg", null, true);
164129641600000061L, 164129641600000062L, 164129641600000063L, 164129641600000064L, 164129641600000065L, 164129641600000066L, 164129641600000067L, 164129641600000068L, 164129641600000069L, 164129641600000070L,
System.err.println(hash);
164129641600000071L, 164129641600000072L, 164129641600000073L, 164129641600000074L, 164129641600000075L, 164129641600000076L, 164129641600000077L, 164129641600000078L, 164129641600000079L, 164129641600000080L,
System.err.println(ra.cycleConfirmTxWithHash(hash, true, 1000).getStatus());
164129641600000081L, 164129641600000082L, 164129641600000083L, 164129641600000084L, 164129641600000085L, 164129641600000086L, 164129641600000087L, 164129641600000088L, 164129641600000089L, 164129641600000090L,
System.err.println(ra.evmBalance(ymabi, cAddr, EvmTokenEnum.ERC1155, "18Yc5VwfsM1DRb5ZCdAU1v3D4C78xB9gKS", ar));
164129641600000091L, 164129641600000092L, 164129641600000093L, 164129641600000094L, 164129641600000095L, 164129641600000096L, 164129641600000097L, 164129641600000098L, 164129641600000099L, 164129641600000100L};
*//*String addr = "1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg";
for (long ar : arr) {
String addr = "1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg";
long amount = 1L;
long amount = 1L;
String hash = ra.evmPublishToken(ymabi, cAddr, EvmTokenEnum.ERC1155, 0L, addr, addr, null, ar, amount, "publish", true);
String hash = ra.evmPublishToken(ymabi, cAddr, EvmTokenEnum.ERC1155, 0L, addr, addr, null, ar, amount, "publish", true);
// String hash = ra.evmTransfer(ymabi, "1Nhju8CgSUmkQQwc7ECk4bFxnv48iRLNRX", EvmTokenEnum.ERC1155, 0L, "1JcwjaNSnrLJ19j48bNr1YaGz8UGAwYb9N", 1642991134151L, 1L, "transfer", "14SqpwdjFE7moVp5UV7ceUfKynXWt9TKvk", null, true);
// String hash = ra.evmTransfer(ymabi, "1Nhju8CgSUmkQQwc7ECk4bFxnv48iRLNRX", EvmTokenEnum.ERC1155, 0L, "1JcwjaNSnrLJ19j48bNr1YaGz8UGAwYb9N", 1642991134151L, 1L, "transfer", "14SqpwdjFE7moVp5UV7ceUfKynXWt9TKvk", null, true);
System.err.println(hash);
System.err.println(hash);
System.err.println(ra.cycleConfirmTxWithHash(hash, true, 1000).getStatus());
System.err.println(ra.cycleConfirmTxWithHash(hash, true, 1000).getStatus());
System.err.println(ra.evmBalance(ymabi, cAddr, EvmTokenEnum.ERC1155, addr, ar));
System.err.println(ra.evmBalance(ymabi, cAddr, EvmTokenEnum.ERC1155, addr, ar));
*//*
}*/
}*/
// System.err.println(ra.walletCreateAccount("eeesseeeeee1"));
// System.err.println(ra.walletCreateAccount("eeesseeeeee1"));
// 164129641600000035
// 164129641600000035
// long amount = 1L;
// long amount = 1L;
// String hash = ra.evmPublishToken(ymabi, cAddr, EvmTokenEnum.ERC1155, 0L, addr, addr, null, tokenId, amount, "publish", true);
//
//
String hash = ra.evmPublishToken(ymabi, cAddr, EvmTokenEnum.ERC1155, 0L, addr, addr, null, tokenId, amount, "publish", true);
// String hash = ra.evmTransfer(ymabi, cAddr, EvmTokenEnum.ERC1155, 0L, "1
8Yc5VwfsM1DRb5ZCdAU1v3D4C78xB9gKS", 164129641600000035
L, 1L, "transfer", "1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg", null, true);
// String hash = ra.evmTransfer(ymabi, cAddr, EvmTokenEnum.ERC1155, 0L, "1
Pm586wYpAyuGhBRTzeWSR2TNW6AjukZiS", 164129641600000002
L, 1L, "transfer", "1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg", null, true);
// System.err.println(hash);
// System.err.println(hash);
// System.err.println(ra.cycleConfirmTxWithHash(hash, true, 1000).getStatus());
// System.err.println(ra.cycleConfirmTxWithHash(hash, true, 1000).getStatus());
// System.err.println(ra.evmBalance(ymabi, cAddr, EvmTokenEnum.ERC1155, "1
Bp1Lc8VepfbuY6fFaUW78LT3YNtGXzyqr", 1641296393
L));
// System.err.println(ra.evmBalance(ymabi, cAddr, EvmTokenEnum.ERC1155, "1
Pm586wYpAyuGhBRTzeWSR2TNW6AjukZiS", 164129641600000002
L));
long
l
=
ra
.
evmBalance
(
ymabi
,
cAddr
,
EvmTokenEnum
.
ERC1155
,
"182mR7y2EEnHG9cDpc6ik8xRtkamzeHMHr"
,
1641296392
);
//
long l = ra.evmBalance(ymabi, cAddr, EvmTokenEnum.ERC1155, "182mR7y2EEnHG9cDpc6ik8xRtkamzeHMHr", 1641296392);
System
.
err
.
println
(
l
);
//
System.err.println(l);
// System.err.println(ra.queryTxWithHash("0xaa66571c1f9be9fbd6d122aaf958c3f26716f9b4c2d5c47e4e2fb4488d9adc7b"));
// System.err.println(ra.queryTxWithHash("0xaa66571c1f9be9fbd6d122aaf958c3f26716f9b4c2d5c47e4e2fb4488d9adc7b"));
// System.err.println(ra.evmBalance(ymabi, cAddr, EvmTokenEnum.ERC1155, "1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg", 1643160444340L));
// System.err.println(ra.evmBalance(ymabi, cAddr, EvmTokenEnum.ERC1155, "1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg", 1643160444340L));
...
...
mall-server-admin/src/main/java/com/fzm/mall/server/admin/goods_center/controller/SpuController.java
View file @
5d7bb839
...
@@ -13,6 +13,7 @@ import com.fzm.mall.server.admin.exception.MyException;
...
@@ -13,6 +13,7 @@ import com.fzm.mall.server.admin.exception.MyException;
import
com.fzm.mall.server.admin.goods_center.entity.dto.*
;
import
com.fzm.mall.server.admin.goods_center.entity.dto.*
;
import
com.fzm.mall.server.admin.goods_center.entity.vo.*
;
import
com.fzm.mall.server.admin.goods_center.entity.vo.*
;
import
com.fzm.mall.server.admin.goods_center.enums.status.SpuStatusEnum
;
import
com.fzm.mall.server.admin.goods_center.enums.status.SpuStatusEnum
;
import
com.fzm.mall.server.admin.goods_center.model.Spu
;
import
com.fzm.mall.server.admin.goods_center.service.IExternalTokenService
;
import
com.fzm.mall.server.admin.goods_center.service.IExternalTokenService
;
import
com.fzm.mall.server.admin.goods_center.service.ISkuService
;
import
com.fzm.mall.server.admin.goods_center.service.ISkuService
;
import
com.fzm.mall.server.admin.goods_center.service.ISpuService
;
import
com.fzm.mall.server.admin.goods_center.service.ISpuService
;
...
@@ -65,17 +66,16 @@ public class SpuController {
...
@@ -65,17 +66,16 @@ public class SpuController {
@PostMapping
(
"/releaseGoods/add"
)
@PostMapping
(
"/releaseGoods/add"
)
public
ResponseVO
add
(
@RequestBody
@Valid
GoodsSpuDTO
pDTO
,
@ApiParam
(
name
=
"adminId"
,
value
=
"管理员id"
)
public
ResponseVO
add
(
@RequestBody
@Valid
GoodsSpuDTO
pDTO
,
@ApiParam
(
name
=
"adminId"
,
value
=
"管理员id"
)
@RequestHeader
String
adminId
)
{
@RequestHeader
String
adminId
)
{
System
.
err
.
println
(
"pDTO:"
+
pDTO
);
spuService
.
goodsNameExist
(
pDTO
.
getName
());
adminService
.
adminAuthChecks
(
adminId
,
AdminTypeEnum
.
getMerchantTypeArr
());
String
merchantId
=
adminService
.
getByAdminId
(
adminId
).
getMerchantId
();
String
merchantId
=
adminService
.
getByAdminId
(
adminId
).
getMerchantId
();
Merchant
merchant
=
merchantService
.
getByMerchantId
(
merchantId
);
Merchant
merchant
=
merchantService
.
getByMerchantId
(
merchantId
);
if
(
merchant
.
getDelayDelivery
().
equals
(
GoodsConfigureEnum
.
IMMEDIATE_DELIVERY
.
status
())
if
(
merchant
.
getDelayDelivery
().
equals
(
GoodsConfigureEnum
.
IMMEDIATE_DELIVERY
.
status
())
&&
pDTO
.
getDelayDelivery
().
equals
(
GoodsConfigureEnum
.
DELAY_DELIVERY
.
status
()))
{
&&
pDTO
.
getDelayDelivery
().
equals
(
GoodsConfigureEnum
.
DELAY_DELIVERY
.
status
()))
{
return
resFac
.
getResponse
(
MallResponseError
.
MERCHANT_NOT_DELAY_DELIVERY
);
return
resFac
.
getResponse
(
MallResponseError
.
MERCHANT_NOT_DELAY_DELIVERY
);
}
}
Spu
spu
=
spuService
.
getByGoodsId
(
pDTO
.
getGoodsId
());
if
(
spu
!=
null
&&
!
spu
.
getName
().
equals
(
pDTO
.
getName
()))
{
return
resFac
.
getResponse
(
MallResponseError
.
GOODS_NAME_EXIST
);
}
/*Template template = templateService.getByMerchantId(merchantId);
/*Template template = templateService.getByMerchantId(merchantId);
if (template == null) {
if (template == null) {
return resFac.getResponse(MallResponseError.NULL_TEMPLATE);
return resFac.getResponse(MallResponseError.NULL_TEMPLATE);
...
@@ -84,7 +84,17 @@ public class SpuController {
...
@@ -84,7 +84,17 @@ public class SpuController {
if
(
shopDTO
==
null
)
{
if
(
shopDTO
==
null
)
{
return
resFac
.
getResponse
(
MallResponseError
.
NULL_SHOP
);
return
resFac
.
getResponse
(
MallResponseError
.
NULL_SHOP
);
}
}
spuService
.
add
(
pDTO
,
merchantId
,
null
);
spuService
.
add
(
pDTO
,
merchantId
,
null
,
merchant
.
getTokenIssueAddr
());
return
resFac
.
getSimpleSuccessResponse
();
}
@ApiOperation
(
value
=
"存为草稿"
)
@PostMapping
(
"/releaseGoods/draft"
)
public
ResponseVO
draft
(
@RequestBody
@Valid
GoodsSpuDraftDTO
pDTO
,
@ApiParam
(
name
=
"adminId"
,
value
=
"管理员id"
)
@RequestHeader
String
adminId
)
{
System
.
err
.
println
(
"pDTO:"
+
pDTO
);
String
merchantId
=
adminService
.
getByAdminId
(
adminId
).
getMerchantId
();
spuService
.
draft
(
pDTO
,
merchantId
);
return
resFac
.
getSimpleSuccessResponse
();
return
resFac
.
getSimpleSuccessResponse
();
}
}
...
...
mall-server-admin/src/main/java/com/fzm/mall/server/admin/goods_center/entity/dto/GoodsSkuDTO.java
View file @
5d7bb839
...
@@ -57,4 +57,7 @@ public class GoodsSkuDTO {
...
@@ -57,4 +57,7 @@ public class GoodsSkuDTO {
@ApiModelProperty
(
"nft销售方式(1.原商品销售 2.拷贝销售)"
)
@ApiModelProperty
(
"nft销售方式(1.原商品销售 2.拷贝销售)"
)
private
Integer
nftSalesType
;
private
Integer
nftSalesType
;
@ApiModelProperty
(
"是否隐藏款(0.否 1.是)"
)
private
Integer
isHide
;
}
}
mall-server-admin/src/main/java/com/fzm/mall/server/admin/goods_center/entity/dto/GoodsSpuDTO.java
View file @
5d7bb839
...
@@ -10,6 +10,7 @@ import lombok.Data;
...
@@ -10,6 +10,7 @@ import lombok.Data;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.NotNull
;
import
java.math.BigDecimal
;
import
java.util.List
;
import
java.util.List
;
/**
/**
...
@@ -22,6 +23,9 @@ import java.util.List;
...
@@ -22,6 +23,9 @@ import java.util.List;
@ApiModel
(
value
=
"GoodsSpuDTO"
,
description
=
"商品信息"
)
@ApiModel
(
value
=
"GoodsSpuDTO"
,
description
=
"商品信息"
)
public
class
GoodsSpuDTO
{
public
class
GoodsSpuDTO
{
@ApiModelProperty
(
"商品ID"
)
private
String
goodsId
;
@ApiModelProperty
(
"商品名称"
)
@ApiModelProperty
(
"商品名称"
)
@NotBlank
(
message
=
MallResponseError
.
NULL_PARAM_ERROR
)
@NotBlank
(
message
=
MallResponseError
.
NULL_PARAM_ERROR
)
private
String
name
;
private
String
name
;
...
@@ -52,27 +56,19 @@ public class GoodsSpuDTO {
...
@@ -52,27 +56,19 @@ public class GoodsSpuDTO {
private
String
imgList
;
private
String
imgList
;
@ApiModelProperty
(
"商品视频"
)
@ApiModelProperty
(
"商品视频"
)
// @NotBlank(message = MallResponseError.NULL_PARAM_ERROR)
private
String
video
;
private
String
video
;
@ApiModelProperty
(
"视频封面"
)
@ApiModelProperty
(
"视频封面"
)
// @NotBlank(message = MallResponseError.NULL_PARAM_ERROR)
private
String
videoPoster
;
private
String
videoPoster
;
@ApiModelProperty
(
"商品介绍"
)
@ApiModelProperty
(
"商品介绍"
)
@NotBlank
(
message
=
MallResponseError
.
NULL_PARAM_ERROR
)
@NotBlank
(
message
=
MallResponseError
.
NULL_PARAM_ERROR
)
private
String
detail
;
private
String
detail
;
// @ApiModelProperty("快递模板")
// @NotBlank(message = MallResponseError.NULL_PARAM_ERROR)
// private String templateId;
@ApiModelProperty
(
"商品通证(0.否 1.是,自动生成Token 2.是,使用外部既有Token 3.外部token使用权)"
)
@ApiModelProperty
(
"商品通证(0.否 1.是,自动生成Token 2.是,使用外部既有Token 3.外部token使用权)"
)
// @NotNull(message = MallResponseError.NULL_PARAM_ERROR)
private
Integer
commodityPass
;
private
Integer
commodityPass
;
@ApiModelProperty
(
"延迟提货(0--否 1--是)"
)
@ApiModelProperty
(
"延迟提货(0--否 1--是)"
)
// @NotNull(message = MallResponseError.NULL_PARAM_ERROR)
private
Integer
delayDelivery
;
private
Integer
delayDelivery
;
@ApiModelProperty
(
"退货类型"
)
@ApiModelProperty
(
"退货类型"
)
...
@@ -87,27 +83,24 @@ public class GoodsSpuDTO {
...
@@ -87,27 +83,24 @@ public class GoodsSpuDTO {
private
String
note
;
private
String
note
;
@ApiModelProperty
(
"溯源信息"
)
@ApiModelProperty
(
"溯源信息"
)
// @NotBlank(message = MallResponseError.NULL_PARAM_ERROR)
private
String
traceabilityNumber
;
private
String
traceabilityNumber
;
@ApiModelProperty
(
"ntf文件"
)
@ApiModelProperty
(
"ntf文件"
)
// @NotBlank(message = MallResponseError.NULL_PARAM_ERROR)
private
String
nftFile
;
private
String
nftFile
;
@ApiModelProperty
(
"商品规格"
)
@ApiModelProperty
(
"商品规格"
)
// @NotEmpty(message = MallResponseError.NULL_PARAM_ERROR)
private
List
<
GoodsSkuDTO
>
skuList
;
private
List
<
GoodsSkuDTO
>
skuList
;
@ApiModelProperty
(
"
商品预售
"
)
@ApiModelProperty
(
"
nft
"
)
private
PreSaleDTO
preSaleDTO
;
private
NFTDTO
nftdto
;
@ApiModelProperty
(
"
商品拍卖
"
)
@ApiModelProperty
(
"
1.普通 4.盲盒
"
)
private
AuctionDTO
auctionDTO
;
private
Integer
salesType
;
@ApiModelProperty
(
"
商品拍卖
"
)
@ApiModelProperty
(
"
盲盒商品难度(1-10)
"
)
private
PackageDTO
packageDTO
;
private
Integer
difficulty
;
@ApiModelProperty
(
"
nft
"
)
@ApiModelProperty
(
"
盲盒价格
"
)
private
NFTDTO
nftdto
;
private
BigDecimal
blindBoxPrice
;
}
}
mall-server-admin/src/main/java/com/fzm/mall/server/admin/goods_center/entity/dto/GoodsSpuDraftDTO.java
0 → 100644
View file @
5d7bb839
package
com
.
fzm
.
mall
.
server
.
admin
.
goods_center
.
entity
.
dto
;
import
com.fzm.mall.server.admin.annotation.CustomType
;
import
com.fzm.mall.server.admin.constant.MALLGlobalConfig
;
import
com.fzm.mall.server.admin.constant.MallResponseError
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
java.math.BigDecimal
;
import
java.util.List
;
/**
* @author wangp
* @date 2021/3/9 10:37
* @description 商品信息
* @since JDK 1.8
*/
@Data
@ApiModel
(
value
=
"GoodsSpuDTO"
,
description
=
"商品信息"
)
public
class
GoodsSpuDraftDTO
{
@ApiModelProperty
(
"商品ID"
)
private
String
goodsId
;
@ApiModelProperty
(
"商品名称"
)
@NotBlank
(
message
=
MallResponseError
.
NULL_PARAM_ERROR
)
private
String
name
;
@ApiModelProperty
(
"商品类型"
)
@CustomType
(
pType
=
MALLGlobalConfig
.
GOODS_TYPE
,
message
=
MallResponseError
.
PARAM_ERROR
)
@NotNull
(
message
=
MallResponseError
.
NULL_PARAM_ERROR
)
private
Integer
type
;
@ApiModelProperty
(
"商品描述"
)
@NotBlank
(
message
=
MallResponseError
.
NULL_PARAM_ERROR
)
private
String
description
;
@ApiModelProperty
(
"商品属性"
)
private
String
prop
;
@ApiModelProperty
(
"商品类目"
)
@NotBlank
(
message
=
MallResponseError
.
NULL_PARAM_ERROR
)
private
String
categoryId
;
@ApiModelProperty
(
"商品缩略图"
)
@NotBlank
(
message
=
MallResponseError
.
NULL_PARAM_ERROR
)
private
String
thumb
;
@ApiModelProperty
(
"商品展示图"
)
@NotBlank
(
message
=
MallResponseError
.
NULL_PARAM_ERROR
)
private
String
imgList
;
@ApiModelProperty
(
"商品视频"
)
private
String
video
;
@ApiModelProperty
(
"视频封面"
)
private
String
videoPoster
;
@ApiModelProperty
(
"商品介绍"
)
@NotBlank
(
message
=
MallResponseError
.
NULL_PARAM_ERROR
)
private
String
detail
;
@ApiModelProperty
(
"商品通证(0.否 1.是,自动生成Token 2.是,使用外部既有Token 3.外部token使用权)"
)
private
Integer
commodityPass
;
@ApiModelProperty
(
"延迟提货(0--否 1--是)"
)
private
Integer
delayDelivery
;
@ApiModelProperty
(
"退货类型"
)
@CustomType
(
pType
=
MALLGlobalConfig
.
RETURN_TYPE
,
message
=
MallResponseError
.
PARAM_ERROR
)
@NotNull
(
message
=
MallResponseError
.
NULL_PARAM_ERROR
)
private
Integer
returnType
;
@ApiModelProperty
(
"退货原因"
)
private
String
returnReason
;
@ApiModelProperty
(
"商品备注"
)
private
String
note
;
@ApiModelProperty
(
"溯源信息"
)
private
String
traceabilityNumber
;
@ApiModelProperty
(
"ntf文件"
)
private
String
nftFile
;
@ApiModelProperty
(
"商品规格"
)
private
List
<
GoodsSkuDTO
>
skuList
;
@ApiModelProperty
(
"nft"
)
private
NFTDTO
nftdto
;
@ApiModelProperty
(
"1.普通 4.盲盒"
)
private
Integer
salesType
;
@ApiModelProperty
(
"盲盒商品难度(1-10)"
)
private
Integer
difficulty
;
@ApiModelProperty
(
"盲盒价格"
)
private
BigDecimal
blindBoxPrice
;
}
mall-server-admin/src/main/java/com/fzm/mall/server/admin/goods_center/enums/status/SpuStatusEnum.java
View file @
5d7bb839
...
@@ -21,7 +21,8 @@ public enum SpuStatusEnum {
...
@@ -21,7 +21,8 @@ public enum SpuStatusEnum {
WAIT_CHECK
(
5
),
//待审核
WAIT_CHECK
(
5
),
//待审核
CHECK_FAIL
(
6
),
//审核未通过
CHECK_FAIL
(
6
),
//审核未通过
CHECK_PASS
(
7
),
//审核通过
CHECK_PASS
(
7
),
//审核通过
CANCEL
(
8
);
//取消发布
CANCEL
(
8
),
//取消发布
DRAFT
(
9
);
//草稿
private
Integer
status
;
private
Integer
status
;
...
...
mall-server-admin/src/main/java/com/fzm/mall/server/admin/goods_center/enums/type/NFTSalesTypeEnum.java
0 → 100644
View file @
5d7bb839
package
com
.
fzm
.
mall
.
server
.
admin
.
goods_center
.
enums
.
type
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
* @author wangp
* @date 2021/3/12 13:49
* @description 商品类别
* @since JDK 1.8
*/
public
enum
NFTSalesTypeEnum
{
ORIGIN
(
1
),
//原商品销售
COPY
(
2
);
//拷贝销售
private
Integer
type
;
NFTSalesTypeEnum
(
Integer
type
)
{
this
.
type
=
type
;
}
public
Integer
getType
()
{
return
type
;
}
public
static
List
<
Integer
>
getValueList
()
{
return
Arrays
.
stream
(
NFTSalesTypeEnum
.
values
())
.
map
(
NFTSalesTypeEnum:
:
getType
)
.
collect
(
Collectors
.
toList
());
}
}
mall-server-admin/src/main/java/com/fzm/mall/server/admin/goods_center/enums/type/SalesTypeEnum.java
0 → 100644
View file @
5d7bb839
package
com
.
fzm
.
mall
.
server
.
admin
.
goods_center
.
enums
.
type
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
* @author wangp
* @date 2021/3/12 13:49
* @description 商品类别
* @since JDK 1.8
*/
public
enum
SalesTypeEnum
{
ORDINARY
(
1
),
//普通
BLIND_BOX
(
4
);
//盲盒
private
Integer
type
;
SalesTypeEnum
(
Integer
type
)
{
this
.
type
=
type
;
}
public
Integer
getType
()
{
return
type
;
}
public
static
List
<
Integer
>
getValueList
()
{
return
Arrays
.
stream
(
SalesTypeEnum
.
values
())
.
map
(
SalesTypeEnum:
:
getType
)
.
collect
(
Collectors
.
toList
());
}
}
mall-server-admin/src/main/java/com/fzm/mall/server/admin/goods_center/model/Sku.java
View file @
5d7bb839
...
@@ -101,4 +101,12 @@ public class Sku implements Serializable {
...
@@ -101,4 +101,12 @@ public class Sku implements Serializable {
@ApiModelProperty
(
value
=
"nft销售方式(1.原商品销售 2.拷贝销售)"
)
@ApiModelProperty
(
value
=
"nft销售方式(1.原商品销售 2.拷贝销售)"
)
@TableField
(
"nft_sales_type"
)
@TableField
(
"nft_sales_type"
)
private
Integer
nftSalesType
;
private
Integer
nftSalesType
;
@ApiModelProperty
(
value
=
"是否隐藏款(0.否 1.是)"
)
@TableField
(
"is_hide"
)
private
Integer
isHide
;
@ApiModelProperty
(
value
=
"token_id"
)
@TableField
(
"token_id"
)
private
Long
tokenId
;
}
}
mall-server-admin/src/main/java/com/fzm/mall/server/admin/goods_center/model/Spu.java
View file @
5d7bb839
...
@@ -165,5 +165,12 @@ public class Spu implements Serializable {
...
@@ -165,5 +165,12 @@ public class Spu implements Serializable {
@TableField
(
value
=
"update_time"
,
fill
=
FieldFill
.
INSERT_UPDATE
)
@TableField
(
value
=
"update_time"
,
fill
=
FieldFill
.
INSERT_UPDATE
)
private
Long
updateTime
;
private
Long
updateTime
;
@ApiModelProperty
(
value
=
"(销售方式)1.普通 2.盲盒"
)
private
Integer
salesType
;
@ApiModelProperty
(
value
=
"盲盒商品难度(1-10)"
)
private
Integer
difficulty
;
@ApiModelProperty
(
value
=
"盲盒价格"
)
private
BigDecimal
blindBoxPrice
;
}
}
mall-server-admin/src/main/java/com/fzm/mall/server/admin/goods_center/service/ICategorySpuService.java
View file @
5d7bb839
...
@@ -44,4 +44,11 @@ public interface ICategorySpuService extends IService<CategorySpu> {
...
@@ -44,4 +44,11 @@ public interface ICategorySpuService extends IService<CategorySpu> {
*/
*/
String
getByGoodsIdForId
(
String
goodsId
);
String
getByGoodsIdForId
(
String
goodsId
);
/**
* 新增商品类目
*
* @param goodsId 商品id
*/
void
removeByGoodsId
(
String
goodsId
);
}
}
mall-server-admin/src/main/java/com/fzm/mall/server/admin/goods_center/service/ICountService.java
View file @
5d7bb839
...
@@ -35,4 +35,11 @@ public interface ICountService extends IService<Count> {
...
@@ -35,4 +35,11 @@ public interface ICountService extends IService<Count> {
* @return
* @return
*/
*/
List
<
SalesTopTenVO
>
salesTopTen
(
String
merchantId
);
List
<
SalesTopTenVO
>
salesTopTen
(
String
merchantId
);
/**
* 初始化商品销量
*
* @param goodsId
*/
void
removeByGoodsId
(
String
goodsId
);
}
}
mall-server-admin/src/main/java/com/fzm/mall/server/admin/goods_center/service/IExternalTokenService.java
View file @
5d7bb839
...
@@ -34,4 +34,6 @@ public interface IExternalTokenService extends IService<ExternalToken> {
...
@@ -34,4 +34,6 @@ public interface IExternalTokenService extends IService<ExternalToken> {
ExternalToken
queryByLabelNameAndMerchantId
(
String
coin
,
String
merchantId
);
ExternalToken
queryByLabelNameAndMerchantId
(
String
coin
,
String
merchantId
);
List
<
ExternNFTVO
>
queryByMerchantId
(
String
merchantId
);
List
<
ExternNFTVO
>
queryByMerchantId
(
String
merchantId
);
ExternalToken
queryByComId
(
String
comId
);
}
}
mall-server-admin/src/main/java/com/fzm/mall/server/admin/goods_center/service/IGoodsNftService.java
View file @
5d7bb839
...
@@ -26,6 +26,14 @@ public interface IGoodsNftService extends IService<GoodsNft> {
...
@@ -26,6 +26,14 @@ public interface IGoodsNftService extends IService<GoodsNft> {
void
add
(
NFTDTO
nftdto
,
String
goodsId
,
String
name
,
String
nftAddr
,
String
merchantId
,
long
timestamp
);
void
add
(
NFTDTO
nftdto
,
String
goodsId
,
String
name
,
String
nftAddr
,
String
merchantId
,
long
timestamp
);
/**
/**
* 草稿NFT商品
*
* @param nftdto NFT信息
* @param goodsId 商品id
*/
void
draft
(
NFTDTO
nftdto
,
String
goodsId
);
/**
* 根据商品id查询商品信息
* 根据商品id查询商品信息
*
*
* @param goodsId 商品id
* @param goodsId 商品id
...
@@ -59,4 +67,11 @@ public interface IGoodsNftService extends IService<GoodsNft> {
...
@@ -59,4 +67,11 @@ public interface IGoodsNftService extends IService<GoodsNft> {
* 编辑NFT商品
* 编辑NFT商品
*/
*/
GoodsNft
queryByTokenId
(
String
tokenId
);
GoodsNft
queryByTokenId
(
String
tokenId
);
/**
* 根据goodsId清除商品
*
* @param goodsId 商品ID
*/
void
removeByGoodsId
(
String
goodsId
);
}
}
mall-server-admin/src/main/java/com/fzm/mall/server/admin/goods_center/service/ISkuPropService.java
View file @
5d7bb839
...
@@ -30,4 +30,10 @@ public interface ISkuPropService extends IService<SkuProp> {
...
@@ -30,4 +30,10 @@ public interface ISkuPropService extends IService<SkuProp> {
*/
*/
List
<
SkuPropertyVO
>
getBySkuId
(
String
skuId
);
List
<
SkuPropertyVO
>
getBySkuId
(
String
skuId
);
/**
* 删除规格属性
*
* @param skuId 规格id
*/
void
removeBySkuId
(
String
skuId
);
}
}
mall-server-admin/src/main/java/com/fzm/mall/server/admin/goods_center/service/ISkuService.java
View file @
5d7bb839
...
@@ -27,7 +27,15 @@ public interface ISkuService extends IService<Sku> {
...
@@ -27,7 +27,15 @@ public interface ISkuService extends IService<Sku> {
* @param merchantId 商户id
* @param merchantId 商户id
* @param commodityPass 商品通证
* @param commodityPass 商品通证
*/
*/
void
add
(
List
<
GoodsSkuDTO
>
kDTOs
,
String
goodsId
,
String
goodsName
,
String
merchantId
,
Integer
commodityPass
,
Integer
pDTOType
);
void
add
(
List
<
GoodsSkuDTO
>
kDTOs
,
String
goodsId
,
String
goodsName
,
String
merchantId
,
String
addr
,
Integer
commodityPass
,
String
thumb
,
Integer
pDTOType
);
/**
* 新增商品规格
*
* @param kDTOs 商品规格信息
* @param goodsId 商品id
*/
void
draft
(
List
<
GoodsSkuDTO
>
kDTOs
,
String
goodsId
);
/**
/**
* 编辑商品规格
* 编辑商品规格
...
@@ -110,4 +118,6 @@ public interface ISkuService extends IService<Sku> {
...
@@ -110,4 +118,6 @@ public interface ISkuService extends IService<Sku> {
Sku
getByCoin
(
String
coin
);
Sku
getByCoin
(
String
coin
);
void
removeByGoodsId
(
String
goodsId
);
}
}
mall-server-admin/src/main/java/com/fzm/mall/server/admin/goods_center/service/ISpuService.java
View file @
5d7bb839
package
com
.
fzm
.
mall
.
server
.
admin
.
goods_center
.
service
;
package
com
.
fzm
.
mall
.
server
.
admin
.
goods_center
.
service
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.fzm.mall.server.admin.goods_center.entity.dto.GoodsCheckDTO
;
import
com.fzm.mall.server.admin.goods_center.entity.dto.*
;
import
com.fzm.mall.server.admin.goods_center.entity.dto.GoodsEditDTO
;
import
com.fzm.mall.server.admin.goods_center.entity.dto.GoodsRepublishUpdateDTO
;
import
com.fzm.mall.server.admin.goods_center.entity.dto.GoodsSpuDTO
;
import
com.fzm.mall.server.admin.goods_center.entity.vo.GoodsListVO
;
import
com.fzm.mall.server.admin.goods_center.entity.vo.GoodsListVO
;
import
com.fzm.mall.server.admin.goods_center.entity.vo.GoodsSpuDetailVO
;
import
com.fzm.mall.server.admin.goods_center.entity.vo.GoodsSpuDetailVO
;
import
com.fzm.mall.server.admin.goods_center.entity.vo.GoodsSpuVO
;
import
com.fzm.mall.server.admin.goods_center.entity.vo.GoodsSpuVO
;
...
@@ -28,7 +25,16 @@ public interface ISpuService extends IService<Spu> {
...
@@ -28,7 +25,16 @@ public interface ISpuService extends IService<Spu> {
* @param merchantId 商户id
* @param merchantId 商户id
* @param templateId 快递模板
* @param templateId 快递模板
*/
*/
void
add
(
GoodsSpuDTO
pDTO
,
String
merchantId
,
String
templateId
);
void
add
(
GoodsSpuDTO
pDTO
,
String
merchantId
,
String
templateId
,
String
addr
);
/**
* 草稿商品
*
* @param pDTO 商品信息
* @param merchantId 商户id
*/
void
draft
(
GoodsSpuDraftDTO
pDTO
,
String
merchantId
);
/**
/**
* 编辑商品
* 编辑商品
...
@@ -59,7 +65,7 @@ public interface ISpuService extends IService<Spu> {
...
@@ -59,7 +65,7 @@ public interface ISpuService extends IService<Spu> {
* @param goodsId 商品id
* @param goodsId 商品id
* @param status 商品状态
* @param status 商品状态
*/
*/
void
updateStatus
(
String
goodsId
,
Integer
status
,
String
errMsg
);
void
updateStatus
(
String
goodsId
,
Integer
status
,
String
errMsg
);
/**
/**
* 分页查询商品
* 分页查询商品
...
...
mall-server-admin/src/main/java/com/fzm/mall/server/admin/goods_center/service/impl/CategorySpuServiceImpl.java
View file @
5d7bb839
...
@@ -95,4 +95,11 @@ public class CategorySpuServiceImpl extends ServiceImpl<CategorySpuMapper, Categ
...
@@ -95,4 +95,11 @@ public class CategorySpuServiceImpl extends ServiceImpl<CategorySpuMapper, Categ
return
jsonArray
.
toJSONString
();
return
jsonArray
.
toJSONString
();
}
}
@Override
public
void
removeByGoodsId
(
String
goodsId
)
{
LambdaQueryWrapper
<
CategorySpu
>
qw
=
new
LambdaQueryWrapper
<>();
qw
.
eq
(
CategorySpu:
:
getGoodsId
,
goodsId
);
remove
(
qw
);
}
}
}
mall-server-admin/src/main/java/com/fzm/mall/server/admin/goods_center/service/impl/CountServiceImpl.java
View file @
5d7bb839
package
com
.
fzm
.
mall
.
server
.
admin
.
goods_center
.
service
.
impl
;
package
com
.
fzm
.
mall
.
server
.
admin
.
goods_center
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
...
@@ -74,4 +75,10 @@ public class CountServiceImpl extends ServiceImpl<CountMapper, Count> implements
...
@@ -74,4 +75,10 @@ public class CountServiceImpl extends ServiceImpl<CountMapper, Count> implements
return
salesTopTenVOS
;
return
salesTopTenVOS
;
}
}
@Override
public
void
removeByGoodsId
(
String
goodsId
)
{
LambdaQueryWrapper
<
Count
>
qw
=
new
LambdaQueryWrapper
<>();
qw
.
eq
(
Count:
:
getGoodsId
,
goodsId
);
remove
(
qw
);
}
}
}
mall-server-admin/src/main/java/com/fzm/mall/server/admin/goods_center/service/impl/ExternalTokenServiceImpl.java
View file @
5d7bb839
...
@@ -158,5 +158,12 @@ public class ExternalTokenServiceImpl extends ServiceImpl<ExternalTokenMapper, E
...
@@ -158,5 +158,12 @@ public class ExternalTokenServiceImpl extends ServiceImpl<ExternalTokenMapper, E
return
list
(
qw
).
stream
().
map
(
v
->
beanMapper
.
map
(
v
,
ExternNFTVO
.
class
))
return
list
(
qw
).
stream
().
map
(
v
->
beanMapper
.
map
(
v
,
ExternNFTVO
.
class
))
.
collect
(
Collectors
.
toList
());
.
collect
(
Collectors
.
toList
());
}
}
@Override
public
ExternalToken
queryByComId
(
String
comId
)
{
LambdaQueryWrapper
<
ExternalToken
>
qw
=
new
LambdaQueryWrapper
<>();
qw
.
eq
(
ExternalToken:
:
getCommodityPassId
,
comId
);
return
getOne
(
qw
);
}
}
}
mall-server-admin/src/main/java/com/fzm/mall/server/admin/goods_center/service/impl/GoodsNftServiceImpl.java
View file @
5d7bb839
...
@@ -95,6 +95,13 @@ public class GoodsNftServiceImpl extends ServiceImpl<GoodsNftMapper, GoodsNft> i
...
@@ -95,6 +95,13 @@ public class GoodsNftServiceImpl extends ServiceImpl<GoodsNftMapper, GoodsNft> i
}
}
@Override
@Override
public
void
draft
(
NFTDTO
nftdto
,
String
goodsId
)
{
GoodsNft
nft
=
beanMapper
.
map
(
nftdto
,
GoodsNft
.
class
);
nft
.
setGoodsId
(
goodsId
);
save
(
nft
);
}
@Override
public
GoodsNftVO
getByGoodsId
(
String
goodsId
)
{
public
GoodsNftVO
getByGoodsId
(
String
goodsId
)
{
LambdaQueryWrapper
<
GoodsNft
>
qw
=
new
LambdaQueryWrapper
<>();
LambdaQueryWrapper
<
GoodsNft
>
qw
=
new
LambdaQueryWrapper
<>();
qw
.
eq
(
GoodsNft:
:
getGoodsId
,
goodsId
);
qw
.
eq
(
GoodsNft:
:
getGoodsId
,
goodsId
);
...
@@ -144,4 +151,11 @@ public class GoodsNftServiceImpl extends ServiceImpl<GoodsNftMapper, GoodsNft> i
...
@@ -144,4 +151,11 @@ public class GoodsNftServiceImpl extends ServiceImpl<GoodsNftMapper, GoodsNft> i
qw
.
lambda
().
eq
(
GoodsNft:
:
getTokenId
,
tokenId
);
qw
.
lambda
().
eq
(
GoodsNft:
:
getTokenId
,
tokenId
);
return
getOne
(
qw
);
return
getOne
(
qw
);
}
}
@Override
public
void
removeByGoodsId
(
String
goodsId
)
{
LambdaQueryWrapper
<
GoodsNft
>
qw
=
new
LambdaQueryWrapper
<>();
qw
.
eq
(
GoodsNft:
:
getGoodsId
,
goodsId
);
remove
(
qw
);
}
}
}
mall-server-admin/src/main/java/com/fzm/mall/server/admin/goods_center/service/impl/SkuPropServiceImpl.java
View file @
5d7bb839
package
com
.
fzm
.
mall
.
server
.
admin
.
goods_center
.
service
.
impl
;
package
com
.
fzm
.
mall
.
server
.
admin
.
goods_center
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.fzm.mall.server.admin.constant.MallResponseError
;
import
com.fzm.mall.server.admin.constant.MallResponseError
;
...
@@ -57,5 +58,10 @@ public class SkuPropServiceImpl extends ServiceImpl<SkuPropMapper, SkuProp> impl
...
@@ -57,5 +58,10 @@ public class SkuPropServiceImpl extends ServiceImpl<SkuPropMapper, SkuProp> impl
return
propertyVOList
;
return
propertyVOList
;
}
}
@Override
public
void
removeBySkuId
(
String
skuId
)
{
LambdaQueryWrapper
<
SkuProp
>
qw
=
new
LambdaQueryWrapper
<>();
qw
.
eq
(
SkuProp:
:
getSkuId
,
skuId
);
remove
(
qw
);
}
}
}
mall-server-admin/src/main/java/com/fzm/mall/server/admin/goods_center/service/impl/SkuServiceImpl.java
View file @
5d7bb839
...
@@ -10,10 +10,13 @@ import com.fzm.mall.server.admin.block_chain.util.ChainUtil;
...
@@ -10,10 +10,13 @@ import com.fzm.mall.server.admin.block_chain.util.ChainUtil;
import
com.fzm.mall.server.admin.constant.MALLGlobalConfig
;
import
com.fzm.mall.server.admin.constant.MALLGlobalConfig
;
import
com.fzm.mall.server.admin.constant.MallResponseError
;
import
com.fzm.mall.server.admin.constant.MallResponseError
;
import
com.fzm.mall.server.admin.exception.MyException
;
import
com.fzm.mall.server.admin.exception.MyException
;
import
com.fzm.mall.server.admin.finance_center.enums.type.AssetsFlowTypeEnum
;
import
com.fzm.mall.server.admin.goods_center.entity.dto.GoodsSkuDTO
;
import
com.fzm.mall.server.admin.goods_center.entity.dto.GoodsSkuDTO
;
import
com.fzm.mall.server.admin.goods_center.entity.vo.GoodsPackageSkuVO
;
import
com.fzm.mall.server.admin.goods_center.entity.vo.GoodsPackageSkuVO
;
import
com.fzm.mall.server.admin.goods_center.entity.vo.GoodsSkuVO
;
import
com.fzm.mall.server.admin.goods_center.entity.vo.GoodsSkuVO
;
import
com.fzm.mall.server.admin.goods_center.entity.vo.SkuPropertyVO
;
import
com.fzm.mall.server.admin.goods_center.entity.vo.SkuPropertyVO
;
import
com.fzm.mall.server.admin.goods_center.enums.type.CommodityPassTypeEnum
;
import
com.fzm.mall.server.admin.goods_center.enums.type.NFTSalesTypeEnum
;
import
com.fzm.mall.server.admin.goods_center.model.ExternalToken
;
import
com.fzm.mall.server.admin.goods_center.model.ExternalToken
;
import
com.fzm.mall.server.admin.goods_center.service.IExternalTokenService
;
import
com.fzm.mall.server.admin.goods_center.service.IExternalTokenService
;
import
com.fzm.mall.server.admin.mq.enums.QueueTTLTypeEnum
;
import
com.fzm.mall.server.admin.mq.enums.QueueTTLTypeEnum
;
...
@@ -28,6 +31,8 @@ import com.fzm.mall.server.admin.home_page.service.IMerchantService;
...
@@ -28,6 +31,8 @@ import com.fzm.mall.server.admin.home_page.service.IMerchantService;
import
com.fzm.mall.server.admin.order.model.OrderDetail
;
import
com.fzm.mall.server.admin.order.model.OrderDetail
;
import
com.fzm.mall.server.admin.util.UUIDUtil
;
import
com.fzm.mall.server.admin.util.UUIDUtil
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.ArrayUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.dozer.DozerBeanMapper
;
import
org.dozer.DozerBeanMapper
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -44,6 +49,7 @@ import java.util.stream.Collectors;
...
@@ -44,6 +49,7 @@ import java.util.stream.Collectors;
* @description 商品规格表 服务实现类
* @description 商品规格表 服务实现类
* @since JDK 1.8
* @since JDK 1.8
*/
*/
@Slf4j
@Service
@Service
@Transactional
@Transactional
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
...
@@ -63,57 +69,57 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements ISkuS
...
@@ -63,57 +69,57 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements ISkuS
private
ChainUtil
chainUtil
;
private
ChainUtil
chainUtil
;
@Override
@Override
public
void
add
(
List
<
GoodsSkuDTO
>
kDTOs
,
String
goodsId
,
String
goodsName
,
String
merchantId
,
Integer
commodityPass
,
Integer
pDTOType
)
{
public
void
add
(
List
<
GoodsSkuDTO
>
kDTOs
,
String
goodsId
,
String
goodsName
,
String
merchantId
,
String
addr
,
Integer
commodityPass
,
String
thumb
,
Integer
pDTOType
)
{
List
<
Sku
>
skus
=
new
ArrayList
<>();
int
total
=
kDTOs
.
size
();
int
total
=
kDTOs
.
size
();
int
subCount
=
0
;
int
subCount
=
0
;
List
<
Sku
>
skus
=
new
ArrayList
<>();
Merchant
merchant
=
merchantService
.
getByMerchantId
(
merchantId
);
for
(
GoodsSkuDTO
kDTO
:
kDTOs
)
{
for
(
GoodsSkuDTO
kDTO
:
kDTOs
)
{
String
skuId
=
UUIDUtil
.
getUUID
();
String
coinName
=
kDTO
.
getCoinName
().
toUpperCase
();
if
(
coinName
.
equals
(
"RMB"
))
{
throw
new
MyException
(
MallResponseError
.
COIN_NOT_RMB
);
}
//规格属性入库
skuPropService
.
add
(
kDTO
.
getPropertyList
(),
skuId
);
//规格入库
//规格入库
Sku
sku
=
beanMapper
.
map
(
kDTO
,
Sku
.
class
);
Sku
sku
=
beanMapper
.
map
(
kDTO
,
Sku
.
class
);
String
skuId
=
UUIDUtil
.
getUUID
();
sku
.
setThumb
(
kDTO
.
getImage
());
sku
.
setThumb
(
kDTO
.
getImage
());
if
(
StringUtils
.
isBlank
(
kDTO
.
getImage
()))
{
sku
.
setThumb
(
thumb
);
}
sku
.
setSkuId
(
skuId
);
sku
.
setSkuId
(
skuId
);
sku
.
setGoodsId
(
goodsId
);
sku
.
setGoodsId
(
goodsId
);
sku
.
setCoinName
(
coinName
);
sku
.
setCirculation
(
kDTO
.
getStock
());
sku
.
setCirculation
(
kDTO
.
getStock
());
if
(
commodityPass
.
equals
(
1
)
&&
!
pDTOType
.
equals
(
6
))
{
//规格属性入库
//发行商品币
skuPropService
.
add
(
kDTO
.
getPropertyList
(),
skuId
);
if
(
getOne
(
new
QueryWrapper
<
Sku
>().
lambda
().
eq
(
Sku:
:
getCoinName
,
coinName
))
!=
null
)
{
throw
new
MyException
(
MallResponseError
.
COIN_HAS_EXIST
);
if
(
commodityPass
.
equals
(
CommodityPassTypeEnum
.
INNER
.
getType
()))
{
}
long
tokenId
=
System
.
currentTimeMillis
();
sku
.
setCoinName
(
MALLGlobalConfig
.
NFT_PREFIX
+
tokenId
);
sku
.
setTokenId
(
tokenId
);
//发行NFT
log
.
info
(
"【goods release】:"
+
addr
+
","
+
tokenId
+
","
+
kDTO
.
getStock
());
String
hash
=
chainUtil
.
evmPublishTokenSplit
(
addr
,
tokenId
,
kDTO
.
getStock
());
log
.
info
(
"【goods release hash】:"
+
hash
);
//异步确认
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"coinName"
,
coinName
);
map
.
put
(
"hash"
,
hash
);
map
.
put
(
"stock"
,
sku
.
getStock
());
map
.
put
(
"stock"
,
kDTO
.
getStock
());
map
.
put
(
"tokenAddr"
,
merchant
.
getTokenIssueAddr
());
map
.
put
(
"goodsId"
,
goodsId
);
map
.
put
(
"goodsId"
,
goodsId
);
map
.
put
(
"skuId"
,
skuId
);
map
.
put
(
"skuId"
,
skuId
);
map
.
put
(
"subCount"
,
++
subCount
);
map
.
put
(
"subCount"
,
++
subCount
);
map
.
put
(
"total"
,
total
);
map
.
put
(
"total"
,
total
);
producer
.
sendTTL
(
map
,
QueueTTLTypeEnum
.
ISSUE_COINS_TTL
,
5
*
1000
);
producer
.
sendTTL
(
map
,
QueueTTLTypeEnum
.
ISSUE_COINS_TTL
,
5
*
1000
);
//外部绑定
// ||||
}
else
if
(
commodityPass
.
equals
(
CommodityPassTypeEnum
.
OUT
.
getType
())
||
commodityPass
.
equals
(
CommodityPassTypeEnum
.
COPY
.
getType
()))
{
ExternalToken
externalToken
=
externalTokenService
.
queryByComId
(
kDTO
.
getCommodityPassId
());
externalToken
.
setBindNumber
(
new
BigDecimal
(
kDTO
.
getStock
()));
externalToken
.
setGoodsId
(
goodsId
);
externalToken
.
setGoodsName
(
goodsName
);
externalToken
.
setStatus
(
1
);
externalTokenService
.
updateById
(
externalToken
);
sku
.
setCoinName
(
externalToken
.
getLabelName
());
sku
.
setTokenId
(
externalToken
.
getTokenId
());
}
}
if
(
commodityPass
.
equals
(
2
)
&&
!
pDTOType
.
equals
(
6
))
{
LambdaUpdateWrapper
<
ExternalToken
>
uw
=
new
LambdaUpdateWrapper
<>();
uw
.
set
(
ExternalToken:
:
getBindNumber
,
sku
.
getStock
());
uw
.
set
(
ExternalToken:
:
getGoodsId
,
goodsId
);
uw
.
set
(
ExternalToken:
:
getGoodsName
,
goodsName
);
uw
.
set
(
ExternalToken:
:
getStatus
,
1
);
uw
.
eq
(
ExternalToken:
:
getCommodityPassId
,
sku
.
getCommodityPassId
());
externalTokenService
.
update
(
uw
);
}
if
(
commodityPass
.
equals
(
3
))
{
if
(
commodityPass
.
equals
(
3
))
{
LambdaUpdateWrapper
<
ExternalToken
>
uw
=
new
LambdaUpdateWrapper
<>();
LambdaUpdateWrapper
<
ExternalToken
>
uw
=
new
LambdaUpdateWrapper
<>();
uw
.
set
(
ExternalToken:
:
getBindNumber
,
sku
.
getStock
());
uw
.
set
(
ExternalToken:
:
getBindNumber
,
sku
.
getStock
());
...
@@ -133,7 +139,7 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements ISkuS
...
@@ -133,7 +139,7 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements ISkuS
for
(
int
i
=
0
;
i
<
kDTO
.
getStock
();
i
++)
{
for
(
int
i
=
0
;
i
<
kDTO
.
getStock
();
i
++)
{
String
suffix
=
i
+
1
+
""
;
String
suffix
=
i
+
1
+
""
;
Long
suffixAll
=
Long
.
parseLong
(
tokenId
+
"00000000"
.
substring
(
0
,
8
-
suffix
.
length
())
+
suffix
);
Long
suffixAll
=
Long
.
parseLong
(
tokenId
+
"00000000"
.
substring
(
0
,
8
-
suffix
.
length
())
+
suffix
);
String
hash
=
chainUtil
.
evmPublishTokenSplit
(
merchant
.
getTokenIssueAddr
()
,
suffixAll
,
1L
);
String
hash
=
chainUtil
.
evmPublishTokenSplit
(
addr
,
suffixAll
,
1L
);
nos
[
i
]
=
suffixAll
;
nos
[
i
]
=
suffixAll
;
hashs
[
i
]
=
hash
;
hashs
[
i
]
=
hash
;
}
}
...
@@ -149,6 +155,107 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements ISkuS
...
@@ -149,6 +155,107 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements ISkuS
}
}
}
}
skus
.
add
(
sku
);
skus
.
add
(
sku
);
/*//内部发行 //todo 加个判断
if (commodityPass.equals(CommodityPassTypeEnum.INNER.getType())) {
long tokenId = System.currentTimeMillis();
sku.setCoinName(MALLGlobalConfig.NFT_PREFIX + tokenId);
sku.setTokenId(tokenId);
//发行NFT
log.info("【goods release】:" + tokenIssueAddr + "," + issueAddrKey + "," + tokenId + "," + kDTO.getStock());
String hash = chainUtil.evmPublishTokenSplit(tokenIssueAddr, issueAddrKey, tokenId, kDTO.getStock());
log.info("【goods release hash】:" + hash);
//异步确认
Map<String, Object> map = new HashMap<>();
map.put("hash", hash);
map.put("stock", kDTO.getStock());
map.put("goodsId", goodsId);
map.put("skuId", skuId);
map.put("subCount", ++subCount);
map.put("total", total);
producer.sendTTL(map, QueueTTLTypeEnum.ISSUE_COINS_TTL, 5 * 1000);
//外部绑定
// ||||
} else if (commodityPass.equals(CommodityPassTypeEnum.OUT.getType()) || commodityPass.equals(CommodityPassTypeEnum.COPY.getType())) {
ExternalToken externalToken = externalTokenService.queryByComId(kDTO.getCommodityPassId());
externalToken.setBindNumber(new BigDecimal(kDTO.getStock()));
externalToken.setGoodsId(goodsId);
externalToken.setGoodsName(goodsName);
externalToken.setStatus(1);
externalTokenService.updateById(externalToken);
sku.setCoinName(externalToken.getLabelName());
sku.setTokenId(externalToken.getTokenId());
}
if (kDTO.getNftSalesType() != null && kDTO.getNftSalesType().equals(NFTSalesTypeEnum.COPY.getType())) {
System.err.println("fefsfsfjioefiosefjiojjfi");
//发行拷贝NFT
ExternalToken externalToken = externalTokenService.queryByComId(kDTO.getCommodityPassId());
String tokenId = externalToken.getTokenId().toString();
long[] nos = new long[Math.toIntExact(kDTO.getStock())];
List<Long> tokenIds = new ArrayList<>();
for (int i = 0; i < kDTO.getStock(); i++) {
String suffix = i + 1 + "";
long suffixAll = Long.parseLong(tokenId + "00000000".substring(0, 8 - suffix.length()) + suffix);
nos[i] = suffixAll;
long balance = chainUtil.evmBalance(tokenIssueAddr, suffixAll);
if (balance == 0) tokenIds.add(suffixAll);
}
List<Long> amounts = new ArrayList<>();
tokenIds.forEach(v -> {
amounts.add(1L);
});
Long[] tokenIdArr = tokenIds.toArray(new Long[0]);
Long[] amountArr = amounts.toArray(new Long[0]);
log.info("发行拷贝NFT:" + Arrays.toString(tokenIdArr));
log.info("发行拷贝NFT:" + Arrays.toString(amountArr));
String tokenBatchSplit = chainUtil.evmPublishTokenBatchSplit(tokenIssueAddr, issueAddrKey, ArrayUtils.toPrimitive(tokenIdArr), ArrayUtils.toPrimitive(amountArr));
System.err.println("fefsfsfjioefiosefjiojjfiL:" + Arrays.toString(ArrayUtils.toPrimitive(tokenIdArr)));
System.err.println("fefsfsfjioefiosefjiojjfiL:" + Arrays.toString(ArrayUtils.toPrimitive(amountArr)));
Map<String, Object> map = new HashMap<>();
map.put("goodsId", goodsId);
map.put("hash", tokenBatchSplit);
map.put("prefix", tokenId);
map.put("merchantId", merchantId);
map.put("commodityPassId", externalToken.getCommodityPassId());
map.put("nos", JSONArray.toJSON(nos));
producer.sendTTL(map, QueueTTLTypeEnum.NFT_USU_TTL, 5 * 1000);
System.err.println("fefsfsfjioefiosefjiojjfiL````:" + tokenBatchSplit);
}
//规格入库
sku.setName(kDTO.getSku Name());
sku.setSkuId(skuId);
sku.setGoodsId(goodsId);
sku.setCertNo(RandomNumberGeneratorUtil.generateNumber2());
skus.add(sku);*/
}
saveBatch
(
skus
);
}
@Override
public
void
draft
(
List
<
GoodsSkuDTO
>
kDTOs
,
String
goodsId
)
{
List
<
Sku
>
skus
=
new
ArrayList
<>();
for
(
GoodsSkuDTO
kDTO
:
kDTOs
)
{
Sku
sku
=
beanMapper
.
map
(
kDTO
,
Sku
.
class
);
String
skuId
=
UUIDUtil
.
getUUID
();
//规格属性入库
skuPropService
.
add
(
kDTO
.
getPropertyList
(),
skuId
);
//规格入库
sku
.
setThumb
(
kDTO
.
getImage
());
sku
.
setSkuId
(
skuId
);
sku
.
setGoodsId
(
goodsId
);
skus
.
add
(
sku
);
}
}
saveBatch
(
skus
);
saveBatch
(
skus
);
...
@@ -497,4 +604,15 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements ISkuS
...
@@ -497,4 +604,15 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements ISkuS
qw
.
lambda
().
eq
(
Sku:
:
getCoinName
,
coin
);
qw
.
lambda
().
eq
(
Sku:
:
getCoinName
,
coin
);
return
getOne
(
qw
);
return
getOne
(
qw
);
}
}
@Override
public
void
removeByGoodsId
(
String
goodsId
)
{
LambdaQueryWrapper
<
Sku
>
qw
=
new
LambdaQueryWrapper
<>();
qw
.
eq
(
Sku:
:
getGoodsId
,
goodsId
);
List
<
Sku
>
skuList
=
list
(
qw
);
skuList
.
forEach
(
v
->
{
skuPropService
.
removeBySkuId
(
v
.
getSkuId
());
removeById
(
v
.
getId
());
});
}
}
}
mall-server-admin/src/main/java/com/fzm/mall/server/admin/goods_center/service/impl/SpuServiceImpl.java
View file @
5d7bb839
...
@@ -2,6 +2,7 @@ package com.fzm.mall.server.admin.goods_center.service.impl;
...
@@ -2,6 +2,7 @@ package com.fzm.mall.server.admin.goods_center.service.impl;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
...
@@ -19,6 +20,8 @@ import com.fzm.mall.server.admin.goods_center.entity.vo.*;
...
@@ -19,6 +20,8 @@ import com.fzm.mall.server.admin.goods_center.entity.vo.*;
import
com.fzm.mall.server.admin.goods_center.enums.status.SpuStatusEnum
;
import
com.fzm.mall.server.admin.goods_center.enums.status.SpuStatusEnum
;
import
com.fzm.mall.server.admin.goods_center.enums.type.CommodityPassTypeEnum
;
import
com.fzm.mall.server.admin.goods_center.enums.type.CommodityPassTypeEnum
;
import
com.fzm.mall.server.admin.goods_center.enums.type.GoodsTypeEnum
;
import
com.fzm.mall.server.admin.goods_center.enums.type.GoodsTypeEnum
;
import
com.fzm.mall.server.admin.goods_center.enums.type.NFTSalesTypeEnum
;
import
com.fzm.mall.server.admin.goods_center.enums.type.SalesTypeEnum
;
import
com.fzm.mall.server.admin.goods_center.mapper.SpuMapper
;
import
com.fzm.mall.server.admin.goods_center.mapper.SpuMapper
;
import
com.fzm.mall.server.admin.goods_center.model.*
;
import
com.fzm.mall.server.admin.goods_center.model.*
;
import
com.fzm.mall.server.admin.goods_center.service.*
;
import
com.fzm.mall.server.admin.goods_center.service.*
;
...
@@ -81,28 +84,37 @@ public class SpuServiceImpl extends ServiceImpl<SpuMapper, Spu> implements ISpuS
...
@@ -81,28 +84,37 @@ public class SpuServiceImpl extends ServiceImpl<SpuMapper, Spu> implements ISpuS
@Override
@Override
@Transactional
@Transactional
public
void
add
(
GoodsSpuDTO
pDTO
,
String
merchantId
,
String
templateId
)
{
public
void
add
(
GoodsSpuDTO
pDTO
,
String
merchantId
,
String
templateId
,
String
addr
)
{
String
goodsId
=
UUIDUtil
.
getUUID
();
String
goodsId
=
pDTO
.
getGoodsId
();
Integer
pDTOType
=
pDTO
.
getType
(
);
Spu
spu
=
getByGoodsId
(
goodsId
);
long
timestamp
=
System
.
currentTimeMillis
();
long
timestamp
=
System
.
currentTimeMillis
();
//预售拍卖入库
Integer
pDTOType
=
pDTO
.
getType
();
if
(
pDTOType
.
equals
(
PRE_SALE
.
getType
()))
{
Integer
salesType
=
pDTO
.
getSalesType
();
preSaleService
.
add
(
pDTO
.
getPreSaleDTO
(),
goodsId
);
}
else
if
(
pDTOType
.
equals
(
AUCTION
.
getType
()))
{
//对goodsId重新赋值并且清除预售,拍卖,规格信息
auctionService
.
add
(
pDTO
.
getAuctionDTO
(),
goodsId
);
//商品类目表删除
}
else
if
(
pDTOType
.
equals
(
PACK
.
getType
()))
{
//商品销量删除
goodsPackageService
.
add
(
pDTO
.
getPackageDTO
(),
goodsId
);
if
(
spu
!=
null
)
{
}
else
if
(
pDTOType
.
equals
(
NFT
.
getType
()))
{
//还原外部绑定nft-token //TODO 加个判断
if
(
pDTO
.
getCommodityPass
()
!=
3
)
{
if
(
spu
.
getCommodityPass
().
equals
(
CommodityPassTypeEnum
.
OUT
.
getType
())
||
spu
.
getCommodityPass
().
equals
(
CommodityPassTypeEnum
.
COPY
.
getType
()))
{
nftService
.
add
(
pDTO
.
getNftdto
(),
goodsId
,
pDTO
.
getName
(),
releaseExternalToken
(
goodsId
);
merchantService
.
getByMerchantId
(
merchantId
).
getTokenIssueAddr
(),
}
merchantId
,
timestamp
);
if
(
pDTO
.
getNftdto
().
getTzType
().
equals
(
1
))
{
nftService
.
removeByGoodsId
(
goodsId
);
List
<
GoodsSkuDTO
>
objects
=
pDTO
.
getSkuList
().
stream
().
peek
(
v
->
v
.
setCoinName
(
MALLGlobalConfig
.
NFT_PREFIX
+
timestamp
))
skuService
.
removeByGoodsId
(
goodsId
);
.
collect
(
Collectors
.
toList
());
categorySpuService
.
removeByGoodsId
(
goodsId
);
pDTO
.
setSkuList
(
objects
);
countService
.
removeByGoodsId
(
goodsId
);
}
removeById
(
spu
);
}
else
{
goodsId
=
UUIDUtil
.
getUUID
();
}
if
(
pDTO
.
getCommodityPass
()
!=
3
)
{
nftService
.
add
(
pDTO
.
getNftdto
(),
goodsId
,
pDTO
.
getName
(),
addr
,
merchantId
,
timestamp
);
if
(
pDTO
.
getNftdto
().
getTzType
().
equals
(
1
))
{
List
<
GoodsSkuDTO
>
objects
=
pDTO
.
getSkuList
().
stream
().
peek
(
v
->
v
.
setCoinName
(
MALLGlobalConfig
.
NFT_PREFIX
+
timestamp
)).
collect
(
Collectors
.
toList
());
pDTO
.
setSkuList
(
objects
);
}
}
}
}
...
@@ -111,44 +123,116 @@ public class SpuServiceImpl extends ServiceImpl<SpuMapper, Spu> implements ISpuS
...
@@ -111,44 +123,116 @@ public class SpuServiceImpl extends ServiceImpl<SpuMapper, Spu> implements ISpuS
categorySpuService
.
add
(
ids
,
goodsId
,
merchantId
);
categorySpuService
.
add
(
ids
,
goodsId
,
merchantId
);
//商品规格入库
//商品规格入库
if
(!
pDTOType
.
equals
(
PACK
.
getType
()))
{
skuService
.
add
(
pDTO
.
getSkuList
(),
goodsId
,
pDTO
.
getName
(),
merchantId
,
addr
,
pDTO
.
getCommodityPass
(),
pDTO
.
getThumb
(),
pDTOType
);
skuService
.
add
(
pDTO
.
getSkuList
(),
goodsId
,
pDTO
.
getName
(),
merchantId
,
pDTO
.
getCommodityPass
(),
pDTOType
);
}
Spu
spu
=
beanMapper
.
map
(
pDTO
,
Spu
.
class
);
//初始化商品信息
spu
=
beanMapper
.
map
(
pDTO
,
Spu
.
class
);
spu
.
setGoodsId
(
goodsId
);
spu
.
setGoodsId
(
goodsId
);
spu
.
setMerchantId
(
merchantId
);
spu
.
setMerchantId
(
merchantId
);
if
(
pDTO
.
getCommodityPass
()
==
null
||
pDTO
.
getCommodityPass
().
equals
(
0
)
||
pDTO
.
getCommodityPass
().
equals
(
2
)
||
Integer
status
=
SpuStatusEnum
.
WAIT_CHECK
.
getStatus
();
(
pDTO
.
getSkuList
().
get
(
0
)
!=
null
&&
pDTO
.
getSkuList
().
get
(
0
).
getNftSalesType
()
==
1
))
{
if
((
pDTO
.
getCommodityPass
().
equals
(
CommodityPassTypeEnum
.
COPY
.
getType
())
&&
pDTO
.
getSkuList
().
get
(
0
).
getNftSalesType
().
equals
(
NFTSalesTypeEnum
.
COPY
.
getType
()))
||
pDTO
.
getCommodityPass
().
equals
(
CommodityPassTypeEnum
.
INNER
.
getType
()))
{
spu
.
setStatus
(
SpuStatusEnum
.
WAIT_CHECK
.
getStatus
());
status
=
SpuStatusEnum
.
ISSUE
.
getStatus
();
}
else
{
spu
.
setStatus
(
SpuStatusEnum
.
ISSUE
.
getStatus
());
}
}
// spu.setTemplateId(templateId
);
spu
.
setStatus
(
status
);
//设置商品最大最小值
//设置商品最大最小值
if
(
pDTOType
.
equals
(
PACK
.
getType
()))
{
BigDecimal
price
=
pDTO
.
getNftdto
().
getPrice
();
BigDecimal
price
=
pDTO
.
getPackageDTO
().
getPrice
();
if
(
pDTO
.
getSalesType
().
equals
(
SalesTypeEnum
.
BLIND_BOX
.
getType
()))
{
spu
.
setMaxPrice
(
pDTO
.
getBlindBoxPrice
());
spu
.
setDefaultPrice
(
pDTO
.
getBlindBoxPrice
());
}
else
{
spu
.
setMaxPrice
(
price
);
spu
.
setMaxPrice
(
price
);
spu
.
setDefaultPrice
(
price
);
spu
.
setDefaultPrice
(
price
);
}
else
if
(
pDTOType
.
equals
(
NFT
.
getType
()))
{
}
if
(
pDTO
.
getCommodityPass
()
==
3
)
{
spu
.
setMaxPrice
(
pDTO
.
getSkuList
().
get
(
0
).
getOriginalPrice
());
spu
.
setDefaultPrice
(
pDTO
.
getSkuList
().
get
(
0
).
getOriginalPrice
());
}
//商品销量初始化
countService
.
init
(
goodsId
);
//商品入库
save
(
spu
);
}
@Override
public
void
draft
(
GoodsSpuDraftDTO
pDTO
,
String
merchantId
)
{
String
goodsId
=
pDTO
.
getGoodsId
();
Spu
spu
=
getByGoodsId
(
goodsId
);
if
(
spu
==
null
)
{
goodsId
=
UUIDUtil
.
getUUID
();
//NFT商品入库
if
(
pDTO
.
getSalesType
().
equals
(
SalesTypeEnum
.
BLIND_BOX
.
getType
()))
{
nftService
.
draft
(
pDTO
.
getNftdto
(),
goodsId
);
}
//商品规格入库
skuService
.
draft
(
pDTO
.
getSkuList
(),
goodsId
);
//初始化商品信息商品入库
spu
=
beanMapper
.
map
(
pDTO
,
Spu
.
class
);
spu
.
setGoodsId
(
goodsId
);
spu
.
setMerchantId
(
merchantId
);
spu
.
setStatus
(
SpuStatusEnum
.
DRAFT
.
getStatus
());
//设置商品最大最小值
BigDecimal
price
=
pDTO
.
getNftdto
().
getPrice
();
BigDecimal
price
=
pDTO
.
getNftdto
().
getPrice
();
spu
.
setMaxPrice
(
price
);
if
(
pDTO
.
getSalesType
().
equals
(
SalesTypeEnum
.
BLIND_BOX
.
getType
()))
{
spu
.
setDefaultPrice
(
price
);
spu
.
setMaxPrice
(
pDTO
.
getBlindBoxPrice
());
spu
.
setDefaultPrice
(
pDTO
.
getBlindBoxPrice
());
}
else
{
spu
.
setMaxPrice
(
price
);
spu
.
setDefaultPrice
(
price
);
}
if
(
pDTO
.
getCommodityPass
()
==
3
)
{
if
(
pDTO
.
getCommodityPass
()
==
3
)
{
spu
.
setMaxPrice
(
pDTO
.
getSkuList
().
get
(
0
).
getOriginalPrice
());
spu
.
setMaxPrice
(
pDTO
.
getSkuList
().
get
(
0
).
getOriginalPrice
());
spu
.
setDefaultPrice
(
pDTO
.
getSkuList
().
get
(
0
).
getOriginalPrice
());
spu
.
setDefaultPrice
(
pDTO
.
getSkuList
().
get
(
0
).
getOriginalPrice
());
}
}
save
(
spu
);
}
else
{
}
else
{
Map
<
String
,
Object
>
price
=
skuService
.
getMaxAndMinPrice
(
goodsId
);
if
(
spu
.
getStatus
().
equals
(
SpuStatusEnum
.
CHECK_PASS
.
getStatus
())
||
spu
.
getStatus
().
equals
(
SpuStatusEnum
.
CHECK_FAIL
.
getStatus
()))
{
spu
.
setMaxPrice
((
BigDecimal
)
(
price
.
get
(
"maxPrice"
)));
//还原外部绑定nft-token
spu
.
setDefaultPrice
((
BigDecimal
)
(
price
.
get
(
"minPrice"
)));
if
(
spu
.
getCommodityPass
().
equals
(
CommodityPassTypeEnum
.
OUT
.
getType
()))
{
}
releaseExternalToken
(
goodsId
);
}
}
//商品类目表删除
categorySpuService
.
removeByGoodsId
(
goodsId
);
//商品销量初始化
//商品销量删除
countService
.
init
(
goodsId
);
countService
.
removeByGoodsId
(
goodsId
);
//商品入库
//清除NFT信息
save
(
spu
);
nftService
.
removeByGoodsId
(
goodsId
);
//清除规格信息
skuService
.
removeByGoodsId
(
goodsId
);
//NFT商品入库
nftService
.
draft
(
pDTO
.
getNftdto
(),
goodsId
);
//商品规格入库
skuService
.
draft
(
pDTO
.
getSkuList
(),
goodsId
);
//初始化商品信息更新
Spu
spu2
=
beanMapper
.
map
(
pDTO
,
Spu
.
class
);
spu2
.
setId
(
spu
.
getId
());
spu2
.
setStatus
(
SpuStatusEnum
.
DRAFT
.
getStatus
());
//设置商品最大最小值
BigDecimal
price
=
pDTO
.
getNftdto
().
getPrice
();
if
(
pDTO
.
getSalesType
().
equals
(
SalesTypeEnum
.
BLIND_BOX
.
getType
()))
{
spu
.
setMaxPrice
(
pDTO
.
getBlindBoxPrice
());
spu
.
setDefaultPrice
(
pDTO
.
getBlindBoxPrice
());
}
else
{
spu
.
setMaxPrice
(
price
);
spu
.
setDefaultPrice
(
price
);
}
if
(
pDTO
.
getCommodityPass
()
==
3
)
{
spu
.
setMaxPrice
(
pDTO
.
getSkuList
().
get
(
0
).
getOriginalPrice
());
spu
.
setDefaultPrice
(
pDTO
.
getSkuList
().
get
(
0
).
getOriginalPrice
());
}
updateById
(
spu2
);
}
}
}
@Override
@Override
...
@@ -187,7 +271,7 @@ public class SpuServiceImpl extends ServiceImpl<SpuMapper, Spu> implements ISpuS
...
@@ -187,7 +271,7 @@ public class SpuServiceImpl extends ServiceImpl<SpuMapper, Spu> implements ISpuS
BigDecimal
price
=
pDTO
.
getNftdto
().
getPrice
();
BigDecimal
price
=
pDTO
.
getNftdto
().
getPrice
();
spu
.
setMaxPrice
(
price
);
spu
.
setMaxPrice
(
price
);
spu
.
setDefaultPrice
(
price
);
spu
.
setDefaultPrice
(
price
);
if
(
one
.
getCommodityPass
()
==
3
){
if
(
one
.
getCommodityPass
()
==
3
)
{
spu
.
setMaxPrice
(
pDTO
.
getSkuList
().
get
(
0
).
getOriginalPrice
());
spu
.
setMaxPrice
(
pDTO
.
getSkuList
().
get
(
0
).
getOriginalPrice
());
spu
.
setDefaultPrice
(
pDTO
.
getSkuList
().
get
(
0
).
getOriginalPrice
());
spu
.
setDefaultPrice
(
pDTO
.
getSkuList
().
get
(
0
).
getOriginalPrice
());
}
}
...
@@ -250,7 +334,7 @@ public class SpuServiceImpl extends ServiceImpl<SpuMapper, Spu> implements ISpuS
...
@@ -250,7 +334,7 @@ public class SpuServiceImpl extends ServiceImpl<SpuMapper, Spu> implements ISpuS
BigDecimal
price
=
eDTO
.
getNftdto
().
getPrice
();
BigDecimal
price
=
eDTO
.
getNftdto
().
getPrice
();
spu
.
setMaxPrice
(
price
);
spu
.
setMaxPrice
(
price
);
spu
.
setDefaultPrice
(
price
);
spu
.
setDefaultPrice
(
price
);
if
(
one
.
getCommodityPass
()
==
3
){
if
(
one
.
getCommodityPass
()
==
3
)
{
spu
.
setMaxPrice
(
eDTO
.
getSkuList
().
get
(
0
).
getOriginalPrice
());
spu
.
setMaxPrice
(
eDTO
.
getSkuList
().
get
(
0
).
getOriginalPrice
());
spu
.
setDefaultPrice
(
eDTO
.
getSkuList
().
get
(
0
).
getOriginalPrice
());
spu
.
setDefaultPrice
(
eDTO
.
getSkuList
().
get
(
0
).
getOriginalPrice
());
}
}
...
@@ -484,4 +568,16 @@ public class SpuServiceImpl extends ServiceImpl<SpuMapper, Spu> implements ISpuS
...
@@ -484,4 +568,16 @@ public class SpuServiceImpl extends ServiceImpl<SpuMapper, Spu> implements ISpuS
return
list
;
return
list
;
}
}
public
void
releaseExternalToken
(
String
goodsId
)
{
List
<
GoodsSkuVO
>
skuList
=
skuService
.
getByGoodsId
(
goodsId
);
for
(
GoodsSkuVO
skuVO
:
skuList
)
{
ExternalToken
externalToken
=
externalTokenService
.
queryByComId
(
skuVO
.
getCommodityPassId
());
externalToken
.
setBindNumber
(
BigDecimal
.
ZERO
);
externalToken
.
setGoodsId
(
""
);
externalToken
.
setGoodsName
(
""
);
externalToken
.
setStatus
(
0
);
externalTokenService
.
updateById
(
externalToken
);
}
}
}
}
mall-server-admin/src/main/java/com/fzm/mall/server/admin/mq/consumer/goods_center/CoinsConsumer.java
View file @
5d7bb839
package
com
.
fzm
.
mall
.
server
.
admin
.
mq
.
consumer
.
goods_center
;
package
com
.
fzm
.
mall
.
server
.
admin
.
mq
.
consumer
.
goods_center
;
import
cn.fzm.chain.simplesdk.constant.TxStatusEnum
;
import
cn.fzm.chain.simplesdk.model.TxResult
;
import
com.fzm.mall.server.admin.block_chain.util.ChainUtil
;
import
com.fzm.mall.server.admin.chain.FzmChain
;
import
com.fzm.mall.server.admin.chain.FzmChain
;
import
com.fzm.mall.server.admin.goods_center.enums.status.SkuStatusEnum
;
import
com.fzm.mall.server.admin.goods_center.enums.status.SkuStatusEnum
;
import
com.fzm.mall.server.admin.goods_center.enums.status.SpuStatusEnum
;
import
com.fzm.mall.server.admin.goods_center.enums.status.SpuStatusEnum
;
...
@@ -26,12 +29,40 @@ public class CoinsConsumer {
...
@@ -26,12 +29,40 @@ public class CoinsConsumer {
private
final
ISpuService
spuService
;
private
final
ISpuService
spuService
;
private
final
FzmChain
fzmChain
;
private
final
FzmChain
fzmChain
;
private
final
ChainUtil
chainUtil
;
private
final
ISkuService
skuService
;
private
final
ISkuService
skuService
;
//发行
//发行
@RabbitListener
(
queues
=
"ly.issue.coins.queue"
)
@RabbitListener
(
queues
=
"ly.issue.coins.queue"
)
public
void
issueCoinsPrice
(
Map
<
String
,
Object
>
obj
)
{
public
void
issueCoinsPrice
(
Map
<
String
,
Object
>
obj
)
{
try
{
try
{
String
hash
=
(
String
)
obj
.
get
(
"hash"
);
int
stock
=
(
int
)
obj
.
get
(
"stock"
);
String
goodsId
=
(
String
)
obj
.
get
(
"goodsId"
);
String
skuId
=
(
String
)
obj
.
get
(
"skuId"
);
int
subCount
=
(
int
)
obj
.
get
(
"subCount"
);
int
total
=
(
int
)
obj
.
get
(
"total"
);
//异步确认
TxResult
tr
=
chainUtil
.
cycleConfirmTxWithHash
(
hash
);
log
.
info
(
"issue.coins.queue发行========================="
+
tr
.
getStatus
());
if
(
tr
.
getStatus
()
!=
TxStatusEnum
.
SUCCESS
)
{
log
.
error
(
"NFT发行失败,交易HASH:{},失败原因:{},交易参数:{}"
,
hash
,
tr
.
getErrMsg
(),
obj
);
spuService
.
updateStatus
(
goodsId
,
SpuStatusEnum
.
DRAFT
.
getStatus
(),
tr
.
getErrMsg
().
getValue
());
skuService
.
updateStatus
(
skuId
,
SkuStatusEnum
.
ISSUE_FAIL
.
getStatus
(),
tr
.
getErrMsg
().
getValue
());
}
else
{
log
.
info
(
"NFT发行成功"
);
Integer
status
=
spuService
.
getByGoodsId
(
goodsId
).
getStatus
();
if
(
subCount
==
total
&&
!
status
.
equals
(
SpuStatusEnum
.
DRAFT
.
getStatus
()))
{
spuService
.
updateStatus
(
goodsId
,
SpuStatusEnum
.
WAIT_CHECK
.
getStatus
(),
""
);
}
skuService
.
updateCirculation
(
skuId
,
stock
);
}
}
catch
(
Exception
e
)
{
log
.
info
(
"issue.coins.queue异常========================="
+
e
.
getMessage
());
}
/*try {
String coinName = obj.get("coinName") + "";
String coinName = obj.get("coinName") + "";
int stock = (int) ((long) obj.get("stock"));
int stock = (int) ((long) obj.get("stock"));
String tokenAddr = obj.get("tokenAddr") + "";
String tokenAddr = obj.get("tokenAddr") + "";
...
@@ -63,7 +94,8 @@ public class CoinsConsumer {
...
@@ -63,7 +94,8 @@ public class CoinsConsumer {
} catch (Exception e) {
} catch (Exception e) {
return;
return;
}
}*/
}
}
@RabbitListener
(
queues
=
"ly.change.coins.queue"
)
@RabbitListener
(
queues
=
"ly.change.coins.queue"
)
...
...
mall-server-admin/src/main/java/com/fzm/mall/server/admin/util/HttpUtil.java
View file @
5d7bb839
...
@@ -536,11 +536,26 @@ public class HttpUtil {
...
@@ -536,11 +536,26 @@ public class HttpUtil {
public
static
void
main
(
String
[]
args
)
{
public
static
void
main
(
String
[]
args
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"tokenId"
,
164129639
3
L
);
map
.
put
(
"tokenId"
,
164129639
5
L
);
String
s
=
httpGet
(
"https://nft.inmvo.com/proxyApi/open/nft/hash"
,
map
);
String
s
=
httpGet
(
"https://nft.inmvo.com/proxyApi/open/nft/hash"
,
map
);
System
.
err
.
println
(
s
);
System
.
err
.
println
(
s
);
System
.
err
.
println
(
"[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"goodsID\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct AntiCounterfeiting.AccountBalance[]\",\"name\":\"balanceList\",\"type\":\"tuple[]\"}],\"name\":\"BalanceResult\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"publisherAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"goodsID\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"int32\",\"name\":\"goodsType\",\"type\":\"int32\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"labelID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"batchNumber\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"image\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"traceHash\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"isUsed\",\"type\":\"bool\"}],\"indexed\":false,\"internalType\":\"struct AntiCounterfeiting.Goods[]\",\"name\":\"mintGoodsList\",\"type\":\"tuple[]\"}],\"name\":\"BatchMintResult\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"BatchTransferResult\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"code\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isUsed\",\"type\":\"bool\"}],\"name\":\"GoodsUsedResult\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"batchNumber\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"code\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"status\",\"type\":\"uint8\"}],\"indexed\":false,\"internalType\":\"struct AntiCounterfeiting.BatchNumberVerificationCode[]\",\"name\":\"batchNumberVerificationCodeList\",\"type\":\"tuple[]\"}],\"name\":\"VerificationCodeResult\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"goodsIDs\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"int32[]\",\"name\":\"goodsTypes\",\"type\":\"int32[]\"},{\"internalType\":\"string[]\",\"name\":\"names\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"labelIDs\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"batchNumbers\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"images\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"traceHashs\",\"type\":\"string[]\"}],\"name\":\"batchMintWithEvent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"batchTransferWithEvent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"contractDeployer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"goodsID\",\"type\":\"uint256\"}],\"name\":\"getGoodsAttribute\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"publisherAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"goodsID\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"int32\",\"name\":\"goodsType\",\"type\":\"int32\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"labelID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"batchNumber\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"image\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"traceHash\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"isUsed\",\"type\":\"bool\"}],\"internalType\":\"struct AntiCounterfeiting.Goods\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaxGoodsID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"batchNumber\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"code\",\"type\":\"string\"}],\"name\":\"getVerificationCodeStatus\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"status\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"goodsID\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"code\",\"type\":\"string\"}],\"name\":\"getVerificationCodeStatusByGoodsID\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"status\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isInMintWhiteList\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxGoodsId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setMintWhiteList\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"batchNumber\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"codes\",\"type\":\"string[]\"}],\"name\":\"setVerificationCode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"code\",\"type\":\"string\"}],\"name\":\"transferWithVerificationCode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]\n"
);
// System.err.println("[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"goodsID\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct AntiCounterfeiting.AccountBalance[]\",\"name\":\"balanceList\",\"type\":\"tuple[]\"}],\"name\":\"BalanceResult\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"publisherAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"goodsID\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"int32\",\"name\":\"goodsType\",\"type\":\"int32\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"labelID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"batchNumber\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"image\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"traceHash\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"isUsed\",\"type\":\"bool\"}],\"indexed\":false,\"internalType\":\"struct AntiCounterfeiting.Goods[]\",\"name\":\"mintGoodsList\",\"type\":\"tuple[]\"}],\"name\":\"BatchMintResult\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"BatchTransferResult\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"code\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isUsed\",\"type\":\"bool\"}],\"name\":\"GoodsUsedResult\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"batchNumber\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"code\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"status\",\"type\":\"uint8\"}],\"indexed\":false,\"internalType\":\"struct AntiCounterfeiting.BatchNumberVerificationCode[]\",\"name\":\"batchNumberVerificationCodeList\",\"type\":\"tuple[]\"}],\"name\":\"VerificationCodeResult\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"goodsIDs\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"int32[]\",\"name\":\"goodsTypes\",\"type\":\"int32[]\"},{\"internalType\":\"string[]\",\"name\":\"names\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"labelIDs\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"batchNumbers\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"images\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"traceHashs\",\"type\":\"string[]\"}],\"name\":\"batchMintWithEvent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"batchTransferWithEvent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"contractDeployer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"goodsID\",\"type\":\"uint256\"}],\"name\":\"getGoodsAttribute\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"publisherAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"goodsID\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"int32\",\"name\":\"goodsType\",\"type\":\"int32\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"labelID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"batchNumber\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"image\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"traceHash\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"isUsed\",\"type\":\"bool\"}],\"internalType\":\"struct AntiCounterfeiting.Goods\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaxGoodsID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"batchNumber\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"code\",\"type\":\"string\"}],\"name\":\"getVerificationCodeStatus\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"status\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"goodsID\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"code\",\"type\":\"string\"}],\"name\":\"getVerificationCodeStatusByGoodsID\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"status\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isInMintWhiteList\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxGoodsId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setMintWhiteList\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"batchNumber\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"codes\",\"type\":\"string[]\"}],\"name\":\"setVerificationCode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"code\",\"type\":\"string\"}],\"name\":\"transferWithVerificationCode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]\n");
//57
//58 0x4dbe81a0d1be6636f776fdd41b84a99475deb816cbd698172abdbd099800ad84 0xdb3ee9587d2bdeb7d6040a8a4db62e1b31763481cc7c7aee415bcfb0933ccb42
//59 0xe2713edc961613e020e770e77861ba07b08368afe7ea697ee13898337fe76230 0x511f355d26d84803e84feaa172fc2f26b34ddd12ed3958f91b38832d314e96ca
//60 0x5a9e76e3ac4eb73a633157df611f57153b1f676baba09746aa760ac76d68d20a 0xb5d45d4d3c8ab651f220e2dab8059a4d8e2105aca4f1eedb8a71d5023c34bb68
//61
//62
//63
//64 0x1964cb4e93b28d81e742c2fc45c2eb67b3431e3f28ecc66580b4897132d22beb 0xac8624af87c3500551d1c412cdf408a7b8135083847fb7cfcf1ddccbcc85d566
//65
//66
//67
//68
//69 0xa0ea60b5ff5725184f6f771ec99310db3d95f0405241c294a52a844e24d36bb0 0x3b8da0bb3c61cc588fb3f69ece750e29376c5d64b7d270c8f812bf244b7ecffb
//70 0x81ed9fd0b72ef100998457df964f290506d2e5590286ec09f8ec5f8e48b65d1a 0x151611fdd472a40805ad6d4de224c6f90ccc5b283e1851c068008afbc25ac034
//71
}
}
}
}
...
...
mall-server-admin/src/main/resources/application-dev.yml
View file @
5d7bb839
...
@@ -52,7 +52,7 @@ chain:
...
@@ -52,7 +52,7 @@ chain:
token-manager
:
1N2ABERwHgxGhebVw6fVSwaQ5uLAysmGEu
token-manager
:
1N2ABERwHgxGhebVw6fVSwaQ5uLAysmGEu
token-manager-key
:
0x4e92bda2477ded0e7c07a9e3acd2370de8d7401c68cc83ee8376806db3121e77
token-manager-key
:
0x4e92bda2477ded0e7c07a9e3acd2370de8d7401c68cc83ee8376806db3121e77
para
:
para
:
rpc-url
:
http://1
46.56.197.42
:12021
rpc-url
:
http://1
39.9.231.117
:12021
withhold
:
1417K9fd5vt4zYW86xinWiCbAkNP794aNy
withhold
:
1417K9fd5vt4zYW86xinWiCbAkNP794aNy
withhold-key
:
19d78691584930407e63cd35ac6e67fae6113894b41812e65847d4a365a802a0
withhold-key
:
19d78691584930407e63cd35ac6e67fae6113894b41812e65847d4a365a802a0
token-manager
:
1KEBcdmMPfUV2suAqgkyDpdm4brZbYmdfF
token-manager
:
1KEBcdmMPfUV2suAqgkyDpdm4brZbYmdfF
...
...
mall-server-admin/src/main/resources/mapper/goods_center/SkuMapper.xml
View file @
5d7bb839
...
@@ -22,6 +22,8 @@
...
@@ -22,6 +22,8 @@
<result
column=
"create_time"
property=
"createTime"
/>
<result
column=
"create_time"
property=
"createTime"
/>
<result
column=
"update_time"
property=
"updateTime"
/>
<result
column=
"update_time"
property=
"updateTime"
/>
<result
column=
"nft_sales_type"
property=
"nftSalesType"
/>
<result
column=
"nft_sales_type"
property=
"nftSalesType"
/>
<result
column=
"is_hide"
property=
"isHide"
/>
<result
column=
"token_id"
property=
"tokenId"
/>
</resultMap>
</resultMap>
</mapper>
</mapper>
mall-server-admin/src/main/resources/mapper/goods_center/SpuMapper.xml
View file @
5d7bb839
...
@@ -28,6 +28,9 @@
...
@@ -28,6 +28,9 @@
<result
column=
"hash"
property=
"hash"
/>
<result
column=
"hash"
property=
"hash"
/>
<result
column=
"create_time"
property=
"createTime"
/>
<result
column=
"create_time"
property=
"createTime"
/>
<result
column=
"update_time"
property=
"updateTime"
/>
<result
column=
"update_time"
property=
"updateTime"
/>
<result
column=
"sales_type"
property=
"salesType"
/>
<result
column=
"difficulty"
property=
"difficulty"
/>
<result
column=
"blind_box_price"
property=
"blindBoxPrice"
/>
</resultMap>
</resultMap>
<select
id=
"page"
resultType=
"com.fzm.mall.server.admin.goods_center.entity.vo.GoodsSpuVO"
>
<select
id=
"page"
resultType=
"com.fzm.mall.server.admin.goods_center.entity.vo.GoodsSpuVO"
>
...
...
mall-sql/mall_create.sql
View file @
5d7bb839
...
@@ -2517,9 +2517,26 @@ CREATE TABLE `goods_sku_usufruct` (
...
@@ -2517,9 +2517,26 @@ CREATE TABLE `goods_sku_usufruct` (
ALTER
TABLE
`order_detail`
ALTER
TABLE
`order_detail`
ADD
COLUMN
`serial_no`
JSON
NULL
DEFAULT
NULL
COMMENT
'序列号'
;
ADD
COLUMN
`serial_no`
JSON
NULL
DEFAULT
NULL
COMMENT
'序列号'
;
ALTER
TABLE
`user_asset`
ALTER
TABLE
`user_asset`
ADD
COLUMN
`goods_coin`
VARCHAR
(
32
)
NOT
NULL
DEFAULT
'0'
COMMENT
'商品coin'
;
ADD
COLUMN
`goods_coin`
VARCHAR
(
32
)
NOT
NULL
DEFAULT
'0'
COMMENT
'商品coin'
;
update
user_asset
set
goods_coin
=
coin
;
update
user_asset
set
goods_coin
=
coin
;
ALTER
TABLE
`user_asset_record`
ADD
COLUMN
`goods_coin`
varchar
(
32
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_unicode_ci
NOT
NULL
DEFAULT
''
COMMENT
'商品coin'
;
ALTER
TABLE
`user_asset_record`
ADD
COLUMN
`goods_coin`
varchar
(
32
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_unicode_ci
NOT
NULL
DEFAULT
''
COMMENT
'商品coin'
;
\ No newline at end of file
--2022-2-22
ALTER
TABLE
`goods_spu`
ADD
COLUMN
`sales_type`
tinyint
(
1
)
NOT
NULL
DEFAULT
'1'
COMMENT
'(销售方式)1.普通 2.盲盒'
;
ALTER
TABLE
`goods_sku`
ADD
COLUMN
`is_hide`
tinyint
(
1
)
NOT
NULL
COMMENT
'是否隐藏款(0.否 1.是)'
;
ALTER
TABLE
`goods_spu`
ADD
COLUMN
`difficulty`
tinyint
(
2
)
unsigned
NOT
NULL
DEFAULT
'1'
COMMENT
'盲盒商品难度(1-10)'
;
ALTER
TABLE
`goods_spu`
ADD
COLUMN
`blind_box_price`
decimal
(
10
,
2
)
unsigned
NOT
NULL
DEFAULT
0
COMMENT
'盲盒价格'
;
ALTER
TABLE
`goods_sku`
ADD
COLUMN
`token_id`
bigint
(
32
)
DEFAULT
'0'
COMMENT
'token_id'
;
,
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