From 5f3cf501f9f6c216df17ee8af6618b55b537d21a Mon Sep 17 00:00:00 2001 From: yanghui <2536613402@qq.com> Date: 星期五, 21 十月 2022 16:57:54 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/huacheng_test' into local_20221014 --- flower_city/src/main/java/com/dg/core/interceptor/AuthorizationInterceptor.java | 94 +++++++++++++++++++++++++++++++++++++---------- 1 files changed, 74 insertions(+), 20 deletions(-) diff --git a/flower_city/src/main/java/com/dg/core/interceptor/AuthorizationInterceptor.java b/flower_city/src/main/java/com/dg/core/interceptor/AuthorizationInterceptor.java index c4f6854..d06f550 100644 --- a/flower_city/src/main/java/com/dg/core/interceptor/AuthorizationInterceptor.java +++ b/flower_city/src/main/java/com/dg/core/interceptor/AuthorizationInterceptor.java @@ -2,8 +2,11 @@ import com.dg.core.Constant; import com.dg.core.annotation.Authorization; +import com.dg.core.db.gen.entity.HuaChengSysUser; import com.dg.core.db.gen.entity.SysUser; import com.dg.core.manager.TokenManager; +import com.dg.core.service.IHuaChengSysUserService; +import com.dg.core.service.ISysUserRecordService; import org.apache.catalina.connector.ResponseFacade; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -15,10 +18,7 @@ import javax.servlet.http.HttpServletResponse; import java.lang.reflect.Method; import java.nio.charset.StandardCharsets; -import java.text.SimpleDateFormat; -import java.time.ZoneId; -import java.util.Calendar; -import java.util.Date; +import java.time.LocalDateTime; /** * 自定义拦截器,判断此次请求是否有权限 @@ -31,9 +31,17 @@ @Autowired private TokenManager manager; - @Autowired com.dg.core.service.ISysUserService IUserService; + + /** + * 花城e+用户接口 + */ + @Autowired + IHuaChengSysUserService iHuaChengSysUserService; + + @Autowired + private ISysUserRecordService iSysUserRecordService; @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { @@ -48,24 +56,70 @@ //从header中得到token String token = request.getHeader(Constant.AUTHORIZATION); - if (manager.checkToken(token)) { - //如果token验证成功,权限检查通过,将token对应的用户id存在request中,便于之后注入 - request.setAttribute(Constant.CURRENT_USER_ID, manager.getUserId(token)); - SysUser ss = IUserService.getUserById(manager.getUserId(token)); + //花城token + String HCtoken = request.getHeader(Constant.HCAUTHORIZATION); - return true; + if(StringUtils.isEmpty(token)) + { + if (manager.checkHCToken(HCtoken)) { + //如果token验证成功,权限检查通过,将token对应的用户id存在request中,便于之后注入 + request.setAttribute(Constant.CURRENT_USER_ID, manager.getHCUserId(HCtoken)); + System.out.println("花城用户id:"+manager.getHCUserId(HCtoken)); + HuaChengSysUser huaChengSysUser=iHuaChengSysUserService.selectData(manager.getHCUserId(HCtoken)+"","",""); + if(huaChengSysUser!=null && !StringUtils.isEmpty(huaChengSysUser.getUserId()) ) + { + SysUser sysUser = IUserService.selectData(null,huaChengSysUser.getPhone(),null); + if(sysUser==null) + { + //本地没有此用户 新用户 + SysUser newSysUser=new SysUser(); + //默认 1系统后台用户 + newSysUser.setUserType("3"); + newSysUser.setPhonenumber(huaChengSysUser.getPhone()); + newSysUser.setUserId(huaChengSysUser.getUserId()); + newSysUser.setUserName(huaChengSysUser.getNickName()); + newSysUser.setSex(huaChengSysUser.getSex()); + newSysUser.setAvatar(huaChengSysUser.getImageUrl()); + newSysUser.setCreateTime(LocalDateTime.now()); + newSysUser.setUpdateTime(LocalDateTime.now()); + newSysUser.setOpenid(huaChengSysUser.getOpenid()); + IUserService.insertConfig(newSysUser); + } + //新增浏览记录 + iSysUserRecordService.add(sysUser); + //删除因为token问题产出的重复脏数据 + iSysUserRecordService.deleteDistinct(); + } + + return true; + } + + } + else + { + if (manager.checkToken(token)) { + //如果token验证成功,权限检查通过,将token对应的用户id存在request中,便于之后注入 + request.setAttribute(Constant.CURRENT_USER_ID, manager.getUserId(token)); +// SysUser ss = IUserService.selectData(manager.getUserId(token)+""); + return true; + } } - //如果验证token失败,并且方法或类注明了Authorization,返回401错误 - if (method.getAnnotation(Authorization.class) != null || bean.getClass().getAnnotation(Authorization.class) != null) { - String reponse = "{\"result\": 449, \"message\": \"Overdue token\"}"; - response.setStatus(200); - response.setCharacterEncoding(StandardCharsets.UTF_8.toString()); - ResponseFacade facade = (ResponseFacade) response; - facade.setContentLength(reponse.getBytes(StandardCharsets.UTF_8).length); - facade.getWriter().write(reponse); - return false; - } +// if(!StringUtils.isEmpty(token)) +// { + //如果验证token失败,并且方法或类注明了Authorization,返回401错误 + if (method.getAnnotation(Authorization.class) != null || + bean.getClass().getAnnotation(Authorization.class) != null) + { + String reponse = "{\"result\": 449, \"message\": \"Overdue token\"}"; + response.setStatus(200); + response.setCharacterEncoding(StandardCharsets.UTF_8.toString()); + ResponseFacade facade = (ResponseFacade) response; + facade.setContentLength(reponse.getBytes(StandardCharsets.UTF_8).length); + facade.getWriter().write(reponse); + return false; + } +// } return true; } } \ No newline at end of file -- Gitblit v1.7.1