Procházet zdrojové kódy

新增注册功能

邵洋 před 1 rokem
rodič
revize
125c9b2bb2

+ 5 - 0
zksy-common/src/main/java/com/zksy/common/core/domain/model/RegisterBody.java

@@ -11,6 +11,11 @@ import lombok.Data;
 @Data
 public class RegisterBody extends LoginBody
 {
+    /**
+     * 部门
+     */
+    @ApiModelProperty(value = "部门")
+    private Long deptId;
     /**
      * 用户类型
      */

+ 84 - 0
zksy-common/src/main/java/com/zksy/common/utils/AESUtil.java

@@ -0,0 +1,84 @@
+package com.zksy.common.utils;
+
+import com.zksy.common.utils.uuid.UUID;
+import org.mybatis.logging.Logger;
+import org.mybatis.logging.LoggerFactory;
+import org.springframework.util.Base64Utils;
+
+import javax.crypto.Cipher;
+import javax.crypto.spec.IvParameterSpec;
+import javax.crypto.spec.SecretKeySpec;
+import java.nio.charset.StandardCharsets;
+
+public class AESUtil {
+
+    private static final String AES_ = "AES";
+
+    private static Logger log = LoggerFactory.getLogger(AESUtil.class);
+
+    private AESUtil() {
+    }
+
+
+    public static String getKey() {
+        //return UUID.randomUUID().toString().substring(0,32);//256 使用256需要 在编码解码参数加一个16长度的str为参数
+        return UUID.randomUUID().toString().substring(0, 16);//128
+    }
+
+    /**
+     * aes、编码
+     *
+     * @param data   传入需要加密的字符串
+     * @param aesKey aes的key
+     * @return 返回base64
+     */
+    public static String encrypt(String data, String aesKey) {
+        try {
+            //对密码进行编码
+            byte[] bytes = aesKey.getBytes(StandardCharsets.UTF_8);
+            //设置加密算法,生成秘钥
+            SecretKeySpec skeySpec = new SecretKeySpec(bytes, AES_);
+            // "算法/模式/补码方式"
+            Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
+            IvParameterSpec iv = new IvParameterSpec(aesKey.getBytes(StandardCharsets.UTF_8));
+            //选择加密
+            cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv);
+            //根据待加密内容生成字节数组
+            byte[] encrypted = cipher.doFinal(data.getBytes(StandardCharsets.UTF_8));
+            //返回base64字符串
+            return Base64Utils.encodeToString(encrypted);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    /**
+     * aes解码
+     *
+     * @param content 传入base64编码的字符串
+     * @return 返回字符串
+     */
+    public static String decrypt(String content) {
+        try {
+            String aesKey = "4a2c2e36-1ddc-49";
+            //对密码进行编码
+            byte[] bytes = aesKey.getBytes(StandardCharsets.UTF_8);
+            //设置解密算法,生成秘钥
+            SecretKeySpec skeySpec = new SecretKeySpec(bytes, AES_);
+            //偏移
+            IvParameterSpec iv = new IvParameterSpec(aesKey.getBytes(StandardCharsets.UTF_8));
+            // "算法/模式/补码方式"
+            Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
+            //选择解密
+            cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv);
+            //先进行Base64解码
+            byte[] decodeBase64 = Base64Utils.decodeFromString(content);
+            //根据待解密内容进行解密
+            byte[] decrypted = cipher.doFinal(decodeBase64);
+            //将字节数组转成字符串
+            return new String(decrypted);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+}

+ 3 - 5
zksy-framework/src/main/java/com/zksy/framework/web/service/SysLoginService.java

@@ -8,10 +8,7 @@ import com.zksy.common.exception.ServiceException;
 import com.zksy.common.exception.user.CaptchaException;
 import com.zksy.common.exception.user.CaptchaExpireException;
 import com.zksy.common.exception.user.UserPasswordNotMatchException;
-import com.zksy.common.utils.DateUtils;
-import com.zksy.common.utils.MessageUtils;
-import com.zksy.common.utils.ServletUtils;
-import com.zksy.common.utils.StringUtils;
+import com.zksy.common.utils.*;
 import com.zksy.common.utils.ip.IpUtils;
 import com.zksy.framework.manager.AsyncManager;
 import com.zksy.framework.manager.factory.AsyncFactory;
@@ -58,7 +55,8 @@ public class SysLoginService {
      * @param uuid     唯一标识
      * @return 结果
      */
-    public String login(String username, String password, String code, String uuid) {
+    public String login(String username, String password, String code, String uuid){
+        password = AESUtil.decrypt(password);
         boolean captchaOnOff = configService.selectCaptchaOnOff();
         // 验证码开关
         if (captchaOnOff) {

+ 20 - 4
zksy-framework/src/main/java/com/zksy/framework/web/service/SysRegisterService.java

@@ -1,5 +1,6 @@
 package com.zksy.framework.web.service;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.zksy.common.constant.Constants;
 import com.zksy.common.constant.UserConstants;
 import com.zksy.common.core.domain.entity.SysUser;
@@ -7,17 +8,23 @@ import com.zksy.common.core.domain.model.RegisterBody;
 import com.zksy.common.core.redis.RedisCache;
 import com.zksy.common.exception.user.CaptchaException;
 import com.zksy.common.exception.user.CaptchaExpireException;
+import com.zksy.common.utils.AESUtil;
 import com.zksy.common.utils.MessageUtils;
 import com.zksy.common.utils.SecurityUtils;
 import com.zksy.common.utils.StringUtils;
 import com.zksy.framework.manager.AsyncManager;
 import com.zksy.framework.manager.factory.AsyncFactory;
+import com.zksy.system.basicData.domain.CrmHighTechZoneEnterprises;
+import com.zksy.system.basicData.mapper.CrmHighTechZoneEnterprisesMapper;
 import com.zksy.system.service.ISysConfigService;
 import com.zksy.system.service.ISysUserService;
 import com.zksy.system.service.impl.SysUserServiceImpl;
+import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import javax.annotation.Resource;
+
 /**
  * 注册校验方法
  * 
@@ -37,13 +44,21 @@ public class SysRegisterService
 
     @Autowired
     private RedisCache redisCache;
+    @Resource
+    private CrmHighTechZoneEnterprisesMapper crmHighTechZoneEnterprisesMapper;
 
     /**
      * 注册
      */
-    public String register(RegisterBody registerBody)
-    {
+    public String register(RegisterBody registerBody) {
+        LambdaQueryWrapper<CrmHighTechZoneEnterprises> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(CrmHighTechZoneEnterprises::getUnifiedSocialCreditCode,registerBody.getUsername());
+        CrmHighTechZoneEnterprises one = crmHighTechZoneEnterprisesMapper.selectOne(wrapper);
+        if(ObjectUtils.isEmpty(one)){
+            throw new RuntimeException("企业注册账号必须是已入驻企业");
+        }
         String msg = "", username = registerBody.getUsername(), password = registerBody.getPassword();
+        password = AESUtil.decrypt(password);
 
         boolean captchaOnOff = configService.selectCaptchaOnOff();
         // 验证码开关
@@ -78,8 +93,9 @@ public class SysRegisterService
         {
             SysUser sysUser = new SysUser();
             sysUser.setUserName(username);
-            sysUser.setNickName(username);
-            sysUser.setPassword(SecurityUtils.encryptPassword(registerBody.getPassword()));
+            sysUser.setNickName(one.getEnterpriseName());
+            sysUser.setPassword(SecurityUtils.encryptPassword(password));
+            sysUser.setDeptId(registerBody.getDeptId());
             boolean regFlag = userService.registerUser(sysUser);
             if (!regFlag)
             {