소스 검색

1、修改登录相关

zhoux 2 년 전
부모
커밋
8d96828bc5

+ 15 - 0
src/main/java/com/dk/oauth/entity/UserLogin.java

@@ -9,8 +9,10 @@ import com.dk.common.exception.BaseBusinessException;
 import com.dk.common.infrastructure.annotaiton.ExportTitle;
 import com.dk.common.infrastructure.enums.ErrorCodeEnum;
 import com.dk.common.infrastructure.handler.IntListTypeHandler;
+import com.dk.common.infrastructure.handler.TimestampTypeHandler;
 import com.dk.common.model.pojo.PageInfo;
 import com.dk.common.response.ResponseResultUtil;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
@@ -20,6 +22,7 @@ import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
 
 import java.io.Serializable;
+import java.time.LocalDateTime;
 import java.util.List;
 
 /**
@@ -83,6 +86,18 @@ public class UserLogin extends PageInfo<UserLogin> implements Serializable {
      */
     @ApiModelProperty(value = "未选择所属应用")
     private String appCode;
+    /**
+     * 登录的令牌
+     */
+    @ApiModelProperty(value = "登录的令牌")
+    private String tokenKey;
+
+    /**
+     * 更新时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opUpdateTime;
 
     /**
      * @desc   : 校验用户是否可登录

+ 14 - 0
src/main/java/com/dk/oauth/mapper/UserMapper.java

@@ -71,4 +71,18 @@ public interface UserMapper  extends BaseMapper<UserLogin> {
      * @date : 2024-02-18 15:21
      */
     UserLogin selectById(@Param("cpId") Integer cpId);
+
+    /**
+     * @desc : 插入用户状态
+     * @author : 周兴
+     * @date : 2024-03-14 14:12
+     */
+    int insertOrUpdateUserLogin(UserLogin userLogin);
+
+    /**
+     * @desc : 获取用户状态
+     * @author : 周兴
+     * @date : 2023/2/7 14:45
+     */
+    Map<String, Object> selectUserLogin(@Param("userId") String userId,String appCode);
 }

+ 8 - 3
src/main/java/com/dk/oauth/service/impl/AuthAccessTokenServiceImpl.java

@@ -40,6 +40,8 @@ import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.File;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
@@ -351,7 +353,6 @@ public class AuthAccessTokenServiceImpl extends ServiceImpl<AuthAccessTokenMappe
 
         username = userLogin.getUserName();
         userId = String.valueOf(userLogin.getUserId());
-
         // endregion
 
         //当前公司
@@ -382,6 +383,12 @@ public class AuthAccessTokenServiceImpl extends ServiceImpl<AuthAccessTokenMappe
                 log.info("---->>>SecurityUtils.getSubject().isAuthenticated() = " + SecurityUtils.getSubject().isAuthenticated());
                 // endregion
 
+                // 记录工号状态
+//                userMapper.insertOrUpdateUserLogin();
+                UserLogin ul =  new UserLogin().setUserId(userId).setAppCode(userLogin.getAppCode())
+                        .setTokenKey(accessToken).setOpUpdateTime(LocalDateTime.now());
+//                stringRedisTemplate.opsForValue().set(Constant.RedisConstant.REDIS_USER_LOGIN.getName(), JSONObject.toJSONString(ul), 5, TimeUnit.MINUTES);
+
                 // region 加密accessToken
                 try {
                     accessToken = AESSecurityUtil.encrypt(AESKey, accessToken);
@@ -389,7 +396,6 @@ public class AuthAccessTokenServiceImpl extends ServiceImpl<AuthAccessTokenMappe
                     logger.error("sorry,accessToken({}) encode faild!!", accessToken);
                 }
 
-
             }
         }
 
@@ -397,7 +403,6 @@ public class AuthAccessTokenServiceImpl extends ServiceImpl<AuthAccessTokenMappe
                 .setByUserLogin(userLogin)
                 .setAccessToken(accessToken)
                 .setCompany(company)
-//                .setMenuList(userMapper.getMenuByUser(userLogin.getAppCode(),userId,company.getCpId(),"zh_CN"))
                 ;
 
         return ResponseResultUtil.success(userLoginSuccess);

+ 34 - 0
src/main/resources/mapper/UserMapper.xml

@@ -59,4 +59,38 @@
         update dkic_a.t_wx_user set current_cp = #{currentCp},joined_cps = #{joinedCps,typeHandler=IntListTypeHandler}
         where user_id = #{userId}::uuid
     </update>
+
+    <!--新建用户状态表-->
+    <insert id="insertOrUpdateUserLogin">
+        insert into  dkic_a.t_wx_user_login
+        (
+        <trim suffixOverrides=",">
+            user_id,
+            app_code,
+            token_key,
+            op_update_time,
+        </trim>
+        )
+        values
+        (
+        <trim suffixOverrides=",">
+            #{userId} ::uuid,
+            #{appCode},
+            #{tokenKey},
+            #{opUpdateTime ,typeHandler=TimestampTypeHandler},
+        </trim>
+        )
+        on conflict (user_id,app_code) do update set
+        token_key = excluded."token_key",
+        op_update_time = excluded."op_update_time";
+    </insert>
+
+    <!--查询用户状态-->
+    <select id="selectUserLogin" resultType="java.util.Map">
+        SELECT
+            user_id AS "userId", app_code AS "appCode", token_key AS "tokenKey", op_update_time AS "opUpdateTime"
+        FROM dkic_a.t_wx_user_login
+        WHERE user_id = #{userId}::uuid
+        AND app_code = #{appCode}
+    </select>
 </mapper>