diff --git a/ym-admin/pom.xml b/ym-admin/pom.xml
index 132653d..54a505d 100644
--- a/ym-admin/pom.xml
+++ b/ym-admin/pom.xml
@@ -43,6 +43,11 @@
ym-common
1.0-SNAPSHOT
+
+ com.alibaba
+ fastjson
+ 1.2.75
+
diff --git a/ym-admin/src/main/java/com/cnbm/admin/base/BaseSupport.java b/ym-admin/src/main/java/com/cnbm/admin/base/BaseSupport.java
index 64738e3..6779778 100644
--- a/ym-admin/src/main/java/com/cnbm/admin/base/BaseSupport.java
+++ b/ym-admin/src/main/java/com/cnbm/admin/base/BaseSupport.java
@@ -5,18 +5,13 @@
package com.cnbm.admin.base;
-import com.cnbm.admin.entity.LoginUser;
+import com.alibaba.fastjson.JSON;
+import com.cnbm.admin.dto.LoginUserDTO;
import com.cnbm.admin.enums.WhetherEnum;
import lombok.Builder;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.core.NamedThreadLocal;
-import org.springframework.security.authentication.AuthenticationManager;
-import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Service;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
@@ -26,10 +21,6 @@ import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.Serializable;
import java.time.LocalDateTime;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Objects;
-import java.util.concurrent.TimeUnit;
/**
* 接口支持基类
@@ -41,19 +32,40 @@ import java.util.concurrent.TimeUnit;
@Service
public class BaseSupport {
+ protected LoginUserDTO getLoginUser() {
+ // 后续完善拦截器再使用该方式
+// LoginUser loginUser = loginUserHolder.get();
+// if (loginUser != null) {
+// return loginUser;
+// }
+ HttpSession session = getHttpServletRequest().getSession(false);
+ LoginUserDTO loginUser = null;
+ if (session != null) {
+ String loginUserJson = (String) session.getAttribute(LoginUserDTO.HTTP_HEADER_NAME);
+ if (StringUtils.isNotBlank(loginUserJson)) {
+ loginUser = JSON.parseObject(loginUserJson, LoginUserDTO.class);
+ return loginUser;
+ }
+ }
+ return null;
+ }
+
/**
- * 获取当前登录用户信息
+ * 获取当前http请求对象
*
* @return
*/
- protected LoginUser getLoginUser() {
- UsernamePasswordAuthenticationToken authentication = (UsernamePasswordAuthenticationToken) SecurityContextHolder.getContext().getAuthentication();
+ protected HttpServletRequest getHttpServletRequest() {
+ return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
+ }
- if (Objects.isNull(authentication)) {
- LoginUser loginUser = (LoginUser) authentication.getPrincipal();
- return loginUser;
- }
- return null;
+ /**
+ * 获取当前http响应对象
+ *
+ * @return
+ */
+ protected HttpServletResponse getHttpServletResponse() {
+ return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse();
}
@@ -81,11 +93,11 @@ public class BaseSupport {
.enabled(WhetherEnum.YES.getValue())
.valid(WhetherEnum.YES.getValue())
.createTime(LocalDateTime.now())
- .creatorId(getLoginUser().getSysUserEntity().getId())
- .creatorName(getLoginUser().getUsername())
+ .creatorId(getLoginUser().getUserId())
+ .creatorName(getLoginUser().getUserName())
.updateTime(LocalDateTime.now())
- .updaterId(getLoginUser().getSysUserEntity().getId())
- .updaterName(getLoginUser().getUsername())
+ .updaterId(getLoginUser().getUserId())
+ .updaterName(getLoginUser().getUserName())
.build();
BeanUtils.copyProperties(commonField, t, ignoreProperties);
return t;
@@ -105,8 +117,8 @@ public class BaseSupport {
*/
public T setUpdateCommonField(T t) {
CommonField commonField = CommonField.builder()
- .updaterId(getLoginUser().getSysUserEntity().getId())
- .updaterName(getLoginUser().getUsername())
+ .updaterId(getLoginUser().getUserId())
+ .updaterName(getLoginUser().getUserName())
.updateTime(LocalDateTime.now())
.build();
BeanUtils.copyProperties(commonField, t, "enabled", "valid");
diff --git a/ym-admin/src/main/java/com/cnbm/admin/dto/LoginUserDTO.java b/ym-admin/src/main/java/com/cnbm/admin/dto/LoginUserDTO.java
new file mode 100644
index 0000000..46f4177
--- /dev/null
+++ b/ym-admin/src/main/java/com/cnbm/admin/dto/LoginUserDTO.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2018.
+ * http://www.ulabcare.com
+ */
+
+package com.cnbm.admin.dto;
+
+import lombok.Builder;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * @author jiff
+ * @date 2018/11/1
+ * @since 1.0
+ */
+@EqualsAndHashCode(callSuper = false)
+@Builder
+@Data
+@Accessors(chain = true)
+public class LoginUserDTO implements Serializable {
+ public static final String HTTP_HEADER_NAME = "loginUser";
+ public static final int USER_TYPE_PLATFORM = 1;
+ public static final int USER_TYPE_PARTNER = 2;
+ public static final int USER_TYPE_HOSPITAL = 3;
+ public static final int USER_TYPE_PATIENT = 4;
+ /**
+ * 会话ID
+ */
+ private String sessionId;
+ private Long passportUserId;
+ private Long userId;
+ private Long partnerId;
+ private Long hospitalId;
+ private Long orgId;
+ private String mobile;
+ private String userName;
+ /**
+ * 用户类型
+ */
+ private int userType;
+ /**
+ * 应用类型
+ */
+ private int appType;
+ /**
+ * 应用代码
+ */
+ private int appCode;
+ /**
+ * 登录类型:1、自主登录,2、漫游登录
+ */
+ private int loginType;
+ /**
+ * 微信appId
+ */
+ private String wechatAppId;
+ /**
+ * 微信openId
+ */
+ private String openId;
+}