liurunyu
2023-11-17 b3ea5bce4469e09f72afbb346237f1269276407a
pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/SsoSv.java
@@ -1,5 +1,7 @@
package com.dy.sso.busi;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dy.pipIrrGlobal.daoBa.BaPrivilegeMapper;
import com.dy.pipIrrGlobal.daoBa.BaUserMapper;
import com.dy.pipIrrGlobal.pojoBa.BaUser;
import lombok.extern.slf4j.Slf4j;
@@ -7,23 +9,67 @@
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;
    private BaPrivilegeMapper baPrivilegeMapper;
    @Autowired
    private void setBaUserMapper(BaUserMapper baUserMapper){
        this.baUserMapper = baUserMapper ;
    }
    @Autowired
    private void setBaPrivilegeMapper(BaPrivilegeMapper baPrivilegeMapper){
        this.baPrivilegeMapper = baPrivilegeMapper ;
    }
    /**
     * 需要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
    @Transactional
    @Cacheable(cacheNames=CacheConstants.cacheNames, key="'" + CacheConstants.loginUserKeyPrefix + "' + #uuid", sync=true)
    public BaUser login(String uuid, String phone, String password){
        return this.baUserMapper.login(phone, password) ;
    public BaUser loginWithMapperXml(String uuid, String phone, String password){
        BaUser baUser = this.baUserMapper.login(phone, password) ;
        if(baUser !=  null  && baUser.id != null){
            baUser.privileges = this.baPrivilegeMapper.selectPrivilegeByUserId(baUser.id) ;
        }
        return baUser;
    }
    /**
     * 不需要 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);
        BaUser baUser = this.baUserMapper.selectOne(qw) ;
        if(baUser !=  null  && baUser.id != null){
            baUser.privileges = this.baPrivilegeMapper.selectPrivilegeByUserId(baUser.id) ;
        }
        return baUser;
    }
    @CacheEvict(cacheNames=CacheConstants.cacheNames, key="'" + CacheConstants.loginUserKeyPrefix + "' + #uuid")