| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419 |
- <?php
- namespace app\modules\admin\models\superSales;
- use app\models\Order;
- use app\models\SaasUser;
- use app\models\SuperSales;
- use app\models\SuperSalesMoney;
- use app\models\SuperSalesSub;
- use app\models\SuperSalesUser;
- use app\models\User;
- use yii\base\Model;
- class IndexForm extends Model
- {
- public $name;
- public $mobile;
- public $start_time;
- public $end_time;
- public $send_start_time;
- public $send_end_time;
- public $finish_start_time;
- public $finish_end_time;
- public $order_no;
- public $status;
- public $store_id;
- public $id;
- public $parent_user_id;
- public function rules()
- {
- return [
- [['status', 'store_id', 'id', 'parent_user_id'], 'integer'],
- [['name', 'mobile', 'start_time', 'end_time', 'send_start_time', 'send_end_time', 'order_no', 'finish_start_time', 'finish_end_time'], 'string'],
- ];
- }
- //开团列表
- public function superSalesList() {
- $status = $this->status;
- $name = $this->name;
- $mobile = $this->mobile;
- $start_time = $this->start_time;
- $end_time = $this->end_time;
- $store_id = $this->store_id;
- $query = SuperSales::find()->alias('ss')
- ->leftJoin(['u' => User::tableName()], 'ss.user_id = u.id')
- ->leftJoin(['su' => SaasUser::tableName()], 'su.mobile=u.binding')
- ->where(['ss.store_id' => $store_id]);
- if (isset($status) && in_array($status, [SuperSales::STATUS_FINISH, SuperSales::STATUS_NOT_FINISH])) {
- $query->andWhere(['ss.status' => $status]);
- }
- if ($name) {
- $query->andWhere(['like', 'su.name', $name]);
- }
- if ($mobile) {
- $query->andWhere(['like', 'su.mobile', $mobile]);
- }
- if ($start_time) {
- $query->andWhere(['>=', 'ss.created_at', strtotime($start_time)]);
- }
- if ($end_time) {
- $query->andWhere(['<=', 'ss.created_at', strtotime($end_time)]);
- }
- $query->select('ss.id, ss.created_at, ss.status, su.name, su.avatar, su.mobile')->orderBy('ss.created_at DESC');
- $list = pagination_make($query);
- foreach ($list['list'] as &$item) {
- $item['created_at'] = date('Y-m-d H:i:s', $item['created_at']);
- $item['status'] = intval($item['status']);
- if ($item['status'] === SuperSales::STATUS_FINISH) {
- $item['status_name'] = '已完成';
- } else {
- $item['status_name'] = '未完成';
- }
- $item['num'] = SuperSalesSub::find()->where(['sales_id' => $item['id']])->count();
- }
- return [
- 'code' => 0,
- 'msg' => 'success',
- 'data' => $list
- ];
- }
- //参团用户
- public function superSalesUserList() {
- $name = $this->name;
- $mobile = $this->mobile;
- $start_time = $this->start_time;
- $end_time = $this->end_time;
- $id = $this->id;
- $query = SuperSalesSub::find()->alias('sss')
- ->leftJoin(['o' => Order::tableName()], 'sss.order_id = o.id')
- ->leftJoin(['u' => User::tableName()], 'sss.user_id = u.id')
- ->leftJoin(['su' => SaasUser::tableName()], 'su.mobile = u.binding')
- ->where(['sss.sales_id' => $id]);
- if ($name) {
- $query->andWhere(['like', 'su.name', $name]);
- }
- if ($mobile) {
- $query->andWhere(['like', 'su.mobile', $mobile]);
- }
- if ($start_time) {
- $query->andWhere(['>=', 'o.created_at', strtotime($start_time)]);
- }
- if ($end_time) {
- $query->andWhere(['<=', 'o.created_at', strtotime($end_time)]);
- }
- $query->select('sss.id, sss.weight, sss.order_id, sss.parent_user_id, sss.points, o.created_at, su.name, su.avatar, su.mobile, o.order_no')
- ->orderBy('sss.points DESC');
- $list = pagination_make($query);
- foreach ($list['list'] as &$item) {
- $item['created_at'] = date('Y-m-d H:i:s', $item['created_at']);
- $item['fugou'] = \app\models\SuperSalesRepeatOrder::findOne(['order_id' => $item['order_id']]);
- $item['is_fugou'] = $item['fugou'] ? 1 : 0;
- $item['parent_name'] = '';
- if ($item['parent_user_id']) {
- $superSalesSub = SuperSalesSub::findOne(['user_id' => $item['parent_user_id']]);
- if ($superSalesSub) {
- $binding = User::findOne(['id' => $item['parent_user_id'], 'is_delete' => 0])->binding;
- $user = SaasUser::find()->where(['mobile' => $binding])
- ->select('name')->asArray()->One();
- $item['parent_name'] = $user['name'] ?: '';
- }
- }
- }
- return [
- 'code' => 0,
- 'msg' => 'success',
- 'data' => $list
- ];
- }
- //团长列表
- public function superSalesSubList() {
- $name = $this->name;
- $mobile = $this->mobile;
- $start_time = $this->start_time;
- $end_time = $this->end_time;
- $store_id = $this->store_id;
- $parent_user_id = $this->parent_user_id;
- $query = SuperSalesUser::find()->alias('ssu')
- ->leftJoin(['u' => User::tableName()], 'ssu.user_id = u.id')
- ->leftJoin(['su' => SaasUser::tableName()], 'su.mobile = u.binding')
- ->where(['ssu.store_id' => $store_id]);
- if ($parent_user_id) {
- $query->andWhere(['ssu.parent_user_id' => $parent_user_id]);
- }
- if ($name) {
- $query->andWhere(['like', 'su.name', $name]);
- }
- if ($mobile) {
- $query->andWhere(['like', 'su.mobile', $mobile]);
- }
- if ($start_time) {
- $query->andWhere(['>=', 'ssu.created_at', strtotime($start_time)]);
- }
- if ($end_time) {
- $query->andWhere(['<=', 'ssu.created_at', strtotime($end_time)]);
- }
- $query->select('ssu.id, ssu.created_at, ssu.direct_award, ssu.group_award, ssu.parent_user_id, ssu.user_id, su.name, su.avatar, su.mobile')
- ->orderBy('ssu.created_at DESC');
- $list = pagination_make($query);
- foreach ($list['list'] as &$item) {
- $item['created_at'] = date('Y-m-d H:i:s', $item['created_at']);
- $item['parent_name'] = '';
- if ($item['parent_user_id']) {
- $superSalesSub = SuperSalesSub::findOne(['user_id' => $item['parent_user_id']]);
- if ($superSalesSub) {
- $binding = User::findOne(['id' => $item['parent_user_id'], 'is_delete' => 0])->binding;
- $user = SaasUser::find()->where(['mobile' => $binding])
- ->select('name')->asArray()->One();
- $item['parent_name'] = $user['name'] ?: '';
- }
- }
- //原始推荐下级
- $item['direct_user_num'] = SuperSalesUser::find()->where(['parent_user_id' => $item['user_id']])->count();
- }
- return [
- 'code' => 0,
- 'msg' => 'success',
- 'data' => $list
- ];
- }
- //直推奖列表
- public function directAwardList() {
- $name = $this->name;
- $mobile = $this->mobile;
- $start_time = $this->start_time;
- $end_time = $this->end_time;
- $order_no = $this->order_no;
- $send_start_time = $this->send_start_time;
- $send_end_time = $this->send_end_time;
- $store_id = $this->store_id;
- $query = SuperSalesMoney::find()->alias('ssm')
- ->leftJoin(['o' => Order::tableName()], 'ssm.order_id = o.id')
- ->leftJoin(['u' => User::tableName()], 'ssm.user_id = u.id')
- ->leftJoin(['su' => SaasUser::tableName()], 'su.mobile = u.binding')
- ->where(['ssm.store_id' => $store_id, 'ssm.type' => SuperSalesMoney::TYPE_DIRECT_AWARD]);
- if ($name) {
- $query->andWhere(['like', 'su.name', $name]);
- }
- if ($mobile) {
- $query->andWhere(['like', 'su.mobile', $mobile]);
- }
- if ($order_no) {
- $query->andWhere(['like', 'o.order_no', $order_no]);
- }
- if ($start_time) {
- $query->andWhere(['>=', 'o.created_at', strtotime($start_time)]);
- }
- if ($end_time) {
- $query->andWhere(['<=', 'o.created_at', strtotime($end_time)]);
- }
- if ($send_start_time) {
- $query->andWhere(['>=', 'ssm.send_time', strtotime($send_start_time)]);
- }
- if ($send_end_time) {
- $query->andWhere(['<=', 'ssm.send_time', strtotime($send_end_time)]);
- }
- $query->select('ssm.id, ssm.order_id, ssm.money, o.created_at, ssm.send_time, ssm.status, o.order_no,
- su.name, su.avatar, su.mobile, o.user_id, o.total_price')
- ->orderBy('ssm.created_at DESC');
- $list = pagination_make($query);
- foreach ($list['list'] as &$item) {
- $item['created_at'] = date('Y-m-d H:i:s', $item['created_at']);
- $item['status'] = intval($item['status']);
- $item['send_time'] = $item['status'] ? date('Y-m-d H:i:s', $item['send_time']) : '暂未到账';
- $binding = User::findOne(['id' => $item['user_id'], 'is_delete' => 0])->binding;
- $user = SaasUser::find()->where(['mobile' => $binding])
- ->select('name')->asArray()->One();
- $item['order_user_name'] = $user['name'] ?: '';
- }
- return [
- 'code' => 0,
- 'msg' => 'success',
- 'data' => $list
- ];
- }
- //分红奖列表
- public function dividendAwardList() {
- $name = $this->name;
- $mobile = $this->mobile;
- $start_time = $this->start_time;
- $end_time = $this->end_time;
- $send_start_time = $this->send_start_time;
- $send_end_time = $this->send_end_time;
- $finish_start_time = $this->finish_start_time;
- $finish_end_time = $this->finish_end_time;
- $store_id = $this->store_id;
- $query = SuperSalesMoney::find()->alias('ssm')
- ->leftJoin(['ss' => SuperSales::tableName()], 'ssm.sales_id = ss.id')
- ->leftJoin(['o' => Order::tableName()], 'ssm.order_id = o.id')
- ->leftJoin(['u' => User::tableName()], 'ssm.user_id = u.id')
- ->leftJoin(['su' => SaasUser::tableName()], 'su.mobile = u.binding')
- ->where(['ssm.store_id' => $store_id, 'ssm.type' => SuperSalesMoney::TYPE_GROUP_AWARD]);
- if ($name) {
- $query->andWhere(['like', 'su.name', $name]);
- }
- if ($mobile) {
- $query->andWhere(['like', 'su.mobile', $mobile]);
- }
- if ($start_time) {
- $query->andWhere(['>=', 'ss.created_at', strtotime($start_time)]);
- }
- if ($end_time) {
- $query->andWhere(['<=', 'ss.created_at', strtotime($end_time)]);
- }
- if ($send_start_time) {
- $query->andWhere(['>=', 'ssm.send_time', strtotime($send_start_time)]);
- }
- if ($send_end_time) {
- $query->andWhere(['<=', 'ssm.send_time', strtotime($send_end_time)]);
- }
- if ($finish_start_time) {
- $query->andWhere(['>=', 'ss.finish_time', strtotime($finish_start_time)]);
- }
- if ($finish_end_time) {
- $query->andWhere(['<=', 'ss.finish_time', strtotime($finish_end_time)]);
- }
- $query->select('ssm.id, ssm.money, ss.finish_time, ssm.send_time, ssm.status,
- su.name, su.avatar, su.mobile, ssm.sales_id, ss.created_at')
- ->orderBy('ssm.created_at DESC');
- $list = pagination_make($query);
- foreach ($list['list'] as &$item) {
- $item['finish_time'] = $item['finish_time'] > 0 ? date('Y-m-d H:i:s', $item['finish_time']) : '';
- $item['status'] = intval($item['status']);
- $item['send_time'] = $item['status'] ? date('Y-m-d H:i:s', $item['send_time']) : '暂未到账';
- $item['created_at'] = date('Y-m-d H:i:s', $item['created_at']);
- }
- return [
- 'code' => 0,
- 'msg' => 'success',
- 'data' => $list
- ];
- }
- }
|