package cn.jeesoft.mvc.helper; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Random; import cn.jeesoft.core.utils.StringUtils; import cn.jeesoft.mvc.model.TradeType; /** * 交易编号生成器 * @author king */ public class GenerateSN { private static final SimpleDateFormat mDateFormat = new SimpleDateFormat("yyyyMMddHHmmsss"); private static final Random mRandom = new Random(); private static final String CALL = "CN"; private static final String TRANSFER = "TN"; private static final String SHOP = "SN"; private static final String P2P = "MN"; // money private static final String PROFIT = "PN"; private static final String FEES = "FN"; private static final String RECHARGE = "RN"; private static final String WITHDRAW = "WN"; // public static String create(String prefix) { // return prefix+mDateFormat.format(new Date())+getSuffix(4); // } public static String create(TradeType type) { String prefix = null; switch (type) { case CALL: prefix = CALL; break; case TRANSFER: prefix = TRANSFER; break; case SHOP: prefix = SHOP; break; case P2P: prefix = P2P; break; case PROFIT: prefix = PROFIT; break; case FEES: prefix = FEES; break; case RECHARGE: prefix = RECHARGE; break; case WITHDRAW: prefix = WITHDRAW; break; default: prefix = null; break; } if (StringUtils.isEmpty(prefix)) { return null; } return prefix+mDateFormat.format(new Date())+getSuffix(4); } public static TradeType get(String sn) { if (StringUtils.isEmpty(sn)) { return null; } TradeType type = null; if (sn.startsWith(CALL)) { type = TradeType.CALL; } else if (sn.startsWith(TRANSFER)) { type = TradeType.TRANSFER; } else if (sn.startsWith(SHOP)) { type = TradeType.SHOP; } else if (sn.startsWith(P2P)) { type = TradeType.P2P; } else if (sn.startsWith(PROFIT)) { type = TradeType.PROFIT; } else if (sn.startsWith(FEES)) { type = TradeType.FEES; } else if (sn.startsWith(RECHARGE)) { type = TradeType.RECHARGE; } else if (sn.startsWith(WITHDRAW)) { type = TradeType.WITHDRAW; } return type; } /** * 获取后缀 * @return */ private static String getSuffix(int len) { String suffix = ""; for (int i=0; i<len; i++) { suffix += mRandom.nextInt(10); } return suffix; } }