first(); $sheets = OrderSheet::with([ 'goods' => function ($query) { $query->select('goods_id', 'goods_name', 'goods_classify'); } ])->where('join_sheet_order_id', $params['orderId']) ->get() ->toArray(); $payDetails = PayDetail::where('join_pay_order_id', $order->order_groupby) ->where('pay_status', 'SUCCESS') ->get() ->toArray(); $data = [ 'dept_id' => 0, 'member_id' => $order->join_order_member_id, 'inout_classify' => 'IN', 'inout_category' => $params['inout_category'] ?? '标准订单收入', ]; // 部门id if (!empty($order->order_config_json)) { $orderConfigJson = json_decode($order->order_config_json, true); if (!empty($orderConfigJson['dept'])) { $data['dept_id'] = $orderConfigJson['dept']; } elseif (!empty($orderConfigJson['premises'])) { $data['dept_id'] = SysDept::where('dept_name', $orderConfigJson['premises'])->value('dept_id'); } } $inoutObjectJson = []; // 产品 foreach ($sheets as $sheet) { $inoutObjectJson['goods'][] = [ 'goods_id' => $sheet['goods']['goods_id'] ?? '', 'goods_name' => $sheet['goods']['goods_name'] ?? '' ]; $data['inout_name'][] = $sheet['goods']['goods_name'] ?? ''; if (!isset($inoutObjectJson['order'])) { $inoutObjectJson['order'][$params['orderId']] = [ 'pay' => $order->order_amount_pay, 'classify' => $order->order_classify, 'discount' => $order->order_discount_json ?? json_decode($order->order_discount_json) ]; } $inoutObjectJson['order'][$params['orderId']]['goods'][] = [ 'goods_id' => $sheet['goods']['goods_id'] ?? '', 'goods_name' => $sheet['goods']['goods_name'] ?? '', 'order_sheet_num' => $sheet['order_sheet_amount'], 'order_sheet_pay' => $sheet['order_sheet_pay'] ]; $inoutObjectJson['classify'][] = $sheet['goods']['goods_classify'] ?? ''; } $data['inout_object_json'] = $inoutObjectJson; $data['inout_name'] = implode(',',$data['inout_name']); foreach ($payDetails as $payDetail) { if (in_array($payDetail['pay_prepayid'],['WXPAY','ALIPAY','OFFLINE_WXPAY','OFFLINE_ALIPAY','MONEY'])){ $data['inout_attr'] = 'MONEY'; }else{ $data['inout_attr'] = 'ACCOUNT'; } $this->dataSave($data); } } catch (\Exception $e) { _syslog("统计", '收支明细统计失败', ['msg' => $e->getMessage()]); Log::error("收支明细统计失败", ['msg' => $e->getMessage()]); } } public function dataOut() { } public function dataSave($data) { DataInout::insert([ 'join_data_inout_dept_id' => $data['dept_id'], 'join_data_inout_member_id' => $data['member_id'], 'join_data_inout_object_json' => $data['inout_object_json'], 'data_inout_is_valid' => 'Y', 'data_inout_valid_date' => date('Y-m-d'), 'data_inout_valid_time' => date('Y-m-d H:i:s'), 'data_inout_status' => 'VALID', 'data_inout_attr' => $data['inout_attr'], 'data_inout_classify' => $data['inout_classify'], 'data_inout_category' => $data['inout_category'], 'data_inout_name' => $data['inout_name'], 'data_inout_amount' => '', 'data_inout_count' => '', 'data_inout_json' => '', 'data_inout_pay_type' => '', 'data_inout_pay_json' => '', 'data_inout_process_json' => '', 'data_inout_occurtime' => '', 'data_inout_remark' => '', 'data_inout_extend_json' => '', 'data_inout_addtimes' => time() ]); } }