From b2ad4e8b6e1b9d4e159b053d5daf595f2b5f0f9d Mon Sep 17 00:00:00 2001 From: chenzhi Date: Fri, 27 Mar 2020 17:26:42 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B4=A2=E5=8A=A1=E5=AF=B9=E6=AF=94=20v1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FinanceCompareController.class.php | 161 ++++++++++- .../Admin/View/FinanceCompare/add.html | 34 ++- .../Admin/View/FinanceCompare/index.html | 2 +- .../Admin/View/FinanceCompare/list.html | 252 ++++++++++++++++++ 4 files changed, 437 insertions(+), 12 deletions(-) create mode 100644 Application/Admin/View/FinanceCompare/list.html diff --git a/Application/Admin/Controller/FinanceCompareController.class.php b/Application/Admin/Controller/FinanceCompareController.class.php index 6f1fa738c..ff43cb7f4 100644 --- a/Application/Admin/Controller/FinanceCompareController.class.php +++ b/Application/Admin/Controller/FinanceCompareController.class.php @@ -6,12 +6,23 @@ class FinanceCompareController extends ThinkController public $wx = [2,3];//微信渠道id public $ybzf = [17];//易宝渠道id public $erro_size = 2000;//商家不存在的错误阈值,到达就不执行 - public $page_size = 10;//每次执行比较的数量 + public $page_size = 1000;//每次执行比较的数量 public $payway = [ "1"=>"支付宝", "2"=>"微信", "3"=>"易宝" ]; + public $checktype=[ + "1"=>"金额不符", + "2"=>"商家数据缺失", + "3"=>"平台数据缺失", + "4"=>"状态不符", + "5"=>"渠道不符" + ]; + public $readtype=[ + "0"=>"未处理", + "1"=>"已处理" + ]; public function index($p=1) { @@ -30,10 +41,10 @@ class FinanceCompareController extends ThinkController } $listdata = M("finance_compare","tab_")->where($map); if(isset($_REQUEST['export'])){ - $listdata = $listdata->page($page,$row)->select(); + $listdata = $listdata->select(); $count = M("finance_compare","tab_")->where($map)->count(); }else{ - $listdata = $listdata->select(); + $listdata = $listdata->page($page,$row)->select(); $count = count($listdata); } foreach ($listdata as $k => &$v) { @@ -70,6 +81,125 @@ class FinanceCompareController extends ThinkController $this->assign("page_size",$this->page_size); $this->display(); } + public function list($p=1) + { + + $page = intval($p); + $page = $page ? $page : 1; //默认显示第一页数据 + $arraypage = $page; + + if (isset($_REQUEST['row'])) { + $row = $_REQUEST['row']; + } else { + $row = 10; + } + if (isset($_REQUEST['compare_id'])) { + $compare_id = $_REQUEST['compare_id']; + }else{ + $this->error("参数错误"); + } + + + $map=["type"=>["gt",0],"compare_id"=>$compare_id]; + + if ($_REQUEST['pay_order_number'] != '') { + $map['pay_order_number'] = $_REQUEST['pay_order_number']; + } + if ($_REQUEST['is_read'] != '') { + $map['is_read'] = $_REQUEST['is_read']; + } + if ($_REQUEST['type'] != '') { + $map['type'] = $_REQUEST['type']; + } + + $listdata = M("finance_compare_info","tab_")->where($map); + if(isset($_REQUEST['export'])){ + $listdata = $listdata->select(); + }else{ + $listdata = $listdata->page($page,$row)->select(); + } + foreach ($listdata as $k => &$v) { + $v['pay_way']=$this->payway[$v['pay_way']]; + $v['type']=$this->checktype[$v['type']]; + $v['read_str']=$this->readtype[$v['is_read']]; + } + if(isset($_REQUEST['export'])){ + $GetData = $_GET; + unset($GetData['export']); + addOperationLog(['op_type'=>3,'key'=>getNowDate(),'url'=>U(CONTROLLER_NAME.'/'.ACTION_NAME,$GetData),'menu'=>"统计-数据校验-订单校验-订单校验详情-导出"]); + + data2csv($listdata,'订单校验详情',array( + "pay_order_number"=>"订单号", + "pay_way"=>"支付渠道", + "read_str"=>"状态", + "pt_pay_amount"=>"平台支付金额", + "sj_pay_amount"=>"商家订单金额", + "diff_money"=>"相差金额", + "type"=>"原因分类" + )); + } + $count = M("finance_compare_info","tab_") + ->field("count(*) count, + SUM(CASE WHEN is_read = 0 THEN pt_pay_amount ELSE 0 END) as noread_pt_pay_amount, + SUM(CASE WHEN is_read = 0 THEN sj_pay_amount ELSE 0 END) as noread_sj_pay_amount, + SUM(CASE WHEN is_read = 0 THEN diff_money ELSE 0 END) as noread_diff_money, + SUM(pt_pay_amount) pt_pay_amount, + SUM(sj_pay_amount) sj_pay_amount, + SUM(diff_money) diff_money") + ->where($map) + ->find(); + $page = set_pagination($count['count'],$row); + if($page) {$this->assign('_page', $page);} + $this->assign('list_data',$listdata); + $this->assign('count_data',$count); + $this->assign('read_type',$this->readtype); + $this->assign('check_type',$this->checktype); + $this->display(); + } + public function changeRead() + { + if (isset($_REQUEST['id']) && isset($_REQUEST['is_read']) && isset($_REQUEST['compare_id'])) { + $id = $_REQUEST['id']; + $is_read = $_REQUEST['is_read']; + $compare_id = $_REQUEST['compare_id']; + }else{ + $this->error("参数错误"); + } + //处理数据 + $info = M("finance_compare_info","tab_")->where("id={$id}")->find(); + if($info['is_read'] != $is_read){ + $this->ajaxReturn(array("error"=>"此单已标记成功请勿重复点击","code"=>40001)); + } + //获取 + $fc = M("finance_compare","tab_")->where("id={$compare_id}")->find(); + if($is_read == 0){ + //改为已处理 + $fcsavedata = [ + "diff_count"=>$fc['diff_count']-1, + "diff_money"=>$fc['diff_money']-$info['diff_money'], + ]; + $isavedata = [ + "is_read"=>1 + ]; + }else{ + //改为未处理 + $fcsavedata = [ + "diff_count"=>$fc['diff_count']-0+1, + "diff_money"=>$fc['diff_money']-0+$info['diff_money'], + ]; + $isavedata = [ + "is_read"=>0 + ]; + } + //保存 + M("finance_compare","tab_")->where("id={$compare_id}")->save($fcsavedata); + M("finance_compare_info","tab_")->where("id={$id}")->save($isavedata); + $this->ajaxReturn(array("success"=>"处理成功","code"=>0)); + + } + /** + * 创建比较基础数据 + */ public function creatCompare() { $adddata = I("post."); @@ -85,6 +215,9 @@ class FinanceCompareController extends ThinkController $this->ajaxReturn(array("error"=>"creat error","code"=>4000)); } } + /** + * 循环比较数据 + */ public function compareData() { $checkdata = I('POST.'); @@ -97,6 +230,9 @@ class FinanceCompareController extends ThinkController $pf=[]; $er=[]; foreach($data as $k=>$v){ + $v[$keys[0]] = trim($v[$keys[0]]); + $v[$keys[1]] = trim($v[$keys[1]]); + $pay_where = substr($v[$keys[0]], 0, 2); $tmp = [ "pt_pay_amount"=>0, @@ -129,6 +265,7 @@ class FinanceCompareController extends ThinkController } $saveres = $this->saveCheckData($sp); if($saveres == false){ + $this->delCompare($compare_id); $this->ajaxReturn(array("error"=>"添加失败","code"=>40001)); } } @@ -142,6 +279,7 @@ class FinanceCompareController extends ThinkController } $saveres = $this->saveCheckData($pf); if($saveres == false){ + $this->delCompare($compare_id); $this->ajaxReturn(array("error"=>"添加失败","code"=>40002)); } } @@ -149,6 +287,7 @@ class FinanceCompareController extends ThinkController if(count($er) > 0){ $saveerrores = $this->saveCheckData($er); if($saveerrores == false){ + $this->delCompare($compare_id); $this->ajaxReturn(array("error"=>"添加失败","code"=>40003)); } } @@ -183,6 +322,7 @@ class FinanceCompareController extends ThinkController ]; $res = M("Spend","tab_")->field("pay_order_number,pay_amount,pay_status,pay_way")->where($map)->limit($this->erro_size)->select(); if(count($res) >= $this->erro_size){ + $this->delCompare($checkdata['compare_id']); $this->ajaxReturn(array("error"=>"商家不存在的数据大于{$this->erro_size}条,没有比较的意义,请确认表格的渠道和时间是否正确","code"=>40004)); } $saveres = true; @@ -208,6 +348,7 @@ class FinanceCompareController extends ThinkController if($saveres){ $this->ajaxReturn(array("success"=>"ok","code"=>0,"data"=>[])); }else{ + $this->delCompare($checkdata['compare_id']); $this->ajaxReturn(array("error"=>"比对数据添加失败","code"=>40005)); } } @@ -239,6 +380,7 @@ class FinanceCompareController extends ThinkController ]; $res = M("Deposit","tab_")->field("pay_order_number,pay_amount,pay_status,pay_way")->where($map)->limit($this->erro_size)->select(); if(count($res) >= $this->erro_size){ + $this->delCompare($checkdata['compare_id']); $this->ajaxReturn(array("error"=>"商家不存在的数据大于{$this->erro_size}条,没有比较的意义,请确认表格的渠道和时间是否正确","code"=>40004)); } $saveres = true; @@ -264,14 +406,12 @@ class FinanceCompareController extends ThinkController if($saveres){ $this->ajaxReturn(array("success"=>"ok","code"=>0,"data"=>[])); }else{ + $this->delCompare($checkdata['compare_id']); $this->ajaxReturn(array("error"=>"比对数据添加失败","code"=>40005)); } } /** * 生成最终比较统计 - * @param [type] $dbres - * @param [type] $ydata - * @return void */ public function creatCompareCount() { @@ -282,7 +422,7 @@ class FinanceCompareController extends ThinkController "compare_id"=>$compare_id, "type"=>["gt",0] ]; - $ires = M("finance_compare_info","tab_")->field("IFNULL(sum(diff_money),0) diff_money,IFNULL(count(*),0) count")->find(); + $ires = M("finance_compare_info","tab_")->field("IFNULL(sum(diff_money),0) diff_money,IFNULL(count(*),0) count")->where($imap)->find(); $savedata = [ "diff_count"=>$ires['count'], "diff_money"=>$ires['diff_money'], @@ -292,6 +432,7 @@ class FinanceCompareController extends ThinkController if($res){ $this->ajaxReturn(array("success"=>"ok","code"=>0,"data"=>[])); }else{ + $this->delCompare($compare_id); $this->ajaxReturn(array("error"=>"save error","code"=>40006)); } @@ -351,4 +492,10 @@ class FinanceCompareController extends ThinkController unset($arr); return $res; } + //回退删除 + protected function delCompare($compare_id){ + + M("finance_compare_info","tab_")->where("compare_id = '{$compare_id}'")->delete(); + M("finance_compare","tab_")->where("id = '{$compare_id}'")->delete(); + } } \ No newline at end of file diff --git a/Application/Admin/View/FinanceCompare/add.html b/Application/Admin/View/FinanceCompare/add.html index a5aaba9cf..70a3aea90 100644 --- a/Application/Admin/View/FinanceCompare/add.html +++ b/Application/Admin/View/FinanceCompare/add.html @@ -23,7 +23,7 @@
-
+
@@ -79,13 +79,39 @@ -
- 4654654646 +
+ +
+ 文件格式参考: +
+
+ + + + + + + + + + + + + + + + +
订单号金额
SP_202003251032543yjX0.01
PF_20200325103203fBPI0.01