Browse Source

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	authorize-start/src/main/resources/bootstrap.yml
李进 2 years ago
parent
commit
246fc83f0b
49 changed files with 275 additions and 42 deletions
  1. 8 0
      authorize-api-service/pom.xml
  2. 56 0
      authorize-api-service/src/main/java/com/xy/service/impl/CaptchaCacheServiceRedisImpl.java
  3. 108 0
      authorize-api-service/src/main/java/com/xy/service/impl/CaptchaServiceImpl.java
  4. 22 0
      authorize-api/src/main/java/com/xy/service/CaptchaService.java
  5. 10 0
      authorize-start/pom.xml
  6. 1 0
      authorize-start/src/main/resources/META-INF/services/com.anji.captcha.service.CaptchaCacheService
  7. 66 0
      authorize-start/src/main/resources/application.properties
  8. 4 2
      authorize-start/src/main/resources/bootstrap.yml
  9. BIN
      authorize-start/src/main/resources/images/jigsaw/original/bg1.png
  10. BIN
      authorize-start/src/main/resources/images/jigsaw/original/bg10.png
  11. BIN
      authorize-start/src/main/resources/images/jigsaw/original/bg11.png
  12. BIN
      authorize-start/src/main/resources/images/jigsaw/original/bg12.png
  13. BIN
      authorize-start/src/main/resources/images/jigsaw/original/bg13.png
  14. BIN
      authorize-start/src/main/resources/images/jigsaw/original/bg14.png
  15. BIN
      authorize-start/src/main/resources/images/jigsaw/original/bg15.png
  16. BIN
      authorize-start/src/main/resources/images/jigsaw/original/bg16.png
  17. BIN
      authorize-start/src/main/resources/images/jigsaw/original/bg17.png
  18. BIN
      authorize-start/src/main/resources/images/jigsaw/original/bg18.png
  19. BIN
      authorize-start/src/main/resources/images/jigsaw/original/bg19.png
  20. BIN
      authorize-start/src/main/resources/images/jigsaw/original/bg2.png
  21. BIN
      authorize-start/src/main/resources/images/jigsaw/original/bg20.png
  22. BIN
      authorize-start/src/main/resources/images/jigsaw/original/bg3.png
  23. BIN
      authorize-start/src/main/resources/images/jigsaw/original/bg4.png
  24. BIN
      authorize-start/src/main/resources/images/jigsaw/original/bg5.png
  25. BIN
      authorize-start/src/main/resources/images/jigsaw/original/bg6.png
  26. BIN
      authorize-start/src/main/resources/images/jigsaw/original/bg7.png
  27. BIN
      authorize-start/src/main/resources/images/jigsaw/original/bg8.png
  28. BIN
      authorize-start/src/main/resources/images/jigsaw/original/bg9.png
  29. BIN
      authorize-start/src/main/resources/images/jigsaw/slidingBlock/1.png
  30. BIN
      authorize-start/src/main/resources/images/jigsaw/slidingBlock/10.png
  31. BIN
      authorize-start/src/main/resources/images/jigsaw/slidingBlock/11.png
  32. BIN
      authorize-start/src/main/resources/images/jigsaw/slidingBlock/2.png
  33. BIN
      authorize-start/src/main/resources/images/jigsaw/slidingBlock/3.png
  34. BIN
      authorize-start/src/main/resources/images/jigsaw/slidingBlock/4.png
  35. BIN
      authorize-start/src/main/resources/images/jigsaw/slidingBlock/5.png
  36. BIN
      authorize-start/src/main/resources/images/jigsaw/slidingBlock/6.png
  37. BIN
      authorize-start/src/main/resources/images/jigsaw/slidingBlock/7.png
  38. BIN
      authorize-start/src/main/resources/images/jigsaw/slidingBlock/8.png
  39. BIN
      authorize-start/src/main/resources/images/jigsaw/slidingBlock/9.png
  40. BIN
      authorize-start/src/main/resources/images/pic-click/bg1.png
  41. BIN
      authorize-start/src/main/resources/images/pic-click/bg2.png
  42. BIN
      authorize-start/src/main/resources/images/pic-click/bg3.png
  43. BIN
      authorize-start/src/main/resources/images/pic-click/bg4.png
  44. BIN
      authorize-start/src/main/resources/images/pic-click/bg5.png
  45. BIN
      authorize-start/src/main/resources/images/pic-click/bg6.png
  46. BIN
      authorize-start/src/main/resources/images/pic-click/bg7.png
  47. BIN
      authorize-start/src/main/resources/images/pic-click/bg8.png
  48. BIN
      authorize-start/src/main/resources/images/pic-click/bg9.png
  49. 0 40
      authorize-start/src/main/resources/mapper/SysDeptRelationMapper.xml

+ 8 - 0
authorize-api-service/pom.xml

@@ -48,5 +48,13 @@
             <artifactId>xy-server-web</artifactId>
             <version>1.0</version>
         </dependency>
+
+        <!--验证码模块 -->
+        <dependency>
+            <groupId>com.xy</groupId>
+            <artifactId>xy-captcha</artifactId>
+            <version>1.0</version>
+        </dependency>
+
     </dependencies>
 </project>

+ 56 - 0
authorize-api-service/src/main/java/com/xy/service/impl/CaptchaCacheServiceRedisImpl.java

@@ -0,0 +1,56 @@
+package com.xy.service.impl;
+
+import com.anji.captcha.service.CaptchaCacheService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.stereotype.Component;
+
+import java.util.concurrent.TimeUnit;
+
+/**
+ * 对于分布式部署的应用,我们建议应用自己实现CaptchaCacheService,比如用Redis,参考service/spring-boot代码示例。
+ * 如果应用是单点的,也没有使用redis,那默认使用内存。
+ * 内存缓存只适合单节点部署的应用,否则验证码生产与验证在节点之间信息不同步,导致失败。
+ * <p>
+ * ☆☆☆ SPI: 在resources目录新建META-INF.services文件夹(两层),参考当前服务resources。
+ *
+ * @author lide1202@hotmail.com
+ * @Title: 使用redis缓存
+ * @date 2020-05-12
+ */
+@Component
+public class CaptchaCacheServiceRedisImpl implements CaptchaCacheService {
+
+    @Override
+    public String type() {
+        return "redis";
+    }
+
+    @Autowired
+    private StringRedisTemplate stringRedisTemplate;
+
+    @Override
+    public void set(String key, String value, long expiresInSeconds) {
+        stringRedisTemplate.opsForValue().set(key, value, expiresInSeconds, TimeUnit.SECONDS);
+    }
+
+    @Override
+    public boolean exists(String key) {
+        return stringRedisTemplate.hasKey(key);
+    }
+
+    @Override
+    public void delete(String key) {
+        stringRedisTemplate.delete(key);
+    }
+
+    @Override
+    public String get(String key) {
+        return stringRedisTemplate.opsForValue().get(key);
+    }
+
+    @Override
+    public Long increment(String key, long val) {
+        return stringRedisTemplate.opsForValue().increment(key, val);
+    }
+}

+ 108 - 0
authorize-api-service/src/main/java/com/xy/service/impl/CaptchaServiceImpl.java

@@ -0,0 +1,108 @@
+package com.xy.service.impl;
+
+import cn.hutool.core.util.StrUtil;
+import com.anji.captcha.model.common.RepCodeEnum;
+import com.anji.captcha.model.common.ResponseModel;
+import com.anji.captcha.model.vo.CaptchaVO;
+import com.anji.captcha.util.StringUtils;
+import com.xy.error.CommRuntimeException;
+import com.xy.service.CaptchaService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import javax.servlet.http.HttpServletRequest;
+
+/***
+ * 验证码服务类
+ * @author 谭斌
+ * @date 2022/12/15 14:10
+ */
+@Api(tags = "滑块验证码操作")
+@Service
+@RequiredArgsConstructor
+public class CaptchaServiceImpl implements CaptchaService {
+
+    private final com.anji.captcha.service.CaptchaService captchaService;
+
+    @Override
+    public Boolean reVerification(String captchaVerification) {
+        CaptchaVO captchaVO = new CaptchaVO();
+        captchaVO.setCaptchaVerification(captchaVerification);
+        ResponseModel response = captchaService.verification(captchaVO);
+        if (response.isSuccess() == false) {
+            String repCode = response.getRepCode();
+            //验证码校验失败,返回信息告诉前端
+            throw new CommRuntimeException(getRepDesc(repCode));
+        }
+        return Boolean.TRUE;
+    }
+
+    /**
+     * 获取验证码
+     *
+     * @param data
+     * @param request
+     * @return
+     */
+    @ApiOperation(value = "获取验证码", notes = "获取验证码")
+    @PostMapping("/get")
+    public ResponseModel get(@RequestBody CaptchaVO data, HttpServletRequest request) {
+        assert request.getRemoteHost() != null;
+        data.setBrowserInfo(getRemoteId(request));
+        return captchaService.get(data);
+    }
+
+    /**
+     * 验证码校验
+     *
+     * @param data
+     * @param request
+     * @return
+     */
+    @ApiOperation(value = "验证码校验", notes = "验证码校验")
+    @PostMapping("/check")
+    public ResponseModel check(@RequestBody CaptchaVO data, HttpServletRequest request) {
+        data.setBrowserInfo(getRemoteId(request));
+        return captchaService.check(data);
+    }
+
+
+    /**
+     * 根据code获取描述
+     *
+     * @param code
+     * @return
+     */
+    
+    public static String getRepDesc(String code) {
+        RepCodeEnum[] repCodeEnums = RepCodeEnum.values();
+        for (RepCodeEnum repCodeEnum : repCodeEnums) {
+            if (repCodeEnum.getCode().equals(code)) {
+                return repCodeEnum.getDesc();
+            }
+        }
+        return StrUtil.EMPTY;
+    }
+
+    public static final String getRemoteId(HttpServletRequest request) {
+        String xfwd = request.getHeader("X-Forwarded-For");
+        String ip = getRemoteIpFromXfwd(xfwd);
+        String ua = request.getHeader("user-agent");
+        if (StringUtils.isNotBlank(ip)) {
+            return ip + ua;
+        }
+        return request.getRemoteAddr() + ua;
+    }
+
+    private static String getRemoteIpFromXfwd(String xfwd) {
+        if (StringUtils.isNotBlank(xfwd)) {
+            String[] ipList = xfwd.split(",");
+            return StringUtils.trim(ipList[0]);
+        }
+        return null;
+    }
+}

+ 22 - 0
authorize-api/src/main/java/com/xy/service/CaptchaService.java

@@ -0,0 +1,22 @@
+package com.xy.service;
+
+import com.xy.annotate.RestMappingController;
+
+/***
+ * 验证码服务
+ * @author 谭斌
+ * @date 2022/12/15 14:05
+ */
+@RestMappingController("xy-captcha")
+public interface CaptchaService {
+
+    /**
+     * 验证码二次校验 后端用
+     *
+     * @param captchaVerification
+     * @return
+     */
+    Boolean reVerification(String captchaVerification);
+
+ 
+}

+ 10 - 0
authorize-start/pom.xml

@@ -45,6 +45,16 @@
             <artifactId>plumelog-log4j2</artifactId>
             <version>3.5.3</version>
         </dependency>
+
+
+        <!--滑块验证码
+        <dependency>
+            <groupId>com.anji-plus</groupId>
+            <artifactId>spring-boot-starter-captcha</artifactId>
+            <version>1.3.0</version>
+        </dependency>
+        -->
+
     </dependencies>
 
     <build>

+ 1 - 0
authorize-start/src/main/resources/META-INF/services/com.anji.captcha.service.CaptchaCacheService

@@ -0,0 +1 @@
+com.xy.service.impl.CaptchaCacheServiceRedisImpl

+ 66 - 0
authorize-start/src/main/resources/application.properties

@@ -0,0 +1,66 @@
+#spring.application.name=captcha-service
+#server.port=8080
+# \u6ED1\u52A8\u9A8C\u8BC1\uFF0C\u5E95\u56FE\u8DEF\u5F84\uFF0C\u4E0D\u914D\u7F6E\u5C06\u4F7F\u7528\u9ED8\u8BA4\u56FE\u7247
+# \u652F\u6301\u5168\u8DEF\u5F84
+# \u652F\u6301\u9879\u76EE\u8DEF\u5F84,\u4EE5classpath:\u5F00\u5934,\u53D6resource\u76EE\u5F55\u4E0B\u8DEF\u5F84,\u4F8B\uFF1Aclasspath:images/jigsaw
+aj.captcha.jigsaw=classpath:images/jigsaw
+# \u6ED1\u52A8\u9A8C\u8BC1\uFF0C\u5E95\u56FE\u8DEF\u5F84\uFF0C\u4E0D\u914D\u7F6E\u5C06\u4F7F\u7528\u9ED8\u8BA4\u56FE\u7247
+# \u652F\u6301\u5168\u8DEF\u5F84
+# \u652F\u6301\u9879\u76EE\u8DEF\u5F84,\u4EE5classpath:\u5F00\u5934,\u53D6resource\u76EE\u5F55\u4E0B\u8DEF\u5F84,\u4F8B\uFF1Aclasspath:images/pic-click
+aj.captcha.pic-click=classpath:images/pic-click
+# \u5BF9\u4E8E\u5206\u5E03\u5F0F\u90E8\u7F72\u7684\u5E94\u7528\uFF0C\u6211\u4EEC\u5EFA\u8BAE\u5E94\u7528\u81EA\u5DF1\u5B9E\u73B0CaptchaCacheService\uFF0C\u6BD4\u5982\u7528Redis\u6216\u8005memcache\uFF0C
+# \u53C2\u8003CaptchaCacheServiceRedisImpl.java
+# \u5982\u679C\u5E94\u7528\u662F\u5355\u70B9\u7684\uFF0C\u4E5F\u6CA1\u6709\u4F7F\u7528redis\uFF0C\u90A3\u9ED8\u8BA4\u4F7F\u7528\u5185\u5B58\u3002
+# \u5185\u5B58\u7F13\u5B58\u53EA\u9002\u5408\u5355\u8282\u70B9\u90E8\u7F72\u7684\u5E94\u7528\uFF0C\u5426\u5219\u9A8C\u8BC1\u7801\u751F\u4EA7\u4E0E\u9A8C\u8BC1\u5728\u8282\u70B9\u4E4B\u95F4\u4FE1\u606F\u4E0D\u540C\u6B65\uFF0C\u5BFC\u81F4\u5931\u8D25\u3002
+# \uFF01\uFF01\uFF01 \u6CE8\u610F\u5566\uFF0C\u5982\u679C\u5E94\u7528\u6709\u4F7F\u7528spring-boot-starter-data-redis\uFF0C
+# \u8BF7\u6253\u5F00CaptchaCacheServiceRedisImpl.java\u6CE8\u91CA\u3002
+# redis ----->  SPI\uFF1A \u5728resources\u76EE\u5F55\u65B0\u5EFAMETA-INF.services\u6587\u4EF6\u5939(\u4E24\u5C42)\uFF0C\u53C2\u8003\u5F53\u524D\u670D\u52A1resources\u3002
+# \u7F13\u5B58local/redis...
+aj.captcha.cache-type=redis
+# local\u7F13\u5B58\u7684\u9608\u503C,\u8FBE\u5230\u8FD9\u4E2A\u503C\uFF0C\u6E05\u9664\u7F13\u5B58
+#aj.captcha.cache-number=1000
+# local\u5B9A\u65F6\u6E05\u9664\u8FC7\u671F\u7F13\u5B58(\u5355\u4F4D\u79D2),\u8BBE\u7F6E\u4E3A0\u4EE3\u8868\u4E0D\u6267\u884C
+#aj.captcha.timing-clear=180
+spring.redis.host=119.96.213.127
+spring.redis.port=9008
+spring.redis.password=xy20220101
+spring.redis.database=0
+spring.redis.timeout=6000
+# \u9A8C\u8BC1\u7801\u7C7B\u578Bdefault\u4E24\u79CD\u90FD\u5B9E\u4F8B\u5316\u3002 BLOCKPUZZLE \u6ED1\u5757\u62FC\u56FE\uFF0CclickWord\uFF0C\u6587\u5B57\u70B9\u9009
+aj.captcha.type=default
+# \u6C49\u5B57\u7EDF\u4E00\u4F7F\u7528Unicode,\u4FDD\u8BC1\u7A0B\u5E8F\u901A\u8FC7@value\u8BFB\u53D6\u5230\u662F\u4E2D\u6587\uFF0C\u53EF\u901A\u8FC7\u8FD9\u4E2A\u5728\u7EBF\u8F6C\u6362
+# https://tool.chinaz.com/tools/unicode.aspx \u4E2D\u6587\u8F6CUnicode
+# \u53F3\u4E0B\u89D2\u6C34\u5370\u6587\u5B57(\u6211\u7684\u6C34\u5370)
+aj.captcha.water-mark=\u5174\u5143\u7F51\u7EDC
+# \u53F3\u4E0B\u89D2\u6C34\u5370\u5B57\u4F53(\u4E0D\u914D\u7F6E\u65F6\uFF0C\u9ED8\u8BA4\u4F7F\u7528\u6587\u6CC9\u9A7F\u6B63\u9ED1)
+# \u7531\u4E8E\u5B8B\u4F53\u7B49\u6D89\u53CA\u5230\u7248\u6743\uFF0C\u6211\u4EECjar\u4E2D\u5185\u7F6E\u4E86\u5F00\u6E90\u5B57\u4F53\u3010\u6587\u6CC9\u9A7F\u6B63\u9ED1\u3011
+# \u65B9\u5F0F\u4E00\uFF1A\u76F4\u63A5\u914D\u7F6EOS\u5C42\u7684\u73B0\u6709\u7684\u5B57\u4F53\u540D\u79F0\uFF0C\u6BD4\u5982\uFF1A\u5B8B\u4F53
+# \u65B9\u5F0F\u4E8C\uFF1A\u81EA\u5B9A\u4E49\u7279\u5B9A\u5B57\u4F53\uFF0C\u8BF7\u5C06\u5B57\u4F53\u653E\u5230\u5DE5\u7A0Bresources\u4E0Bfonts\u6587\u4EF6\u5939\uFF0C\u652F\u6301ttf\ttc\otf\u5B57\u4F53
+# aj.captcha.water-font=WenQuanZhengHei.ttf
+# \u70B9\u9009\u6587\u5B57\u9A8C\u8BC1\u7801\u7684\u6587\u5B57\u5B57\u4F53(\u6587\u6CC9\u9A7F\u6B63\u9ED1)
+# aj.captcha.font-type=WenQuanZhengHei.ttf
+# \u6821\u9A8C\u6ED1\u52A8\u62FC\u56FE\u5141\u8BB8\u8BEF\u5DEE\u504F\u79FB\u91CF(\u9ED8\u8BA45\u50CF\u7D20)
+aj.captcha.slip-offset=5
+# aes\u52A0\u5BC6\u5750\u6807\u5F00\u542F\u6216\u8005\u7981\u7528(true|false)
+aj.captcha.aes-status=true
+# \u6ED1\u52A8\u5E72\u6270\u9879(0/1/2)
+aj.captcha.interference-options=0
+#\u70B9\u9009\u5B57\u4F53\u6837\u5F0F \u9ED8\u8BA4Font.BOLD
+aj.captcha.font-style=1
+#\u70B9\u9009\u5B57\u4F53\u5B57\u4F53\u5927\u5C0F
+aj.captcha.font-size=25
+#\u70B9\u9009\u6587\u5B57\u4E2A\u6570,\u5B58\u5728\u95EE\u9898\uFF0C\u6682\u4E0D\u652F\u6301\u4FEE\u6539
+#aj.captcha.click-word-count=4
+aj.captcha.history-data-clear-enable=false
+# \u63A5\u53E3\u8BF7\u6C42\u6B21\u6570\u4E00\u5206\u949F\u9650\u5236\u662F\u5426\u5F00\u542F true|false
+aj.captcha.req-frequency-limit-enable=false
+# \u9A8C\u8BC1\u5931\u8D255\u6B21\uFF0Cget\u63A5\u53E3\u9501\u5B9A
+aj.captcha.req-get-lock-limit=5
+# \u9A8C\u8BC1\u5931\u8D25\u540E\uFF0C\u9501\u5B9A\u65F6\u95F4\u95F4\u9694,s
+aj.captcha.req-get-lock-seconds=360
+# get\u63A5\u53E3\u4E00\u5206\u949F\u5185\u8BF7\u6C42\u6570\u9650\u5236
+aj.captcha.req-get-minute-limit=30
+# check\u63A5\u53E3\u4E00\u5206\u949F\u5185\u8BF7\u6C42\u6570\u9650\u5236
+aj.captcha.req-check-minute-limit=30
+# verify\u63A5\u53E3\u4E00\u5206\u949F\u5185\u8BF7\u6C42\u6570\u9650\u5236(\u6682\u7528\u4E0D\u4E0A\uFF0C\u53EF\u540E\u53F0\u76F4\u63A5\u8C03\u7528captchaService)
+#aj.captcha.req-verify-minute-limit=30

+ 4 - 2
authorize-start/src/main/resources/bootstrap.yml

@@ -36,8 +36,10 @@ sa-token:
   enablePermission: false
   # 需要过滤的url
   exclude-paths:
-    - /**/sysWorkUser/login
-    - /**/sysWorkUser/register
+    - /**/sys-system-user/login
+    - /**/sys-system-user/register
+    - /**/captcha/**
+    - /**/xy-captcha/**
     - /**/actuator/dynamic-tp
 
 logging:

BIN
authorize-start/src/main/resources/images/jigsaw/original/bg1.png


BIN
authorize-start/src/main/resources/images/jigsaw/original/bg10.png


BIN
authorize-start/src/main/resources/images/jigsaw/original/bg11.png


BIN
authorize-start/src/main/resources/images/jigsaw/original/bg12.png


BIN
authorize-start/src/main/resources/images/jigsaw/original/bg13.png


BIN
authorize-start/src/main/resources/images/jigsaw/original/bg14.png


BIN
authorize-start/src/main/resources/images/jigsaw/original/bg15.png


BIN
authorize-start/src/main/resources/images/jigsaw/original/bg16.png


BIN
authorize-start/src/main/resources/images/jigsaw/original/bg17.png


BIN
authorize-start/src/main/resources/images/jigsaw/original/bg18.png


BIN
authorize-start/src/main/resources/images/jigsaw/original/bg19.png


BIN
authorize-start/src/main/resources/images/jigsaw/original/bg2.png


BIN
authorize-start/src/main/resources/images/jigsaw/original/bg20.png


BIN
authorize-start/src/main/resources/images/jigsaw/original/bg3.png


BIN
authorize-start/src/main/resources/images/jigsaw/original/bg4.png


BIN
authorize-start/src/main/resources/images/jigsaw/original/bg5.png


BIN
authorize-start/src/main/resources/images/jigsaw/original/bg6.png


BIN
authorize-start/src/main/resources/images/jigsaw/original/bg7.png


BIN
authorize-start/src/main/resources/images/jigsaw/original/bg8.png


BIN
authorize-start/src/main/resources/images/jigsaw/original/bg9.png


BIN
authorize-start/src/main/resources/images/jigsaw/slidingBlock/1.png


BIN
authorize-start/src/main/resources/images/jigsaw/slidingBlock/10.png


BIN
authorize-start/src/main/resources/images/jigsaw/slidingBlock/11.png


BIN
authorize-start/src/main/resources/images/jigsaw/slidingBlock/2.png


BIN
authorize-start/src/main/resources/images/jigsaw/slidingBlock/3.png


BIN
authorize-start/src/main/resources/images/jigsaw/slidingBlock/4.png


BIN
authorize-start/src/main/resources/images/jigsaw/slidingBlock/5.png


BIN
authorize-start/src/main/resources/images/jigsaw/slidingBlock/6.png


BIN
authorize-start/src/main/resources/images/jigsaw/slidingBlock/7.png


BIN
authorize-start/src/main/resources/images/jigsaw/slidingBlock/8.png


BIN
authorize-start/src/main/resources/images/jigsaw/slidingBlock/9.png


BIN
authorize-start/src/main/resources/images/pic-click/bg1.png


BIN
authorize-start/src/main/resources/images/pic-click/bg2.png


BIN
authorize-start/src/main/resources/images/pic-click/bg3.png


BIN
authorize-start/src/main/resources/images/pic-click/bg4.png


BIN
authorize-start/src/main/resources/images/pic-click/bg5.png


BIN
authorize-start/src/main/resources/images/pic-click/bg6.png


BIN
authorize-start/src/main/resources/images/pic-click/bg7.png


BIN
authorize-start/src/main/resources/images/pic-click/bg8.png


BIN
authorize-start/src/main/resources/images/pic-click/bg9.png


+ 0 - 40
authorize-start/src/main/resources/mapper/SysDeptRelationMapper.xml

@@ -1,40 +0,0 @@
-<?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">
-<mapper namespace="com.xy.mapper.SysDeptRelationMapper">
-    <!-- 删除部门节点关系	-->
-    <delete id="deleteDeptRelations">
-        DELETE
-        FROM sys_dept_relation
-        WHERE descendant IN (SELECT temp.descendant
-        FROM (SELECT descendant FROM sys_dept_relation WHERE ancestor = #{descendant}) temp)
-        AND ancestor IN (SELECT temp.ancestor
-        FROM (SELECT ancestor
-        FROM sys_dept_relation
-        WHERE descendant = #{descendant}
-        AND ancestor != descendant) temp)
-    </delete>
-
-    <!--删除部门节点关系,同时删除所有关联此部门子节点的部门关系-->
-    <delete id="deleteDeptRelationsById">
-        DELETE
-        FROM sys_dept_relation
-        WHERE descendant IN (
-        SELECT temp.descendant
-        FROM (
-        SELECT descendant
-        FROM sys_dept_relation
-        WHERE ancestor = #{id}
-        ) temp
-        )
-    </delete>
-
-    <!-- 新增部门节点关系	-->
-    <insert id="insertDeptRelations">
-        INSERT INTO sys_dept_relation (ancestor, descendant)
-        SELECT a.ancestor, b.descendant
-        FROM sys_dept_relation a
-        CROSS JOIN sys_dept_relation b
-        WHERE a.descendant = #{ancestor}
-        AND b.ancestor = #{descendant}
-    </insert>
-</mapper>