/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 关闭脚本执行标识和设置脚本下次的开始时间