wjx hai 1 ano
pai
achega
1186bd4786

+ 14 - 5
src/components/QueryForm/index.tsx

@@ -45,6 +45,10 @@ interface Props {
     isCreateRoleDay?: {
         ranges?: any
     }
+    /** 是否开启 最近活跃时间 搜索 */
+    isLastActiveTime?: {
+        ranges?: any
+    }
     /** 是否开启 操作设备 搜索 */
     isDevice?: boolean
     /** 是否开启 注册游戏名 搜索 */
@@ -257,7 +261,7 @@ const QueryForm: React.FC<Props> = (props) => {
         onChange, initialValues, isSource, isAccount, isAccountId, isAccountIds, isCompanyId, isAgentKey, isAgentName, isCpId, isCpName, isCpOrderId, isCpStatus, isCreateDay, isCreateDayXz, isDevice, isGameName, isRechargeGameName, isGameId, isGameIds, isOrderGameId, isGameRoleId,
         isGameRoleName, isFirstRecharge, isSwitch, isMerchantNo, isOrderId, isMerchantOrderNo, isPayStatus, isPayWay, isProductName, isRegAgent, isAgentId, isPutAgent, isRegDay, isOs, isParentId, isParentIds, isProjectId, isProjectName, isPromotionId, isPromotionId1, isPromotionName,
         isSysUserName, isRechargeDate, isBGGameClassify, isGameUserId, isSysUserId, isSysUserIds, isUserName, isUserId, isSelectRanking, isGameType, isConsumeDay, rechargeDay, isBeginDay, isType, isAdTTStatus, isUserEnterType, isServerName, isServerId, isServerDay, isAdTXStatus,
-        payTimeDay, placeAnOrderDay, isPayIntervalTime, isActiveTypes, isNickname, isMobile, isRegIp, isIsAuth, isIsBindMobile, isIsRecharge, isUserStatus, isCreateRole, isRoleCount, isVipLevel, isCreateRoleDay, isIsChange, isIsSendMail, isWeChatCompany, isWeChat,
+        payTimeDay, placeAnOrderDay, isPayIntervalTime, isActiveTypes, isNickname, isMobile, isRegIp, isIsAuth, isIsBindMobile, isIsRecharge, isUserStatus, isCreateRole, isRoleCount, isVipLevel, isCreateRoleDay, isLastActiveTime, isIsChange, isIsSendMail, isWeChatCompany, isWeChat,
         isCustomerServerId, isOperatorId, isGsId, isServerIds, isRankingNum, isIsMergeServer, isSuperParentGameId, isGameServerName, isIp, isDeviceType, isLoginType, isServerIdUn, isSourceServerName, isProjectId1, isRemoveGame, isRemoveGameForSystem, isOrderLy, isAddCorpWechat,
         isWakeUp, isBackStatus, isGameDimension, isUserLastRegTime, isUserLastRegAgentId, isUserLastPitcherId, isRechargeAmountWithin24h, isRechargeTotalAmountWithin24h
     } = props
@@ -1595,6 +1599,11 @@ const QueryForm: React.FC<Props> = (props) => {
                 <DatePicker.RangePicker style={{ width: 230 }} placeholder={['角色创建开始日期', '角色创建结束日期']} {...isCreateRoleDay} />
             </Form.Item></Col>}
 
+            {/* 最近活跃 */}
+            {isLastActiveTime && <Col><Form.Item name='lastActiveTime'>
+                <DatePicker.RangePicker style={{ width: 230 }} placeholder={['最近活跃开始日期', '最近活跃结束日期']} {...isLastActiveTime} />
+            </Form.Item></Col>}
+
             {/* 单个充值日期搜索 */}
             {isRechargeDate && <Col><Form.Item name='rechargeDate'>
                 <DatePicker placeholder={'充值日期'} />
@@ -1614,11 +1623,11 @@ const QueryForm: React.FC<Props> = (props) => {
                 <Space size={0}>
                     <Form.Item name={'rechargeAmountWithin24hUnit'} noStyle>
                         <Select placeholder="条件" style={{ width: 70 }} allowClear>
-                            <Select.Option value=">=">{`>=`}</Select.Option>
-                            <Select.Option value="<=">{`<=`}</Select.Option>
-                            {/* <Select.Option value="=">{`=`}</Select.Option>
+                            {/* <Select.Option value=">=">{`>=`}</Select.Option>
+                            <Select.Option value="<=">{`<=`}</Select.Option> */}
+                            <Select.Option value="=">{`=`}</Select.Option>
                             <Select.Option value=">">{`>`}</Select.Option>
-                            <Select.Option value="<">{`<`}</Select.Option> */}
+                            <Select.Option value="<">{`<`}</Select.Option>
                         </Select>
                     </Form.Item>
                     <Form.Item name={'rechargeAmountWithin24h'} noStyle>

+ 37 - 5
src/pages/gameDataStatistics/adlist/monitor/tableConfig.tsx

@@ -171,7 +171,7 @@ function columns12(dayHandle: (data: any) => void): { label: string, fieldSHow?:
             label: '消耗',
             data: [
                 {
-                    title: '今日消耗', dataIndex: 'todayCost', label: '消耗', align: 'center', width: 85, sorter: true, default: 11,
+                    title: '今日消耗', dataIndex: 'todayCost', label: '消耗', align: 'center', width: 95, sorter: true, default: 11,
                     render: (a: any) => <Statistic valueStyle={{ fontWeight: 'bold', fontSize: 14 }} value={a || 0} />
                 },
                 {
@@ -184,7 +184,7 @@ function columns12(dayHandle: (data: any) => void): { label: string, fieldSHow?:
             label: '广告媒体端数据',
             data: [
                 {
-                    title: '曝光量', dataIndex: 'showCount', label: '广告媒体端数据', align: 'center', width: 60, sorter: true, default: 12, className: "adDataBackColorClass",
+                    title: '曝光量', dataIndex: 'showCount', label: '广告媒体端数据', align: 'center', width: 70, sorter: true, default: 12, className: "adDataBackColorClass",
                     render: (a: any) => <Statistic value={a || 0} />
                 },
                 {
@@ -268,13 +268,45 @@ function columns12(dayHandle: (data: any) => void): { label: string, fieldSHow?:
                     render: (a: any) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '七日人均付费次数(广告)', dataIndex: 'attributionActivePay7dPerCount', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true,
+                    title: '7日人均付费次数(广告)', dataIndex: 'attributionActivePay7dPerCount', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true,
                     render: (a: any) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '七日付费成本(广告)', dataIndex: 'attributionGamePay7dCost', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 80, sorter: true,
+                    title: '7日付费成本(广告)', dataIndex: 'attributionGamePay7dCost', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 80, sorter: true,
                     render: (a: any) => <Statistic value={a || 0} />
-                }
+                },
+                {
+                    title: '7日首次付费数(广告)', dataIndex: 'firstAttributionGamePay7dCount', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 90, sorter: true,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '激活后一日付费ROI(广告)', dataIndex: 'attributionGameInAppRoi2days', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 100, sorter: true,
+                    render: (a: number) => <Statistic value={a ? a : 0} precision={2} valueStyle={!a ? {} : a >= 100 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '激活后二日付费ROI(广告)', dataIndex: 'attributionGameInAppRoi3days', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 100, sorter: true,
+                    render: (a: number) => <Statistic value={a ? a : 0} precision={2} valueStyle={!a ? {} : a >= 100 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '激活后三日付费ROI(广告)', dataIndex: 'attributionGameInAppRoi4days', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 100, sorter: true,
+                    render: (a: number) => <Statistic value={a ? a : 0} precision={2} valueStyle={!a ? {} : a >= 100 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '激活后四日付费ROI(广告)', dataIndex: 'attributionGameInAppRoi5days', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 100, sorter: true,
+                    render: (a: number) => <Statistic value={a ? a : 0} precision={2} valueStyle={!a ? {} : a >= 100 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '激活后五日付费ROI(广告)', dataIndex: 'attributionGameInAppRoi6days', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 100, sorter: true,
+                    render: (a: number) => <Statistic value={a ? a : 0} precision={2} valueStyle={!a ? {} : a >= 100 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '激活后六日付费ROI(广告)', dataIndex: 'attributionGameInAppRoi7days', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 100, sorter: true,
+                    render: (a: number) => <Statistic value={a ? a : 0} precision={2} valueStyle={!a ? {} : a >= 100 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '激活后七日付费ROI(广告)', dataIndex: 'attributionGameInAppRoi8days', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 100, sorter: true,
+                    render: (a: number) => <Statistic value={a ? a : 0} precision={2} valueStyle={!a ? {} : a >= 100 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
             ]
         },
         {

+ 33 - 1
src/pages/gameDataStatistics/adlist/monitor/tableConfigDay.tsx

@@ -271,7 +271,39 @@ function columns12(): { label: string, fieldSHow?: { label: string, saveField: s
                 {
                     title: 'ltv1(实际数据) ', dataIndex: 'ltvDay1ActualData', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 70, sorter: true,
                     render: (a: any) => <Statistic value={a || 0} />
-                }
+                },
+                {
+                    title: '7日首次付费数(广告)', dataIndex: 'firstAttributionGamePay7dCount', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 90, sorter: true,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '激活后一日付费ROI(广告)', dataIndex: 'attributionGameInAppRoi2days', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 100, sorter: true,
+                    render: (a: number) => <Statistic value={a ? a : 0} precision={2} valueStyle={!a ? {} : a >= 100 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '激活后二日付费ROI(广告)', dataIndex: 'attributionGameInAppRoi3days', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 100, sorter: true,
+                    render: (a: number) => <Statistic value={a ? a : 0} precision={2} valueStyle={!a ? {} : a >= 100 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '激活后三日付费ROI(广告)', dataIndex: 'attributionGameInAppRoi4days', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 100, sorter: true,
+                    render: (a: number) => <Statistic value={a ? a : 0} precision={2} valueStyle={!a ? {} : a >= 100 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '激活后四日付费ROI(广告)', dataIndex: 'attributionGameInAppRoi5days', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 100, sorter: true,
+                    render: (a: number) => <Statistic value={a ? a : 0} precision={2} valueStyle={!a ? {} : a >= 100 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '激活后五日付费ROI(广告)', dataIndex: 'attributionGameInAppRoi6days', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 100, sorter: true,
+                    render: (a: number) => <Statistic value={a ? a : 0} precision={2} valueStyle={!a ? {} : a >= 100 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '激活后六日付费ROI(广告)', dataIndex: 'attributionGameInAppRoi7days', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 100, sorter: true,
+                    render: (a: number) => <Statistic value={a ? a : 0} precision={2} valueStyle={!a ? {} : a >= 100 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '激活后七日付费ROI(广告)', dataIndex: 'attributionGameInAppRoi8days', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 100, sorter: true,
+                    render: (a: number) => <Statistic value={a ? a : 0} precision={2} valueStyle={!a ? {} : a >= 100 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
             ]
         },
         {

+ 9 - 1
src/pages/gameDataStatistics/roleOperate/roleRechargeRanking/index.tsx

@@ -102,7 +102,7 @@ const RoleRechargeRanking: React.FC = () => {
                 initialValues={{ sourceSystem: 'ZX_ONE', rechargeDay: [moment(), moment()] }}
                 onChange={(data: any) => {
                     setSelectedRowKeys([])
-                    const { rechargeDay, createRoleDay, superParentGameId, mobile, regPayIntervalTime, ...par } = data
+                    const { rechargeDay, createRoleDay, superParentGameId, mobile, regPayIntervalTime, lastActiveTime, ...par } = data
                     let newQueryForm = JSON.parse(JSON.stringify(queryForm))
                     newQueryForm.pageNum = 1
                     newQueryForm.phone = mobile
@@ -121,6 +121,13 @@ const RoleRechargeRanking: React.FC = () => {
                         delete newQueryForm['createRoleBeginDate']
                         delete newQueryForm['createRoleEndDate']
                     }
+                    if (lastActiveTime && lastActiveTime?.length === 2) {
+                        newQueryForm['lastActiveTimeMin'] = moment(lastActiveTime[0]).format('YYYY-MM-DD')
+                        newQueryForm['lastActiveTimeMax'] = moment(lastActiveTime[1]).format('YYYY-MM-DD')
+                    } else {
+                        delete newQueryForm['lastActiveTimeMin']
+                        delete newQueryForm['lastActiveTimeMax']
+                    }
                     if (regPayIntervalTime?.length > 0 && (regPayIntervalTime[0] || regPayIntervalTime[1])) {
                         newQueryForm.totalRechargeMin = regPayIntervalTime[0]
                         newQueryForm.totalRechargeMax = regPayIntervalTime[1]
@@ -155,6 +162,7 @@ const RoleRechargeRanking: React.FC = () => {
                 isOs
                 isRechargeAmountWithin24h
                 isRechargeTotalAmountWithin24h
+                isLastActiveTime={{ }}
             />}
             scroll={{ x: 1000, y: 600 }}
             isVirtually={false}

+ 1 - 1
src/pages/gameDataStatistics/roleOperate/roleRechargeRanking/tableConfig.tsx

@@ -132,7 +132,7 @@ function columns12(
                 },
                 { title: '角色平均单价', dataIndex: 'avg_amount', label: '角色充值信息', align: 'center', width: 70, default: 13, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
                 { title: '角色累计充值次数', dataIndex: 'amount_count', label: '角色充值信息', align: 'center', width: 70, default: 14, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
-                { title: '24小时内单笔充值金额', dataIndex: 'max_amount', label: '角色充值信息', align: 'center', width: 80, render: (a: string) => <WidthEllipsis value={a?.toString()} /> },
+                { title: '24小时内单笔充值金额', dataIndex: 'role_amount', label: '角色充值信息', align: 'center', width: 80, render: (a: string) => <WidthEllipsis value={a?.toString()} /> },
                 { title: '24小时内累计充值总金额', dataIndex: 'role_total_amount', label: '角色充值信息', align: 'center', width: 85, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
                 { title: '角色最近充值时间', dataIndex: 'role_last_pay_time', label: '角色充值信息', align: 'center', width: 140, render: (a: string, b: any) => (<WidthEllipsis value={a} />) },
                 { title: '角色最近活跃时间', dataIndex: 'role_active_time', label: '角色充值信息', align: 'center', width: 140, render: (a: string, b: any) => (<WidthEllipsis value={a} />) },