Authored by yyq

拼接未匹配参数

... ... @@ -8,6 +8,7 @@
const _ = require('lodash');
const logger = global.yoho.logger;
const queryString = require('querystring');
const minToFullMap = {
ag: 'age_level',
... ... @@ -45,20 +46,25 @@ const transformKey = (params, isFull) => {
return params;
}
let obj = {};
let matchParams = {},
extraParams = {};
let map = isFull ? fullToMinMap : minToFullMap;
_.forEach(params, (value, key) => {
let name = map[key];
if (name) {
obj[name] = value;
matchParams[name] = value;
} else {
logger.error(`list parameter [${key}] map value not found`);
extraParams[key] = value;
logger.info(`list parameter [${key}] map value not found`);
}
});
return obj;
return {
matchParams,
extraParams
};
};
const minPathToFullParam = (path) => {
... ... @@ -89,6 +95,7 @@ const minPathToFullParam = (path) => {
const fullParamToMinPath = (uri, params, newObj, delObj = {}) => {
let obj = _.assign({}, params, newObj);
let pathArr = [];
let extraQs = '';
Object.assign(delObj, {uid: true});
... ... @@ -96,13 +103,19 @@ const fullParamToMinPath = (uri, params, newObj, delObj = {}) => {
_.has(obj, key) && _.unset(obj, key);
});
_.forEach(transformKey(obj, true), (value, key) => {
let transParams = transformKey(obj, true);
_.forEach(transParams.matchParams, (value, key) => {
if (value) {
pathArr.push(`${key}${_.replace(value, '-', '__')}`); // 替换value中-
}
});
return _.trimEnd(uri, '/') + '/' + _.sortBy(pathArr).join('-');
if (!_.isEmpty(transParams.extraParams)) {
extraQs = '?' + queryString.stringify(transParams.extraParams)
}
return _.trimEnd(uri, '/') + '/' + _.sortBy(pathArr).join('-') + extraQs;
};
... ...