jihuaqiang 1 týždeň pred
rodič
commit
8b39f9280a

+ 2 - 0
src/hooks/useLogger.ts

@@ -36,6 +36,7 @@ interface PublishPlanLogParams extends NormalLogParams {
 const useLogger = () => {
 	const token = sso.getUserInfo()?.token;
 	const channel = sso.getUserInfo()?.channel;
+	const userId = sso.getUserInfo()?.id;
 	const timestamp = Date.now();
 	const userAgent = navigator.userAgent;
 	const page = window.location.pathname;
@@ -43,6 +44,7 @@ const useLogger = () => {
 		const log = {
 			token,
 			channel,
+			userId,
 			page,
 			userAgent,
 			timestamp,

+ 5 - 1
src/utils/helper.ts

@@ -16,6 +16,10 @@ export function getRandomKey(length=16) {
     return result
 }
 
+export function getRandomNumberKey(length=16) {
+	return Math.floor(Math.random() * 10 ** length);
+}
+
 interface OptionItem {
   label: string;
   value: string | number;
@@ -36,4 +40,4 @@ export function enumToOptions(enumObj: Record<string, any>): OptionItem[] {
       label: key,
       value: value
     }));
-}
+}

+ 1 - 0
src/views/publishContent/types.ts

@@ -28,5 +28,6 @@ export interface VideoItem {
 	scene?: 0 | 1;
 	collect?: CollectedStatusEnum;
 	status?: VideoStatusEnum;
+	requestId?: number;
 }
 

+ 2 - 1
src/views/publishContent/weCom/components/addPlanModal/index.tsx

@@ -7,6 +7,7 @@ import { CloseOutlined, PlusOutlined, CaretRightFilled } from '@ant-design/icons
 import VideoSelectModal from '../videoSelectModal';
 import VideoPlayModal from '../videoPlayModal';
 import useLogger from '@src/hooks/useLogger';
+import { getRandomNumberKey } from '@src/utils/helper';
 
 const { Paragraph } = Typography;
 
@@ -31,7 +32,7 @@ const AddPlanModal: React.FC<{
 			subChannel: '',
 		});
 		setSelectedVideos([]);
-		setTraceId(new Date().getTime());
+		setTraceId(getRandomNumberKey());
 	}, [visible]);
 
 	useEffect(() => {

+ 5 - 4
src/views/publishContent/weCom/components/videoSelectModal/index.tsx

@@ -23,7 +23,7 @@ import http from '@src/http';
 import { getVideoContentListApi, getUploadVideoContentListApi, getCollectVideoContentListApi, saveCollectVideoContentApi, getCollectContentListApi } from '@src/http/api';
 import { useVideoCategoryOptions } from '@src/views/publishContent/weGZH/hooks/useVideoCategoryOptions';
 import { VideoSearchPlanType } from '@src/views/publishContent/weCom/type'
-import { enumToOptions } from '@src/utils/helper';
+import { enumToOptions, getRandomNumberKey } from '@src/utils/helper';
 import { isNil } from 'lodash';
 import { CollectedStatusEnum, VideoStatusEnum } from '@src/views/publishContent/types';
 import useLogger from '@src/hooks/useLogger';
@@ -189,11 +189,11 @@ export const VideoSelectContent: React.FC<VideoSelectContentProps> = ({
 			pageSize: _pageSize || pageSize,
 		};
 
+		const _requestId = getRandomNumberKey();
 		const res = await http.post<VideoListResponse>(apiUrl, requestParams).catch(() => {
 			message.error('获取视频列表失败');
 		}).finally(() => {
 			setLoading(false);
-			const _requestId = new Date().getTime();
 			setRequestId(_requestId);
 			uploadLogVideoListQuery({
 				traceId: traceId,
@@ -210,8 +210,9 @@ export const VideoSelectContent: React.FC<VideoSelectContentProps> = ({
 			});
 		});
 		if (res && res.code === 0) {
-			setVideoList([...selectedVideos, ...res.data.objs.filter(v => !selectedVideos.find(ov => ov.videoId === v.videoId))]);
-			setVideoListAll(old => [...old, ...res.data.objs.filter(v => !old.find(ov => ov.videoId === v.videoId))]);
+			const newVideoList = (res.data.objs || []).map(v => ({...v, requestId: _requestId}));
+			setVideoList([...selectedVideos, ...newVideoList.filter(v => !selectedVideos.find(ov => ov.videoId === v.videoId))]);
+			setVideoListAll(old => [...old, ...newVideoList.filter(v => !old.find(ov => ov.videoId === v.videoId))]);
 			setTotal(res.data.totalSize);
 		} else {
 			message.error('获取视频列表失败');

+ 2 - 1
src/views/publishContent/weGZH/components/publishPlanModal/index.tsx

@@ -10,6 +10,7 @@ import { VideoLibraryType } from '@src/views/publishContent/weCom/components/vid
 import { isNil } from 'lodash';
 import useLogger from '@src/hooks/useLogger';
 import { VideoSearchPlanType } from '@src/views/publishContent/weCom/type';
+import { getRandomNumberKey } from '@src/utils/helper';
 
 const { Option } = Select;
 const { Paragraph } = Typography;
@@ -81,7 +82,7 @@ const AddPunlishPlanModal: React.FC<AddPunlishPlanModalProps> = ({ visible, isSu
 		if (!visible) {
 			setInitialSelectedVideoId(null);
 		}
-		setTraceId(new Date().getTime());
+		setTraceId(getRandomNumberKey());
 	}, [visible]);
 
 	const onTypeChange = (value: string) => {