From ccb39e91f2feaeafa2d89440c84d14db22bf856f Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期四, 22 五月 2025 10:47:01 +0800 Subject: [PATCH] FastJson的Configuration中去掉不推荐应用的JSONWriter.Feature.MapSortField(对map进行排序) --- pms-parent/pms-web-wechat/src/main/java/com/dy/pmsWechat/login/WeChatService.java | 36 ++++++++++++++++++++++++++++++++++-- 1 files changed, 34 insertions(+), 2 deletions(-) diff --git a/pms-parent/pms-web-wechat/src/main/java/com/dy/pmsWechat/login/WeChatService.java b/pms-parent/pms-web-wechat/src/main/java/com/dy/pmsWechat/login/WeChatService.java index ecc98e2..983e4d9 100644 --- a/pms-parent/pms-web-wechat/src/main/java/com/dy/pmsWechat/login/WeChatService.java +++ b/pms-parent/pms-web-wechat/src/main/java/com/dy/pmsWechat/login/WeChatService.java @@ -1,11 +1,16 @@ package com.dy.pmsWechat.login; import com.alibaba.fastjson2.JSONObject; +import com.dy.pmsGlobal.daoMp.MpOpenIdMapper; +import com.dy.pmsGlobal.pojoMp.MpOpenId; +import com.dy.pmsWechat.util.JwtUtil; import com.dy.pmsWechat.util.RestTemplateUtil; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.io.IOException; +import java.util.Date; import java.util.HashMap; import java.util.Map; @@ -21,10 +26,22 @@ @Value("${wechat.loginUrl}") private String loginUrl; + @Value("${wechat.jwt.secret-key}") + private String secretKey; + + @Value("${wechat.jwt.ttl}") + private long ttlMillis; + private final RestTemplateUtil restTemplateUtil; + private MpOpenIdMapper mpOpenIdDao; public WeChatService(RestTemplateUtil restTemplateUtil) { this.restTemplateUtil = restTemplateUtil; + } + + @Autowired + private void setMpOpenIdDao(MpOpenIdMapper mpOpenIdDao) { + this.mpOpenIdDao = mpOpenIdDao; } public JSONObject login(String code) throws IOException { @@ -34,7 +51,22 @@ queryParams.put("js_code", code); queryParams.put("grant_type", "authorization_code"); Map<String, String> headerParams = new HashMap<>(); - return restTemplateUtil.get(loginUrl, queryParams, headerParams); - + JSONObject wxMpUser = restTemplateUtil.get(loginUrl, queryParams, headerParams); + String openId = wxMpUser.get("openid").toString(); + //鑾峰彇寰俊淇℃伅娣诲姞鍒版暟鎹簱 //鍏堟牴鎹畂penid鏌ヨ鐢ㄦ埛淇℃伅 + MpOpenId userInfo = mpOpenIdDao.getInfoByOpenId(openId); + if(userInfo == null){ //鏁版嵁搴撴病鏈夋椂娣诲姞鍒版暟鎹簱涓� + userInfo = new MpOpenId(); + userInfo.setOpenId(openId); + userInfo.setCreateTime(new Date()); + mpOpenIdDao.insert(userInfo); + } + //鎺堟潈瀹屾垚涔嬪悗锛岃烦杞埌鍏蜂綋鐨勫姛鑳介〉闈� + //鐢熸垚token,鎸夌収涓�瀹氳鍒欑敓鎴愬瓧绗︿覆锛屽彲浠ュ寘鍚敤鎴蜂俊鎭� + //鐧婚檰controller涓敓鎴愶紝杩斿洖缁欏鎴风 + Map<String, Object> claims = new HashMap<>(); + claims.put("openId",openId); + String token = JwtUtil.createJwt(secretKey,ttlMillis,claims); + return new JSONObject().fluentPut("token",token); } } \ No newline at end of file -- Gitblit v1.8.0