UsersController.php 8.8 KB
<?php
/**
+-----------------------------------------------------------------------------------------------------------------------
 * 控制层: 用户 控制类
+-----------------------------------------------------------------------------------------------------------------------
 *
 * PHP version 7
 *
 * @category  App\Http\Api\V1\Controllers\User
 * @package   App\Http\Api\V1\Controllers\User
 * @author    Richer <yangzi1028@163.com>
 * @date      2020年11月13日 01:26:09
 * @copyright 2020-2022 Richer (http://www.Richer.com/)
 * @license   http://www.Richer.com/ License
 * @link      http://www.Richer.com/
 */
namespace App\Http\Api\V1\Controllers\User;

use App\Http\Api\V1\Controllers\BaseController;
use App\Http\Requests\PasswordUpdateRequest;
use App\Http\Requests\User\WithdrawRequest;
use App\Http\Requests\UserRequest;
use App\Services\User\UserService;
use App\Transformers\Admin\UserTransformer as AdminTransformer;
use App\Transformers\ChatRecordItemTransformer;
use App\Transformers\FavoriteTransformer;
use App\Transformers\FeedbackTransformer;
use App\Transformers\System\AccessRecordTransformer;
use App\Transformers\System\NotificationTransformer;
use App\Transformers\User\TimesRecordTransformer;
use App\Transformers\User\UserTransformer;
use App\Transformers\User\WalletRecordTransformer;
use App\Transformers\User\WithdrawalRecordTransformer;
use Dingo\Api\Http\Request;
use Illuminate\Http\Response;

/**
 * Class UsersController.
 *
 * @category  App\Http\Api\V1\Controllers\User
 * @package   App\Http\Api\V1\Controllers\User
 * @author    Richer <yangzi1028@163.com>
 * @date      2020年11月13日 01:26:09
 * @copyright 2020-2022 Richer (http://www.Richer.com/)
 * @license   http://www.Richer.com/ License
 * @link      http://www.Richer.com/
 */
class UsersController extends BaseController
{
    /**
     * UsersController constructor.
     *
     * @param UserService $service 注入service逻辑层
     * @param UserTransformer $transformer
     */
    public function __construct(UserService $service, UserTransformer $transformer)
    {
        // 执行父类构造方法
        parent::__construct($service, $transformer);
    }

    /**
     * Display the specified resource.
     *
     * @param integer $id 主键id
     *
     * @return Response
     */
    public function show($id)
    {
        $data = $this->service->show($id);
        if (!$data) {
            return $this->error('', 1001);
        } else {
            return  $this->success($data);
        }
    }

    /**
     * 获取登录用户的信息
     *
     * @param Request $request
     * @return Response
     */
    public function me(Request $request)
    {
        if (is_admin()) {
            $transformer = app(AdminTransformer::class);
        } else {
            $transformer = app(UserTransformer::class);
        }

        return $this->item($this->service->me($request), $transformer);
    }

    /**
     * 获取登录用户的信息
     *
     * @param Request $request
     * @return Response
     */
    public function detail(Request $request)
    {
        $result =  $this->service->detail($request);

        if ($result) {
            return $this->success($result);
        } else {
            return $this->error($this->service->getMessage(), 1001);
        }
    }

    /**
     * 更新登录用户的信息
     *
     * @param UserRequest $request
     * @return Response
     */
    public function updateMe(UserRequest $request)
    {
        $result =  $this->service->updateMe($request);

        if ($result) {
            return $this->success($result);
        } else {
            return $this->error($this->service->getMessage(), 1004);
        }
    }

    /**
     * 更改账号
     *
     * @param PasswordUpdateRequest $request
     * @return Response
     */
    public function updatePassword(PasswordUpdateRequest $request)
    {
        $result =  $this->service->updatePassword($request);

        if ($result) {
            return $this->success($result, '密码修改成功,请重新登录!');
        } else {
            return $this->error($this->service->getMessage(), 1003);
        }
    }

    /**
     * 我的浏览记录
     *
     * @return Response
     */
    public function accessRecords()
    {
        $result =  $this->service->accessRecords();

        if ($result) {
            return  $this->paginator($result, AccessRecordTransformer::class);
        } else {
            return $this->error($this->service->getMessage(), 1001);
        }
    }

    /**
     * 我的收藏
     *
     * @return Response
     */
    public function favorites()
    {
        $result =  $this->service->favorites();

        if ($result) {
            return  $this->paginator($result, FavoriteTransformer::class);
        } else {
            return $this->error($this->service->getMessage(), 1001);
        }
    }

    /**
     * 我的-意见反馈-列表
     *
     * @return Response
     */
    public function myFeedbacks()
    {
        $result =  $this->service->myFeedbacks();

        if ($result) {
            return  $this->paginator($result, FeedbackTransformer::class);
        } else {
            return $this->error($this->service->getMessage(), 1001);
        }
    }

    /**
     * 我的-消息-列表
     *
     * @return Response
     */
    public function myNotifications()
    {
        $result =  $this->service->myNotifications();

        if ($result) {
            return  $this->paginator($result, NotificationTransformer::class);
        } else {
            return $this->error($this->service->getMessage(), 1001);
        }
    }

    /**
     * 我的-消息-未读-
     *
     * @return Response
     */
    public function myUnreadNotificationsCount()
    {
        $result =  $this->service->myUnreadNotificationsCount();
        return  $this->success($result);
    }

    /**
     *  我的次数明细
     *
     * @return Response
     */
    public function myTimesRecords()
    {
        $result =  $this->service->myTimesRecords();

        if ($result) {
            return  $this->paginator($result, TimesRecordTransformer::class);

        } else {
            return $this->error($this->service->getMessage(), 1001);
        }
    }

    /**
     *  我的次数明细
     *
     * @return Response
     */
    public function myChatRecords()
    {
        $result =  $this->service->myChatRecords();

        if ($result) {
            return  $this->success($result);
//            return  $this->paginator($result, ChatRecordItemTransformer::class);

        } else {
            return $this->error($this->service->getMessage(), 1001);
        }
    }

    /**
     *  清除我的聊天记录
     *
     * @return Response
     */
    public function clearMyChatRecords()
    {
        $result =  $this->service->clearMyChatRecords();

        if ($result) {
            return  $this->success($result);

        } else {
            return $this->error($this->service->getMessage(), 1003);
        }
    }

    /**
     *  我的团队
     *
     * @return Response
     */
    public function myWallet()
    {
        $result =  $this->service->myWallet();
        return  $this->success($result);
    }

    /**
     *  我的团队
     *
     * @return Response
     */
    public function myTeamCount()
    {
        $result =  $this->service->myTeamCount();
        return  $this->success($result);
    }

    /**
     *  我的团队
     *
     * @return Response
     */
    public function myTeam()
    {
        $result =  $this->service->myTeam();

        if ($result) {
            return  $this->paginator($result, $this->transformer);

        } else {
            return $this->error($this->service->getMessage(), 1001);
        }
    }

    /**
     *  我的分佣明细
     *
     * @return Response
     */
    public function myCommissions()
    {
        $result =  $this->service->myCommissions();

        if ($result) {
            return  $this->paginator($result, WalletRecordTransformer::class);
        } else {
            return $this->error($this->service->getMessage(), 1001);
        }
    }

    /**
     *  我的 提现明细
     *
     * @return Response
     */
    public function myWithdrawals()
    {
        $result =  $this->service->myWithdrawals();

        if ($result) {
            return  $this->paginator($result, WithdrawalRecordTransformer::class);
        } else {
            return $this->error($this->service->getMessage(), 1001);
        }
    }

    /**
     *  提现
     *
     * @param WithdrawRequest $request
     * @return Response
     */
    public function withdrawal(WithdrawRequest $request)
    {
        $result =  $this->service->withdrawal($request);

        if ($result) {
            return  $this->success($result);
        } else {
            return $this->error($this->service->getMessage(), 1003);
        }
    }
}