You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

114 lines
3.9 KiB
PHTML

5 years ago
<?php
namespace Admin\Controller;
class FinanceCompareController extends ThinkController
{
5 years ago
public $zfb = [1];//官方支付宝渠道id
public $wx = [2,3];//微信渠道id
public $ybzf = [17];//易宝渠道id
5 years ago
public function add()
{
$this->display();
# code...
}
5 years ago
public function creatCompare()
{
5 years ago
$adddata = I("post.");
5 years ago
5 years ago
$adddata['create_time'] = time();
$adddata['begin_time'] = strtotime($adddata['begin_time']);
$adddata['end_time'] = strtotime($adddata['end_time'])+ 86399;
$res = M("finance_compare","tab_")->add($adddata);
if($res){
$this->ajaxReturn(array("success"=>"ok","code"=>0,"data"=>["id"=>$res]));
}else{
$this->ajaxReturn(array("error"=>"creat error","code"=>4000));
}
5 years ago
}
5 years ago
public function compareData()
{
5 years ago
$checkdata = I('POST.');
$keys = $checkdata['keys'];
$compare_id = $checkdata['compare_id'];
$pay_way = $checkdata['pay_way'];//1支付宝 2微信 17易宝
$data = $checkdata['checkarr'];
5 years ago
//过滤数据
5 years ago
$sp=[];
$pf=[];
$er=[];
foreach($data as $k=>$v){
$pay_where = substr($v[$keys[0]], 0, 2);
$tmp = [
"pt_pay_amount"=>$v[$keys[1]],
"diff_money"=>$v[$keys[1]],
"sj_pay_amount"=>0,
"type"=>3,
"pay_order_number"=>$v[$keys[0]],
"compare_id"=>$compare_id,
"pay_way"=>$pay_way,
"is_read"=>0
];
if($pay_where == 'SP'){
$sp[$v[$keys[0]]] = $tmp;
}elseif($pay_where == 'PF'){
$pf[$v[$keys[0]]] = $tmp;
}else{
$er[$v[$keys[0]]] = $tmp;
}
}
//判断游戏流水
if(count($sp) > 0){
$keys = implode(",",array_keys($sp));
$where = ["pay_order_number"=>["in",$keys]];
$sres = M("Spend","tab_")->field("pay_order_number,pay_amount,pay_status,pay_way")->where($where)->select();
if($sres){
$this->setDiffData($sres,$sp);
}
}
5 years ago
dd($sres);
5 years ago
}
protected function setDiffData($dbres,$ydata)
{
//type 1:金额不符 2商家数据缺失 3:平台数据缺失 4:状态不符5:渠道不符
foreach ($dbres as $k => $v) {
if(array_key_exists($v['pay_order_number'],$ydata)){
//存在
$flag = true;
$ydata[$v['pay_order_number']]['sj_pay_amount'] = $v['pay_amount'];
$ydata[$v['pay_order_number']]['diff_money'] = abs($ydata[$v['pay_order_number']]['pt_pay_amount']-$v['pay_amount']);
$way = $ydata[$v['pay_order_number']]['pay_way'];
if ($way == 1) {
$checkarr = $this->$zfb;
}elseif($way == 2){
$checkarr = $this->$wx;
}elseif($way == 3){
$checkarr = $this->$ybzf;
}
if(!in_array($way,$checkarr)){//渠道不符
$ydata[$v['pay_order_number']]['type'] = 5;
$flag = false;
}
if($ydata[$v['pay_order_number']]['pt_pay_amount'] != $v['pay_amount']){//金额不符
$ydata[$v['pay_order_number']]['type'] = 1;
$flag = false;
}
if($v['pay_status'] != 1){//状态不符合
$ydata[$v['pay_order_number']]['type'] = 4;
$ydata[$v['pay_order_number']]['diff_money'] = $v['pay_amount'];
$flag = false;
}
if($flag){
$ydata[$v['pay_order_number']]['type'] = 0;
}
}
}
dd($ydata);
5 years ago
}
5 years ago
}