Browse Source

修复空指针异常。

lighter 2 years ago
parent
commit
ab191418ea

+ 8 - 0
src/main/java/thyyxxk/webserver/dao/his/redislike/RedisLikeDao.java

@@ -1,5 +1,6 @@
 package thyyxxk.webserver.dao.his.redislike;
 
+import org.apache.ibatis.annotations.Insert;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
@@ -48,6 +49,13 @@ public interface RedisLikeDao {
             "from dj_user_base a, a_employee_mi b where a.code=#{code} and isnull(b.del_flag,0)!=1 and a.code=b.code")
     UserInfo selectUserInfo(@Param("code") String code);
 
+    @Select("select rtrim(code) as code,rtrim(code_rs) as codeRs,rtrim(name) as name from a_employee_mi where code=#{code}")
+    UserInfo selectUserInfoFromHis(@Param("code") String code);
+
+    @Insert("insert into dj_user_base (code, code_rs, name, password, del_flag) " +
+            "values (#{code}, #{codeRs}, #{name}, '123456', 0)")
+    void insertNewUserToDjUserBase(UserInfo user);
+
     @Select("select role_id from dj_user_role where user_code=#{code}")
     List<Integer> selectUserRoles(@Param("code") String code);
 }

+ 4 - 0
src/main/java/thyyxxk/webserver/service/redislike/RedisLikeService.java

@@ -158,6 +158,10 @@ public class RedisLikeService {
         UserInfo userInfo = USER_MAP.get(code);
         if (null == userInfo) {
             userInfo = dao.selectUserInfo(code);
+            if (null == userInfo) {
+                userInfo = dao.selectUserInfoFromHis(code);
+                dao.insertNewUserToDjUserBase(userInfo);
+            }
             userInfo.setDeptName(getDeptName(userInfo.getDeptCode()));
             userInfo.setRoles(dao.selectUserRoles(code));
             USER_MAP.put(code, userInfo);