|
@@ -249,64 +249,112 @@ const AddDynamic: React.FC<PULLIN.NewAddDynamic> = ({ visible, onChange, onClose
|
|
|
const { dynamic, dynamicMaterialDTos, dynamicCreativesTextDTOS, mediaType } = addelivery
|
|
|
|
|
|
let dynamicMaterialDTOS = []
|
|
|
- if ((materialData && Object.keys(materialData).length && dynamicMaterialDTos && Object.keys(dynamicMaterialDTos).length)) {
|
|
|
- let mType = Object.keys(materialData)[0];
|
|
|
- dynamicMaterialDTOS = dynamicMaterialDTos.dynamicGroup?.map((item: any) => {
|
|
|
- if (mType === 'image') {
|
|
|
- return [{
|
|
|
- type: mType,
|
|
|
- valueJson: JSON.stringify({
|
|
|
- value: {
|
|
|
- imageUrl: item?.image_id?.url,
|
|
|
- imageId: item?.image_id?.id,
|
|
|
- materialType: item?.image_id?.materialType
|
|
|
- }
|
|
|
- })
|
|
|
- }]
|
|
|
- } else if (mType === 'image_list' || mType === 'element_story') {
|
|
|
- let key = 'image_list'
|
|
|
- if (mType === 'element_story') {
|
|
|
- key = 'element_story'
|
|
|
- }
|
|
|
- let list = item?.[key]?.map((l: any) => {
|
|
|
- return {
|
|
|
- imageUrl: l?.url,
|
|
|
- imageId: l?.id,
|
|
|
- materialType: l?.materialType
|
|
|
+ if (dynamic.deliveryMode === 'DELIVERY_MODE_CUSTOMIZE') {
|
|
|
+ if ((materialData && Object.keys(materialData).length && dynamicMaterialDTos && Object.keys(dynamicMaterialDTos).length)) {
|
|
|
+ let mType = Object.keys(materialData)[0];
|
|
|
+ dynamicMaterialDTOS = dynamicMaterialDTos.dynamicGroup?.map((item: any) => {
|
|
|
+ if (mType === 'image') {
|
|
|
+ return [{
|
|
|
+ type: mType,
|
|
|
+ valueJson: JSON.stringify({
|
|
|
+ value: {
|
|
|
+ imageUrl: item?.image_id?.url,
|
|
|
+ imageId: item?.image_id?.id,
|
|
|
+ materialType: item?.image_id?.materialType
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }]
|
|
|
+ } else if (mType === 'image_list' || mType === 'element_story') {
|
|
|
+ let key = 'image_list'
|
|
|
+ if (mType === 'element_story') {
|
|
|
+ key = 'element_story'
|
|
|
}
|
|
|
- })
|
|
|
- return [{
|
|
|
- type: mType,
|
|
|
- valueJson: JSON.stringify({
|
|
|
- value: {
|
|
|
- list
|
|
|
+ let list = item?.[key]?.map((l: any) => {
|
|
|
+ return {
|
|
|
+ imageUrl: l?.url,
|
|
|
+ imageId: l?.id,
|
|
|
+ materialType: l?.materialType
|
|
|
}
|
|
|
})
|
|
|
- }]
|
|
|
- } else if (['short_video', 'video'].includes(mType)) {
|
|
|
- let value: any = {
|
|
|
- materialType: item?.video_id?.materialType || item?.short_video1?.materialType || 0,
|
|
|
- videoUrl: item?.video_id?.url || item?.short_video1?.url,
|
|
|
- videoId: item?.video_id?.id || item?.short_video1?.id
|
|
|
- }
|
|
|
- if (item?.cover_id?.url) {
|
|
|
- value.imageUrl = item?.cover_id?.url
|
|
|
- value.imageId = item?.cover_id?.id
|
|
|
- value.materialCoverType = item?.cover_id?.materialType
|
|
|
+ return [{
|
|
|
+ type: mType,
|
|
|
+ valueJson: JSON.stringify({
|
|
|
+ value: {
|
|
|
+ list
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }]
|
|
|
+ } else if (['short_video', 'video'].includes(mType)) {
|
|
|
+ let value: any = {
|
|
|
+ materialType: item?.video_id?.materialType || item?.short_video1?.materialType || 0,
|
|
|
+ videoUrl: item?.video_id?.url || item?.short_video1?.url,
|
|
|
+ videoId: item?.video_id?.id || item?.short_video1?.id
|
|
|
+ }
|
|
|
+ if (item?.cover_id?.url) {
|
|
|
+ value.imageUrl = item?.cover_id?.url
|
|
|
+ value.imageId = item?.cover_id?.id
|
|
|
+ value.materialCoverType = item?.cover_id?.materialType
|
|
|
+ }
|
|
|
+ return [{
|
|
|
+ type: mType,
|
|
|
+ valueJson: JSON.stringify({
|
|
|
+ value
|
|
|
+ })
|
|
|
+ }]
|
|
|
}
|
|
|
return [{
|
|
|
type: mType,
|
|
|
- valueJson: JSON.stringify({
|
|
|
- value
|
|
|
- })
|
|
|
+ valueJson: ''
|
|
|
}]
|
|
|
- }
|
|
|
- return [{
|
|
|
- type: mType,
|
|
|
- valueJson: ''
|
|
|
- }]
|
|
|
- })
|
|
|
+ })
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (dynamicMaterialDTos && Object.keys(dynamicMaterialDTos).length) {
|
|
|
+ dynamicMaterialDTOS = dynamicMaterialDTos.dynamicGroup?.map((item: { list: any[] }) => {
|
|
|
+ return item.list.map(l => {
|
|
|
+ if (Array.isArray(l)) {
|
|
|
+ return {
|
|
|
+ type: 'image_list',
|
|
|
+ valueJson: JSON.stringify({
|
|
|
+ value: {
|
|
|
+ list: l?.map((i: any) => {
|
|
|
+ return {
|
|
|
+ imageUrl: i?.url,
|
|
|
+ imageId: i?.id,
|
|
|
+ materialType: i?.materialType
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ } else if (l?.url?.includes('mp4')) {
|
|
|
+ return {
|
|
|
+ type: 'video',
|
|
|
+ valueJson: JSON.stringify({
|
|
|
+ value: {
|
|
|
+ materialType: l?.materialType,
|
|
|
+ videoUrl: l?.url,
|
|
|
+ videoId: l?.id
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return {
|
|
|
+ type: 'image',
|
|
|
+ valueJson: JSON.stringify({
|
|
|
+ value: {
|
|
|
+ imageUrl: l?.url,
|
|
|
+ imageId: l?.id,
|
|
|
+ materialType: l?.materialType
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
let accountIdParamDTOMap: any = {}
|
|
|
accountCreateLogs.forEach(item => {
|
|
|
let { pageList, productList, userActionSetsList, accountId, wechatChannelList } = item
|
|
@@ -328,9 +376,13 @@ const AddDynamic: React.FC<PULLIN.NewAddDynamic> = ({ visible, onChange, onClose
|
|
|
|
|
|
accountIdParamDTOMap[accountId] = map
|
|
|
})
|
|
|
+ let dynamicCreativesDTO = { ...dynamic, mediaType }
|
|
|
+ if (dynamic.deliveryMode === 'DELIVERY_MODE_COMPONENT') {
|
|
|
+ dynamicCreativesDTO.creativeTemplateId = 711
|
|
|
+ }
|
|
|
let params = {
|
|
|
accountAdgroupMaps: adData.map(item => `${item.accountId},${item.adgroupId}`),
|
|
|
- dynamicCreativesDTO: { ...dynamic, mediaType },
|
|
|
+ dynamicCreativesDTO,
|
|
|
dynamicCreativesTextDTOS,
|
|
|
dynamicMaterialDTOS,
|
|
|
accountIdParamDTOMap
|