UserController.java 4.6 KB
package com.tianbo.warehouse.controller;

import com.github.pagehelper.PageInfo;
import com.tianbo.warehouse.annotation.LogAnnotation;
import com.tianbo.warehouse.annotation.RequestRequire;
import com.tianbo.warehouse.annotation.UserPasswordMd5;
import com.tianbo.warehouse.controller.response.ResultJson;
import com.tianbo.warehouse.model.USERS;
import com.tianbo.warehouse.model.UserRole;
import com.tianbo.warehouse.service.UserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;

@RestController
@RequestMapping("/user")
@Api("swaggerDemoController相关的api")
public class UserController {

    @Autowired
    UserService userService;

    @ApiOperation(value = "查询用户列表及信息", notes = "查询用户列表及单个用户信息")
    @ApiImplicitParams({@ApiImplicitParam(name = "pageNum", value = "分页-当前页", required = false, dataType = "int",defaultValue = "1"),
            @ApiImplicitParam(name = "pageSize", value = "分页-每页显示多少条", required = false, dataType = "int",defaultValue = "5")})
    @RequestRequire
    @GetMapping("/list")
    public ResultJson<PageInfo> list(@RequestParam(value = "pageNum",required = false,defaultValue = "1")
                                        int pageNum,
                                @RequestParam(value = "pageSize",required = false,defaultValue = "5")
                                        int pageSize,
                                @RequestParam(value = "userName",required = false) String username,
                                @RequestParam(value = "realName",required = false) String realname)
    {

        PageInfo<USERS> usersPageInfo = userService.selectAllUser(pageNum,pageSize, username,  realname);
        return new ResultJson("200","success",usersPageInfo);
    }

    public String getCurrentUser(){

        //通过session获取当前登录的用户信息
        UserDetails userDetails =(UserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
        return userDetails.getUsername();
    }

    @LogAnnotation(moduleName = "用户管理",operate = "用户编辑")
    @PutMapping("/edit")
    public ResultJson updateUserById(@RequestBody @Valid USERS user){
       int i = userService.updateByPrimaryKeySelective(user);
        ResultJson resultJson = new ResultJson();
        return i==1 ? new ResultJson("200","success") :new ResultJson("500","update faild");

    }

    @LogAnnotation(moduleName = "用户管理",operate = "用户密码修改")
    @UserPasswordMd5
    @PutMapping("/password")
    public ResultJson updateUserPassById(@RequestBody USERS user){
        int i = userService.updateByPrimaryKeySelective(user);
        return i==1 ? new ResultJson("200","success") :new ResultJson("500","update faild");
    }

    @UserPasswordMd5
    @LogAnnotation(moduleName = "用户管理",operate = "用户添加")
    @PostMapping("/add")
    public ResultJson addUser(@RequestBody @Valid USERS user, HttpServletRequest request, HttpServletResponse response, BindingResult bindingResult){

        if (bindingResult.hasErrors()){
           String s =  bindingResult.toString();
        }

        int i = userService.insertSelective(user);
        ResultJson resultJson = new ResultJson();
        return i==1 ? new ResultJson("200","新建账户成功") :new ResultJson("500","insert faild");

    }

    @LogAnnotation(moduleName = "用户管理",operate = "用户删除")
    @DeleteMapping("/del")
    public ResultJson delUser(@RequestBody USERS user,HttpServletRequest request,HttpServletResponse response){
        //String username = getusername();
        int i = userService.deleteByPrimaryKey(user.getUserId());
        ResultJson resultJson = new ResultJson();
        return i==1 ? new ResultJson("200","删除账户成功") :new ResultJson("500","delete faild");

    }

    @PutMapping("/roleset")
    public ResultJson roleSet(@RequestBody UserRole userRole){

       int i =  userService.setUserRole(userRole);

       return i==1 ? new ResultJson("200","设置角色成功") :new ResultJson("500","设置角色失败");

    }

}