@RestController
@RequestMapping
(
"/users"
)
public
class
UserController {
@Autowired
private
UserService userService;
@GetMapping
public
ModelAndView list(
@RequestParam
(value =
"async"
, required =
false
)
boolean
async,
@RequestParam
(value =
"pageIndex"
, required =
false
, defaultValue =
"0"
)
int
pageIndex,
@RequestParam
(value =
"pageSize"
, required =
false
, defaultValue =
"10"
)
int
pageSize,
@RequestParam
(value =
"name"
, required =
false
, defaultValue =
""
) String name,
Model model
){
Pageable pageable =
new
PageRequest(pageIndex, pageSize);
Page<User> page = userService.listUserByNameLike(name, pageable);
List<User> list = page.getContent();
model.addAttribute(
"page"
, page);
model.addAttribute(
"userList"
, list);
return
new
ModelAndView(async==
true
?
"users/list :: #mainContainerRepleace"
:
"users/list"
,
"userModel"
, model);
}
@GetMapping
(
"/add"
)
public
ModelAndView createForm(Model model){
model.addAttribute(
"user"
,
new
User(
null
,
null
,
null
,
null
));
return
new
ModelAndView(
"users/add"
,
"userModel"
,model);
}
@PostMapping
public
ResponseEntity<Response> saveOrUpdate(User user){
try
{
userService.saveOrUpdate(user);
}
catch
(ConstraintViolationException e){
return
ResponseEntity.ok().body(
new
Response(
false
, ConstraintViolationExceptionHandler.getMessage(e)));
}
return
ResponseEntity.ok().body(
new
Response(
true
,
"处理成功"
, user));
}
@DeleteMapping
(value =
"/{id}"
)
public
ResponseEntity<Response> delete(
@PathVariable
(
"id"
) Long id, Model model){
try
{
userService.removeUser(id);
}
catch
(Exception e){
return
ResponseEntity.ok().body(
new
Response(
false
, e.getMessage()));
}
return
ResponseEntity.ok().body(
new
Response(
true
,
"处理成功"
));
}
@GetMapping
(
"/edit/{id}"
)
public
ModelAndView modifyForm(
@PathVariable
(
"id"
) Long id, Model model){
User user = userService.getUserById(id);
model.addAttribute(
"user"
, user);
return
new
ModelAndView(
"users/edit"
,
"userModel"
, model);
}
}