企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 示例代码 ``` <?php /** * +---------------------------------------------------------------------- * | 草帽支付系统 [ WE CAN DO IT JUST THINK ] * +---------------------------------------------------------------------- * | Copyright (c) 2018 http://www.iredcap.cn All rights reserved. * +---------------------------------------------------------------------- * | Licensed ( https://www.apache.org/licenses/LICENSE-2.0 ) * +---------------------------------------------------------------------- * | Author: Brian Waring <BrianWaring98@gmail.com> * +---------------------------------------------------------------------- */ namespace app\common\logic; use app\common\library\exception\OrderException; use think\Db; use think\Log; class Orders extends BaseLogic { /** * * 获取订单列表 * * @author 勇敢的小笨羊 * @param array $where * @param bool $field * @param string $order * @param int $paginate * @return mixed */ public function getOrderList($where = [], $field = true, $order = 'create_time desc', $paginate = 15) { $this->modelOrders->limit = !$paginate; return $this->modelOrders->getList($where, $field, $order, $paginate); } /** * 获取单总数 * * @author 勇敢的小笨羊 <brianwaring98@gmail.com> * * @param $where * @return mixed */ public function getOrdersCount($where = []){ return $this->modelOrders->getCount($where); } /** * * 获取结算订单列表 * * @author 勇敢的小笨羊 * @param array $where * @param bool $field * @param string $order * @param int $paginate * @return mixed */ public function getOrderSettleList($where = [], $field = true, $order = 'create_time desc', $paginate = 15) { return $this->modelBalanceSettle->getList($where, $field, $order, $paginate); } /** * 订单统计 * * @author 勇敢的小笨羊 <brianwaring98@gmail.com> * * @return array */ public function getOrdersAllStat(){ $order = 'create_time desc'; return [ 'fees' => $this->modelOrders->getInfo([],"sum(amount) as total,sum(if(status=2,amount,0)) as paid", $order, $paginate = false) ]; } /** * 获取控制台统计 * * @author 勇敢的小笨羊 <brianwaring98@gmail.com> * * @return array */ public function getWelcomeStat(){ $order = 'create_time desc'; return [ 'order' => $this->modelOrders->getInfo([],"count(id) as total,count(if(status=2,true,null)) as success,count(if(status=1,true,null)) as wait,count(if(status=0,true,null)) as failed,sum(amount) as fees,sum(if(status=1,amount,0)) as unpaid,sum(if(status=2,amount,0)) as paid", $order, $paginate = false), 'user' => $this->modelUser->getInfo([],"count(uid) as total,count(if(is_verify=0,true,null)) as failed", $order, $paginate = false), 'cash' => $this->modelBalanceCash->getInfo([],'count(id) as total,count(if(status=1,true,null)) as success,count(if(status=0,true,null)) as failed', $order, $paginate = false) ]; } /** * 年月订单以及交易额统计 * * @author 勇敢的小笨羊 <brianwaring98@gmail.com> * */ public function getOrdersMonthStat(){ $this->modelOrders->group = 'month'; return $this->modelOrders->getList([],"count(id) as total_orders,sum(`amount`) as total_amount,FROM_UNIXTIME(create_time,'%m') as month",false,false); } /** * 获取商户订单统计 * * @author 勇敢的小笨羊 <brianwaring98@gmail.com> * * @param array $where * @param string $field * @param string $order * @param int $paginate * @return mixed */ public function getOrderUserStat($where = [],$field = "uid,count(uid) as total_orders,sum(amount) as total_fee_all,sum(if(status=1,amount,0)) as total_fee_dis,sum(if(status=2,amount,0)) as total_fee_paid",$order = 'create_time desc', $paginate = 15){ $this->modelOrders->group = 'uid'; return $this->modelOrders->getList($where,$field, $order, $paginate = false); } /** * 获取渠道订单统计 * * @author 勇敢的小笨羊 <brianwaring98@gmail.com> * * @param array $where * @param string $field * @param string $order * @param int $paginate * @return mixed */ public function getOrderChannelStat($where = [],$field = "a.cnl_id,count(a.cnl_id) as total_orders,sum(a.amount) as total_fee_all,sum(if(a.status = 1,a.amount,0)) as total_fee_dis,sum(if(a.status = 2,a.amount,0)) as total_fee_paid,b.id,b.name,b.remarks,b.daily,b.rate",$order = 'a.create_time desc', $paginate = 15){ $this->modelOrders->group = 'a.cnl_id'; $this->modelOrders->alias('a'); $join = [ ['pay_channel b', ' b.id = a.cnl_id'], ]; $this->modelOrders->join = $join; return $this->modelOrders->getList($where,$field, $order, $paginate = false); } /** * 获取某订单支付通道配置 * * @author 勇敢的小笨羊 <brianwaring98@gmail.com> * * @param $order_no * @return mixed */ public function getOrderPayConfig($order_no){ return $this->logicPay->getChannelParam( $this->modelOrders->getValue( ['trade_no'=>$order_no], 'cnl_id' ) )[1]; } /** * 设置某个字段参数 * * @author 勇敢的小笨羊 <brianwaring98@gmail.com> * * @param array $where * @param string $value */ public function setValue($where = [],$value = ''){ $this->modelOrders->setFieldValue($where, 'cnl_id', $value); } } ```