| | |
| | | import java.security.SecureRandom; |
| | | import java.sql.Date; |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | |
| | | try { |
| | | User user = userService.getOne(new LambdaQueryWrapper<User>().eq(User::getAccount, account)); |
| | | if(null == user){ |
| | | return ServerResponse.createBySuccessMsg("用户不存在"); |
| | | return ServerResponse.createByErrorMsg("用户不存在"); |
| | | } |
| | | |
| | | if (!MD5Util.verify(password, user.getPassword())) { |
| | | return ServerResponse.createBySuccessMsg("密码错误"); |
| | | return ServerResponse.createByErrorMsg("密码错误"); |
| | | } |
| | | List<Menu> menus = menuMapper.selectList(new LambdaQueryWrapper<Menu>()); |
| | | if(user.getIsRoot() == 1){ |
| | |
| | | map.put("token",token); |
| | | map.put("user",user); |
| | | map.put("menu",menus); |
| | | extracted(account, request); |
| | | RedisUtil.set(user.getId().toString(),token); |
| | | return ServerResponse.createBySuccess(map); |
| | | } |
| | | |
| | | //判断是否锁定 |
| | | if(user.getIsLock() == 1){ |
| | | return ServerResponse.createBySuccessMsg("账号已被锁定"); |
| | | return ServerResponse.createByErrorMsg("账号已被锁定"); |
| | | } |
| | | |
| | | //判断是否到期 |
| | | if(new java.util.Date().after(user.getEndTime())){ |
| | | return ServerResponse.createBySuccessMsg("账号已到期"); |
| | | return ServerResponse.createByErrorMsg("账号已到期"); |
| | | } |
| | | |
| | | String token = JwtUtil.getToken(user); |
| | |
| | | List<Menu> menuList = menus.stream().filter(f -> f.getIsRoot() == 0).collect(Collectors.toList()); |
| | | map.put("menu",menuList); |
| | | map.put("user",user); |
| | | String key = "user_"; |
| | | RedisUtil.set(key+user.getId(),token); |
| | | String ip = IpAddressUtil.getIpAddress(request); |
| | | String address = null; |
| | | address = IpAddressUtil.getIpPossessionByFile(ip); |
| | | if(null == address){ |
| | | address = IpAddressUtil.getIpAddressByOnline(ip); |
| | | } |
| | | Log log = new Log(); |
| | | log.setIp(ip); |
| | | log.setAccount(account); |
| | | log.setLoginTime(new java.util.Date()); |
| | | log.setAddress(address); |
| | | logMapper.insert(log); |
| | | RedisUtil.set(user.getId().toString(),token); |
| | | |
| | | extracted(account, request); |
| | | return ServerResponse.createBySuccess(map); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | log.error("登录异常:"+e.getMessage()); |
| | | } |
| | | return ServerResponse.createBySuccessMsg("系统异常"); |
| | | return ServerResponse.createByErrorMsg("系统异常"); |
| | | } |
| | | |
| | | private void extracted(String account, HttpServletRequest request) { |
| | | String ip = IpAddressUtil.getIpAddress(request); |
| | | String address = IpAddressUtil.getIpPossessionByFile(ip); |
| | | Log log = new Log(); |
| | | log.setIp(ip); |
| | | log.setAccount(account); |
| | | log.setLoginTime(new java.util.Date()); |
| | | log.setAddress(address); |
| | | logMapper.insert(log); |
| | | } |
| | | |
| | | @PostMapping("/saveConfig") |
| | |
| | | currency.setCurrency(f.getCurrency()); |
| | | currency.setBuy(f.getBuy()); |
| | | currency.setSell(f.getSell()); |
| | | LocalDateTime now = LocalDateTime.now(); |
| | | DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); |
| | | String formattedDateTime = now.format(formatter); |
| | | currency.setAddTime(formattedDateTime); |
| | | currencyMapper.insert(currency); |
| | | }); |
| | | List<ConfigCurrency> configCurrencies = currencyMapper.selectList(new LambdaQueryWrapper<ConfigCurrency>().eq(ConfigCurrency::getUserId, user.getId())); |
| | |
| | | User user = JwtUtil.verify(token); |
| | | Page<ConfigCurrency> page = new Page<>(pageNum, pageSize); |
| | | Page<ConfigCurrency> configCurrencyPage = currencyMapper.selectPage(page, new LambdaQueryWrapper<ConfigCurrency>() |
| | | .eq(StringUtils.isNotEmpty(currency), ConfigCurrency::getCurrency, currency).eq(ConfigCurrency::getUserId,user.getId())); |
| | | .eq(StringUtils.isNotEmpty(currency), ConfigCurrency::getCurrency, currency).eq(ConfigCurrency::getUserId,user.getId()).orderByDesc(ConfigCurrency::getAddTime)); |
| | | return ServerResponse.createBySuccess(configCurrencyPage); |
| | | |
| | | } |
| | |
| | | } |
| | | |
| | | @PostMapping("/updateUser") |
| | | public ServerResponse deleteUser(UpdateUserVo updateUserVo) { |
| | | public ServerResponse deleteUser(@RequestBody UpdateUserVo updateUserVo) { |
| | | User user = userService.getById(updateUserVo.getId()); |
| | | if(null == user || user.getIsRoot() == 1){ |
| | | return ServerResponse.createByErrorMsg("用户不存在"); |
| | | } |
| | | user.setAccount(updateUserVo.getAccount()); |
| | | user.setPassword(MD5Util.encrypt(updateUserVo.getPassword())); |
| | | user.setEndTime(updateUserVo.getEndTime()); |
| | | user.setIsLock(updateUserVo.getIsLock()); |
| | | userService.updateById(user); |
| | | return ServerResponse.createBySuccess(); |
| | | } |
| | | |
| | | @PostMapping("/updatePassword") |
| | | public ServerResponse updatePassword(@RequestParam("id") Integer id,@RequestParam("password") String password) { |
| | | User user = userService.getById(id); |
| | | if(null == user || user.getIsRoot() == 1){ |
| | | return ServerResponse.createByErrorMsg("用户不存在"); |
| | | } |
| | | user.setPassword(MD5Util.encrypt(password)); |
| | | userService.updateById(user); |
| | | return ServerResponse.createBySuccess(); |
| | | } |
| | |
| | | .orderByDesc(Log::getLoginTime)); |
| | | return ServerResponse.createBySuccess(pageList); |
| | | } |
| | | |
| | | @GetMapping("/addMark") |
| | | public ServerResponse addMark(@RequestParam(value = "favorites") String favorites, |
| | | HttpServletRequest request) { |
| | | String token = request.getHeader("token"); |
| | | User user = JwtUtil.verify(token); |
| | | |
| | | if (user == null) { |
| | | // 处理用户验证失败的情况,例如返回未授权错误 |
| | | return ServerResponse.createByErrorMsg("标记失败"); |
| | | } |
| | | |
| | | String mark = RedisUtil.get(user.getId() + "_mark"); |
| | | |
| | | if (StringUtils.isNotEmpty(mark)) { |
| | | // 使用 StringJoiner 或者 StringBuilder 来拼接字符串 |
| | | mark += "," + favorites; |
| | | } else { |
| | | mark = favorites; |
| | | } |
| | | |
| | | // 更新 Redis 中的标记 |
| | | RedisUtil.set(user.getId() + "_mark", mark); |
| | | |
| | | // 返回操作成功的响应 |
| | | return ServerResponse.createBySuccess("标记成功"); |
| | | } |
| | | |
| | | @GetMapping("/deleteMark") |
| | | @ResponseBody |
| | | public ServerResponse deleteMark(@RequestParam(value = "favorites") String favorites, |
| | | HttpServletRequest request) { |
| | | String token = request.getHeader("token"); |
| | | User user = JwtUtil.verify(token); |
| | | |
| | | String mark = RedisUtil.get(user.getId() + "_mark"); |
| | | |
| | | if (StringUtils.isNotEmpty(mark)) { |
| | | // 使用逗号分隔符将标记分割成数组 |
| | | String[] marks = mark.split(","); |
| | | |
| | | // 创建一个新的标记列表,用于存储没有要删除的标记 |
| | | List<String> updatedMarks = new ArrayList<>(); |
| | | |
| | | // 遍历现有的标记,将不等于要删除的标记加入新列表 |
| | | for (String m : marks) { |
| | | if (!m.equals(favorites)) { |
| | | updatedMarks.add(m); |
| | | } |
| | | } |
| | | |
| | | // 将新的标记列表转换为逗号分隔的字符串 |
| | | mark = String.join(",", updatedMarks); |
| | | |
| | | // 更新 Redis 中的标记 |
| | | RedisUtil.set(user.getId() + "_mark", mark); |
| | | |
| | | |
| | | } |
| | | // 返回操作成功的响应 |
| | | return ServerResponse.createBySuccess("取消标记成功"); |
| | | } |
| | | |
| | | } |