登录-更新user的lastLoginTime和ip

This commit is contained in:
khalil
2023-09-02 19:24:42 +08:00
parent 988f88ba6d
commit 139d82b50e
15 changed files with 40 additions and 47 deletions

View File

@@ -16,7 +16,7 @@ import com.accompany.business.util.VipUtil;
import com.accompany.common.constant.Constant;
import com.accompany.common.utils.StringUtils;
import com.accompany.core.service.message.MessageRobotPushService;
import com.accompany.business.service.region.RegionService;
import com.accompany.core.service.region.RegionService;
import com.accompany.business.service.room.RoomReciveRankingService;
import com.accompany.business.service.room.RoomSendRankingService;
import com.accompany.business.service.user.UserBackpackService;

View File

@@ -2,7 +2,13 @@ package com.accompany.core.mybatismapper;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
public interface UpdateUserMapperExpand {
int updateCurrentAppByUid(@Param("uid") Long uid, @Param("currentApp") String currentApp);
int updateByUid(@Param("uid") Long uid,
@Param("lastLoginTime") Date lastLoginTime,
@Param("lastLoginTime") String lastLoginIp,
//@Param("lastLoginRegion") String lastLoginRegion,
@Param("currentApp") String currentApp);
}

View File

@@ -80,6 +80,7 @@ public class AccountService extends ServiceImpl<AccountMapper, Account> {
Account account = new Account();
account.setNeteaseToken(UUIDUtil.get());
account.setLastLoginTime(date);
account.setLastLoginIp(ipAddress);
account.setUpdateTime(date);
account.setRegisterIp(ipAddress);
account.setSignTime(date);

View File

@@ -29,24 +29,6 @@ public class LoginRecordService {
accountLoginRecordMapper.insert(accountLoginRecord);
}
public int getLevelNum(Long uid){
Assert.notNull(uid, "uid is null");
int level = 0;
AccountLoginRecordExample accountLoginRecordExample = new AccountLoginRecordExample();
accountLoginRecordExample.createCriteria().andUidEqualTo(uid);
int count = accountLoginRecordMapper.countByExample(accountLoginRecordExample);
if(count > 20){
level = 4;
}else if(count > 10){
level = 3;
}else if(count > 5){
level = 2;
}else if(count > 3){
level = 1;
}
return level;
}
public int countLoginRecordToday(Long uid) {
Date date = new Date();
AccountLoginRecordExample example = new AccountLoginRecordExample();

View File

@@ -3,9 +3,14 @@ package com.accompany.core.service.account;
import com.accompany.common.redis.RedisKey;
import com.accompany.core.mybatismapper.UpdateUserMapperExpand;
import com.accompany.core.service.common.JedisService;
import com.accompany.core.service.region.RegionService;
import com.accompany.core.service.user.UsersBaseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import java.util.Date;
/**
* @Author: chucheng
* @Date: 2019/7/25 14:41
@@ -15,7 +20,9 @@ import org.springframework.stereotype.Service;
public class UserAppService {
@Autowired
private JedisService jedisService;
private RegionService regionService;
@Autowired
private UsersBaseService usersBaseService;
@Autowired
private UpdateUserMapperExpand mapperExpand;
@@ -24,13 +31,14 @@ public class UserAppService {
* @param uid
* @param currentApp
*/
public void updateCurrentApp(Long uid,String currentApp){
@Async
public void updateCurrentApp(Long uid, String currentApp, Date loginTime, String loginIp){
if(uid == null || currentApp == null){
return;
}
int ret = this.mapperExpand.updateCurrentAppByUid(uid,currentApp);
int ret = this.mapperExpand.updateByUid(uid, loginTime, loginIp, currentApp);
if(ret > 0){
this.jedisService.hdel(RedisKey.user.getKey(), uid.toString());
usersBaseService.deleteUserRelateCache(uid.toString());
}
}
}

View File

@@ -1,4 +1,4 @@
package com.accompany.business.service.region;
package com.accompany.core.service.region;
import lombok.SneakyThrows;
import org.apache.commons.io.IOUtils;

View File

@@ -1,9 +1,7 @@
package com.accompany.business.service.region;
package com.accompany.core.service.region;
import com.accompany.business.service.user.UsersService;
import com.accompany.common.constant.Constant;
import com.accompany.common.status.BusiStatus;
import com.accompany.common.utils.RandomUtil;
import com.accompany.core.exception.ServiceException;
import com.accompany.core.model.Users;
import com.accompany.core.service.SysConfService;
@@ -27,9 +25,8 @@ public class RegionService {
@Autowired
private RegionSearchService regionSearchService;
@Autowired
private UsersService usersService;
@Autowired
private UsersBaseService usersBaseService;
private final String CHINA = "中國";
private final String HK = "香港";
@@ -47,7 +44,7 @@ public class RegionService {
throw new ServiceException(BusiStatus.PARAMERROR);
}
Users user = usersService.getUsersByUid(uid);
Users user = usersBaseService.getUsersByUid(uid);
if (region.equals(user.getRegion())){
return;
}
@@ -55,22 +52,19 @@ public class RegionService {
db.setUid(uid);
db.setRegion(region);
usersBaseService.updateUser(db);
usersService.deleteUserRelateCachesByUid(uid);
usersBaseService.deleteUserRelateCache(uid.toString());
}
public String getCountry(String registerIp) {
String dbRegion = regionSearchService.getCountry(registerIp);
String zhRegion = ZhConverterUtil.toTraditional(dbRegion);
String result;
String result = null;
List<String> configs = getConfig();
if (configs.contains(zhRegion)){
result = zhRegion;
} else if (CHINA.equals(zhRegion)) {
result = HK;
} else {
int index = RandomUtil.randomByRange(0, configs.size()-1);
result = configs.get(index);
}
log.info("ip2region ip {} region {} zhRegion {} result {}",

View File

@@ -7,7 +7,6 @@ import com.accompany.common.utils.*;
import com.accompany.core.model.Account;
import com.accompany.core.model.Users;
import com.accompany.core.model.UsersExample;
import com.accompany.core.mybatismapper.AccountMapper;
import com.accompany.core.mybatismapper.UsersMapper;
import com.accompany.core.service.SysConfService;
import com.accompany.core.service.account.AccountService;
@@ -45,9 +44,6 @@ public class UsersBaseService extends BaseService {
@Autowired
private UsersMapper usersMapper;
@Autowired
private AccountMapper accountMapper;
@Autowired
private SysConfService sysConfService;

View File

@@ -2,7 +2,8 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.accompany.core.mybatismapper.UpdateUserMapperExpand" >
<update id="updateCurrentAppByUid">
UPDATE users SET current_app = #{currentApp} where uid = #{uid}
<update id="update">
UPDATE users SET last_login_time = #{lastLoginTime}, last_login_ip = #{lastLoginIp}, current_app = #{currentApp}
where uid = #{uid}
</update>
</mapper>

View File

@@ -5,7 +5,7 @@ import com.accompany.business.model.UserExpandExample;
import com.accompany.business.model.user.UserOnline;
import com.accompany.business.mybatismapper.UserExpandMapper;
import com.accompany.business.mybatismapper.UserExpandMapperExpand;
import com.accompany.business.service.region.RegionService;
import com.accompany.core.service.region.RegionService;
import com.accompany.business.service.useronline.UserOnlineService;
import com.accompany.business.vo.user.MsgNotifyVo;
import com.accompany.business.vo.user.PrivacyVo;

View File

@@ -2,7 +2,6 @@ package com.accompany.business.service.user;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.accompany.business.dto.QueueDTO;
import com.accompany.business.dto.QueueListResponseDTO;
import com.accompany.business.elasticsearch.ElasticsearchRestClient;
@@ -32,7 +31,7 @@ import com.accompany.business.service.live.LiveAttestationService;
import com.accompany.business.service.nameplate.UserNameplateService;
import com.accompany.business.service.noble.NobleUsersService;
import com.accompany.business.service.purse.UserPurseService;
import com.accompany.business.service.region.RegionService;
import com.accompany.core.service.region.RegionService;
import com.accompany.business.service.room.QueryRoomService;
import com.accompany.business.service.room.RoomService;
import com.accompany.business.service.skillcard.SkillCardUserRecordService;

View File

@@ -1,7 +1,7 @@
package com.accompany.business.controller.region;
import com.accompany.business.common.BaseController;
import com.accompany.business.service.region.RegionService;
import com.accompany.core.service.region.RegionService;
import com.accompany.common.annotation.Authorization;
import com.accompany.common.result.BusiResult;
import com.accompany.common.status.BusiStatus;

View File

@@ -129,6 +129,7 @@ public class MyUserDetailsServiceImpl implements MyUserDetailsService {
Account account = details.getAccount();
String deviceId = deviceInfo.getDeviceId();
String client = deviceInfo.getClient();
String app = deviceInfo.getApp();
Long uid = account.getUid();
Date date = new Date();
// 拦截指定账号登录
@@ -170,9 +171,10 @@ public class MyUserDetailsServiceImpl implements MyUserDetailsService {
account.setOsversion(deviceInfo.getOsVersion());
account.setUpdateTime(date);
account.setLastLoginTime(date);
account.setLastLoginIp(ip);
accountService.updateById(account);
//更新用户正在使用的app字段
userAppService.updateCurrentApp(uid, deviceInfo.getApp());
userAppService.updateCurrentApp(uid, app, date, ip);
//将用户信息登记
AccountLoginRecord accountLoginRecord = buildAccountLoginRecord(ip, account, loginType.getValue(), deviceInfo, openId);
loginRecordService.addAccountLoginRecordAsync(accountLoginRecord);

View File

@@ -104,6 +104,7 @@ public class AccountManageService {
"用户账号异常请联系官方客服uid=" + account.getUid());
}
account.setLastLoginTime(new Date());
account.setLastLoginIp(ipAddress);
account.setUpdateTime(new Date());
accountService.updateById(account);
}
@@ -136,6 +137,7 @@ public class AccountManageService {
account = new Account();
account.setNeteaseToken(UUIDUtil.get());
account.setLastLoginTime(date);
account.setLastLoginIp(ipAddress);
account.setUpdateTime(date);
account.setRegisterIp(ipAddress);
account.setSignTime(date);
@@ -179,6 +181,7 @@ public class AccountManageService {
account.setUnionId(unionId);
}
account.setLastLoginTime(new Date());
account.setLastLoginIp(ipAddress);
account.setUpdateTime(new Date());
accountMapper.updateById(account);
}
@@ -230,6 +233,7 @@ public class AccountManageService {
}
account.setNeteaseToken(UUIDUtil.get());
account.setLastLoginTime(date);
account.setLastLoginIp(ipAddress);
account.setUpdateTime(date);
account.setRegisterIp(ipAddress);
account.setSignTime(date);