Compare commits
No commits in common. "eb41f35a03fdc283d2e4326040f3281c17811a59" and "7cd08c1d3371c1c037fe045b4cf4bf6507b1aed3" have entirely different histories.
eb41f35a03
...
7cd08c1d33
|
|
@ -243,9 +243,8 @@ public class LoginService {
|
||||||
ThreadPoolManager.execute(AsyncTaskFactory.loginInfoTask(loginUser.getUsername(), LoginStatusEnum.LOGIN_SUCCESS,
|
ThreadPoolManager.execute(AsyncTaskFactory.loginInfoTask(loginUser.getUsername(), LoginStatusEnum.LOGIN_SUCCESS,
|
||||||
LoginStatusEnum.LOGIN_SUCCESS.description()));
|
LoginStatusEnum.LOGIN_SUCCESS.description()));
|
||||||
|
|
||||||
// SysUserEntity entity = caffeineCache.userCache.get(String.valueOf(loginUser.getUserId()));
|
SysUserEntity entity = caffeineCache.userCache.get(String.valueOf(loginUser.getUserId()));
|
||||||
SysUserEntity entity = new SysUserEntity();
|
|
||||||
entity.setUserId(loginUser.getUserId());
|
|
||||||
entity.setLoginIp(ServletUtil.getClientIP(ServletHolderUtil.getRequest()));
|
entity.setLoginIp(ServletUtil.getClientIP(ServletHolderUtil.getRequest()));
|
||||||
entity.setLoginDate(DateUtil.date());
|
entity.setLoginDate(DateUtil.date());
|
||||||
entity.updateById();
|
entity.updateById();
|
||||||
|
|
|
||||||
|
|
@ -1,45 +0,0 @@
|
||||||
package com.agileboot.api.controller;
|
|
||||||
|
|
||||||
import cn.hutool.http.HttpUtil;
|
|
||||||
import cn.hutool.json.JSONUtil;
|
|
||||||
import com.agileboot.common.core.dto.ResponseDTO;
|
|
||||||
import com.agileboot.common.exception.ApiException;
|
|
||||||
import com.agileboot.common.exception.error.ErrorCode;
|
|
||||||
import com.agileboot.domain.wx.WxService;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.springframework.web.bind.annotation.CrossOrigin;
|
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
import org.springframework.web.client.RestClientException;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
@Slf4j
|
|
||||||
@RestController
|
|
||||||
@CrossOrigin(origins = "*", allowedHeaders = "*")
|
|
||||||
@RequiredArgsConstructor
|
|
||||||
@RequestMapping("/api/wx")
|
|
||||||
public class WxController {
|
|
||||||
private final WxService wxService;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取小程序用户OpenID
|
|
||||||
* @param code 微信授权码
|
|
||||||
* @return 包含openid的响应结果
|
|
||||||
* @throws ApiException 当code无效或微信接口调用失败时抛出
|
|
||||||
*/
|
|
||||||
@GetMapping("/mpCodeToOpenId")
|
|
||||||
public ResponseDTO<String> mpCodeToOpenId(String code) {
|
|
||||||
try {
|
|
||||||
String openid = wxService.getSmallOpenid(code);
|
|
||||||
|
|
||||||
return ResponseDTO.ok(openid);
|
|
||||||
} catch (Exception e) {
|
|
||||||
log.error("获取openid失败", e);
|
|
||||||
return ResponseDTO.fail(new ApiException(ErrorCode.Client.COMMON_REQUEST_PARAMETERS_INVALID, e.getMessage()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
package com.agileboot.domain.wx;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
@Data
|
|
||||||
public class WxAccessToken {
|
|
||||||
private String code;
|
|
||||||
private String state;
|
|
||||||
private Integer errcode;
|
|
||||||
private String errmsg;
|
|
||||||
@JsonProperty("access_token")
|
|
||||||
private String accessToken;
|
|
||||||
@JsonProperty("expires_in")
|
|
||||||
private Integer expiresIn;
|
|
||||||
@JsonProperty("refresh_token")
|
|
||||||
private String refreshToken;
|
|
||||||
private String openid;
|
|
||||||
private String scope;
|
|
||||||
private String unionid;
|
|
||||||
@JsonProperty("session_key")
|
|
||||||
private String sessionKey;
|
|
||||||
private Integer sex;
|
|
||||||
private String nickName;
|
|
||||||
private String headImg;
|
|
||||||
}
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
package com.agileboot.domain.wx;
|
|
||||||
|
|
||||||
public class WxConstant {
|
|
||||||
public static final String MpOpenidUrl = "https://api.weixin.qq.com/sns/jscode2session";
|
|
||||||
public static final String MpAppid = "wxb9ab79f2ddd11af0";
|
|
||||||
public static final String MpSecret = "ca211a454b3a1d6189b3f0a946f2ce29";
|
|
||||||
}
|
|
||||||
|
|
@ -1,45 +0,0 @@
|
||||||
package com.agileboot.domain.wx;
|
|
||||||
|
|
||||||
import cn.hutool.http.HttpUtil;
|
|
||||||
import cn.hutool.json.JSONObject;
|
|
||||||
import cn.hutool.json.JSONUtil;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
import static com.agileboot.domain.wx.WxConstant.MpOpenidUrl;
|
|
||||||
|
|
||||||
@Slf4j
|
|
||||||
@Service
|
|
||||||
@RequiredArgsConstructor
|
|
||||||
public class WxService {
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取小程序openid信息
|
|
||||||
* @param code
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public String getSmallOpenid(String code) {
|
|
||||||
String url = MpOpenidUrl +
|
|
||||||
"?appid="+ WxConstant.MpAppid+
|
|
||||||
"&secret="+ WxConstant.MpSecret+
|
|
||||||
"&js_code="+code+
|
|
||||||
"&grant_type=authorization_code";
|
|
||||||
String result = HttpUtil.get(url);
|
|
||||||
if (StringUtils.isBlank(result)){
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
JSONObject jsonObject = JSONUtil.parseObj(result);
|
|
||||||
if (jsonObject.getStr("errcode") != null && !StringUtils.equals(jsonObject.getStr("errcode"), "0")){
|
|
||||||
throw new RuntimeException(jsonObject.getStr("errmsg"));
|
|
||||||
}
|
|
||||||
WxAccessToken wxAccessToken = JSONUtil.toBean(result, WxAccessToken.class);
|
|
||||||
if (wxAccessToken.getOpenid() == null || "".equals(wxAccessToken.getOpenid().trim())) {
|
|
||||||
System.out.println("openid为空");
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return wxAccessToken.getOpenid();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
CREATE TABLE `wx_user` (
|
|
||||||
`wx_user_id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
||||||
`openid` varchar(32) DEFAULT NULL COMMENT 'openid',
|
|
||||||
`ab98_user_id` bigint DEFAULT NULL COMMENT '汇邦云用户ID',
|
|
||||||
`qy_user_id` bigint DEFAULT NULL COMMENT '企业用户id',
|
|
||||||
`nick_name` varchar(50) NOT NULL COMMENT '昵称',
|
|
||||||
`tel` varchar(20) NULL COMMENT '手机号码',
|
|
||||||
`wx_balance` int NOT NULL DEFAULT '0' COMMENT '用户余额(单位:分)',
|
|
||||||
`creator_id` bigint NULL DEFAULT '0' COMMENT '创建者ID',
|
|
||||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
||||||
`updater_id` bigint NULL DEFAULT '0' COMMENT '更新者ID',
|
|
||||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
||||||
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '删除标志(0存在 1删除)',
|
|
||||||
PRIMARY KEY (`wx_user_id`),
|
|
||||||
KEY `idx_openid` (`openid`),
|
|
||||||
KEY `idx_tel` (`tel`),
|
|
||||||
KEY `idx_nick_name` (`nick_name`)
|
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=75 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='微信用户信息表';
|
|
||||||
Loading…
Reference in New Issue