Commit 5d7bb839 authored by wp's avatar wp

发布商品重构以及盲盒商品

parent fa88ccc7
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;
}
}
......@@ -74,7 +74,7 @@ public class NftEvm {
private static String cName = "user.evm.0x83fee8a54d0d3c981dcbcddc8fa42abe9645a2106c5583c35ffe5708659574fc";
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 withholdKey = "0xa4c49dcb35e0032dc8db5891dc81481943b68fc558ce93ce74d0382c1d104934";
private static String tokenManager = "1N2ABERwHgxGhebVw6fVSwaQ5uLAysmGEu";
......@@ -83,7 +83,16 @@ public class NftEvm {
// private static String cName = "user.evm.0xdc173544bb1876b9811d679f0dd33acc03772c6694f34a9f51b79cbae8af10f4";
private static String cName = "user.evm.0xa038a372ab27d9038328932c98454e52390b94555a69ab9559e8ab14ff2e540f";
// 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 withhold = "1417K9fd5vt4zYW86xinWiCbAkNP794aNy";
......@@ -94,7 +103,7 @@ public class NftEvm {
private static String cName = "user.p.FILMCHAIN.user.evm.0xdc173544bb1876b9811d679f0dd33acc03772c6694f34a9f51b79cbae8af10f4";
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 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";
......@@ -144,29 +153,29 @@ public class NftEvm {
//=============================================================================================
// oid pay_id status coin amount
// 20220118203105uIRfMTVdsckFtPpa2H 20220118203105263208959744302735 1
// 20220118101915XPlkMmVqS9MtkOwGE1 20220118101915790288719351862853 1
// 20220118100611G6DFEGqaOCm5WtqYkR 20220118100611484569303328077251 1
// 20220115105707EBPqGrI942gxVIrWf6 20220115105707221842481006366498 1
// 20220114222820hd7OUHXzSFSsc12K2t 20220114222820289573854028028784 1
// 20220114204244W8zVpMKqwQzNtilsBM 20220114204244595630030375890176 1
// 20220114095345VEXsaD11kPqYsXQ8Yl 20220114095345252269936047485833 1
// 20220113155553EWyYm9G8RQr1UVlj7f 20220113155553494385335129525220 1
// 20220113155544tp8YlcmjYzC8Qqd72i 20220113155544084183984528975273 1
// 20220113135218fvTfkrGTUdCyA4qhuq 20220113135218657274053058216133 1
// 20220112205835K8tPhzmYBYkHfbT0CU 20220112205835604363821385855706 1
// 20220112175111J5mAXNtAecZD4b7TW7 20220112175111743895723255869004 1
// 2022011114111073YsnlUFT3JSEzlQ4i 20220111141110236873418488730693 1
// 20220110170037VIIYi46xoMaIDLqVqJ 20220110170037844620255147496610 1
// 20220110164858FIim8xrJwXdta5jzVL 20220110164858263981305279503196 1
// 20220110164438pp0s9B0tK5X7LmtnWo 20220110164438547660913805483698 1
// 20220105194213e7KijafsxtPWL4LANF 20220105194213641454925484246629 1 164129639500000001 1
// 20220105174220HzSu6dhAM7gI41X0lL 20220105174220891225251100171019 1 1641296392 1
// 20220105174153CVaouFxDPZm3VTfSC8 20220105174153671740652521296427 1 164129639300000001 1
// 202201051637100I8UpE4tSOUXO3YtZI 20220105163710195486453355063315 1 1641365008370 1
// 20220105162303QfnZpNjfzaq306p0Sy 20220105162303481784277443720093 1 1641365008370 1
// 20220105152249tvKSqjXkLkQcPKHuw4 20220105152249723717824780290935 1 1641365008370 1
// oid pay_id status coin
// 20220118203105uIRfMTVdsckFtPpa2H 20220118203105263208959744302735 1 164129641600000029 1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg---1Gk8jFnYzJU64q6CUsknbbkiAQcoy8ntKd
// 20220118101915XPlkMmVqS9MtkOwGE1 20220118101915790288719351862853 1 164129641600000028 1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg---13gAUt8YqJf3yt2Mo7aTKgU4jd8sCeCcVa
// 20220118100611G6DFEGqaOCm5WtqYkR 20220118100611484569303328077251 1 164129641600000026, 164129641600000027, 164129641600000027 1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg---18Yc5VwfsM1DRb5ZCdAU1v3D4C78xB9gKS
// 20220115105707EBPqGrI942gxVIrWf6 20220115105707221842481006366498 1 164129641600000022, 164129641600000024, 164129641600000025] 1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg---18Yc5VwfsM1DRb5ZCdAU1v3D4C78xB9gKS |
// 20220114222820hd7OUHXzSFSsc12K2t 20220114222820289573854028028784 1 164129641600000023 1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg---1DqiUcWKRAK3WJvMqg42D8u32ZJ5YbX4He
// 20220114204244W8zVpMKqwQzNtilsBM 20220114204244595630030375890176 1 164129641600000019, 164129641600000020, 164129641600000021 1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg---18Yc5VwfsM1DRb5ZCdAU1v3D4C78xB9gKS
// 20220114095345VEXsaD11kPqYsXQ8Yl 20220114095345252269936047485833 1 164129641600000004, 164129641600000007, 164129641600000010, 164129641600000011, 164129641600000012, 164129641600000013, 164129641600000014, 164129641600000015, 164129641600000016, 164129641600000017 1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg---18Yc5VwfsM1DRb5ZCdAU1v3D4C78xB9gKS
// 20220113155553EWyYm9G8RQr1UVlj7f 20220113155553494385335129525220 1 164129641600000009 1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg---1FSG58tKcRJoMkK4ngcJD6MjWUvcPuabmK
// 20220113155544tp8YlcmjYzC8Qqd72i 20220113155544084183984528975273 1 164129641600000008 1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg---19GNCAWTs3JaZ2i6PcTAhTEuhh3C4gduCy
// 20220113135218fvTfkrGTUdCyA4qhuq 20220113135218657274053058216133 1 164129641600000005 1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg---17mUhDEWzPWwK3RBF37Ueq3pBCqfiAkCTG
// 20220112205835K8tPhzmYBYkHfbT0CU 20220112205835604363821385855706 1 164129641600000002 1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg---1Pm586wYpAyuGhBRTzeWSR2TNW6AjukZiS
// 20220112175111J5mAXNtAecZD4b7TW7 20220112175111743895723255869004 1 164129641600000001
// 2022011114111073YsnlUFT3JSEzlQ4i 20220111141110236873418488730693 1 164129639500000007
// 20220110170037VIIYi46xoMaIDLqVqJ 20220110170037844620255147496610 1 164129639500000003
// 20220110164858FIim8xrJwXdta5jzVL 20220110164858263981305279503196 1 1641804505229
// 20220110164438pp0s9B0tK5X7LmtnWo 20220110164438547660913805483698 1 1641804118765
// 20220105194213e7KijafsxtPWL4LANF 20220105194213641454925484246629 1 164129639500000001
// 20220105174220HzSu6dhAM7gI41X0lL 20220105174220891225251100171019 1 1641296392
// 20220105174153CVaouFxDPZm3VTfSC8 20220105174153671740652521296427 1 164129639300000001
// 202201051637100I8UpE4tSOUXO3YtZI 20220105163710195486453355063315 1 1641365008370
// 20220105162303QfnZpNjfzaq306p0Sy 20220105162303481784277443720093 1 1641365008370
// 20220105152249tvKSqjXkLkQcPKHuw4 20220105152249723717824780290935 1 1641365008370
//30dfdc0977e343a5919b527448a7123f 1Bfv5YPE4zPvSfWab5XSnF3DgCHMfKWEY6
//36ba783ea0394650ac28aa6e71df0784 1Bp1Lc8VepfbuY6fFaUW78LT3YNtGXzyqr
......@@ -174,36 +183,33 @@ public class NftEvm {
//d6effa7f4fef49d69989599e7ae6f125 1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg
/*long[] arr = {
164129641600000001L, 164129641600000002L, 164129641600000003L, 164129641600000004L, 164129641600000005L, 164129641600000006L, 164129641600000007L, 164129641600000008L, 164129641600000009L, 164129641600000010L,
164129641600000011L, 164129641600000012L, 164129641600000013L, 164129641600000014L, 164129641600000015L, 164129641600000016L, 164129641600000017L, 164129641600000018L, 164129641600000019L, 164129641600000020L,
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,
164129641600000051L, 164129641600000052L, 164129641600000053L, 164129641600000054L, 164129641600000055L, 164129641600000056L, 164129641600000057L, 164129641600000058L, 164129641600000059L, 164129641600000060L,
164129641600000061L, 164129641600000062L, 164129641600000063L, 164129641600000064L, 164129641600000065L, 164129641600000066L, 164129641600000067L, 164129641600000068L, 164129641600000069L, 164129641600000070L,
164129641600000071L, 164129641600000072L, 164129641600000073L, 164129641600000074L, 164129641600000075L, 164129641600000076L, 164129641600000077L, 164129641600000078L, 164129641600000079L, 164129641600000080L,
164129641600000081L, 164129641600000082L, 164129641600000083L, 164129641600000084L, 164129641600000085L, 164129641600000086L, 164129641600000087L, 164129641600000088L, 164129641600000089L, 164129641600000090L,
164129641600000091L, 164129641600000092L, 164129641600000093L, 164129641600000094L, 164129641600000095L, 164129641600000096L, 164129641600000097L, 164129641600000098L, 164129641600000099L, 164129641600000100L};
for (long ar : arr) {
String addr = "1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg";
164129641600000004L, 164129641600000007L, 164129641600000010L, 164129641600000011L, 164129641600000012L,
164129641600000013L, 164129641600000014L, 164129641600000015L, 164129641600000016L, 164129641600000017L
};*/
/*for (long ar : arr) {
String hash = ra.evmTransfer(ymabi, cAddr, EvmTokenEnum.ERC1155, 0L, "18Yc5VwfsM1DRb5ZCdAU1v3D4C78xB9gKS", ar, 1L, "transfer", "1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg", null, true);
System.err.println(hash);
System.err.println(ra.cycleConfirmTxWithHash(hash, true, 1000).getStatus());
System.err.println(ra.evmBalance(ymabi, cAddr, EvmTokenEnum.ERC1155, "18Yc5VwfsM1DRb5ZCdAU1v3D4C78xB9gKS", ar));
*//*String addr = "1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg";
long amount = 1L;
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);
System.err.println(hash);
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"));
// 164129641600000035
// long amount = 1L;
// 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, "18Yc5VwfsM1DRb5ZCdAU1v3D4C78xB9gKS", 164129641600000035L, 1L, "transfer", "1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg", null, 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, "1Pm586wYpAyuGhBRTzeWSR2TNW6AjukZiS", 164129641600000002L, 1L, "transfer", "1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg", null, true);
// System.err.println(hash);
// System.err.println(ra.cycleConfirmTxWithHash(hash, true, 1000).getStatus());
// System.err.println(ra.evmBalance(ymabi, cAddr, EvmTokenEnum.ERC1155, "1Bp1Lc8VepfbuY6fFaUW78LT3YNtGXzyqr", 1641296393L));
long l = ra.evmBalance(ymabi, cAddr, EvmTokenEnum.ERC1155, "182mR7y2EEnHG9cDpc6ik8xRtkamzeHMHr", 1641296392);
System.err.println(l);
// System.err.println(ra.evmBalance(ymabi, cAddr, EvmTokenEnum.ERC1155, "1Pm586wYpAyuGhBRTzeWSR2TNW6AjukZiS", 164129641600000002L));
// long l = ra.evmBalance(ymabi, cAddr, EvmTokenEnum.ERC1155, "182mR7y2EEnHG9cDpc6ik8xRtkamzeHMHr", 1641296392);
// System.err.println(l);
// System.err.println(ra.queryTxWithHash("0xaa66571c1f9be9fbd6d122aaf958c3f26716f9b4c2d5c47e4e2fb4488d9adc7b"));
// System.err.println(ra.evmBalance(ymabi, cAddr, EvmTokenEnum.ERC1155, "1HXLVUjfchSLwtAnLqStxYqXdhfAk6b1Vg", 1643160444340L));
......
......@@ -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.vo.*;
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.ISkuService;
import com.fzm.mall.server.admin.goods_center.service.ISpuService;
......@@ -65,17 +66,16 @@ public class SpuController {
@PostMapping("/releaseGoods/add")
public ResponseVO add(@RequestBody @Valid GoodsSpuDTO pDTO, @ApiParam(name = "adminId", value = "管理员id")
@RequestHeader String adminId) {
System.err.println("pDTO:" + pDTO);
spuService.goodsNameExist(pDTO.getName());
adminService.adminAuthChecks(adminId, AdminTypeEnum.getMerchantTypeArr());
String merchantId = adminService.getByAdminId(adminId).getMerchantId();
Merchant merchant = merchantService.getByMerchantId(merchantId);
if (merchant.getDelayDelivery().equals(GoodsConfigureEnum.IMMEDIATE_DELIVERY.status())
&& pDTO.getDelayDelivery().equals(GoodsConfigureEnum.DELAY_DELIVERY.status())) {
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);
if (template == null) {
return resFac.getResponse(MallResponseError.NULL_TEMPLATE);
......@@ -84,7 +84,17 @@ public class SpuController {
if (shopDTO == null) {
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();
}
......
......@@ -57,4 +57,7 @@ public class GoodsSkuDTO {
@ApiModelProperty("nft销售方式(1.原商品销售 2.拷贝销售)")
private Integer nftSalesType;
@ApiModelProperty("是否隐藏款(0.否 1.是)")
private Integer isHide;
}
......@@ -10,6 +10,7 @@ import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;
/**
......@@ -22,6 +23,9 @@ import java.util.List;
@ApiModel(value = "GoodsSpuDTO", description = "商品信息")
public class GoodsSpuDTO {
@ApiModelProperty("商品ID")
private String goodsId;
@ApiModelProperty("商品名称")
@NotBlank(message = MallResponseError.NULL_PARAM_ERROR)
private String name;
......@@ -52,27 +56,19 @@ public class GoodsSpuDTO {
private String imgList;
@ApiModelProperty("商品视频")
// @NotBlank(message = MallResponseError.NULL_PARAM_ERROR)
private String video;
@ApiModelProperty("视频封面")
// @NotBlank(message = MallResponseError.NULL_PARAM_ERROR)
private String videoPoster;
@ApiModelProperty("商品介绍")
@NotBlank(message = MallResponseError.NULL_PARAM_ERROR)
private String detail;
// @ApiModelProperty("快递模板")
// @NotBlank(message = MallResponseError.NULL_PARAM_ERROR)
// private String templateId;
@ApiModelProperty("商品通证(0.否 1.是,自动生成Token 2.是,使用外部既有Token 3.外部token使用权)")
// @NotNull(message = MallResponseError.NULL_PARAM_ERROR)
private Integer commodityPass;
@ApiModelProperty("延迟提货(0--否 1--是)")
// @NotNull(message = MallResponseError.NULL_PARAM_ERROR)
private Integer delayDelivery;
@ApiModelProperty("退货类型")
......@@ -87,27 +83,24 @@ public class GoodsSpuDTO {
private String note;
@ApiModelProperty("溯源信息")
// @NotBlank(message = MallResponseError.NULL_PARAM_ERROR)
private String traceabilityNumber;
@ApiModelProperty("ntf文件")
// @NotBlank(message = MallResponseError.NULL_PARAM_ERROR)
private String nftFile;
@ApiModelProperty("商品规格")
// @NotEmpty(message = MallResponseError.NULL_PARAM_ERROR)
private List<GoodsSkuDTO> skuList;
@ApiModelProperty("商品预售")
private PreSaleDTO preSaleDTO;
@ApiModelProperty("nft")
private NFTDTO nftdto;
@ApiModelProperty("商品拍卖")
private AuctionDTO auctionDTO;
@ApiModelProperty("1.普通 4.盲盒")
private Integer salesType;
@ApiModelProperty("商品拍卖")
private PackageDTO packageDTO;
@ApiModelProperty("盲盒商品难度(1-10)")
private Integer difficulty;
@ApiModelProperty("nft")
private NFTDTO nftdto;
@ApiModelProperty("盲盒价格")
private BigDecimal blindBoxPrice;
}
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;
}
......@@ -21,7 +21,8 @@ public enum SpuStatusEnum {
WAIT_CHECK(5),//待审核
CHECK_FAIL(6),//审核未通过
CHECK_PASS(7),//审核通过
CANCEL(8);//取消发布
CANCEL(8),//取消发布
DRAFT(9);//草稿
private Integer status;
......
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());
}
}
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());
}
}
......@@ -101,4 +101,12 @@ public class Sku implements Serializable {
@ApiModelProperty(value = "nft销售方式(1.原商品销售 2.拷贝销售)")
@TableField("nft_sales_type")
private Integer nftSalesType;
@ApiModelProperty(value = "是否隐藏款(0.否 1.是)")
@TableField("is_hide")
private Integer isHide;
@ApiModelProperty(value = "token_id")
@TableField("token_id")
private Long tokenId;
}
......@@ -165,5 +165,12 @@ public class Spu implements Serializable {
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
private Long updateTime;
@ApiModelProperty(value = "(销售方式)1.普通 2.盲盒")
private Integer salesType;
@ApiModelProperty(value = "盲盒商品难度(1-10)")
private Integer difficulty;
@ApiModelProperty(value = "盲盒价格")
private BigDecimal blindBoxPrice;
}
......@@ -44,4 +44,11 @@ public interface ICategorySpuService extends IService<CategorySpu> {
*/
String getByGoodsIdForId(String goodsId);
/**
* 新增商品类目
*
* @param goodsId 商品id
*/
void removeByGoodsId(String goodsId);
}
......@@ -35,4 +35,11 @@ public interface ICountService extends IService<Count> {
* @return
*/
List<SalesTopTenVO> salesTopTen(String merchantId);
/**
* 初始化商品销量
*
* @param goodsId
*/
void removeByGoodsId(String goodsId);
}
......@@ -34,4 +34,6 @@ public interface IExternalTokenService extends IService<ExternalToken> {
ExternalToken queryByLabelNameAndMerchantId(String coin, String merchantId);
List<ExternNFTVO> queryByMerchantId(String merchantId);
ExternalToken queryByComId(String comId);
}
......@@ -26,6 +26,14 @@ public interface IGoodsNftService extends IService<GoodsNft> {
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查询商品信息
*
* @param goodsId 商品id
......@@ -59,4 +67,11 @@ public interface IGoodsNftService extends IService<GoodsNft> {
* 编辑NFT商品
*/
GoodsNft queryByTokenId(String tokenId);
/**
* 根据goodsId清除商品
*
* @param goodsId 商品ID
*/
void removeByGoodsId(String goodsId);
}
......@@ -30,4 +30,10 @@ public interface ISkuPropService extends IService<SkuProp> {
*/
List<SkuPropertyVO> getBySkuId(String skuId);
/**
* 删除规格属性
*
* @param skuId 规格id
*/
void removeBySkuId(String skuId);
}
......@@ -27,7 +27,15 @@ public interface ISkuService extends IService<Sku> {
* @param merchantId 商户id
* @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> {
Sku getByCoin(String coin);
void removeByGoodsId(String goodsId);
}
package com.fzm.mall.server.admin.goods_center.service;
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.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.dto.*;
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.GoodsSpuVO;
......@@ -28,7 +25,16 @@ public interface ISpuService extends IService<Spu> {
* @param merchantId 商户id
* @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> {
* @param goodsId 商品id
* @param status 商品状态
*/
void updateStatus(String goodsId, Integer status,String errMsg);
void updateStatus(String goodsId, Integer status, String errMsg);
/**
* 分页查询商品
......
......@@ -95,4 +95,11 @@ public class CategorySpuServiceImpl extends ServiceImpl<CategorySpuMapper, Categ
return jsonArray.toJSONString();
}
@Override
public void removeByGoodsId(String goodsId) {
LambdaQueryWrapper<CategorySpu> qw = new LambdaQueryWrapper<>();
qw.eq(CategorySpu::getGoodsId, goodsId);
remove(qw);
}
}
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.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
......@@ -74,4 +75,10 @@ public class CountServiceImpl extends ServiceImpl<CountMapper, Count> implements
return salesTopTenVOS;
}
@Override
public void removeByGoodsId(String goodsId) {
LambdaQueryWrapper<Count> qw = new LambdaQueryWrapper<>();
qw.eq(Count::getGoodsId, goodsId);
remove(qw);
}
}
......@@ -158,5 +158,12 @@ public class ExternalTokenServiceImpl extends ServiceImpl<ExternalTokenMapper, E
return list(qw).stream().map(v -> beanMapper.map(v, ExternNFTVO.class))
.collect(Collectors.toList());
}
@Override
public ExternalToken queryByComId(String comId) {
LambdaQueryWrapper<ExternalToken> qw = new LambdaQueryWrapper<>();
qw.eq(ExternalToken::getCommodityPassId, comId);
return getOne(qw);
}
}
......@@ -95,6 +95,13 @@ public class GoodsNftServiceImpl extends ServiceImpl<GoodsNftMapper, GoodsNft> i
}
@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) {
LambdaQueryWrapper<GoodsNft> qw = new LambdaQueryWrapper<>();
qw.eq(GoodsNft::getGoodsId, goodsId);
......@@ -144,4 +151,11 @@ public class GoodsNftServiceImpl extends ServiceImpl<GoodsNftMapper, GoodsNft> i
qw.lambda().eq(GoodsNft::getTokenId, tokenId);
return getOne(qw);
}
@Override
public void removeByGoodsId(String goodsId) {
LambdaQueryWrapper<GoodsNft> qw = new LambdaQueryWrapper<>();
qw.eq(GoodsNft::getGoodsId, goodsId);
remove(qw);
}
}
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.extension.service.impl.ServiceImpl;
import com.fzm.mall.server.admin.constant.MallResponseError;
......@@ -57,5 +58,10 @@ public class SkuPropServiceImpl extends ServiceImpl<SkuPropMapper, SkuProp> impl
return propertyVOList;
}
@Override
public void removeBySkuId(String skuId) {
LambdaQueryWrapper<SkuProp> qw = new LambdaQueryWrapper<>();
qw.eq(SkuProp::getSkuId, skuId);
remove(qw);
}
}
......@@ -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.MallResponseError;
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.vo.GoodsPackageSkuVO;
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.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.service.IExternalTokenService;
import com.fzm.mall.server.admin.mq.enums.QueueTTLTypeEnum;
......@@ -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.util.UUIDUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.dozer.DozerBeanMapper;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -44,6 +49,7 @@ import java.util.stream.Collectors;
* @description 商品规格表 服务实现类
* @since JDK 1.8
*/
@Slf4j
@Service
@Transactional
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
......@@ -63,57 +69,57 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements ISkuS
private ChainUtil chainUtil;
@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 subCount = 0;
List<Sku> skus = new ArrayList<>();
Merchant merchant = merchantService.getByMerchantId(merchantId);
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);
String skuId = UUIDUtil.getUUID();
sku.setThumb(kDTO.getImage());
if (StringUtils.isBlank(kDTO.getImage())) {
sku.setThumb(thumb);
}
sku.setSkuId(skuId);
sku.setGoodsId(goodsId);
sku.setCoinName(coinName);
sku.setCirculation(kDTO.getStock());
if (commodityPass.equals(1) && !pDTOType.equals(6)) {
//发行商品币
if (getOne(new QueryWrapper<Sku>().lambda().eq(Sku::getCoinName, coinName)) != null) {
throw new MyException(MallResponseError.COIN_HAS_EXIST);
}
//规格属性入库
skuPropService.add(kDTO.getPropertyList(), skuId);
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.put("coinName", coinName);
map.put("stock", sku.getStock());
map.put("tokenAddr", merchant.getTokenIssueAddr());
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 (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)) {
LambdaUpdateWrapper<ExternalToken> uw = new LambdaUpdateWrapper<>();
uw.set(ExternalToken::getBindNumber, sku.getStock());
......@@ -133,7 +139,7 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements ISkuS
for (int i = 0; i < kDTO.getStock(); i++) {
String suffix = i + 1 + "";
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;
hashs[i] = hash;
}
......@@ -149,6 +155,107 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements ISkuS
}
}
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);
......@@ -497,4 +604,15 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements ISkuS
qw.lambda().eq(Sku::getCoinName, coin);
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());
});
}
}
......@@ -2,6 +2,7 @@ package com.fzm.mall.server.admin.goods_center.service.impl;
import com.alibaba.fastjson.JSON;
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.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
......@@ -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.type.CommodityPassTypeEnum;
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.model.*;
import com.fzm.mall.server.admin.goods_center.service.*;
......@@ -81,28 +84,37 @@ public class SpuServiceImpl extends ServiceImpl<SpuMapper, Spu> implements ISpuS
@Override
@Transactional
public void add(GoodsSpuDTO pDTO, String merchantId, String templateId) {
String goodsId = UUIDUtil.getUUID();
Integer pDTOType = pDTO.getType();
public void add(GoodsSpuDTO pDTO, String merchantId, String templateId, String addr) {
String goodsId = pDTO.getGoodsId();
Spu spu = getByGoodsId(goodsId);
long timestamp = System.currentTimeMillis();
//预售拍卖入库
if (pDTOType.equals(PRE_SALE.getType())) {
preSaleService.add(pDTO.getPreSaleDTO(), goodsId);
} else if (pDTOType.equals(AUCTION.getType())) {
auctionService.add(pDTO.getAuctionDTO(), goodsId);
} else if (pDTOType.equals(PACK.getType())) {
goodsPackageService.add(pDTO.getPackageDTO(), goodsId);
} else if (pDTOType.equals(NFT.getType())) {
if (pDTO.getCommodityPass() != 3) {
nftService.add(pDTO.getNftdto(), goodsId, pDTO.getName(),
merchantService.getByMerchantId(merchantId).getTokenIssueAddr(),
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);
}
Integer pDTOType = pDTO.getType();
Integer salesType = pDTO.getSalesType();
//对goodsId重新赋值并且清除预售,拍卖,规格信息
//商品类目表删除
//商品销量删除
if (spu != null) {
//还原外部绑定nft-token //TODO 加个判断
if (spu.getCommodityPass().equals(CommodityPassTypeEnum.OUT.getType()) || spu.getCommodityPass().equals(CommodityPassTypeEnum.COPY.getType())) {
releaseExternalToken(goodsId);
}
nftService.removeByGoodsId(goodsId);
skuService.removeByGoodsId(goodsId);
categorySpuService.removeByGoodsId(goodsId);
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
categorySpuService.add(ids, goodsId, merchantId);
//商品规格入库
if (!pDTOType.equals(PACK.getType())) {
skuService.add(pDTO.getSkuList(), goodsId, pDTO.getName(), merchantId, pDTO.getCommodityPass(), pDTOType);
}
skuService.add(pDTO.getSkuList(), goodsId, pDTO.getName(), merchantId, addr, pDTO.getCommodityPass(), pDTO.getThumb(), pDTOType);
Spu spu = beanMapper.map(pDTO, Spu.class);
//初始化商品信息
spu = beanMapper.map(pDTO, Spu.class);
spu.setGoodsId(goodsId);
spu.setMerchantId(merchantId);
if (pDTO.getCommodityPass() == null || pDTO.getCommodityPass().equals(0) || pDTO.getCommodityPass().equals(2) ||
(pDTO.getSkuList().get(0) != null && pDTO.getSkuList().get(0).getNftSalesType() == 1)) {
spu.setStatus(SpuStatusEnum.WAIT_CHECK.getStatus());
} else {
spu.setStatus(SpuStatusEnum.ISSUE.getStatus());
Integer status = SpuStatusEnum.WAIT_CHECK.getStatus();
if ((pDTO.getCommodityPass().equals(CommodityPassTypeEnum.COPY.getType()) && pDTO.getSkuList().get(0).getNftSalesType().equals(NFTSalesTypeEnum.COPY.getType())) || pDTO.getCommodityPass().equals(CommodityPassTypeEnum.INNER.getType())) {
status = SpuStatusEnum.ISSUE.getStatus();
}
// spu.setTemplateId(templateId);
spu.setStatus(status);
//设置商品最大最小值
if (pDTOType.equals(PACK.getType())) {
BigDecimal price = pDTO.getPackageDTO().getPrice();
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);
} 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();
spu.setMaxPrice(price);
spu.setDefaultPrice(price);
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());
}
save(spu);
} else {
Map<String, Object> price = skuService.getMaxAndMinPrice(goodsId);
spu.setMaxPrice((BigDecimal) (price.get("maxPrice")));
spu.setDefaultPrice((BigDecimal) (price.get("minPrice")));
}
if (spu.getStatus().equals(SpuStatusEnum.CHECK_PASS.getStatus()) || spu.getStatus().equals(SpuStatusEnum.CHECK_FAIL.getStatus())) {
//还原外部绑定nft-token
if (spu.getCommodityPass().equals(CommodityPassTypeEnum.OUT.getType())) {
releaseExternalToken(goodsId);
}
}
//商品类目表删除
categorySpuService.removeByGoodsId(goodsId);
//商品销量初始化
countService.init(goodsId);
//商品销量删除
countService.removeByGoodsId(goodsId);
//商品入库
save(spu);
//清除NFT信息
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
......@@ -187,7 +271,7 @@ public class SpuServiceImpl extends ServiceImpl<SpuMapper, Spu> implements ISpuS
BigDecimal price = pDTO.getNftdto().getPrice();
spu.setMaxPrice(price);
spu.setDefaultPrice(price);
if (one.getCommodityPass() == 3){
if (one.getCommodityPass() == 3) {
spu.setMaxPrice(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
BigDecimal price = eDTO.getNftdto().getPrice();
spu.setMaxPrice(price);
spu.setDefaultPrice(price);
if (one.getCommodityPass() == 3){
if (one.getCommodityPass() == 3) {
spu.setMaxPrice(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
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);
}
}
}
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.goods_center.enums.status.SkuStatusEnum;
import com.fzm.mall.server.admin.goods_center.enums.status.SpuStatusEnum;
......@@ -26,12 +29,40 @@ public class CoinsConsumer {
private final ISpuService spuService;
private final FzmChain fzmChain;
private final ChainUtil chainUtil;
private final ISkuService skuService;
//发行
@RabbitListener(queues = "ly.issue.coins.queue")
public void issueCoinsPrice(Map<String, Object> obj) {
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") + "";
int stock = (int) ((long) obj.get("stock"));
String tokenAddr = obj.get("tokenAddr") + "";
......@@ -63,7 +94,8 @@ public class CoinsConsumer {
} catch (Exception e) {
return;
}
}*/
}
@RabbitListener(queues = "ly.change.coins.queue")
......
......@@ -536,11 +536,26 @@ public class HttpUtil {
public static void main(String[] args) {
Map<String, Object> map = new HashMap<>();
map.put("tokenId", 1641296393L);
map.put("tokenId", 1641296395L);
String s = httpGet("https://nft.inmvo.com/proxyApi/open/nft/hash", map);
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
}
}
......
......@@ -52,7 +52,7 @@ chain:
token-manager: 1N2ABERwHgxGhebVw6fVSwaQ5uLAysmGEu
token-manager-key: 0x4e92bda2477ded0e7c07a9e3acd2370de8d7401c68cc83ee8376806db3121e77
para:
rpc-url: http://146.56.197.42:12021
rpc-url: http://139.9.231.117:12021
withhold: 1417K9fd5vt4zYW86xinWiCbAkNP794aNy
withhold-key: 19d78691584930407e63cd35ac6e67fae6113894b41812e65847d4a365a802a0
token-manager: 1KEBcdmMPfUV2suAqgkyDpdm4brZbYmdfF
......
......@@ -22,6 +22,8 @@
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
<result column="nft_sales_type" property="nftSalesType"/>
<result column="is_hide" property="isHide"/>
<result column="token_id" property="tokenId"/>
</resultMap>
</mapper>
......@@ -28,6 +28,9 @@
<result column="hash" property="hash"/>
<result column="create_time" property="createTime"/>
<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>
<select id="page" resultType="com.fzm.mall.server.admin.goods_center.entity.vo.GoodsSpuVO">
......
......@@ -2517,9 +2517,26 @@ CREATE TABLE `goods_sku_usufruct` (
ALTER TABLE `order_detail`
ADD COLUMN `serial_no` JSON NULL DEFAULT NULL COMMENT '序列号' ;
ALTER TABLE `user_asset`
ADD COLUMN `goods_coin` VARCHAR(32) NOT NULL DEFAULT '0' COMMENT '商品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';
\ No newline at end of file
ALTER TABLE `user_asset_record` ADD COLUMN `goods_coin` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '商品coin';
--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';
,
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment