refactor: 清理代码、优化结构
- 移除订阅消息相关代码(WxSubscribeMessageService、subscribeTemplateId配置) - 提取Result类为独立公共类(common.Result) - 拆分Controller: WxLoginController(登录) + AppointmentController(预约) - 引入Lombok(@Data/@Slf4j/@RequiredArgsConstructor)消除样板代码 - 修正WxLoginResult字段命名(session_key->sessionKey+@JsonProperty) - MySQL驱动升级mysql-connector-java->mysql-connector-j - updateStatus SQL增加status='pending'校验防并发重复审批 - pom.xml配置spring-boot-maven-plugin排除lombok
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
package com.example.mini_program.service;
|
||||
|
||||
import com.example.mini_program.config.WxMiniAppConfig;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
import org.json.JSONObject;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -11,7 +13,8 @@ import org.springframework.web.client.RestTemplate;
|
||||
public class WxLoginService {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(WxLoginService.class);
|
||||
private static final String JSCODE2SESSION_URL = "https://api.weixin.qq.com/sns/jscode2session?appid=%s&secret=%s&js_code=%s&grant_type=authorization_code";
|
||||
private static final String JSCODE2SESSION_URL =
|
||||
"https://api.weixin.qq.com/sns/jscode2session?appid=%s&secret=%s&js_code=%s&grant_type=authorization_code";
|
||||
|
||||
private final WxMiniAppConfig wxMiniAppConfig;
|
||||
private final RestTemplate restTemplate;
|
||||
@@ -23,9 +26,6 @@ public class WxLoginService {
|
||||
|
||||
/**
|
||||
* 调用微信接口用code换取openid
|
||||
*
|
||||
* @param code 小程序调用wx.login获取的code
|
||||
* @return 登录结果,包含openid等信息
|
||||
*/
|
||||
public WxLoginResult code2Session(String code) {
|
||||
String url = String.format(JSCODE2SESSION_URL,
|
||||
@@ -33,17 +33,16 @@ public class WxLoginService {
|
||||
wxMiniAppConfig.getSecret(),
|
||||
code);
|
||||
|
||||
logger.info("调用微信jscode2session接口,code: {}", code);
|
||||
logger.info("调用微信jscode2session接口, code: {}", code);
|
||||
|
||||
try {
|
||||
// 微信返回text/plain,手动解析JSON字符串
|
||||
String response = restTemplate.getForObject(url, String.class);
|
||||
logger.info("微信返回原始结果: {}", response);
|
||||
|
||||
JSONObject json = new JSONObject(response);
|
||||
WxLoginResult result = new WxLoginResult();
|
||||
result.setOpenid(json.optString("openid"));
|
||||
result.setSession_key(json.optString("session_key"));
|
||||
result.setSessionKey(json.optString("session_key"));
|
||||
result.setUnionid(json.optString("unionid"));
|
||||
result.setErrcode(json.optString("errcode"));
|
||||
result.setErrmsg(json.optString("errmsg"));
|
||||
@@ -60,52 +59,15 @@ public class WxLoginService {
|
||||
}
|
||||
}
|
||||
|
||||
@Data
|
||||
public static class WxLoginResult {
|
||||
|
||||
private String session_key;
|
||||
@JsonProperty("session_key")
|
||||
private String sessionKey;
|
||||
|
||||
private String unionid;
|
||||
private String openid;
|
||||
private String errcode;
|
||||
private String errmsg;
|
||||
|
||||
public String getSession_key() {
|
||||
return session_key;
|
||||
}
|
||||
|
||||
public void setSession_key(String session_key) {
|
||||
this.session_key = session_key;
|
||||
}
|
||||
|
||||
public String getUnionid() {
|
||||
return unionid;
|
||||
}
|
||||
|
||||
public void setUnionid(String unionid) {
|
||||
this.unionid = unionid;
|
||||
}
|
||||
|
||||
public String getOpenid() {
|
||||
return openid;
|
||||
}
|
||||
|
||||
public void setOpenid(String openid) {
|
||||
this.openid = openid;
|
||||
}
|
||||
|
||||
public String getErrcode() {
|
||||
return errcode;
|
||||
}
|
||||
|
||||
public void setErrcode(String errcode) {
|
||||
this.errcode = errcode;
|
||||
}
|
||||
|
||||
public String getErrmsg() {
|
||||
return errmsg;
|
||||
}
|
||||
|
||||
public void setErrmsg(String errmsg) {
|
||||
this.errmsg = errmsg;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user