| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- <?php
- namespace Modules\Manage\Controllers;
- use App\Constants\CommonConstant;
- use App\Repositories\CreatorRepository;
- use App\Repositories\Criterias\CommonLimitCriteria;
- use App\Repositories\Criterias\CommonWithCriteria;
- use App\Repositories\Criterias\CreatorPagesCriteria;
- use App\Repositories\Utils\M3u8CacheRepository;
- use Carbon\Carbon;
- use Hyperf\Validation\Contract\ValidatorFactoryInterface;
- class CreatorController extends BaseController
- {
- use \Hyperf\Di\Aop\ProxyTrait;
- use \Hyperf\Di\Aop\PropertyHandlerTrait;
- function __construct()
- {
- if (method_exists(parent::class, '__construct')) {
- parent::__construct(...func_get_args());
- }
- $this->__handlePropertyHandler(__CLASS__);
- }
- public function lists()
- {
- $validatorFactory = make(ValidatorFactoryInterface::class);
- $inputData = $this->getJsonData();
- $rules = ['page' => 'nullable|int', 'page_size' => 'nullable|int', 'status' => 'nullable|int', 'level' => 'nullable|int', 'user_nick' => 'nullable', 'user_code' => 'nullable', 'user_mobile' => 'nullable'];
- $validator = $validatorFactory->make($inputData, $rules);
- if ($validator->fails()) {
- // 如果有错误(可能是多个信息),这里只取第一个错误信息返回.
- return json_fail($validator->errors()->first());
- }
- $page = $inputData['page'] ?? 1;
- $pageSize = $inputData['page_size'] ?? CommonConstant::PAGE_SIZE;
- if ($pageSize > 100) {
- $pageSize = CommonConstant::PAGE_SIZE;
- }
- $page = format_page($page);
- $pageSize = intval($pageSize);
- $creatorRepo = make(CreatorRepository::class);
- $params = [];
- if (isset($inputData['status'])) {
- $params['status'] = $inputData['status'];
- }
- if (isset($inputData['level'])) {
- $params['level'] = $inputData['level'];
- }
- if (!empty($inputData['user_nick'])) {
- $params['user_nick'] = $inputData['user_nick'];
- }
- if (!empty($inputData['user_code'])) {
- $params['user_code'] = $inputData['user_code'];
- }
- if (!empty($inputData['user_mobile'])) {
- $params['user_mobile'] = $inputData['user_mobile'];
- }
- $orderBy = [['id', 'DESC']];
- $lists = $creatorRepo->pushCriteria(new CreatorPagesCriteria($params))->pushCriteria(new CommonWithCriteria(['user']))->pushCriteria(new CommonLimitCriteria($orderBy))->paginate($pageSize, ['*'], $page);
- $lists = $lists->toArray();
- /*if (!empty($lists['data'])) {
- foreach ($lists['data'] as &$v) {
- $v['user']['avatar'] = M3u8CacheRepository::getImageUrl($v['user']['avatar']);
- if ($v['user']['gender'] == 3) {
- $v['user']['gender'] = 2;
- }
- }
- }*/
- return json_success($lists);
- }
- /**
- * 审核状态
- * @return mixed
- */
- public function changeStatus()
- {
- $validatorFactory = make(ValidatorFactoryInterface::class);
- $inputData = $this->getJsonData();
- $rules = ['id' => 'required|int', 'target_status' => 'required|int', 'reject_reason' => 'nullable'];
- $validator = $validatorFactory->make($inputData, $rules);
- if ($validator->fails()) {
- // 如果有错误(可能是多个信息),这里只取第一个错误信息返回.
- return json_fail($validator->errors()->first());
- }
- $creatorRepo = make(CreatorRepository::class);
- $targetStatus = intval(data_get($inputData, 'target_status', 3));
- $obj = $creatorRepo->find($inputData['id']);
- if (empty($obj)) {
- return json_fail('对象不存在');
- }
- $rejectReason = data_get($inputData, 'reject_reason', '');
- if ($obj->status == $targetStatus) {
- return json_fail('前后状态无变化');
- }
- $msgSubjct = '恭喜您,原创者审核通过.';
- $msgContent = '您现在可以马上上传时视频挣钱了.有收入可以随时提现.';
- $obj->reject_reason = '';
- $obj->reject_at = null;
- if ($targetStatus == 2) {
- $obj->reject_reason = $rejectReason;
- $obj->reject_at = Carbon::now()->toDateTimeString();
- $msgSubjct = '您申请原创者,未通过审核';
- $msgContent = '拒绝原因:' . $rejectReason . ', 若有异议,请联系客服!';
- }
- $obj->status = $targetStatus;
- $saveStatus = $obj->save();
- if ($saveStatus) {
- $msgSetarr = ['subject' => $msgSubjct, 'struct_type' => 'text', 'receive_uid' => $obj->user_uid, 'receive_type' => 'user', 'from_uid' => '', 'from_type' => 'sys', 'content' => $msgContent];
- // TODO 发送站内系统消息, 依赖雏姬的分支 jim_sys_message
- }
- return json_success(['result' => 'success']);
- }
- public function detail()
- {
- $validatorFactory = make(ValidatorFactoryInterface::class);
- $inputData = $this->getJsonData();
- $rules = ['user_code' => 'required'];
- $validator = $validatorFactory->make($inputData, $rules);
- if ($validator->fails()) {
- // 如果有错误(可能是多个信息),这里只取第一个错误信息返回.
- return json_fail($validator->errors()->first());
- }
- $creatorRepo = make(CreatorRepository::class);
- $obj = $creatorRepo->detail($inputData['user_code']);
- if (empty($obj)) {
- return json_fail('对象不存在');
- }
- $result = $obj->toArray();
- return json_success($result);
- }
- }
|