123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- <?php
- namespace app\store\model\card;
- use app\common\model\order\RiceCardOrder as RiceCardOrderModel;
- use app\common\model\UserVerify;
- /**
- * 米卡订单模型
- * @package app\common\model
- */
- class RiceCardOrder extends RiceCardOrderModel
- {
- protected $append = [
- 'state_text',
- 'pay_type_text',
- 'rice_card_type_text'
- ];
- /**
- * 订单状态文字描述
- * @param $value
- * @param $data
- * @return string
- */
- public function getStateTextAttr($value, $data)
- {
- $value = '-';
- // 已付款
- if ($data['pay_status'] == 1) {
- $value = '已付款';
- }
- // 已取消
- if ($data['order_status'] == 40) {
- $value = '已关闭';
- }
- if ($data['order_status'] == 10 && $data['pay_status'] == 0) {
- $value = '待付款';
- }
- return $value;
- }
- public function getPayTypeTextAttr($value, $data)
- {
- return self::PAY_TYPE[$data['pay_type']] ?? '';
- }
- public function getRiceCardTypeTextAttr($value, $data)
- {
- return RiceCard::TYPE[$data['rice_card_type']] ?? '';
- }
- public function getList(array $param = [])
- {
- // 检索查询条件
- $filter = $this->getQueryFilter($param);
- $userVerifyModel = new UserVerify();
- /* $userCardModel = new UserRiceCard();
- $startTime = date("Y-m-d H:i:s",strtotime("-1 year"));
- $endTime = date("Y-m-d H:i:s");*/
- // 查询列表数据
- return $this->with(['user.avatar'])
- ->alias('order')
- ->field('order.*')
- ->leftJoin('user', 'user.user_id = order.user_id')
- ->where($filter)
- ->where('order.is_del', '=', 0)
- ->order(['order.create_time' => 'desc'])
- ->paginate(15)->each(function ($item) use ($userVerifyModel){
- $item->user_verify = $userVerifyModel->where('user_id',$item->user_id)->field('mobile,user_name,id_card')->find();
- });
- }
- /**
- * 设置检索查询条件
- * @param array $param
- * @return array
- */
- private function getQueryFilter(array $param)
- {
- // 查询参数
- $params = $this->setQueryDefaultValue($param, [
- 'state' => -1, // 订单状态(10待付款 30已付款 40交易关闭)
- 'pay_type' => -1, // 支付方式(10余额支付 20微信支付)
- 'order_no' => '', // 订单编号
- 'rice_card_name' => '', // 米卡名称
- 'rice_card_type' => -1, // 米卡类型 1-电子套餐卡 2-电子现金卡 3-电子实物兑换卡
- 'nick_name' => '', // 付款人姓名
- 'mobile' => '', // 付款人手机号
- 'betweenTime' => [], // 下单起止时间
- 'betweenPayTime' => [], // 付款起止时间
- ]);
- // 检索查询条件
- $filter = [];
- if ($params['state'] == 10) { // 待付款
- $filter[] = ["order.order_status", '=', 10];
- $filter[] = ["order.pay_status", '=', 0];
- } elseif ($params['state'] == 30) { // 已付款
- $filter[] = ["order.pay_status", '=', 1];
- } elseif ($params['state'] == 40) { // 已关闭
- $filter[] = ["order.order_status", '=', 40];
- }
- $params['pay_type'] > -1 && $filter[] = ["order.pay_type", '=', $params['pay_type']];
- !empty($params['order_no']) && $filter[] = ["order.order_no", 'like', "%{$params['order_no']}%"];
- !empty($params['rice_card_name']) && $filter[] = ["order.rice_card_name", 'like', "%{$params['rice_card_name']}%"];
- $params['rice_card_type'] > -1 && $filter[] = ["order.rice_card_type", '=', $params['rice_card_type']];
- !empty($params['nick_name']) && $filter[] = ["user.nick_name", 'like', "%{$params['nick_name']}%"];
- !empty($params['mobile']) && $filter[] = ["order.user_mobile", 'like', "%{$params['mobile']}%"];
- // 下单起止时间
- if (!empty($params['betweenTime'])) {
- if (isset($params['betweenTime'][0]) && $params['betweenTime'][0] && isset($params['betweenTime'][1]) && $params['betweenTime'][1]) {
- $times = between_date($params['betweenTime']);
- $filter[] = ['order.create_time', 'between', [$times['start_date'], $times['end_date']]];
- }
- }
- // 付款起止时间
- if (!empty($params['betweenPayTime'])) {
- if (isset($params['betweenPayTime'][0]) && $params['betweenPayTime'][0] && isset($params['betweenPayTime'][1]) && $params['betweenPayTime'][1]) {
- $times = between_date($params['betweenPayTime']);
- $filter[] = ['order.pay_time', 'between', [$times['start_date'], $times['end_date']]];
- }
- }
- return $filter;
- }
- }
|