| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265 |
- <?php
- namespace app\modules\admin\models\shareGroup;
- use app\models\Order;
- use app\models\SaasUser;
- use app\models\ShareGroupMoney;
- use app\models\ShareGroupPurchaseParentLog;
- use app\models\ShareGroupPurchaseUser;
- use app\models\ShareGroupSupportLog;
- use app\models\User;
- use yii\base\Model;
- class SupportForm extends Model
- {
- public $store_id;
- public $order_no;
- public $nickname;
- public $mobile;
- public $start_time;
- public $end_time;
- public $type;
- public $status;
- public function rules()
- {
- return [
- [['order_no', 'nickname', 'mobile', 'start_time', 'end_time'], 'string'],
- [['store_id', 'type', 'status'], 'integer'],
- [['nickname', 'mobile', 'order_no'], 'trim']
- ];
- }
- //帮扶佣金列表
- 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;
- //兼容帮扶直推筛选
- $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()
- ];
- }
- }
- }
|