農(nóng)場(chǎng)養(yǎng)成種植/種樹(shù)游戲系統(tǒng)開(kāi)發(fā)詳情規(guī)則丨區(qū)塊鏈DAPP種樹(shù)游戲系統(tǒng)開(kāi)發(fā)案例設(shè)計(jì)及源碼
“新零售”是企業(yè)以互聯(lián)網(wǎng)為依托,通過(guò)大數(shù)據(jù)與人工智能等先進(jìn)技術(shù)手段,對(duì)商品生產(chǎn)、流通、銷(xiāo)售等進(jìn)行升級(jí)改糙,重塑業(yè)態(tài)結(jié)構(gòu)與生態(tài)圈,對(duì)線(xiàn)上服務(wù)、線(xiàn)下體驗(yàn)進(jìn)行管理。
什么是新零售?
新零售,即企業(yè)以互聯(lián)網(wǎng)為依托,通過(guò)運(yùn)用大數(shù)據(jù)、人工智能等先進(jìn)技術(shù)手段并運(yùn)用心理學(xué)知識(shí),對(duì)商品的生產(chǎn)、流通與銷(xiāo)售過(guò)程進(jìn)行升級(jí)改造,進(jìn)而重塑業(yè)態(tài)結(jié)構(gòu)與生態(tài)圈,并對(duì)線(xiàn)上服務(wù)、線(xiàn)下體驗(yàn)以及現(xiàn)代物流進(jìn)行深度融合的零售新模式。
新零售是線(xiàn)上與線(xiàn)下結(jié)合,組合的價(jià)值主要是線(xiàn)下為線(xiàn)上引流,降低引流投入,線(xiàn)下成為線(xiàn)上的體驗(yàn)店,提高轉(zhuǎn)化和復(fù)購(gòu),線(xiàn)上和線(xiàn)下雙渠道一起提高周轉(zhuǎn),提高效率,線(xiàn)上和線(xiàn)下雖然各自核算收入和投入,但相互之間能產(chǎn)生互促效應(yīng)。
//SPDX-License-Identifier:MIT
pragma solidity^0.8.10;
import"openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";
import"openzeppelin/contracts/access/Ownable.sol";
import"openzeppelin/contracts/utils/Strings.sol";
contract NftMeta is ERC721Enumerable,Ownable{
using Strings for uint256;
bool public _isSaleActive=false;
bool public _revealed=false;
uint256 public constant MAX_SUPPLY=10;
uint256 public mintPrice=0.3 ether;
uint256 public maxBalance=1;
uint256 public maxMint=1;
string baseURI;
string public notRevealedUri;
string public baseExtension=".json";
mapping(uint256=>string)private _tokenURIs;
constructor(string memory initBaseURI,string memory initNotRevealedUri)
ERC721("Nft Meta","NM")
{
setBaseURI(initBaseURI);
setNotRevealedURI(initNotRevealedUri);
}
function mintNftMeta(uint256 tokenQuantity)public payable{
require(
totalSupply()+tokenQuantity<=MAX_SUPPLY,
"Sale would exceed max supply"
);
require(_isSaleActive,"Sale must be active to mint NicMetas");
require(
balanceOf(msg.sender)+tokenQuantity<=maxBalance,
"Sale would exceed max balance"
);
require(
tokenQuantity*mintPrice<=msg.value,
"Not enough ether sent"
);
require(tokenQuantity<=maxMint,"Can only mint 1 tokens at a time");
_mintNftMeta(tokenQuantity);
}
function _mintNftMeta(uint256 tokenQuantity)internal{
for(uint256 i=0;i<tokenQuantity;i++){
uint256 mintIndex=totalSupply();
if(totalSupply()<MAX_SUPPLY){
_safeMint(msg.sender,mintIndex);
}
function tokenURI(uint256 tokenId)
public
view
virtual
override
returns(string memory)
{