From 9c816fadb781cf309cbc23ff286cf82d6c17b642 Mon Sep 17 00:00:00 2001 From: wanyongkang <937888580@qq.com> Date: Mon, 7 Dec 2020 17:35:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=98=E5=AE=9D=E9=80=80=E6=AC=BE=E3=80=81?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=8F=90=E7=8E=B0=E7=AD=9B=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/order/controller/CashOutAdmin.php | 68 ++++++++++++++--- app/order/controller/TbRefund.php | 102 ++++++++++++++++++++------ app/order/model/CashOut.php | 10 ++- app/order/model/TbRefund.php | 14 +++- fastphp/func/common.php | 40 +++++++++- 5 files changed, 196 insertions(+), 38 deletions(-) diff --git a/app/order/controller/CashOutAdmin.php b/app/order/controller/CashOutAdmin.php index ddbb714..581ae67 100644 --- a/app/order/controller/CashOutAdmin.php +++ b/app/order/controller/CashOutAdmin.php @@ -4,8 +4,8 @@ * @version: * @Author: kangkang * @Date: 2020-10-11 11:22:56 - * @LastEditors: kangkang - * @LastEditTime: 2020-11-02 11:04:32 + * @LastEditors: Please set LastEditors + * @LastEditTime: 2020-12-07 17:30:59 */ namespace app\order\controller; @@ -139,14 +139,27 @@ class CashOutAdmin extends Controller //获取记录 public function search() { - $username = json_decode(file_get_contents("php://input"), true)['username']; - $cash = new CashMoedl; - if ($username) { - $list = $cash->getListPage(['username' => $username], '*', 'id desc', '100'); - } else { - $list = $cash->getListPage(); - $count = $cash->getCount(); + $data = json_decode(file_get_contents("php://input"), true)['data']; + $where = []; + $where_str = ''; + if (!empty($data)) { + if (!empty($data['username'])) { + $where['username'] = ['like', '%' . $data['username'] . '%']; + } + if (!empty($data['op_user'])) { + $where['op_user'] = ['like', '%' . $data['op_user'] . '%']; + } + if (!empty($data['create_time']['st'])) { + $date1 = date('Y-m-d', strtotime($data['create_time']['st'])); + $date2 = date('Y-m-d', strtotime($data['create_time']['et'])); + $where_str = " create_time>='" . $date1 . "' and create_time<='" . $date2 . "' "; + } + if ($data['status'] != null) { + $where['status'] = $data['status']; + } } + $cash = new CashMoedl; + $list = $cash->search($where, '*', 'id desc', '10000', $where_str); //提现状态 $status = ['待处理', '同意', '拒绝']; foreach ($list as &$v) { @@ -175,4 +188,41 @@ class CashOutAdmin extends Controller \result($info,'',30000); } + /** + * @description: 导出数据 + * @param {*} + * @return {*} + */ + public function export() + { + $data = json_decode(file_get_contents("php://input"), true)['data']; + $where = []; + $where_str = ''; + if (!empty($data)) { + if (!empty($data['username'])) { + $where['username'] = ['like', '%' . $data['username'] . '%']; + } + if (!empty($data['op_user'])) { + $where['op_user'] = ['like', '%' . $data['op_user'] . '%']; + } + if (!empty($data['create_time']['st'])) { + $date1 = date('Y-m-d', strtotime($data['create_time']['st'])); + $date2 = date('Y-m-d', strtotime($data['create_time']['et'])); + $where_str = " create_time>='" . $date1 . "' and create_time<='" . $date2 . "' "; + } + if ($data['status'] != null) { + $where['status'] = $data['status']; + } + } + $cash = new CashMoedl; + $list = $cash->search($where, '*', 'id desc', '10000', $where_str); + //提现状态 + $status = ['待处理', '同意', '拒绝']; + foreach ($list as &$v) { + $v['status'] = $status[$v['status']]; + $v['alipay_account'] = substr($v['alipay_account'], 0, 3) . '***' . substr($v['alipay_account'], -3); + } + \exportToCsv('test.csv',['id','用户id','用户名','真实姓名','账单号','支付宝订单号','状态','提现金额','申请理由','客户支付宝张号','处理人','处理备注','提现时间','处理时间'],$list); + } + } diff --git a/app/order/controller/TbRefund.php b/app/order/controller/TbRefund.php index 4da33c9..55ff421 100644 --- a/app/order/controller/TbRefund.php +++ b/app/order/controller/TbRefund.php @@ -4,8 +4,8 @@ * @version: * @Author: kangkang * @Date: 2020-10-13 19:52:37 - * @LastEditors: kangkang - * @LastEditTime: 2020-10-30 19:15:21 + * @LastEditors: Please set LastEditors + * @LastEditTime: 2020-12-07 17:16:18 */ namespace app\order\controller; @@ -22,7 +22,7 @@ class TbRefund extends Controller { $refund = new RefundMOdel; $userModel = new UserModel; - $get_list = $refund->getListPage([],'*','Modified desc'); + $get_list = $refund->getListPage([], '*', 'Modified desc'); $user_phone = []; $lists = []; $list = []; @@ -33,14 +33,14 @@ class TbRefund extends Controller } $lists[] = $v; } - $user_test = $userModel->getListPage('LoginCode in('. implode(',', $user_phone) .') OR Phone in('. implode(',', $user_phone) .')','RestAmount,LoginCode,Phone'); + $user_test = $userModel->getListPage('LoginCode in(' . implode(',', $user_phone) . ') OR Phone in(' . implode(',', $user_phone) . ')', 'RestAmount,LoginCode,Phone'); - foreach ($lists as $key=>$val){ - foreach ($user_test as $k=>$v){ - if($val['Phone'] == $v['LoginCode'] || $val['Phone'] == $v['Phone']){ + foreach ($lists as $key => $val) { + foreach ($user_test as $k => $v) { + if ($val['Phone'] == $v['LoginCode'] || $val['Phone'] == $v['Phone']) { $val['account'] = $v['RestAmount']; $list[] = $val; - } + } } } $count = $refund->getCount(); @@ -60,7 +60,7 @@ class TbRefund extends Controller $page = ($_GET['page'] - 1) * 50; $refund = new RefundMOdel; $userModel = new UserModel; - $get_list = $refund->getListPage([],'*','Modified desc', "$page,50"); + $get_list = $refund->getListPage([], '*', 'Modified desc', "$page,50"); $user_phone = []; $lists = []; $list = []; @@ -71,14 +71,14 @@ class TbRefund extends Controller } $lists[] = $v; } - $user_test = $userModel->getListPage('LoginCode in('. implode(',', $user_phone) .') OR Phone in('. implode(',', $user_phone) .')','RestAmount,LoginCode,Phone'); + $user_test = $userModel->getListPage('LoginCode in(' . implode(',', $user_phone) . ') OR Phone in(' . implode(',', $user_phone) . ')', 'RestAmount,LoginCode,Phone'); - foreach ($lists as $key=>$val){ - foreach ($user_test as $k=>$v){ - if($val['Phone'] == $v['LoginCode'] || $val['Phone'] == $v['Phone']){ + foreach ($lists as $key => $val) { + foreach ($user_test as $k => $v) { + if ($val['Phone'] == $v['LoginCode'] || $val['Phone'] == $v['Phone']) { $val['account'] = $v['RestAmount']; $list[] = $val; - } + } } } $data = [ @@ -91,15 +91,32 @@ class TbRefund extends Controller //获取记录 public function search() { - $Phone = json_decode(file_get_contents("php://input"), true)['Phone']; + $data = json_decode(file_get_contents("php://input"), true)['data']; $refund = new RefundMOdel; $userModel = new UserModel; - if ($Phone) { - $list = $refund->getListPage(['Phone' => $Phone], '*', 'id desc', '100'); - } else { - $list = $refund->getListPage(); - $count = $refund->getCount(); + + $where = []; + $where_str = ''; + if (!empty($data)) { + if (!empty($data['Phone'])) { + $where['Phone'] = ['like', '%' . $data['Phone'] . '%']; + } + if (!empty($data['SellerNick'])) { + $where['SellerNick'] = ['like', '%' . $data['SellerNick'] . '%']; + } + if (!empty($data['handle_user'])) { + $where['handle_user'] = ['like', '%' . $data['handle_user'] . '%']; + } + if (!empty($data['Modified']['st'])) { + $date1 = date('Y-m-d', strtotime($data['Modified']['st'])); + $date2 = date('Y-m-d', strtotime($data['Modified']['et'])); + $where_str = " Modified>='" . $date1 . "' and Modified<='" . $date2 . "' "; + } + if ($data['status'] != null) { + $where['status'] = $data['status']; + } } + $list = $refund->search($where, '*', 'id desc', '10000', $where_str); foreach ($list as &$v) { $v['status'] = RefundEnum::$refundStatus[$v['status']]; $v['account'] = $userModel->getOne(['LoginCode' => $v['Phone']])['RestAmount']; @@ -146,7 +163,7 @@ class TbRefund extends Controller $refund_info = $refund->getOne(['Id' => $id]); $userModel = new UserModel; - $user_info = $userModel->getOne('LoginCode = '.$refund_info['Phone'].' OR Phone='.$refund_info['Phone']); + $user_info = $userModel->getOne('LoginCode = ' . $refund_info['Phone'] . ' OR Phone=' . $refund_info['Phone']); //判断余额是否大于退款金额 $returnOk = $user_info['RestAmount'] - $refund_info["RefundFee"]; @@ -156,8 +173,8 @@ class TbRefund extends Controller $update_data['f_balance'] = $returnOk; if ($refund->updateOne(['Id' => $id], $update_data)) { $user_update['RestAmount'] = $returnOk; - $fff=$userModel->updateOne("LoginCode = '".$refund_info['Phone']."' OR Phone='".$refund_info['Phone']."'", $user_update); - + $fff = $userModel->updateOne("LoginCode = '" . $refund_info['Phone'] . "' OR Phone='" . $refund_info['Phone'] . "'", $user_update); + //记录资金明细 $score_data = [ 'UserId' => $user_info['Id'], @@ -187,5 +204,44 @@ class TbRefund extends Controller echo json_encode($return); } + /** + * @description: 导出数据 + * @param {*} + * @return {*} + */ + public function export() + { + $data = $_GET['data']; + $refund = new RefundMOdel; + $userModel = new UserModel; + + $where = []; + $where_str = ''; + if (!empty($data)) { + if (!empty($data['Phone'])) { + $where['Phone'] = ['like', '%' . $data['Phone'] . '%']; + } + if (!empty($data['SellerNick'])) { + $where['SellerNick'] = ['like', '%' . $data['SellerNick'] . '%']; + } + if (!empty($data['handle_user'])) { + $where['handle_user'] = ['like', '%' . $data['handle_user'] . '%']; + } + if (!empty($data['Modified']['st'])) { + $date1 = date('Y-m-d', strtotime($data['Modified']['st'])); + $date2 = date('Y-m-d', strtotime($data['Modified']['et'])); + $where_str = " Modified>='" . $date1 . "' and Modified<='" . $date2 . "' "; + } + if (!empty($data['status']) && $data['status'] != null) { + $where['status'] = $data['status']; + } + } + $list = $refund->search($where, '*', 'id desc', '10000', $where_str); + foreach ($list as &$v) { + $v['status'] = RefundEnum::$refundStatus[$v['status']]; + $v['account'] = $userModel->getOne(['LoginCode' => $v['Phone']])['RestAmount']; + } + \exportToCsv('test.csv',['id','淘宝id','淘宝会员名','退款金额','子订单编号','交易编号','无关变量','无关变量','产品','申请时间','用户名','处理时间','备注','状态','扣除前余额','处理人','扣除后余额'],$list); + } } diff --git a/app/order/model/CashOut.php b/app/order/model/CashOut.php index af6990c..7ffc98b 100644 --- a/app/order/model/CashOut.php +++ b/app/order/model/CashOut.php @@ -8,6 +8,14 @@ class CashOut extends Model { protected $table = 'cash_out'; - + /** + * @description: 处理搜索 + * @param {*} + * @return {*} + */ + public function search($where = [], $fields = '*', $order = 'id desc', $limit = '50', $where_str = '') + { + return $this->field($fields)->where($where)->where($where_str)->order($order)->limit($limit)->fetchAll(); + } } diff --git a/app/order/model/TbRefund.php b/app/order/model/TbRefund.php index 0816206..41e13a3 100644 --- a/app/order/model/TbRefund.php +++ b/app/order/model/TbRefund.php @@ -4,8 +4,8 @@ * @version: * @Author: kangkang * @Date: 2020-10-14 09:56:09 - * @LastEditors: kangkang - * @LastEditTime: 2020-10-14 09:57:12 + * @LastEditors: Please set LastEditors + * @LastEditTime: 2020-12-07 15:10:54 */ namespace app\order\model; @@ -16,6 +16,14 @@ class TbRefund extends Model { protected $table = 'sell_taobao_refund'; - + /** + * @description: 处理搜索 + * @param {*} + * @return {*} + */ + public function search($where = [], $fields = '*', $order = 'id desc', $limit = '50', $where_str = '') + { + return $this->field($fields)->where($where)->where($where_str)->order($order)->limit($limit)->fetchAll(); + } } diff --git a/fastphp/func/common.php b/fastphp/func/common.php index 66c492f..8860495 100644 --- a/fastphp/func/common.php +++ b/fastphp/func/common.php @@ -4,8 +4,8 @@ * @version: * @Author: kangkang * @Date: 2020-09-30 17:32:46 - * @LastEditors: kangkang - * @LastEditTime: 2020-11-14 10:35:30 + * @LastEditors: Please set LastEditors + * @LastEditTime: 2020-12-07 16:44:09 */ /** * 浏览器友好的变量输出 @@ -67,3 +67,39 @@ function result($data = [], $msg = '', $code = 10000) echo json_encode($info); die; } + +/** + * @description: 导出csv + * @param {*} + * @return {*} + */ +function exportToCsv($fileName = '', $headArr = [], $data = []){ + ini_set('memory_limit','1024M'); //设置程序运行的内存 + ini_set('max_execution_time',0); //设置程序的执行时间,0为无上限 + @ob_end_clean(); //清除内存 + ob_start(); + + header('Content-Type: text/csv; charset=utf-8'); + header('Content-Disposition: attachment; filename=data.csv'); + header('Expires:0'); + header('Pragma:no-cache'); + $fp=fopen('php://output','w'); + fputcsv($fp,$headArr); + $index = 0; + foreach ($data as $item) { + if($index==1000){ //每次写入1000条数据清除内存 + $index=0; + ob_flush();//清除内存 + flush(); + } + $index++; + fputcsv($fp,$item); + } + fclose($fp); + + + @ob_flush(); + flush(); + ob_end_clean(); + return; +} \ No newline at end of file