refactor(商城): 代码优化

master
wayn 4 years ago
parent 88f502926c
commit c892d843d7

@ -41,8 +41,8 @@ public class LoginController {
@PostMapping("/login")
public R login(@RequestBody LoginObj loginObj) {
String token = loginService.login(loginObj.getMobile(), loginObj.getPassword());
// 生成令牌
String token = loginService.login(loginObj.getMobile(), loginObj.getPassword());
return R.success().add(SysConstants.TOKEN, token);
}

@ -16,13 +16,13 @@ import java.util.concurrent.ThreadPoolExecutor;
@Configuration
public class ThreadPoolConfig {
// 核心线程池大小
private int corePoolSize = 20;
private int corePoolSize = 200;
// 最大可创建的线程数
private int maxPoolSize = 40;
private int maxPoolSize = 400;
// 队列最大长度
private int queueCapacity = 100;
private int queueCapacity = 1000;
// 线程池维护线程所允许的空闲时间
private int keepAliveSeconds = 300;

@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.wayn.common.core.domain.shop.Member;
import com.wayn.common.core.service.shop.IMemberService;
import com.wayn.common.enums.UserStatus;
import com.wayn.common.util.ip.IpUtils;
import com.wayn.mobile.framework.config.ThreadPoolConfig;
import com.wayn.mobile.framework.security.LoginUserDetail;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@ -13,6 +15,7 @@ import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.Collections;
@Slf4j
@ -22,6 +25,9 @@ public class UserDetailsServiceImpl implements UserDetailsService {
@Autowired
private IMemberService iMemberService;
@Autowired
private ThreadPoolConfig threadPoolConfig;
@Override
public UserDetails loadUserByUsername(String mobile) throws UsernameNotFoundException {
Member member = iMemberService.getOne(new QueryWrapper<Member>().eq("mobile", mobile));
@ -33,6 +39,14 @@ public class UserDetailsServiceImpl implements UserDetailsService {
log.info("登录用户:{} 已经被停用.", mobile);
throw new DisabledException("登录用户:" + mobile + " 不存在");
}
// 记录最后一次登陆时间以及登陆IP
threadPoolConfig.threadPoolTaskExecutor().execute(() ->
iMemberService.update()
.set("last_login_time", LocalDateTime.now())
.set("last_login_ip", IpUtils.getHostIp())
.eq("id", member.getId())
.update()
);
return new LoginUserDetail(member, Collections.emptySet());
}

Loading…
Cancel
Save