From cc90152bc8eab5e26bd997a0fc5b06ae78bd2b0b Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Thu, 01 Aug 2024 17:52:26 +0800
Subject: [PATCH] 1
---
websocketSerivce/src/main/java/org/example/pojo/ConfigCurrency.java | 2
websocketSerivce/src/main/java/org/example/controller/AdminLogin.java | 104 +++++++++++++-------------
websocketSerivce/src/main/java/org/example/util/WebMvcConfig.java | 1
websocketSerivce/src/main/resources/application.yml | 3
websocketSerivce/src/main/java/org/example/controller/UserController.java | 50 ++++++++++-
websocketSerivce/src/main/java/org/example/websocket/server/WsServer.java | 4
websocketSerivce/src/main/java/org/example/pojo/bo/WsBo.java | 3
websocketSerivce/src/main/java/org/example/common/MybatisPlusConfig.java | 23 +++++
websocketSerivce/src/main/java/org/example/pojo/vo/UpdateUserVo.java | 48 ++++++++++++
9 files changed, 176 insertions(+), 62 deletions(-)
diff --git a/websocketSerivce/src/main/java/org/example/common/MybatisPlusConfig.java b/websocketSerivce/src/main/java/org/example/common/MybatisPlusConfig.java
new file mode 100644
index 0000000..107bb73
--- /dev/null
+++ b/websocketSerivce/src/main/java/org/example/common/MybatisPlusConfig.java
@@ -0,0 +1,23 @@
+package org.example.common;
+
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @program: demo
+ * @description:
+ * @create: 2024-07-31 14:59
+ **/
+@Configuration
+public class MybatisPlusConfig {
+
+ @Bean
+ public MybatisPlusInterceptor mybatisPlusInterceptor() {
+ MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+ interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2)); // 根据你的数据库类型选择相应的DbType
+ return interceptor;
+ }
+}
\ No newline at end of file
diff --git a/websocketSerivce/src/main/java/org/example/controller/AdminLogin.java b/websocketSerivce/src/main/java/org/example/controller/AdminLogin.java
index 803fb36..64aa642 100644
--- a/websocketSerivce/src/main/java/org/example/controller/AdminLogin.java
+++ b/websocketSerivce/src/main/java/org/example/controller/AdminLogin.java
@@ -1,52 +1,52 @@
-package org.example.controller;
-
-import cn.hutool.json.JSONUtil;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import org.example.common.ServerResponse;
-import org.example.pojo.User;
-import org.example.server.impl.UserServiceImpl;
-import org.example.util.JwtUtil;
-import org.example.util.MD5Util;
-import org.example.util.RedisUtil;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.security.SecureRandom;
-import java.util.Base64;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @program: demo
- * @description:
- * @create: 2024-07-29 11:42
- **/
-@RestController
-@RequestMapping("/admin")
-public class AdminLogin {
-
- @Autowired
- private UserServiceImpl userService;
-
- @PostMapping("/login")
- public ServerResponse saveUser(@RequestParam("account") String account
- , @RequestParam("password") String password) {
-
- User user = userService.getOne(new LambdaQueryWrapper<User>().eq(User::getAccount, account).eq(User::getIsRoot,1));
- if(null == user){
- return ServerResponse.createBySuccessMsg("管理员账号不存在");
- }
-
- if (!MD5Util.verify(password, user.getPassword())) {
- return ServerResponse.createBySuccessMsg("密码错误");
- }
- String token = JwtUtil.getToken(user);
- Map<String,String> map = new HashMap<>();
- map.put("token",token);
- return ServerResponse.createBySuccess(map);
- }
-}
+//package org.example.controller;
+//
+//import cn.hutool.json.JSONUtil;
+//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+//import org.example.common.ServerResponse;
+//import org.example.pojo.User;
+//import org.example.server.impl.UserServiceImpl;
+//import org.example.util.JwtUtil;
+//import org.example.util.MD5Util;
+//import org.example.util.RedisUtil;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.web.bind.annotation.PostMapping;
+//import org.springframework.web.bind.annotation.RequestMapping;
+//import org.springframework.web.bind.annotation.RequestParam;
+//import org.springframework.web.bind.annotation.RestController;
+//
+//import java.security.SecureRandom;
+//import java.util.Base64;
+//import java.util.Date;
+//import java.util.HashMap;
+//import java.util.Map;
+//
+///**
+// * @program: demo
+// * @description:
+// * @create: 2024-07-29 11:42
+// **/
+//@RestController
+//@RequestMapping("/admin")
+//public class AdminLogin {
+//
+// @Autowired
+// private UserServiceImpl userService;
+//
+// @PostMapping("/login")
+// public ServerResponse saveUser(@RequestParam("account") String account
+// , @RequestParam("password") String password) {
+//
+// User user = userService.getOne(new LambdaQueryWrapper<User>().eq(User::getAccount, account).eq(User::getIsRoot,1));
+// if(null == user){
+// return ServerResponse.createBySuccessMsg("管理员账号不存在");
+// }
+//
+// if (!MD5Util.verify(password, user.getPassword())) {
+// return ServerResponse.createBySuccessMsg("密码错误");
+// }
+// String token = JwtUtil.getToken(user);
+// Map<String,String> map = new HashMap<>();
+// map.put("token",token);
+// return ServerResponse.createBySuccess(map);
+// }
+//}
diff --git a/websocketSerivce/src/main/java/org/example/controller/UserController.java b/websocketSerivce/src/main/java/org/example/controller/UserController.java
index c0a090d..a23f0e0 100644
--- a/websocketSerivce/src/main/java/org/example/controller/UserController.java
+++ b/websocketSerivce/src/main/java/org/example/controller/UserController.java
@@ -1,4 +1,6 @@
package org.example.controller;
+import cn.hutool.core.convert.Convert;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -6,6 +8,7 @@
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
import org.example.common.ServerResponse;
import org.example.dao.ConfigCurrencyMapper;
import org.example.dao.LogMapper;
@@ -15,6 +18,7 @@
import org.example.pojo.User;
import org.example.pojo.vo.DeleteConfigVo;
import org.example.pojo.vo.SaveConfigVo;
+import org.example.pojo.vo.UpdateUserVo;
import org.example.server.impl.UserServiceImpl;
import org.example.util.*;
import org.springframework.beans.factory.annotation.Autowired;
@@ -137,7 +141,7 @@
@PostMapping("/saveConfig")
public ServerResponse saveConfig(@RequestBody SaveConfigVo saveConfigVo) {
- currencyMapper.delete(new LambdaQueryWrapper<ConfigCurrency>().eq(ConfigCurrency::getUserId,saveConfigVo.getUserId()));
+// currencyMapper.delete(new LambdaQueryWrapper<ConfigCurrency>().eq(ConfigCurrency::getUserId,saveConfigVo.getUserId()));
saveConfigVo.getCurrencyList().forEach(f->{
ConfigCurrency currency = new ConfigCurrency();
currency.setUserId(saveConfigVo.getUserId());
@@ -156,13 +160,29 @@
@PostMapping("/deleteConfig")
public ServerResponse deleteConfig(@RequestBody DeleteConfigVo deleteConfigVo) {
- currencyMapper.deleteBatchIds(deleteConfigVo.getConfigId());
+ currencyMapper.delete(new LambdaQueryWrapper<ConfigCurrency>()
+ .eq(ConfigCurrency::getUserId,deleteConfigVo.getUserId())
+ .in(ConfigCurrency::getId,deleteConfigVo.getConfigId()));
List<ConfigCurrency> configCurrencies = currencyMapper.selectList(new LambdaQueryWrapper<ConfigCurrency>().eq(ConfigCurrency::getUserId, deleteConfigVo.getUserId()));
String key = "config_";
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String json = gson.toJson(configCurrencies);
RedisUtil.set(key+deleteConfigVo.getUserId(),json);
return ServerResponse.createBySuccess();
+ }
+
+ @PostMapping("/selectConfig")
+ public ServerResponse selectConfig(@RequestParam(value = "currency", required = false) String currency,
+ @RequestParam("pageNum") int pageNum,
+ @RequestParam("pageSize") int pageSize,
+ HttpServletRequest request) {
+ String token = request.getHeader("token");
+ 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));
+ return ServerResponse.createBySuccess(configCurrencyPage);
+
}
@PostMapping("/saveUser")
@@ -180,7 +200,7 @@
@PostMapping("/deleteUser")
public ServerResponse deleteUser(@RequestParam("id") int id) {
User byId = userService.getById(id);
- if(null == byId){
+ if(null == byId || byId.getIsRoot() == 1){
return ServerResponse.createByErrorMsg("用户不存在");
}
userService.removeById(id);
@@ -188,13 +208,29 @@
}
@PostMapping("/updateUser")
- public ServerResponse deleteUser(User user) {
- User byId = userService.getById(user.getId());
- if(null == byId){
+ public ServerResponse deleteUser(UpdateUserVo updateUserVo) {
+ User user = userService.getById(updateUserVo.getId());
+ if(null == user || user.getIsRoot() == 1){
return ServerResponse.createByErrorMsg("用户不存在");
}
- user.setPassword(MD5Util.encrypt(user.getPassword()));
+ user.setAccount(updateUserVo.getAccount());
+ user.setPassword(MD5Util.encrypt(updateUserVo.getPassword()));
+ user.setEndTime(updateUserVo.getEndTime());
+ user.setIsLock(updateUserVo.getIsLock());
userService.updateById(user);
return ServerResponse.createBySuccess();
}
+
+ @GetMapping("/selectUser")
+ public ServerResponse selectUser(@RequestParam(value = "account", required = false) String account,
+ @RequestParam("pageNum") int pageNum,
+ @RequestParam("pageSize") int pageSize) {
+ Page<User> page = new Page<>(pageNum, pageSize);
+ Page<User> pageList = userService.page(page, new LambdaQueryWrapper<User>()
+ .eq(StringUtils.isNotEmpty(account), User::getAccount, account)
+ .eq(User::getIsShow,0)
+ .eq(User::getIsRoot,0)
+ .orderByDesc(User::getAddTime));
+ return ServerResponse.createBySuccess(pageList);
+ }
}
diff --git a/websocketSerivce/src/main/java/org/example/pojo/ConfigCurrency.java b/websocketSerivce/src/main/java/org/example/pojo/ConfigCurrency.java
index 052fbbf..b4c5c88 100644
--- a/websocketSerivce/src/main/java/org/example/pojo/ConfigCurrency.java
+++ b/websocketSerivce/src/main/java/org/example/pojo/ConfigCurrency.java
@@ -15,6 +15,8 @@
@Data
public class ConfigCurrency {
@TableId(type = IdType.AUTO)
+ private String id;
+
private Integer userId;
private String currency;
diff --git a/websocketSerivce/src/main/java/org/example/pojo/bo/WsBo.java b/websocketSerivce/src/main/java/org/example/pojo/bo/WsBo.java
index 89b6414..a3908f1 100644
--- a/websocketSerivce/src/main/java/org/example/pojo/bo/WsBo.java
+++ b/websocketSerivce/src/main/java/org/example/pojo/bo/WsBo.java
@@ -16,6 +16,9 @@
//当前用户id
private Integer userId;
+ //登录token
+ private String token;
+
//刷新时间
private int time;
diff --git a/websocketSerivce/src/main/java/org/example/pojo/vo/UpdateUserVo.java b/websocketSerivce/src/main/java/org/example/pojo/vo/UpdateUserVo.java
new file mode 100644
index 0000000..580f333
--- /dev/null
+++ b/websocketSerivce/src/main/java/org/example/pojo/vo/UpdateUserVo.java
@@ -0,0 +1,48 @@
+package org.example.pojo.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.sql.Date;
+
+/**
+ * @program: demo
+ * @description:
+ * @create: 2024-07-31 15:07
+ **/
+@Data
+public class UpdateUserVo {
+
+
+ /**
+ * id
+ */
+ private Integer id;
+
+ /**
+ * 账号
+ */
+ private String account;
+
+ /**
+ * 密码
+ */
+ private String password;
+
+ /**
+ * 到期时间
+ */
+ private Date endTime;
+
+ /**
+ * 是否锁定 0 否 1 是
+ */
+ private Integer isLock;
+
+ /**
+ * 设备数量
+ */
+ private Integer deviceNumber;
+
+}
diff --git a/websocketSerivce/src/main/java/org/example/util/WebMvcConfig.java b/websocketSerivce/src/main/java/org/example/util/WebMvcConfig.java
index 322701d..6e933a6 100644
--- a/websocketSerivce/src/main/java/org/example/util/WebMvcConfig.java
+++ b/websocketSerivce/src/main/java/org/example/util/WebMvcConfig.java
@@ -17,7 +17,6 @@
registry.addInterceptor(new LoginInterceptor())
.addPathPatterns("/**") // 拦截所有请求
.excludePathPatterns(
- "/user/saveConfig",
"/user/login");
}
}
\ No newline at end of file
diff --git a/websocketSerivce/src/main/java/org/example/websocket/server/WsServer.java b/websocketSerivce/src/main/java/org/example/websocket/server/WsServer.java
index 18e0dcc..ea4cce4 100644
--- a/websocketSerivce/src/main/java/org/example/websocket/server/WsServer.java
+++ b/websocketSerivce/src/main/java/org/example/websocket/server/WsServer.java
@@ -69,7 +69,7 @@
public void onOpen(Session session) {
WsBo wsBo = getWsBoForSession(session.getId());
String s = RedisUtil.get("user_" + wsBo.getUserId());
- if(null == s || s.isEmpty()){
+ if(null == s || s.isEmpty() && !wsBo.getToken().equals(s)){
closeSession(session, "用户未登录");
}
this.session = session;
@@ -88,7 +88,7 @@
private boolean hasReceivedSubscription(Session session) {
WsBo wsBo = getWsBoForSession(session.getId());
- return wsBo != null; // 简化逻辑
+ return wsBo != null;
}
@OnError
diff --git a/websocketSerivce/src/main/resources/application.yml b/websocketSerivce/src/main/resources/application.yml
index 191842b..9ba5d8e 100644
--- a/websocketSerivce/src/main/resources/application.yml
+++ b/websocketSerivce/src/main/resources/application.yml
@@ -50,3 +50,6 @@
config:
multi-statement-allow: false
+mybatis:
+ mapper-locations: classpath:/mappers/*.xml # Mapper XML文件的位置
+ type-aliases-package: com.example.demo.entity # 实体类的包路径
--
Gitblit v1.9.3