diff --git a/app/Admin/Actions/User/UserAssignAction.php b/app/Admin/Actions/User/UserAssignAction.php index 0331eae..357600f 100644 --- a/app/Admin/Actions/User/UserAssignAction.php +++ b/app/Admin/Actions/User/UserAssignAction.php @@ -3,10 +3,13 @@ namespace App\Admin\Actions\User; +use App\Admin\Forms\User\AssignUserHandle; use App\Models\Order as OrderModel; use App\Models\User; +use Dcat\Admin\Grid; use Dcat\Admin\Grid\BatchAction; use Dcat\Admin\Grid\Tools\AbstractTool; +use Dcat\Admin\Widgets\Modal; use Illuminate\Http\Request; use Dcat\Admin\Grid\RowAction; @@ -14,6 +17,7 @@ use Dcat\Admin\Grid\RowAction; class UserAssignAction extends BatchAction { protected $action; + protected $htmlClasses = ['btn btn-primary btn-sm btn-mini']; // 注意action的构造方法参数一定要给默认值 public function __construct($title = null, $action = 1) @@ -25,15 +29,34 @@ class UserAssignAction extends BatchAction // 确认弹窗信息 public function confirm() { - return '您确定要发布已选中的文章吗?'; + return '您确定要已选中的文章吗?'; } + public function render() + { + $form = AssignUserHandle::make(); + $buttonName = trans('user.labels.handle'); + return Modal::make()->lg()->title($this->title)->body($form->payload([]))->onLoad($this->getModalScript())->button('<button class="btn btn-primary"> + <i class="feather icon-check-circle"></i><span class="d-none d-sm-inline" style="margin-left: 5px">' . $buttonName . '</span> + </button>'); + } + + + protected function getModalScript() + { + // 弹窗显示后往隐藏的id表单中写入批量选中的行ID + $warning = trans('global.labels.operate_must_select_data'); + return <<<JS + var key = {$this->getSelectedKeysScript()} + if (!key.length){ + Dcat.swal.error('$warning'); + Dcat.reload(); + } + $('#id').val(key); +JS; + } public function html() { - $class = $this->getElementClass(); - $this->setHtmlAttribute([ - "class" => "{$class} btn btn-primary btn-sm btn-mini", - ]); return parent::html(); // TODO: Change the autogenerated stub } @@ -46,11 +69,6 @@ class UserAssignAction extends BatchAction // 获取请求参数 $action = $request->get('action'); - foreach (Post::find($keys) as $post) { - $post->released = $action; - $post->save(); - } - $message = $action ? '文章发布成功' : '文章下线成功'; return $this->response()->success($message)->refresh(); diff --git a/app/Admin/Forms/User/AssignUserHandle.php b/app/Admin/Forms/User/AssignUserHandle.php new file mode 100644 index 0000000..918ff09 --- /dev/null +++ b/app/Admin/Forms/User/AssignUserHandle.php @@ -0,0 +1,64 @@ +<?php + +namespace App\Admin\Forms\User; + +use App\Models\Cms\CmsUser; +use App\Models\Inquiry; +use App\Models\User; +use Dcat\Admin\Contracts\LazyRenderable; +use Dcat\Admin\Traits\LazyWidget; +use Dcat\Admin\Widgets\Form; + +class AssignUserHandle extends Form implements LazyRenderable +{ + use LazyWidget; + + /** + * Handle the form request. + * + * @param array $input + * + * @return mixed + */ + public function handle(array $input) + { + try { + $ids = explode(",", $input['id']); +// $userList = User::getListByIdArr($ids); + $cmsUser = CmsUser::getInfoByUserId($input['sale_id']); + if (!$cmsUser) { + throw new \Exception('销售不存在'); + } + User::updateByIdArr($ids, ['sale_id' => $input['sale_id'], "sale_name" => $cmsUser['name']]); + return $this + ->response() + ->success(trans('admin.update_succeeded')) + ->refresh(); + } catch (\Throwable $throwable) { +// var_dump((string)$throwable); + return $this->response()->error(trans('admin.update_failed')); + } + } + + /** + * Build a form here. + */ + public function form() + { + $this->disableResetButton(); + $this->hidden('id')->attribute('id', 'id'); + $this->select('sale_id')->options(CmsUser::pluck('name', 'userId')->toArray())->default(0)->required(); + } + + /** + * The data of the form. + * + * @return array + */ + public function default() + { + return [ + + ]; + } +} diff --git a/app/Admin/Service/UserService.php b/app/Admin/Service/UserService.php index c1596f7..2b1bf2c 100644 --- a/app/Admin/Service/UserService.php +++ b/app/Admin/Service/UserService.php @@ -53,8 +53,8 @@ class UserService public static function userListTool(Grid $grid) { $grid->tools([ + new UserTransferAction("转让销售"), new UserAssignAction("分配销售"), - new UserTransferAction("转移销售"), ]); } diff --git a/app/Models/Cms/CmsUser.php b/app/Models/Cms/CmsUser.php index b368b21..e588723 100644 --- a/app/Models/Cms/CmsUser.php +++ b/app/Models/Cms/CmsUser.php @@ -9,4 +9,10 @@ class CmsUser extends Model protected $connection = 'cms'; protected $table = 'user_info'; public $timestamps = false; + + public static function getInfoByUserId($userId) + { + $res = self::where('userId', $userId)->first(); + return ($res) ? $res->toArray() : []; + } } diff --git a/app/Models/User.php b/app/Models/User.php index f0b1abe..8b87172 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -48,21 +48,26 @@ class User extends Model public static function getInfoByUserId($userId) { - $res = self::where('user_id', $userId)->first(); + $res = self::where('id', $userId)->first(); return ($res) ? $res->toArray() : []; } // 批量获取用户信息 public static function getInfoByUserIds($userId) { - return self::whereIn('user_id', $userId)->get()->keyBy('user_id')->toArray(); + return self::whereIn('id', $userId)->get()->keyBy('id')->toArray(); } public static function getListByIdArr($userIdArr) { - $res = self::wherein('user_id', $userIdArr)->get(); + $res = self::wherein('id', $userIdArr)->get(); return ($res) ? $res->toArray() : []; } + public static function updateByIdArr($idArr, $update) + { + return self::whereIn("id", $idArr)->update($update); + } + }