Commit 4ef9fabd by linboxuan

tj

parent 1c131b9d
...@@ -77,5 +77,14 @@ class OpNeed extends APIBase { ...@@ -77,5 +77,14 @@ class OpNeed extends APIBase {
} }
return opResult; return opResult;
} }
async opSubmitNeed(pobj, qobj, req) {
pobj.actionBody = {
type: pobj.type,
mobile: pobj.mobile,
userName: pobj.userName
}
return await this.utilsOpNeedSve.opSubmitNeed(pobj, pobj.actionBody);
}
} }
module.exports = OpNeed; module.exports = OpNeed;
\ No newline at end of file
...@@ -68,5 +68,13 @@ class ProductAPI extends WEBBase { ...@@ -68,5 +68,13 @@ class ProductAPI extends WEBBase {
return opResult; return opResult;
} }
async getProductList(pobj, action_type, req) {
pobj.actionBody = {
pathCode: pobj.pathCode
}
return await this.utilsProductSve.getProductList(pobj, pobj);
}
} }
module.exports = ProductAPI; module.exports = ProductAPI;
\ No newline at end of file
...@@ -32,7 +32,7 @@ class UtilsOpNeedService extends AppServiceBase { ...@@ -32,7 +32,7 @@ class UtilsOpNeedService extends AppServiceBase {
if (opResult.status != 0) { if (opResult.status != 0) {
return system.getResultFail(-5015, "需求类型查询失败"); return system.getResultFail(-5015, "需求类型查询失败");
} }
pobj.actionBody.service_product_id= opResult.data.service_product_id; pobj.actionBody.service_product_id = opResult.data.service_product_id;
pobj.actionBody.productId = opResult.data.service_product_id; pobj.actionBody.productId = opResult.data.service_product_id;
pobj.actionBody.appName = pobj.appInfo.app_name; pobj.actionBody.appName = pobj.appInfo.app_name;
pobj.actionBody.type_code = opResult.data.type_code; pobj.actionBody.type_code = opResult.data.type_code;
...@@ -45,9 +45,7 @@ class UtilsOpNeedService extends AppServiceBase { ...@@ -45,9 +45,7 @@ class UtilsOpNeedService extends AppServiceBase {
var reqUrl = this.centerOrderUrl + "action/opNeed/springBoard"; var reqUrl = this.centerOrderUrl + "action/opNeed/springBoard";
var result = await this.restPostUrl(pobj, reqUrl); var result = await this.restPostUrl(pobj, reqUrl);
if (result.status == 0) { if (result.status == 0) {
if (pobj.actionBody.channel_type_code == "esp.companyreg" || pobj.actionBody.channel_type_code == "esp.companyreg_cloud") { this.utilsPushSve.business2Channel(pobj, "pushNeedBusiness");
this.utilsPushSve.business2Channel(pobj, "pushNeedBusiness");
}
} }
return result; return result;
} }
...@@ -94,7 +92,7 @@ class UtilsOpNeedService extends AppServiceBase { ...@@ -94,7 +92,7 @@ class UtilsOpNeedService extends AppServiceBase {
return result; return result;
} }
async getNeedList(pobj, actionBody){ async getNeedList(pobj, actionBody) {
// pobj. // pobj.
var reqUrl = this.centerOrderUrl + "action/need/springBoard"; var reqUrl = this.centerOrderUrl + "action/need/springBoard";
var result = await this.restPostUrl(pobj, reqUrl); var result = await this.restPostUrl(pobj, reqUrl);
...@@ -242,47 +240,47 @@ class UtilsOpNeedService extends AppServiceBase { ...@@ -242,47 +240,47 @@ class UtilsOpNeedService extends AppServiceBase {
* @param pobj * @param pobj
* @returns {Promise<void>} * @returns {Promise<void>}
*/ */
async getStatisticsByUappId(pobj){ async getStatisticsByUappId(pobj) {
let url = this.centerOrderUrl + "action/opNeed/springBoard"; let url = this.centerOrderUrl + "action/opNeed/springBoard";
let result = await this.restPostUrl(pobj, url); let result = await this.restPostUrl(pobj, url);
if(result.status != 0){ if (result.status != 0) {
return system.getResultFail(-1); return system.getResultFail(-1);
} }
let data = result.data; let data = result.data;
let temp=0; let temp = 0;
let arr = []; let arr = [];
let reArr = []; let reArr = [];
for(let i=0;i<data.length;i++){ for (let i = 0; i < data.length; i++) {
if((temp != data[i].uapp_id && temp !=0)){ if ((temp != data[i].uapp_id && temp != 0)) {
let obj = { let obj = {
uapp_id:temp, uapp_id: temp,
data:arr data: arr
} }
reArr.push(obj); reArr.push(obj);
arr =[]; arr = [];
} }
let dArr = { let dArr = {
time:data[i].time, time: data[i].time,
count:data[i].count count: data[i].count
} }
arr.push(dArr); arr.push(dArr);
temp = data[i].uapp_id; temp = data[i].uapp_id;
if (i == data.length-1){ if (i == data.length - 1) {
let obj = { let obj = {
uapp_id:temp, uapp_id: temp,
data:arr data: arr
} }
reArr.push(obj); reArr.push(obj);
} }
} }
reArr.sort((a,b) =>{ reArr.sort((a, b) => {
return a.uapp_id - b.uapp_id; return a.uapp_id - b.uapp_id;
}) })
let temp2 = 0; let temp2 = 0;
let arr2=[]; let arr2 = [];
let final = []; let final = [];
for(let i =0;i<reArr.length;i++){ for (let i = 0; i < reArr.length; i++) {
if((temp2 != reArr[i].uapp_id && temp2 !=0)){ if ((temp2 != reArr[i].uapp_id && temp2 != 0)) {
let o = { let o = {
uapp_id: temp2, uapp_id: temp2,
data: arr2 data: arr2
...@@ -293,10 +291,10 @@ class UtilsOpNeedService extends AppServiceBase { ...@@ -293,10 +291,10 @@ class UtilsOpNeedService extends AppServiceBase {
console.log(reArr[i].data) console.log(reArr[i].data)
arr2 = arr2.concat(reArr[i].data); arr2 = arr2.concat(reArr[i].data);
temp2 = reArr[i].uapp_id; temp2 = reArr[i].uapp_id;
if (i == reArr.length-1){ if (i == reArr.length - 1) {
let obj = { let obj = {
uapp_id:temp2, uapp_id: temp2,
data:arr2 data: arr2
} }
final.push(obj); final.push(obj);
} }
...@@ -309,7 +307,7 @@ class UtilsOpNeedService extends AppServiceBase { ...@@ -309,7 +307,7 @@ class UtilsOpNeedService extends AppServiceBase {
* @param pobj * @param pobj
* @returns {Promise<void>} * @returns {Promise<void>}
*/ */
async getNeedFunnelStatistics(pobj){ async getNeedFunnelStatistics(pobj) {
let url = this.centerOrderUrl + "action/opNeed/springBoard"; let url = this.centerOrderUrl + "action/opNeed/springBoard";
let result = await this.restPostUrl(pobj, url); let result = await this.restPostUrl(pobj, url);
return result; return result;
...@@ -320,35 +318,35 @@ class UtilsOpNeedService extends AppServiceBase { ...@@ -320,35 +318,35 @@ class UtilsOpNeedService extends AppServiceBase {
* @param pobj * @param pobj
* @returns {Promise<void>} * @returns {Promise<void>}
*/ */
async getStatisticsByProduct(pobj){ async getStatisticsByProduct(pobj) {
let url = this.centerOrderUrl + "action/opNeed/springBoard"; let url = this.centerOrderUrl + "action/opNeed/springBoard";
let result = await this.restPostUrl(pobj, url); let result = await this.restPostUrl(pobj, url);
if(result.status != 0){ if (result.status != 0) {
return system.getResultFail(-1); return system.getResultFail(-1);
} }
let data = result.data; let data = result.data;
let temp=""; let temp = "";
let arr = []; let arr = [];
let reArr = []; let reArr = [];
for(let i=0;i<data.length;i++){ for (let i = 0; i < data.length; i++) {
if((temp != data[i].typeCode && temp !="")){ if ((temp != data[i].typeCode && temp != "")) {
let obj = { let obj = {
type_code:temp, type_code: temp,
data:arr data: arr
} }
reArr.push(obj); reArr.push(obj);
arr =[]; arr = [];
} }
let dArr = { let dArr = {
uapp_id:data[i].uapp_id, uapp_id: data[i].uapp_id,
count:data[i].count count: data[i].count
} }
arr.push(dArr); arr.push(dArr);
temp = data[i].typeCode; temp = data[i].typeCode;
if (i == data.length-1){ if (i == data.length - 1) {
let obj = { let obj = {
type_code:temp, type_code: temp,
data:arr data: arr
} }
reArr.push(obj); reArr.push(obj);
} }
...@@ -361,35 +359,35 @@ class UtilsOpNeedService extends AppServiceBase { ...@@ -361,35 +359,35 @@ class UtilsOpNeedService extends AppServiceBase {
* @param pobj * @param pobj
* @returns {Promise<void>} * @returns {Promise<void>}
*/ */
async getStatisticsByChannel(pobj){ async getStatisticsByChannel(pobj) {
let url = this.centerOrderUrl + "action/opNeed/springBoard"; let url = this.centerOrderUrl + "action/opNeed/springBoard";
let result = await this.restPostUrl(pobj, url); let result = await this.restPostUrl(pobj, url);
if(result.status != 0){ if (result.status != 0) {
return system.getResultFail(-1); return system.getResultFail(-1);
} }
let data = result.data; let data = result.data;
let temp=""; let temp = "";
let arr = []; let arr = [];
let reArr = []; let reArr = [];
for(let i=0;i<data.length;i++){ for (let i = 0; i < data.length; i++) {
if((temp != data[i].uapp_id && temp !="")){ if ((temp != data[i].uapp_id && temp != "")) {
let obj = { let obj = {
uapp_id:temp, uapp_id: temp,
data:arr data: arr
} }
reArr.push(obj); reArr.push(obj);
arr =[]; arr = [];
} }
let dArr = { let dArr = {
typeCode:data[i].typeCode, typeCode: data[i].typeCode,
count:data[i].count count: data[i].count
} }
arr.push(dArr); arr.push(dArr);
temp = data[i].uapp_id; temp = data[i].uapp_id;
if (i == data.length-1){ if (i == data.length - 1) {
let obj = { let obj = {
uapp_id:temp, uapp_id: temp,
data:arr data: arr
} }
reArr.push(obj); reArr.push(obj);
} }
...@@ -402,10 +400,10 @@ class UtilsOpNeedService extends AppServiceBase { ...@@ -402,10 +400,10 @@ class UtilsOpNeedService extends AppServiceBase {
* @param pobj * @param pobj
* @returns {Promise<void>} * @returns {Promise<void>}
*/ */
async getNeedProductType(pobj){ async getNeedProductType(pobj) {
let url = this.centerOrderUrl + "action/opNeed/springBoard"; let url = this.centerOrderUrl + "action/opNeed/springBoard";
let result = await this.restPostUrl(pobj, url); let result = await this.restPostUrl(pobj, url);
if(result.status != 0){ if (result.status != 0) {
return system.getResultFail(-1); return system.getResultFail(-1);
} }
return result; return result;
...@@ -416,10 +414,10 @@ class UtilsOpNeedService extends AppServiceBase { ...@@ -416,10 +414,10 @@ class UtilsOpNeedService extends AppServiceBase {
* @param pobj * @param pobj
* @returns {Promise<void>} * @returns {Promise<void>}
*/ */
async getNeedComparison(pobj){ async getNeedComparison(pobj) {
let url = this.centerOrderUrl + "action/opNeed/springBoard"; let url = this.centerOrderUrl + "action/opNeed/springBoard";
let result = await this.restPostUrl(pobj, url); let result = await this.restPostUrl(pobj, url);
if(result.status != 0){ if (result.status != 0) {
return system.getResultFail(-1); return system.getResultFail(-1);
} }
return result; return result;
...@@ -430,35 +428,35 @@ class UtilsOpNeedService extends AppServiceBase { ...@@ -430,35 +428,35 @@ class UtilsOpNeedService extends AppServiceBase {
* @param pobj * @param pobj
* @returns {Promise<void>} * @returns {Promise<void>}
*/ */
async getStatisticsByArea(pobj){ async getStatisticsByArea(pobj) {
let url = this.centerOrderUrl + "action/opNeed/springBoard"; let url = this.centerOrderUrl + "action/opNeed/springBoard";
let result = await this.restPostUrl(pobj, url); let result = await this.restPostUrl(pobj, url);
if(result.status != 0){ if (result.status != 0) {
return system.getResultFail(-1); return system.getResultFail(-1);
} }
let data = result.data; let data = result.data;
let temp=""; let temp = "";
let arr = []; let arr = [];
let reArr = []; let reArr = [];
for(let i=0;i<data.length;i++){ for (let i = 0; i < data.length; i++) {
if((temp != data[i].province && temp !="")){ if ((temp != data[i].province && temp != "")) {
let obj = { let obj = {
province:temp, province: temp,
data:arr data: arr
} }
reArr.push(obj); reArr.push(obj);
arr =[]; arr = [];
} }
let dArr = { let dArr = {
type_code:data[i].typeCode, type_code: data[i].typeCode,
count:data[i].count count: data[i].count
} }
arr.push(dArr); arr.push(dArr);
temp = data[i].province; temp = data[i].province;
if (i == data.length-1){ if (i == data.length - 1) {
let obj = { let obj = {
province:temp, province: temp,
data:arr data: arr
} }
reArr.push(obj); reArr.push(obj);
} }
...@@ -471,7 +469,7 @@ class UtilsOpNeedService extends AppServiceBase { ...@@ -471,7 +469,7 @@ class UtilsOpNeedService extends AppServiceBase {
* @param pobj * @param pobj
* @returns {Promise<void>} * @returns {Promise<void>}
*/ */
async getNeedComparisonList(pobj){ async getNeedComparisonList(pobj) {
let url = this.centerOrderUrl + "action/opNeed/springBoard"; let url = this.centerOrderUrl + "action/opNeed/springBoard";
let result = await this.restPostUrl(pobj, url); let result = await this.restPostUrl(pobj, url);
return result; return result;
...@@ -488,7 +486,7 @@ class UtilsOpNeedService extends AppServiceBase { ...@@ -488,7 +486,7 @@ class UtilsOpNeedService extends AppServiceBase {
return jsonarr; return jsonarr;
} }
//2020 0826 lin 测试使用 //2020 0826 lin 测试使用
async test(pobj, actionBody){ async test(pobj, actionBody) {
pobj.actionType = "receiveIcpStatusNotify"; pobj.actionType = "receiveIcpStatusNotify";
var url = settings.centerOrderUrl() + "action/qcapi/springBoard"; var url = settings.centerOrderUrl() + "action/qcapi/springBoard";
var rtn = await this.restPostUrl(pobj, url); var rtn = await this.restPostUrl(pobj, url);
......
module.exports = { module.exports = {
PDICT: { PDICT: {
encrypt_key: "202006242013DDD90880", encrypt_key: "202006242013DDD90880",
encrypt_secret: "25455136E3BCA24335C3142C72D90990", encrypt_secret: "25455136E3BCA24335C3142C72D90990",
secret_prefix: "CENTERAPP", secret_prefix: "CENTERAPP",
token_secret_dev: "1E15FB63A004635A9BFB66BFA0637E99",//dev token_secret_dev: "1E15FB63A004635A9BFB66BFA0637E99",//dev
token_secret_prod: "25455136E3BCA24335C3142C72D88990",//prod token_secret_prod: "25455136E3BCA24335C3142C72D88990",//prod
webMustUserpinList: ["serviceProviderSubmitMaterial", "closeOrderDelivery", "serviceProviderNotification", "tmConfirm", "getNeedSolutionDetailByUser", webMustUserpinList: ["serviceProviderSubmitMaterial", "closeOrderDelivery", "serviceProviderNotification", "tmConfirm", "getNeedSolutionDetailByUser",
"getProgrammeInfoByChannelNeedNo", "submitIcpProgramme", "submitIcpMaterial", "acceptIcpPartnerNotification", "abolishIcpProgramme", "getProgrammeInfoByChannelNeedNo", "submitIcpProgramme", "submitIcpMaterial", "acceptIcpPartnerNotification", "abolishIcpProgramme",
"addOrder", "getH5PayUrl", "getOrderQrCode", "queryOrderStatus", "getOrderInfo", "getOrderDeliveryInfo", "getOrderDetails", "addOrder", "getH5PayUrl", "getOrderQrCode", "queryOrderStatus", "getOrderInfo", "getOrderDeliveryInfo", "getOrderDetails",
"getOrderDeliveryFlowInfo", "getOrderDeliveryFlowList", "getOrderLogInfo", "updateContacts", "updateTmOrder", "delOrder", "submitProgramme", "getOrderDeliveryFlowInfo", "getOrderDeliveryFlowList", "getOrderLogInfo", "updateContacts", "updateTmOrder", "delOrder", "submitProgramme",
"getProgrammeListByUser", "getProgrammeInfoByNeedNo", "abolishProgramme", "getAliPayInfo", "getPaidLogoListByUser", "getCollectibleLogoListByUser", "getProgrammeListByUser", "getProgrammeInfoByNeedNo", "abolishProgramme", "getAliPayInfo", "getPaidLogoListByUser", "getCollectibleLogoListByUser",
"collectLogo", "getLogoMaterial", "cancelCollectLogo", "icpNotify", "createName", "getNameDetail", "orderConfirm", "collectLogo", "getLogoMaterial", "cancelCollectLogo", "icpNotify", "createName", "getNameDetail", "orderConfirm",
"orderTotalSum", "collect", "reg", "orderCheck", "getReOrderList", "getOfficalList", "addReviewList", "opSubmitNeed", "opNeedClose", "opNeedList", "orderTotalSum", "collect", "reg", "orderCheck", "getReOrderList", "getOfficalList", "addReviewList", "opSubmitNeed", "opNeedClose", "opNeedList",
"getItemByNeedNo", "opNeedDetailByChannelNo", "getNeedListUser", "manualEvaluation", "diagnosisInfo", "check", "enterpriseInfo", "diagnosisDetail", "getItemByNeedNo", "opNeedDetailByChannelNo", "getNeedListUser", "manualEvaluation", "diagnosisInfo", "check", "enterpriseInfo", "diagnosisDetail",
"submitIcpIntention", "queryIntentionList", "confirmIcpIntention", "tmAccept", "tmStatus", "needBatchUpload", "submitIcpIntention", "queryIntentionList", "confirmIcpIntention", "tmAccept", "tmStatus", "needBatchUpload",
"ncSubmitMaterial", "ncNotification", "ncSubmitSolution", "ncCloseNeed", "ncClosePlan", "ncSubmitMaterial", "ncNotification", "ncSubmitSolution", "ncCloseNeed", "ncClosePlan",
"rtSubmitMaterial", "rtNotification", "rtSubmitSolution", "rtCloseNeed", "rtClosePlan", "rtSubmitMaterial", "rtNotification", "rtSubmitSolution", "rtCloseNeed", "rtClosePlan",
"getParamsFor360", "addOrderWeb", "getPayRecords", "getLoginInfo", "putUserMobileByVcode", "getParamsFor360", "addOrderWeb", "getPayRecords", "getLoginInfo", "putUserMobileByVcode",
"putUserPwdByMobile", "icpNotifyNew", "getOrderStatisticsByUappId", "getOrderStatisticsByProduct", "getOrdersComparison", "getOrdersComparisonList", "putUserPwdByMobile", "icpNotifyNew", "getOrderStatisticsByUappId", "getOrderStatisticsByProduct", "getOrdersComparison", "getOrdersComparisonList",
"importOrders", "importNeeds", "receiveAliTmOrder","receiveFqbossTmOrder", "receiveAliTmOrderRefund","receiveAliTmStatus", "importOrders", "importNeeds", "receiveAliTmOrder", "receiveFqbossTmOrder", "receiveAliTmOrderRefund", "receiveAliTmStatus",
//百度工商注册 //百度工商注册
"regGetInfoByChannelNeedNo", "submitRegNeed", "regFeedbackSubmit", "regOrderStatus", "regOrderClose", "regGetInfoByChannelNeedNo", "submitRegNeed", "regFeedbackSubmit", "regOrderStatus", "regOrderClose",
"getSolutionByChannelOrderNo", "regSubmitSolution", "regNeedClose", "getSolutionByChannelOrderNo", "regSubmitSolution", "regNeedClose",
"regWriteCommunicationLog", "regQueryExpertCommunicationLogs", "regUpdateOrderStatus", "regPaySuccess", "regWriteCommunicationLog", "regQueryExpertCommunicationLogs", "regUpdateOrderStatus", "regPaySuccess",
//yiming/ename //yiming/ename
"eNameCloseOrder", "eNameCloseOrder",
], ],
apiMustUserpinList: [ apiMustUserpinList: [
"icpOrderClose", "icpOrderClose",
"submitNeed", "paySuccess", "icpNotify", "getLoginInfo", "icpNotifyNew", "submitIcpProgramme", "serviceProviderSubmitMaterial", "abolishIcpProgramme", "submitNeed", "paySuccess", "icpNotify", "getLoginInfo", "icpNotifyNew", "submitIcpProgramme", "serviceProviderSubmitMaterial", "abolishIcpProgramme",
"submitService", "serviceProviderNotification", "submitService", "serviceProviderNotification",
"ncSubmitMaterial", "ncNotification", "ncSubmitSolution", "ncCloseNeed", "ncClosePlan", "ncSubmitMaterial", "ncNotification", "ncSubmitSolution", "ncCloseNeed", "ncClosePlan",
"rtSubmitMaterial", "rtNotification", "rtSubmitSolution", "rtCloseNeed", "rtClosePlan", "rtSubmitMaterial", "rtNotification", "rtSubmitSolution", "rtCloseNeed", "rtClosePlan",
//百度工商注册 //百度工商注册
"regGetInfoByChannelNeedNo", "submitRegNeed", "regFeedbackSubmit", "regOrderStatus", "regOrderClose", "regGetInfoByChannelNeedNo", "submitRegNeed", "regFeedbackSubmit", "regOrderStatus", "regOrderClose",
"getSolutionByChannelOrderNo", "regSubmitSolution", "regNeedClose", "getSolutionByChannelOrderNo", "regSubmitSolution", "regNeedClose",
"regWriteCommunicationLog", "regQueryExpertCommunicationLogs", "regUpdateOrderStatus", "regPaySuccess", "regWriteCommunicationLog", "regQueryExpertCommunicationLogs", "regUpdateOrderStatus", "regPaySuccess",
//yiming/ename //yiming/ename
"eNameCloseOrder", "eNameCloseOrder",
], ],
apiSecretPathList: [ apiSecretPathList: [
"/api/icp/consultation/submit", "/api/icp/consultation/submit",
"/api/icp/feedback/submit", "/api/icp/feedback/submit",
"/api/icp/order/notify", "/api/icp/order/notify",
"/api/opreceive/service/create", "/api/opreceive/service/create",
"/api/icp/order/close", "/api/icp/order/close",
"/api/opreceive/service/notify", "/api/opreceive/service/notify",
"/api/icp/queueNotify/springBoard", "/api/icp/queueNotify/springBoard",
"/api/ic/consultation/submit", "/api/ic/consultation/submit",
"/api/ic/feedback/submit", "/api/ic/feedback/submit",
"/api/ic/order/notify", "/api/ic/order/notify",
"/api/ic/order/close", "/api/ic/order/close",
"/api/ic/tool/icname", "/api/ic/tool/icname",
"/api/tm/consultation/submit", "/api/tm/consultation/submit",
"/api/tm/feedback/submit", "/api/tm/feedback/submit",
"/api/tm/status/notify", "/api/tm/status/notify",
"/api/tm/tmcase/nbtzreceiveAssistTmData", "/api/tm/tmcase/nbtzreceiveAssistTmData",
"/api/tm/tmcase/nbtzreceiveEditAssistTmData" "/api/tm/tmcase/nbtzreceiveEditAssistTmData",
], "/api/action/product/getProductList",
apiAliSendKeyPathList: [ "/api/action/opNeed/opSubmitNeed"
"/api/opreceive/pushAliInfo/tmNote", ],
"/api/opreceive/pushAliInfo/icNote", apiAliSendKeyPathList: [
] "/api/opreceive/pushAliInfo/tmNote",
}, "/api/opreceive/pushAliInfo/icNote",
AREACOMM: { ]
areaTransform: { },
"上海": "上海市", AREACOMM: {
"东莞": "东莞市", areaTransform: {
"佛山": "佛山市", "上海": "上海市",
"北京": "北京市", "东莞": "东莞市",
"南京": "南京市", "佛山": "佛山市",
"南昌": "南昌市", "北京": "北京市",
"南通": "南通市", "南京": "南京市",
"台州": "台州市", "南昌": "南昌市",
"合肥": "合肥市", "南通": "南通市",
"嘉兴": "嘉兴市", "台州": "台州市",
"大连": "大连市", "合肥": "合肥市",
"天津": "天津市", "嘉兴": "嘉兴市",
"太原": "太原市", "大连": "大连市",
"宁波": "宁波市", "天津": "天津市",
"常州": "常州市", "太原": "太原市",
"广州": "广州市", "宁波": "宁波市",
"徐州": "徐州市", "常州": "常州市",
"成都": "成都市", "广州": "广州市",
"扬州": "扬州市", "徐州": "徐州市",
"无锡": "无锡市", "成都": "成都市",
"昆明": "昆明市", "扬州": "扬州市",
"杭州": "杭州市", "无锡": "无锡市",
"武汉": "武汉市", "昆明": "昆明市",
"沈阳": "沈阳市", "杭州": "杭州市",
"济南": "济南市", "武汉": "武汉市",
"深圳": "深圳市", "沈阳": "沈阳市",
"温州": "温州市", "济南": "济南市",
"烟台": "烟台市", "深圳": "深圳市",
"福州": "福州市", "温州": "温州市",
"绍兴": "绍兴市", "烟台": "烟台市",
"苏州": "苏州市", "福州": "福州市",
"西安": "西安市", "绍兴": "绍兴市",
"贵阳": "贵阳市", "苏州": "苏州市",
"郑州": "郑州市", "西安": "西安市",
"重庆": "重庆市", "贵阳": "贵阳市",
"金华": "金华市", "郑州": "郑州市",
"长春": "长春市", "重庆": "重庆市",
"长沙": "长沙市", "金华": "金华市",
"青岛": "青岛市", "长春": "长春市",
"开封": "开封市", "长沙": "长沙市",
"哈尔滨": "哈尔滨市", "青岛": "青岛市",
"石家庄": "石家庄市", "开封": "开封市",
"福建": "福建省", "哈尔滨": "哈尔滨市",
"广西": "广西", "石家庄": "石家庄市",
"广东": "广东省", "福建": "福建省",
"安徽": "安徽省", "广西": "广西",
"河南": "河南省", "广东": "广东省",
"湖北": "湖北省", "安徽": "安徽省",
"浙江": "浙江省", "河南": "河南省",
"江苏": "江苏省", "湖北": "湖北省",
"山东": "山东省", "浙江": "浙江省",
"陕西": "陕西省", "江苏": "江苏省",
"宁夏": "宁夏", "山东": "山东省",
"甘肃": "甘肃省", "陕西": "陕西省",
"新疆": "新疆", "宁夏": "宁夏",
"青海": "青海省", "甘肃": "甘肃省",
"河北": "河北省", "新疆": "新疆",
"山西": "山西省", "青海": "青海省",
"辽宁": "辽宁省", "河北": "河北省",
"吉林": "吉林省", "山西": "山西省",
"黑龙江": "黑龙江省", "辽宁": "辽宁省",
"江西": "江西省", "吉林": "吉林省",
"湖南": "湖南省", "黑龙江": "黑龙江省",
"四川": "四川省", "江西": "江西省",
"贵州": "贵州省", "湖南": "湖南省",
"云南": "云南省", "四川": "四川省",
"内蒙古": "内蒙古", "贵州": "贵州省",
"西藏": "西藏", "云南": "云南省",
"含外资": "含外资", "内蒙古": "内蒙古",
"全外资": "全外资", "西藏": "西藏",
"香港": "香港", "含外资": "含外资",
"海南": "海南省", "全外资": "全外资",
} "香港": "香港",
} "海南": "海南省",
}
}
} }
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