谷歌马甲包-代码-清理部分废弃功能
This commit is contained in:
@@ -1,23 +0,0 @@
|
||||
package com.accompany.oauth2.mq;
|
||||
|
||||
import com.accompany.core.vo.UserFirstLoginMsgVO;
|
||||
import com.accompany.mq.producer.MQMessageProducer;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* Created by 恒仔 on 2023/3/12.
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class RocketMQService {
|
||||
|
||||
@Autowired
|
||||
private MQMessageProducer mqMessageProducer;
|
||||
|
||||
public void sendUserFirstLoginMessage(UserFirstLoginMsgVO message) {
|
||||
mqMessageProducer.send(RocketMQConstant.USER_FIRST_LOGIN_TOPIC, message, sendResult -> log.info("sendUserFirstLoginMessage success message: {}", JSON.toJSONString(message)), throwable -> log.error("sendUserFirstLoginMessage fail message: {}", JSON.toJSONString(message), throwable));
|
||||
}
|
||||
}
|
@@ -1,22 +1,15 @@
|
||||
package com.accompany.oauth2.ticket;
|
||||
|
||||
import com.accompany.common.device.DeviceInfo;
|
||||
import com.accompany.common.redis.RedisKey;
|
||||
import com.accompany.common.utils.DateTimeUtil;
|
||||
import com.accompany.common.utils.GetTimeUtils;
|
||||
import com.accompany.core.model.Account;
|
||||
import com.accompany.core.model.AccountLoginRecord;
|
||||
import com.accompany.core.service.account.AccountService;
|
||||
import com.accompany.core.service.account.LoginRecordService;
|
||||
import com.accompany.core.service.account.UserAppService;
|
||||
import com.accompany.core.service.common.JedisService;
|
||||
import com.accompany.core.vo.UserFirstLoginMsgVO;
|
||||
import com.accompany.oauth2.constant.LoginTypeEnum;
|
||||
import com.accompany.oauth2.model.AccountDetails;
|
||||
import com.accompany.oauth2.mq.RocketMQService;
|
||||
import com.accompany.oauth2.service.MyUserDetailsService;
|
||||
import com.accompany.oauth2.vo.TicketVo;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.google.common.collect.Maps;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
@@ -47,12 +40,8 @@ public class TicketServices implements InitializingBean{
|
||||
private UserDetailsService userDetailsService;
|
||||
private TicketEnhancer ticketEnhancer;
|
||||
@Autowired
|
||||
private JedisService jedisService;
|
||||
@Autowired
|
||||
private LoginRecordService loginRecordService;
|
||||
@Autowired
|
||||
private RocketMQService rocketMQService;
|
||||
@Autowired
|
||||
private AccountService accountService;
|
||||
@Autowired
|
||||
private MyUserDetailsService myUserDetailsService;
|
||||
@@ -134,69 +123,6 @@ public class TicketServices implements InitializingBean{
|
||||
return accessTokenExpiresIn > ticketValiditySeconds ? ticketValiditySeconds : accessTokenExpiresIn;
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送首次登陆事件
|
||||
* @param uid
|
||||
* @param deviceInfo
|
||||
*/
|
||||
// @Async
|
||||
public void sendFirstLoginMsg(Long uid, DeviceInfo deviceInfo) {
|
||||
UserFirstLoginMsgVO msg = new UserFirstLoginMsgVO();
|
||||
msg.setUid(uid);
|
||||
msg.setChannel(deviceInfo.getChannel());
|
||||
msg.setDeviceId(deviceInfo.getDeviceId());
|
||||
logger.info("用户登录uid[{}],channel[{}], deviceId {}", uid, deviceInfo.getChannel(), deviceInfo.getDeviceId());
|
||||
boolean dayFirstLogin = isDayFirstLogin(uid);
|
||||
boolean weekFirstLogin = isWeekFirstLogin(uid);
|
||||
if (dayFirstLogin || weekFirstLogin) {
|
||||
msg.setIsDayFirstLogin(dayFirstLogin);
|
||||
msg.setIsWeekFirstLogin(weekFirstLogin);
|
||||
logger.info("发送送赠门票队列, msg {}", JSON.toJSONString(msg));
|
||||
jedisService.hset(RedisKey.mq_user_first_login_status.getKey(), uid.toString(), JSON.toJSONString(msg));
|
||||
rocketMQService.sendUserFirstLoginMessage(msg);
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isDayFirstLogin(Long uid) {
|
||||
String flag = jedisService.hget(RedisKey.user_day_login.getKey(), uid.toString());
|
||||
if (StringUtils.isNotBlank(flag)) {
|
||||
logger.info("当前不是每日首次登陆, uid {}, currTime {}", uid, System.currentTimeMillis());
|
||||
return false;
|
||||
} else {
|
||||
int count = loginRecordService.countLoginRecordToday(uid);
|
||||
if (count != 1) {
|
||||
logger.info("当前不是每日首次登陆, uid {}, currTime {}", uid, System.currentTimeMillis());
|
||||
return false;
|
||||
}
|
||||
logger.info("当前是每日首次登陆, 发送送赠门票队列 uid {}, currTime {}", uid, System.currentTimeMillis());
|
||||
jedisService.hset(RedisKey.user_day_login.getKey(), uid.toString(), Boolean.TRUE.toString());
|
||||
long expireTime = GetTimeUtils.getDayEndTime(new Date()).getTime();
|
||||
jedisService.expireAt(RedisKey.user_day_login.getKey(), expireTime / 1000);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isWeekFirstLogin(Long uid) {
|
||||
String flag = jedisService.hget(RedisKey.user_week_login.getKey(), uid.toString());
|
||||
if (StringUtils.isNotBlank(flag)) {
|
||||
logger.info("当前不是每周首次登陆, uid {}, currTime {}", uid, System.currentTimeMillis());
|
||||
return false;
|
||||
} else {
|
||||
Date beginTimeOfCurrentWeek = DateTimeUtil.getBeginTimeOfCurrentWeek();
|
||||
Date endTimeOfCurrentWeek = DateTimeUtil.getEndTimeOfCurrentWeek();
|
||||
int count = loginRecordService.countLoginRecordBetweenQueryTime(uid, beginTimeOfCurrentWeek, endTimeOfCurrentWeek);
|
||||
if (count != 1) {
|
||||
logger.info("当前不是每周首次登陆, uid {}, currTime {}", uid, System.currentTimeMillis());
|
||||
return false;
|
||||
}
|
||||
logger.info("当前是每周首次登陆, 发送送赠门票队列 uid {}, currTime {}", uid, System.currentTimeMillis());
|
||||
jedisService.hset(RedisKey.user_week_login.getKey(), uid.toString(), Boolean.TRUE.toString());
|
||||
long expireTime = GetTimeUtils.getEndDayOfWeek().getTime();
|
||||
jedisService.expireAt(RedisKey.user_week_login.getKey(), expireTime/1000);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@Async
|
||||
public void saveLoginRecord(Long uid, String ipAddress, DeviceInfo deviceInfo) {
|
||||
Optional.ofNullable(uid).ifPresent(id -> {
|
||||
@@ -211,6 +137,5 @@ public class TicketServices implements InitializingBean{
|
||||
});
|
||||
}
|
||||
});
|
||||
sendFirstLoginMsg(uid, deviceInfo);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user