// +---------------------------------------------------------------------- declare (strict_types = 1); namespace app\store\controller; use app\common\enum\order\Color as ColorEnum; use app\store\model\Order as OrderModel; use app\store\model\OrderGoods as OrderGoodsModel; use app\common\service\Export as ExportService; use app\store\model\RecoverMoney; use app\store\model\RefundCompensate as RefundCompensateModel; use think\facade\Log; use app\store\model\OrderRefund as OrderRefundModel; /** * 订单管理 * Class Order * @package app\store\controller */ class Finance extends Controller { /** * 供应商列表 * @return array */ public function providersList(){ $model = new \app\store\model\Provider(); $list = $model->getProviderList($this->request->get('provider_name','')); $datas = $list['data']; foreach ($datas as $key=>$data){ $datas[$key]['wait_clearing_money'] = OrderGoodsModel::waitClearingMoney($data['provider_id']); } //dd($datas); $list['data'] = $datas; return $this->renderSuccess(compact('list')); } /** * 导出供应商结算列表 * @return array * @author: zq * @Time: 2022/2/22 13:43 */ public function providersExport(){ $model = new \app\store\model\Provider(); $data = $model->providersExport($this->request->get('provider_name','')); if (!$data['data'] || !count($data['data'])){ return $this->renderError('没有数据哟'); } $res = ExportService::export($data['data'],$data['header'],$data['filename'],'列表'); return $this->renderSuccess($res,'导出成功'); } /** * 订单商品财务结算列表 * @param string $dataType * @return array */ public function list() { // 订单列表 $model = new OrderGoodsModel(); $list = $model->getFinanceList($this->request->param()); // return $this->renderSuccess(compact('list')); } /** * 批量结算计算金额 * @param array $orderGoodsIds * @return array */ public function clearingMoney(array $orderGoodsIds){ $model = new OrderGoodsModel(); $money = $model->clearingMoney($orderGoodsIds); return $this->renderSuccess(['total_clearing_price'=>$money]); } /** * 确认结算/冻结/解冻 * @param array $orderGoodsIds * @return array * @Time: 2021/10/12 15:24 */ public function clearing(array $orderGoodsIds){ $type = request()->post('type',1); $evidence = request()->post('finance_evidence',0); $model = new OrderGoodsModel(); if ($model->clearing($orderGoodsIds,$type,$evidence)) { return $this->renderSuccess('成功'); } return $this->renderError($model->getError()); } /** * 导出订单功能 * @return array * @author: zjwhust * @Time: 2021/10/15 13:43 */ public function goodsClearingExport(){ $param = $this->request->param(); /* if(isset($param['order_goods_id']) && empty($param['order_goods_id'])){ return $this->renderError('请勾选订单商品后再导出'); }*/ if(!isset($param['providerId']) || empty($param['providerId'])){ return $this->renderError('请选择供应商后再导出'); } $model = new OrderGoodsModel; $data = $model->goodsClearingExport($param); //dd($data['data']); if (!$data['data'] || !count($data['data'])){ return $this->renderError('没有数据哟'); } $res = ExportService::export($data['data'],$data['header'],$data['filename'],'列表'); return $this->renderSuccess($res,'导出成功'); } /** * 财务供应商结算详情-追回货款 * @return array */ public function recoverMoney(){ $flag = RecoverMoney::add($this->postForm()); return $this->renderSuccess(['flag'=>$flag],'成功'); } /** * 退款单列表 * @return array */ public function refundList() { $model = new OrderRefundModel; $list = $model->getFinanceList($this->request->param()); $refund_money_total = $model->getRefundMoneyTotal(); return $this->renderSuccess(compact('list', 'refund_money_total')); } /** * 导出退款单列表功能 * zq */ public function refundExport(){ $param = $this->request->param('queryParam'); $style = $this->request->param('style'); if($style == 1){ $model = new OrderRefundModel(); }elseif ($style == 2){ $model = new RefundCompensateModel(); }else{ return $this->renderError('参数错误'); } $data = $model->refundsExport($param); $res = ExportService::export($data['data'],$data['header'],$data['filename'],'列表','Xls'); return $this->renderSuccess($res,'导出成功'); } /** * 销售明细 * @param string $dataType * @return array */ public function listdt(string $dataType = OrderModel::LIST_TYPE_ALL) { //delivery,receipt,complete,cancel // 订单列表 $model = new OrderModel; $list = $model->getFinanceList($dataType, $this->request->param()); //获取订单颜色列表 $colorArray = ColorEnum::data(); return $this->renderSuccess(compact('dataType', 'list', 'colorArray')); } /** * 导出退款单列表功能 * zq */ public function listdtExport(){ $param = $this->request->param(); if(isset($param['order_goods_id']) && empty($param['order_goods_id'])){ return $this->renderError('请勾选订单商品后再导出'); } $model = new OrderModel(); //导出跨度不能超过三个月 if (!empty($param['betweenTime'])) { $times = between_time($param['betweenTime']); if (($times['end_time'] - $times['start_time']) > 8035200){ return $this->renderError('导出时间跨度暂不能超过三个月'); } } $data = $model->listdtExport($param,$param['dataType']??'all'); $res = ExportService::export($data['data'],$data['header'],$data['filename'],'列表','Xls'); return $this->renderSuccess($res,'导出成功'); } }