162 行
6.8 KiB
PHP
可执行文件
162 行
6.8 KiB
PHP
可执行文件
<?php
|
|
|
|
namespace CashierApi\Controller;
|
|
|
|
use Think\Controller;
|
|
|
|
|
|
|
|
/**
|
|
* *快捷收单
|
|
*/
|
|
//[1.8.68]
|
|
class QuickOrderController extends BaseController
|
|
{
|
|
//快捷收银列表
|
|
public function QuickOrderList()
|
|
{
|
|
$PayOrderModel = D("RetailPayOrder");
|
|
$data = I("post.");
|
|
$merchant_id = $data['merchant_id'];
|
|
$store_id = $data['store_id'];
|
|
$cashier_id = $data['cashier_id']; //收银员id
|
|
$out_trade_no = $data['out_trade_no']; //内部流水号
|
|
$type = $data['type']; //1今日 2昨日 3本周 4其他
|
|
$page = $data['page'] ? $data['page'] : 1;
|
|
$limit = 10;
|
|
if (!$store_id || !$merchant_id) {
|
|
$res = array(
|
|
"status" => 0,
|
|
"msg" => "参数缺失"
|
|
);
|
|
$this->ajaxReturn($res);
|
|
}
|
|
$cashierInfo = D('RetailCashier')->getFind(array('id' => $cashier_id), "cashier_show_other_sell");
|
|
if ($cashierInfo['cashier_show_other_sell'] == 2) {
|
|
$where[$PayOrderModel::CASHIER_ID] = $cashier_id;
|
|
}
|
|
if(empty($out_trade_no)){
|
|
switch ($type){
|
|
case 1:
|
|
$start_time = strtotime(date('Y-m-d 00:00:00',time()));
|
|
$end_time = $start_time + 86399;
|
|
break;
|
|
case 2:
|
|
$start_time = strtotime(date("Y-m-d 00:00:00",strtotime("-1 day")));
|
|
$end_time = $start_time + 86399;
|
|
break;
|
|
case 3:
|
|
$start_time=strtotime(date('Y-m-d',(time()-((date('w')==0?7:date('w'))-1)*24*3600)));
|
|
$end_time=strtotime(date('Y-m-d',(time()+(7-(date('w')==0?7:date('w')))*24*3600)));
|
|
break;
|
|
case 4:
|
|
$start_time = strtotime(date('Y-m-d', (time() - ((date('w') == 0 ? 7 : date('w')) - 1) * 24 * 3600)));
|
|
}
|
|
if($type != 4){
|
|
$where[$PayOrderModel::ADD_TIME] = array('between', array($start_time, $end_time));
|
|
}else{
|
|
$where[$PayOrderModel::ADD_TIME] = array('lt', $start_time);
|
|
}
|
|
}else if(!empty($out_trade_no)){
|
|
$where[$PayOrderModel::OUT_TRADE_NO] = array('like','%'.$out_trade_no.'%');
|
|
}
|
|
$where[$PayOrderModel::MERCHANT_ID] = $merchant_id;
|
|
$where[$PayOrderModel::STORE_ID] = $store_id;
|
|
$where[$PayOrderModel::ORDER_TYPE] = 6;
|
|
$where[$PayOrderModel::ORDER_STATE] = array('in', "SUCCESS,REFUND");
|
|
$order = "id desc";
|
|
$page = $page . ',' . $limit;
|
|
$list = $PayOrderModel->getSelect($where, "pay_order_id,pay_type,order_state,trade_date,shopowner_id,cashier_id,out_trade_no,trade_amount,refund_money,pay_coupon_fee", $order, $page);
|
|
$count = $PayOrderModel->getCount($where);
|
|
if ($list) {
|
|
foreach ($list as $key => &$val) {
|
|
$val['index'] = $key + 1;
|
|
switch ($val['pay_type']) {
|
|
case 1:
|
|
$val['pay_name'] = "微信";
|
|
break;
|
|
case 2:
|
|
$val['pay_name'] = "支付宝";
|
|
break;
|
|
case 3:
|
|
$val['pay_name'] = "现金";
|
|
break;
|
|
case 6:
|
|
$val['pay_name'] = "会员";
|
|
break;
|
|
}
|
|
switch ($val['order_state']) {
|
|
case "SUCCESS":
|
|
$val["order_name"] = "支付订单";
|
|
if ($val['refund_money'] == 0) {
|
|
$val['type'] = 1; //可退款
|
|
} else if ($val['refund_money'] == $val['trade_amount']) {
|
|
$val['type'] = 2; //已退款
|
|
}
|
|
$val['payment_order'] = '';
|
|
break;
|
|
case "REFUND":
|
|
$val['type'] = 3; //退款订单
|
|
$val["order_name"] = "退款订单";
|
|
$val['payment_order'] = $PayOrderModel->getFindField(array('id'=>$val['pay_order_id']),'out_trade_no');
|
|
break;
|
|
}
|
|
$val['trade_date'] = date("Y-m-d H:i:s", $val['trade_date']); //支付时间
|
|
if(!empty($val['shopowner_id'])) {
|
|
$val['operator_name'] = M("retail_manager")->where(array('id' => $val['shopowner_id']))->getField("name");
|
|
} else if (!empty($val['cashier_id'])) {
|
|
$cashierInfo = D("RetailCashier")->getFind(array('id' => $val['cashier_id']), "name");
|
|
$val['operator_name'] = $cashierInfo['name'];
|
|
}
|
|
$val['pay_coupon_fee'] = $val['pay_coupon_fee']>0?floatval($val['pay_coupon_fee']):0;
|
|
}
|
|
}
|
|
$WeChat_pay = 0; //微信
|
|
$Ali_pay = 0; //支付宝
|
|
$Vip_pay = 0; //会员
|
|
$Cash_pay = 0; //现金
|
|
$Refund_pay = 0; //退款金额
|
|
$listTotal = $PayOrderModel->getSelect($where, "pay_type,order_state,trade_date,trade_amount", $order);
|
|
if($listTotal){
|
|
foreach ($list as $key => &$val) {
|
|
switch ($val['order_state']) {
|
|
case "SUCCESS":
|
|
switch ($val['pay_type']){
|
|
case 1:
|
|
$WeChat_pay += $val['trade_amount'];
|
|
break;
|
|
case 2:
|
|
$Ali_pay += $val['trade_amount'];
|
|
break;
|
|
case 3:
|
|
$Cash_pay += $val['trade_amount'];
|
|
break;
|
|
case 6:
|
|
$Vip_pay += $val['trade_amount'];
|
|
break;
|
|
}
|
|
break;
|
|
case "REFUND":
|
|
$Refund_pay += $val['trade_amount'];
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
$pay = array(
|
|
'WeChat_pay'=>$WeChat_pay,
|
|
'Ali_pay'=>$Ali_pay,
|
|
'Vip_pay'=>$Vip_pay,
|
|
'Cash_pay'=>$Cash_pay,
|
|
'Refund_pay'=>$Refund_pay
|
|
);
|
|
$res['status'] = 1;
|
|
$res['count'] = $count?$count:0;
|
|
$res["data"] = $list ? $list : array();
|
|
$res['pay'] = $pay;
|
|
$this->ajaxReturn($res);
|
|
}
|
|
//快捷收银退款
|
|
public function QuickRefundOperation(){
|
|
A("Terminalapi/Base")->QuickRefund_v1();
|
|
}
|
|
} |