From 4525db077789d82f0e667d047863348a31e9b6b9 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期一, 10 七月 2023 11:25:00 +0800
Subject: [PATCH] 代理过滤器添加用户、令牌、IP等验证功能

---
 src/main/java/com/moon/server/controller/sys/ResController.java |  125 +++++------
 src/main/java/com/moon/server/service/sys/ResService.java       |   45 ++--
 src/main/java/com/moon/server/interceptor/AuthInterceptor.java  |   16 
 src/main/resources/mapper/sys/ResMapper.xml                     |   68 +++---
 src/main/java/com/moon/server/entity/sys/ResEntity.java         |  153 +++++++-------
 src/main/java/com/moon/server/interceptor/ProxyFilter.java      |  103 ++++++++++
 src/main/java/com/moon/server/mapper/sys/ResMapper.java         |   58 +++--
 7 files changed, 337 insertions(+), 231 deletions(-)

diff --git a/src/main/java/com/moon/server/controller/sys/ResController.java b/src/main/java/com/moon/server/controller/sys/ResController.java
index 9f6ad96..a99890f 100644
--- a/src/main/java/com/moon/server/controller/sys/ResController.java
+++ b/src/main/java/com/moon/server/controller/sys/ResController.java
@@ -5,9 +5,7 @@
 import com.moon.server.entity.all.ResponseMsg;
 import com.moon.server.entity.sys.ResEntity;
 import com.moon.server.entity.sys.UserEntity;
-import com.moon.server.service.all.PermsService;
 import com.moon.server.service.all.UploadAttachService;
-import com.moon.server.service.data.DownloadService;
 import com.moon.server.service.sys.ResService;
 import com.moon.server.service.sys.TokenService;
 import io.swagger.annotations.Api;
@@ -23,9 +21,8 @@
 import java.util.List;
 
 /**
- * 璧勬簮琛�
- * @author SWS
- * @date 2022-09.28
+ * 璧勬簮绠$悊
+ * @author WWW
  */
 @Api(tags = "杩愮淮绠$悊\\璧勬簮绠$悊")
 @RestController
@@ -38,12 +35,6 @@
     TokenService tokenService;
 
     @Autowired
-    PermsService permsService;
-
-    @Autowired
-    DownloadService downloadService;
-
-    @Autowired
     UploadAttachService uploadAttachService;
 
     private final static String TAB_NAME = "lf.sys_res";
@@ -51,7 +42,7 @@
     @SysLog()
     @ApiOperation(value = "鏌ヨ璁板綍鏁�")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "name", value = "鍚嶇О", dataType = "String", paramType = "query", required = false, example = "sys_res")
+            @ApiImplicitParam(name = "name", value = "鍚嶇О", dataType = "String", paramType = "query", required = false, example = "")
     })
     @GetMapping({"/selectCount"})
     public ResponseMsg<Integer> selectCount(String name) {
@@ -67,7 +58,7 @@
     @SysLog()
     @ApiOperation(value = "鍒嗛〉鏌ヨ")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "name", value = "鍚嶇О", dataType = "String", paramType = "query", example = "sys_res"),
+            @ApiImplicitParam(name = "name", value = "鍚嶇О", dataType = "String", paramType = "query", example = ""),
             @ApiImplicitParam(name = "pageSize", value = "姣忛〉鏉℃暟", dataType = "Integer", paramType = "query", example = "10"),
             @ApiImplicitParam(name = "pageIndex", value = "鍒嗛〉鏁帮紙浠�1寮�濮嬶級", dataType = "Integer", paramType = "query", example = "1")
     })
@@ -89,7 +80,7 @@
     @SysLog()
     @ApiOperation(value = "鍒嗛〉鏌ヨ骞惰繑鍥炶褰曟暟")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "name", value = "鍚嶇О", dataType = "String", paramType = "query", example = "sys_res"),
+            @ApiImplicitParam(name = "name", value = "鍚嶇О", dataType = "String", paramType = "query", example = ""),
             @ApiImplicitParam(name = "pageSize", value = "姣忛〉鏉℃暟", dataType = "Integer", paramType = "query", example = "10"),
             @ApiImplicitParam(name = "pageIndex", value = "鍒嗛〉鏁帮紙浠�1寮�濮嬶級", dataType = "Integer", paramType = "query", example = "1")
     })
@@ -104,7 +95,9 @@
             if (count == 0) {
                 return success(0, null);
             }
+
             List<ResEntity> rs = resService.selectByPage(name, pageSize, pageSize * (pageIndex - 1));
+
             return success(count, rs);
         } catch (Exception ex) {
             return fail(ex, null);
@@ -139,22 +132,35 @@
     }
 
     @SysLog()
+    @ApiOperation(value = "鏍规嵁ID鏌ヨ")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "ID", dataType = "int", paramType = "query", example = "1")
+    })
+    @GetMapping(value = "/selectById")
+    public ResponseMsg<ResEntity> selectById(int id) {
+        try {
+            ResEntity entity = resService.selectById(id);
+
+            return success(entity);
+        } catch (Exception ex) {
+            return fail(ex, null);
+        }
+    }
+
+    @SysLog()
     @ApiOperation(value = "鎻掑叆涓�鏉�")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "entity", value = "瀹炰綋绫�", dataType = "ResEntity", paramType = "body", example = "")
+            @ApiImplicitParam(name = "entity", value = "瀹炰綋绫�", dataType = "ResEntity", paramType = "body")
     })
-    @PostMapping(value = "/insertRes", produces = "application/json; charset=UTF-8")
-    public ResponseMsg<Integer> insertRes(@RequestBody ResEntity entity, HttpServletRequest req) {
+    @PostMapping(value = "/insert", produces = "application/json; charset=UTF-8")
+    public ResponseMsg<Integer> insert(@RequestBody ResEntity entity, HttpServletRequest req) {
         try {
             UserEntity ue = tokenService.getCurrentUser(req);
             if (ue != null) {
                 entity.setCreateUser(ue.getId());
             }
 
-            int count = resService.insertRes(entity);
-            if (count > 0) {
-                permsService.clearResCache();
-            }
+            int count = resService.insert(entity);
 
             return success(count);
         } catch (Exception ex) {
@@ -165,10 +171,10 @@
     @SysLog()
     @ApiOperation(value = "鎻掑叆澶氭潯")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "list", value = "瀹炰綋绫婚泦鍚�", dataType = "List<ResEntity>", paramType = "body", example = "")
+            @ApiImplicitParam(name = "list", value = "瀹炰綋绫婚泦鍚�", dataType = "ResEntity", paramType = "body")
     })
-    @PostMapping(value = "/insertRess", produces = "application/json; charset=UTF-8")
-    public ResponseMsg<Integer> insertRess(@RequestBody List<ResEntity> list, HttpServletRequest req) {
+    @PostMapping(value = "/inserts", produces = "application/json; charset=UTF-8")
+    public ResponseMsg<Integer> inserts(@RequestBody List<ResEntity> list, HttpServletRequest req) {
         try {
             UserEntity ue = tokenService.getCurrentUser(req);
             if (ue != null) {
@@ -177,10 +183,7 @@
                 }
             }
 
-            int count = resService.insertRess(list);
-            if (count > 0) {
-                permsService.clearResCache();
-            }
+            int count = resService.inserts(list);
 
             return success(count);
         } catch (Exception ex) {
@@ -193,13 +196,10 @@
     @ApiImplicitParams({
             @ApiImplicitParam(name = "id", value = "ID", dataType = "Integer", paramType = "query", example = "1")
     })
-    @GetMapping(value = "/deleteRes")
-    public ResponseMsg<Integer> deleteRes(int id) {
+    @GetMapping(value = "/delete")
+    public ResponseMsg<Integer> delete(int id) {
         try {
-            int count = resService.deleteRes(id);
-            if (count > 0) {
-                permsService.clearResCache();
-            }
+            int count = resService.delete(id);
 
             return success(count);
         } catch (Exception ex) {
@@ -210,19 +210,16 @@
     @SysLog()
     @ApiOperation(value = "鍒犻櫎澶氭潯")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "ids", value = "ID鏁扮粍", dataType = "List<Integer>", paramType = "query", example = "1,2")
+            @ApiImplicitParam(name = "ids", value = "ID鏁扮粍", dataType = "Integer", paramType = "query", example = "1,2")
     })
-    @GetMapping(value = "/deleteRess")
-    public ResponseMsg<Integer> deleteRess(@RequestParam List<Integer> ids) {
+    @GetMapping(value = "/deletes")
+    public ResponseMsg<Integer> deletes(@RequestParam List<Integer> ids) {
         try {
             if (ids == null || ids.isEmpty()) {
                 return fail("id鏁扮粍涓嶈兘涓虹┖", -1);
             }
 
-            int count = resService.deleteRess(ids);
-            if (count > 0) {
-                permsService.clearResCache();
-            }
+            int count = resService.deletes(ids);
 
             return success(count);
         } catch (Exception ex) {
@@ -233,21 +230,18 @@
     @SysLog()
     @ApiOperation(value = "鏇存柊涓�鏉�")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "entity", value = "瀹炰綋绫�", dataType = "ResEntity", paramType = "body", example = "")
+            @ApiImplicitParam(name = "entity", value = "瀹炰綋绫�", dataType = "ResEntity", paramType = "body")
     })
     @ResponseBody
-    @PostMapping(value = "/updateRes", produces = "application/json; charset=UTF-8")
-    public ResponseMsg<Integer> updateRes(@RequestBody ResEntity entity, HttpServletRequest req) {
+    @PostMapping(value = "/update", produces = "application/json; charset=UTF-8")
+    public ResponseMsg<Integer> update(@RequestBody ResEntity entity, HttpServletRequest req) {
         try {
             UserEntity ue = tokenService.getCurrentUser(req);
             if (ue != null) {
                 entity.setUpdateUser(ue.getId());
             }
 
-            int count = resService.updateRes(entity);
-            if (count > 0) {
-                permsService.clearResCache();
-            }
+            int count = resService.update(entity);
 
             return success(count);
         } catch (Exception ex) {
@@ -256,31 +250,26 @@
     }
 
     @SysLog()
-    @ApiOperation(value = "鏍规嵁ID鏌ヨ")
+    @ApiOperation(value = "鏇存柊澶氭潯")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "id", value = "ID", dataType = "Integer", paramType = "query", example = "1")
+            @ApiImplicitParam(name = "list", value = "瀹炰綋绫婚泦鍚�", dataType = "ResEntity", paramType = "body")
     })
-    @GetMapping(value = "/selectRes")
-    public ResponseMsg<ResEntity> selectRes(int id) {
+    @ResponseBody
+    @PostMapping(value = "/updates", produces = "application/json; charset=UTF-8")
+    public ResponseMsg<Integer> updates(@RequestBody List<ResEntity> list, HttpServletRequest req) {
         try {
-            ResEntity resEntity = resService.selectRes(id);
+            UserEntity ue = tokenService.getCurrentUser(req);
+            if (ue != null) {
+                for (ResEntity entity : list) {
+                    entity.setUpdateUser(ue.getId());
+                }
+            }
 
-            return success(resEntity);
+            int count = resService.updates(list);
+
+            return success(count);
         } catch (Exception ex) {
-            return fail(ex, null);
-        }
-    }
-
-    @SysLog()
-    @ApiOperation(value = "鏌ヨ鎵�鏈�")
-    @GetMapping(value = "/selectResAll")
-    public ResponseMsg<List<ResEntity>> selectResAll() {
-        try {
-            List<ResEntity> list = resService.selectResAll();
-
-            return success(list);
-        } catch (Exception ex) {
-            return fail(ex, null);
+            return fail(ex, -1);
         }
     }
 
diff --git a/src/main/java/com/moon/server/entity/sys/ResEntity.java b/src/main/java/com/moon/server/entity/sys/ResEntity.java
index 708cd6a..0b1e3e0 100644
--- a/src/main/java/com/moon/server/entity/sys/ResEntity.java
+++ b/src/main/java/com/moon/server/entity/sys/ResEntity.java
@@ -1,60 +1,57 @@
 package com.moon.server.entity.sys;
 
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
 import java.io.Serializable;
 import java.sql.Timestamp;
 
 /**
- * @author user
+ * 璧勬簮
+ * @author WWW
  */
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
 public class ResEntity implements Serializable {
-    private static final long serialVersionUID = 9047079519693255710L;
+    private static final long serialVersionUID = -286579305905187168L;
 
     private int id;
 
     private String name;
 
-    private String server;
+    private int type;
 
-    private String source;
+    private int status;
 
-    private int depid;
+    private String manufacturer;
 
-    private String depName;
+    private String url;
 
-    private int dirid;
+    private String test;
 
-    private String dirName;
-
-    private String code;
+    private String proxy;
 
     private String descr;
 
+    private String depid;
+
+    private String dirid;
+
     private String img;
 
-    private int createUser;
+    private String guid;
 
-    private String createName;
+    private int createUser;
 
     private Timestamp createTime;
 
     private int updateUser;
 
-    private String updateName;
-
     private Timestamp updateTime;
 
     private String bak;
 
+    private String createName;
 
+    private String updateName;
 
-    private String fileGuid;
+    public ResEntity() {
+    }
 
     public int getId() {
         return id;
@@ -72,60 +69,52 @@
         this.name = name;
     }
 
-    public String getServer() {
-        return server;
+    public int getType() {
+        return type;
     }
 
-    public void setServer(String server) {
-        this.server = server;
+    public void setType(int type) {
+        this.type = type;
     }
 
-    public String getSource() {
-        return source;
+    public int getStatus() {
+        return status;
     }
 
-    public void setSource(String source) {
-        this.source = source;
+    public void setStatus(int status) {
+        this.status = status;
     }
 
-    public int getDepid() {
-        return depid;
+    public String getManufacturer() {
+        return manufacturer;
     }
 
-    public void setDepid(int depid) {
-        this.depid = depid;
+    public void setManufacturer(String manufacturer) {
+        this.manufacturer = manufacturer;
     }
 
-    public String getDepName() {
-        return depName;
+    public String getUrl() {
+        return url;
     }
 
-    public void setDepName(String depName) {
-        this.depName = depName;
+    public void setUrl(String url) {
+        this.url = url;
     }
 
-    public int getDirid() {
-        return dirid;
+    public String getTest() {
+        return test;
     }
 
-    public void setDirid(int dirid) {
-        this.dirid = dirid;
+    public void setTest(String test) {
+        this.test = test;
     }
 
-    public String getDirName() {
-        return dirName;
+    public String getProxy() {
+        return proxy;
     }
 
-    public void setDirName(String dirName) {
-        this.dirName = dirName;
-    }
-
-    public String getCode() {
-        return code;
-    }
-
-    public void setCode(String code) {
-        this.code = code;
+    public void setProxy(String proxy) {
+        this.proxy = proxy;
     }
 
     public String getDescr() {
@@ -136,6 +125,22 @@
         this.descr = descr;
     }
 
+    public String getDepid() {
+        return depid;
+    }
+
+    public void setDepid(String depid) {
+        this.depid = depid;
+    }
+
+    public String getDirid() {
+        return dirid;
+    }
+
+    public void setDirid(String dirid) {
+        this.dirid = dirid;
+    }
+
     public String getImg() {
         return img;
     }
@@ -144,20 +149,20 @@
         this.img = img;
     }
 
+    public String getGuid() {
+        return guid;
+    }
+
+    public void setGuid(String guid) {
+        this.guid = guid;
+    }
+
     public int getCreateUser() {
         return createUser;
     }
 
     public void setCreateUser(int createUser) {
         this.createUser = createUser;
-    }
-
-    public String getCreateName() {
-        return createName;
-    }
-
-    public void setCreateName(String createName) {
-        this.createName = createName;
     }
 
     public Timestamp getCreateTime() {
@@ -176,14 +181,6 @@
         this.updateUser = updateUser;
     }
 
-    public String getUpdateName() {
-        return updateName;
-    }
-
-    public void setUpdateName(String updateName) {
-        this.updateName = updateName;
-    }
-
     public Timestamp getUpdateTime() {
         return updateTime;
     }
@@ -200,11 +197,19 @@
         this.bak = bak;
     }
 
-    public String getFileGuid() {
-        return fileGuid;
+    public String getCreateName() {
+        return createName;
     }
 
-    public void setFileGuid(String fileGuid) {
-        this.fileGuid = fileGuid;
+    public void setCreateName(String createName) {
+        this.createName = createName;
+    }
+
+    public String getUpdateName() {
+        return updateName;
+    }
+
+    public void setUpdateName(String updateName) {
+        this.updateName = updateName;
     }
 }
diff --git a/src/main/java/com/moon/server/interceptor/AuthInterceptor.java b/src/main/java/com/moon/server/interceptor/AuthInterceptor.java
index d583207..f959f0f 100644
--- a/src/main/java/com/moon/server/interceptor/AuthInterceptor.java
+++ b/src/main/java/com/moon/server/interceptor/AuthInterceptor.java
@@ -29,19 +29,19 @@
 
     private static final Log log = LogFactory.getLog(AuthInterceptor.class);
 
-    private static final String NO_TOKEN = JSON.toJSONString(new ResponseMsg<String>(HttpStatus.TOKEN_ERROR, "鎵句笉鍒颁护鐗�"));
+    public static final String NO_TOKEN = JSON.toJSONString(new ResponseMsg<String>(HttpStatus.TOKEN_ERROR, "鎵句笉鍒颁护鐗�"));
 
-    private static final String NO_LOGIN = JSON.toJSONString(new ResponseMsg<String>(HttpStatus.NO_LOGIN_ERROR, "鐢ㄦ埛鏈櫥褰�"));
+    public static final String NO_LOGIN = JSON.toJSONString(new ResponseMsg<String>(HttpStatus.NO_LOGIN_ERROR, "鐢ㄦ埛鏈櫥褰�"));
 
-    private static final String USER_LOCK = JSON.toJSONString(new ResponseMsg<String>(HttpStatus.USER_LOCK_ERROR, "鐢ㄦ埛ID宸茬鐢�"));
+    public static final String USER_LOCK = JSON.toJSONString(new ResponseMsg<String>(HttpStatus.USER_LOCK_ERROR, "鐢ㄦ埛ID宸茬鐢�"));
 
-    private static final String NO_AUTH = JSON.toJSONString(new ResponseMsg<String>(HttpStatus.NO_AUTH_ERROR, "鏃犳潈闄愯闂�"));
+    public static final String NO_AUTH = JSON.toJSONString(new ResponseMsg<String>(HttpStatus.NO_AUTH_ERROR, "鏃犳潈闄愯闂�"));
 
-    private static final String IP_NULL = JSON.toJSONString(new ResponseMsg<String>(HttpStatus.UNAUTHORIZED, "IP鍦板潃涓虹┖"));
+    public static final String IP_NULL = JSON.toJSONString(new ResponseMsg<String>(HttpStatus.UNAUTHORIZED, "IP鍦板潃涓虹┖"));
 
-    private static final String BLACK_LIST = JSON.toJSONString(new ResponseMsg<String>(HttpStatus.UNAUTHORIZED, "璇P鍏ラ粦鍚嶅崟"));
+    public static final String BLACK_LIST = JSON.toJSONString(new ResponseMsg<String>(HttpStatus.UNAUTHORIZED, "璇P鍏ラ粦鍚嶅崟"));
 
-    private static final String ILLEGAL_TOKEN = JSON.toJSONString(new ResponseMsg<String>(HttpStatus.UNAUTHORIZED, "浠ょ墝鏉ユ簮闈炴硶"));
+    public static final String ILLEGAL_TOKEN = JSON.toJSONString(new ResponseMsg<String>(HttpStatus.UNAUTHORIZED, "浠ょ墝鏉ユ簮闈炴硶"));
 
     public AuthInterceptor(SysService sysService) {
         this.sysService = sysService;
@@ -65,7 +65,7 @@
                 return WebHelper.writeStr2Page(response, NO_TOKEN);
             }
 
-            // 3.鑾峰彇鐢ㄦ埛浠ょ墝
+            // 3.鑾峰彇鐢ㄦ埛
             UserEntity ue = sysService.tokenService.getCurrentUser(request);
             if (ue == null) {
                 return WebHelper.writeStr2Page(response, NO_LOGIN);
diff --git a/src/main/java/com/moon/server/interceptor/ProxyFilter.java b/src/main/java/com/moon/server/interceptor/ProxyFilter.java
index d620fc3..5b14606 100644
--- a/src/main/java/com/moon/server/interceptor/ProxyFilter.java
+++ b/src/main/java/com/moon/server/interceptor/ProxyFilter.java
@@ -1,7 +1,18 @@
 package com.moon.server.interceptor;
 
+import com.moon.server.entity.all.StaticData;
+import com.moon.server.entity.sys.TokenEntity;
+import com.moon.server.entity.sys.UserEntity;
+import com.moon.server.helper.StringHelper;
+import com.moon.server.helper.WebHelper;
+import com.moon.server.service.all.SysService;
+
+import javax.annotation.Resource;
 import javax.servlet.*;
 import javax.servlet.annotation.WebFilter;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
 
 /**
  * 浠g悊杩囨护鍣�
@@ -10,16 +21,106 @@
  */
 @WebFilter(urlPatterns = {"/proxy/*"})
 public class ProxyFilter implements Filter {
+    @Resource
+    private SysService sysService;
+
     @Override
     public void init(FilterConfig filterConfig) {
     }
 
     @Override
     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) {
-        //
+        HttpServletRequest req = (HttpServletRequest) request;
+        HttpServletResponse res = (HttpServletResponse) response;
+        if (!check(req, res)) {
+            return;
+        }
+
+        int i = 0;
     }
 
     @Override
     public void destroy() {
     }
+
+    private boolean check(HttpServletRequest req, HttpServletResponse res) {
+        // 2.鑾峰彇浠ょ墝
+        String token = WebHelper.getToken(req);
+        if (StringHelper.isNull(token)) {
+            return WebHelper.writeStr2Page(res, AuthInterceptor.NO_TOKEN);
+        }
+
+        // 3.鑾峰彇鐢ㄦ埛
+        UserEntity ue = sysService.tokenService.getCurrentUser(req);
+        if (ue == null) {
+            return WebHelper.writeStr2Page(res, AuthInterceptor.NO_LOGIN);
+        }
+
+        // 4.鑾峰彇IP
+        String ip = WebHelper.getIpAddress(req);
+        if (StringHelper.isEmpty(ip)) {
+            return WebHelper.writeStr2Page(res, AuthInterceptor.IP_NULL);
+        }
+
+        // 5.妫�鏌ラ粦鍚嶅崟
+        if (!checkBlackList(ip, req)) {
+            return WebHelper.writeStr2Page(res, AuthInterceptor.BLACK_LIST);
+        }
+
+        // 6.admin璺宠繃鏉冮檺妫�娴�
+        if (StaticData.ADMIN.equals(ue.getUid())) {
+            return true;
+        }
+
+        // 7.妫�鏌ョ櫧鍚嶅崟
+        if (!checkWhiteList(ip, req)) {
+            // 妫�鏌P涓�鑷存��
+            if (!checkIpSource(ip, token)) {
+                return WebHelper.writeStr2Page(res, AuthInterceptor.ILLEGAL_TOKEN);
+            }
+        }
+
+        // 8.妫�鏌ョ敤鎴稩D鏄惁绂佺敤
+        if (sysService.tokenService.isUidDisable(ue)) {
+            return WebHelper.writeStr2Page(res, AuthInterceptor.USER_LOCK);
+        }
+
+        return true;
+    }
+
+    /**
+     * 妫�鏌ラ粦鍚嶅崟
+     */
+    private boolean checkBlackList(String ip, HttpServletRequest request) {
+        List<String> blackList = sysService.blacklistService.selectIpList(1);
+        if (blackList == null || blackList.isEmpty()) {
+            return true;
+        }
+        if (blackList.contains(ip)) {
+            return false;
+        }
+
+        return true;
+    }
+
+    /**
+     * 妫�鏌ョ櫧鍚嶅崟
+     */
+    private boolean checkWhiteList(String ip, HttpServletRequest request) {
+        List<String> whiteList = sysService.blacklistService.selectIpList(2);
+        if (whiteList == null || whiteList.isEmpty()) {
+            return false;
+        }
+
+        return whiteList.contains(ip);
+    }
+
+    /**
+     * 妫�鏌P涓�鑷存��
+     */
+    private boolean checkIpSource(String ip, String token) {
+        TokenEntity te = sysService.tokenService.getEntityByToken(token);
+
+        return te.getIp().equals(ip);
+    }
 }
diff --git a/src/main/java/com/moon/server/mapper/sys/ResMapper.java b/src/main/java/com/moon/server/mapper/sys/ResMapper.java
index 7a5861b..ae4c5e3 100644
--- a/src/main/java/com/moon/server/mapper/sys/ResMapper.java
+++ b/src/main/java/com/moon/server/mapper/sys/ResMapper.java
@@ -2,22 +2,21 @@
 
 import com.moon.server.entity.sys.ResEntity;
 import org.apache.ibatis.annotations.Mapper;
-import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.stereotype.Repository;
 
 import java.util.List;
 
 /**
- * 璧勬簮琛�
- * @author sws
- * @date 2022-09-28
+ * 璧勬簮
+ * @author WWW
  */
 @Mapper
-@ResponseBody
+@Repository
 public interface ResMapper {
     /**
      * 鏌ヨ璁板綍鏁�
      *
-     * @param name 琛ㄥ悕
+     * @param name 鍚嶇О
      * @return 璁板綍鏁�
      */
     public Integer selectCount(String name);
@@ -25,12 +24,27 @@
     /**
      * 鍒嗛〉鏌ヨ
      *
-     * @param name   琛ㄥ悕
+     * @param name   鍚嶇О
      * @param limit  璁板綍鏁�
      * @param offset 鍋忕Щ閲�
      * @return 鍒楄〃
      */
     public List<ResEntity> selectByPage(String name, Integer limit, Integer offset);
+
+    /**
+     * 鏌ヨ鎵�鏈�
+     *
+     * @return
+     */
+    public List<ResEntity> selectAll();
+
+    /**
+     * 鏍规嵁ID鏌ヨ
+     *
+     * @param id
+     * @return
+     */
+    public ResEntity selectById(int id);
 
     /**
      * 鏍规嵁瑙掕壊鏌ヨ璁板綍鏁�
@@ -53,10 +67,10 @@
     /**
      * 鎻掑叆涓�鏉�
      *
-     * @param resEntity
+     * @param entity
      * @return
      */
-    public Integer insertRes(ResEntity resEntity);
+    public Integer insert(ResEntity entity);
 
     /**
      * 鎻掑叆澶氭潯
@@ -64,7 +78,7 @@
      * @param list
      * @return
      */
-    public Integer insertRess(List<ResEntity> list);
+    public Integer inserts(List<ResEntity> list);
 
     /**
      * 鍒犻櫎涓�鏉�
@@ -72,7 +86,7 @@
      * @param id
      * @return
      */
-    public Integer deleteRes(int id);
+    public Integer delete(int id);
 
     /**
      * 鍒犻櫎澶氭潯
@@ -80,31 +94,21 @@
      * @param ids
      * @return
      */
-    public Integer deleteRess(List<Integer> ids);
+    public Integer deletes(List<Integer> ids);
 
     /**
      * 鏇存柊涓�鏉�
      *
-     * @param resEntity
+     * @param entity
      * @return
      */
-    public Integer updateRes(ResEntity resEntity);
+    public Integer update(ResEntity entity);
 
     /**
-     * 鏌ヨ鍗曟潯鏁版嵁
+     * 鏇存柊澶氭潯
      *
-     * @param id
+     * @param list
      * @return
      */
-    public ResEntity selectRes(int id);
-
-    /**
-     * 鏌ヨ鎵�鏈�
-     *
-     * @return
-     */
-    public List<ResEntity> selectResAll();
-
-
-
+    public Integer updates(List<ResEntity> list);
 }
diff --git a/src/main/java/com/moon/server/service/sys/ResService.java b/src/main/java/com/moon/server/service/sys/ResService.java
index e6cf0e7..a885396 100644
--- a/src/main/java/com/moon/server/service/sys/ResService.java
+++ b/src/main/java/com/moon/server/service/sys/ResService.java
@@ -9,9 +9,8 @@
 import java.util.List;
 
 /**
- * 浠ょ墝琛�
- * @author sws
- * @date 2022-09-28
+ * 璧勬簮
+ * @author WWW
  */
 @Service
 public class ResService implements ResMapper {
@@ -33,6 +32,16 @@
     }
 
     @Override
+    public List<ResEntity> selectAll() {
+        return resMapper.selectAll();
+    }
+
+    @Override
+    public ResEntity selectById(int id) {
+        return resMapper.selectById(id);
+    }
+
+    @Override
     public Integer selectCountForRole(Integer roleid) {
         return resMapper.selectCountForRole(roleid);
     }
@@ -43,38 +52,32 @@
     }
 
     @Override
-    public Integer insertRes(ResEntity resEntity) {
-        return resMapper.insertRes(resEntity);
+    public Integer insert(ResEntity entity) {
+        return resMapper.insert(entity);
     }
 
     @Override
-    public Integer insertRess(List<ResEntity> resEntity) {
-        return resMapper.insertRess(resEntity);
+    public Integer inserts(List<ResEntity> list) {
+        return resMapper.inserts(list);
     }
 
     @Override
-    public Integer deleteRes(int id) {
-        return resMapper.deleteRes(id);
+    public Integer delete(int id) {
+        return resMapper.delete(id);
     }
 
     @Override
-    public Integer deleteRess(List<Integer> ids) {
-        return resMapper.deleteRess(ids);
+    public Integer deletes(List<Integer> ids) {
+        return resMapper.deletes(ids);
     }
 
     @Override
-    public Integer updateRes(ResEntity resEntity) {
-        return resMapper.updateRes(resEntity);
+    public Integer update(ResEntity entity) {
+        return resMapper.update(entity);
     }
 
     @Override
-    public ResEntity selectRes(int id) {
-        return resMapper.selectRes(id);
+    public Integer updates(List<ResEntity> list) {
+        return resMapper.updates(list);
     }
-
-    @Override
-    public List<ResEntity> selectResAll() {
-        return resMapper.selectResAll();
-    }
-
 }
diff --git a/src/main/resources/mapper/sys/ResMapper.xml b/src/main/resources/mapper/sys/ResMapper.xml
index c111b38..3b117e4 100644
--- a/src/main/resources/mapper/sys/ResMapper.xml
+++ b/src/main/resources/mapper/sys/ResMapper.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.moon.server.mapper.sys.ResMapper">
     <select id="selectCount" resultType="java.lang.Integer">
         select count(*) from lf.sys_res
@@ -11,7 +11,7 @@
     </select>
 
     <select id="selectByPage" resultType="com.moon.server.entity.sys.ResEntity">
-        select a.*,fn_rec_query(a.depid, 'dep') depName,fn_rec_query(a.dirid, 'dir') dirName,fn_uname(a.create_user) createName,fn_uname(a.update_user) updateName from lf.sys_res a
+        select a.*, fn_uname(a.create_user) createName, fn_uname(a.update_user) updateName from lf.sys_res a
         <where>
             <if test="name != null">
                 upper(a.name) like #{name}
@@ -19,6 +19,14 @@
         </where>
         order by a.id desc
         limit #{limit} offset #{offset}
+    </select>
+
+    <select id="selectAll" resultType="com.moon.server.entity.sys.ResEntity">
+        select * from lf.sys_res order by id desc;
+    </select>
+
+    <select id="selectById" resultType="com.moon.server.entity.sys.ResEntity">
+        select * from lf.sys_res where id = #{id}
     </select>
 
     <select id="selectCountForRole" resultType="java.lang.Integer">
@@ -45,48 +53,44 @@
         limit #{limit} offset #{offset}
     </select>
 
-    <select id="selectResAll" resultType="com.moon.server.entity.sys.ResEntity">
-        select * from lf.sys_res order by id desc
-    </select>
-
-    <select id="selectRes" resultType="com.moon.server.entity.sys.ResEntity">
-        select * from lf.sys_res where id = #{id}
-    </select>
-
-    <insert id="insertRes" parameterType="com.moon.server.entity.data.DictEntity">
-       insert into lf.sys_res
-       (name,server,source,depid,dirid,code,descr,img,create_user,create_time,bak)
-       values
-       (#{name},#{server},#{source},#{depid},#{dirid},#{code},#{descr},#{img},#{createUser},now(),#{bak});
+    <insert id="insert" parameterType="com.moon.server.entity.sys.ResEntity">
+        insert into lf.sys_res
+        (name,type,status,manufacturer,url,test,proxy,descr,depid,dirid,img,guid,create_user,create_time,bak)
+        values
+        (#{name},#{type},#{status},#{manufacturer},#{url},#{test},#{proxy},#{descr},#{depid},#{dirid},#{img},#{guid},#{createUser},now(),#{bak})
     </insert>
 
-    <insert id="insertRess">
-       insert into lf.sys_res
-        (name,server,source,depid,dirid,code,descr,img,create_user,create_time,bak)
-       values
+    <insert id="inserts">
+        insert into lf.sys_res
+        (name,type,status,manufacturer,url,test,proxy,descr,depid,dirid,img,guid,create_user,create_time,bak)
+        values
         <foreach collection="list" item="item" index="index" separator=",">
-            #{item.name},#{item.server},#{item.source},#{item.depid},#{item.dirid},#{item.code},#{item.descr},#{item.img},#{item.createUser},now(),#{item.bak})
+            (#{item.name},#{item.type},#{item.status},#{item.manufacturer},#{item.url},#{item.test},#{item.proxy},#{item.descr},#{item.depid},#{item.dirid},#{item.img},#{item.guid},#{item.createUser},now(),#{item.bak})
         </foreach>
     </insert>
 
-    <delete id="deleteRes">
-        delete from lf.sys_role_res where resid = #{id};
-        delete from lf.sys_res where id = #{id};
+    <delete id="delete">
+        delete from lf.sys_res where id = #{id}
     </delete>
 
-    <delete id="deleteRess">
-        delete from lf.sys_role_res where resid in
-        <foreach item="id" collection="ids" index="index" open="(" separator="," close=")">
-            #{id}
-        </foreach>;
+    <delete id="deletes">
         delete from lf.sys_res where id in
         <foreach item="id" collection="ids" index="index" open="(" separator="," close=")">
             #{id}
-        </foreach>;
+        </foreach>
     </delete>
 
-    <update id="updateRes">
-    update lf.sys_res set name=#{name},server=#{server},source=#{source},depid=#{depid},dirid=#{dirid},code=#{code},descr=#{descr},img=#{img},
-    update_user=#{updateUser},update_time=now(),bak=#{bak} where id=#{id}
+    <update id="update">
+        update lf.sys_res
+        set name=#{name},type=#{type},status=#{status},manufacturer=#{manufacturer},url=#{url},test=#{test},proxy=#{proxy},descr=#{descr},depid=#{depid},dirid=#{dirid},img=#{img},guid=#{guid},update_user=#{updateUser},update_time=now(),bak=#{bak}
+        where id=#{id}
+    </update>
+
+    <update id="updates">
+        <foreach collection="list" item="item" index="index" separator=";">
+            update lf.sys_res
+            set name=#{item.name},type=#{item.type},status=#{item.status},manufacturer=#{item.manufacturer},url=#{item.url},test=#{item.test},proxy=#{item.proxy},descr=#{item.descr},depid=#{item.depid},dirid=#{item.dirid},img=#{item.img},guid=#{item.guid},update_user=#{item.updateUser},update_time=now(),bak=#{item.bak}
+            where id = #{item.id}
+        </foreach>
     </update>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3