setData($number, $financialType, 1, $storeId, $staffId, $status,$transaction_id); } /** * 收入财务流水 * @param $transaction_id * @param $number * @param $financialType * @param $storeId * @param $staffId * @param $status */ public function in($transaction_id,$number, $financialType, $storeId = 0, $staffId = 0, $status = 1) { $this->setData($number, $financialType, 0, $storeId, $staffId, $status,$transaction_id); } public function setData($number, $financialType, $pm, $storeId, $staffId, $status,$transaction_id) { if (empty($this->financeSn)) { $this->financeSn = $this->getSn(); } $this->list[] = [ 'order_id' => $this->order['id'], 'transaction_id' => $transaction_id, 'order_sn' => $this->order['order_id'], 'user_id' => $this->user['uid'], 'financial_type' => $financialType, 'financial_pm' => $pm, 'number' => $number, 'pay_type' => PayEnum::WECHAT_PAY_MINI, 'status' => $status, 'store_id' => $storeId !== '' ? $storeId : $this->order['store_id'], 'staff_id' => $staffId !== '' ? $staffId : $this->order['staff_id'], 'financial_record_sn' => $this->financeSn . ($this->index++), 'create_time'=>time() ]; } public function save() { if (count($this->list) > 0) { (new StoreFinanceFlow())->insertAll($this->list); } } public function getSn() { list($msec, $sec) = explode(' ', microtime()); $msectime = number_format((floatval($msec) + floatval($sec)) * 1000, 0, '', ''); return 'fn' . $msectime . mt_rand(10000, max(intval($msec * 10000) + 10000, 98369)); } public function getStoreOrder($orderId, $storeId = 0, $status = 0) { return StoreFinanceFlow::where('order_id', $orderId) ->where('store_id', $storeId) ->where('status', $status) ->where('financial_type', OrderEnum::MERCHANT_ORDER_OBTAINS) ->find(); } }