登录-更新user的lastLoginTime和ip
This commit is contained in:
@@ -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;
|
||||
|
@@ -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);
|
||||
}
|
@@ -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);
|
||||
|
@@ -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();
|
||||
|
@@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -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;
|
@@ -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 {}",
|
@@ -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;
|
||||
|
||||
|
@@ -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>
|
@@ -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;
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
|
Reference in New Issue
Block a user