| | |
| | | package com.yuanchu.mom.controller; |
| | | |
| | | import cn.hutool.http.HttpUtil; |
| | | import cn.hutool.json.JSONObject; |
| | | import cn.hutool.json.JSONUtil; |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.yuanchu.mom.annotation.ValueAuth; |
| | | import com.yuanchu.mom.common.PrintChina; |
| | | import com.yuanchu.mom.dto.UserPageDto; |
| | | import com.yuanchu.mom.pojo.User; |
| | | import com.yuanchu.mom.service.PowerService; |
| | | import com.yuanchu.mom.service.UserService; |
| | | import com.yuanchu.mom.utils.JackSonUtil; |
| | | import com.yuanchu.mom.utils.Jwt; |
| | | import com.yuanchu.mom.utils.RedisUtil; |
| | | import com.yuanchu.mom.utils.ServletUtils; |
| | | import com.yuanchu.mom.vo.Result; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import lombok.AllArgsConstructor; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.util.DigestUtils; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.util.HashMap; |
| | |
| | | @RequestMapping("/user") |
| | | @RestController |
| | | @Api(tags = "用户模块") |
| | | @AllArgsConstructor |
| | | public class UserController { |
| | | |
| | | @Autowired |
| | | UserService userService; |
| | | private UserService userService; |
| | | |
| | | @Autowired |
| | | private PowerService powerService; |
| | | |
| | | private Jwt jwt; |
| | | |
| | | @ApiOperation(value = "登录") |
| | | @PostMapping("/enter") |
| | | @ValueAuth |
| | | public Result login(String account, String password) { |
| | | User user = userService.selectUserByPwd(account, password); |
| | | if (user==null) return Result.fail("登录失败"); |
| | | String jwtToken = jwt.createJwt(user.getName(), user.getId(), 60); |
| | | String jwtReToken = jwt.createJwt(user.getName(), user.getId(), 24 * 60); |
| | | RedisUtil.set("" + user.getId(), jwtToken, 60); |
| | | RedisUtil.set(user.getId() + "Re", jwtReToken, 24 * 60); |
| | | Map<String, String> map = new HashMap<>(); |
| | | if (user == null) return Result.fail("账号密码错误或者账号已被停用"); |
| | | String jwtToken; |
| | | String jwtReToken; |
| | | if(RedisUtil.hasKey("" + user.getId())){ |
| | | jwtToken = RedisUtil.get("" + user.getId()) + ""; |
| | | }else{ |
| | | jwtToken = jwt.createJwt(user.getName(), user.getId(), 24 * 60); |
| | | RedisUtil.set("" + user.getId(), jwtToken, 24 * 60); |
| | | } |
| | | if(RedisUtil.hasKey(user.getId() + "Re")){ |
| | | jwtReToken = RedisUtil.get(user.getId() + "Re") + ""; |
| | | }else{ |
| | | jwtReToken = jwt.createJwt(user.getName(), user.getId(), 48 * 60); |
| | | RedisUtil.set(user.getId() + "Re", jwtReToken, 48 * 60); |
| | | } |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("token", jwtToken); |
| | | map.put("reToken", jwtReToken); |
| | | map.put("name", user.getName()); |
| | | map.put("power", powerService.selectPowerByRoleId(user.getRoleId())); |
| | | return Result.success("登录成功", map); |
| | | } |
| | | |
| | | @ApiOperation(value = "token刷新") |
| | | @PostMapping("/refresh") |
| | | @ValueAuth |
| | | public Result refresh(String reToken) throws Exception { |
| | | Map<String, String> map = new Jwt().readJWT(reToken); |
| | | Map<String, String> maps = JackSonUtil.unmarshal(map.get("data"), Map.class); |
| | |
| | | } else if (redisToken.equals(reToken)) { |
| | | int id = Integer.parseInt(maps.get("id").replaceAll("\"", "")); |
| | | String name = maps.get("name").replaceAll("\"", ""); |
| | | String jwtToken = jwt.createJwt(name, id, 60); |
| | | String jwtReToken = jwt.createJwt(name, id, 24 * 60); |
| | | RedisUtil.set("" + id, jwtToken, 60); |
| | | RedisUtil.set(id + "Re", jwtReToken, 24 * 60); |
| | | String jwtToken = jwt.createJwt(name, id, 24 * 60); |
| | | String jwtReToken = jwt.createJwt(name, id, 48 * 60); |
| | | RedisUtil.set("" + id, jwtToken, 24 * 60); |
| | | RedisUtil.set(id + "Re", jwtReToken, 48 * 60); |
| | | Map<String, String> map1 = new HashMap<>(); |
| | | map1.put("token", jwtToken); |
| | | map1.put("reToken", jwtReToken); |
| | |
| | | return Result.fail(map.get("info")); |
| | | } |
| | | |
| | | @ApiOperation(value = "获取用户列表") |
| | | @PostMapping("/selectUserList") |
| | | public Result selectUserList(@RequestBody Map<String, Object> data) throws Exception { |
| | | Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class); |
| | | UserPageDto user = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), UserPageDto.class); |
| | | return Result.success(userService.selectUserList(page, user)); |
| | | } |
| | | |
| | | @ApiOperation(value = "修改用户信息") |
| | | @PostMapping("/updateUser") |
| | | public Result<?> updateUser(@RequestBody User user) { |
| | | if ("".equals(user.getPassword())) user.setPassword(null); |
| | | else user.setPassword(DigestUtils.md5DigestAsHex(user.getPassword().getBytes())); |
| | | return Result.success(userService.updateUser(user)); |
| | | } |
| | | |
| | | @ApiOperation(value = "添加用户信息") |
| | | @PostMapping("/addUser") |
| | | public Result<?> addUser(@RequestBody User user) { |
| | | if ("".equals(user.getPassword())) user.setPassword(null); |
| | | else user.setPassword(DigestUtils.md5DigestAsHex(user.getPassword().getBytes())); |
| | | return Result.success(userService.addUser(user)); |
| | | } |
| | | |
| | | @ApiOperation(value = "获取用户信息枚举") |
| | | @GetMapping("/getUserMenu") |
| | | @ValueAuth |
| | | public Result<?> getUserMenu() { |
| | | return Result.success(userService.getUserMenu()); |
| | | } |
| | | } |