Browse Source

流程测试

small 3 years ago
parent
commit
cd2598a920
35 changed files with 309 additions and 99 deletions
  1. 4 3
      sckw-auth/src/main/java/com/sckw/auth/controller/AuthController.java
  2. 6 1
      sckw-auth/src/main/java/com/sckw/auth/model/vo/req/ForgetPasswordReqVo.java
  3. 4 0
      sckw-auth/src/main/java/com/sckw/auth/model/vo/req/LoginReqVo.java
  4. 8 0
      sckw-auth/src/main/java/com/sckw/auth/model/vo/req/RegisterReqVo.java
  5. 29 14
      sckw-auth/src/main/java/com/sckw/auth/service/impl/AuthServiceImpl.java
  6. 2 3
      sckw-common/sckw-common-core/pom.xml
  7. 2 2
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/aspect/DaoAspect.java
  8. 11 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/exception/GlobalSystemExceptionHandler.java
  9. 3 1
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/filter/LoginFilter.java
  10. 3 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/constant/Global.java
  11. 11 1
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/web/config/CustomConfig.java
  12. 2 2
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/web/config/GlobalTransactionalConfig.java
  13. 2 1
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/web/constant/HttpStatus.java
  14. 2 1
      sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/RemoteUserService.java
  15. 44 1
      sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/model/dto/req/UserLoginReqDto.java
  16. 2 1
      sckw-modules/sckw-system/src/main/java/com/sckw/system/controller/KwsDeptController.java
  17. 5 3
      sckw-modules/sckw-system/src/main/java/com/sckw/system/controller/KwsEnterpriseController.java
  18. 3 2
      sckw-modules/sckw-system/src/main/java/com/sckw/system/controller/KwsMenuController.java
  19. 2 1
      sckw-modules/sckw-system/src/main/java/com/sckw/system/controller/KwsUserController.java
  20. 9 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/dao/KwsUserLoginDao.java
  21. 3 7
      sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteUserServiceImpl.java
  22. 8 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/KwsDept.java
  23. 4 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/KwsEntCheckTrack.java
  24. 5 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/KwsMenu.java
  25. 5 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/pojo/FindMenuTreePojo.java
  26. 7 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/req/EntRegisterReqVo.java
  27. 11 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/req/ForgetPasswordReqVo.java
  28. 5 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/req/RoleBindMeunReqVo.java
  29. 11 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/req/UpdatePasswordReqVo.java
  30. 9 1
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/req/UserAddReqVo.java
  31. 4 9
      sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsEnterpriseService.java
  32. 9 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsRoleService.java
  33. 4 22
      sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsUserService.java
  34. 3 0
      sckw-modules/sckw-system/src/main/resources/mapper/KwsEntCheckTrackDao.xml
  35. 67 23
      sckw-modules/sckw-system/src/main/resources/mapper/KwsUserLoginDao.xml

+ 4 - 3
sckw-auth/src/main/java/com/sckw/auth/controller/AuthController.java

@@ -6,6 +6,7 @@ import com.sckw.auth.model.vo.req.RegisterReqVo;
 import com.sckw.auth.service.IAuthService;
 import com.sckw.core.exception.SystemException;
 import com.sckw.core.web.response.HttpResult;
+import jakarta.validation.Valid;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -29,7 +30,7 @@ public class AuthController {
      * @date: 2023/6/16
      */
     @PostMapping("/login")
-    public HttpResult login(@RequestBody LoginReqVo reqVo) throws SystemException {
+    public HttpResult login(@Valid @RequestBody LoginReqVo reqVo) throws SystemException {
         return HttpResult.ok(authService.login(reqVo));
     }
 
@@ -41,7 +42,7 @@ public class AuthController {
      * @date: 2023/6/16
      */
     @PostMapping("/register")
-    public HttpResult register(@RequestBody RegisterReqVo reqDto) throws SystemException {
+    public HttpResult register(@Valid @RequestBody RegisterReqVo reqDto) throws SystemException {
         authService.register(reqDto);
         return HttpResult.ok();
     }
@@ -54,7 +55,7 @@ public class AuthController {
      * @date: 2023/6/19
      */
     @PostMapping("/forgetPassword")
-    public HttpResult forgetPassword(@RequestBody ForgetPasswordReqVo reqDto) throws SystemException {
+    public HttpResult forgetPassword(@Valid @RequestBody ForgetPasswordReqVo reqDto) throws SystemException {
         authService.forgetPassword(reqDto);
         return HttpResult.ok();
     }

+ 6 - 1
sckw-auth/src/main/java/com/sckw/auth/model/vo/req/ForgetPasswordReqVo.java

@@ -1,7 +1,8 @@
 package com.sckw.auth.model.vo.req;
 
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import lombok.Data;
-import org.apache.logging.log4j.core.config.plugins.validation.constraints.NotBlank;
 
 import java.io.Serial;
 import java.io.Serializable;
@@ -20,21 +21,25 @@ public class ForgetPasswordReqVo implements Serializable {
     /**
      * 账号
      */
+    @NotBlank(message = "账号不能为空")
     private String account;
 
     /**
      * 密码
      */
+    @NotBlank(message = "密码不能为空")
     private String password;
 
     /**
      * 验证码
      */
+    @NotBlank(message = "验证码不能为空")
     private String captcha;
 
     /**
      * 系统类型(1运营端、2企业开户)
      */
+    @NotNull(message = "系统类型不能为空")
     private int systemType;
 
 }

+ 4 - 0
sckw-auth/src/main/java/com/sckw/auth/model/vo/req/LoginReqVo.java

@@ -1,5 +1,7 @@
 package com.sckw.auth.model.vo.req;
 
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 
 import java.io.Serial;
@@ -19,11 +21,13 @@ public class LoginReqVo implements Serializable {
     /**
      * 账号
      */
+    @NotBlank(message = "账号不能为空")
     private String account;
 
     /**
      * 系统类型
      */
+    @NotNull(message = "系统类型不能为空")
     private Integer systemType;
 
     /**

+ 8 - 0
sckw-auth/src/main/java/com/sckw/auth/model/vo/req/RegisterReqVo.java

@@ -1,6 +1,8 @@
 package com.sckw.auth.model.vo.req;
 
+import jakarta.validation.constraints.NotNull;
 import lombok.Data;
+import org.apache.logging.log4j.core.config.plugins.validation.constraints.NotBlank;
 
 import java.io.Serial;
 import java.io.Serializable;
@@ -19,31 +21,37 @@ public class RegisterReqVo implements Serializable {
     /**
      * 企业名称
      */
+    @NotBlank(message = "企业名称不能为空")
     private String entName;
 
     /**
      * 企业代表人
      */
+    @NotBlank(message = "企业代表人不能为空")
     private String name;
 
     /**
      * 手机号
      */
+    @NotBlank(message = "联系电话不能为空")
     private String telephone;
 
     /**
      * 系统类型(1运营端、2企业开户)
      */
+    @NotNull(message = "系统类型不能为空")
     private Integer systemType;
 
     /**
      * 验证码
      */
+    @NotBlank(message = "验证码不能为空")
     private String captcha;
 
     /**
      * 用户类型  0 普通用户  1管理员
      */
+    @NotNull(message = "用户类型不能为空")
     private Integer isMain;
 
     /**

+ 29 - 14
sckw-auth/src/main/java/com/sckw/auth/service/impl/AuthServiceImpl.java

@@ -1,7 +1,6 @@
 package com.sckw.auth.service.impl;
 
 import com.alibaba.fastjson.JSON;
-import com.sckw.auth.model.vo.req.EntAuthenticationReqVo;
 import com.sckw.auth.model.vo.req.ForgetPasswordReqVo;
 import com.sckw.auth.model.vo.req.LoginReqVo;
 import com.sckw.auth.model.vo.req.RegisterReqVo;
@@ -9,9 +8,8 @@ import com.sckw.auth.model.vo.res.DeptInfoResVo;
 import com.sckw.auth.model.vo.res.EntInfoResVo;
 import com.sckw.auth.model.vo.res.LoginResVo;
 import com.sckw.auth.util.AsyncFactory;
-import com.sckw.core.model.enums.SystemTypeEnum;
+import com.sckw.core.utils.StringUtils;
 import com.sckw.core.web.context.LoginUserHolder;
-import com.sckw.system.api.model.dto.req.EntAuthenticationReqDto;
 import com.sckw.system.api.model.dto.req.ForgetPasswordReqDto;
 import com.sckw.system.api.model.dto.req.UserLoginReqDto;
 import com.sckw.system.api.model.dto.res.KwsRoleResDto;
@@ -51,10 +49,7 @@ public class AuthServiceImpl implements IAuthService {
     @Override
     public LoginResVo login(LoginReqVo reqDto) {
         /*1、根据账号密码或者手机号校验码登录, 手机号后面处理*/
-        List<KwsUserResDto> kwsUsers = remoteUserService.checkUserBase(reqDto.getAccount(), reqDto.getSystemType());
-        KwsUserResDto kwsUser = kwsUsers.get(0);
-        //密码校验
-        remoteUserService.checkPassword(reqDto.getPassword(), kwsUser.getPassword());
+        KwsUserResDto kwsUser = checkLogin(reqDto);
         LoginResVo loginResVo = new LoginResVo();
         BeanUtils.copyProperties(kwsUser, loginResVo);
 
@@ -100,6 +95,23 @@ public class AuthServiceImpl implements IAuthService {
         return loginResVo;
     }
 
+    private KwsUserResDto checkLogin(LoginReqVo reqDto) {
+        List<KwsUserResDto> kwsUsers = remoteUserService.checkUserBase(reqDto.getAccount(), reqDto.getSystemType());
+        KwsUserResDto kwsUser = kwsUsers.get(0);
+        //密码校验、验证码
+        if (StringUtils.isNotBlank(reqDto.getPassword())) {
+            remoteUserService.checkPassword(reqDto.getPassword(), kwsUser.getPassword());
+        } else {
+            String key = Global.USER_LOGIN_CAPTCHA + reqDto.getSystemType() + Global.COLON + kwsUser.getAccount();
+            String captcha = RedissonUtils.getString(key);
+            if (StringUtils.isBlank(captcha) || StringUtils.isBlank(reqDto.getCaptcha()) || !reqDto.getCaptcha().equals(captcha)){
+                throw new SystemException(HttpStatus.PARAMETERS_MISSING_CODE, HttpStatus.CAPCHA_ERROR);
+            }
+            RedissonUtils.delete(key);
+        }
+        return kwsUser;
+    }
+
     /**
      * @param  loginResVo 登录的返参
      * @desc: 生成token,存redis
@@ -111,11 +123,11 @@ public class AuthServiceImpl implements IAuthService {
             String id = String.valueOf(loginResVo.getId());
             String token = EncryUtil.encry(Global.PRI_KEY, id);
             loginResVo.setToken(token);
-            RedissonUtils.add(Global.REDIS_USER_PREFIX + LoginUserHolder.getClientType() + Global.COLON + id, JSON.toJSONString(loginResVo));
+            RedissonUtils.add(Global.REDIS_USER_PREFIX + loginResVo.getSystemType() + Global.COLON + id, JSON.toJSONString(loginResVo));
 
             //异步存redis
             AsyncFactory.execute(new SaveMenuInfo(loginResVo.getId()));
-            AsyncFactory.execute(new SaveLoginInfo(loginResVo, LoginUserHolder.getClientType()));
+            AsyncFactory.execute(new SaveLoginInfo(loginResVo, String.valueOf(loginResVo.getSystemType()), remoteUserService));
 
         } catch (Exception e) {
             throw new SystemException(HttpStatus.GLOBAL_EXCEPTION_CODE, HttpStatus.GLOBAL_EXCEPTION_MESSAGE);
@@ -164,7 +176,10 @@ public class AuthServiceImpl implements IAuthService {
 
             List<String> menus = new ArrayList<>();
             for (UserAccessMenuInfoResDto userAccessMenuInfoResDto : userAccessMenuInfo) {
-                menus.addAll(Arrays.asList(userAccessMenuInfoResDto.getLinks().split(",")));
+                String links = userAccessMenuInfoResDto.getLinks();
+                if (StringUtils.isNotBlank(links)) {
+                    menus.addAll(Arrays.asList(userAccessMenuInfoResDto.getLinks().split(",")));
+                }
             }
             RedissonUtils.putSet(Global.REDIS_SYS_MENU_PREFIX + id, menus);
         }
@@ -176,12 +191,12 @@ public class AuthServiceImpl implements IAuthService {
 
         private final String clientType;
 
-        @DubboReference(version = "2.0.0", group = "design", check = false)
-        private RemoteUserService remoteUserService;
+        private final RemoteUserService remoteUserService;
 
-        public SaveLoginInfo(LoginResVo loginResVo, String clientType) {
+        public SaveLoginInfo(LoginResVo loginResVo, String clientType, RemoteUserService remoteUserService) {
             this.loginResVo = loginResVo;
             this.clientType = clientType;
+            this.remoteUserService = remoteUserService;
         }
 
         @Override
@@ -189,7 +204,7 @@ public class AuthServiceImpl implements IAuthService {
             long userId = loginResVo.getId();
             UserLoginReqDto currentDayLogin = remoteUserService.currentDayLogin(userId);
             UserLoginReqDto userLoginReqDto = new UserLoginReqDto();
-            userLoginReqDto.setPid(Objects.isNull(currentDayLogin) ? "" : String.valueOf(currentDayLogin.getUserId()));
+            userLoginReqDto.setPid(Objects.isNull(currentDayLogin) ? "" : String.valueOf(currentDayLogin.getId()));
             userLoginReqDto.setIp("");
             userLoginReqDto.setUserAgent("");
             userLoginReqDto.setUserId(loginResVo.getId());

+ 2 - 3
sckw-common/sckw-common-core/pom.xml

@@ -125,10 +125,9 @@
             <version>1.0.0</version>
         </dependency>
         <dependency>
-            <groupId>jakarta.validation</groupId>
-            <artifactId>jakarta.validation-api</artifactId>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-validation</artifactId>
         </dependency>
-
     </dependencies>
 
 </project>

+ 2 - 2
sckw-common/sckw-common-core/src/main/java/com/sckw/core/aspect/DaoAspect.java

@@ -43,7 +43,7 @@ public class DaoAspect {
     public void daoCreate() {
     }
 
-//    @Around("daoUpdate()")
+    @Around("daoUpdate()")
     public Object doAroundUpdate(ProceedingJoinPoint point) throws Throwable {
         /*ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
         if (attributes == null) {
@@ -67,7 +67,7 @@ public class DaoAspect {
         return object;
     }
 
-//    @Around("daoCreate()")
+    @Around("daoCreate()")
     public Object doAroundCreate(ProceedingJoinPoint point) throws Throwable {
         /*ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
         if (attributes == null) {

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

@@ -1,11 +1,15 @@
 package com.sckw.core.exception;
 
+import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.response.HttpResult;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.MethodArgumentNotValidException;
 import org.springframework.web.bind.annotation.ExceptionHandler;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.RestControllerAdvice;
 
+import java.util.Objects;
+
 @Slf4j
 @RestControllerAdvice
 public class GlobalSystemExceptionHandler {
@@ -15,5 +19,12 @@ public class GlobalSystemExceptionHandler {
     public HttpResult handlerRuntimeException(SystemException e) {
         return HttpResult.error(e.getCode(), e.getMessage());
     }
+
+    @ExceptionHandler(value = MethodArgumentNotValidException.class)
+    @ResponseBody
+    public HttpResult handlerRuntimeException(MethodArgumentNotValidException e) {
+        return HttpResult.error(HttpStatus.PARAMETERS_MISSING_CODE , Objects.requireNonNull(e.getBindingResult().getFieldError()).getDefaultMessage());
+    }
+
 }
 

+ 3 - 1
sckw-common/sckw-common-core/src/main/java/com/sckw/core/filter/LoginFilter.java

@@ -1,7 +1,7 @@
 package com.sckw.core.filter;
 
 import com.alibaba.fastjson.JSONObject;
-import com.sckw.core.config.CustomConfig;
+import com.sckw.core.web.config.CustomConfig;
 import com.sckw.core.exception.SystemException;
 import com.sckw.core.model.constant.Global;
 import com.sckw.core.utils.EncryUtil;
@@ -85,12 +85,14 @@ public class LoginFilter implements Filter {
         //管理员不限制权限
         if (loginUserInfo.getIsMain() == Global.YES){
             filterChain.doFilter(servletRequest, servletResponse);
+            LoginUserHolder.remove();
             return;
         }
 
         //按钮有权限才放行
         checkMenu(key, requestUri);
         filterChain.doFilter(servletRequest, servletResponse);
+        LoginUserHolder.remove();
     }
 
     private void checkMenu(String key, String url) {

+ 3 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/constant/Global.java

@@ -76,6 +76,9 @@ public class Global {
     /**ok*/
     public static final String OK = "OK";
 
+    /**用户登录验证码*/
+    public static final String USER_LOGIN_CAPTCHA = "userLoginCaptcha:";
+
     /**redis用户信息前缀*/
     public static final String REDIS_USER_PREFIX = "userInfo:";
 

+ 11 - 1
sckw-common/sckw-common-core/src/main/java/com/sckw/core/config/CustomConfig.java → sckw-common/sckw-common-core/src/main/java/com/sckw/core/web/config/CustomConfig.java

@@ -1,4 +1,4 @@
-package com.sckw.core.config;
+package com.sckw.core.web.config;
 
 import lombok.Data;
 import org.springframework.beans.factory.annotation.Value;
@@ -13,6 +13,16 @@ import org.springframework.stereotype.Component;
 @Component
 public class CustomConfig {
 
+    /**
+     * 直接放行的请求链接
+     */
     @Value("${links}")
     private String links;
+
+    /**
+     * 是否允许一个账号绑定多个角色
+     */
+    @Value("${isBindManyRole}")
+    private Integer isBindManyRole;
+
 }

+ 2 - 2
sckw-common/sckw-common-core/src/main/java/com/sckw/core/web/config/com/sckw/core/web/config/GlobalTransactionalConfig.java → sckw-common/sckw-common-core/src/main/java/com/sckw/core/web/config/GlobalTransactionalConfig.java

@@ -1,4 +1,4 @@
-package com.sckw.core.web.config.com.sckw.core.web.config;
+package com.sckw.core.web.config;
 
 import io.seata.spring.annotation.AspectTransactionalInterceptor;
 import org.springframework.aop.Advisor;
@@ -12,7 +12,7 @@ import org.springframework.stereotype.Component;
  * @description 全局事务bean
  * @date 2023/6/15 0015
  */
-@Component
+//@Component
 public class GlobalTransactionalConfig {
     @Bean
     public AspectTransactionalInterceptor aspectTransactionalInterceptor () {

+ 2 - 1
sckw-common/sckw-common-core/src/main/java/com/sckw/core/web/constant/HttpStatus.java

@@ -34,6 +34,7 @@ public class HttpStatus {
     public static final String TOKEN_MISSING = "token不能为空!";
     public static final String TOKEN_INVAILD = "无效token";
     public static final String TOKEN_ERROR = "非法token!";
+    public static final String CAPCHA_ERROR = "验证码无效!";
 
 
     /**其他自定义状态码*/
@@ -111,7 +112,6 @@ public class HttpStatus {
     /**未查询到相关信息*/
     public static final int QUERY_FAIL_CODE = 60602;
     public static final String ACCOUNT_NOT_EXISTS = "用户信息不存在或已失效";
-
     public static final String ENT_NOT_EXISTS = "企业信息不存在或已失效";
     public static final String ENTCERTIFICATES_NOT_EXISTS = "未查询到企业资质信息";
     public static final String ROLE_NOT_EXISTS = "未查询到关联的角色";
@@ -125,4 +125,5 @@ public class HttpStatus {
     public static final String MSG_003 = "新增成功";
     public static final String MSG_004 = "审批完成";
     public static final String MSG_005 = "更新成功";
+    public static final String MSG_006 = "当前系统不允许绑定多个岗位!";
 }

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

@@ -56,7 +56,7 @@ public interface RemoteUserService {
      * @param account
      * @return
      */
-    List<KwsUserResDto> checkUserBase(String account, int systemType);
+    List<KwsUserResDto> checkUserBase(String account, int systemType) throws SystemException;
 
     /**
      * 根基id查企业
@@ -100,6 +100,7 @@ public interface RemoteUserService {
      */
     void saveUserLogin(UserLoginReqDto userLoginReqDto);
 
+
     /**
      * @param userId 用户id
      * @return 登录

+ 44 - 1
sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/model/dto/req/UserLoginReqDto.java

@@ -1,5 +1,6 @@
 package com.sckw.system.api.model.dto.req;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.sckw.system.api.model.dto.BaseModelResDto;
 import lombok.Data;
 
@@ -13,7 +14,7 @@ import java.util.Date;
  * @date 2023/6/19
  */
 @Data
-public class UserLoginReqDto extends BaseModelResDto implements Serializable {
+public class UserLoginReqDto implements Serializable {
 
     @Serial
     private static final long serialVersionUID = 5716439258112124800L;
@@ -72,4 +73,46 @@ public class UserLoginReqDto extends BaseModelResDto implements Serializable {
      * 来源(app、pc)
      */
     private String source;
+
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 状态:0正常/1锁定
+     */
+    private Integer status;
+
+    /**
+     * 创建人
+     */
+    private Long createBy;
+
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 更新人
+     */
+    private Long updateBy;
+
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 删除标识(0正常/-1删除)
+     */
+    private Integer delFlag;
 }

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

@@ -3,6 +3,7 @@ package com.sckw.system.controller;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.system.model.KwsDept;
 import com.sckw.system.service.KwsDeptService;
+import jakarta.validation.Valid;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import java.util.HashMap;
@@ -52,7 +53,7 @@ public class KwsDeptController {
      * @date 2023/5/30
      **/
     @PostMapping("/add")
-    public HttpResult add(@RequestBody KwsDept params) throws Exception {
+    public HttpResult add(@Valid @RequestBody KwsDept params) throws Exception {
         kwsDeptService.add(params);
         return HttpResult.ok();
     }

+ 5 - 3
sckw-modules/sckw-system/src/main/java/com/sckw/system/controller/KwsEnterpriseController.java

@@ -10,6 +10,7 @@ import com.sckw.system.model.vo.req.EntRegisterReqVo;
 import com.sckw.system.model.vo.req.FreezeReqVo;
 import com.sckw.system.model.vo.req.KwsEnterpriseReqVo;
 import com.sckw.system.service.KwsEnterpriseService;
+import jakarta.validation.Valid;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import java.util.Map;
@@ -69,7 +70,7 @@ public class KwsEnterpriseController {
      * @date 2023/06/02
      **/
     @PostMapping("/register")
-    public HttpResult register(@RequestBody EntRegisterReqVo reqVo) {
+    public HttpResult register(@Valid  @RequestBody EntRegisterReqVo reqVo) {
         kwsEntService.register(reqVo);
         return HttpResult.ok(HttpStatus.MSG_003);
     }
@@ -95,6 +96,7 @@ public class KwsEnterpriseController {
      * @date 2023/06/02
      **/
     @PostMapping("/add")
+    @Deprecated
     public HttpResult add(@RequestBody KwsEnterprise params) throws Exception {
         kwsEntService.add(params);
         return HttpResult.ok();
@@ -133,7 +135,7 @@ public class KwsEnterpriseController {
      * @date 2023/06/02
      **/
     @PostMapping(value = "/approval")
-    public HttpResult approval(@RequestBody KwsEntCheckTrack params) {
+    public HttpResult approval(@Valid @RequestBody KwsEntCheckTrack params) {
         kwsEntService.approval(params);
         return HttpResult.ok(HttpStatus.MSG_004);
     }
@@ -147,7 +149,7 @@ public class KwsEnterpriseController {
      **/
     @GetMapping("/entCheck")
     public HttpResult entCheck(@RequestParam Long entId) throws Exception {
-        return HttpResult.ok();
+        return HttpResult.ok(kwsEntService.entCheck(entId));
     }
 
     /**

+ 3 - 2
sckw-modules/sckw-system/src/main/java/com/sckw/system/controller/KwsMenuController.java

@@ -5,6 +5,7 @@ import com.sckw.system.model.KwsMenu;
 import com.sckw.system.model.vo.req.FindMenuTreeReqVo;
 import com.sckw.system.model.vo.req.RoleBindMeunReqVo;
 import com.sckw.system.service.KwsMenuService;
+import jakarta.validation.Valid;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -55,7 +56,7 @@ public class KwsMenuController {
      * @date 2023/5/30
      **/
     @PostMapping("/add")
-    public HttpResult add(@RequestBody KwsMenu params) throws Exception {
+    public HttpResult add(@Valid @RequestBody KwsMenu params) throws Exception {
         kwsMenuService.add(params);
         return HttpResult.ok();
     }
@@ -94,7 +95,7 @@ public class KwsMenuController {
      * @date: 2023/6/13
      */
     @PostMapping("/roleBindMeun")
-    public HttpResult roleBindMeun(@RequestBody RoleBindMeunReqVo reqVo) {
+    public HttpResult roleBindMeun(@Valid @RequestBody RoleBindMeunReqVo reqVo) {
         kwsMenuService.roleBindMeun(reqVo);
         return HttpResult.ok();
     }

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

@@ -12,6 +12,7 @@ import com.sckw.system.model.vo.req.ForgetPasswordReqVo;
 import com.sckw.system.model.vo.req.UpdatePasswordReqVo;
 import com.sckw.system.model.vo.req.UserAddReqVo;
 import com.sckw.system.service.KwsUserService;
+import jakarta.validation.Valid;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import java.util.HashMap;
@@ -74,7 +75,7 @@ public class KwsUserController {
      * @date: 2023/6/14
      */
     @PostMapping("/add")
-    public HttpResult add(@RequestBody UserAddReqVo reqVo) {
+    public HttpResult add(@Valid @RequestBody UserAddReqVo reqVo) {
         kwsUserService.add(reqVo);
         return HttpResult.ok();
     }

+ 9 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/dao/KwsUserLoginDao.java

@@ -15,6 +15,15 @@ import java.util.List;
 @Mapper
 public interface KwsUserLoginDao {
 
+    /**
+     * @param kwsUserLogin 实体类
+     * @return int
+     * @desc: 插入
+     * @author: czh
+     * @date: 2023/6/21
+     */
+    int insert(KwsUserLogin kwsUserLogin);
+
     /**
      * 批量新增
      * @param list

+ 3 - 7
sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteUserServiceImpl.java

@@ -4,7 +4,6 @@ import com.sckw.core.exception.SystemException;
 import com.sckw.core.utils.BeanUtils;
 import com.sckw.core.utils.CollectionUtils;
 import com.sckw.system.api.RemoteUserService;
-import com.sckw.system.api.model.dto.req.EntAuthenticationReqDto;
 import com.sckw.system.api.model.dto.req.ForgetPasswordReqDto;
 import com.sckw.system.api.model.dto.req.RegisterReqDto;
 import com.sckw.system.api.model.dto.req.UserLoginReqDto;
@@ -12,7 +11,6 @@ import com.sckw.system.api.model.dto.res.*;
 import com.sckw.system.dao.KwsUserLoginDao;
 import com.sckw.system.model.*;
 import com.sckw.system.model.pojo.FindMenuTreePojo;
-import com.sckw.system.model.vo.req.EntRegisterReqVo;
 import com.sckw.system.model.vo.req.ForgetPasswordReqVo;
 import com.sckw.system.model.vo.res.KwsMenuResVo;
 import com.sckw.system.service.KwsEnterpriseService;
@@ -131,7 +129,7 @@ public class RemoteUserServiceImpl implements RemoteUserService {
     public void saveUserLogin(UserLoginReqDto userLoginReqDto) {
         KwsUserLogin kwsUserLogin = new KwsUserLogin();
         BeanUtils.copyProperties(userLoginReqDto, kwsUserLogin);
-        kwsUserLoginDao.saveBatch(Collections.singletonList(kwsUserLogin));
+        kwsUserLoginDao.insert(kwsUserLogin);
     }
 
     @Override
@@ -156,13 +154,11 @@ public class RemoteUserServiceImpl implements RemoteUserService {
     }
 
     @Override
-    public List<KwsUserResDto> checkUserBase(String account, int systemType) {
+    public List<KwsUserResDto> checkUserBase(String account, int systemType) throws SystemException {
         KwsUser kwsUser = kwsUserService.checkUserBase(account, systemType);
         KwsUserResDto kwsUserService = new KwsUserResDto();
         BeanUtils.copyProperties(kwsUser, kwsUserService);
-        List<KwsUserResDto> list = new ArrayList<>();
-        list.add(kwsUserService);
-        return list;
+        return Collections.singletonList(kwsUserService);
     }
 
 }

+ 8 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/KwsDept.java

@@ -1,6 +1,8 @@
 package com.sckw.system.model;
 
 import com.sckw.core.model.base.BaseModel;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 
 /**
@@ -14,26 +16,31 @@ public class KwsDept extends BaseModel {
     /**
      * 机构类型(1系统管理机构、2平台企业机构)
      */
+    @NotNull(message = "机构类型不能为空")
     private Integer systemType;
 
     /**
      * 企业id
      */
+    @NotNull(message = "企业不能为空")
     private Long entId;
 
     /**
      * 机构名称
      */
+    @NotBlank(message = "机构名称不能为空")
     private String name;
 
     /**
      * 是否是公司(0 机构部门/1 公司)
      */
+    @NotNull(message = "是否是公司类型不能为空")
     private Integer company;
 
     /**
      * 上级机构ID,一级机构为0
      */
+    @NotNull(message = "上级机构不能为空")
     private Long parentId;
 
     /**
@@ -44,6 +51,7 @@ public class KwsDept extends BaseModel {
     /**
      * 机构层级(1更目录、...递增)
      */
+    @NotNull(message = "机构层级不能为空")
     private Integer level;
 
     /**

+ 4 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/KwsEntCheckTrack.java

@@ -1,6 +1,8 @@
 package com.sckw.system.model;
 
 import com.sckw.core.model.base.BaseModel;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -17,6 +19,7 @@ public class KwsEntCheckTrack extends BaseModel {
     /**
      * 企业id
      */
+    @NotNull(message = "企业不能为空")
     private Long entId;
 
     /**
@@ -27,6 +30,7 @@ public class KwsEntCheckTrack extends BaseModel {
     /**
      * 状态:1通过、2未通过
      */
+    @NotNull(message = "审批状态不能为空")
     private Integer status;
 
 }

+ 5 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/KwsMenu.java

@@ -1,6 +1,8 @@
 package com.sckw.system.model;
 
 import com.sckw.core.model.base.BaseModel;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 
 /**
@@ -14,6 +16,7 @@ public class KwsMenu extends BaseModel {
     /**
      * 终端类型(1运营端、2企业PC端、3企业APP、4司机端)
      */
+    @NotNull(message = "终端类型不能为空")
     private Integer clientType;
 
     /**
@@ -24,6 +27,7 @@ public class KwsMenu extends BaseModel {
     /**
      * 名称
      */
+    @NotBlank(message = "菜单名不能为空")
     private String name;
 
     /**
@@ -39,6 +43,7 @@ public class KwsMenu extends BaseModel {
     /**
      * 类型:0目录/1菜单/2按钮
      */
+    @NotNull(message = "菜单类型不能为空")
     private Integer type;
 
     /**

+ 5 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/pojo/FindMenuTreePojo.java

@@ -22,6 +22,11 @@ public class FindMenuTreePojo {
      */
     private String name;
 
+    /**
+     * 企业id
+     */
+    private Long entId;
+
     /**
      * 角色id
      */

+ 7 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/req/EntRegisterReqVo.java

@@ -1,5 +1,7 @@
 package com.sckw.system.model.vo.req;
 
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 
 import java.io.Serial;
@@ -20,6 +22,7 @@ public class EntRegisterReqVo implements Serializable {
     /**
      * 企业id
      */
+    @NotNull(message = "企业不能为空")
     private Long entId;
 
     /**
@@ -30,16 +33,19 @@ public class EntRegisterReqVo implements Serializable {
     /**
      * 企业名称
      */
+    @NotBlank(message = "企业名称不能为空")
     private String firmName;
 
     /**
      * 企业编号
      */
+    @NotBlank(message = "企业编号不能为空")
     private String code;
 
     /**
      * 企业联系人
      */
+    @NotBlank(message = "企业联系人不能为空")
     private String contacts;
 
     /**
@@ -65,6 +71,7 @@ public class EntRegisterReqVo implements Serializable {
     /**
      * 企业类型 多个类型用","隔开
      */
+    @NotBlank(message = "企业类型不能为空")
     private String entTypes;
 
     /**

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

@@ -1,13 +1,23 @@
 package com.sckw.system.model.vo.req;
 
+import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 import org.apache.logging.log4j.core.config.plugins.validation.constraints.NotBlank;
 
+import java.io.Serial;
 import java.io.Serializable;
 
+/**
+ * @desc: 忘记密码入参
+ * @author: czh
+ * @date: 2023/6/21
+ */
 @Data
 public class ForgetPasswordReqVo implements Serializable {
 
+    @Serial
+    private static final long serialVersionUID = 688115923636184189L;
+
     /**
      * 账号
      */
@@ -29,6 +39,7 @@ public class ForgetPasswordReqVo implements Serializable {
     /**
      * 系统类型(1运营端、2企业开户)
      */
+    @NotNull(message = "系统类型不能为空")
     private int systemType;
 
 }

+ 5 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/req/RoleBindMeunReqVo.java

@@ -1,5 +1,7 @@
 package com.sckw.system.model.vo.req;
 
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 
 import java.io.Serial;
@@ -19,16 +21,19 @@ public class RoleBindMeunReqVo implements Serializable {
     /**
      * 角色ID
      */
+    @NotNull(message = "角色不能为空")
     private long roleId;
 
     /**
      * 企业id
      */
+    @NotNull(message = "企业不能为空")
     private long entId;
 
     /**
      * 菜单ID,多个用","隔开
      */
+    @NotBlank(message = "菜单不能为空")
     private String menuIds;
 
     /**

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

@@ -1,13 +1,23 @@
 package com.sckw.system.model.vo.req;
 
+import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 import org.apache.logging.log4j.core.config.plugins.validation.constraints.NotBlank;
 
+import java.io.Serial;
 import java.io.Serializable;
 
+/**
+ * @desc: 修改密码入参
+ * @author: czh
+ * @date: 2023/6/21
+ */
 @Data
 public class UpdatePasswordReqVo implements Serializable {
 
+    @Serial
+    private static final long serialVersionUID = 4911945623876338313L;
+
     /**
      * 账号
      */
@@ -29,6 +39,7 @@ public class UpdatePasswordReqVo implements Serializable {
     /**
      * 系统类型(1运营端、2企业开户)
      */
+    @NotNull(message = "系统类型不能为空")
     private int systemType;
 
 }

+ 9 - 1
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/req/UserAddReqVo.java

@@ -1,5 +1,7 @@
 package com.sckw.system.model.vo.req;
 
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 
 import java.io.Serial;
@@ -19,11 +21,13 @@ public class UserAddReqVo implements Serializable {
     /**
      * 系统类型(1运营端、2企业开户)
      */
+    @NotNull(message = "系统类型不能为空")
     private Integer systemType;
 
     /**
      * 账号
      */
+    @NotBlank(message = "系统类型不能为空")
     private String account;
 
     /**
@@ -32,13 +36,15 @@ public class UserAddReqVo implements Serializable {
     private String password;
 
     /**
-     * 用户
+     * 
      */
+    @NotBlank(message = "姓名不能为空")
     private String name;
 
     /**
      * 手机号
      */
+    @NotBlank(message = "手机号不能为空")
     private String telephone;
 
     /**
@@ -59,11 +65,13 @@ public class UserAddReqVo implements Serializable {
     /**
      * 是否是企业管理(1是 0否)
      */
+    @NotNull(message = "用户身份不能为空")
     private Integer isMain;
 
     /**
      * 分配的角色id,多个用","隔开
      */
+    @NotBlank(message = "岗位不能为空")
     private String roleIds;
 
 }

+ 4 - 9
sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsEnterpriseService.java

@@ -19,7 +19,6 @@ import com.sckw.core.utils.IdWorker;
 import com.sckw.core.utils.StringUtils;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.context.LoginUserHolder;
-import com.sckw.core.web.response.HttpResult;
 import com.sckw.system.api.model.dto.req.RegisterReqDto;
 import com.sckw.system.dao.*;
 import com.sckw.system.model.*;
@@ -227,14 +226,6 @@ public class KwsEnterpriseService {
         return kwsEnterpriseDao.findList(reqVo);
     }
 
-    /**
-     * @param params 参数校验
-     * @desc: 参数校验
-     * @author: czh
-     * @date: 2023/6/19
-     */
-    public void paramsCheck(KwsEnterprise params) {
-    }
 
     /**
      * 新增企业(注册)
@@ -407,4 +398,8 @@ public class KwsEnterpriseService {
         /*2、认证*/
         register(reqVo);
     }
+
+    public List<KwsEntCheckTrack> entCheck(Long entId) {
+        return kwsEntCheckTrackDao.findList(entId);
+    }
 }

+ 9 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsRoleService.java

@@ -6,6 +6,7 @@ import com.sckw.core.model.constant.Global;
 import com.sckw.core.utils.CollectionUtils;
 import com.sckw.core.utils.IdWorker;
 import com.sckw.core.utils.StringUtils;
+import com.sckw.core.web.config.CustomConfig;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.core.web.response.HttpResult;
@@ -19,6 +20,7 @@ import com.sckw.system.model.vo.req.UserBindRoleReqVo;
 import com.sckw.system.model.vo.res.IdResVo;
 import com.sckw.system.model.vo.res.KwsDeptResVo;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -47,6 +49,9 @@ public class KwsRoleService {
     @Autowired
     KwsMenuService kwsMenuServicel;
 
+    @Autowired
+    CustomConfig customConfig;
+
     /**
      * @param  params KwsRole
      * @desc: 单表插入
@@ -195,6 +200,10 @@ public class KwsRoleService {
     public void userBindRole(UserBindRoleReqVo reqVo) {
         /*1、存用户角色信息*/
         String[] roleIdArr = reqVo.getRoleIds().split(",");
+        if (customConfig.getIsBindManyRole() == Global.NO && roleIdArr.length > 1) {
+            throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.MSG_006);
+        }
+
         List<KwsUserRole> kwsUserRolelist = new ArrayList<>();
         Date date = new Date();
         Long userId = LoginUserHolder.getUserId();

+ 4 - 22
sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsUserService.java

@@ -62,7 +62,7 @@ public class KwsUserService {
         BeanUtils.copyProperties(reqVo, kwsUser);
 
         /*1、数据校验*/
-        paramsCheck(kwsUser);
+        checkAccountValid(kwsUser.getAccount(), kwsUser.getSystemType());
 
         /*2、填充密码*/
         fillPassword(kwsUser);
@@ -229,24 +229,6 @@ public class KwsUserService {
         return kwsUserDao.findList(params);
     }
 
-    /**
-     * 参数校验
-     */
-    public void paramsCheck(KwsUser kwsUser) {
-        //用户账号必填校验
-        if (StringUtils.isBlank(kwsUser.getAccount())) {
-            throw new SystemException(HttpStatus.PARAMETERS_MISSING_CODE, HttpStatus.ACCOUNT_MISSING);
-        }
-
-        //用户账号唯一性校验
-        List<KwsUser> users = kwsUserDao.findList(kwsUser);
-        if (CollectionUtils.isNotEmpty(users)) {
-            throw new SystemException(HttpStatus.PARAMETERS_MISSING_CODE, HttpStatus.ACCOUNT_EXISTS);
-        }
-
-    }
-
-
     /**
      * 根据用户名查用户信息
      */
@@ -350,13 +332,13 @@ public class KwsUserService {
     }
 
     /**
-     * @param reqVo 校验账号有效性入参
+     * @param account 账号 systemType系统类型
      * @desc: 校验账号有效性,存在抛异常用户账号已存在
      * @author: czh
      * @date: 2023/6/16
      */
-    public void checkAccountValid(CheckAccountValidReqVo reqVo) {
-        if (!Objects.isNull(getUserByAccount(reqVo.getAccount(), reqVo.getSystemType()))) {
+    public void checkAccountValid(String account, Integer systemType) {
+        if (!Objects.isNull(getUserByAccount(account, systemType))) {
             throw new SystemException(HttpStatus.PARAMETERS_MISSING_CODE, HttpStatus.ACCOUNT_EXISTS);
         }
     }

+ 3 - 0
sckw-modules/sckw-system/src/main/resources/mapper/KwsEntCheckTrackDao.xml

@@ -109,5 +109,8 @@
     </set>
     where id = #{id,jdbcType=BIGINT}
   </update>
+    <select id="findList" resultType="com.sckw.system.model.KwsEntCheckTrack">
+      select * from kws_ent_check_track where ent_id = #{entId} order by create_time
+    </select>
 
 </mapper>

+ 67 - 23
sckw-modules/sckw-system/src/main/resources/mapper/KwsUserLoginDao.xml

@@ -4,23 +4,23 @@
     <insert id="saveBatch" parameterType="com.sckw.system.model.KwsUserLogin">
       insert into kws_user_login
       <trim prefix="(" suffix=")" suffixOverrides=",">
-        id,
-        pid,
-        ip,
-        user_agent,
-        user_id,
-        token,
-        valid_time,
-        first,
-        lock,
-        type,
-        out_time,
-        source,
-        create_by,
-        create_time,
-        update_by,
-        update_time,
-        del_flag
+        `id`,
+        `pid`,
+        `ip`,
+        `user_agent`,
+        `user_id`,
+        `token`,
+        `valid_time`,
+        `first`,
+        `lock`,
+        `type`,
+        `out_time`,
+        `source`,
+        `create_by`,
+        `create_time`,
+        `update_by`,
+        `update_time`,
+        `del_flag`
       </trim>
       values
       <foreach collection="list" item="item" separator=",">
@@ -29,7 +29,7 @@
           #{item.pid, jdbcType=VARCHAR},
           #{item.ip, jdbcType=VARCHAR},
           #{item.userAgent, jdbcType=VARCHAR},
-          #{item.user_id, jdbcType=BIGINT},
+          #{item.userId, jdbcType=BIGINT},
           #{item.token, jdbcType=VARCHAR},
           #{item.validTime, jdbcType=VARCHAR},
           #{item.first, jdbcType=INTEGER},
@@ -46,6 +46,50 @@
       </foreach>
   </insert>
 
+  <insert id="insert">
+    insert into kws_user_login
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      `id`,
+      `pid`,
+      `ip`,
+      `user_agent`,
+      `user_id`,
+      `token`,
+      `valid_time`,
+      `first`,
+      `lock`,
+      `type`,
+      `out_time`,
+      `source`,
+      `create_by`,
+      `create_time`,
+      `update_by`,
+      `update_time`,
+      `del_flag`
+    </trim>
+        values
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      #{id, jdbcType=BIGINT},
+      #{pid, jdbcType=VARCHAR},
+      #{ip, jdbcType=VARCHAR},
+      #{userAgent, jdbcType=VARCHAR},
+      #{userId, jdbcType=BIGINT},
+      #{token, jdbcType=VARCHAR},
+      #{validTime, jdbcType=VARCHAR},
+      #{first, jdbcType=INTEGER},
+      #{lock, jdbcType=INTEGER},
+      #{type, jdbcType=INTEGER},
+      #{outTime, jdbcType=TIMESTAMP},
+      #{source, jdbcType=VARCHAR},
+      #{createBy, jdbcType=BIGINT},
+      #{createTime, jdbcType=TIMESTAMP},
+      #{updateBy, jdbcType=BIGINT},
+      #{updateTime, jdbcType=TIMESTAMP},
+      #{delFlag, jdbcType=INTEGER}
+    </trim>
+
+  </insert>
+
 
   <select id="findAllByUserId" resultType="com.sckw.system.model.KwsUserLogin">
     select *
@@ -61,11 +105,11 @@
   </select>
 
   <select id="currentDayLogin" resultType="com.sckw.system.model.KwsUserLogin">
-    select *
-      from kws_user_login
-     where user_id = #{userId}
-       and create_time >= current_date()
-     order by create_time
+    select a.*
+      from kws_user_login a
+     where a.user_id = #{userId}
+       and a.create_time >= current_date()
+     order by a.create_time
      limit 1
   </select>
 </mapper>