package com.java110.core.factory; import com.alibaba.fastjson.JSONObject; import com.java110.common.cache.MappingCache; import com.java110.common.constant.MappingConstant; import com.java110.common.constant.ResponseConstant; import com.java110.common.exception.GenerateCodeException; import com.java110.common.exception.ResponseErrorException; import com.java110.common.factory.ApplicationContextFactory; import com.java110.common.util.Assert; import com.java110.common.util.DateUtil; import com.java110.core.smo.code.ICodeApi; import org.springframework.web.client.RestTemplate; import java.rmi.NoSuchObjectException; import java.util.HashMap; import java.util.Map; import java.util.Random; import java.util.UUID; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /** * 生成序列工具类 * Created by wuxw on 2017/2/27. */ public class GenerateCodeFactory { private static final long ONE_STEP = 1000000; private static final Lock LOCK = new ReentrantLock(); private static short lastCount = 1; private static int count = 0; private static final String first = "10"; //10+yyyymmdd+八位序列 public static final String CODE_PREFIX_oId = "10"; public static final String CODE_PREFIX_bId = "20"; public static final String CODE_PREFIX_attrId = "11"; public static final String CODE_PREFIX_transactionId = "1000001"; public static final String CODE_PREFIX_pageTransactionId = "1000002"; public static final String CODE_PREFIX_dataFlowId = "2000"; public static final String CODE_PREFIX_userId = "30"; public static final String CODE_PREFIX_storeId = "40"; public static final String CODE_PREFIX_storePhotoId = "41"; public static final String CODE_PREFIX_storeCerdentialsId = "42"; public static final String CODE_PREFIX_memberStoreId = "43"; public static final String CODE_PREFIX_propertyStoreId = "44"; public static final String CODE_PREFIX_storeUserId = "45"; public static final String CODE_PREFIX_shopId = "50"; public static final String CODE_PREFIX_shopAttrId = "51"; public static final String CODE_PREFIX_shopPhotoId = "52"; public static final String CODE_PREFIX_shopAttrParamId = "53"; public static final String CODE_PREFIX_shopPreferentialId = "54"; public static final String CODE_PREFIX_shopDescId = "55"; public static final String CODE_PREFIX_shopCatalogId = "56"; public static final String CODE_PREFIX_buyId = "57"; public static final String CODE_PREFIX_buyAttrId = "58"; public static final String CODE_PREFIX_commentId = "60"; public static final String CODE_PREFIX_subCommentId = "61"; public static final String CODE_PREFIX_subCommentAttrId = "62"; public static final String CODE_PREFIX_commentPhotoId = "63"; public static final String CODE_PREFIX_commentScoreId = "64"; public static final String CODE_PREFIX_communityId = "70"; public static final String CODE_PREFIX_communityPhotoId = "71"; public static final String CODE_PREFIX_communityMemberId = "72"; public static final String CODE_PREFIX_agentId = "80"; public static final String CODE_PREFIX_agentPhotoId = "81"; public static final String CODE_PREFIX_agentCerdentialsId = "82"; public static final String CODE_PREFIX_agentUserId = "83"; public static final String CODE_PREFIX_feeId = "90"; public static final String CODE_PREFIX_detailId = "91"; public static final String CODE_PREFIX_configId = "92"; public static final String CODE_PREFIX_propertyUserId = "93"; public static final String CODE_PREFIX_propertyFeeId = "94"; public static final String CODE_PREFIX_houseId = "95"; public static final String CODE_PREFIX_pgId = "600"; public static final String CODE_PREFIX_floorId = "73"; public static final String CODE_PREFIX_unitId = "74"; public static final String CODE_PREFIX_roomId = "75"; public static final String CODE_PREFIX_roomAttrId = "76"; public static final String CODE_PREFIX_ownerId = "77"; public static final String CODE_PREFIX_ownerRoomRelId = "78"; /** * 只有在不调用服务生成ID时有用 */ private static Map prefixMap = null; static { prefixMap = new HashMap(); //10+yyyymmdd+八位序列 prefixMap.put("oId", "10"); //(20+yyyymmdd+八位序列) prefixMap.put("bId", "20"); //(11+yyyymmdd+八位序列) prefixMap.put("attrId", "11"); prefixMap.put("transactionId", "1000001"); prefixMap.put("pageTransactionId", "1000002"); prefixMap.put("dataFlowId", "2000"); prefixMap.put("userId", "30"); prefixMap.put("storeId", "40"); prefixMap.put("storePhotoId", "41"); prefixMap.put("storeCerdentialsId", "42"); prefixMap.put("memberStoreId", "43"); prefixMap.put("propertyStoreId", "44"); prefixMap.put("storeUserId", "45"); prefixMap.put("shopId", "50"); prefixMap.put("shopAttrId", "51"); prefixMap.put("shopPhotoId", "52"); prefixMap.put("shopAttrParamId", "53"); prefixMap.put("shopPreferentialId", "54"); prefixMap.put("shopDescId", "55"); prefixMap.put("shopCatalogId", "56"); prefixMap.put("buyId", "57"); prefixMap.put("buyAttrId", "58"); prefixMap.put("commentId", "60"); prefixMap.put("subCommentId", "61"); prefixMap.put("subCommentAttrId", "62"); prefixMap.put("commentPhotoId", "63"); prefixMap.put("commentScoreId", "64"); prefixMap.put("communityId", "70"); prefixMap.put("communityPhotoId", "71"); prefixMap.put("communityMemberId", "72"); prefixMap.put("agentId", "80"); prefixMap.put("agentPhotoId", "81"); prefixMap.put("agentCerdentialsId", "82"); prefixMap.put("agentUserId", "83"); prefixMap.put("propertyId", "90"); prefixMap.put("propertyPhotoId", "91"); prefixMap.put("propertyCerdentialsId", "92"); prefixMap.put("propertyUserId", "93"); prefixMap.put("propertyFeeId", "94"); prefixMap.put("houseId", "95"); prefixMap.put("pgId", "600"); } private static String PLATFORM_CODE = "0001"; @SuppressWarnings("finally") public static String nextId(String idLength) { LOCK.lock(); try { if (lastCount == ONE_STEP) { lastCount = 1; } count = lastCount++; } finally { LOCK.unlock(); return getRandom() + String.format(idLength, count); } } public static String nextId() { return nextId("%04d"); } /** * 获取交易流水ID * * @return */ public static String getTransactionId() { //从内存中获取平台随机码 return prefixMap.get("transactionId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId(); } /** * 获取内部平台 交易流水 * * @return * @throws NoSuchObjectException */ public static String getInnerTransactionId() throws Exception { return codeApi().generateCode(prefixMap.get("transactionId")); } /** * 获取交易流水ID * * @return */ public static String getPageTransactionId() { //从内存中获取平台随机码 return prefixMap.get("pageTransactionId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId(); } /** * pgId生成 * * @return * @throws GenerateCodeException */ public static String getGeneratorId(String prefix) throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefix + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%04d"); } //调用服务 return getCode(prefix); } public static String getOId() throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefixMap.get("oId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%04d"); } return getCode(prefixMap.get("oId")); } /** * 查询Code * * @param prefix * @return * @throws GenerateCodeException */ private static String getCode(String prefix) throws GenerateCodeException { //调用服务 String code = "-1"; try { String responseMessage = restTemplate().postForObject(MappingCache.getValue(MappingConstant.KEY_CODE_PATH), createCodeRequestJson(getTransactionId(), prefix, prefix).toJSONString(), String.class); if (ResponseConstant.RESULT_CODE_ERROR.equals(responseMessage)) { throw new ResponseErrorException(ResponseConstant.RESULT_CODE_ERROR, "生成oId编码失败"); } Assert.jsonObjectHaveKey(responseMessage, "code", "编码生成系统 返回报文错误" + responseMessage); JSONObject resJson = JSONObject.parseObject(responseMessage); if (!ResponseConstant.RESULT_CODE_SUCCESS.equals(resJson.getString("code"))) { throw new ResponseErrorException(resJson.getString("code"), "生成oId编码失败 " + resJson.getString("message")); } code = resJson.getString("id"); } catch (Exception e) { throw new GenerateCodeException(ResponseConstant.RESULT_CODE_ERROR, e.getMessage()); } finally { return code; } } public static String getBId() throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefixMap.get("bId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%04d"); } //调用服务 return getCode(prefixMap.get("bId")); } public static String getAttrId() throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefixMap.get("attrId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%04d"); } //调用服务 return getCode(prefixMap.get("attrId")); } /** * 生成dataFlowId * * @return * @throws GenerateCodeException */ public static String getDataFlowId() throws GenerateCodeException { return UUID.randomUUID().toString().replace("-", "").toLowerCase(); } public static String getUserId() throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefixMap.get("userId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%04d"); } //调用服务 return getCode(prefixMap.get("userId")); } public static String getStoreId() throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefixMap.get("storeId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%04d"); } //调用服务 return getCode(prefixMap.get("storeId")); } public static String getMemberStoreId() throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefixMap.get("memberStoreId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%04d"); } //调用服务 return getCode(prefixMap.get("memberStoreId")); } public static String getStorePhotoId() throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefixMap.get("storePhotoId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%04d"); } //调用服务 return getCode(prefixMap.get("storePhotoId")); } /** * @return * @throws GenerateCodeException */ public static String getStoreCerdentialsId() throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefixMap.get("storeCerdentialsId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%04d"); } //调用服务 return getCode(prefixMap.get("storeCerdentialsId")); } /** * @return * @throws GenerateCodeException */ public static String getStoreUserId() throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefixMap.get("storeUserId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%04d"); } //调用服务 return getCode(prefixMap.get("storeUserId")); } /** * 获取小区ID * * @return * @throws GenerateCodeException */ public static String getCommunityId() throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefixMap.get("communityId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%04d"); } //调用服务 return getCode(prefixMap.get("communityId")); } /** * 获取小区照片ID * * @return * @throws GenerateCodeException */ public static String getCommunityPhotoId() throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefixMap.get("communityPhotoId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%04d"); } //调用服务 return getCode(prefixMap.get("communityPhotoId")); } /** * 生成小区成员ID * * @return * @throws GenerateCodeException */ public static String getCommunityMemberId() throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefixMap.get("communityMemberId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%04d"); } //调用服务 return getCode(prefixMap.get("communityMemberId")); } /** * 获取小区ID * * @return * @throws GenerateCodeException */ public static String getAgentId() throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefixMap.get("agentId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%04d"); } //调用服务 return getCode(prefixMap.get("agentId")); } /** * 获取小区照片ID * * @return * @throws GenerateCodeException */ public static String getAgentPhotoId() throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefixMap.get("agentPhotoId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%04d"); } //调用服务 return getCode(prefixMap.get("agentPhotoId")); } /** * @return * @throws GenerateCodeException */ public static String getAgentCerdentialsId() throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefixMap.get("agentCerdentialsId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%04d"); } //调用服务 return getCode(prefixMap.get("agentCerdentialsId")); } /** * @return * @throws GenerateCodeException */ public static String getAgentUserId() throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefixMap.get("agentUserId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%04d"); } //调用服务 return getCode(prefixMap.get("agentUserId")); } /** * 获取小区ID * * @return * @throws GenerateCodeException */ public static String getPropertyId() throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefixMap.get("propertyId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%04d"); } //调用服务 return getCode(prefixMap.get("propertyId")); } /** * 获取小区照片ID * * @return * @throws GenerateCodeException */ public static String getPropertyPhotoId() throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefixMap.get("propertyPhotoId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%04d"); } //调用服务 return getCode(prefixMap.get("propertyPhotoId")); } /** * @return * @throws GenerateCodeException */ public static String getPropertyCerdentialsId() throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefixMap.get("propertyCerdentialsId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%04d"); } //调用服务 return getCode(prefixMap.get("propertyCerdentialsId")); } /** * @return * @throws GenerateCodeException */ public static String getPropertyUserId() throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefixMap.get("propertyUserId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%04d"); } //调用服务 return getCode(prefixMap.get("propertyUserId")); } /** * 物业费用ID生成 * * @return * @throws GenerateCodeException */ public static String getPropertyFeeId() throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefixMap.get("propertyFeeId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H + nextId("%04d")); } return getCode(prefixMap.get("propertyFeeId")); } /** * 住户ID生成 * * @return * @throws GenerateCodeException */ public static String getHouseId() throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefixMap.get("houseId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H + nextId("%04d")); } return getCode(prefixMap.get("houseId")); } /** * 商品ID生成 * * @return * @throws GenerateCodeException */ public static String getShopId() throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefixMap.get("shopId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%04d"); } //调用服务 return getCode(prefixMap.get("shopId")); } /** * 商品属性ID生成 * * @return * @throws GenerateCodeException */ public static String getShopAttrId() throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefixMap.get("shopAttrId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%04d"); } //调用服务 return getCode(prefixMap.get("shopAttrId")); } /** * 商品优惠ID生成 * * @return * @throws GenerateCodeException */ public static String getShopPreferentialId() throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefixMap.get("shopPreferentialId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%04d"); } //调用服务 return getCode(prefixMap.get("shopPreferentialId")); } /** * 商品属性参数ID生成 * * @return * @throws GenerateCodeException */ public static String getShopAttrParamId() throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefixMap.get("shopAttrParamId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%04d"); } //调用服务 return getCode(prefixMap.get("shopAttrParamId")); } /** * 商品属性参数ID生成 * * @return * @throws GenerateCodeException */ public static String getCommentPhotoId() throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefixMap.get("commentPhotoId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%04d"); } //调用服务 return getCode(prefixMap.get("commentPhotoId")); } /** * 商品属性ID生成 * * @return * @throws GenerateCodeException */ public static String getShopPhotoId() throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefixMap.get("shopPhotoId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%04d"); } //调用服务 return getCode(prefixMap.get("shopPhotoId")); } /** * 商品描述ID生成 * * @return * @throws GenerateCodeException */ public static String getShopDescId() throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefixMap.get("shopDescId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%04d"); } //调用服务 return getCode(prefixMap.get("shopDescId")); } /** * 商品目录ID生成 * * @return * @throws GenerateCodeException */ public static String getShopCatalogId() throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefixMap.get("shopCatalogId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%04d"); } //调用服务 return getCode(prefixMap.get("shopCatalogId")); } /** * 商品buyID生成 * * @return * @throws GenerateCodeException */ public static String getShopBuyId() throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefixMap.get("buyId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%04d"); } //调用服务 return getCode(prefixMap.get("buyId")); } /** * 商品buyAttrID生成 * * @return * @throws GenerateCodeException */ public static String getShopBuyAttrId() throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefixMap.get("buyAttrId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%04d"); } //调用服务 return getCode(prefixMap.get("buyAttrId")); } /** * 评论ID生成 * * @return * @throws GenerateCodeException */ public static String getCommentId() throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefixMap.get("commentId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%04d"); } //调用服务 return getCode(prefixMap.get("commentId")); } /** * 评论ID生成 * * @return * @throws GenerateCodeException */ public static String getSubCommentId() throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefixMap.get("subCommentId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%04d"); } //调用服务 return getCode(prefixMap.get("subCommentId")); } /** * 评论ID生成 * * @return * @throws GenerateCodeException */ public static String getSubCommentAttrId() throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefixMap.get("subCommentAttrId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%04d"); } //调用服务 return getCode(prefixMap.get("subCommentAttrId")); } /** * commentScoreId生成 * * @return * @throws GenerateCodeException */ public static String getCommentScoreId() throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefixMap.get("commentScoreId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%04d"); } //调用服务 return getCode(prefixMap.get("commentScoreId")); } /** * pgId生成 * * @return * @throws GenerateCodeException */ public static String getPgId() throws GenerateCodeException { if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) { return prefixMap.get("pgId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%04d"); } //调用服务 return getCode(prefixMap.get("pgId")); } /** * 获取restTemplate * * @return * @throws NoSuchObjectException */ private static RestTemplate restTemplate() throws NoSuchObjectException { Object bean = ApplicationContextFactory.getBean("restTemplate"); if (bean == null) { throw new NoSuchObjectException("没有找到restTemplate对象,请核实"); } return (RestTemplate) bean; } /** * 获取codeApi * * @return * @throws NoSuchObjectException */ private static ICodeApi codeApi() throws NoSuchObjectException { Object bean = ApplicationContextFactory.getBean(ICodeApi.class.getName()); if (bean == null) { throw new NoSuchObjectException("codeApi,请核实"); } return (ICodeApi) bean; } /** * ID生成请求报文 * * @param transactionId * @return */ private static JSONObject createCodeRequestJson(String transactionId, String prefix, String name) { JSONObject paramOut = JSONObject.parseObject("{}"); paramOut.put("transactionId", transactionId); paramOut.put("prefix", prefix); paramOut.put("name", name); paramOut.put("requestTime", DateUtil.getNowDefault()); return paramOut; } /** * 获取随机数 * * @return */ private static String getRandom() { Random random = new Random(); String result = ""; for (int i = 0; i < 4; i++) { result += random.nextInt(10); } return result; } }