|
@@ -0,0 +1,85 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+namespace Modules\Audience\Http\Controllers;
|
|
|
+
|
|
|
+use Catch\Base\CatchController;
|
|
|
+use Illuminate\Foundation\Validation\ValidatesRequests;
|
|
|
+use Illuminate\Http\Request;
|
|
|
+use Illuminate\Support\Facades\DB;
|
|
|
+use Modules\Audience\Models\GzhUgMapModel;
|
|
|
+use Modules\Audience\Models\UserGroupModel;
|
|
|
+
|
|
|
+class UserGroupController extends CatchController
|
|
|
+{
|
|
|
+ use ValidatesRequests;
|
|
|
+ /**
|
|
|
+ * 用户分群列表
|
|
|
+ * @param Request $request
|
|
|
+ */
|
|
|
+ public function list(Request $request) {
|
|
|
+ $name = $request->input('name');
|
|
|
+ DB::table('user_groups')
|
|
|
+ ->when($name, function ($query, $name){
|
|
|
+ return $query->where('name', 'like', '%'.$name.'%');
|
|
|
+ })->where([
|
|
|
+ 'uid' => $this->getLoginUserId(),
|
|
|
+ 'is_enabled' => 1
|
|
|
+ ])->orderBy('id', 'desc')
|
|
|
+ ->paginate($request->input('limit', 20));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 添加用户分群
|
|
|
+ * @param Request $request
|
|
|
+ * @return string
|
|
|
+ * @throws \Illuminate\Validation\ValidationException
|
|
|
+ */
|
|
|
+ public function add(Request $request){
|
|
|
+ $this->validate($request, [
|
|
|
+ 'name' => 'required|string|max:64',
|
|
|
+ 'gzh_ids' => 'required|array',
|
|
|
+ 'tags' => 'required|array',
|
|
|
+ 'remark' => 'nullable|string|max:140'
|
|
|
+ ]);
|
|
|
+
|
|
|
+ $model = UserGroupModel::create([
|
|
|
+ 'name' => $request->input('name'), 'uid' => $this->getLoginUserId(),
|
|
|
+ 'tags' => \json_encode($request->input('tags', []), JSON_UNESCAPED_UNICODE),
|
|
|
+ 'remark' => $request->input('remark', '')
|
|
|
+ ]);
|
|
|
+ foreach ($request->input('gzh_ids') as $gzh_id) {
|
|
|
+ GzhUgMapModel::create([
|
|
|
+ 'ug_id' => $model->id, 'gzh_id' => $gzh_id
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+
|
|
|
+ return 'ok';
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除
|
|
|
+ * @param Request $request
|
|
|
+ * @return string
|
|
|
+ * @throws \Illuminate\Validation\ValidationException
|
|
|
+ */
|
|
|
+ public function delete(Request $request) {
|
|
|
+ $this->validate($request, ['id' => 'required']);
|
|
|
+
|
|
|
+ $model = UserGroupModel::where([
|
|
|
+ 'uid' => $this->getLoginUserId(), 'id' => $request->input('id'),
|
|
|
+ 'is_enabled' => 1,
|
|
|
+ ])->first();
|
|
|
+ if($model) {
|
|
|
+ $model->is_enabled = 0;
|
|
|
+ $model->save();
|
|
|
+ GzhUgMapModel::where([
|
|
|
+ 'ug_id' => $model->id,
|
|
|
+ 'is_enabled' => 1
|
|
|
+ ])->update([
|
|
|
+ 'is_enabled' => 0
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+
|
|
|
+ return 'ok';
|
|
|
+ }
|
|
|
+}
|