Quellcode durchsuchen

Merge branch 'develop' of http://git.caihongxingqiu.net/rainbow/community-manage into develop

zhangchangchun vor 5 Jahren
Ursprung
Commit
a028137436

+ 9 - 3
app/Console/Commands/Downloads.php

@@ -8,6 +8,7 @@
 
 namespace App\Console\Commands;
 
+use App\Repositories\Behavior\BehaviorRepository;
 use App\Repositories\Post\PostRepository;
 use Illuminate\Console\Command;
 use App\Models\Download;
@@ -35,11 +36,12 @@ class Downloads extends Command
      *
      * @return void
      */
-    public function __construct(Download $download, PostRepository $postRepository)
+    public function __construct(Download $download, PostRepository $postRepository,BehaviorRepository $behaviorRepository)
     {
         parent::__construct();
         $this->download = $download;
         $this->postRepository = $postRepository;
+        $this->behaviorRepository = $behaviorRepository;
     }
 
     /**
@@ -71,7 +73,7 @@ class Downloads extends Command
         }elseif($download->download_type == 'release_record'){
             $fileName = '发布账本-'.Carbon::now()->format('Y-m-d') .'_' .uniqid() .'.csv';
         }elseif($download->download_type == 'general_record'){
-            $fileName = '唯一/普通行为账本-'.Carbon::now()->format('Y-m-d') .'_' .uniqid() .'.csv';
+            $fileName = '普通行为账本-'.Carbon::now()->format('Y-m-d') .'_' .uniqid() .'.csv';
         }else{
             exit;
         }
@@ -80,7 +82,11 @@ class Downloads extends Command
 
         $filePath = $fileDir .$download->username.$fileName;
         try {
-            $this->postRepository->download($filePath, $download->download_type, json_decode($download->params, true));
+            if ($download->download_type == 'post' || $download->download_type == 'post_waste'){
+                $this->postRepository->download($filePath, $download->download_type, json_decode($download->params, true));
+            }else{
+                $this->behaviorRepository->download($filePath, $download->download_type, json_decode($download->params, true));
+            }
             Storage::put($filePath, file_get_contents(public_path($filePath)));
             $download->url = $filePath;
             $download->download_status = 2;

+ 2 - 1
app/Http/Controllers/Behavior/RegisteredRecordController.php

@@ -3,6 +3,7 @@
 namespace App\Http\Controllers\Behavior;
 
 use App\Http\Controllers\Controller;
+use App\Models\Behavior;
 use App\Models\RegisteredRecord;
 use App\Repositories\Behavior\RegisteredRecordRepository;
 use App\Transformers\Behavior\RegisteredRecordTransformer;
@@ -31,7 +32,7 @@ class RegisteredRecordController extends Controller
     {
         $registeredList = $this->registeredRecordRepository->lists($request->all());
 
-        $behavior_absolute_progression = RegisteredRecord::select('absolute_progression')->orderBy('id', 'DESC')->first();//行为绝对级数
+        $behavior_absolute_progression = Behavior::select('absolute_progression')->where('behavior_identification', 'register')->first();//行为绝对级数
         $behavior_trigger_times = RegisteredRecord::select('trigger_type')->where('trigger_type', '!=', null)->count();//总触发数
         $behavior_effective_trigger = RegisteredRecord::select('trigger_type')->where('trigger_type', 1)->count();//有效触发数
         $physical_exertion = RegisteredRecord::select('physical_exertion')->sum('physical_exertion');//总消耗体力值

+ 1 - 1
app/Http/Controllers/Post/PostController.php

@@ -182,7 +182,7 @@ class PostController extends Controller
             'video' => 'required_if:type,video|string|url',
             'video_id' => 'required_if:type,video|string',
             'topic_ids' => 'required|string|max:64',
-            'title' => 'required_if:type,html|string|max:20',
+            'title' => 'nullable|string|max:20',
             'content' => 'required|string',
             'location' => 'nullable|string|max:20',
             'imgs' => 'required_if:type,image|array|max:9',

+ 219 - 1
app/Repositories/Behavior/BehaviorRepository.php

@@ -18,7 +18,7 @@ use Tymon\JWTAuth\Facades\JWTAuth;
 use Dingo\Api\Http\Response;
 use Symfony\Component\HttpKernel\Exception\HttpException;
 use Illuminate\Database\QueryException;
-
+use League\Csv\Writer;
 /**
  * Created by PhpStorm.
  * User: durong
@@ -429,5 +429,223 @@ class BehaviorRepository
         return $result;
     }
 
+    public function download($filePath, $type, $request)
+    {
+        try {
+            set_time_limit(0);
+            if (!ini_get("auto_detect_line_endings")) {
+                ini_set("auto_detect_line_endings", '1');
+            }
+
+            // 文件路径
+            $writer = Writer::createFromPath(public_path($filePath), 'w+');
+
+            // 设置标题
+            if ($type == 'registered_record') {
+                $title = [
+                    '新用户注册', date('Y年m月d日')
+                ];
+            } elseif ($type == 'comment_record') {
+                $title = [
+                    '评论账本', date('Y年m月d日')
+                ];
+            } elseif ($type == 'release_record') {
+                $title = [
+                    '发布账本', date('Y年m月d日')
+                ];
+            } else {
+                $title = [
+                    '唯一/普通行为账本', date('Y年m月d日')
+                ];
+            }
+
+            $title = eval('return ' . iconv('utf-8', 'gbk//IGNORE', var_export($title, true) . ';'));
+            $writer->insertone($title);
+
+            // 内容
+            if ($type == 'registered_record') {
+                $header = [
+                    '账本ID', '触发时间', '用户ID', '消耗体力值', '触发类型', '生成类型',
+                    '绝对级数', '上级用户ID', '发放状态', '生成数量', '发放数量'
+                ];
+            } elseif ($type == 'comment_record') {
+                $header = [
+                    '账本ID', '触发时间', '用户ID', '关联内容ID', '内容作者ID', '上级评论者ID', '消耗体力值', '触发类型', '生成类型', '发放状态', '生成数量', '发放数量'
+                ];
+            } elseif ($type == 'release_record') {
+                $header = [
+                    '账本ID', '触发时间', '用户ID', '关联内容ID', '消耗体力值', '触发类型', '生成类型', '发放状态', '生成数量', '发放数量'
+                ];
+            } else {
+                $header = [
+                    '账本ID', '触发时间', '用户ID', '关联内容ID', '内容作者ID','消耗体力值', '触发类型', '生成类型', '发放状态', '生成数量', '发放数量'
+                ];
+            }
+
+            $header = eval('return ' . iconv('utf-8', 'gbk//IGNORE', var_export($header, true) . ';'));
+            $writer->insertone($header);
+
+            $where = [];
+            if (isset($request['id'])) {
+                $where[] = ['id', $request['id']];
+            }
+            if (isset($request['uid'])) {
+                $where[] = ['uid', $request['uid']];
+            }
+            if (isset($request['absolute_progression'])) {
+                $where[] = ['absolute_progression', $request['absolute_progression']];
+            }
+            if (isset($request['trigger_type'])) {
+                $where[] = ['trigger_type', $request['trigger_type']];
+            }
+
+            if ($type == 'registered_record') {
+                $registeredRecord = $this->registeredRecord;
+                $registeredRecord->where($where)
+                    ->where(function ($query) use ($request) {
+                        if (isset($request['created_at'])) {
+                            $time = explode('_', $request['created_at']);
+                            $query->whereBetween('created_at', $time);
+                        }
+                    })
+                    ->orderBy('id', 'desc')
+                    ->chunk(1, function ($registeredRecords) use ($writer, $type) {
+                        $data = [];
+                        foreach ($registeredRecords as $registeredRecord) {
+                            $tmp = [
+                                $registeredRecord->id,
+                                Carbon::parse($registeredRecord->created_at)->toDateTimeString(),
+                                $registeredRecord->uid,
+                                $registeredRecord->physical_exertion,
+                                $registeredRecord->trigger_type == 0 ? '无效触发' : '有效触发',
+                                $registeredRecord->generation_type == 0 ? '' : '彩虹豆',
+                                $registeredRecord->absolute_progression,
+                                $registeredRecord->superior_uid,
+                                $registeredRecord->release_status == 0 ? '异常' : '正常',
+                                $registeredRecord->generation_quantity,
+                                $registeredRecord->quantity_issued
+                            ];
+
+                            foreach ($tmp as $key => $value) {
+                                $tmp[$key] = iconv('utf-8', 'gbk//IGNORE', $value);
+                            }
+                            $data[] = $tmp;
+                        }
+                        $writer->insertAll($data);
+                    });
+            }elseif ($type == 'comment_record'){
+                $commentRecord = $this->commentRecord;
+
+                $commentRecord->where($where)
+                    ->where(function ($query) use ($request) {
+                        if (isset($request['created_at'])) {
+                            $time = explode('_', $request['created_at']);
+                            $query->whereBetween('created_at', $time);
+                        }
+                    })
+                    ->orderBy('id', 'desc')
+                    ->chunk(1, function ($commentRecords) use ($writer, $type) {
+                        $data = [];
+                        foreach ($commentRecords as $commentRecord) {
+                            $tmp = [
+                                $commentRecord->id,
+                                Carbon::parse($commentRecord->created_at)->toDateTimeString(),
+                                $commentRecord->uid,
+                                $commentRecord->related_content_id,
+                                $commentRecord->content_author_id,
+                                $commentRecord->superior_commentator_id,
+                                $commentRecord->physical_exertion,
+                                $commentRecord->trigger_type == 0 ? '无效触发' : '有效触发',
+                                $commentRecord->generation_type == 0 ? '' : '彩虹豆',
+                                $commentRecord->release_status == 0 ? '异常' : '正常',
+                                $commentRecord->generation_quantity,
+                                $commentRecord->quantity_issued
+                            ];
+
+                            foreach ($tmp as $key => $value) {
+                                $tmp[$key] = iconv('utf-8', 'gbk//IGNORE', $value);
+                            }
+                            $data[] = $tmp;
+                        }
+                        $writer->insertAll($data);
+                    });
+            }elseif ($type == 'release_record'){
+                $releaseRecord = $this->releaseRecord;
+
+                $releaseRecord->where($where)
+                    ->where(function ($query) use ($request) {
+                        if (isset($request['created_at'])) {
+                            $time = explode('_', $request['created_at']);
+                            $query->whereBetween('created_at', $time);
+                        }
+                    })
+                    ->orderBy('id', 'desc')
+                    ->chunk(1, function ($releaseRecords) use ($writer, $type) {
+                        $data = [];
+                        foreach ($releaseRecords as $releaseRecord) {
+                            $tmp = [
+                                $releaseRecord->id,
+                                Carbon::parse($releaseRecord->created_at)->toDateTimeString(),
+                                $releaseRecord->uid,
+                                $releaseRecord->related_content_id,
+                                $releaseRecord->physical_exertion,
+                                $releaseRecord->trigger_type == 0 ? '无效触发' : '有效触发',
+                                $releaseRecord->generation_type == 0 ? '' : '彩虹豆',
+                                $releaseRecord->release_status == 0 ? '异常' : '正常',
+                                $releaseRecord->generation_quantity,
+                                $releaseRecord->quantity_issued
+                            ];
+
+                            foreach ($tmp as $key => $value) {
+                                $tmp[$key] = iconv('utf-8', 'gbk//IGNORE', $value);
+                            }
+                            $data[] = $tmp;
+                        }
+                        $writer->insertAll($data);
+                    });
+            }else{
+                $generalRecord = $this->generalRecord;
+
+                $generalRecord->where($where)
+                    ->where(function ($query) use ($request) {
+                        if (isset($request['created_at'])) {
+                            $time = explode('_', $request['created_at']);
+                            $query->whereBetween('created_at', $time);
+                        }
+                    })
+                    ->orderBy('id', 'desc')
+                    ->chunk(1, function ($generalRecords) use ($writer, $type) {
+                        $data = [];
+                        foreach ($generalRecords as $generalRecord) {
+                            $tmp = [
+                                $generalRecord->id,
+                                Carbon::parse($generalRecord->created_at)->toDateTimeString(),
+                                $generalRecord->uid,
+                                $generalRecord->related_content_id,
+                                $generalRecord->content_author_id,
+                                $generalRecord->physical_exertion,
+                                $generalRecord->trigger_type == 0 ? '无效触发' : '有效触发',
+                                $generalRecord->generation_type == 0 ? '' : '彩虹豆',
+                                $generalRecord->release_status == 0 ? '异常' : '正常',
+                                $generalRecord->generation_quantity,
+                                $generalRecord->quantity_issued
+                            ];
+
+                            foreach ($tmp as $key => $value) {
+                                $tmp[$key] = iconv('utf-8', 'gbk//IGNORE', $value);
+                            }
+                            $data[] = $tmp;
+                        }
+                        $writer->insertAll($data);
+                    });
+            }
+            Log::info('账本导出成功!');
+
+        } catch (QueryException $e) {
+            Log::debug('账本导出失败!' . $e->getMessage());
+        }
+
+    }
+
 }
 

+ 10 - 1
app/Repositories/Post/PostRepository.php

@@ -65,7 +65,13 @@ class PostRepository
      */
     public function create($request)
     {
-
+        //富文本标题
+        if($request['type'] == 'html' && (!isset($request['title']) || !$request['title'])){
+            return Response::create([
+                'message' => '当类型是富文本时,标题不能为空',
+                'status_code' => 500
+            ]);
+        }
         //验证小号
         $userInfo = $this->getUserInfo($request['uid']);
         Log::debug('发布内容小号信息:' . json_encode($userInfo));
@@ -622,6 +628,7 @@ class PostRepository
             $post->delete();
 
             DB::commit();
+            Redis::SADD('delete_post_ids', $request['id']);
             $this->rabbitMqUtil->push('add_message_one', [
                 'uid' => $uid,
                 'message_rule_id' => 0,
@@ -669,6 +676,7 @@ class PostRepository
             $post->restore();
 
             DB::commit();
+            Redis::SREM('delete_post_ids', $request['id']);
             return Response::create();
 
         } catch (QueryException $exception) {
@@ -708,6 +716,7 @@ class PostRepository
             $comment->save();
 
             DB::commit();
+            Redis::SADD('delete_post_comment_ids', $comment->id);
             return Response::create();
 
         } catch (QueryException $exception) {