james před 1 rokem
rodič
revize
1a59381c55

+ 38 - 28
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/WeChatController.java

@@ -1,11 +1,15 @@
 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;
@@ -13,22 +17,39 @@ 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.common.error.WxErrorException;
 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.ServletException;
 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")
@@ -47,10 +68,9 @@ public class WeChatController {
 
     /**
      * 调用的第一个接口,获取微信公众号CODE,获取openid
-     * @return
      */
     @GetMapping("/getFirst1")
-    public String getFirst1() throws UnsupportedEncodingException {
+    public void getFirst1() throws ServletException, IOException, WxErrorException {
         String http = "https://";
         String code = request.getParameter("code");
         String userAgent = request.getHeader("User-Agent");
@@ -62,36 +82,26 @@ public class WeChatController {
 //                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());
-            }
+            System.out.println("sendUrl: "+sendUrl);
+            request.getRequestDispatcher(sendUrl).forward(request,response);
         }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());
+            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());
             }
+
+            request.getRequestDispatcher(URLDecoder.decode("https://manager.usky.cn/mobile/#/pages/login?flag=true", "UTF-8")).forward(request,response);
         }
-        return "";
     }
 
     /**