package com.gkhy.assess.admin.controller.web; import com.gkhy.assess.common.annotation.RepeatSubmit; import com.gkhy.assess.common.api.CommonResult; import com.gkhy.assess.common.validate.AgencyGroup; import com.gkhy.assess.common.validate.ExpertGroup; import com.gkhy.assess.common.validate.MonitorGroup; import com.gkhy.assess.system.domain.SysUser; import com.gkhy.assess.system.service.SysUserService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.apache.shiro.authz.annotation.Logical; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @Api(tags = "用户前端控制器") @RestController @RequestMapping("/system/user") public class SysUserController { @Autowired private SysUserService sysUserService; @ApiOperation(value = "监管用户列表(分页)") @ApiImplicitParams({ @ApiImplicitParam(paramType = "query", name = "pageNum", dataType = "int", required = false, value = "当前页,默认1"), @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10") }) @GetMapping("/monitorList") public CommonResult monitorList(SysUser user){ return CommonResult.success(sysUserService.monitorList(user)); } @ApiOperation(value = "机构用户列表(分页)") @ApiImplicitParams({ @ApiImplicitParam(paramType = "query", name = "pageNum", dataType = "int", required = false, value = "当前页,默认1"), @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10") }) @GetMapping("/agencyList") public CommonResult agencyList(SysUser user){ return CommonResult.success(sysUserService.agencyList(user)); } @ApiOperation(value = "专家用户列表(分页)") @ApiImplicitParams({ @ApiImplicitParam(paramType = "query", name = "pageNum", dataType = "int", required = false, value = "当前页,默认1"), @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10") }) @GetMapping("/expertList") public CommonResult expertList(SysUser user){ return CommonResult.success(sysUserService.expertList(user)); } @RepeatSubmit @ApiOperation(value = "创建监管用户") @PostMapping("/addMonitor") public CommonResult addMonitor(@Validated(MonitorGroup.class) @RequestBody SysUser user){ return CommonResult.success(sysUserService.addMonitor(user)); } @RepeatSubmit @ApiOperation(value = "机构注册") @PostMapping("/addAgency") public CommonResult addAgency(@Validated(AgencyGroup.class) @RequestBody SysUser user){ return CommonResult.success(sysUserService.addAgency(user)); } @RepeatSubmit @RequiresPermissions(value={"system:assess:monitor","system:assess:agency"},logical = Logical.OR) @ApiOperation(value = "创建专家") @PostMapping("/addExpert") public CommonResult addExpert(@Validated(ExpertGroup.class) @RequestBody SysUser user){ return CommonResult.success(sysUserService.addExpert(user)); } @RepeatSubmit @RequiresPermissions("system:assess:monitor") @ApiOperation(value = "编辑监管用户") @PutMapping("/editMonitor") public CommonResult editMonitor(@RequestBody SysUser user){ return CommonResult.success(sysUserService.editMonitor(user)); } @RepeatSubmit @RequiresPermissions("system:assess:monitor") @ApiOperation(value = "编辑机构") @PutMapping("/editAgency") public CommonResult editAgency(@RequestBody SysUser user){ return CommonResult.success(sysUserService.editAgency(user)); } @RepeatSubmit @RequiresPermissions(value={"system:assess:monitor","system:assess:agency"},logical = Logical.OR) @ApiOperation(value = "编辑专家") @PutMapping("/editExpert") public CommonResult editExpert(@RequestBody SysUser user){ return CommonResult.success(sysUserService.editExpert(user)); } @ApiOperation(value = "根据id获取用户详情") @ApiImplicitParams({ @ApiImplicitParam(paramType = "query", name = "userId", dataType = "int", required = true, value = "用户id") }) @GetMapping("/getUserById") public CommonResult getUserById(@RequestParam(required = true) Long userId){ return CommonResult.success(sysUserService.getUserInfoById(userId)); } @ApiOperation(value = "校验用户名") @PostMapping("/checkUserNameUnique") public CommonResult checkLoginNameUnique(@RequestBody SysUser user) { return CommonResult.success(sysUserService.checkUsernameUnique(user)); } @ApiOperation(value = "校验手机号") @PostMapping("/checkPhoneUnique") public CommonResult checkPhoneUnique(@RequestBody SysUser user) { return CommonResult.success(sysUserService.checkPhoneUnique(user)); } @RepeatSubmit @ApiOperation(value = "用户修改密码") @PutMapping("/resetUserPwd") public CommonResult resetUserPwd(@RequestBody SysUser user) { return CommonResult.success(sysUserService.resetUserPwd(user)); } @RepeatSubmit @RequiresPermissions(value={"system:assess:monitor","system:assess:agency"},logical = Logical.OR) @ApiOperation(value = "用户状态修改,停用/启用") @PostMapping("/changeStatus") public CommonResult changeStatus(@RequestBody SysUser user) { return CommonResult.success(sysUserService.changeUserStatus(user)); } @RepeatSubmit @RequiresPermissions("system:assess:monitor") @ApiOperation(value = "审批状态修改,审批状态(0暂存,1审核中,2审批通过,3审批驳回,4已作废)") @PostMapping("/changeApprove") public CommonResult changeApprove(@RequestBody SysUser user) { return CommonResult.success(sysUserService.changeApprove(user)); } @RepeatSubmit @RequiresPermissions(value={"system:assess:monitor","system:assess:agency"},logical = Logical.OR) @ApiOperation(value = "根据id删除用户") @DeleteMapping("/remove/{userId}") public CommonResult removeUser(@PathVariable(name = "userId") Long userId) { return CommonResult.success(sysUserService.deleteUserById(userId)); } }