james 1 年之前
父節點
當前提交
865ca6331f
共有 1 個文件被更改,包括 74 次插入120 次删除
  1. 74 120
      service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/WeChatController.java

+ 74 - 120
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/WeChatController.java

@@ -1,15 +1,11 @@
 package com.usky.iot.controller.web;
 
-import cn.hutool.http.HttpUtil;
-import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.usky.common.core.bean.ApiResult;
 import com.usky.common.core.exception.BusinessException;
-import com.usky.common.core.util.HttpUtils;
 import com.usky.common.redis.core.RedisHelper;
 import com.usky.common.security.utils.SecurityUtils;
 import com.usky.iot.constant.constant;
@@ -17,37 +13,22 @@ import com.usky.iot.domain.MceMbuser;
 import com.usky.iot.service.MceMbuserService;
 import com.usky.iot.service.vo.SendWeChatMessageRequestVO;
 import com.usky.iot.service.vo.SignUpRequestVO;
-import com.usky.iot.service.vo.TemplateData;
-import com.usky.iot.service.vo.TemplateMsgEntityVO;
 import lombok.extern.slf4j.Slf4j;
-import ma.glasnost.orika.impl.util.StringUtil;
-import me.chanjar.weixin.common.api.WxConsts;
 import me.chanjar.weixin.common.bean.oauth2.WxOAuth2AccessToken;
 import me.chanjar.weixin.mp.api.WxMpService;
-import me.chanjar.weixin.mp.enums.WxMpApiUrl;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.ExitCodeEvent;
-import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.client.RestTemplate;
-import org.springframework.web.servlet.view.RedirectView;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
-import java.net.URLEncoder;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.Objects;
 
 @RestController
 @RequestMapping("/weChat")
@@ -66,62 +47,51 @@ public class WeChatController {
 
     /**
      * 调用的第一个接口,获取微信公众号CODE,获取openid
+     * @return
      */
     @GetMapping("/getFirst1")
-    public void getFirst1() throws UnsupportedEncodingException {
+    public String getFirst1() throws UnsupportedEncodingException {
         String http = "https://";
         String code = request.getParameter("code");
         String userAgent = request.getHeader("User-Agent");
 
         System.out.println("userAgent:  "+userAgent);
 
-        if(userAgent.contains("MicroMessenger")){ //wx
-            request.getSession().setAttribute("type","wx");
-            if(StringUtils.isBlank(code)){
-                String temp = http+constant.call_back_domain+"/prod-api/service-iot"+request.getRequestURI();
+        if(StringUtils.isBlank(code)){
+            String temp = http+constant.call_back_domain+"/prod-api/service-iot"+request.getRequestURI();
 //                String temp = "https://manager.usky.cn/prod-api/service-iot/weChat/getFirst1";
-                String url = URLDecoder.decode(temp, "UTF-8");
-                String sendUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid="+constant.WE_CHAT_APP_ID+"&redirect_uri="+url+"&response_type=code&scope=snsapi_base&state=abc123#wechat_redirect";
-                try{
-                    System.out.println("sendUrl: "+sendUrl);
-                    response.sendRedirect(sendUrl);
-                }catch (IOException e){
-                    throw new BusinessException(e.getMessage());
-                }
-            }else{
-                System.out.println("code:  "+code);
-                try {
-                    WxOAuth2AccessToken wxOAuth2AccessToken = wxMpService.getOAuth2Service().getAccessToken(code);
-
-                    String openid = wxOAuth2AccessToken.getOpenId();
-                    String access_token = wxOAuth2AccessToken.getAccessToken();
-                    System.out.println("openid:  "+openid);
-                    request.getSession().setAttribute("openid",openid);
-                    LambdaQueryWrapper<MceMbuser> queryWrapper = Wrappers.lambdaQuery();
-                    queryWrapper.select(MceMbuser::getPhone)
-                            .eq(MceMbuser::getOpenid,openid);
-                    MceMbuser one = mceMbuserService.getOne(queryWrapper);
-                    if(one != null){
-                        request.getSession().setAttribute("phone",one.getPhone());
-                    }
-
-                    response.sendRedirect(URLDecoder.decode("https://manager.usky.cn/mobile/#/pages/login?flag=true", "UTF-8"));
-                } catch (Exception e) {
-                    throw new BusinessException(e.getMessage());
-                }
-            }
-
-        }else{ //app
-            System.out.println("code: app +++++  "+code);
-            request.getSession().setAttribute("type","app");
-            request.getSession().setAttribute("app_token","");
+            String url = URLDecoder.decode(temp, "UTF-8");
+            String sendUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid="+constant.WE_CHAT_APP_ID+"&redirect_uri="+url+"&response_type=code&scope=snsapi_base&state=abc123#wechat_redirect";
             try{
-                response.sendRedirect("");
+                System.out.println("sendUrl: "+sendUrl);
+                response.sendRedirect(sendUrl);
             }catch (IOException e){
                 throw new BusinessException(e.getMessage());
             }
+        }else{
+            System.out.println("code:  "+code);
+            try {
+                WxOAuth2AccessToken wxOAuth2AccessToken = wxMpService.getOAuth2Service().getAccessToken(code);
+
+                String openid = wxOAuth2AccessToken.getOpenId();
+                String access_token = wxOAuth2AccessToken.getAccessToken();
+                System.out.println("openid:  "+openid);
+                request.getSession().setAttribute("openid",openid);
+                LambdaQueryWrapper<MceMbuser> queryWrapper = Wrappers.lambdaQuery();
+                queryWrapper.select(MceMbuser::getPhone)
+                        .eq(MceMbuser::getOpenid,openid);
+                MceMbuser one = mceMbuserService.getOne(queryWrapper);
+                if(one != null){
+                    request.getSession().setAttribute("phone",one.getPhone());
+                }
 
+//                response.sendRedirect(URLDecoder.decode("https://manager.usky.cn/mobile/#/pages/login?flag=true", "UTF-8"));
+                return URLDecoder.decode("https://manager.usky.cn/mobile/#/pages/login?flag=true", "UTF-8");
+            } catch (Exception e) {
+                throw new BusinessException(e.getMessage());
+            }
         }
+        return "";
     }
 
     /**
@@ -132,37 +102,60 @@ public class WeChatController {
         String http = "https://";
         String code = request.getParameter("code");
         String userAgent = request.getHeader("User-Agent");
-        if(null != request.getSession().getAttribute("app_token") && (null != request.getSession().getAttribute("phone"))){
-            LambdaQueryWrapper<MceMbuser> queryWrapper = Wrappers.lambdaQuery();
-            queryWrapper.eq(MceMbuser::getPhone,request.getSession().getAttribute("phone"));
-            MceMbuser one = mceMbuserService.getOne(queryWrapper);
-            if(one != null){
-                String sendUrl = "https://manager.usky.cn/mobile/#/pages/index?op="+one.getOpenid();
-                try{
-                    System.out.println("sendUrl: "+sendUrl);
-                    response.sendRedirect(URLDecoder.decode(sendUrl, "UTF-8"));
-                }catch (IOException e){
-                    throw new BusinessException(e.getMessage());
-                }
+        if(!userAgent.contains("MicroMessenger")){
+            try{
+                response.sendRedirect(URLDecoder.decode("https://manager.usky.cn/mobile/#/pages/login", "UTF-8"));
+            }catch (IOException e){
+                throw new BusinessException(e.getMessage());
             }
 
         }else{
-            if(!userAgent.contains("MicroMessenger")){
+            Object obj = request.getSession().getAttribute("openid");
+            if((obj != null) && (StringUtils.isNotBlank(obj.toString()))){
                 try{
-                    response.sendRedirect(URLDecoder.decode("https://manager.usky.cn/mobile/#/pages/login", "UTF-8"));
+                    LambdaQueryWrapper<MceMbuser> queryWrapper = Wrappers.lambdaQuery();
+                    queryWrapper.eq(MceMbuser::getOpenid,request.getSession().getAttribute("openid"));
+                    MceMbuser one = mceMbuserService.getOne(queryWrapper);
+                    if(one != null){
+                        request.getSession().setAttribute("phone",one.getPhone());
+                        String sendUrl = "https://manager.usky.cn/mobile/#/pages/index?op="+one.getOpenid();
+                        response.sendRedirect(URLDecoder.decode(sendUrl, "UTF-8"));
+                    }else{
+                        request.getSession().removeAttribute("openid");
+                        request.getSession().removeAttribute("phone");
+
+                        response.sendRedirect(URLDecoder.decode("https://manager.usky.cn/mobile/#/pages/login", "UTF-8"));
+                    }
                 }catch (IOException e){
                     throw new BusinessException(e.getMessage());
                 }
 
             }else{
-                Object obj = request.getSession().getAttribute("openid");
-                if((obj != null) && (StringUtils.isNotBlank(obj.toString()))){
+                if(StringUtils.isBlank(code)){
+                    String temp = http+constant.call_back_domain+"/prod-api/service-iot"+request.getRequestURI();
+                    String url = URLDecoder.decode(temp, "UTF-8");
+                    String sendUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid="+constant.WE_CHAT_APP_ID+"&redirect_uri="+url+"&response_type=code&scope=snsapi_base&state=abc123#wechat_redirect";
                     try{
+                        System.out.println("sendUrl: "+sendUrl);
+                        response.sendRedirect(sendUrl);
+                    }catch (IOException e){
+                        throw new BusinessException(e.getMessage());
+                    }
+                }else{
+                    System.out.println("code:  "+code);
+                    try {
+                        WxOAuth2AccessToken wxOAuth2AccessToken = wxMpService.getOAuth2Service().getAccessToken(code);
+
+                        String openid = wxOAuth2AccessToken.getOpenId();
+                        String access_token = wxOAuth2AccessToken.getAccessToken();
+                        System.out.println("openid:  "+openid);
+                        request.getSession().setAttribute("openid",openid);
                         LambdaQueryWrapper<MceMbuser> queryWrapper = Wrappers.lambdaQuery();
-                        queryWrapper.eq(MceMbuser::getOpenid,request.getSession().getAttribute("openid"));
+                        queryWrapper.eq(MceMbuser::getOpenid,openid);
                         MceMbuser one = mceMbuserService.getOne(queryWrapper);
                         if(one != null){
                             request.getSession().setAttribute("phone",one.getPhone());
+
                             String sendUrl = "https://manager.usky.cn/mobile/#/pages/index?op="+one.getOpenid();
                             response.sendRedirect(URLDecoder.decode(sendUrl, "UTF-8"));
                         }else{
@@ -171,52 +164,13 @@ public class WeChatController {
 
                             response.sendRedirect(URLDecoder.decode("https://manager.usky.cn/mobile/#/pages/login", "UTF-8"));
                         }
-                    }catch (IOException e){
-                        throw new BusinessException(e.getMessage());
-                    }
 
-                }else{
-                    if(StringUtils.isBlank(code)){
-                        String temp = http+constant.call_back_domain+"/prod-api/service-iot"+request.getRequestURI();
-                        String url = URLDecoder.decode(temp, "UTF-8");
-                        String sendUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid="+constant.WE_CHAT_APP_ID+"&redirect_uri="+url+"&response_type=code&scope=snsapi_base&state=abc123#wechat_redirect";
-                        try{
-                            System.out.println("sendUrl: "+sendUrl);
-                            response.sendRedirect(sendUrl);
-                        }catch (IOException e){
-                            throw new BusinessException(e.getMessage());
-                        }
-                    }else{
-                        System.out.println("code:  "+code);
-                        try {
-                            WxOAuth2AccessToken wxOAuth2AccessToken = wxMpService.getOAuth2Service().getAccessToken(code);
-
-                            String openid = wxOAuth2AccessToken.getOpenId();
-                            String access_token = wxOAuth2AccessToken.getAccessToken();
-                            System.out.println("openid:  "+openid);
-                            request.getSession().setAttribute("openid",openid);
-                            LambdaQueryWrapper<MceMbuser> queryWrapper = Wrappers.lambdaQuery();
-                            queryWrapper.eq(MceMbuser::getOpenid,openid);
-                            MceMbuser one = mceMbuserService.getOne(queryWrapper);
-                            if(one != null){
-                                request.getSession().setAttribute("phone",one.getPhone());
-
-                                String sendUrl = "https://manager.usky.cn/mobile/#/pages/index?op="+one.getOpenid();
-                                response.sendRedirect(URLDecoder.decode(sendUrl, "UTF-8"));
-                            }else{
-                                request.getSession().removeAttribute("openid");
-                                request.getSession().removeAttribute("phone");
-
-                                response.sendRedirect(URLDecoder.decode("https://manager.usky.cn/mobile/#/pages/login", "UTF-8"));
-                            }
-
-
-                        } catch (Exception e) {
-                            throw new BusinessException(e.getMessage());
-                        }
-                    }
 
+                    } catch (Exception e) {
+                        throw new BusinessException(e.getMessage());
+                    }
                 }
+
             }
         }