package com.zt.modules.sys.service; 
 | 
  
 | 
import com.baomidou.mybatisplus.core.toolkit.IdWorker; 
 | 
import com.zt.common.constant.Constant; 
 | 
import com.zt.common.constant.Status; 
 | 
import com.zt.common.db.query.QueryFilter; 
 | 
import com.zt.common.service.BaseService; 
 | 
import com.zt.core.sys.model.SysDept; 
 | 
import com.zt.core.sys.model.SysUser; 
 | 
import com.zt.modules.sys.dao.SysTenantDao; 
 | 
import com.zt.modules.sys.model.SysRole; 
 | 
import com.zt.modules.sys.model.SysTenant; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.stereotype.Service; 
 | 
import org.springframework.transaction.annotation.Transactional; 
 | 
  
 | 
import java.util.Arrays; 
 | 
import java.util.List; 
 | 
  
 | 
/** 
 | 
 * SYS_TENANT 
 | 
 * 
 | 
 * @author zt generator 
 | 
 * @since 1.0.0 2020-06-11 
 | 
 */ 
 | 
@Service 
 | 
public class SysTenantService extends BaseService<SysTenantDao, SysTenant> { 
 | 
  
 | 
    @Autowired 
 | 
    SysDeptService sysDeptService; 
 | 
  
 | 
    @Autowired 
 | 
    SysUserService sysUserService; 
 | 
  
 | 
    @Autowired 
 | 
    SysRoleService sysRoleService; 
 | 
  
 | 
    @Autowired 
 | 
    private SysRoleUserService sysRoleUserService; 
 | 
  
 | 
    public List<SysTenant> page(QueryFilter queryFilter) { 
 | 
        return baseDao.getList(queryFilter.getParams()); 
 | 
    } 
 | 
  
 | 
    @Transactional(rollbackFor = Exception.class) 
 | 
    public void insert(SysTenant entity) { 
 | 
        entity.setId(IdWorker.getId()); 
 | 
        // 插入公司信息 
 | 
        SysDept company = new SysDept(); 
 | 
        company.setPid(Constant.Sys.DEPT_ROOT); 
 | 
        company.setId(entity.getId());// 公司id和租户id一致 
 | 
        company.setTenantId(entity.getId()); 
 | 
        company.setCode(entity.getCode()); 
 | 
        company.setName(entity.getName()); 
 | 
        company.setShortName(entity.getShortName()); 
 | 
        //company.setNature(Constant.DeptType.COMPANY); 
 | 
        company.setCompany(true); 
 | 
        company.setCompanyId(entity.getId()); 
 | 
        sysDeptService.insert(company); 
 | 
  
 | 
        // 默认新建租户角色 
 | 
        SysRole role = new SysRole(); 
 | 
        role.setId(entity.getId());// id和租户id一致 
 | 
        role.setName(entity.getName()); 
 | 
        role.setCode(entity.getCode()); 
 | 
        role.setType(Constant.RoleType.TENANT); 
 | 
        role.setCompanyId(company.getCompanyId()); 
 | 
        role.setTenantId(entity.getId()); 
 | 
        role.setSort(0); 
 | 
        sysRoleService.insert(role); 
 | 
  
 | 
        // 插入管理员信息 
 | 
        SysUser user = new SysUser(); 
 | 
        user.setUserCode(entity.getAdminMobile()); 
 | 
        user.setUsername(entity.getAdminRealName()); 
 | 
        user.setRealName(entity.getAdminRealName()); 
 | 
        user.setMobile(entity.getAdminMobile()); 
 | 
        user.setSuperAdmin(false); 
 | 
        user.setTenantId(entity.getId()); 
 | 
        user.setCompanyId(company.getCompanyId()); 
 | 
        user.setDeptId(company.getCompanyId()); 
 | 
        sysUserService.insert(user); 
 | 
        sysRoleUserService.saveOrUpdate(user.getId(), Arrays.asList(new Long[] { role.getId() })); 
 | 
  
 | 
        entity.setAdminUserId(user.getId()); 
 | 
        baseDao.insert(entity); 
 | 
    } 
 | 
  
 | 
    public void enable(Long[] ids) { 
 | 
        for (Long id : ids) { 
 | 
            SysTenant tenant = get(id); 
 | 
            if (tenant != null) { 
 | 
                tenant.setStatus(Status.ENABLE.getValue()); 
 | 
                this.update(tenant); 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
} 
 |