| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685 |
- <?php
- namespace app\modules\admin\models\shareGroup;
- use app\models\Order;
- use app\models\OrderDetail;
- use app\models\SaasUser;
- use app\models\ShareGroupMoney;
- use app\models\ShareGroupMoneySub;
- use app\models\ShareGroupPurchaseParentLog;
- use app\models\ShareGroupPurchaseUser;
- use app\models\ShareGroupSupportLog;
- use app\models\User;
- use yii\base\Model;
- class GroupPurchaseForm extends Model
- {
- public $store_id;
- public $nickname;
- public $mobile;
- public $start_time;
- public $end_time;
- public $order_no;
- public $goods_name;
- public $status;
- public $batch_id;
- public $child_level;
- public function rules()
- {
- return [
- [['store_id', 'status', 'batch_id', 'child_level'], 'integer'],
- [['nickname', 'mobile', 'start_time', 'end_time', 'order_no', 'goods_name'], 'string'],
- [['nickname', 'mobile', 'order_no', 'goods_name'], 'trim']
- ];
- }
- public function attributeLabels()
- {
- return [
- 'store_id' => "Store Id",
- 'nickname' => '用户昵称',
- 'mobile' => '手机号码',
- 'start_time' => '起止时间-开始',
- 'end_time' => '起止时间-结束',
- 'order_no' => '订单编号',
- 'goods_name' => '商品名称',
- 'status' => '状态'
- ];
- }
- public function headUserList() {
- try {
- $store_id = $this->store_id;
- $nickname = $this->nickname;
- $mobile = $this->mobile;
- $start_time = $this->start_time;
- $end_time = $this->end_time;
- $query = ShareGroupPurchaseParentLog::find()->alias('sg')
- ->leftJoin(['u' => User::tableName()], 'sg.user_id = u.id')
- ->leftJoin(['su' => SaasUser::tableName()], 'su.mobile = u.binding')
- ->leftJoin(['spu' => ShareGroupPurchaseUser::tableName()], 'spu.user_id = u.id')
- ->where(['sg.store_id' => $store_id, 'u.is_delete' => 0, 'su.is_delete' => 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(['>=', 'spu.created_at', $start_time]);
- }
- if (!empty($end_time)) {
- $end_time = strtotime($end_time);
- $query->andWhere(['<=', 'spu.created_at', $end_time]);
- }
- $query->select('sg.id, sg.user_id, sg.parent_user_id, su.name, su.avatar, su.mobile, spu.created_at, sg.parent_id, sg.child_level')
- ->orderBy('spu.created_at DESC')->groupBy('sg.user_id');
- $pagination = pagination_make($query);
- foreach ($pagination['list'] as &$item) {
- $item['created_at'] = date('Y-m-d H:i:s', $item['created_at']);
- $shareGroupPurchaseUser = ShareGroupPurchaseUser::findOne(['user_id' => $item['user_id']]);
- $item['group_price'] = $shareGroupPurchaseUser->group_price ?? '0.00';
- $item['direct_price'] = $shareGroupPurchaseUser->direct_price ?? '0.00';
- $item['support_price'] = $shareGroupPurchaseUser->support_price ?? '0.00';
- // $shareGroupSupportLog = ShareGroupSupportLog::findOne(['user_id' => $item['user_id']]);
- // if ($shareGroupSupportLog && $shareGroupSupportLog->parent_id) {
- // $parentShareGroupSupportLog = ShareGroupSupportLog::findOne(['id' => $shareGroupSupportLog->parent_id]);
- // $item['parent_user_id'] = $parentShareGroupSupportLog->user_id;
- // }
- $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['parent_user'] = $parent_user ?: [];
- $first_child = ShareGroupPurchaseParentLog::find()->where(['parent_id' => $item['id']])
- ->select('id, user_id')->asArray()->all();
- $group_purchase_child_data_id = array_column($first_child, 'id');
- $group_purchase_child_data_user_id = array_column($first_child, 'user_id');
- // $second_child = ShareGroupPurchaseParentLog::find()->where(['parent_id' => $first_child_id])
- // ->select('id, user_id')->asArray()->all();
- // $second_child_id = array_column($second_child, 'id');
- // $second_child_user_id = array_column($second_child, 'user_id');
- //
- // $group_purchase_child_data_id = array_merge($first_child_id, $second_child_id);
- //
- // $group_purchase_child_data_user_id = array_merge($first_child_user_id, $second_child_user_id);
- // $group_purchase_child_data_id = array_unique($group_purchase_child_data);
- $item['group_purchase_child_count'] = count($group_purchase_child_data_id);
- $item['group_purchase_child_list'] = [];
- foreach ($group_purchase_child_data_user_id as $purchase_user_id_item) {
- $item['group_purchase_child_list'][] = User::find()->alias('u')
- ->leftJoin(['su' => SaasUser::tableName()], 'su.mobile = u.binding')
- ->where(['u.id' => $purchase_user_id_item, 'u.is_delete' => 0, 'su.is_delete' => 0])
- ->select('su.name, su.avatar, su.mobile')->asArray()->one();
- }
- $group_support_child_data = ShareGroupSupportLog::find()->where(['parent_user_id' => $item['user_id']])
- ->select('user_id')->column();
- $item['group_support_child_count'] = count($group_support_child_data);
- $child_list = User::find()->alias('u')
- ->leftJoin(['su' => SaasUser::tableName()], 'su.mobile = u.binding')
- ->where(['u.id' => $group_support_child_data, 'u.is_delete' => 0, 'su.is_delete' => 0])
- ->select('su.name, su.avatar, su.mobile')->asArray()->all();
- $item['group_support_child_list'] = $child_list;
- }
- return [
- 'code' => 0,
- 'msg' => 'success',
- 'data' => $pagination
- ];
- } catch (\Exception $e) {
- return [
- 'code' => 1,
- 'msg' => $e->getMessage()
- ];
- }
- }
- //拼购记录
- public function amountList() {
- try {
- $order_no = $this->order_no;
- $nickname = $this->nickname;
- $mobile = $this->mobile;
- $start_time = $this->start_time;
- $end_time = $this->end_time;
- $store_id = $this->store_id;
- $query = ShareGroupMoney::find()->alias('sgm')
- ->leftJoin(['s' => ShareGroupPurchaseParentLog::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])
- // ->andWhere(['OR',
- // ['sgm.type' => ShareGroupMoney::TYPE_DIRECT],
- // ['sgm.type' => ShareGroupMoney::TYPE_GROUP, 'profit_type' => ShareGroupMoney::PROFIT_TYPE_COMMON]
- // ]);
- ->andWhere([
- 'sgm.type' => ShareGroupMoney::TYPE_GROUP,
- // 'profit_type' => ShareGroupMoney::PROFIT_TYPE_COMMON
- ]);
- 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(['OR', ['LIKE', 'o.order_no', $order_no], ['LIKE', 'sgm.group_data', $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.created_at, sgm.type, sgm.is_send,
- sgm.send_time, su.name, su.mobile, su.avatar, sgm.group_data, o.id order_id, sgm.amount, sgm.radix, sgm.profit_type')
- ->orderBy('sgm.id DESC');
- $pagination = pagination_make($query);
- foreach ($pagination['list'] as $index => &$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['profit_type'] = intval($item['profit_type']);
- //查询成团奖人员
- $item['group_data'] = json_decode($item['group_data'] ?? '', true) ?: null;
- if (!empty($item['group_data'])) {
- $item['group_data'] = ShareGroupMoneySub::find()->where(['share_money_id' => $item['id']])
- ->select('order_id, amount, radix, is_send')->asArray()->all();
- foreach ($item['group_data'] as &$group_item) {
- $item_order = Order::findOne($group_item['order_id']);
- $parent_user = User::find()->alias('u')
- ->leftJoin(['su' => SaasUser::tableName()], 'su.mobile = u.binding')
- ->where(['u.id' => $item_order['user_id'], 'u.is_delete' => 0, 'su.is_delete' => 0])
- ->select('su.name, su.avatar, su.mobile')->asArray()->one();
- $group_item['user_info'] = $parent_user;
- $group_item['order_no'] = $item_order->order_no;
- $group_item['is_send'] = intval($group_item['is_send']);
- }
- } else {
- $item_order = Order::findOne($item['order_id']);
- $parent_user = User::find()->alias('u')
- ->leftJoin(['su' => SaasUser::tableName()], 'su.mobile = u.binding')
- ->where(['u.id' => $item_order['user_id'], 'u.is_delete' => 0, 'su.is_delete' => 0])
- ->select('su.name, su.avatar, su.mobile')->asArray()->one();
- $item['group_data'] = [
- [
- 'user_info' => $parent_user,
- 'order_no' => $item_order->order_no,
- 'radix' => $item['radix'],
- 'amount' => $item['amount'],
- 'is_send' => intval($item['is_send'])
- ]
- ];
- }
- $item['is_send'] = intval($item['is_send']);
- unset($pagination['list'][$index]['radix'], $pagination['list'][$index]['order_id']);
- }
- return [
- 'code' => 0,
- 'msg' => 'success',
- 'data' => $pagination
- ];
- } catch (\Exception $e) {
- return [
- 'code' => 1,
- 'msg' => $e->getMessage()
- ];
- }
- }
- //分润订单
- public function orderAmountList() {
- try {
- $order_no = $this->order_no;
- $goods_name = $this->goods_name;
- $start_time = $this->start_time;
- $end_time = $this->end_time;
- $store_id = $this->store_id;
- $status = $this->status;
- $query = Order::find()->alias('o')
- // ->leftJoin(['s' => ShareGroupPurchaseParentLog::tableName()], 'o.id = s.order_id')
- ->leftJoin(['sgm' => ShareGroupMoney::tableName()], 'sgm.order_id = o.id AND sgm.type = ' . ShareGroupMoney::TYPE_DIRECT)
- // ->leftJoin(['s_' => ShareGroupSupportLog::tableName()], 'o.id = s_.order_id')
- ->leftJoin(['sgm_' => ShareGroupMoney::tableName()], 'sgm_.order_id = o.id AND sgm_.type = ' . ShareGroupMoney::TYPE_SUPPORT)
- ->leftJoin(['sgms' => ShareGroupMoneySub::tableName()], 'sgms.order_id = o.id')
- ->leftJoin(['od' => OrderDetail::tableName()], 'od.order_id = o.id')
- ->where(['o.store_id' => $store_id])->andWhere(['OR', ['>', 'sgm.amount', 0], ['>', 'sgm_.amount', 0], ['>', 'sgms.amount', 0]]);
- if (!empty($order_no)) {
- $query->andWhere(['LIKE', 'o.order_no', $order_no]);
- }
- if (!empty($goods_name)) {
- $query->andWhere(['OR', ['LIKE', 's.goods_name', $goods_name], ['LIKE', 'sgms.goods_name', $goods_name]]);
- }
- if (!empty($start_time)) {
- $start_time = strtotime($start_time);
- $query->andWhere(['>=', 'o.created_at', $start_time]);
- }
- if (!empty($end_time)) {
- $end_time = strtotime($end_time);
- $query->andWhere(['<=', 'o.created_at', $end_time]);
- }
- if (isset($status) && in_array($status, [0, 1])) {
- $query->andWhere(['OR', ['sgm.is_send' => $status], ['sgm_.is_send' => $status], ['sgms.is_send' => $status]]);
- }
- $query->select('o.id, o.order_no, o.created_at, o.user_id');
- $query->groupBy('o.id')->orderBy('o.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['amount'] = 0;
- $item['is_send'] = 1;//假如是发放状态 如果有一个未发放则改为未发放
- $item['desc'] = '';
- // $item['parent_user_info'] = [
- // 'name' => '',
- // 'avatar' => '',
- // 'mobile' => '',
- // ];
- $item['amount_detail'] = [];
- $parent_user_id = 0;
- // $purchaseLog = ShareGroupPurchaseParentLog::findOne(['order_id' => $item['id']]);
- // if ($purchaseLog) {
- $shareGroupMoney = ShareGroupMoney::findOne(['order_id' => $item['id'], 'type' => ShareGroupMoney::TYPE_DIRECT]);
- if ($shareGroupMoney) {
- $item['amount'] = bcadd($item['amount'], $shareGroupMoney->amount, 2);
- $item['is_send'] = $shareGroupMoney->is_send;
- if ($shareGroupMoney->amount > 0) {
- $item['desc'] .= "直推佣金:" . ($shareGroupMoney->amount ?: "0") . ';';
- $parent_user_id = $shareGroupMoney->user_id;
- $user_info = User::find()->alias('u')
- ->leftJoin(['su' => SaasUser::tableName()], 'su.mobile = u.binding')
- ->where(['u.id' => $parent_user_id, 'u.is_delete' => 0, 'su.is_delete' => 0])
- ->select('su.name, su.avatar, su.mobile')->asArray()->one();
- $item['amount_detail'][] = [
- 'type' => ShareGroupMoney::TYPE_DIRECT,
- 'amount' => $shareGroupMoney->amount,
- 'type_text' => '直推奖',
- 'parent_user_info' => $user_info,
- 'is_send' => intval($shareGroupMoney->is_send)
- ];
- }
- }
- // }
- // $purchaseLog = ShareGroupSupportLog::findOne(['order_id' => $item['id']]);
- // if ($purchaseLog) {
- $shareGroupMoney = ShareGroupMoney::findOne(['order_id' => $item['id'], 'type' => ShareGroupMoney::TYPE_SUPPORT]);
- if ($shareGroupMoney) {
- $item['amount'] = bcadd($item['amount'], $shareGroupMoney->amount, 2);
- $item['is_send'] = $shareGroupMoney->is_send;
- $item['desc'] .= "帮扶佣金:" . $shareGroupMoney->amount . ';';
- $parent_user_id = $shareGroupMoney->user_id;
- $user_info = User::find()->alias('u')
- ->leftJoin(['su' => SaasUser::tableName()], 'su.mobile = u.binding')
- ->where(['u.id' => $parent_user_id, 'u.is_delete' => 0, 'su.is_delete' => 0])
- ->select('su.name, su.avatar, su.mobile')->asArray()->one();
- $item['amount_detail'][] = [
- 'type' => ShareGroupMoney::TYPE_SUPPORT,
- 'amount' => $shareGroupMoney->amount,
- 'type_text' => '帮扶奖',
- 'parent_user_info' => $user_info,
- 'is_send' => intval($shareGroupMoney->is_send)
- ];
- }
- // }
- $money_sub_amount = ShareGroupMoneySub::find()->alias('sb')
- ->leftJoin(['s' => ShareGroupMoney::tableName()], 'sb.share_money_id = s.id')
- ->where(['sb.order_id' => $item['id'], 's.profit_type' => ShareGroupMoney::PROFIT_TYPE_COMMON])
- ->select('sb.amount, sb.is_send, s.user_id')->asArray()->one();
- if ($money_sub_amount) {
- $item['amount'] = bcadd($item['amount'], $money_sub_amount['amount'] ?? 0, 2);
- $item['is_send'] = $money_sub_amount['is_send'];
- $item['desc'] .= "成团佣金:" . $money_sub_amount['amount'] ?? 0 . ';';
- $parent_user_id = $money_sub_amount['user_id'];
- $user_info = User::find()->alias('u')
- ->leftJoin(['su' => SaasUser::tableName()], 'su.mobile = u.binding')
- ->where(['u.id' => $parent_user_id, 'u.is_delete' => 0, 'su.is_delete' => 0])
- ->select('su.name, su.avatar, su.mobile')->asArray()->one();
- $item['amount_detail'][] = [
- 'type' => ShareGroupMoney::TYPE_GROUP,
- 'amount' => $money_sub_amount['amount'] ?? 0,
- 'type_text' => '成团奖',
- 'parent_user_info' => $user_info,
- 'is_send' => intval($money_sub_amount['is_send'])
- ];
- }
- $item['is_send'] = intval($item['is_send']);
- $order_detail = OrderDetail::find()->where(['order_id' => $item['id']])
- ->select('goods_name, pic, attr, total_price, num')->asArray()->all();
- foreach ($order_detail as &$goods_item) {
- $goods_item['price'] = bcdiv($goods_item['total_price'], $goods_item['num'], 2);
- }
- $item['goods_list'] = $order_detail;
- $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();
- $item['user_info'] = $user_info;
- }
- return [
- 'code' => 0,
- 'msg' => 'success',
- 'data' => $pagination
- ];
- } catch (\Exception $e) {
- return [
- 'code' => 1,
- 'msg' => $e->getMessage()
- ];
- }
- }
- //复购记录
- public function orderRepeatLog() {
- try {
- $store_id = $this->store_id;
- $order_no = $this->order_no;
- $goods_name = $this->goods_name;
- $nickname = $this->nickname;
- $mobile = $this->mobile;
- $start_time = $this->start_time;
- $end_time = $this->end_time;
- $query = ShareGroupPurchaseParentLog::find()->alias('s')
- ->leftJoin(['o' => Order::tableName()], 's.order_id = o.id')
- ->leftJoin(['od' => OrderDetail::tableName()], 'od.order_id = o.id')
- ->leftJoin(['u' => User::tableName()], 'o.user_id = u.id')
- ->leftJoin(['su' => SaasUser::tableName()], 'su.mobile = u.binding')
- ->where(['s.store_id' => $store_id, 's.is_repeat' => 1]);
- if (!empty($order_no)) {
- $query->andWhere(['LIKE', 'o.order_no', $order_no]);
- }
- if (!empty($goods_name)) {
- $query->andWhere(['LIKE', 's.goods_name', $goods_name]);
- }
- 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(['>=', 'o.created_at', $start_time]);
- }
- if (!empty($end_time)) {
- $end_time = strtotime($end_time);
- $query->andWhere(['<=', 'o.created_at', $end_time]);
- }
- $query->select('o.id, o.order_no, o.created_at, o.user_id, su.name, su.mobile, su.avatar, s.order_detail_id, s.is_auto_repeat');
- $query->groupBy('s.id')->orderBy('o.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['order_detail_id'] = explode(',', $item['order_detail_id']);
- $order_detail = OrderDetail::find()->where(['order_id' => $item['id'], 'id' => $item['order_detail_id']])
- ->select('goods_name, pic, attr, total_price')->asArray()->all();
- $item['total_price'] = 0;
- foreach ($order_detail as $order_detail_item) {
- $item['total_price'] = bcadd($item['total_price'], $order_detail_item['total_price'], 2);
- }
- $item['goods_list'] = $order_detail;
- $item['is_auto_repeat'] = intval($item['is_auto_repeat']);
- }
- return [
- 'code' => 0,
- 'msg' => 'success',
- 'data' => $pagination
- ];
- } catch (\Exception $e) {
- return [
- 'code' => 1,
- 'msg' => $e->getMessage()
- ];
- }
- }
- //拼购区公排列表
- public function groupList() {
- $store_id = $this->store_id;
- $order_no = $this->order_no;
- $batch_id = $this->batch_id ?: 0;
- $child_level = $this->child_level;
- $nickname = $this->nickname;
- $mobile = $this->mobile;
- $team_group = ShareGroupPurchaseParentLog::find()->alias('p')
- ->leftJoin(['o' => Order::tableName()], 'p.order_id = o.id')
- ->leftJoin(['u' => User::tableName()], 'o.user_id = u.id')
- ->leftJoin(['su' => SaasUser::tableName()], 'su.mobile = u.binding')
- ->where(['p.store_id' => $store_id, 'p.parent_id' => 0])
- ->select('p.id, o.order_no, u.nickname, su.mobile')->asArray()->all();
- foreach ($team_group as &$team_group_item) {
- $team_group_item['max_level'] = ShareGroupPurchaseParentLog::find()
- ->where(['batch_id' => $team_group_item['id']])->select('child_level')->max('child_level');
- }
- $query = ShareGroupPurchaseParentLog::find()->alias('p')
- ->leftJoin(['o' => Order::tableName()], 'p.order_id = o.id')
- ->leftJoin(['u' => User::tableName()], 'o.user_id = u.id')
- ->leftJoin(['su' => SaasUser::tableName()], 'su.mobile = u.binding')
- ->where(['p.store_id' => $store_id]);
- if ($child_level) {
- $query->andWhere(['p.child_level' => $child_level]);
- }
- if (!empty($order_no)) {
- $query->andWhere(['LIKE', 'o.order_no', $order_no]);
- }
- if (!empty($nickname)) {
- $query->andWhere(['LIKE', 'u.nickname', $nickname]);
- }
- if (!empty($mobile)) {
- $query->andWhere(['LIKE', 'su.mobile', $mobile]);
- }
- if (!empty($batch_id)) {
- $query->andWhere(['OR', ['p.batch_id' => $batch_id], ['p.id' => $batch_id]]);
- }
- if (empty($order_no) && empty($nickname) && empty($mobile) && empty($batch_id)) {
- $query->andWhere(['p.batch_id' => 0]);
- }
- $query->select('p.id, p.order_id, o.order_no, p.user_id, u.nickname, su.mobile, u.avatar_url avatar, p.child_level,
- p.points, p.created_at, p.parent_user_id, p.batch_id, p.parent_id')
- ->orderBy('p.child_level ASC, p.points ASC');
- $pagination = pagination_make($query);
- foreach ($pagination['list'] as &$item) {
- $item['is_support'] = 0;
- $item['created_at'] = date('Y-m-d H:i:s', $item['created_at']);
- //订单上级信息
- $user_info = [
- 'nickname' => '',
- 'mobile' => ''
- ];
- $shareGroupPurchaseParentLog = ShareGroupPurchaseParentLog::findOne($item['parent_id']);
- if ($shareGroupPurchaseParentLog) {
- $order = Order::findOne($shareGroupPurchaseParentLog->order_id);
- $user_info = User::find()->alias('u')
- ->leftJoin(['su' => SaasUser::tableName()], 'su.mobile = u.binding')
- ->where(['u.id' => $shareGroupPurchaseParentLog->user_id, 'u.is_delete' => 0, 'su.is_delete' => 0])
- ->select('u.nickname, su.mobile')->asArray()->one();
- $user_info['order_no'] = $order->order_no;
- }
- $item['parent_user'] = $user_info;
- //佣金信息
- $money_purchase = ShareGroupMoneySub::find()->alias('ss')
- ->leftJoin(['s' => ShareGroupMoney::tableName()], 's.id = ss.share_money_id')
- ->leftJoin(['p' => ShareGroupPurchaseParentLog::tableName()], 'p.id = s.type_id')
- ->leftJoin(['u' => User::tableName()], 'p.user_id = u.id')
- ->leftJoin(['su' => SaasUser::tableName()], 'su.mobile = u.binding')
- ->where([
- 'ss.order_id' => $item['order_id'],
- 's.profit_type' => ShareGroupMoney::PROFIT_TYPE_COMMON
- ])->select('ss.amount, ss.is_send, u.nickname, u.avatar_url, su.mobile, ss.created_at, p.points, p.child_level')
- ->orderBy('p.child_level ASC, p.points ASC')->asArray()->all();
- $item['amount'] = 0;
- foreach ($money_purchase as &$money_purchase_item) {
- $money_purchase_item['is_send'] = intval($money_purchase_item['is_send']);
- $item['amount'] = bcadd($item['amount'], $money_purchase_item['amount'], 2);
- $money_purchase_item['created_at'] = date('Y-m-d H:i:s', $money_purchase_item['created_at']);
- }
- $item['money_purchase'] = $money_purchase;
- }
- $pagination['team_group'] = $team_group;
- return [
- 'code' => 0,
- 'msg' => 'success',
- 'data' => $pagination
- ];
- }
- //
- }
|