0, 'msg' => '参数错误']; } if ($param['start_time']) { $start_time = strtotime($param['start_time']); } else { $start_time = strtotime(date('Y-m-d 00:00:00')); } if ($param['end_time']) { $end_time = strtotime($param['end_time']); } else { $end_time = strtotime(date('Y-m-d 23:59:59')); } $param = [ 'store_id' => $param['store_id'], 'start_time' => $start_time, 'end_time' => $end_time, ]; $shoppingMall = new ShoppingMall(); $shoppingMallInfo = $shoppingMall->getShopAmountTotal($param); return callBack(statusCode()['success'], '获取成功', [ 'list' => [ [ 'sell_info' => [ 'xj' => 0, 'wx' => 0, 'zfb' => 0, 'other_pay' => 0, 'xcx' => $shoppingMallInfo['xcx_wx_actual_received'],//微信支付金额减去退款金额的剩余金额 'refund' => $shoppingMallInfo['xcx_amount_refund_total'],//退款的总金额 'vip_card' => $shoppingMallInfo['xcx_member_actual_received'],//会员支付金额减去退款金额的剩余金额 'all_money' => $shoppingMallInfo['xcx_amount_actual_received_total'],//减去退款的总金额 'sub_card_total' => $shoppingMallInfo['sub_card_total'],//次卡销售金额 'count' => $shoppingMallInfo['place_count'], //下单总笔数不包含退款 'recharge_total' => $shoppingMallInfo['recharge_total'],//充值 ], 'id' => 0, 'name' => '商城订单收银统计', ] ], 'start_time' => date('Y-m-d', $start_time), 'end_time' => date('Y-m-d', $end_time), ]); } /** * 2021年1月11日09:43:04 * 收银员收款统计 * @param $param * $param['store_id'] 门店ID * $param['merchant_id'] 商户ID * $param['cashier_id'] 收银员ID * $param['user_type'] 用户类型 1商户 2门店 3收银员 * $param['start_time'] 开始日期 * $param['end_time'] 结束日期 * @return array */ public function getTerminalCashierTotal($param) { $store_id = $param['store_id']; $cashier_id = $param['cashier_id']; $user_type = $param['user_type']; if (!$store_id || !$param['user_type'] || $param['user_type'] == 3 && !$param['cashier_id']) { return ['status' => 0, 'msg' => '参数错误']; } $PayOrderModel = new RetailPayOrderModel(); //支付流水模型 $CashierModel = new RetailCashierModel(); if ($user_type == 3) { $cashier_show_other_sell = $CashierModel->getFindField(['id' => $cashier_id], 'cashier_show_other_sell'); } $where_cashier = [ 'status' => 1, 'storeid' => $store_id, ]; if ($cashier_show_other_sell == 2) { $where_cashier['id'] = $cashier_id; } //实例化插件类 $PlugApi = new Plug(); //获取付费插件列表及状态 $plug_result = $PlugApi->merPlugState([ 'merchant_id' => $param['merchant_id'], 'identification_arr' => ['credit', 'moraleducationcoin'], ]); if ($param['start_time']) { $start_time = strtotime($param['start_time']); } else { $start_time = strtotime(date('Y-m-d 00:00:00')); } if ($param['end_time']) { $end_time = strtotime($param['end_time']); } else { $end_time = strtotime(date('Y-m-d 23:59:59')); } //商户是否存在赊账插件 $list = $CashierModel->getSelect($where_cashier, 'id,name'); $list = $list ? $list : []; if ($list) { $list = $list ? $list : []; if ($plug_result['credit']) { $CreditArrearageModel = new \Credit\Model\CreditArrearageModel(); // 赊账 $CreditRepaymentModel = new \Credit\Model\CreditRepaymentModel(); // 还款 } $RetailBillOrderModel = new RetailBillOrderModel(); $RechargeOrderModel = new RechargeOrderModel(); $SellDataController = new \PayApi\Controller\SellDataController(); foreach ($list as &$v) { $where = [ 'cashier_id' => $v['id'], 'add_time' => ['between', [$start_time, $end_time]], 'pay_state' => 1, 'store_id' => $store_id, 'order_type' => 1, 'type' => 2, 'pay_type' => ['neq', '0'], ]; $count = $RetailBillOrderModel->getCount($where);//下单总笔数 $where['order_type'] = 2; $refund_store = $RetailBillOrderModel->getSum($where, 'refund_money'); //退款金额 $payData = $SellDataController->getPayData_v1($start_time, $end_time, $store_id, $v['id']); //赊账数据统计 $arrearageMoney = 0; $repaymentMoney = 0; if ($plug_result['credit']) { $arrearage_map = [ 'cashier_id' => $v['id'], 'add_time' => ['between', [$start_time, $end_time]], 'store_id' => $store_id, ]; $arrearageMoney = $CreditArrearageModel->getSum($arrearage_map, 'total_money'); $repayment_map = [ 'operate_type' => 1, //确保是收银员 'operate_id' => $v['id'], 'store_id' => $store_id, 'add_time' => ['between', [$start_time, $end_time]], ]; $repaymentMoney = $CreditRepaymentModel->getSum($repayment_map, 'money'); $payData['all_amount'] = bcadd($payData['all_amount'], $repaymentMoney, 2); } //快捷收银 $map = [ 'cashier_id' => $v['id'], 'order_type' => 6, 'order_state' => 'SUCCESS', 'trade_date' => ['between', [$start_time, $end_time]], ]; $q_count = $PayOrderModel->getCount($map);//快速收款笔数 $count = round($count + $q_count); $map['order_state'] = 'REFUND'; $q_refund_money = $PayOrderModel->getSum($map, 'trade_amount'); //快捷下单退款金额 $refund_store = round($refund_store + $q_refund_money, 2); //充值退款 $rechargeMap = [ 'store_id' => $store_id, 'type' => 1, 'add_time' => ['between', [$start_time, $end_time]], 'cashier_id' => $v['id'], 'status' => 1, 'type' => 9, ]; $vipRefund = $RechargeOrderModel->getSum($rechargeMap, 'money'); $info = [ 'id' => $v['id'], 'xj' => $payData['cash_amount'], //现金 'wx' => $payData['weChat_amount'], //微信 'zfb' => $payData['ali_amount'], //支付宝 'MoralEducationCoin' => $payData['MoralEducationCoin'], //德育币 'xcx' => 0, 'refund' => $refund_store, 'vip_card' => $payData['vip_amount'], //会员余额 'recharge_total' => $payData['recharge_all_amount'],//会员充值金额 'vip_refund' => round($vipRefund, 2),//会员充值退款金额 'all_money' => round($payData['all_amount'], 2), 'other_pay' => $payData['other_amount'], //其他支付 'sub_card_money' => $payData['sub_card_money'],//次卡金额 'count' => $count, 'arrearageMoney' => $arrearageMoney, //赊账金额 'repaymentMoney' => $repaymentMoney, //赊账还款 ]; $v['sell_info'] = $info; } return callBack(statusCode()['success'], '查询成功', [ 'list' => $list, 'start_time' => date('Y-m-d', $start_time), 'end_time' => date('Y-m-d', $end_time), ]); } else { return callBack(statusCode()['error'], '暂无收银员', [ 'list' => [], 'start_time' => date('Y-m-d', $start_time), 'end_time' => date('Y-m-d', $end_time), ]); } } }