PC 2 лет назад
Родитель
Сommit
08bab4528b
19 измененных файлов с 416 добавлено и 174 удалено
  1. 2 7
      sckw-auth/src/main/java/com/sckw/auth/service/impl/IndexServiceImpl.java
  2. 2 2
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/exception/GlobalSystemExceptionHandler.java
  3. 10 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/base/BaseModel.java
  4. 3 1
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/PasswordUtils.java
  5. 6 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/web/constant/HttpStatus.java
  6. 52 0
      sckw-common/sckw-common-redis/src/main/java/com/sckw/redis/configure/RedissonConfiguration.java
  7. 14 0
      sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/RemoteUserService.java
  8. 39 0
      sckw-modules/pom.xml
  9. 10 0
      sckw-modules/sckw-example/src/main/java/com/sckw/example/dubbo/RemoteUserService1Impl.java
  10. 0 52
      sckw-modules/sckw-system/pom.xml
  11. 1 2
      sckw-modules/sckw-system/src/main/java/com/sckw/system/SystemApplication.java
  12. 6 5
      sckw-modules/sckw-system/src/main/java/com/sckw/system/controller/KwsUserController.java
  13. 98 79
      sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteUserServiceImpl.java
  14. 13 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/handle/CustomMetaHandle.java
  15. 34 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/handle/MyConfig.java
  16. 29 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/req/ForgetPasswordReqVo.java
  17. 4 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/req/UpdatePasswordReqVo.java
  18. 81 26
      sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsUserService.java
  19. 12 0
      sckw-modules/sckw-system/src/main/resources/bootstrap-dev.yml

+ 2 - 7
sckw-auth/src/main/java/com/sckw/auth/service/impl/IndexServiceImpl.java

@@ -37,15 +37,10 @@ public class IndexServiceImpl implements IIndexService {
     @Override
     @Override
     public LoginResDto login(LoginReqDto reqDto) {
     public LoginResDto login(LoginReqDto reqDto) {
         /**1、根据账号密码或者手机号校验码登录,密码加密处理后面做*/
         /**1、根据账号密码或者手机号校验码登录,密码加密处理后面做*/
-        KwsUser kwsUser = remoteUserService.getUserByAccount(reqDto.getUsername());
-        if (Objects.isNull(kwsUser)) {
-            //抛异常
-        }
+        KwsUser kwsUser = remoteUserService.checkUserBase(reqDto.getUsername());
 
 
         //密码校验
         //密码校验
-        if (!PasswordUtils.entryptPassword(reqDto.getPassword()).equals(kwsUser.getPassword())) {
-            //抛异常
-        }
+        remoteUserService.checkPassword(reqDto.getPassword(), kwsUser.getPassword());
 
 
 
 
         /**2、登录成功,查询用户机构*/
         /**2、登录成功,查询用户机构*/

+ 2 - 2
sckw-common/sckw-common-core/src/main/java/com/sckw/core/exception/GlobalSystemExceptionHandler.java

@@ -2,12 +2,12 @@ package com.sckw.core.exception;
 
 
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.core.web.response.HttpResult;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.annotation.ControllerAdvice;
 import org.springframework.web.bind.annotation.ExceptionHandler;
 import org.springframework.web.bind.annotation.ExceptionHandler;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
 
 
 @Slf4j
 @Slf4j
-@ControllerAdvice
+@RestControllerAdvice
 public class GlobalSystemExceptionHandler {
 public class GlobalSystemExceptionHandler {
 
 
     @ExceptionHandler(value = SystemException.class)
     @ExceptionHandler(value = SystemException.class)

+ 10 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/base/BaseModel.java

@@ -35,6 +35,11 @@ public class BaseModel implements Serializable {
 	 */
 	 */
 	private Long createBy;
 	private Long createBy;
 
 
+	/**
+	 * 创建人姓名
+	 */
+//	private String createByName;
+
 	/**
 	/**
 	 * 创建时间
 	 * 创建时间
 	 */
 	 */
@@ -46,6 +51,11 @@ public class BaseModel implements Serializable {
 	 */
 	 */
 	private Long updateBy;
 	private Long updateBy;
 
 
+	/**
+	 * 跟新人姓名
+	 */
+//	private String updateByName;
+
 	/**
 	/**
 	 * 更新时间
 	 * 更新时间
 	 */
 	 */

+ 3 - 1
sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/PasswordUtils.java

@@ -104,11 +104,13 @@ public class PasswordUtils {
     }
     }
 
 
     public static void main(String[] args){
     public static void main(String[] args){
-      String password =  PasswordUtils.entryptPassword( PasswordUtils.md5("123456"));
+      String password =  PasswordUtils.entryptPassword(PasswordUtils.md5("czh"));
       String md5 = PasswordUtils.md5("123456");
       String md5 = PasswordUtils.md5("123456");
 	  System.out.println(password);
 	  System.out.println(password);
 	  System.out.println(md5);
 	  System.out.println(md5);
 	  System.out.println(validatePassword(md5, password));
 	  System.out.println(validatePassword(md5, password));
+//        System.out.println(PasswordUtils.md5("czh"));
+//        System.out.println(PasswordUtils.entryptPassword(PasswordUtils.md5("czh")));
 
 
     }
     }
 }
 }

+ 6 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/web/constant/HttpStatus.java

@@ -29,6 +29,7 @@ public class HttpStatus {
     public static final int PARAMETERS_MISSING_CODE = 60600;
     public static final int PARAMETERS_MISSING_CODE = 60600;
     public static final String ACCOUNT_MISSING = "用户账号必填!";
     public static final String ACCOUNT_MISSING = "用户账号必填!";
     public static final String ACCOUNT_EXISTS = "用户账号已存在!";
     public static final String ACCOUNT_EXISTS = "用户账号已存在!";
+    public static final String PWD_MISSING = "密码不能为空!";
 
 
 
 
     /**其他自定义状态码*/
     /**其他自定义状态码*/
@@ -93,8 +94,13 @@ public class HttpStatus {
 
 
     /**
     /**
      * 自定义状态码,该状态码没有特殊含义,只是提供一个状态标识(目前提供9个,可自行扩展)
      * 自定义状态码,该状态码没有特殊含义,只是提供一个状态标识(目前提供9个,可自行扩展)
+     * 现作为校验失败的一类异常码
      */
      */
     public static final int CODE_10301 = 10301;
     public static final int CODE_10301 = 10301;
+    public static final String PASSWD_ERROR = "密码不正确";
+    public static final String PASSWD_REPEAT = "新密码与旧密码不能一样!";
+    public static final String CAPTCHA_ERROR = "验证码输入错误";
+
 
 
     /**数据库的操作失败*/
     /**数据库的操作失败*/
     public static final int CODE_60601 = 60601;
     public static final int CODE_60601 = 60601;

+ 52 - 0
sckw-common/sckw-common-redis/src/main/java/com/sckw/redis/configure/RedissonConfiguration.java

@@ -0,0 +1,52 @@
+package com.sckw.redis.configure;
+
+import org.redisson.Redisson;
+import org.redisson.api.RedissonClient;
+import org.redisson.codec.JsonJacksonCodec;
+import org.redisson.config.Config;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @Author xxx
+ * @DATE 2022/3/27 11:13
+ */
+@Configuration
+public class RedissonConfiguration {
+
+    @Value("${spring.data.redis.host}")
+    private String address;
+
+    @Value("${spring.data.redis.port}")
+    private String port;
+
+    @Value("${spring.data.redis.password}")
+    private String password;
+
+    @Value("${spring.data.redis.database}")
+    private String database;
+
+    @Value("${spring.data.redis.timeout}")
+    private String timeout;
+
+    @Bean
+    public RedissonClient redisson() {
+        Config config = new Config();
+        config.setCodec(new JsonJacksonCodec());
+        config.useSingleServer()
+                .setAddress(address())
+                .setPassword(password)
+                .setDatabase(Integer.parseInt(database))
+                .setConnectTimeout(Integer.parseInt(timeout));
+        return Redisson.create(config);
+    }
+
+    /**
+     * 生成address
+     * @return
+     */
+    private String address() {
+        return "redis://" + address + ":" + port;
+    }
+}

+ 14 - 0
sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/RemoteUserService.java

@@ -43,4 +43,18 @@ public interface RemoteUserService {
      * 注册
      * 注册
      */
      */
     void register(KwsUser kwsUser);
     void register(KwsUser kwsUser);
+
+    /**
+     * 校验密码
+     * @param password 入参传的密码
+     * @param currentPwd 当前用户的密码
+     */
+    void checkPassword(String password, String currentPwd);
+
+    /**
+     * 检验用户信息
+     * @param username
+     * @return
+     */
+    KwsUser checkUserBase(String username);
 }
 }

+ 39 - 0
sckw-modules/pom.xml

@@ -30,11 +30,50 @@
             <groupId>org.springframework.boot</groupId>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-web</artifactId>
             <artifactId>spring-boot-starter-web</artifactId>
         </dependency>
         </dependency>
+        <dependency>
+            <groupId>com.sckw</groupId>
+            <artifactId>sckw-common-core</artifactId>
+            <version>1.0.0</version>
+        </dependency>
         <dependency>
         <dependency>
             <groupId>com.sckw</groupId>
             <groupId>com.sckw</groupId>
             <artifactId>sckw-common-remote</artifactId>
             <artifactId>sckw-common-remote</artifactId>
             <version>1.0.0</version>
             <version>1.0.0</version>
         </dependency>
         </dependency>
+        <dependency>
+            <groupId>com.sckw</groupId>
+            <artifactId>sckw-common-datasource</artifactId>
+            <version>1.0.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.sckw</groupId>
+            <artifactId>sckw-common-redis</artifactId>
+            <version>1.0.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.sckw</groupId>
+            <artifactId>sckw-common-stream</artifactId>
+            <version>1.0.0</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <!--注册中心客户端-->
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
+        </dependency>
+        <!--配置中心客户端-->
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-bootstrap</artifactId>
+        </dependency>
     </dependencies>
     </dependencies>
 
 
 </project>
 </project>

+ 10 - 0
sckw-modules/sckw-example/src/main/java/com/sckw/example/dubbo/RemoteUserService1Impl.java

@@ -45,4 +45,14 @@ public class RemoteUserService1Impl implements RemoteUserService {
 
 
     }
     }
 
 
+    @Override
+    public void checkPassword(String password, String currentPwd) {
+
+    }
+
+    @Override
+    public KwsUser checkUserBase(String username) {
+        return null;
+    }
+
 }
 }

+ 0 - 52
sckw-modules/sckw-system/pom.xml

@@ -22,58 +22,6 @@
 
 
 
 
     <dependencies>
     <dependencies>
-        <dependency>
-            <groupId>com.sckw</groupId>
-            <artifactId>sckw-common-core</artifactId>
-            <version>1.0.0</version>
-        </dependency>
-        <dependency>
-            <groupId>com.sckw</groupId>
-            <artifactId>sckw-common-remote</artifactId>
-            <version>1.0.0</version>
-        </dependency>
-        <dependency>
-            <groupId>com.sckw</groupId>
-            <artifactId>sckw-common-datasource</artifactId>
-            <version>1.0.0</version>
-        </dependency>
-
-        <dependency>
-            <groupId>com.sckw</groupId>
-            <artifactId>sckw-common-redis</artifactId>
-            <version>1.0.0</version>
-        </dependency>
-
-        <dependency>
-            <groupId>com.sckw</groupId>
-            <artifactId>sckw-system-api</artifactId>
-            <version>1.0.0</version>
-        </dependency>
-
-        <dependency>
-            <groupId>com.sckw</groupId>
-            <artifactId>sckw-common-stream</artifactId>
-            <version>1.0.0</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-web</artifactId>
-        </dependency>
-        <!--注册中心客户端-->
-        <dependency>
-            <groupId>com.alibaba.cloud</groupId>
-            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
-        </dependency>
-        <!--配置中心客户端-->
-        <dependency>
-            <groupId>com.alibaba.cloud</groupId>
-            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.cloud</groupId>
-            <artifactId>spring-cloud-starter-bootstrap</artifactId>
-        </dependency>
     </dependencies>
     </dependencies>
 
 
 </project>
 </project>

+ 1 - 2
sckw-modules/sckw-system/src/main/java/com/sckw/system/SystemApplication.java

@@ -9,8 +9,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
 @EnableDubbo
 @EnableDubbo
 @EnableFeignClients({"com.sckw.*.api.feign"})
 @EnableFeignClients({"com.sckw.*.api.feign"})
 @EnableDiscoveryClient
 @EnableDiscoveryClient
-@SpringBootApplication
-//@MapperScan("com.system.*.mapper")
+@SpringBootApplication(scanBasePackages = {"com.sckw.core.exception", "com.sckw.core.aspect","com.sckw.system","com.sckw.redis"})
 public class SystemApplication {
 public class SystemApplication {
 
 
     public static void main(String[] args) {
     public static void main(String[] args) {

+ 6 - 5
sckw-modules/sckw-system/src/main/java/com/sckw/system/controller/KwsUserController.java

@@ -7,13 +7,13 @@ import com.sckw.core.model.page.PageResult;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.system.model.KwsUser;
 import com.sckw.system.model.KwsUser;
+import com.sckw.system.model.vo.req.ForgetPasswordReqVo;
 import com.sckw.system.model.vo.req.UpdatePasswordReqVo;
 import com.sckw.system.model.vo.req.UpdatePasswordReqVo;
 import com.sckw.system.service.KwsUserService;
 import com.sckw.system.service.KwsUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 import java.util.HashMap;
 import java.util.HashMap;
 import java.util.List;
 import java.util.List;
-import java.util.Map;
 
 
 /**
 /**
  * 用户
  * 用户
@@ -114,14 +114,14 @@ public class KwsUserController {
     }
     }
 
 
     /**
     /**
-     * @param params {account 账号、password 密码、captcha 验证码}
+     * @param  {account 账号、password 密码、captcha 验证码}
      * @description 忘记密码
      * @description 忘记密码
      * @author zk
      * @author zk
      * @date 2023/06/02
      * @date 2023/06/02
      **/
      **/
     @PostMapping("/forgetPassword")
     @PostMapping("/forgetPassword")
-    public HttpResult forgetPassword(@RequestBody Map<String, Object> params) {
-
+    public HttpResult forgetPassword(@RequestBody ForgetPasswordReqVo reqVo) {
+        kwsUserService.forgetPassword(reqVo);
         return HttpResult.ok();
         return HttpResult.ok();
     }
     }
 
 
@@ -145,6 +145,7 @@ public class KwsUserController {
      **/
      **/
     @DeleteMapping("/dels")
     @DeleteMapping("/dels")
     public HttpResult del(@RequestParam String ids) throws Exception {
     public HttpResult del(@RequestParam String ids) throws Exception {
-        return kwsUserService.deleteByKey(ids);
+        kwsUserService.deleteByKey(ids);
+        return HttpResult.ok();
     }
     }
 }
 }

+ 98 - 79
sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteUserServiceImpl.java

@@ -1,79 +1,98 @@
-package com.sckw.system.dubbo;
-
-import com.sckw.system.api.model.dto.req.LoginReqDto;
-import com.sckw.system.api.RemoteUserService;
-import com.sckw.system.api.model.dto.res.LoginResDto;
-import com.sckw.system.model.KwsDept;
-import com.sckw.system.model.KwsEnterprise;
-import com.sckw.system.model.KwsUser;
-import com.sckw.system.model.KwsUserDept;
-import com.sckw.system.service.KwsDeptService;
-import com.sckw.system.service.KwsEnterpriseService;
-import com.sckw.system.service.KwsUserDeptService;
-import com.sckw.system.service.KwsUserService;
-import org.apache.dubbo.config.annotation.DubboService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-@DubboService(group = "design", version = "2.0.0")
-@Service
-public class RemoteUserServiceImpl implements RemoteUserService {
-
-    @Autowired
-    private KwsUserService kwsUserService;
-
-    @Autowired
-    private KwsUserDeptService kwsUserDeptService;
-
-    @Autowired
-    private KwsDeptService kwsDeptService;
-
-    @Autowired
-    private KwsEnterpriseService kwsEnterpriseService;
-
-    @Override
-    public String getUserInfoV1(String account) {
-        return null;
-    }
-
-    @Override
-    public KwsUser getUserByAccount(String username) {
-        return kwsUserService.getUserByAccount(username);
-    }
-
-    @Override
-    public List<KwsUserDept> queryUserDeptByUserId(Long userId) {
-        return kwsUserDeptService.queryUserDeptByUserId(userId);
-    }
-
-    /**
-     * 根据机构id查机构信息
-     * @param ids
-     * @return
-     */
-    @Override
-    public List<KwsDept> queryDeptByIds(List<Long> ids) {
-        return kwsDeptService.listByIds(ids);
-    }
-
-    /**
-     * 根据企业id查企业信息
-     * @param ids
-     * @return
-     */
-    @Override
-    public List<KwsEnterprise> queryEnterpriseByIds(List<Long> ids) {
-        return kwsEnterpriseService.listByIds(ids);
-    }
-
-    /**
-     * 注册
-     */
-    @Override
-    public void register(KwsUser kwsUser) {
-        kwsUserService.add(kwsUser);
-    }
-
-}
+//package com.sckw.system.dubbo;
+//
+//import com.sckw.system.api.RemoteUserService;
+//import com.sckw.system.model.KwsDept;
+//import com.sckw.system.model.KwsEnterprise;
+//import com.sckw.system.model.KwsUser;
+//import com.sckw.system.model.KwsUserDept;
+//import com.sckw.system.service.KwsDeptService;
+//import com.sckw.system.service.KwsEnterpriseService;
+//import com.sckw.system.service.KwsUserDeptService;
+//import com.sckw.system.service.KwsUserService;
+//import org.apache.dubbo.config.annotation.DubboService;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.stereotype.Service;
+//
+//import java.util.List;
+//
+//@Deprecated
+//@DubboService(group = "design", version = "2.0.0")
+//@Service
+//public class RemoteUserServiceImpl implements RemoteUserService {
+//
+//    @Autowired
+//    private KwsUserService kwsUserService;
+//
+//    @Autowired
+//    private KwsUserDeptService kwsUserDeptService;
+//
+//    @Autowired
+//    private KwsDeptService kwsDeptService;
+//
+//    @Autowired
+//    private KwsEnterpriseService kwsEnterpriseService;
+//
+//    @Override
+//    public String getUserInfoV1(String account) {
+//        return null;
+//    }
+//
+//    @Override
+//    public KwsUser getUserByAccount(String username) {
+//        return kwsUserService.getUserByAccount(username);
+//    }
+//
+//    @Override
+//    public List<KwsUserDept> queryUserDeptByUserId(Long userId) {
+//        return kwsUserDeptService.queryUserDeptByUserId(userId);
+//    }
+//
+//    /**
+//     * 根据机构id查机构信息
+//     * @param ids
+//     * @return
+//     */
+//    @Override
+//    public List<KwsDept> queryDeptByIds(List<Long> ids) {
+//        return kwsDeptService.listByIds(ids);
+//    }
+//
+//    /**
+//     * 根据企业id查企业信息
+//     * @param ids
+//     * @return
+//     */
+//    @Override
+//    public List<KwsEnterprise> queryEnterpriseByIds(List<Long> ids) {
+//        return kwsEnterpriseService.listByIds(ids);
+//    }
+//
+//    /**
+//     * 注册
+//     */
+//    @Override
+//    public void register(KwsUser kwsUser) {
+//        kwsUserService.add(kwsUser);
+//    }
+//
+//    /**
+//     * 校验密码
+//     * @param password 入参传的密码
+//     * @param currentPwd 当前用户的密码
+//     */
+//    @Override
+//    public void checkPassword(String password, String currentPwd) {
+//        kwsUserService.checkPassword(password, currentPwd);
+//    }
+//
+//    /**
+//     * 检验用户信息
+//     * @param username
+//     * @return
+//     */
+//    @Override
+//    public KwsUser checkUserBase(String username) {
+//        return kwsUserService.checkUserBase(username);
+//    }
+//
+//}

+ 13 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/handle/CustomMetaHandle.java

@@ -0,0 +1,13 @@
+package com.sckw.system.handle;
+
+
+import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
+import com.sckw.core.utils.IdWorker;
+import org.apache.ibatis.reflection.MetaObject;
+import org.springframework.context.annotation.Configuration;
+
+//@Configuration
+public class CustomMetaHandle  {
+
+
+}

+ 34 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/handle/MyConfig.java

@@ -0,0 +1,34 @@
+package com.sckw.system.handle;
+
+import com.baomidou.mybatisplus.core.MybatisConfiguration;
+import com.baomidou.mybatisplus.core.MybatisXMLLanguageDriver;
+import com.baomidou.mybatisplus.core.config.GlobalConfig;
+import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.apache.ibatis.type.JdbcType;
+import org.mybatis.spring.transaction.SpringManagedTransactionFactory;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import javax.sql.DataSource;
+
+
+//@Configuration
+public class MyConfig {
+
+//    @Bean
+    public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
+        MybatisSqlSessionFactoryBean mybatisSqlSessionFactoryBean = new MybatisSqlSessionFactoryBean();
+        mybatisSqlSessionFactoryBean.setTypeAliasesPackage("com.sckw.*.model");
+        mybatisSqlSessionFactoryBean.setDataSource(dataSource);
+        MybatisConfiguration configuration = new MybatisConfiguration();
+        configuration.setDefaultScriptingLanguage(MybatisXMLLanguageDriver.class);
+        configuration.setJdbcTypeForNull(JdbcType.NULL);
+        mybatisSqlSessionFactoryBean.setConfiguration(configuration);
+
+        mybatisSqlSessionFactoryBean.setTransactionFactory(new SpringManagedTransactionFactory());
+//        mybatisSqlSessionFactoryBean.setGlobalConfig(new GlobalConfig().setMetaObjectHandler(new CustomMetaHandle()));
+        return mybatisSqlSessionFactoryBean.getObject();
+    }
+
+}

+ 29 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/req/ForgetPasswordReqVo.java

@@ -0,0 +1,29 @@
+package com.sckw.system.model.vo.req;
+
+import lombok.Data;
+import org.apache.logging.log4j.core.config.plugins.validation.constraints.NotBlank;
+
+import java.io.Serializable;
+
+@Data
+public class ForgetPasswordReqVo implements Serializable {
+
+    /**
+     * 账号
+     */
+    @NotBlank(message = "账号不能为空")
+    private String account;
+
+    /**
+     * 密码
+     */
+    @NotBlank(message = "密码不能为空")
+    private String password;
+
+    /**
+     * 验证码
+     */
+    @NotBlank(message = "验证码不能为空")
+    private String captcha;
+
+}

+ 4 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/req/UpdatePasswordReqVo.java

@@ -1,6 +1,7 @@
 package com.sckw.system.model.vo.req;
 package com.sckw.system.model.vo.req;
 
 
 import lombok.Data;
 import lombok.Data;
+import org.apache.logging.log4j.core.config.plugins.validation.constraints.NotBlank;
 
 
 import java.io.Serializable;
 import java.io.Serializable;
 
 
@@ -10,16 +11,19 @@ public class UpdatePasswordReqVo implements Serializable {
     /**
     /**
      * 账号
      * 账号
      */
      */
+    @NotBlank(message = "账号不能为空")
     private String account;
     private String account;
 
 
     /**
     /**
      * 旧密码
      * 旧密码
      */
      */
+    @NotBlank(message = "密码不能为空")
     private String password;
     private String password;
 
 
     /**
     /**
      * 新密码
      * 新密码
      */
      */
+    @NotBlank(message = "新密码不能为空")
     private String newPassword;
     private String newPassword;
 
 
 }
 }

+ 81 - 26
sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsUserService.java

@@ -1,4 +1,5 @@
 package com.sckw.system.service;
 package com.sckw.system.service;
+import java.util.Date;
 
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -9,9 +10,12 @@ import com.sckw.core.utils.PasswordUtils;
 import com.sckw.core.utils.StringUtils;
 import com.sckw.core.utils.StringUtils;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.core.web.response.HttpResult;
+import com.sckw.redis.utils.RedissonUtils;
+import com.sckw.system.dao.KwsEntCheckTrackDao;
 import com.sckw.system.dao.KwsUserDao;
 import com.sckw.system.dao.KwsUserDao;
 import com.sckw.system.dao.KwsUserDeptDao;
 import com.sckw.system.dao.KwsUserDeptDao;
 import com.sckw.system.model.KwsUser;
 import com.sckw.system.model.KwsUser;
+import com.sckw.system.model.vo.req.ForgetPasswordReqVo;
 import com.sckw.system.model.vo.req.UpdatePasswordReqVo;
 import com.sckw.system.model.vo.req.UpdatePasswordReqVo;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -36,6 +40,8 @@ public class KwsUserService extends ServiceImpl<KwsUserDao, KwsUser> {
 
 
     @Autowired
     @Autowired
     KwsUserDeptDao kwsUserDeptDao;
     KwsUserDeptDao kwsUserDeptDao;
+    @Autowired
+    KwsEntCheckTrackDao kwsEntCheckTrackDao;
 
 
     @Autowired
     @Autowired
     KwsDeptService kwsDeptService;
     KwsDeptService kwsDeptService;
@@ -45,7 +51,9 @@ public class KwsUserService extends ServiceImpl<KwsUserDao, KwsUser> {
 
 
     @Autowired
     @Autowired
     KwsEnterpriseService kwsEnterpriseService;
     KwsEnterpriseService kwsEnterpriseService;
-    
+
+    @Autowired
+    RedissonUtils redissonUtils;
     /**
     /**
      * 添加新纪录
      * 添加新纪录
      */
      */
@@ -79,10 +87,10 @@ public class KwsUserService extends ServiceImpl<KwsUserDao, KwsUser> {
     /**
     /**
      * 删除记录-根据主键
      * 删除记录-根据主键
      */
      */
-    public HttpResult deleteByKey(String ids) throws Exception {
+    public void deleteByKey(String ids) throws Exception {
         /**1.数据校验**/
         /**1.数据校验**/
         if (StringUtils.isBlank(ids)) {
         if (StringUtils.isBlank(ids)) {
-            return HttpResult.error("请选择您要删除的机构信息!");
+            throw new SystemException(HttpStatus.PARAMETERS_MISSING_CODE, HttpStatus.ACCOUNT_MISSING);
         }
         }
 
 
         int resultCode = 0;
         int resultCode = 0;
@@ -92,10 +100,13 @@ public class KwsUserService extends ServiceImpl<KwsUserDao, KwsUser> {
             KwsUser kwsUser = kwsUserDao.selectByKey(Long.parseLong(id));
             KwsUser kwsUser = kwsUserDao.selectByKey(Long.parseLong(id));
             if (null != kwsUser) {
             if (null != kwsUser) {
                 kwsUser.setDelFlag(Global.YES);
                 kwsUser.setDelFlag(Global.YES);
-                resultCode = kwsUserDao.update(kwsUser);
+                resultCode += kwsUserDao.update(kwsUser);
             }
             }
         }
         }
-        return resultCode > 0 ? HttpResult.ok("删除成功!") : HttpResult.error("删除失败!");
+
+        if (resultCode < idArray.length) {
+            throw new SystemException(HttpStatus.CODE_60601, HttpStatus.DELETE_FAIL);
+        }
     }
     }
 
 
     /**
     /**
@@ -126,29 +137,20 @@ public class KwsUserService extends ServiceImpl<KwsUserDao, KwsUser> {
 
 
     /**
     /**
      * 重置密码
      * 重置密码
-     * @param id
-     * @return
-     * @throws Exception
      */
      */
     public void resetPassword(Long id) throws Exception {
     public void resetPassword(Long id) throws Exception {
         //查用户信息
         //查用户信息
-        KwsUser user = kwsUserDao.selectByKey(id);
-        if (Objects.isNull(user)) {
+        KwsUser kwsUser = kwsUserDao.selectByKey(id);
+        if (Objects.isNull(kwsUser)) {
             throw new SystemException(HttpStatus.CODE_60602, HttpStatus.ACCOUNT_NOT_EXISTS);
             throw new SystemException(HttpStatus.CODE_60602, HttpStatus.ACCOUNT_NOT_EXISTS);
         }
         }
 
 
         //重置密码
         //重置密码
-        user.setPassword(PasswordUtils.entryptPassword(PasswordUtils.md5(user.getAccount())));
-        if (kwsUserDao.update(user) <= 0) {
-            throw new SystemException(HttpStatus.CODE_60601, HttpStatus.UPDATE_FAIL);
-        }
+        updatePwd(PasswordUtils.md5(kwsUser.getAccount()), kwsUser);
     }
     }
 
 
     /**
     /**
      * 根据主键查询
      * 根据主键查询
-     * @param key
-     * @return
-     * @throws Exception
      */
      */
     public KwsUser selectByKey(Long key) throws Exception {
     public KwsUser selectByKey(Long key) throws Exception {
         return kwsUserDao.selectByKey(key);
         return kwsUserDao.selectByKey(key);
@@ -156,9 +158,6 @@ public class KwsUserService extends ServiceImpl<KwsUserDao, KwsUser> {
 
 
     /**
     /**
      * 分页查询
      * 分页查询
-     * @param params
-     * @return
-     * @throws Exception
      */
      */
     public List<KwsUser> findPage(Map<String, Object> params) throws Exception{
     public List<KwsUser> findPage(Map<String, Object> params) throws Exception{
         return kwsUserDao.findPage(params);
         return kwsUserDao.findPage(params);
@@ -166,9 +165,6 @@ public class KwsUserService extends ServiceImpl<KwsUserDao, KwsUser> {
 
 
     /**
     /**
      * 查询
      * 查询
-     * @param params
-     * @return
-     * @throws Exception
      */
      */
     public List<Map<String, Object>> findList(Map<String, Object> params) throws Exception{
     public List<Map<String, Object>> findList(Map<String, Object> params) throws Exception{
         return kwsUserDao.findList(params);
         return kwsUserDao.findList(params);
@@ -176,9 +172,6 @@ public class KwsUserService extends ServiceImpl<KwsUserDao, KwsUser> {
 
 
     /**
     /**
      * 参数校验
      * 参数校验
-     * @param kwsUser
-     * @return
-     * @throws Exception
      */
      */
     public void paramsCheck(KwsUser kwsUser) {
     public void paramsCheck(KwsUser kwsUser) {
         //用户账号必填校验
         //用户账号必填校验
@@ -212,6 +205,68 @@ public class KwsUserService extends ServiceImpl<KwsUserDao, KwsUser> {
      * 修改密码
      * 修改密码
      */
      */
     public void updatePassword(UpdatePasswordReqVo reqVo) {
     public void updatePassword(UpdatePasswordReqVo reqVo) {
+        //查用户信息
+        KwsUser kwsUser = checkUserBase(reqVo.getAccount());
+
+        //密码校验
+        String password = reqVo.getPassword();
+        String currentPwd = kwsUser.getPassword();
+        checkPassword(password, currentPwd);
+
+        //校验新密码是否可用
+        String newPassword = reqVo.getNewPassword();
+        if (PasswordUtils.validatePassword(newPassword, currentPwd)) {
+            throw new SystemException(HttpStatus.CODE_10301, HttpStatus.PASSWD_REPEAT);
+        }
 
 
+        //修改密码
+        updatePwd(newPassword, kwsUser);
+    }
+
+    private void updatePwd(String newPassword, KwsUser kwsUser) {
+        kwsUser.setPassword(PasswordUtils.entryptPassword(newPassword));
+        if(kwsUserDao.update(kwsUser) <= 0) {
+            throw new SystemException(HttpStatus.CODE_60601, HttpStatus.UPDATE_FAIL);
+        }
+    }
+
+    /**
+     * 忘记密码
+     */
+    public void forgetPassword(ForgetPasswordReqVo reqVo) {
+        //查用户信息
+        KwsUser kwsUser = checkUserBase(reqVo.getAccount());
+
+        //从缓存中取出验证码,校验
+        //todo
+        String sms = redissonUtils.get("captcha:czh").toString();
+        if (!reqVo.getCaptcha().equals(sms)) {
+            throw new SystemException(HttpStatus.CODE_10301, HttpStatus.CAPTCHA_ERROR);
+        }
+
+        //修改密码
+        updatePwd(reqVo.getPassword(), kwsUser);
+    }
+
+    /**
+     * 根据登录名校验
+     */
+    public KwsUser checkUserBase(String account) {
+        KwsUser kwsUser = getUserByAccount(account);
+        if (Objects.isNull(kwsUser)) {
+            throw new SystemException(HttpStatus.CODE_60602, HttpStatus.ACCOUNT_NOT_EXISTS);
+        }
+        return kwsUser;
+    }
+
+    /**
+     * 校验密码
+     * @param password 入参传的密码
+     * @param currentPwd 当前用户的密码
+     */
+    public void checkPassword(String password, String currentPwd) {
+        if (!PasswordUtils.validatePassword(password, currentPwd)) {
+            throw new SystemException(HttpStatus.CODE_10301, HttpStatus.PASSWD_ERROR);
+        }
     }
     }
 }
 }

+ 12 - 0
sckw-modules/sckw-system/src/main/resources/bootstrap-dev.yml

@@ -46,6 +46,12 @@ spring:
     host: 10.10.10.230
     host: 10.10.10.230
     port: 5672
     port: 5672
     virtual-host: /
     virtual-host: /
+  data:
+    redis:
+      host: 127.0.0.1
+      port: 6379
+      database: 0
+      timeout: 5000
 
 
 # dubbo
 # dubbo
 dubbo:
 dubbo:
@@ -63,3 +69,9 @@ dubbo:
     #use-as-config-center: false
     #use-as-config-center: false
     #use-as-metadata-center: false
     #use-as-metadata-center: false
 
 
+mybatis-plus:
+  mapper-locations: classpath*:/mapper/*.xml    #扫描xml文件
+  #实体扫描,多个package用逗号或者分号分隔
+  typeAliasesPackage: com.sckw.*.model
+  configuration:
+    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl