alias('p') ->join('ls_retail_other_pay as o on o.id=p.' . $this::OTHER_PAY_ID, 'LEFT') ->field('p.' . $this::PAY_TYPE . ',p.' . $this::OTHER_PAY_ID . ',p.' . $this::TRADE_AMOUNT . ',p.' . $this::TRADE_NO . ',p.' . $this::OUT_TRADE_NO . ',o.name') ->where(array($this::BILL_ID => $bill_id, $this::ORDER_STATE => array('in', 'SUCCESS,REFUND'))) ->select(); $payList = array(); foreach ($list as $val) { //1微信 2支付宝 3现金 4小程序微信 5其他支付方式 6会员余额 switch ($val[$this::PAY_TYPE]) { case '1': //微信 $payList[] = array('name' => '微信', 'money' => $val[$this::TRADE_AMOUNT], 'trade_no' => $val[$this::TRADE_NO], 'out_trade_no' => $val[$this::OUT_TRADE_NO], 'type' => 1); break; case '2': //支付宝 $payList[] = array('name' => '支付宝', 'money' => $val[$this::TRADE_AMOUNT], 'trade_no' => $val[$this::TRADE_NO], 'out_trade_no' => $val[$this::OUT_TRADE_NO], 'type' => 2); break; case '3': //现金 $payList[] = array('name' => '现金', 'money' => $val[$this::TRADE_AMOUNT], 'trade_no' => $val[$this::TRADE_NO], 'out_trade_no' => $val[$this::OUT_TRADE_NO], 'type' => 3); break; case '4': //微信 $payList[] = array('name' => '微信', 'money' => $val[$this::TRADE_AMOUNT], 'trade_no' => $val[$this::TRADE_NO], 'out_trade_no' => $val[$this::OUT_TRADE_NO], 'type' => 4); break; case '5': //其他支付 $payList[] = array('name' => $val['name'] ? $val['name'] : '其他支付', 'money' => $val[$this::TRADE_AMOUNT], 'trade_no' => $val[$this::TRADE_NO], 'out_trade_no' => $val[$this::OUT_TRADE_NO], 'type' => 5); break; case '6': //会员余额 $payList[] = array('name' => '会员余额', 'money' => $val[$this::TRADE_AMOUNT], 'trade_no' => $val[$this::TRADE_NO], 'out_trade_no' => $val[$this::OUT_TRADE_NO], 'type' => 6); break; } } return $payList; } /** * @param array $item 提交数据 * @return array $res */ public function addPayOrder($item) { $id = $this->addOrder($item); if ($id) { $out_trade_no = createOrderTradeNo($id); $save = $this->updateOrder(array($this::ID => $id), array($this::OUT_TRADE_NO => $out_trade_no)); if ($save) { $item[$this::ID] = $id; $item[$this::OUT_TRADE_NO] = $out_trade_no; return $item; } else { return false; } } else { return false; } } }