查询条件处理
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
* @Author: kangkang
|
||||
* @Date: 2020-10-13 19:52:37
|
||||
* @LastEditors: kangkang
|
||||
* @LastEditTime: 2020-10-23 18:26:27
|
||||
* @LastEditTime: 2020-10-24 14:23:06
|
||||
*/
|
||||
/*
|
||||
* @Descripttion:
|
||||
@@ -34,31 +34,40 @@ class IncomeCheck extends Controller
|
||||
if (isset($_GET['PageIndex'])) {
|
||||
$page = ($_GET['PageIndex'] - 1) * 50;
|
||||
}
|
||||
if (isset($_GET['ProductId'])){
|
||||
if (isset($_GET['ProductId'])) {
|
||||
$where['ProductId'] = $_GET['ProductId'];
|
||||
}
|
||||
if (isset($_GET['PackageId'])){
|
||||
if (isset($_GET['PackageId'])) {
|
||||
$where['PackageId'] = $_GET['PackageId'];
|
||||
}
|
||||
if (!empty($_GET['keyWord'])){
|
||||
if (!empty($_GET['keyWord'])) {
|
||||
$where['OrderNo'] = $_GET['keyWord'];
|
||||
}
|
||||
|
||||
|
||||
$check_model = new CheckModel;
|
||||
$list = $check_model->getListPage([], '*', 'id desc', "$page,50");
|
||||
foreach ($list as $k => &$v) {
|
||||
$v['day_time'] = date('Y-m-d', strtotime($v['day_time']) - 86400);
|
||||
}
|
||||
$data = [
|
||||
'Code' => 10000,
|
||||
'data' => $list,
|
||||
'msg' => '',
|
||||
'count' => (int)$check_model->getCount()['count'],
|
||||
'count' => (int) $check_model->getCount()['count'],
|
||||
];
|
||||
echo json_encode($data);
|
||||
}
|
||||
|
||||
public function search(){
|
||||
public function search()
|
||||
{
|
||||
$data = json_decode(file_get_contents("php://input"), true)['time'];
|
||||
$data[0] = date('Y-m-d', strtotime($data[0]) + 86400) . ' 00:00:00';
|
||||
$data[1] = date('Y-m-d', strtotime($data[1]) + 86400) . ' 23:59:59';
|
||||
$check_model = new CheckModel;
|
||||
$list = $check_model->getListPage(['day_time'=>['>',$data[0]],'day_time'=>['<',$data[1]]], '*', 'id desc', "10000");
|
||||
$list = $check_model->getListPages(['day_time' => [['>' , $data[0]], ['<' , $data[1]]]], '*', 'id desc', "10000");
|
||||
foreach ($list as $k => &$v) {
|
||||
$v['day_time'] = date('Y-m-d', strtotime($v['day_time']) - 86400);
|
||||
}
|
||||
$data = [
|
||||
'Code' => 30000,
|
||||
'data' => $list,
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
/*
|
||||
* @Author: your name
|
||||
* @Date: 2020-09-30 17:32:46
|
||||
* @LastEditTime: 2020-10-23 16:23:12
|
||||
* @LastEditTime: 2020-10-24 12:11:18
|
||||
* @LastEditors: kangkang
|
||||
* @Description: In User Settings Edit
|
||||
* @FilePath: /phptest/fastphp/base/Model.php
|
||||
@@ -52,6 +52,18 @@ class Model extends Sql
|
||||
return $this->field($fields)->where($where)->order($order)->limit($limit)->fetchAll();
|
||||
}
|
||||
|
||||
/**
|
||||
* 按照页数获取数据 复杂查询
|
||||
* @param $fields 'id,count(1)...'
|
||||
* @param $order 'id desc'/'id asc'
|
||||
* @param $limit = '100' 限制查询100条
|
||||
* $limit = '2,100' 查询第二页 100条数据
|
||||
*/
|
||||
public function getListPages($where = [], $fields = '*', $order = 'id desc', $limit = '50')
|
||||
{
|
||||
return $this->field($fields)->wheres($where)->order($order)->limit($limit)->fetchAll();
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: 获取一条数据
|
||||
* @param {type}
|
||||
|
||||
@@ -31,9 +31,11 @@ class Sql
|
||||
$this->param = [];
|
||||
$this->filter = '';
|
||||
if ($where) {
|
||||
$this->filter .= ' WHERE ';
|
||||
if(!strpos('$this->filter','WHERE') !== false){
|
||||
$this->filter .= ' WHERE ';
|
||||
}
|
||||
if (is_string($where)) {
|
||||
$this->filter .= ' ' . $where;
|
||||
$this->filter .= ' WHERE ' . $where;
|
||||
} else {
|
||||
$flag = true;
|
||||
foreach ($where as $key => $value) {
|
||||
@@ -69,6 +71,73 @@ class Sql
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: 查询条件 处理复杂查询条件
|
||||
* @param {*} [ 'day_time' => [ ['>' , val1], ['<' , val2] ] ]
|
||||
* @return {*}
|
||||
*/
|
||||
public function wheres($where)
|
||||
{
|
||||
$this->param = [];
|
||||
$this->filter = '';
|
||||
if ($where) {
|
||||
|
||||
if(!strpos('$this->filter','WHERE') !== false){
|
||||
$this->filter .= ' WHERE ';
|
||||
}
|
||||
if (is_string($where)) {
|
||||
$this->filter .= ' WHERE ' . $where;
|
||||
} else {
|
||||
$flag = true;
|
||||
foreach ($where as $key => $value) {
|
||||
if ($flag) {
|
||||
$flag = false;
|
||||
if (is_array($value)) {
|
||||
$flag2 = true;
|
||||
foreach($value as $k => $v) {
|
||||
if($flag2){
|
||||
$flag2 = false;
|
||||
if($v[0] == 'in'){
|
||||
$this->filter .= ' `' . $key . '` ' . $v[0] . '('.implode(',',$v[1]).')';
|
||||
} else {
|
||||
$this->filter .= ' `' . $key . '` ' . $v[0] . ' :' . $key.$k;
|
||||
$this->param[$key.$k] = $v[1];
|
||||
}
|
||||
} else {
|
||||
if($v[0] == 'in'){
|
||||
$this->filter .= ' AND `' . $key . '` ' . $v[0] . '('.implode(',',$v[1]).')';
|
||||
} else {
|
||||
$this->filter .= ' AND `' . $key . '` ' . $v[0] . ' :' . $key.$k;
|
||||
$this->param[$key.$k] = $v[1];
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$this->filter .= ' `' . $key . '` = :' . $key;
|
||||
$this->param[$key] = $value;
|
||||
}
|
||||
} else {
|
||||
if (is_array($value)) {
|
||||
foreach($value as $k => $v) {
|
||||
if($v[0] == 'in'){
|
||||
$this->filter .= ' AND `' . $key . '` ' . $v[0] . '('.implode(',',$v[1]).')';
|
||||
} else {
|
||||
$this->filter .= ' AND `' . $key . '` ' . $v[0] . ' :' . $key.$k;
|
||||
$this->param[$key.$k] = $v[1];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$this->filter .= ' AND `' . $key . '` = :' . $key;
|
||||
$this->param[$key] = $value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 拼装排序条件
|
||||
* @param array $order 排序条件
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* @Author: kangkang
|
||||
* @Date: 2020-10-03 18:23:43
|
||||
* @LastEditors: kangkang
|
||||
* @LastEditTime: 2020-10-23 18:56:29
|
||||
* @LastEditTime: 2020-10-24 14:52:12
|
||||
*/
|
||||
$is_script = 1;
|
||||
include __DIR__ . '/../index.php';
|
||||
@@ -37,20 +37,20 @@ $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]];
|
||||
$where = ['UpdateTime' => [['<', $today],['>', $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))]])
|
||||
->wheres(['TradeNo' => ['like', '2020%'], 'OrderState' => ['in', $charge_order_enum::$PayComplete], 'UpdateTime' => [['<', date('Y-m-d', time())],['>', 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))]])
|
||||
->wheres(['TradeNo' => ['like', '4200%'], 'OrderState' => ['in', $charge_order_enum::$PayComplete], 'UpdateTime' => [['<', date('Y-m-d', time())],['>', date('Y-m-d', (time() - 86400))]]])
|
||||
->fetch()["wechat_invest"] ?? 0;
|
||||
|
||||
$invest_info = $score_model
|
||||
->field('ScoreType,SUM(`ScoreValue`) AS money')
|
||||
->where($where)
|
||||
->wheres($where)
|
||||
->group(['ScoreType'])
|
||||
->fetchAll();
|
||||
|
||||
@@ -81,7 +81,7 @@ foreach ($invest_info as $v) {
|
||||
$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)
|
||||
->wheres($pay_info_where)
|
||||
->group(['PayType'])
|
||||
->fetchAll();
|
||||
foreach ($pay_info as $v) {
|
||||
@@ -100,7 +100,7 @@ foreach ($pay_info as $v) {
|
||||
$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)
|
||||
->wheres($amount_info_where)
|
||||
->group(['OrderType'])
|
||||
->fetchAll();
|
||||
|
||||
@@ -119,7 +119,7 @@ foreach ($amount_info as $v) {
|
||||
}
|
||||
$data['refund_amount'] = $product_order_model
|
||||
->field('SUM(`RefundAmount`) AS refund_amount')
|
||||
->where(array_merge($where, ['OrderState' => ['in', $product_order_enum::$Refunds]]))
|
||||
->wheres(array_merge($where, ['OrderState' => ['in', $product_order_enum::$Refunds]]))
|
||||
->fetch()["refund_amount"] ?? 0;
|
||||
//获取昨天的数据
|
||||
$yestoday_user_balance = $income_check_model->getNewOne()['user_balance'] ?? 0;
|
||||
@@ -134,7 +134,7 @@ $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['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);
|
||||
|
||||
Reference in New Issue
Block a user