diff --git a/pom.xml b/pom.xml
index 94c31d92..4f1706c4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -254,6 +254,13 @@
1.6.3
+
+
+ commons-codec
+ commons-codec
+ 1.13
+
+
diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java b/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java
index fff457a7..c5ab3395 100644
--- a/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java
+++ b/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java
@@ -17,11 +17,17 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
+import org.springframework.web.servlet.mvc.support.RedirectAttributes;
+
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
+import java.time.Duration;
+import java.time.Instant;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
import java.util.*;
/**
@@ -116,6 +122,10 @@ public class PageController {
*/
@GetMapping("/login")
public ModelAndView login(HttpServletRequest request) {
+ String msg = (String)request.getParameter("msg");
+ if(msg!=null && msg.length()>0){
+
+ }
ModelAndView mv = new ModelAndView();
JSONObject captcha = PublicConfig.Captcha(request);
String picPath = (String) captcha.get("picPath");
@@ -123,6 +133,9 @@ public class PageController {
mv.addObject("picPath", picPath);
mv.addObject("captchaid", captchaid);
mv.addObject("userWxId", "");
+ if(msg!=null && msg.length()>0){
+ mv.addObject("msg", msg);
+ }
mv.setViewName("pages/user/login");
return mv;
}
@@ -185,6 +198,74 @@ public class PageController {
}
+ /**
+ * 数通智联无感登录
+ *
+ * @param request
+ * @return
+ */
+ @GetMapping("/insensibleLogin")
+ public String insensibleLogin(HttpServletRequest request, RedirectAttributes attr) {
+ long javaTime = System.currentTimeMillis();
+ ModelAndView mv = new ModelAndView();
+ Boolean flag = false;
+ String msg = "";
+ String userkey1 = (String)request.getParameter("userkey");
+ String usertoken1 = (String)request.getParameter("usertoken");
+ String sing1 = (String)request.getParameter("sing");
+ String time1 = (String)request.getParameter("time");
+ if (null != userkey1 && userkey1.length() != 0 && null != usertoken1 && usertoken1.length() != 0 && null != sing1 && sing1.length() != 0 && null != time1 && time1.length() != 0){
+ long time1Long = Long.parseLong(time1);
+ // 将时间戳转换为LocalDateTime对象
+ LocalDateTime dateTime1 = LocalDateTime.ofInstant(Instant.ofEpochMilli(javaTime), ZoneId.systemDefault());
+ LocalDateTime dateTime2 = LocalDateTime.ofInstant(Instant.ofEpochMilli(time1Long), ZoneId.systemDefault());
+ // 计算时间差
+ Duration duration = Duration.between(dateTime2, dateTime1);
+ //Duration duration = Duration.between(dateTime1, dateTime2);
+ // 获取时间差的毫秒数
+ long diffMillis = duration.toMillis();
+ if(diffMillis<5000){//如果间隔时间不超过5秒
+ String singJava = Md5Util.md5InsensibleLogin(userkey1, usertoken1, time1);
+ if(sing1.equals(singJava)){//校验通过允许无感登录
+ flag = true;
+ }
+ }else{
+ msg = "授权请求超时";
+ }
+ }else{
+ msg = "有空参数";
+ }
+ if(flag){
+ //从redis中获取UserByPort数据并构造对象.
+ Map map = new HashMap<>();
+ map.put("userWxId","");
+ map.put("username","");
+ map.put("password","");
+ map.put("captcha","1");
+ UserByPort userinfo = userService.getUserByKeyAndToken(userkey1,usertoken1);
+ if(null != userinfo){
+ // 设置放入时间
+ userinfo.setInstant(Instant.now());
+ // 将登录用户存储到池中保存
+ AuthenticationTokenPool.addUserToken(usertoken1, userinfo);
+ // 将key与token设置到session中
+ request.getSession().setAttribute("userKey", userkey1);
+ request.getSession().setAttribute("userToken", usertoken1);
+ request.getSession().setMaxInactiveInterval(3 * 60 * 60);
+ }else{
+ msg = "获取用户信息失败";
+ attr.addAttribute("msg", msg);
+ return "redirect:/login";
+ }
+ }else{
+ //校验不通过不能登录,弹窗提示失败原因
+ attr.addAttribute("msg", msg);
+ return "redirect:/login";
+ }
+ return"redirect:/index";
+ }
+
+
/**
* 账号注册,弃用
*
diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/UserByPort.java b/src/main/java/com/dreamchaser/depository_manage/entity/UserByPort.java
index 960584c1..a78bcaeb 100644
--- a/src/main/java/com/dreamchaser/depository_manage/entity/UserByPort.java
+++ b/src/main/java/com/dreamchaser/depository_manage/entity/UserByPort.java
@@ -307,6 +307,9 @@ public class UserByPort {
*/
private long term = DEFAULT_TERM;
+ //version4
+ private String teamid;
+
/**
* 根据时间判断是否有效
*
diff --git a/src/main/java/com/dreamchaser/depository_manage/intercepter/UserInterceptor.java b/src/main/java/com/dreamchaser/depository_manage/intercepter/UserInterceptor.java
index a4a6a0e1..0b6799a4 100644
--- a/src/main/java/com/dreamchaser/depository_manage/intercepter/UserInterceptor.java
+++ b/src/main/java/com/dreamchaser/depository_manage/intercepter/UserInterceptor.java
@@ -32,6 +32,7 @@ public class UserInterceptor extends HandlerInterceptorAdapter {
add("/getMaterialAll");
add("/getCaptchaid");
add("/loginOut");
+ add("/insensibleLogin");
}
};
private static RedisPool redisPool;
diff --git a/src/main/java/com/dreamchaser/depository_manage/service/UserService.java b/src/main/java/com/dreamchaser/depository_manage/service/UserService.java
index 75ca4526..698e3bcc 100644
--- a/src/main/java/com/dreamchaser/depository_manage/service/UserService.java
+++ b/src/main/java/com/dreamchaser/depository_manage/service/UserService.java
@@ -104,4 +104,6 @@ public interface UserService {
* @return
*/
Boolean isUserNeiQin(Long id);
+
+ UserByPort getUserByKeyAndToken(String userkey1, String usertoken1);
}
diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/UserServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/UserServiceImpl.java
index e9877917..0ec8a61f 100644
--- a/src/main/java/com/dreamchaser/depository_manage/service/impl/UserServiceImpl.java
+++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/UserServiceImpl.java
@@ -1,19 +1,20 @@
package com.dreamchaser.depository_manage.service.impl;
+import com.dreamchaser.depository_manage.config.PublicConfig;
import com.dreamchaser.depository_manage.entity.Administration;
import com.dreamchaser.depository_manage.entity.UserByPort;
import com.dreamchaser.depository_manage.hrNew_mapper.AdministrativeMapper;
import com.dreamchaser.depository_manage.hrNew_mapper.UserMapper;
+import com.dreamchaser.depository_manage.intercepter.UserInterceptor;
import com.dreamchaser.depository_manage.pojo.UserByPortP;
+import com.dreamchaser.depository_manage.security.pool.RedisPool;
import com.dreamchaser.depository_manage.service.AdministrativeService;
import com.dreamchaser.depository_manage.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
@Service
public class UserServiceImpl implements UserService {
@@ -24,6 +25,16 @@ public class UserServiceImpl implements UserService {
@Autowired
private AdministrativeService administrativeService;
+ private static RedisPool redisPool;
+ private static RedisTemplate redisTemplate;
+
+ @Autowired
+ public void setRedisTemplate(RedisPool redisPool) {
+ UserServiceImpl.redisPool = redisPool;
+ }
+ @Autowired
+ public void setRedisTemplate(RedisTemplate redisTemplate){UserServiceImpl.redisTemplate = redisTemplate;}
+
/**
* 通过id获取用户信息(包装)
@@ -210,6 +221,385 @@ public class UserServiceImpl implements UserService {
return flag;
}
+ /**
+ * 根据userkey和usertoken获取UserByPort
+ * @param userkey1
+ * @param usertoken1
+ * @return
+ */
+ @Override
+ public UserByPort getUserByKeyAndToken(String userkey1, String usertoken1) {
+ Boolean flag = false;
+ int count = 0;
+ String usernumber = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(PublicConfig.LoginRedisPrefix+userkey1,"usernumber");
+ UserByPort userByPort = new UserByPort();
+ if(usernumber!=null && usernumber.length()>0){
+ String redis5UserInfoKey = PublicConfig.userInfoRedisPrefix+usernumber;
+ Set keys1 = redisPool.getRedisTemplateByDb(5).boundHashOps(redis5UserInfoKey).keys();
+ if(keys1.size()>0){
+
+ for(Object item:keys1){
+ //System.out.println(item.toString());
+ String mykey = item.toString();
+ if(mykey != null && mykey.length() > 0){
+ count++;
+ switch(mykey){
+ case "jobstartdate" :
+ String jobstartdate = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"jobstartdate");
+ if(null != jobstartdate && jobstartdate.length()>0){
+ long jobstartdateLong = Long.parseLong(jobstartdate);
+ userByPort.setJobstartdate(jobstartdateLong);
+ }
+ break;
+ case "idcardaddress" :
+ String idcardaddress = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"idcardaddress");
+ if(null != idcardaddress && idcardaddress.length()>0){
+ userByPort.setIdcardaddress(idcardaddress);
+ }
+ break;
+ case "idcardstartdate" :
+ String idcardstartdate = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"idcardstartdate");
+ if(null != idcardstartdate && idcardstartdate.length()>0){
+ long idcardstartdateLong = Long.parseLong(idcardstartdate);
+ userByPort.setIdcardstartdate(idcardstartdateLong);
+ }
+ break;
+ case "maindeparment" :
+ String maindeparment = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"maindeparment");
+ if(null != maindeparment && maindeparment.length()>0){
+ long longstr = Long.parseLong(maindeparment);
+ userByPort.setMaindeparment(longstr);
+ }
+ break;
+ case "probationperiod" :
+ String probationperiod = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"probationperiod");
+ if(null != probationperiod && probationperiod.length()>0){
+ Integer strInt = Integer.parseInt(probationperiod);
+ userByPort.setProbationperiod(strInt);
+ }
+ break;
+ case "adminorg" :
+ String adminorg = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"adminorg");
+ if(null != adminorg && adminorg.length()>0){
+ long longstr = Long.parseLong(adminorg);
+ userByPort.setAdminorg(longstr);
+ }
+ break;
+ case "isveterans" :
+ String isveterans = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"isveterans");
+ if(null != isveterans && isveterans.length()>0){
+ Integer strInt = Integer.parseInt(isveterans);
+ userByPort.setIsveterans(strInt);
+ }
+ break;
+ case "jobid" :
+ String jobid = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"jobid");
+ if(null != jobid && jobid.length()>0){
+ long longstr = Long.parseLong(jobid);
+ userByPort.setJobid(longstr);
+ }
+ break;
+ case "number" :
+ String number = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"number");
+ if(null != number && number.length()>0){
+ userByPort.setNumber(number);
+ }
+ break;
+ case "password" :
+ String password = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"password");
+ if(null != password && password.length()>0){
+ userByPort.setPassword(password);
+ }
+ break;
+ case "veteransnumber" :
+ String veteransnumber = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"veteransnumber");
+ if(null != veteransnumber && veteransnumber.length()>0){
+ userByPort.setVeteransnumber(veteransnumber);
+ }
+ break;
+ case "deparment" :
+ String deparment = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"deparment");
+ if(null != deparment && deparment.length()>0){
+ userByPort.setDeparment(deparment);
+ }
+ break;
+ case "mobilephone" :
+ String mobilephone = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"mobilephone");
+ if(null != mobilephone && mobilephone.length()>0){
+ userByPort.setMobilephone(mobilephone);
+ }
+ break;
+ case "teamid" :
+ String teamid = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"teamid");
+ if(null != teamid && teamid.length()>0){
+ userByPort.setTeamid(teamid);
+ }
+ break;
+ case "id" :
+ String id = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"id");
+ if(null != id && id.length()>0){
+ long longstr = Long.parseLong(id);
+ userByPort.setId(longstr);
+ }
+ break;
+ case "nativeplace" :
+ String nativeplace = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"nativeplace");
+ if(null != nativeplace && nativeplace.length()>0){
+ userByPort.setNativeplace(nativeplace);
+ }
+ break;
+ case "state" :
+ String state = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"state");
+ if(null != state && state.length()>0){
+ Integer strInt = Integer.parseInt(state);
+ userByPort.setState(strInt);
+ }
+ break;
+ case "internaltelephone" :
+ String internaltelephone = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"internaltelephone");
+ if(null != internaltelephone && internaltelephone.length()>0){
+ userByPort.setInternaltelephone(internaltelephone);
+ }
+ break;
+ case "sunmaindeparment" :
+ String sunmaindeparment = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"sunmaindeparment");
+ if(null != sunmaindeparment && sunmaindeparment.length()>0){
+ long longstr = Long.parseLong(sunmaindeparment);
+ userByPort.setSunmaindeparment(longstr);
+ }
+ break;
+ case "currentresidence" :
+ String currentresidence = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"currentresidence");
+ if(null != currentresidence && currentresidence.length()>0){
+ userByPort.setCurrentresidence(currentresidence);
+ }
+ break;
+ case "positionname" :
+ String positionname = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"positionname");
+ if(null != positionname && positionname.length()>0){
+ userByPort.setPositionname(positionname);
+ }
+ break;
+ case "hireclass" :
+ String hireclass = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"hireclass");
+ if(null != hireclass && hireclass.length()>0){
+ Integer strInt = Integer.parseInt(hireclass);
+ userByPort.setHireclass(strInt);
+ }
+ break;
+ case "jobclass" :
+ String jobclass = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"jobclass");
+ if(null != jobclass && jobclass.length()>0){
+ Integer strInt = Integer.parseInt(jobclass);
+ userByPort.setJobclass(strInt);
+ }
+ break;
+ case "political_outlook" :
+ String political_outlook = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"political_outlook");
+ if(null != political_outlook && political_outlook.length()>0){
+ Integer strInt = Integer.parseInt(political_outlook);
+ userByPort.setPoliticaloutlook(strInt);
+ }
+ break;
+ case "emptype" :
+ String emptype = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"emptype");
+ if(null != emptype && emptype.length()>0){
+ Integer strInt = Integer.parseInt(emptype);
+ userByPort.setEmptype(strInt);
+ }
+ break;
+ case "maritalstatus" :
+ String maritalstatus = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"maritalstatus");
+ if(null != maritalstatus && maritalstatus.length()>0){
+ Integer strInt = Integer.parseInt(maritalstatus);
+ userByPort.setMaritalstatus(strInt);
+ }
+ break;
+ case "companyname" :
+ String companyname = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"companyname");
+ if(null != companyname && companyname.length()>0){
+ userByPort.setCompanyname(companyname);
+ }
+ break;
+ case "name" :
+ String name = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"name");
+ if(null != name && name.length()>0){
+ userByPort.setName(name);
+ }
+ break;
+ case "position" :
+ String position = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"position");
+ if(null != position && position.length()>0){
+ long longstr = Long.parseLong(position);
+ userByPort.setPosition(longstr);
+ }
+ break;
+ case "birthday" :
+ String birthday = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"birthday");
+ if(null != birthday && birthday.length()>0){
+ long longstr = Long.parseLong(birthday);
+ userByPort.setBirthday(longstr);
+ }
+ break;
+ case "passportno" :
+ String passportno = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"passportno");
+ if(null != passportno && passportno.length()>0){
+ userByPort.setPassportno(passportno);
+ }
+ break;
+ case "planformaldate" :
+ String planformaldate = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"planformaldate");
+ if(null != planformaldate && planformaldate.length()>0){
+ long longstr = Long.parseLong(planformaldate);
+ userByPort.setPlanformaldate(longstr);
+ }
+ break;
+ case "globalroaming" :
+ String globalroaming = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"globalroaming");
+ if(null != globalroaming && globalroaming.length()>0){
+ userByPort.setGlobalroaming(globalroaming);
+ }
+ break;
+ case "role" :
+ String role = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"role");
+ if(null != role && role.length()>0){
+ userByPort.setRole(role);
+ }
+ break;
+ case "gender" :
+ String gender = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"gender");
+ if(null != gender && gender.length()>0){
+ Integer strInt = Integer.parseInt(gender);
+ userByPort.setGender(strInt);
+ }
+ break;
+ case "constellationing" :
+ String constellationing = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"constellationing");
+ if(null != constellationing && constellationing.length()>0){
+ Integer strInt = Integer.parseInt(constellationing);
+ userByPort.setConstellationing(strInt);
+ }
+ break;
+ case "icon" :
+ String icon = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"icon");
+ if(null != icon && icon.length()>0){
+ userByPort.setIcon(icon);
+ }
+ break;
+ case "entrydate" :
+ String entrydate = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"entrydate");
+ if(null != entrydate && entrydate.length()>0){
+ long longstr = Long.parseLong(entrydate);
+ userByPort.setEntrydate(longstr);
+ }
+ break;
+ case "isadmin" :
+ String isadmin = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"isadmin");
+ if(null != isadmin && isadmin.length()>0){
+ Integer strInt = Integer.parseInt(isadmin);
+ userByPort.setIsadmin(strInt);
+ }
+ break;
+ case "maindeparmentname" :
+ String maindeparmentname = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"maindeparmentname");
+ if(null != maindeparmentname && maindeparmentname.length()>0){
+ userByPort.setMaindeparmentname(maindeparmentname);
+ }
+ break;
+ case "company" :
+ String company = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"company");
+ if(null != company && company.length()>0){
+ long longstr = Long.parseLong(company);
+ userByPort.setCompany(longstr);
+ }
+ break;
+ case "email" :
+ String email = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"email");
+ if(null != email && email.length()>0){
+ userByPort.setEmail(email);
+ }
+ break;
+ case "key" :
+ String key = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"key");
+ if(null != key && key.length()>0){
+ long longstr = Long.parseLong(key);
+ userByPort.setKey(longstr);
+ }
+ break;
+ case "isdoubleworker" :
+ String isdoubleworker = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"isdoubleworker");
+ if(null != isdoubleworker && isdoubleworker.length()>0){
+ Integer strInt = Integer.parseInt(isdoubleworker);
+ userByPort.setIsdoubleworker(strInt);
+ }
+ break;
+ case "wechat" :
+ String wechat = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"wechat");
+ if(null != wechat && wechat.length()>0){
+ userByPort.setWechat(wechat);
+ }
+ break;
+ case "workwechat" :
+ String workwechat = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"workwechat");
+ if(null != workwechat && workwechat.length()>0){
+ userByPort.setWorkwechat(workwechat);
+ }
+ break;
+ case "health" :
+ String health = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"health");
+ if(null != health && health.length()>0){
+ Integer strInt = Integer.parseInt(health);
+ userByPort.setHealth(strInt);
+ }
+ break;
+ case "idcardno" :
+ String idcardno = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"idcardno");
+ if(null != idcardno && idcardno.length()>0){
+ userByPort.setIdcardno(idcardno);
+ }
+ break;
+ case "myfolk" :
+ String myfolk = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"myfolk");
+ if(null != myfolk && myfolk.length()>0){
+ userByPort.setMyfolk(myfolk);
+ }
+ break;
+ case "idcardIssued" :
+ String idcardIssued = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"idcardIssued");
+ if(null != idcardIssued && idcardIssued.length()>0){
+ userByPort.setIdcardIssued(idcardIssued);
+ }
+ break;
+ case "idcardenddate" :
+ String idcardenddate = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"idcardenddate");
+ if(null != idcardenddate && idcardenddate.length()>0){
+ long longstr = Long.parseLong(idcardenddate);
+ userByPort.setIdcardenddate(longstr);
+ }
+ break;
+ case "jobleve" :
+ String jobleve = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"jobleve");
+ if(null != jobleve && jobleve.length()>0){
+ Integer strInt = Integer.parseInt(jobleve);
+ userByPort.setJobleve(strInt);
+ }
+ break;
+ }
+
+ }
+ }
+ if(count>0){
+ flag = true;
+ }
+ }
+ }
+ if(flag){
+ return userByPort;
+ }else{
+ return null;
+ }
+ }
+
public UserByPort packForOne(UserByPort userByPort) {
// 获取当前用户所处部门
diff --git a/src/main/java/com/dreamchaser/depository_manage/utils/Md5Util.java b/src/main/java/com/dreamchaser/depository_manage/utils/Md5Util.java
new file mode 100644
index 00000000..8c3a97b4
--- /dev/null
+++ b/src/main/java/com/dreamchaser/depository_manage/utils/Md5Util.java
@@ -0,0 +1,57 @@
+package com.dreamchaser.depository_manage.utils;
+// 此处需要引入 commons-codec-1.13.jar
+import org.apache.commons.codec.binary.Hex;
+
+import java.nio.charset.StandardCharsets;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+
+/**
+ * Created by Miracle Luna on 2019/11/18
+ */
+public class Md5Util {
+
+ /**
+ * 将数据进行 MD5 加密,并以16进制字符串格式输出
+ * @param data
+ * @return
+ */
+ public static String md5(String data) {
+ try {
+ MessageDigest md = MessageDigest.getInstance("MD5");
+ return Hex.encodeHexString(md.digest(data.getBytes(StandardCharsets.UTF_8)));
+ } catch (NoSuchAlgorithmException e) {
+ e.printStackTrace();
+ }
+ return "";
+ }
+
+ public static String md5InsensibleLogin(String userkey1,String usertoken1,String time1){
+ /**
+ * ## 加密规则
+ *
+ * ```
+ * 1、分解步骤
+ * one = md5(CodeString)+md5(AppKey)
+ * two = md5(one)+AppKey
+ * therr = md5(two)
+ * 2、合并
+ * md5(md5(md5(CodeString)+md5(AppKey))+AppKey)
+ * ```
+ */
+ String codeString = userkey1+usertoken1+time1;
+ String result = "";
+ String appKey = "heng_xin_gao_ke_AppKey";
+ String one = md5(codeString)+md5(appKey);
+ String two = md5(one)+appKey;
+ result = md5(two);
+ return result;
+ }
+
+ /*public static void main(String[] args) {
+ String password = "password";
+ String md5HexStr = md5(password);
+ System.out.println("==> MD5 加密前: " + password);
+ System.out.println("==> MD5 加密后: " + md5HexStr);
+ }*/
+}
\ No newline at end of file
diff --git a/src/main/resources/templates/pages/user/login.html b/src/main/resources/templates/pages/user/login.html
index 0f87c3f6..5b5327c0 100644
--- a/src/main/resources/templates/pages/user/login.html
+++ b/src/main/resources/templates/pages/user/login.html
@@ -188,7 +188,7 @@
-
+
@@ -207,6 +207,10 @@