张天森
2022-11-10 b5a53d719f01daac9f4b4d0aafa274cea152c92c
springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/impl/LoginServiceImpl.java
@@ -1,11 +1,16 @@
package com.panzhihua.auth.service.impl;
import java.util.Date;
import java.util.concurrent.TimeUnit;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ComActVO;
import com.panzhihua.common.model.vos.user.SysOperLogVO;
import com.panzhihua.common.service.user.UserService;
import com.panzhihua.common.utlis.IPUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
@@ -21,6 +26,12 @@
import com.panzhihua.common.model.vos.LoginReturnsVO;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.utlis.JWTTokenUtil;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import org.springframework.web.bind.annotation.RequestParam;
import static java.util.Objects.nonNull;
/**
 * @program: springcloud_k8s_panzhihuazhihuishequ
@@ -34,6 +45,8 @@
    private AuthenticationManager authenticationManager;
    @Autowired
    private StringRedisTemplate redisTemplate;
    @Resource
    private UserService userService;
    /**
     * 微信小程序登录
@@ -43,10 +56,10 @@
     * @return jwt
     */
    @Override
    public LoginReturnVO loginApplets(String openId) {
    public LoginReturnVO loginApplets(String openId,String appId) {
        Authentication authentication = null;
        authentication = authenticationManager
            .authenticate(new UsernamePasswordAuthenticationToken(openId + "_1", UserConstants.PASSWORD));
            .authenticate(new UsernamePasswordAuthenticationToken(openId + "_1"+"_"+appId, UserConstants.PASSWORD));
        LoginUserInfoVO loginUser = (LoginUserInfoVO)authentication.getPrincipal();
        String token = JWTTokenUtil.generateToken(loginUser);
        String refeshToken = JWTTokenUtil.generateRefeshToken(loginUser);
@@ -79,10 +92,10 @@
     * @return 登录结果
     */
    @Override
    public LoginReturnVO loginAppletsBackStage(String account, String password) {
    public LoginReturnVO loginAppletsBackStage(String account, String password,String appid) {
        Authentication authentication = null;
        authentication =
            authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_2", password));
            authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_2"+"_"+appid, password));
        LoginUserInfoVO loginUser = (LoginUserInfoVO)authentication.getPrincipal();
        String token = JWTTokenUtil.generateToken(loginUser);
        String refeshToken = JWTTokenUtil.generateRefeshToken(loginUser);
@@ -102,10 +115,10 @@
     * @return 登录结果
     */
    @Override
    public LoginReturnVO loginCommunityBackage(String account, String password) {
    public LoginReturnVO loginCommunityBackage(String account, String password,String appId) {
        Authentication authentication = null;
        authentication =
            authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_3", password));
            authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_3"+"_"+appId, password));
        LoginUserInfoVO loginUser = (LoginUserInfoVO)authentication.getPrincipal();
        String token = JWTTokenUtil.generateToken(loginUser);
        String refeshToken = JWTTokenUtil.generateRefeshToken(loginUser);
@@ -114,8 +127,25 @@
        loginReturnVO.setToken(token);
        loginReturnVO.setRefreshToken(refeshToken);
        loginReturnVO.setCommunityId(loginUser.getCommunityId());
        loginReturnVO.setLat(comActVO.getLat());
        loginReturnVO.setLng(comActVO.getLng());
        if (nonNull(comActVO)) {
            loginReturnVO.setLat(comActVO.getLat());
            loginReturnVO.setLng(comActVO.getLng());
        }
        //保存登录日志
        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
        SysOperLogVO operlog = new SysOperLogVO();
        operlog.setTitle("登录操作"); // 操作模块
        operlog.setBusinessType(1); // 操作类型
        operlog.setMethod("com.panzhihua.community_backstage.api.LoginApi.login"); // 请求方法
        operlog.setAccount(loginUser.getAccount());
        operlog.setOperName(loginUser.getName()); // 请求用户名称
        operlog.setOperIp(IPUtil.getIpAddress(request)); // 请求IP
        operlog.setOperUrl(request.getRequestURI()); // 请求URI
        operlog.setRequestMethod(request.getMethod());
        operlog.setOperLocation(IPUtil.getIpBelongAddress(request));
        operlog.setOperTime(new Date()); // 创建时间
        operlog.setCommunityId(loginUser.getCommunityId());
        userService.addOperLog(operlog);
        return loginReturnVO;
    }
@@ -129,10 +159,10 @@
     * @return 登录结果
     */
    @Override
    public LoginReturnVO loginShopBackStage(String account, String password) {
    public LoginReturnVO loginShopBackStage(String account, String password,String appid) {
        Authentication authentication = null;
        authentication =
            authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_5", password));
            authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_5"+"_"+appid, password));
        LoginUserInfoVO loginUser = (LoginUserInfoVO)authentication.getPrincipal();
        String token = JWTTokenUtil.generateToken(loginUser);
        String refeshToken = JWTTokenUtil.generateRefeshToken(loginUser);
@@ -144,7 +174,7 @@
    /**
     * 大数据统计平台(区、街道、社区三层登陆接口)
     *
     *
     * @param account
     *            账户
     * @param password
@@ -154,10 +184,10 @@
     * @date 2021-5-13 10:56
     */
    @Override
    public LoginReturnVO loginBigDataBackStage(String account, String password) {
    public LoginReturnVO loginBigDataBackStage(String account, String password,String appid) {
        Authentication authentication = null;
        authentication =
            authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_8", password));
            authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_8"+"_"+appid, password));
        LoginUserInfoVO loginUser = (LoginUserInfoVO)authentication.getPrincipal();
        String token = JWTTokenUtil.generateToken(loginUser);
        String refeshToken = JWTTokenUtil.generateRefeshToken(loginUser);
@@ -177,10 +207,10 @@
     * @return 登录结果
     */
    @Override
    public LoginReturnsVO loginGridApp(String account, String password) {
    public LoginReturnsVO loginGridApp(String account, String password,String appid) {
        Authentication authentication = null;
        authentication =
            authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_6", password));
            authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_6"+"_"+appid, password));
        LoginUserInfoVO loginUser = (LoginUserInfoVO)authentication.getPrincipal();
        String token = JWTTokenUtil.generateToken(loginUser);
        String refeshToken = JWTTokenUtil.generateRefeshToken(loginUser);
@@ -201,10 +231,10 @@
     * @return 登录结果
     */
    @Override
    public LoginReturnVO loginGridBackstage(String account, String password) {
    public LoginReturnVO loginGridBackstage(String account, String password,String appid) {
        Authentication authentication = null;
        authentication =
            authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_7", password));
            authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_7"+"_"+appid, password));
        LoginUserInfoVO loginUser = (LoginUserInfoVO)authentication.getPrincipal();
        String token = JWTTokenUtil.generateToken(loginUser);
        String refeshToken = JWTTokenUtil.generateRefeshToken(loginUser);
@@ -215,10 +245,10 @@
    }
    @Override
    public LoginReturnVO loginCgBackage(String account, String password){
    public LoginReturnVO loginCgBackage(String account, String password,String appid){
        Authentication authentication = null;
        authentication =
                authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_9", password));
                authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_9"+"_"+appid, password));
        LoginUserInfoVO loginUser = (LoginUserInfoVO)authentication.getPrincipal();
        String token = JWTTokenUtil.generateToken(loginUser);
        String refeshToken = JWTTokenUtil.generateRefeshToken(loginUser);
@@ -229,10 +259,10 @@
    }
    @Override
    public LoginReturnsVO loginAlarmApp(String account, String password) {
    public LoginReturnsVO loginAlarmApp(String account, String password,String appid) {
        Authentication authentication = null;
        authentication =
                authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_10", password));
                authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_10"+"_"+appid, password));
        LoginUserInfoVO loginUser = (LoginUserInfoVO)authentication.getPrincipal();
        String token = JWTTokenUtil.generateToken(loginUser);
        String refeshToken = JWTTokenUtil.generateRefeshToken(loginUser);
@@ -250,8 +280,8 @@
     * @return 登录结果
     */
    @Override
    public LoginReturnVO loginMerchantBackStage(String account, String password) {
        Authentication authentication = authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_10", password));
    public LoginReturnVO loginMerchantBackStage(String account, String password,String appid) {
        Authentication authentication = authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_10"+"_"+appid, password));
        LoginUserInfoVO loginUser = (LoginUserInfoVO)authentication.getPrincipal();
        String token = JWTTokenUtil.generateToken(loginUser);
        String refeshToken = JWTTokenUtil.generateRefeshToken(loginUser);
@@ -268,8 +298,8 @@
     * @return  登录结果
     */
    @Override
    public LoginReturnVO loginXQDP(String account, String password){
        Authentication authentication = authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_15", password));
    public LoginReturnVO loginXQDP(String account, String password,String appid){
        Authentication authentication = authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_15"+"_"+appid, password));
        LoginUserInfoVO loginUser = (LoginUserInfoVO)authentication.getPrincipal();
        String token = JWTTokenUtil.generateToken(loginUser);
        String refeshToken = JWTTokenUtil.generateRefeshToken(loginUser);
@@ -286,8 +316,20 @@
     * @return 登录结果
     */
    @Override
    public LoginReturnVO loginMcsUser(String account, String password) {
        Authentication authentication = authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_11", password));
    public LoginReturnVO loginMcsUser(String account, String password,String appid) {
        Authentication authentication = authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_11"+"_"+appid, password));
        LoginUserInfoVO loginUser = (LoginUserInfoVO)authentication.getPrincipal();
        String token = JWTTokenUtil.generateToken(loginUser);
        String refeshToken = JWTTokenUtil.generateRefeshToken(loginUser);
        LoginReturnVO loginReturnVO = new LoginReturnVO();
        loginReturnVO.setToken(token);
        loginReturnVO.setRefreshToken(refeshToken);
        return loginReturnVO;
    }
    @Override
    public LoginReturnVO tfLogin(String account, String password, String appid) {
        Authentication authentication = authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_16"+"_"+appid, password));
        LoginUserInfoVO loginUser = (LoginUserInfoVO)authentication.getPrincipal();
        String token = JWTTokenUtil.generateToken(loginUser);
        String refeshToken = JWTTokenUtil.generateRefeshToken(loginUser);
@@ -307,8 +349,8 @@
     * @return 登录结果
     */
    @Override
    public LoginReturnVO loginBatteryUser(String account, String password) {
        Authentication authentication = authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_20", password));
    public LoginReturnVO loginBatteryUser(String account, String password,String appid) {
        Authentication authentication = authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_20"+"_"+appid, password));
        LoginUserInfoVO loginUser = (LoginUserInfoVO)authentication.getPrincipal();
        String token = JWTTokenUtil.generateToken(loginUser);
        String refeshToken = JWTTokenUtil.generateRefeshToken(loginUser);