|
@@ -0,0 +1,211 @@
|
|
|
|
+<?php
|
|
|
|
+/**
|
|
|
|
+ * Created by PhpStorm.
|
|
|
|
+ * User: Administrator
|
|
|
|
+ * Date: 2019-06-12
|
|
|
|
+ * Time: 17:35
|
|
|
|
+ */
|
|
|
|
+
|
|
|
|
+namespace App\Repositories\V2;
|
|
|
|
+
|
|
|
|
+use App\Models\MemberGroup;
|
|
|
|
+use App\Models\MemberGroupInfo;
|
|
|
|
+use Dingo\Api\Http\Response;
|
|
|
|
+use Illuminate\Support\Facades\DB;
|
|
|
|
+use Illuminate\Database\QueryException;
|
|
|
|
+use Illuminate\Support\Facades\Log;
|
|
|
|
+
|
|
|
|
+class MemberGroupRepository {
|
|
|
|
+ public function __construct(MemberGroup $memberGroup,MemberGroupInfo $memberGroupInfo) {
|
|
|
|
+ $this->memberGroup = $memberGroup;
|
|
|
|
+ $this->memberGroupInfo = $memberGroupInfo;
|
|
|
|
+ }
|
|
|
|
+ //列表
|
|
|
|
+ public function index($request){
|
|
|
|
+ $perPage = isset($request['per_page']) ? $request['per_page'] : 20;
|
|
|
|
+ $where = [];
|
|
|
|
+ if(isset($request['name'])){
|
|
|
|
+ $where[] = ['name', 'like', "%{$request['name']}%"];
|
|
|
|
+ }
|
|
|
|
+ return $this->memberGroup->where($where)->paginate($perPage);
|
|
|
|
+ }
|
|
|
|
+ //详情
|
|
|
|
+ public function view($request){
|
|
|
|
+ return $this->memberGroup->where(['id'=>$request['id']])->first();
|
|
|
|
+ }
|
|
|
|
+ //创建
|
|
|
|
+ public function create($request){
|
|
|
|
+ $memberGroup = $this->memberGroup->where(['name'=>$request['name']])->first();
|
|
|
|
+ if($memberGroup){
|
|
|
|
+ return Response::create([
|
|
|
|
+ 'message' => '该分组已存在',
|
|
|
|
+ 'status_code' => 500
|
|
|
|
+ ]);
|
|
|
|
+ }
|
|
|
|
+ $data = [
|
|
|
|
+ 'name' => $request['name'],
|
|
|
|
+ 'is_suggest' =>$request['is_suggest'],
|
|
|
|
+ ];
|
|
|
|
+ if(!empty($request['member_list'])){
|
|
|
|
+ $member_ids = explode(',', $request['member_list']);
|
|
|
|
+ }
|
|
|
|
+ $count =$member_ids;
|
|
|
|
+ DB::beginTransaction();
|
|
|
|
+ try{
|
|
|
|
+ if($request['is_suggest'] == 1){
|
|
|
|
+ $_memberGroup = $this->memberGroup->where(['is_suggest'=>1])->first();
|
|
|
|
+ if($_memberGroup){
|
|
|
|
+ $this->memberGroup->where(['id'=>$_memberGroup->id])->update(['is_suggest'=>0]);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ $res = $this->memberGroup->create($data);
|
|
|
|
+ if($res){
|
|
|
|
+ if($member_ids){
|
|
|
|
+ $member_data = [];
|
|
|
|
+ foreach($member_ids as $value){
|
|
|
|
+ $member_data[] = [
|
|
|
|
+ 'member_group_id' => $res->id,
|
|
|
|
+ 'uid' => $value,
|
|
|
|
+ ];
|
|
|
|
+ }
|
|
|
|
+ $this->memberGroupInfo->insert($member_data);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ DB::commit();
|
|
|
|
+ return Response::create();
|
|
|
|
+ }catch (QueryException $exception){
|
|
|
|
+ DB::rollBack();
|
|
|
|
+ Log::debug('新增推荐用户:'.$exception->getMessage());
|
|
|
|
+ return Response::create([
|
|
|
|
+ 'message' => '新增推荐用户失败,请重试',
|
|
|
|
+ 'error' => $exception->getMessage(),
|
|
|
|
+ 'status_code' => 500
|
|
|
|
+ ]);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //编辑
|
|
|
|
+ public function edit($request){
|
|
|
|
+ $memberGroup = $this->memberGroup->where(['id'=>$request['id']])->first();
|
|
|
|
+ if(!$memberGroup){
|
|
|
|
+ return Response::create([
|
|
|
|
+ 'message' => '该分组不存在',
|
|
|
|
+ 'status_code' => 500
|
|
|
|
+ ]);
|
|
|
|
+ }
|
|
|
|
+ $memberGroup->name = $request['name'];
|
|
|
|
+ $memberGroup->name = $request['name'];
|
|
|
|
+
|
|
|
|
+ if(!empty($request['member_list'])){
|
|
|
|
+ $member_ids = explode(',', $request['member_list']);
|
|
|
|
+ }
|
|
|
|
+ DB::beginTransaction();
|
|
|
|
+ try{
|
|
|
|
+ if($request['is_suggest'] == 1){
|
|
|
|
+ $_memberGroup = $this->memberGroup->where(['is_suggest'=>1])->where('id','<>',$memberGroup->id)->first();
|
|
|
|
+ if($_memberGroup){
|
|
|
|
+ $this->memberGroup->where(['id'=>$_memberGroup->id])->update(['is_suggest'=>0]);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ $group = $memberGroup->save();
|
|
|
|
+ if($group){
|
|
|
|
+ //删除
|
|
|
|
+ $this->memberGroupInfo->where(['member_group_id'=>$memberGroup->id])->delete();
|
|
|
|
+
|
|
|
|
+ $member_data = [];
|
|
|
|
+ foreach($member_ids as $value){
|
|
|
|
+ $member_data[] = [
|
|
|
|
+ 'member_group_id' => $memberGroup->id,
|
|
|
|
+ 'uid' => $value,
|
|
|
|
+ ];
|
|
|
|
+ }
|
|
|
|
+ $this->memberGroupInfo->insert($member_data);
|
|
|
|
+ }
|
|
|
|
+ DB::commit();
|
|
|
|
+ return Response::create();
|
|
|
|
+ }catch (QueryException $exception){
|
|
|
|
+ DB::rollBack();
|
|
|
|
+ Log::debug('编辑推荐用户分组:'.$exception->getMessage());
|
|
|
|
+ return Response::create([
|
|
|
|
+ 'message' => '编辑推荐用户分组失败,请重试',
|
|
|
|
+ 'error' => $exception->getMessage(),
|
|
|
|
+ 'status_code' => 500
|
|
|
|
+ ]);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //删除内容
|
|
|
|
+ public function delete($id){
|
|
|
|
+ $memberGroup = $this->memberGroup->where(['id'=>$id])->first();
|
|
|
|
+ if($memberGroup->is_suggest == 1){
|
|
|
|
+ return Response::create([
|
|
|
|
+ 'message' => '该用户组推荐中无法删除,请关闭推荐后删除',
|
|
|
|
+ 'status_code' => 500
|
|
|
|
+ ]);
|
|
|
|
+ }
|
|
|
|
+ DB::beginTransaction();
|
|
|
|
+ try{
|
|
|
|
+ $res = $this->memberGroup->where('id',$id)->delete();
|
|
|
|
+ if($res){
|
|
|
|
+ $this->memberGroupInfo->where('member_group_id',$id)->delete();
|
|
|
|
+ }
|
|
|
|
+ if(!$res){
|
|
|
|
+ return Response::create([
|
|
|
|
+ 'message' => '删除失败',
|
|
|
|
+ 'status_code' => 500
|
|
|
|
+ ]);
|
|
|
|
+ }
|
|
|
|
+ DB::commit();
|
|
|
|
+ return Response::create();
|
|
|
|
+ }catch (QueryException $exception){
|
|
|
|
+ DB::rollBack();
|
|
|
|
+ Log::debug('删除推荐用户分组:'.$exception->getMessage());
|
|
|
|
+ return Response::create([
|
|
|
|
+ 'message' => '删除推荐用户分组,请重试',
|
|
|
|
+ 'error' => $exception->getMessage(),
|
|
|
|
+ 'status_code' => 500
|
|
|
|
+ ]);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ //删除内容
|
|
|
|
+ public function deleteMemberInfo($id){
|
|
|
|
+ $res = $this->memberGroupInfo->where('id',$id)->delete();
|
|
|
|
+ if(!$res){
|
|
|
|
+ return Response::create([
|
|
|
|
+ 'message' => '删除失败',
|
|
|
|
+ 'status_code' => 500
|
|
|
|
+ ]);
|
|
|
|
+ }
|
|
|
|
+ return Response::create();
|
|
|
|
+ }
|
|
|
|
+ public function setIsSuggest($request){
|
|
|
|
+ $memberGroup = $this->memberGroup->where('id',$request['id'])->first();
|
|
|
|
+ if(!$memberGroup){
|
|
|
|
+ return Response::create([
|
|
|
|
+ 'message' => '该分组不存在',
|
|
|
|
+ 'status_code' => 500
|
|
|
|
+ ]);
|
|
|
|
+ }
|
|
|
|
+ DB::beginTransaction();
|
|
|
|
+ try{
|
|
|
|
+ if($request['is_suggest'] == 1){
|
|
|
|
+ $_memberGroup = $this->memberGroup->where(['is_suggest'=>1])->first();
|
|
|
|
+ if($_memberGroup){
|
|
|
|
+ $this->memberGroup->where(['id'=>$_memberGroup->id])->update(['is_suggest'=>0]);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ $memberGroup->is_suggest = $request['is_suggest'];
|
|
|
|
+ $memberGroup->save();
|
|
|
|
+ DB::commit();
|
|
|
|
+ return Response::create();
|
|
|
|
+ }catch (QueryException $exception){
|
|
|
|
+ DB::rollBack();
|
|
|
|
+ Log::debug('设置推荐用户分组:'.$exception->getMessage());
|
|
|
|
+ return Response::create([
|
|
|
|
+ 'message' => '设置推荐用户分组,请重试',
|
|
|
|
+ 'error' => $exception->getMessage(),
|
|
|
|
+ 'status_code' => 500
|
|
|
|
+ ]);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+}
|