|
@@ -882,6 +882,7 @@ const initEvent = (infoObj_c) => {
|
882
|
882
|
writerShare: infoObj.copyInfo.pageInfo.copywriterInfoData.writerShareRadioList,
|
883
|
883
|
writerRule: infoObj.copyInfo.pageInfo.copywriterInfoData.writerRuleRadioList,
|
884
|
884
|
writerList: infoObj.copyInfo.pageInfo.copywriterInfoData.data,
|
|
885
|
+ writerListAll: infoObj.copyInfo.pageInfo.copywriterInfoData.allData,
|
885
|
886
|
})
|
886
|
887
|
|
887
|
888
|
accItemEvent(pageInfo.accList[0].id)
|
|
@@ -1005,18 +1006,19 @@ const handleSetMaterialRule = ({accountShareRule, creativeRule, materialItemIds
|
1005
|
1006
|
}
|
1006
|
1007
|
}
|
1007
|
1008
|
|
1008
|
|
-const handleSetWriterRule = ({writerShare, writerRule, writerList = []}) => {
|
|
1009
|
+const handleSetWriterRule = ({writerShare, writerRule, writerList = [], writerListAll = []}) => {
|
1009
|
1010
|
console.log('writerShare => ', writerShare)
|
1010
|
1011
|
console.log('writerRule => ', writerRule)
|
1011
|
1012
|
console.log('writerList => ', writerList)
|
|
1013
|
+ console.log('writerListAll => ', writerListAll)
|
1012
|
1014
|
console.log('pageInfo.campaign_list => ', JSON.parse(JSON.stringify(pageInfo.campaign_list)))
|
1013
|
|
-
|
1014
|
|
- if (writerShare == 1) { // 所选文案按广告(定向包)平均分配 删除重复素材
|
|
1015
|
+ // 模拟用1条文案确认广告创意数 确认创意数后 再跟进分配方式 将writerList分配到创意中
|
|
1016
|
+ if (writerShare == 1) { // 所选文案按广告(定向包)平均分配
|
1015
|
1017
|
const _campaign_list = _.cloneDeep(pageInfo.campaign_list)
|
1016
|
1018
|
|
1017
|
1019
|
let _writerList = []
|
1018
|
|
- for (let i = 0; i < 99; i++) {
|
1019
|
|
- _writerList = [..._writerList, ...writerList]
|
|
1020
|
+ for (let i = 0; i < 500; i++) {
|
|
1021
|
+ _writerList = [..._writerList, ...writerListAll]
|
1020
|
1022
|
}
|
1021
|
1023
|
|
1022
|
1024
|
let adIds: any = []
|
|
@@ -1030,11 +1032,8 @@ const handleSetWriterRule = ({writerShare, writerRule, writerList = []}) => {
|
1030
|
1032
|
})
|
1031
|
1033
|
})
|
1032
|
1034
|
adIds = _.uniq(adIds)
|
1033
|
|
- console.log('adIds => ', adIds)
|
1034
|
|
- console.log('_writerList => ', _writerList)
|
1035
|
|
- console.log('_campaign_list => ', _campaign_list)
|
1036
|
1035
|
|
1037
|
|
- let total:any = writerList.length
|
|
1036
|
+ let total:any = writerListAll.length
|
1038
|
1037
|
let count:any = adIds.length;
|
1039
|
1038
|
let base:any = Math.floor(total / count);
|
1040
|
1039
|
let rest:any = total % count;
|
|
@@ -1043,83 +1042,65 @@ const handleSetWriterRule = ({writerShare, writerRule, writerList = []}) => {
|
1043
|
1042
|
let idx = base + (i<rest?1:0)
|
1044
|
1043
|
arr.push(idx)
|
1045
|
1044
|
}
|
1046
|
|
- console.log('arr => ', arr)
|
1047
|
1045
|
|
1048
|
1046
|
adIds = adIds.map(adId => ({
|
1049
|
1047
|
adId: adId,
|
1050
|
|
- writerList: [],
|
|
1048
|
+ writerList: '',
|
1051
|
1049
|
}))
|
1052
|
1050
|
|
1053
|
1051
|
let startIdx = 0
|
1054
|
1052
|
arr.forEach((length, idx) => {
|
1055
|
1053
|
let _length = length || 1
|
1056
|
|
- adIds[idx].writerList = _writerList.slice(startIdx, startIdx+_length)
|
|
1054
|
+ adIds[idx].writerList = _writerList.slice(startIdx, startIdx+_length)[0]
|
1057
|
1055
|
startIdx = startIdx + _length
|
1058
|
1056
|
})
|
1059
|
1057
|
|
1060
|
|
- console.log('adIds => ', adIds)
|
1061
|
|
-
|
1062
|
1058
|
_campaign_list.forEach((campaign) => {
|
1063
|
1059
|
campaign.chooseList.forEach((choose) => {
|
1064
|
1060
|
choose.ad_list.forEach(ad => {
|
1065
|
1061
|
const crtAdId = ad.adId
|
1066
|
|
- const res = adIds.find(ad => ad.adId === crtAdId)
|
1067
|
|
- if (res && !res.writerList.includes(ad.adcreatives_info.adcreative_elements.description)) {
|
1068
|
|
- ad.delFlag = true
|
1069
|
|
- }
|
|
1062
|
+ const res = adIds.find(a => a.adId === crtAdId)
|
|
1063
|
+ ad.adcreatives_info.adcreative_elements.description = res.writerList
|
1070
|
1064
|
})
|
1071
|
|
- choose.ad_list = choose.ad_list.filter(ad => !ad.delFlag)
|
1072
|
1065
|
})
|
1073
|
1066
|
})
|
1074
|
1067
|
pageInfo.campaign_list = _.cloneDeep(_campaign_list)
|
1075
|
|
- } else if (writerShare == 2 && writerRule == 1) { // 所选文案按创意平均分配 删除重复素材
|
|
1068
|
+
|
|
1069
|
+ } else if (writerShare == 2 && writerRule == 1) { // 所选文案按创意平均分配
|
1076
|
1070
|
const _campaign_list = _.cloneDeep(pageInfo.campaign_list)
|
|
1071
|
+
|
1077
|
1072
|
let _writerList = []
|
1078
|
|
- for (let i = 0; i < 99; i++) {
|
1079
|
|
- _writerList = [..._writerList, ...writerList]
|
|
1073
|
+ for (let i = 0; i < 500; i++) {
|
|
1074
|
+ _writerList = [..._writerList, ...writerListAll]
|
1080
|
1075
|
}
|
1081
|
|
- let adIds: any = []
|
|
1076
|
+
|
|
1077
|
+ let idx = 0
|
1082
|
1078
|
_campaign_list.forEach((campaign) => {
|
1083
|
1079
|
campaign.chooseList.forEach((choose) => {
|
1084
|
1080
|
choose.ad_list.forEach(ad => {
|
1085
|
|
- ad.account_id = choose.account_id
|
1086
|
|
- ad.adId = `${choose.account_id}&&&${ad.targeting_id}`
|
1087
|
|
- adIds.push(ad.adId)
|
|
1081
|
+ ad.adcreatives_info.adcreative_elements.description = _writerList[idx]
|
|
1082
|
+ idx++
|
1088
|
1083
|
})
|
1089
|
1084
|
})
|
1090
|
1085
|
})
|
1091
|
|
- adIds = _.uniq(adIds)
|
1092
|
|
- let total:any = writerList.length
|
1093
|
|
- let count:any = adIds.length;
|
1094
|
|
- let base:any = Math.floor(total / count);
|
1095
|
|
- let rest:any = total % count;
|
1096
|
|
- let arr:any = []; // 记录每个账号分多少个素材
|
1097
|
|
- for(let i=0; i<count; i++) {
|
1098
|
|
- let idx = base + (i<rest?1:0)
|
1099
|
|
- arr.push(idx)
|
1100
|
|
- }
|
1101
|
|
- adIds = adIds.map(adId => ({
|
1102
|
|
- adId: adId,
|
1103
|
|
- writerList: [],
|
1104
|
|
- }))
|
1105
|
|
- let startIdx = 0
|
1106
|
|
- arr.forEach((length, idx) => {
|
1107
|
|
- let _length = length || 1
|
1108
|
|
- adIds[idx].writerList = _writerList.slice(startIdx, startIdx+_length)
|
1109
|
|
- startIdx = startIdx + _length
|
1110
|
|
- })
|
|
1086
|
+
|
|
1087
|
+ pageInfo.campaign_list = _.cloneDeep(_campaign_list)
|
|
1088
|
+ } else if (writerShare == 2 && writerRule == 2) { // 所选文案按创意交叉相乘
|
|
1089
|
+ const _campaign_list = _.cloneDeep(pageInfo.campaign_list)
|
1111
|
1090
|
_campaign_list.forEach((campaign) => {
|
1112
|
1091
|
campaign.chooseList.forEach((choose) => {
|
|
1092
|
+ let ad_list: any = []
|
1113
|
1093
|
choose.ad_list.forEach(ad => {
|
1114
|
|
- const crtAdId = ad.adId
|
1115
|
|
- const res = adIds.find(ad => ad.adId === crtAdId)
|
1116
|
|
- if (res && !res.writerList.includes(ad.adcreatives_info.adcreative_elements.description)) {
|
1117
|
|
- ad.delFlag = true
|
1118
|
|
- }
|
|
1094
|
+ writerListAll.forEach(writer => {
|
|
1095
|
+ let adObj = _.cloneDeep(ad)
|
|
1096
|
+ adObj.adcreatives_info.adcreative_elements.description = writer
|
|
1097
|
+ ad_list.push(adObj)
|
|
1098
|
+ })
|
1119
|
1099
|
})
|
1120
|
|
- choose.ad_list = choose.ad_list.filter(ad => !ad.delFlag)
|
|
1100
|
+ choose.ad_list = ad_list
|
1121
|
1101
|
})
|
1122
|
1102
|
})
|
|
1103
|
+
|
1123
|
1104
|
pageInfo.campaign_list = _.cloneDeep(_campaign_list)
|
1124
|
1105
|
}
|
1125
|
1106
|
}
|