From b5b69ffb1c3893a16e9ed57a68b0db7ca516bd0d Mon Sep 17 00:00:00 2001 From: lidongdong <1459917685@qq.com> Date: 星期六, 15 十月 2022 11:34:02 +0800 Subject: [PATCH] 修改小程序报错 bug --- flower_city/src/main/java/com/dg/core/interceptor/AuthorizationInterceptor.java | 87 +++++++++++++++++++++++++------------------ 1 files changed, 51 insertions(+), 36 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 2ec7af8..fc80d86 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,10 @@ 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 org.apache.catalina.connector.ResponseFacade; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -15,10 +17,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 +30,14 @@ @Autowired private TokenManager manager; - @Autowired com.dg.core.service.ISysUserService IUserService; + + /** + * 花城e+用户接口 + */ + @Autowired + IHuaChengSysUserService iHuaChengSysUserService; @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { @@ -53,26 +57,35 @@ if(StringUtils.isEmpty(token)) { - if(StringUtils.isEmpty(HCtoken)) - { - String reponse = "{\"result\": 448, \"message\": \"token not is null \"}"; - 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; - } - else - { - //花城e+ token - if (manager.checkHCToken(HCtoken)) { - //如果token验证成功,权限检查通过,将token对应的用户id存在request中,便于之后注入 - request.setAttribute(Constant.CURRENT_USER_ID, manager.getHCUserId(HCtoken)); -// SysUser ss = IUserService.selectData(manager.getHCUserId(HCtoken)+""); - return true; + //花城e+ 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 && huaChengSysUser.getUserId()!=0 ) + { + SysUser sysUser = IUserService.selectData(null,huaChengSysUser.getPhone()); + if(sysUser==null && sysUser.getUserId()<0) + { + //本地没有此用户 新用户 + 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); + } } + return true; } + } else { @@ -84,19 +97,21 @@ } } - - //如果验证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