field('SUM(`RestAmount`) AS balance')->fetch()['balance']; $where1 = ['UpdateTime' => ['<', $today]]; $where2 = ['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' => ['<', $today]]) ->where(['UpdateTime' => ['>', $yesterday]]) ->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' => ['<', $today]]) ->where(['UpdateTime' => ['>', $yesterday]]) ->fetch()["wechat_invest"] ?? 0; $invest_info = $score_model ->field('ScoreType,SUM(`ScoreValue`) AS money') ->where($where1) ->where($where2) ->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($where2, ['OrderState' => ['in', $product_order_enum::$PayComplete]]); $pay_info = $product_order_model ->field('PayType,SUM(`PaymentAmount`) AS money') ->where($where1) ->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($where2, ['OrderState' => ['in', $product_order_enum::$PayComplete]]); $amount_info = $product_order_model ->field('OrderType,SUM(`PaymentAmount`) AS money') ->where($where1) ->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($where1) ->where(array_merge($where2, ['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['cash_out_refund']; $data['day_time'] = date('Y-m-d H:i:s'); dump($data);die; $income_check_model->add($data);