Files
juipphp/script/income_check_script.php

141 lines
6.2 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
/*
* @Descripttion:
* @version:
* @Author: kangkang
* @Date: 2020-10-03 18:23:43
* @LastEditors: kangkang
* @LastEditTime: 2020-10-23 18:56:29
*/
$is_script = 1;
include __DIR__ . '/../index.php';
use app\api\model\IncomeCheck as IncomeCheckModel;
use app\api\model\ProductOrder as ProductOrderModel;
use app\api\model\User;
use app\api\model\UserChargeOrder as ChargeOrderModel;
use app\api\model\UserScore as ScoreModel;
use enum\order\ProductOrder as ProductOrderEnum;
use enum\order\UserChargeOrder as ChargeOrderEnum;
use enum\order\UserScore as ScoreEnum;
$user = new User;
$charge_order_model = new ChargeOrderModel;
$charge_order_enum = new ChargeOrderEnum;
$score_model = new ScoreModel;
$score_enum = new ScoreEnum;
$product_order_model = new ProductOrderModel;
$product_order_enum = new ProductOrderEnum;
$income_check_model = new IncomeCheckModel;
$data = [];
$today = date('Y-m-d', time());
$yesterday = date('Y-m-d', (time() - 86400));
$data['user_balance'] = $user->field('SUM(`RestAmount`) AS balance')->fetch()['balance'];
$where = ['UpdateTime' => ['<', $data], 'UpdateTime' => ['>', $yesterday]];
$data['ali_invest'] = $charge_order_model
->field('SUM(`OrderAmount`) AS ali_invest')
->where(['TradeNo' => ['like', '2020%'], 'OrderState' => ['in', $charge_order_enum::$PayComplete], 'UpdateTime' => ['<', date('Y-m-d', time())], 'UpdateTime' => ['>', date('Y-m-d', (time() - 86400))]])
->fetch()["ali_invest"] ?? 0;
$data['wechat_invest'] = $charge_order_model
->field('SUM(`OrderAmount`) AS wechat_invest')
->where(['TradeNo' => ['like', '4200%'], 'OrderState' => ['in', $charge_order_enum::$PayComplete], 'UpdateTime' => ['<', date('Y-m-d', time())], 'UpdateTime' => ['>', date('Y-m-d', (time() - 86400))]])
->fetch()["wechat_invest"] ?? 0;
$invest_info = $score_model
->field('ScoreType,SUM(`ScoreValue`) AS money')
->where($where)
->group(['ScoreType'])
->fetchAll();
$data['manager_invest'] = $data['cash_out_refund'] = $data['manager_deduct'] = $data['cash_out'] = $data['taobao_invest'] = $data['taobao_refund'] = $data['balance_pay'] = $data['wechat_pay'] = $data['ali_pay'] = $data['new_amount'] = $data['renew_amount'] = $data['refund_amount'] = 0;
foreach ($invest_info as $v) {
switch ($v['ScoreType']) {
case $score_enum::$ManageAdd:
$data['manager_invest'] = $v['money'];
break;
case $score_enum::$ManagerDeduct:
$data['manager_deduct'] = $v['money'];
break;
case $score_enum::$UserCashOut:
$data['cash_out'] = $v['money'];
break;
case $score_enum::$TaoBaoAdd:
$data['taobao_invest'] = $v['money'];
break;
case $score_enum::$TaoBaoRefund:
$data['taobao_refund'] = $v['money'];
break;
case $score_enum::$ReturnMoney:
$data['cash_out_refund'] = $v['money'];
break;
}
}
$pay_info_where = array_merge($where, ['OrderState' => ['in', $product_order_enum::$PayComplete]]);
$pay_info = $product_order_model
->field('PayType,SUM(`PaymentAmount`) AS money')
->where($pay_info_where)
->group(['PayType'])
->fetchAll();
foreach ($pay_info as $v) {
switch ($v['PayType']) {
case $product_order_enum::$Balance:
$data['balance_pay'] = $v['money'];
break;
case $product_order_enum::$Wechat:
$data['wechat_pay'] = $v['money'];
break;
case $product_order_enum::$Ali:
$data['ali_pay'] = $v['money'];
break;
}
}
$amount_info_where = array_merge($where, ['OrderState' => ['in', $product_order_enum::$PayComplete]]);
$amount_info = $product_order_model
->field('OrderType,SUM(`PaymentAmount`) AS money')
->where($amount_info_where)
->group(['OrderType'])
->fetchAll();
$data['new_amount'] = $data['renew_amount'] = 0;
foreach ($amount_info as $v) {
switch ($v['OrderType']) {
case $product_order_enum::$New:
case $product_order_enum::$News:
$data['new_amount'] += $v['money'];
break;
case $product_order_enum::$AgainBuy:
case $product_order_enum::$AgainBuys:
$data['renew_amount'] += $v['money'];
break;
}
}
$data['refund_amount'] = $product_order_model
->field('SUM(`RefundAmount`) AS refund_amount')
->where(array_merge($where, ['OrderState' => ['in', $product_order_enum::$Refunds]]))
->fetch()["refund_amount"] ?? 0;
//获取昨天的数据
$yestoday_user_balance = $income_check_model->getNewOne()['user_balance'] ?? 0;
//base次日会员余额一当日会员余额支付宝充值微信充值淘宝充值管理员充值退款金额一管理员扣除一提现一淘宝退款扣除
$base_money = $data['user_balance'] - $yestoday_user_balance + $data['ali_invest'] + $data['wechat_invest'] + $data['taobao_invest'] + $data['manager_invest'] + $data['refund_amount'] - $data['manager_deduct'] - $data['cash_out'] - $data['taobao_refund'] + $data['cash_out_refund'];
//余额差值=次日会员余额一当日会员余额+支付宝充值+微信充值+淘宝充值+管理员充值+退款金额一管理员扣除一提现一淘宝退款扣除 一余额支付
//收支差值=次日会员余额一当日会员余额+支付宝充值+微信充值+淘宝充值+管理员充值+退款金额一管理员扣除一提现一淘宝退款扣除 +余额支付+支付宝支付+微信支付一新开金额一续费金额
//当日销售额=新开金额+续费金额一退货金额
//当日在总进账=支付宝充值+微信充值+淘宝充值+支付宝支付+微信支付
//当日总支出=提现扣除金额+淘宝扣除金额
$data['balance_diff'] = $base_money - $data['balance_pay'];
$data['in_out_diff'] = $base_money + $data['balance_pay'] + $data['ali_pay'] + $data['wechat_pay'] - $data['new_amount'] - $data['renew_amount'];
$data['sell_monet'] = $data['new_amount'] + $data['renew_amount'] - $data['refund_amount'];
$data['income'] = $data['ali_invest'] + $data['wechat_invest'] - $data['taobao_invest'] + $data['ali_pay'] + $data['wechat_pay'];
$data['expend'] = $data['cash_out'] + $data['taobao_refund'];
$data['day_time'] = date('Y-m-d H:i:s');
// dump($data);die;
$income_check_model->add($data);