用户每日收益汇总

342 阅读1分钟
/opt/php/bin/php /opt/webroot/iyuansong/current/bin/sh.php /crontab/IncomeStatistics/userIncomeStatisticsDay/0-9

记录日志 : day_income_statistics

Q 各种钱统计的讲解

  • 1 判断脚本是否执行和获取执行时间段

    • Q 为什么初始化脚本时间拿不到就从2017-01-01 00:00:00时间开始
  • 2 获取有数据变更的佣金数据

    • Q 为什么反向的只取action_type = 6 ? 为什么 action_type IN ( 1, 3 ) ? 普通订单退货有 6 12 大礼包退货有 8 11
SELECT
   co.*,
   CASE
   	WHEN co.action_type = 6 THEN
   	(
   		SELECT 
   			c.action_time 
   		FROM 
   			plus_commission_log_9 c 
   		WHERE 
   			# child_business_id 为 order_item表 id
   			c.child_business_id = co.child_business_id 
   		AND 
   		    c.action_type IN ( 1, 3 ) 
   	    AND 
   	        c.user_id = co.user_id LIMIT 1 
   	) END AS old_action_time 
FROM
   plus_commission_log_9 co 
WHERE 
   co.status_update_time >= '2019-09-17 23:58:00' 
AND 
       co.status_update_time < '2019-09-18 00:00:00' 
AND 
       co.base_amount != 0 
AND 
       co.identity_type IN ( 3, 4 ) 
ORDER BY 
   co.status_update_time ASC LIMIT 100 OFFSET 0;
  • 3 循环处理每一条佣金汇总

    Q 兼容定金处理的逻辑 action_type in (3,10,12) or ( action_type == 6 and comm_level > 1 )

    • 3.1 如果佣金状态为已生效和待入账(1,2)

      • 3.1.1 佣金类型是1

        • 3.1.1.1 channel = 1 (蜜芽主站) and store_code = 10002 and 消费者 != 贡献者
        // 邀新奖金处理
        $updateData['total_header_comm'] = $commAmount;
        $updateData['total_header_amount'] = $baseAmount;
        // 奖金不计入总销量
        unset($updateData['total_amount']);
        
        • 3.1.1.2 ( channel = 1 and store_code in (10001集装箱奖金 10002拉新plus奖金 10003业绩奖励原名销售奖励 10004活动销售奖励 10005信用卡 10006在线课程 10007保险) and ( 消费者 = 贡献者 or store_code = 10005信用卡奖励 ) )
        // 销售奖金
        $updateData['total_bonuses_comm'] = $commAmount;
        // 奖金不计入总销量
        unset($updateData['total_amount']);
        
        • 3.1.1.3 普通佣金、其他(cps、线下 基本废弃不用)

          • 3.1.1.3.1 已完成且收益产生时间不在当前脚本执行之间之内 的不再次统计 Q
          if($commInfo['status'] == 1 && strtotime($startTime) > strtotime($commInfo['action_time'])){
              unset($updateData);
              break;
          }
          
          • 3.1.1.3.2
          //自买省钱
          if($commInfo['user_id'] == $commInfo['consume_user_id']){
              $updateData['total_self_comm'] = $commAmount;
              $updateData['total_self_amount'] = $baseAmount;
          }else{
              //分享赚钱
              $updateData['total_sale_comm'] = $commAmount;
              $updateData['total_sale_amount'] = $baseAmount;
          }
          
      • 3.1.2 佣金类型是2

    • 3.2 如果佣金状态为取消(3)已取消,费用扣减

    • 3.3 如果佣金状态为退货(4)

  • 4 更新日表数据

  • 5 关闭脚本执行标识和设置脚本下次的开始时间