mirror of
https://gitcode.com/ageerle/ruoyi-ai.git
synced 2026-04-17 05:43:39 +00:00
增加后台管理,支持docker部署
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
package com.xmzs.common.wechat;
|
||||
|
||||
import com.xmzs.common.wechat.controller.LoginController;
|
||||
import com.xmzs.common.wechat.core.MsgCenter;
|
||||
import com.xmzs.common.wechat.face.IMsgHandlerFace;
|
||||
import org.slf4j.Logger;
|
||||
@@ -12,13 +11,9 @@ public class Wechat {
|
||||
private static final Logger LOG = LoggerFactory.getLogger(Wechat.class);
|
||||
private IMsgHandlerFace msgHandler;
|
||||
|
||||
public Wechat(IMsgHandlerFace msgHandler, String qrPath) {
|
||||
public Wechat(IMsgHandlerFace msgHandler) {
|
||||
System.setProperty("jsse.enableSNIExtension", "false"); // 防止SSL错误
|
||||
this.msgHandler = msgHandler;
|
||||
|
||||
// 登陆
|
||||
LoginController login = new LoginController();
|
||||
login.login(qrPath);
|
||||
}
|
||||
|
||||
public void start() {
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
package com.xmzs.common.wechat.controller;
|
||||
|
||||
|
||||
import com.xmzs.common.core.exception.base.BaseException;
|
||||
import com.xmzs.common.wechat.utils.SleepUtils;
|
||||
import com.xmzs.common.wechat.utils.enums.URLEnum;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@@ -17,74 +19,71 @@ import com.xmzs.common.wechat.utils.tools.CommonTools;
|
||||
* 登陆控制器
|
||||
*
|
||||
* @author https://github.com/yaphone
|
||||
* @date 创建时间:2017年5月13日 下午12:56:07
|
||||
* @version 1.0
|
||||
*
|
||||
* @date 创建时间:2017年5月13日 下午12:56:07
|
||||
*/
|
||||
public class LoginController {
|
||||
private static Logger LOG = LoggerFactory.getLogger(LoginController.class);
|
||||
private ILoginService loginService = new LoginServiceImpl();
|
||||
private static Core core = Core.getInstance();
|
||||
private static Logger LOG = LoggerFactory.getLogger(LoginController.class);
|
||||
private ILoginService loginService = new LoginServiceImpl();
|
||||
private static Core core = Core.getInstance();
|
||||
|
||||
public void login(String qrPath) {
|
||||
if (core.isAlive()) { // 已登陆
|
||||
LOG.info("itchat4j已登陆");
|
||||
return;
|
||||
}
|
||||
while (true) {
|
||||
for (int count = 0; count < 10; count++) {
|
||||
LOG.info("获取UUID");
|
||||
while (loginService.getUuid() == null) {
|
||||
LOG.info("1. 获取微信UUID");
|
||||
while (loginService.getUuid() == null) {
|
||||
LOG.warn("1.1. 获取微信UUID失败,两秒后重新获取");
|
||||
SleepUtils.sleep(2000);
|
||||
}
|
||||
}
|
||||
LOG.info("2. 获取登陆二维码图片");
|
||||
if (loginService.getQR(qrPath)) {
|
||||
break;
|
||||
} else if (count == 10) {
|
||||
LOG.error("2.2. 获取登陆二维码图片失败,系统退出");
|
||||
System.exit(0);
|
||||
}
|
||||
}
|
||||
LOG.info("3. 请扫描二维码图片,并在手机上确认");
|
||||
if (!core.isAlive()) {
|
||||
loginService.login();
|
||||
core.setAlive(true);
|
||||
LOG.info(("登陆成功"));
|
||||
break;
|
||||
}
|
||||
LOG.info("4. 登陆超时,请重新扫描二维码图片");
|
||||
}
|
||||
|
||||
LOG.info("5. 登陆成功,微信初始化");
|
||||
if (!loginService.webWxInit()) {
|
||||
LOG.info("6. 微信初始化异常");
|
||||
System.exit(0);
|
||||
}
|
||||
/**
|
||||
* 获取二维码地址
|
||||
* 风险:已登录账号不可调用该接口,会移除当前core信息
|
||||
* @return
|
||||
*/
|
||||
public String login_1() {
|
||||
if (core.isAlive()) {
|
||||
LOG.warn("微信已登陆");
|
||||
throw new BaseException("微信已登陆");
|
||||
}
|
||||
LOG.info("1.获取微信UUID");
|
||||
while (loginService.getUuid() == null) {
|
||||
LOG.warn("1.1. 获取微信UUID失败,一秒后重新获取");
|
||||
SleepUtils.sleep(1000);
|
||||
}
|
||||
LOG.info("2. 获取登陆二维码图片");
|
||||
return URLEnum.QRCODE_URL.getUrl() + core.getUuid();
|
||||
}
|
||||
|
||||
LOG.info("6. 开启微信状态通知");
|
||||
loginService.wxStatusNotify();
|
||||
|
||||
LOG.info("7. 清除。。。。");
|
||||
CommonTools.clearScreen();
|
||||
LOG.info(String.format("欢迎回来, %s", core.getNickName()));
|
||||
public void login_2() {
|
||||
LOG.info("3. 请扫描二维码图片,并在手机上确认");
|
||||
if (!core.isAlive()) {
|
||||
loginService.login();
|
||||
core.setAlive(true);
|
||||
LOG.info(("登陆成功"));
|
||||
}
|
||||
LOG.info("4. 登陆超时,请重新扫描二维码图片");
|
||||
|
||||
LOG.info("8. 开始接收消息");
|
||||
loginService.startReceiving();
|
||||
|
||||
LOG.info("9. 获取联系人信息");
|
||||
loginService.webWxGetContact();
|
||||
LOG.info("5. 登陆成功,微信初始化");
|
||||
if (!loginService.webWxInit()) {
|
||||
LOG.info("6. 微信初始化异常");
|
||||
System.exit(0);
|
||||
}
|
||||
|
||||
LOG.info("10. 获取群好友及群好友列表");
|
||||
loginService.WebWxBatchGetContact();
|
||||
LOG.info("6. 开启微信状态通知");
|
||||
loginService.wxStatusNotify();
|
||||
|
||||
LOG.info("11. 缓存本次登陆好友相关消息");
|
||||
WechatTools.setUserInfo(); // 登陆成功后缓存本次登陆好友相关消息(NickName, UserName)
|
||||
LOG.info("7. 清除。。。。");
|
||||
CommonTools.clearScreen();
|
||||
LOG.info(String.format("欢迎回来, %s", core.getNickName()));
|
||||
|
||||
LOG.info("12.开启微信状态检测线程");
|
||||
new Thread(new CheckLoginStatusThread()).start();
|
||||
}
|
||||
LOG.info("8. 开始接收消息");
|
||||
loginService.startReceiving();
|
||||
|
||||
LOG.info("9. 获取联系人信息");
|
||||
loginService.webWxGetContact();
|
||||
|
||||
LOG.info("10. 获取群好友及群好友列表");
|
||||
loginService.WebWxBatchGetContact();
|
||||
|
||||
LOG.info("11. 缓存本次登陆好友相关消息");
|
||||
WechatTools.setUserInfo(); // 登陆成功后缓存本次登陆好友相关消息(NickName, UserName)
|
||||
|
||||
LOG.info("12.开启微信状态检测线程");
|
||||
new Thread(new CheckLoginStatusThread()).start();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user