This commit is contained in:
19
app/api/model/IncomeCheck.php
Normal file
19
app/api/model/IncomeCheck.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
/*
|
||||
* @Descripttion:
|
||||
* @version:
|
||||
* @Author: kangkang
|
||||
* @Date: 2020-10-22 16:13:41
|
||||
* @LastEditors: kangkang
|
||||
* @LastEditTime: 2020-10-23 14:11:56
|
||||
*/
|
||||
|
||||
|
||||
namespace app\api\model;
|
||||
|
||||
use fastphp\base\Model;
|
||||
|
||||
class IncomeCheck extends Model
|
||||
{
|
||||
protected $table = 'income_check';
|
||||
}
|
||||
19
app/api/model/ProductOrder.php
Normal file
19
app/api/model/ProductOrder.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
/*
|
||||
* @Descripttion:
|
||||
* @version:
|
||||
* @Author: kangkang
|
||||
* @Date: 2020-10-22 16:13:41
|
||||
* @LastEditors: kangkang
|
||||
* @LastEditTime: 2020-10-23 09:48:31
|
||||
*/
|
||||
|
||||
|
||||
namespace app\api\model;
|
||||
|
||||
use fastphp\base\Model;
|
||||
|
||||
class ProductOrder extends Model
|
||||
{
|
||||
protected $table = 'product_order';
|
||||
}
|
||||
19
app/api/model/UserChargeOrder.php
Normal file
19
app/api/model/UserChargeOrder.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
/*
|
||||
* @Descripttion:
|
||||
* @version:
|
||||
* @Author: kangkang
|
||||
* @Date: 2020-10-22 16:13:41
|
||||
* @LastEditors: kangkang
|
||||
* @LastEditTime: 2020-10-22 19:05:35
|
||||
*/
|
||||
|
||||
|
||||
namespace app\api\model;
|
||||
|
||||
use fastphp\base\Model;
|
||||
|
||||
class UserChargeOrder extends Model
|
||||
{
|
||||
protected $table = 'user_charge_order';
|
||||
}
|
||||
19
app/api/model/UserScore.php
Normal file
19
app/api/model/UserScore.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
/*
|
||||
* @Descripttion:
|
||||
* @version:
|
||||
* @Author: kangkang
|
||||
* @Date: 2020-10-22 16:13:41
|
||||
* @LastEditors: kangkang
|
||||
* @LastEditTime: 2020-10-22 16:14:20
|
||||
*/
|
||||
|
||||
|
||||
namespace app\api\model;
|
||||
|
||||
use fastphp\base\Model;
|
||||
|
||||
class UserScore extends Model
|
||||
{
|
||||
protected $table = 'user_score';
|
||||
}
|
||||
@@ -5,7 +5,7 @@
|
||||
* @Author: kangkang
|
||||
* @Date: 2020-09-30 17:32:46
|
||||
* @LastEditors: kangkang
|
||||
* @LastEditTime: 2020-10-21 20:23:37
|
||||
* @LastEditTime: 2020-10-23 16:46:37
|
||||
*/
|
||||
|
||||
return [
|
||||
|
||||
63
enum/order/ProductOrder.php
Normal file
63
enum/order/ProductOrder.php
Normal file
@@ -0,0 +1,63 @@
|
||||
<?php
|
||||
/*
|
||||
* @Descripttion:
|
||||
* @version:
|
||||
* @Author: kangkang
|
||||
* @Date: 2020-10-22 15:35:49
|
||||
* @LastEditors: kangkang
|
||||
* @LastEditTime: 2020-10-23 15:37:17
|
||||
*/
|
||||
namespace enum\order;
|
||||
|
||||
class ProductOrder
|
||||
{
|
||||
//支付方式
|
||||
public static $ScoreName = [
|
||||
10 => '余额',
|
||||
70 => '微信',
|
||||
100 => '支付宝',
|
||||
];
|
||||
|
||||
public static $Balance = 10;
|
||||
public static $Wechat = 70;
|
||||
public static $Ali = 100;
|
||||
|
||||
//付款状态
|
||||
public static $OrderState = [
|
||||
10 => '待付款',
|
||||
20 => '已付款',
|
||||
30 => '申请退款',
|
||||
40 => '人工退款',
|
||||
50 => '自动退款',
|
||||
80 => '超时关闭',
|
||||
90 => '订单完成',
|
||||
];
|
||||
|
||||
public static $NoPay = 10;
|
||||
public static $PayOk = 20;
|
||||
public static $RequestRefund = 30;
|
||||
public static $UserRefundOver = 40;
|
||||
public static $AutoRefundOver = 50;
|
||||
public static $TimeOutClose = 80;
|
||||
public static $Complete = 90;
|
||||
|
||||
//付款完成
|
||||
public static $PayComplete = [20,90];
|
||||
//账单付款和退款
|
||||
public static $Refunds = [30,40,50];
|
||||
|
||||
//订单类型
|
||||
public static $OrderType = [
|
||||
1 => '新开',
|
||||
2 => '批量新开',
|
||||
3 => '续费',
|
||||
4 => '批量续费',
|
||||
5 => '退款',
|
||||
];
|
||||
public static $New = 1;
|
||||
public static $News = 2;
|
||||
public static $AgainBuy = 3;
|
||||
public static $AgainBuys = 4;
|
||||
public static $Refund = 5;
|
||||
|
||||
}
|
||||
37
enum/order/UserChargeOrder.php
Normal file
37
enum/order/UserChargeOrder.php
Normal file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
/*
|
||||
* @Descripttion:
|
||||
* @version:
|
||||
* @Author: kangkang
|
||||
* @Date: 2020-10-22 15:35:49
|
||||
* @LastEditors: kangkang
|
||||
* @LastEditTime: 2020-10-23 11:44:10
|
||||
*/
|
||||
namespace enum\order;
|
||||
|
||||
class UserChargeOrder
|
||||
{
|
||||
|
||||
//付款状态
|
||||
public static $OrderState = [
|
||||
10 => '待付款',
|
||||
20 => '已付款',
|
||||
30 => '申请退款',
|
||||
40 => '人工退款',
|
||||
50 => '自动退款',
|
||||
80 => '超时关闭',
|
||||
90 => '订单完成',
|
||||
];
|
||||
|
||||
public static $NoPay = 10;
|
||||
public static $PayOk = 20;
|
||||
public static $RequestRefund = 30;
|
||||
public static $UserRefundOver = 40;
|
||||
public static $AutoRefundOver = 50;
|
||||
public static $TimeOutClose = 80;
|
||||
public static $Complete = 90;
|
||||
|
||||
//付款完成
|
||||
public static $PayComplete = [20,90];
|
||||
|
||||
}
|
||||
37
enum/order/UserScore.php
Normal file
37
enum/order/UserScore.php
Normal file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
/*
|
||||
* @Descripttion:
|
||||
* @version:
|
||||
* @Author: kangkang
|
||||
* @Date: 2020-10-22 15:35:49
|
||||
* @LastEditors: kangkang
|
||||
* @LastEditTime: 2020-10-22 17:43:45
|
||||
*/
|
||||
namespace enum\order;
|
||||
|
||||
class UserScore
|
||||
{
|
||||
|
||||
public static $ScoreName = [
|
||||
1 => '管理员充值',
|
||||
2 => '管理员扣除',
|
||||
3 => '淘宝充值',
|
||||
4 => '淘宝退款',
|
||||
5 => '账号退款',
|
||||
6 => '账号付款',
|
||||
7 => '用户充值',
|
||||
8 => '用户提现扣除',
|
||||
9 => '提现被拒退还',
|
||||
];
|
||||
|
||||
public static $ManageAdd = 1;
|
||||
public static $ManagerDeduct = 2;
|
||||
public static $TaoBaoAdd = 3;
|
||||
public static $TaoBaoRefund = 4;
|
||||
public static $AccountRefund = 5;
|
||||
public static $Pay = 6;
|
||||
public static $UserCharge = 7;
|
||||
public static $UserCashOut = 8;
|
||||
public static $ReturnMoney = 9;
|
||||
|
||||
}
|
||||
@@ -2,7 +2,7 @@
|
||||
/*
|
||||
* @Author: your name
|
||||
* @Date: 2020-09-30 17:32:46
|
||||
* @LastEditTime: 2020-10-14 20:40:36
|
||||
* @LastEditTime: 2020-10-23 16:23:12
|
||||
* @LastEditors: kangkang
|
||||
* @Description: In User Settings Edit
|
||||
* @FilePath: /phptest/fastphp/base/Model.php
|
||||
@@ -61,6 +61,15 @@ class Model extends Sql
|
||||
{
|
||||
return $this->field($fields)->where($where)->limit('1')->fetch();
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: 获取最新一条数据
|
||||
* @param {*}
|
||||
* @return {*}
|
||||
*/
|
||||
public function getNewOne($fields = '*'){
|
||||
return $this->field($fields)->order('id desc')->limit(1)->fetch();
|
||||
}
|
||||
/**
|
||||
* @description: 更新一条数据
|
||||
* @param {type}
|
||||
|
||||
@@ -40,16 +40,24 @@ class Sql
|
||||
if ($flag) {
|
||||
$flag = false;
|
||||
if (is_array($value)) {
|
||||
$this->filter .= ' `' . $key . '` ' . $value[0] . ' :' . $key;
|
||||
$this->param[$key] = $value[1];
|
||||
if($value[0] == 'in'){
|
||||
$this->filter .= ' `' . $key . '` ' . $value[0] . '('.implode(',',$value[1]).')';
|
||||
} else {
|
||||
$this->filter .= ' `' . $key . '` ' . $value[0] . ' :' . $key;
|
||||
$this->param[$key] = $value[1];
|
||||
}
|
||||
} else {
|
||||
$this->filter .= ' `' . $key . '` = :' . $key;
|
||||
$this->param[$key] = $value;
|
||||
}
|
||||
} else {
|
||||
if (is_array($value)) {
|
||||
$this->filter .= ' AND `' . $key . '` ' . $value[0] . ' :' . $key;
|
||||
$this->param[$key] = $value[1];
|
||||
if($value[0] == 'in'){
|
||||
$this->filter .= ' AND `' . $key . '` ' . $value[0] . '('.implode(',',$value[1]).')';
|
||||
} else {
|
||||
$this->filter .= ' AND `' . $key . '` ' . $value[0] . ' :' . $key;
|
||||
$this->param[$key] = $value[1];
|
||||
}
|
||||
} else {
|
||||
$this->filter .= ' AND `' . $key . '` = :' . $key;
|
||||
$this->param[$key] = $value;
|
||||
@@ -83,7 +91,7 @@ class Sql
|
||||
*/
|
||||
public function group($group = [])
|
||||
{
|
||||
if ($order) {
|
||||
if ($group) {
|
||||
$this->filter .= ' GROUP BY ';
|
||||
$this->filter .= ' ' . implode(' ,', $group) . ' ';
|
||||
}
|
||||
|
||||
137
script/income_check_script.php
Normal file
137
script/income_check_script.php
Normal file
@@ -0,0 +1,137 @@
|
||||
<?php
|
||||
/*
|
||||
* @Descripttion:
|
||||
* @version:
|
||||
* @Author: kangkang
|
||||
* @Date: 2020-10-03 18:23:43
|
||||
* @LastEditors: kangkang
|
||||
* @LastEditTime: 2020-10-23 16:43:17
|
||||
*/
|
||||
$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['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;
|
||||
}
|
||||
}
|
||||
|
||||
$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['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);
|
||||
Reference in New Issue
Block a user