|
|
@@ -354,15 +354,16 @@ function getSynthesizeCombination(retCvtData) {
|
|
|
magicJS.logger.info(`ruleList${JSON.stringify(ruleList)}`);
|
|
|
magicJS.logger.info(`goodsList:${JSON.stringify(goodsList)}`);
|
|
|
for (let i = 0; i < ruleList.length; i++) {
|
|
|
- let oneData = goodsList[i];
|
|
|
let limitCount = ruleList[i].num;
|
|
|
- magicJS.logger.info(`oneData${JSON.stringify(oneData)}`);
|
|
|
+ let matchArtIdList = ruleList[i].matchArtIdList;
|
|
|
magicJS.logger.info(`limitCount:${limitCount}`);
|
|
|
- if (oneData && oneData.verList && limitCount <= oneData.verList.length) {
|
|
|
- let oneListSub = oneData.verList.splice(oneData.verList.length - limitCount, limitCount);
|
|
|
- for (let j = 0; j < oneListSub.length; j++) {
|
|
|
- oneListSub[j].title = oneData.title;
|
|
|
- retOneList.push(oneListSub[j]);
|
|
|
+ magicJS.logger.info(`matchArtIdList:${JSON.stringify(matchArtIdList)}`);
|
|
|
+ let oneData = goodsList[i];
|
|
|
+ let matchArtList = getSubGoodsList(goodsList, matchArtIdList, limitCount);
|
|
|
+ if (matchArtList && matchArtList.length == limitCount) {
|
|
|
+ magicJS.logger.info(`matchArtList:${JSON.stringify(matchArtList)}`);
|
|
|
+ for (let j = 0; j < matchArtList.length; j++) {
|
|
|
+ retOneList.push(matchArtList[j]);
|
|
|
}
|
|
|
} else {
|
|
|
isContinus = false;
|
|
|
@@ -376,6 +377,38 @@ function getSynthesizeCombination(retCvtData) {
|
|
|
return retAllList;
|
|
|
}
|
|
|
|
|
|
+function getSubGoodsList(goodsList, matchArtIdList, num) {
|
|
|
+ let retList = [];
|
|
|
+ for (let i = 0; i < goodsList.length; i++) {
|
|
|
+ const item = goodsList[i];
|
|
|
+ if (matchArtIdList.includes(item.artHashId)) {
|
|
|
+ let neddNum = num - retList.length;
|
|
|
+ let diffNum = item.verList.length - neddNum;
|
|
|
+ if (diffNum > 0) {
|
|
|
+ let tmpLst = item.verList.splice(item.verList.length - num, neddNum);
|
|
|
+ // retList = retList.concat(tmpLst);
|
|
|
+ for (let j = 0; j < tmpLst.length; j++) {
|
|
|
+ tmpLst[j].title = item.title;
|
|
|
+ retList.push(tmpLst[j]);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ } else {
|
|
|
+ let tmpLst = item.verList.splice(0, retList.length);
|
|
|
+ // retList = retList.concat(tmpLst);
|
|
|
+ for (let j = 0; j < tmpLst.length; j++) {
|
|
|
+ tmpLst[j].title = item.title;
|
|
|
+ retList.push(tmpLst[j]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ neddNum = num - retList.length;
|
|
|
+ if (neddNum == 0) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return retList;
|
|
|
+}
|
|
|
+
|
|
|
function getActivityType(key) {
|
|
|
let nType = 0;
|
|
|
if (!key || key.length == 0) {
|