package com.dy.sso.busi; 
 | 
  
 | 
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 
 | 
import com.dy.pipIrrGlobal.daoBa.BaUserMapper; 
 | 
import com.dy.pipIrrGlobal.pojoBa.BaUser; 
 | 
import lombok.extern.slf4j.Slf4j; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.cache.annotation.CacheEvict; 
 | 
import org.springframework.cache.annotation.Cacheable; 
 | 
import org.springframework.stereotype.Service; 
 | 
import org.springframework.transaction.annotation.Transactional; 
 | 
  
 | 
@Slf4j 
 | 
@Service 
 | 
public class SsoSv { 
 | 
  
 | 
    private BaUserMapper baUserMapper; 
 | 
  
 | 
    @Autowired 
 | 
    private void setBaUserMapper(BaUserMapper baUserMapper){ 
 | 
        this.baUserMapper = baUserMapper ; 
 | 
    } 
 | 
  
 | 
  
 | 
    /** 
 | 
     * 需要BaUserMapper.xml 
 | 
     * @param uuid 给登录成功的用户赋值其token 
 | 
     * @param phone 用户手机号 
 | 
     * @param password 用户密码 
 | 
     * @return 登录成功用户 
 | 
     */ 
 | 
    //当未注解@Transactional时,会输出日志:SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@46727a0c] was not registered for synchronization because synchronization is not active 
 | 
    @Transactional 
 | 
    @Cacheable(cacheNames=CacheConstants.cacheNames, key="'" + CacheConstants.loginUserKeyPrefix + "' + #uuid", sync=true) 
 | 
    public BaUser loginWithMapperXml(String uuid, String phone, String password){ 
 | 
        return this.baUserMapper.login(phone, password) ; 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 不需要 BaUserMapper.xml 
 | 
     * @param uuid 给登录成功的用户赋值其token 
 | 
     * @param phone 用户手机号 
 | 
     * @param password 用户密码 
 | 
     * @return 登录成功用户 
 | 
     */ 
 | 
    //当未注解@Transactional时,会输出日志:SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@46727a0c] was not registered for synchronization because synchronization is not active 
 | 
    @Transactional 
 | 
    @Cacheable(cacheNames=CacheConstants.cacheNames, key="'" + CacheConstants.loginUserKeyPrefix + "' + #uuid", sync=true) 
 | 
    public BaUser loginWithOutMapperXml(String uuid, String phone, String password){ 
 | 
        QueryWrapper<BaUser> qw = new QueryWrapper<>(); 
 | 
        //QueryWrapper<DemoMp> queryWrapper = Wrappers.<DemoMp>query() ; 
 | 
        qw.select("id", "name", "phone", "orgTag", "supperAdmin") 
 | 
                .eq("disabled", 0) 
 | 
                .eq("deleted", 0) 
 | 
                .eq("phone", phone) 
 | 
                .eq("password", password); 
 | 
        return this.baUserMapper.selectOne(qw) ; 
 | 
    } 
 | 
  
 | 
    @CacheEvict(cacheNames=CacheConstants.cacheNames, key="'" + CacheConstants.loginUserKeyPrefix + "' + #uuid") 
 | 
    public void logout(String uuid){ 
 | 
    } 
 | 
  
 | 
    @Cacheable(cacheNames=CacheConstants.cacheNames, key="'" + CacheConstants.loginUserKeyPrefix + "' + #uuid") 
 | 
    public BaUser getByUuid(String uuid){ 
 | 
        //此方法目的是直接从缓存中读取,如果缓存无此值,说明数据被清除了,返回null值,需要重新登录 
 | 
        return null ; 
 | 
    } 
 | 
  
 | 
} 
 |