文件
mashangyoujiu/Application/Common/Model/RetailPayOrderModel.class.php

108 行
6.0 KiB
PHP
可执行文件

<?php
namespace Common\Model;
use Think\Model;
//[1.7.90]
/**
* 支付流水表
* Class RetailPayOrderModel
* @package Common\Model
*/
class RetailPayOrderModel extends BaseModel
{
protected $tableName = 'retail_pay_order';
const ID = 'id'; //int(11) NOT NULL AUTO_INCREMENT,
const PAY_ORDER_ID = 'pay_order_id'; //int(11) DEFAULT '0' COMMENT '退款原订单id',
const ORDER_TYPE = 'order_type'; //tinyint(1) DEFAULT '1' COMMENT '1购买商品 2会员充值 4购买礼品卡 5购买PLUS会员 6小助手快捷收银 7购买次卡 8积分商城订单',
const SCENE_TYPE = 'scene_type'; //tinyint(4) DEFAULT '0' COMMENT '1付款订单 2退款订单',
const PAY_TYPE = 'pay_type'; //tinyint(1) DEFAULT '1' COMMENT '1微信 2支付宝 3现金 4小程序微信 5其他支付方式 6会员余额',
const TRADE_AMOUNT = 'trade_amount'; //decimal(10,2) DEFAULT '0.00' COMMENT '订单金额',
const STORE_ID = 'store_id'; //int(11) DEFAULT NULL COMMENT '门店id',
const MERCHANT_ID = 'merchant_id'; //int(11) DEFAULT NULL,
const CASHIER_ID = 'cashier_id'; //int(11) DEFAULT '0' COMMENT '收银员id',
const VID = 'vid'; //int(11) DEFAULT '0' COMMENT '会员id',
const TRADE_NO = 'trade_no'; //varchar(32) DEFAULT NULL COMMENT '订单外部流水号',
const OUT_TRADE_NO = 'out_trade_no'; //varchar(32) DEFAULT NULL COMMENT '订单内部流水号',
const ORDER_STATE = 'order_state'; //varchar(20) DEFAULT NULL COMMENT 'SUCCESS WAIT_BUYER_PAY REFUND REVOKED WAIT_REFUND',
const CODE = 'code'; //varchar(20) DEFAULT NULL COMMENT '用户付款码',
const ADD_TIME = 'add_time'; //varchar(20) DEFAULT NULL COMMENT '订单创建时间',
const TRADE_DATE = 'trade_date'; // varchar(11) DEFAULT NULL COMMENT '支付时间',
const REVOKE_DATE = 'revoke_date'; // varchar(11) DEFAULT NULL COMMENT '订单撤销时间',
const EXTEND_CONTENT = 'extend_content'; //text COMMENT '支付详情',
const UID = 'uid'; //int(11) DEFAULT NULL COMMENT '小程序用户id',
const M_PAY_TYPE = 'm_pay_type'; //tinyint(1) DEFAULT '0' COMMENT '订单支付类型 1普通商户模式 2服务商模式 3新大陆模式',
const FACE_TOKEN = 'face_token'; //varchar(255) DEFAULT NULL COMMENT '刷脸支付面部信息',
const BILL_ID = 'bill_id'; //int(11) DEFAULT '0' COMMENT 'bill表id',
const OTHER_PAY_ID = 'other_pay_id'; //int(11) DEFAULT '0' COMMENT '其他支付id',
const REFUND_MONEY = 'refund_money'; //decimal(20,2) DEFAULT '0.00' COMMENT '已经退款金额',
const NOTIFY_URL = 'notify_url'; //varchar(255) NULL COMMENT '支付回调地址,主要用于小程序、公众号支付新大陆的支付回调',例如:'Xcxapi/WxPay/temp'
const OPENID = 'openid'; //微信刷脸用户openid
const SHOPOWNER_ID = 'shopowner_id'; //店长id
const MER_ID = 'mer_id'; //varchar(32) DEFAULT '' COMMENT '商户收款账户',
//收银端
public function getFindPayList($bill_id)
{
$list = $this->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;
}
}
}