order_no; $nickname = $this->nickname; $mobile = $this->mobile; $start_time = $this->start_time; $end_time = $this->end_time; $store_id = $this->store_id; //兼容帮扶直推筛选 $type = $this->type; $query = ShareGroupMoney::find()->alias('sgm') // ->leftJoin(['s' => ShareGroupSupportLog::tableName()], 's.id = sgm.type_id') ->leftJoin(['o' => Order::tableName()], 'sgm.order_id = o.id') ->leftJoin(['u' => User::tableName()], 'sgm.user_id = u.id') ->leftJoin(['su' => SaasUser::tableName()], 'su.mobile = u.binding') ->where(['sgm.store_id' => $store_id]); if (isset($type) && in_array($type, [ShareGroupMoney::TYPE_SUPPORT, ShareGroupMoney::TYPE_DIRECT])) { $query->andWhere(['sgm.type' => $type]); } else { $query->andWhere(['sgm.type' => ShareGroupMoney::TYPE_SUPPORT]); } if (!empty($nickname)) { $query->andWhere(['OR', ['LIKE', 'su.name', $nickname], ['LIKE', 'u.nickname', $nickname]]); } if (!empty($mobile)) { $query->andWhere(['LIKE', 'su.mobile', $mobile]); } if (!empty($order_no)) { $query->andWhere(['LIKE', 'o.order_no', $order_no]); } if (!empty($start_time)) { $start_time = strtotime($start_time); $query->andWhere(['>=', 'sgm.created_at', $start_time]); } if (!empty($end_time)) { $end_time = strtotime($end_time); $query->andWhere(['<=', 'sgm.created_at', $end_time]); } $query->select('sgm.id, sgm.amount, sgm.radix, sgm.created_at, o.order_no, o.user_id, sgm.type, sgm.is_send, sgm.send_time, su.name, su.mobile, su.avatar, sgm.freeze_amount, sgm.is_send_freeze') ->orderBy('sgm.id DESC'); $pagination = pagination_make($query); foreach ($pagination['list'] as &$item) { $item['created_at'] = date('Y-m-d H:i:s', $item['created_at']); $item['send_time'] = $item['send_time'] ? date('Y-m-d H:i:s', $item['send_time']) : ''; $item['type'] = intval($item['type']); $parent_user = User::find()->alias('u') ->leftJoin(['su' => SaasUser::tableName()], 'su.mobile = u.binding') ->where(['u.id' => $item['user_id'], 'u.is_delete' => 0, 'su.is_delete' => 0]) ->select('su.name, su.avatar, su.mobile')->asArray()->one(); $item['buy_user_name'] = $parent_user['name'] ?: ''; if (intval($item['is_send_freeze'])) { $item['amount'] = bcadd($item['amount'], $item['freeze_amount'], 2); } $item['is_send'] = intval($item['is_send']); } return [ 'code' => 0, 'msg' => 'success', 'data' => $pagination ]; } catch (\Exception $e) { return [ 'code' => 1, 'msg' => $e->getMessage() ]; } } //上级变动记录(帮扶记录) public function parentSupportLog() { try { $nickname = $this->nickname; $mobile = $this->mobile; $start_time = $this->start_time; $end_time = $this->end_time; $query = ShareGroupSupportLog::find()->alias('s') ->leftJoin(['u' => User::tableName()], 's.user_id = u.id') ->leftJoin(['su' => SaasUser::tableName()], 'su.mobile = u.binding') ->where(['s.store_id' => $this->store_id, 's.purchase_batch_id' => 0]); if (!empty($nickname)) { $query->andWhere(['OR', ['LIKE', 'su.name', $nickname], ['LIKE', 'u.nickname', $nickname]]); } if (!empty($mobile)) { $query->andWhere(['LIKE', 'su.mobile', $mobile]); } if (!empty($start_time)) { $start_time = strtotime($start_time); $query->andWhere(['>=', 's.created_at', $start_time]); } if (!empty($end_time)) { $end_time = strtotime($end_time); $query->andWhere(['<=', 's.created_at', $end_time]); } $query->select('s.id, s.parent_id, s.parent_user_id, su.name, su.mobile, su.avatar, s.created_at, s.user_id') ->orderBy('s.id DESC'); $pagination = pagination_make($query); foreach ($pagination['list'] as &$item) { $item['created_at'] = date('Y-m-d H:i:s', $item['created_at']); $item['old_parent_user'] = User::find()->alias('u') ->leftJoin(['su' => SaasUser::tableName()], 'su.mobile = u.binding') ->where(['u.id' => $item['parent_user_id'], 'u.is_delete' => 0, 'su.is_delete' => 0]) ->select('su.name, su.avatar, su.mobile')->asArray()->one(); $shareGroupPurchaseUser = ShareGroupPurchaseUser::findOne(['user_id' => $item['user_id']]); $item['parent_user'] = User::find()->alias('u') ->leftJoin(['su' => SaasUser::tableName()], 'su.mobile = u.binding') ->where(['u.id' => $shareGroupPurchaseUser->parent_user_id, 'u.is_delete' => 0, 'su.is_delete' => 0]) ->select('su.name, su.avatar, su.mobile')->asArray()->one(); $item['desc'] = '原上级扶持'; } return [ 'code' => 0, 'msg' => 'success', 'data' => $pagination ]; } catch (\Exception $e) { return [ 'code' => 1, 'msg' => $e->getMessage() ]; } } //帮扶佣金冻结列表 public function freezeAmountList() { try { $order_no = trim($this->order_no); $nickname = trim($this->nickname); $mobile = trim($this->mobile); $start_time = $this->start_time; $end_time = $this->end_time; $store_id = $this->store_id; $status = $this->status; $query = ShareGroupMoney::find()->alias('sgm') ->leftJoin(['s' => ShareGroupSupportLog::tableName()], 's.id = sgm.type_id') ->leftJoin(['o' => Order::tableName()], 's.order_id = o.id') ->leftJoin(['u' => User::tableName()], 'sgm.user_id = u.id') ->leftJoin(['su' => SaasUser::tableName()], 'su.mobile = u.binding') ->where(['sgm.store_id' => $store_id, 'sgm.is_freeze' => 1]); if (!empty($nickname)) { $query->andWhere(['OR', ['LIKE', 'su.name', $nickname], ['LIKE', 'u.nickname', $nickname]]); } if (!empty($mobile)) { $query->andWhere(['LIKE', 'su.mobile', $mobile]); } if (!empty($order_no)) { $query->andWhere(['LIKE', 'o.order_no', $order_no]); } if (!empty($start_time)) { $start_time = strtotime($start_time); $query->andWhere(['>=', 'sgm.created_at', $start_time]); } if (!empty($end_time)) { $end_time = strtotime($end_time); $query->andWhere(['<=', 'sgm.created_at', $end_time]); } if (isset($status) && in_array($status, [0, 1])) { $query->andWhere(['sgm.is_send_freeze' => $status]); } $query->select('sgm.id, sgm.freeze_amount amount, sgm.radix, sgm.created_at, o.order_no, sgm.type, sgm.freeze_send_time send_time, su.name, su.mobile, su.avatar, sgm.is_send_freeze, o.user_id') ->orderBy('sgm.id DESC'); $pagination = pagination_make($query); foreach ($pagination['list'] as &$item) { $item['created_at'] = date('Y-m-d H:i:s', $item['created_at']); $item['send_time'] = $item['send_time'] ? date('Y-m-d H:i:s', $item['send_time']) : ''; $item['type'] = intval($item['type']); $item['is_send_freeze'] = intval($item['is_send_freeze']); //下单人信息 $item['user_info'] = User::find()->alias('u') ->leftJoin(['su' => SaasUser::tableName()], 'su.mobile = u.binding') ->where(['u.id' => $item['user_id'], 'u.is_delete' => 0, 'su.is_delete' => 0]) ->select('su.name, su.avatar, su.mobile')->asArray()->one(); } return [ 'code' => 0, 'msg' => 'success', 'data' => $pagination ]; } catch (\Exception $e) { return [ 'code' => 1, 'msg' => $e->getMessage() ]; } } }