文件
mashangyoujiu/Application/CashierApi/Controller/QuickOrderController.class.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();
}
}