package doumeemes.service.ext.impl; 
 | 
  
 | 
import com.alibaba.fastjson.JSONObject; 
 | 
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 
 | 
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; 
 | 
import com.iflytek.antelope.other.client.dto.resp.UserDTO; 
 | 
import doumeemes.biz.system.SystemDictDataBiz; 
 | 
import doumeemes.biz.system.SystemUserBiz; 
 | 
import doumeemes.core.constants.ResponseStatus; 
 | 
import doumeemes.core.exception.BusinessException; 
 | 
import doumeemes.core.model.LoginUserInfo; 
 | 
import doumeemes.core.model.PageData; 
 | 
import doumeemes.core.model.PageWrap; 
 | 
import doumeemes.core.utils.Constants; 
 | 
import doumeemes.core.utils.DateUtil; 
 | 
import doumeemes.core.utils.dingding.DingDingUtil; 
 | 
import doumeemes.core.utils.edpg.bean.AppUserInfoModel; 
 | 
import doumeemes.core.utils.redis.RedisUtil; 
 | 
import doumeemes.dao.business.dto.AutoLoginUserDTO; 
 | 
import doumeemes.dao.business.dto.CompanyInitDataDTO; 
 | 
import doumeemes.dao.business.model.Company; 
 | 
import doumeemes.dao.business.model.CompanyLog; 
 | 
import doumeemes.dao.business.model.CompanyOpen; 
 | 
import doumeemes.dao.business.model.Department; 
 | 
import doumeemes.dao.ext.CompanyOpenExtMapper; 
 | 
import doumeemes.dao.ext.CompanyUserExtMapper; 
 | 
import doumeemes.dao.ext.DepartmentExtMapper; 
 | 
import doumeemes.dao.ext.dto.QueryCompanyExtDTO; 
 | 
import doumeemes.dao.ext.dto.QueryCompanyUserExtDTO; 
 | 
import doumeemes.dao.ext.vo.CompanyExtListVO; 
 | 
import doumeemes.dao.ext.vo.CompanyInfoListVO; 
 | 
import doumeemes.dao.ext.vo.CompanyUserExtListVO; 
 | 
import doumeemes.dao.ext.vo.DepartmentExtListVO; 
 | 
import doumeemes.dao.system.SystemDataPermissionMapper; 
 | 
import doumeemes.dao.system.SystemRoleMapper; 
 | 
import doumeemes.dao.system.SystemRoleMenuMapper; 
 | 
import doumeemes.dao.system.SystemRolePermissionMapper; 
 | 
import doumeemes.dao.system.model.*; 
 | 
import doumeemes.service.business.CompanyLogService; 
 | 
import doumeemes.service.ext.BarcodeParamExtService; 
 | 
import doumeemes.service.ext.CompanyExtService; 
 | 
import doumeemes.dao.ext.CompanyExtMapper; 
 | 
import com.github.pagehelper.PageHelper; 
 | 
import com.github.pagehelper.PageInfo; 
 | 
import doumeemes.service.ext.DepartmentExtService; 
 | 
import doumeemes.service.system.SystemRoleService; 
 | 
import org.apache.commons.lang3.StringUtils; 
 | 
import org.apache.shiro.SecurityUtils; 
 | 
import org.springframework.beans.BeanUtils; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.context.annotation.Lazy; 
 | 
import org.springframework.data.redis.core.RedisTemplate; 
 | 
import org.springframework.stereotype.Service; 
 | 
import org.springframework.transaction.annotation.Transactional; 
 | 
  
 | 
import javax.servlet.http.HttpServletRequest; 
 | 
import java.util.ArrayList; 
 | 
import java.util.Date; 
 | 
import java.util.List; 
 | 
import java.util.Objects; 
 | 
  
 | 
/** 
 | 
 * 企业信息Service实现 
 | 
 * @author 江蹄蹄 
 | 
 * @date 2022/04/20 10:59 
 | 
 */ 
 | 
@Service 
 | 
public class CompanyExtServiceImpl implements CompanyExtService { 
 | 
  
 | 
    @Lazy 
 | 
    @Autowired 
 | 
    private SystemDictDataBiz systemDictDataBiz; 
 | 
    @Autowired 
 | 
    private RedisTemplate<String, Object> redisTemplate; 
 | 
    @Autowired 
 | 
    private CompanyExtMapper companyExtMapper; 
 | 
  
 | 
    @Autowired 
 | 
    private CompanyOpenExtMapper companyOpenExtMapper; 
 | 
  
 | 
    @Autowired 
 | 
    private DepartmentExtMapper departmentExtMapper; 
 | 
    @Autowired 
 | 
    private CompanyUserExtMapper companyUserExtMapper; 
 | 
    @Autowired 
 | 
    @Lazy 
 | 
    private SystemUserBiz systemUserBiz; 
 | 
    @Autowired 
 | 
    @Lazy 
 | 
    private BarcodeParamExtService barcodeParamExtService; 
 | 
    @Autowired 
 | 
    private SystemRoleMapper systemRoleMapper; 
 | 
    @Autowired 
 | 
    private SystemDataPermissionMapper systemDataPermissionMapper; 
 | 
    @Autowired 
 | 
    private SystemRolePermissionMapper systemRolePermissionMapper; 
 | 
    @Autowired 
 | 
    private SystemRoleMenuMapper systemRoleMenuMapper; 
 | 
    @Autowired 
 | 
    @Lazy 
 | 
    private DepartmentExtService departmentExtService; 
 | 
  
 | 
    @Autowired 
 | 
    CompanyLogService companyLogService; 
 | 
  
 | 
    @Override 
 | 
    public PageData<CompanyExtListVO> findPage(PageWrap<QueryCompanyExtDTO> pageWrap) { 
 | 
        PageHelper.startPage(pageWrap.getPage(), pageWrap.getCapacity()); 
 | 
        List<CompanyExtListVO> result = companyExtMapper.selectList(pageWrap.getModel()); 
 | 
        return PageData.from(new PageInfo<>(result)); 
 | 
    } 
 | 
    @Override 
 | 
    @Transactional(rollbackFor = {BusinessException.class,Exception.class}) 
 | 
    public Integer createByPlat(CompanyInitDataDTO user, HttpServletRequest request){ 
 | 
        String pwd =systemDictDataBiz.queryByCode(Constants.DEFAULT,Constants.USER_PWD).getCode(); 
 | 
  
 | 
        Company qc = new Company(); 
 | 
        qc.setDeleted(Constants.ZERO); 
 | 
        qc.setCreditCode(user.getCreditCode()); 
 | 
        //根据行政区代码查询企业信息 
 | 
        Company  com = companyExtMapper.selectOne(new QueryWrapper<>(qc).last(" limit 1")); 
 | 
        if(com !=null){ 
 | 
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,社会统一信用代码已存在!"); 
 | 
        } 
 | 
        //如果企业信息为空,新增企业信息 
 | 
        com = new Company(); 
 | 
        com.setDeleted(Constants.ZERO); 
 | 
        com.setCreateTime(new Date()); 
 | 
        com.setOrigin(Constants.TWO); 
 | 
        com.setCreditCode(user.getCreditCode()); 
 | 
        com.setName(user.getOrgName()); 
 | 
        com.setOepnValidDate(user.getOepnValidDate()); 
 | 
        com.setLinker(user.getLinkName()); 
 | 
        com.setLinkPhone(user.getLinkPhone()); 
 | 
        com.setAddr(user.getAddr()); 
 | 
        com.setFileStoreAddr(user.getFileStoreAddr()); 
 | 
        com.setOpenUserNum(-1); 
 | 
        com.setShortName(user.getRemark()); 
 | 
        com.setOpenModules(Constants.ONE+""); 
 | 
        com.setOepnType(user.getOepnType()); 
 | 
        com.setChannelId(Constants.TWO); 
 | 
        com.setSalesperson(user.getSalesperson()); 
 | 
        com.setStatus(Constants.ONE); 
 | 
        //插入企业信息 
 | 
        companyExtMapper.insert(com); 
 | 
//     插入 企业账户开通历史记录表 
 | 
        CompanyOpen companyOpen = new CompanyOpen(); 
 | 
        companyOpen.setDeleted(Constants.ZERO); 
 | 
//        companyOpen.setCreateUser(); 
 | 
        companyOpen.setCreateTime(new Date()); 
 | 
//        companyOpen.setUpdateUser(); 
 | 
        companyOpen.setUpdateTime(new Date()); 
 | 
        companyOpen.setCompanyId(com.getId()); 
 | 
//        companyOpen.setUserNum(); 
 | 
//        companyOpen.setModules(); 
 | 
        companyOpen.setValidDate(user.getOepnValidDate()); 
 | 
        companyOpen.setOepnType(user.getOepnType()); 
 | 
        companyOpenExtMapper.insert(companyOpen); 
 | 
  
 | 
        //创建根目录 
 | 
        Department department = new Department(); 
 | 
        department.setCompanyId(com.getId()); 
 | 
        department.setStatus(Constants.ZERO); 
 | 
        department.setName(com.getShortName()); 
 | 
        department.setType(Constants.DEPART_TYPE.com); 
 | 
        department.setCreateTime(com.getCreateTime()); 
 | 
        department.setDeleted(Constants.ZERO); 
 | 
        department.setValidTime(department.getCreateTime()); 
 | 
        departmentExtMapper.insert(department); 
 | 
        department.setRootId(department.getId()); 
 | 
        departmentExtMapper.updateById(department); 
 | 
        com.setRootDepartment(department); 
 | 
  
 | 
        barcodeParamExtService.initParamData(com); 
 | 
  
 | 
  
 | 
        //如果是管理员角色,绑定默认角色 
 | 
        SystemRole sr = new SystemRole(); 
 | 
        sr.setDeleted(false); 
 | 
        sr.setType(Constants.ROLETYPE.com_def); 
 | 
        //查询全部角色数据 
 | 
        List<SystemRole> srList = systemRoleMapper.selectList(new QueryWrapper<>(sr)); 
 | 
        if(srList!=null){ 
 | 
            for(SystemRole tr :srList){ 
 | 
                //内置角色 
 | 
                SystemRole newrole = new SystemRole(); 
 | 
                newrole.setCode(tr.getCode()+"_"+com.getId()); 
 | 
                newrole.setName(tr.getName()); 
 | 
                newrole.setDeleted(Boolean.FALSE); 
 | 
                newrole.setFixed(Boolean.FALSE); 
 | 
                newrole.setCreateTime(new Date()); 
 | 
                newrole.setCompanyId(com.getId()); 
 | 
                newrole.setType(Constants.ROLETYPE.com); 
 | 
                systemRoleMapper.insert(newrole); 
 | 
                //内置菜单权限 
 | 
                SystemRoleMenu systemRoleMenu = new SystemRoleMenu(); 
 | 
                systemRoleMenu.setDeleted(false); 
 | 
                systemRoleMenu.setRoleId(tr.getId()); 
 | 
                List<SystemRoleMenu> menus = systemRoleMenuMapper.selectList(new QueryWrapper<>(systemRoleMenu)); 
 | 
                if(menus !=null && menus.size()>0){ 
 | 
                    for(SystemRoleMenu m : menus){ 
 | 
                        m.setRoleId(newrole.getId()); 
 | 
                        m.setCreateTime(com.getCreateTime()); 
 | 
                    } 
 | 
                    systemRoleMapper.insertRoleMenuBatch(menus); 
 | 
                } 
 | 
                //内置操作权限 
 | 
                SystemRolePermission permission = new SystemRolePermission(); 
 | 
                permission.setDeleted(false); 
 | 
                permission.setRoleId(tr.getId()); 
 | 
                List<SystemRolePermission> permissions = systemRolePermissionMapper.selectList(new QueryWrapper<>(permission)); 
 | 
                if(permissions !=null && permissions.size()>0){ 
 | 
                    for(SystemRolePermission m : permissions){ 
 | 
                        m.setRoleId(newrole.getId()); 
 | 
                        m.setCreateTime(com.getCreateTime()); 
 | 
                    } 
 | 
                    systemRoleMapper.insertRolePermissionBatch(permissions); 
 | 
                } 
 | 
                //内置数据数权限 
 | 
                SystemDataPermission systemDataPermission = new SystemDataPermission(); 
 | 
                systemDataPermission.setDeleted(false); 
 | 
                systemDataPermission.setRoleId(tr.getId()); 
 | 
                List<SystemDataPermission> datas = systemDataPermissionMapper.selectList(new QueryWrapper<>(systemDataPermission)); 
 | 
                if(datas !=null && datas.size()>0){ 
 | 
                    for(SystemDataPermission m : datas){ 
 | 
                        m.setRoleId(newrole.getId()); 
 | 
                        m.setCompanyId(newrole.getCompanyId()); 
 | 
                        m.setCreateTime(com.getCreateTime()); 
 | 
                    } 
 | 
                    systemRoleMapper.insertDataPermissionBatch(datas); 
 | 
                }else{ 
 | 
                    //默认内置一个数据权限 
 | 
                    systemDataPermission.setRoleId(newrole.getId()); 
 | 
                    systemDataPermission.setCompanyId(newrole.getCompanyId()); 
 | 
                    systemDataPermission.setCreateTime(new Date()); 
 | 
                    systemDataPermission.setBusinessCode("DEPARTMENT"); 
 | 
                    systemDataPermission.setDisabled(Boolean.FALSE); 
 | 
                    systemDataPermission.setType(Constants.DATAPERMISSION_TYPE.all); 
 | 
                    datas = new ArrayList<>(); 
 | 
                    datas.add(systemDataPermission); 
 | 
                    systemRoleMapper.insertDataPermissionBatch(datas); 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
        initRedisCache(com); 
 | 
  
 | 
        systemUserBiz.importPlat(user,pwd,com); 
 | 
        return com.getId(); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public Integer updateByPlat(CompanyInitDataDTO user, HttpServletRequest request) { 
 | 
  
 | 
        LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); 
 | 
  
 | 
        if (Objects.isNull(user.getId())){ 
 | 
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,企业ID为空!"); 
 | 
        } 
 | 
  
 | 
        Company qc = new Company(); 
 | 
        qc.setDeleted(Constants.ZERO); 
 | 
        qc.setCreditCode(user.getCreditCode()); 
 | 
        //根据行政区代码查询企业信息 
 | 
        Company  com = companyExtMapper.selectOne(new QueryWrapper<>(qc).last(" limit 1")); 
 | 
        if(Objects.nonNull(com) && !com.getId().equals(user.getId())){ 
 | 
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,社会统一信用代码已存在!"); 
 | 
        } 
 | 
        //如果企业信息为空,新增企业信息 
 | 
        com = new Company(); 
 | 
        com.setId(user.getId()); 
 | 
        com.setDeleted(Constants.ZERO); 
 | 
        com.setUpdateTime(new Date()); 
 | 
        com.setUpdateUser(principal.getId()); 
 | 
        com.setCreditCode(user.getCreditCode()); 
 | 
        com.setName(user.getOrgName()); 
 | 
        com.setOepnValidDate(user.getOepnValidDate()); 
 | 
        com.setLinker(user.getLinkName()); 
 | 
        com.setLinkPhone(user.getLinkPhone()); 
 | 
        com.setAddr(user.getAddr()); 
 | 
        com.setFileStoreAddr(user.getFileStoreAddr()); 
 | 
        com.setShortName(user.getRemark()); 
 | 
        com.setOepnType(user.getOepnType()); 
 | 
        com.setSalesperson(user.getSalesperson()); 
 | 
        //修改企业信息 
 | 
        companyExtMapper.updateById(com); 
 | 
  
 | 
        UpdateWrapper<CompanyOpen> companyOpenWrapper = new UpdateWrapper<>(); 
 | 
        companyOpenWrapper.lambda().set(CompanyOpen::getOepnType,user.getOepnType()) 
 | 
                        .set(CompanyOpen::getValidDate,user.getOepnValidDate()) 
 | 
                        .eq(CompanyOpen::getCompanyId,user.getId()); 
 | 
        companyOpenExtMapper.update(null,companyOpenWrapper); 
 | 
  
 | 
        //创建根目录 
 | 
        if (StringUtils.isNotBlank(com.getShortName())){ 
 | 
            UpdateWrapper<Department> wrapper = new UpdateWrapper<>(); 
 | 
            wrapper.lambda().set(Department::getName,com.getShortName()) 
 | 
                    .eq(Department::getCompanyId,com.getId()); 
 | 
            departmentExtMapper.update(null,wrapper); 
 | 
        } 
 | 
  
 | 
        com = companyExtMapper.selectById(user.getId()); 
 | 
        initRedisCache(com); 
 | 
  
 | 
        CompanyLog companyLog = new CompanyLog(); 
 | 
        companyLog.setDeleted((byte)Constants.ZERO); 
 | 
        companyLog.setUpdateUser(principal.getId()); 
 | 
        companyLog.setCreateUser(principal.getId()); 
 | 
        companyLog.setCreateTime(new Date()); 
 | 
        companyLog.setUpdateTime(new Date()); 
 | 
        companyLog.setRemark("更新企业数据"); 
 | 
        companyLog.setCompanyId(user.getId()); 
 | 
        companyLog.setUpdateType(Constants.CompanyUpdateType.UPDATE_CONTENT.getKey()); 
 | 
        companyLog.setDetail("更新企业数据"); 
 | 
        companyLogService.create(companyLog); 
 | 
  
 | 
        return null; 
 | 
    } 
 | 
    @Override 
 | 
    @Transactional(rollbackFor = {BusinessException.class,Exception.class}) 
 | 
    public Company   createByEdgp(AppUserInfoModel user, String pwd){ 
 | 
        AutoLoginUserDTO param = new AutoLoginUserDTO(); 
 | 
        param.setOrgName(user.getDepartmentName()); 
 | 
        param.setName(user.getName()); 
 | 
        param.setUserId(user.getId()+""); 
 | 
        param.setCreditCode(user.getCreditCode()); 
 | 
        param.setPhone(user.getPhone()); 
 | 
        param.setManager(Constants.formatIntegerNum(user.getManager())+""); 
 | 
        param.setUserinfo(JSONObject.toJSONString(user)); 
 | 
        param.setOrigin(Constants.COMPANY_ORIGIN.lingyang); 
 | 
       return createByThirdParam(param,pwd); 
 | 
    } 
 | 
    @Override 
 | 
    @Transactional(rollbackFor = {BusinessException.class,Exception.class}) 
 | 
    public Company createByLingyang(UserDTO user, String pwd){ 
 | 
        AutoLoginUserDTO param = new AutoLoginUserDTO(); 
 | 
        param.setOrgName(user.getOrgName()); 
 | 
        param.setName(user.getName()); 
 | 
        param.setUserId(user.getUserId()); 
 | 
        param.setCreditCode(user.getCreditCode()); 
 | 
        param.setPhone(user.getPhone()); 
 | 
        param.setManager(user.getManager()); 
 | 
        param.setUserinfo(JSONObject.toJSONString(user)); 
 | 
        param.setOrigin(Constants.COMPANY_ORIGIN.lingyang); 
 | 
       return createByThirdParam(param,pwd); 
 | 
    } 
 | 
    public Company createByThirdParam(AutoLoginUserDTO user, String pwd){ 
 | 
        Company qc = new Company(); 
 | 
        qc.setDeleted(Constants.ZERO); 
 | 
        qc.setCreditCode(user.getCreditCode()); 
 | 
        qc.setOrigin(user.getOrigin()); 
 | 
        //根据行政区代码查询企业信息 
 | 
        Company  com = companyExtMapper.selectOne(new QueryWrapper<>(qc).last(" limit 1")); 
 | 
        if(StringUtils.equals(user.getManager(),Constants.ONE+"")){ 
 | 
            //如果是管理员并且是购买方式 
 | 
            if(com == null ){ 
 | 
                //如果企业信息为空,新增企业信息 
 | 
                com = new Company(); 
 | 
                com.setDeleted(Constants.ZERO); 
 | 
                com.setCreateTime(new Date()); 
 | 
//                com.setOrigin(Constants.THREE); 
 | 
                com.setCreditCode(user.getCreditCode()); 
 | 
                com.setName(user.getOrgName()); 
 | 
                com.setLingyangInfo(user.getUserinfo()); 
 | 
                com.setLegalPersonPhone(user.getPhone()); 
 | 
                com.setOpenUserNum(-1); 
 | 
                com.setOpenModules(Constants.ONE+""); 
 | 
                com.setOepnValidDate(DateUtil.StringToDate("2099-12-31 09:25:09")); 
 | 
                com.setOepnType(Constants.ONE); 
 | 
                com.setChannelId(Constants.TWO); 
 | 
                com.setOrigin(user.getOrigin()); 
 | 
//                com.setDingdingId(user.getco); 
 | 
                //插入企业信息 
 | 
                companyExtMapper.insert(com); 
 | 
  
 | 
                //创建根目录 
 | 
                Department department = new Department(); 
 | 
                department.setCompanyId(com.getId()); 
 | 
                department.setStatus(Constants.ZERO); 
 | 
                department.setName(com.getName()); 
 | 
                department.setType(Constants.DEPART_TYPE.com); 
 | 
                department.setCreateTime(com.getCreateTime()); 
 | 
                department.setDeleted(Constants.ZERO); 
 | 
                department.setValidTime(department.getCreateTime()); 
 | 
                departmentExtMapper.insert(department); 
 | 
                department.setRootId(department.getId()); 
 | 
                departmentExtMapper.updateById(department); 
 | 
                com.setRootDepartment(department); 
 | 
                barcodeParamExtService.initParamData(com); 
 | 
                //如果是管理员角色,绑定默认角色 
 | 
                SystemRole sr = new SystemRole(); 
 | 
                sr.setDeleted(false); 
 | 
                sr.setType(Constants.ROLETYPE.com_def); 
 | 
                //查询全部角色数据 
 | 
                List<SystemRole> srList = systemRoleMapper.selectList(new QueryWrapper<>(sr)); 
 | 
                if(srList!=null){ 
 | 
                    for(SystemRole tr :srList){ 
 | 
                        //内置角色 
 | 
                        SystemRole newrole = new SystemRole(); 
 | 
                        newrole.setCode(tr.getCode()+"_"+com.getId()); 
 | 
                        newrole.setName(tr.getName()); 
 | 
                        newrole.setDeleted(Boolean.FALSE); 
 | 
                        newrole.setFixed(Boolean.FALSE); 
 | 
                        newrole.setCreateTime(new Date()); 
 | 
                        newrole.setCompanyId(com.getId()); 
 | 
                        newrole.setType(Constants.ROLETYPE.com); 
 | 
                        systemRoleMapper.insert(newrole); 
 | 
                        //内置菜单权限 
 | 
                        SystemRoleMenu systemRoleMenu = new SystemRoleMenu(); 
 | 
                        systemRoleMenu.setDeleted(false); 
 | 
                        systemRoleMenu.setRoleId(tr.getId()); 
 | 
                        List<SystemRoleMenu> menus = systemRoleMenuMapper.selectList(new QueryWrapper<>(systemRoleMenu)); 
 | 
                        if(menus !=null && menus.size()>0){ 
 | 
                            for(SystemRoleMenu m : menus){ 
 | 
                                m.setRoleId(newrole.getId()); 
 | 
                                m.setCreateTime(com.getCreateTime()); 
 | 
                            } 
 | 
                            systemRoleMapper.insertRoleMenuBatch(menus); 
 | 
                        } 
 | 
                        //内置操作权限 
 | 
                        SystemRolePermission permission = new SystemRolePermission(); 
 | 
                        permission.setDeleted(false); 
 | 
                        permission.setRoleId(tr.getId()); 
 | 
                        List<SystemRolePermission> permissions = systemRolePermissionMapper.selectList(new QueryWrapper<>(permission)); 
 | 
                        if(permissions !=null && permissions.size()>0){ 
 | 
                            for(SystemRolePermission m : permissions){ 
 | 
                                m.setRoleId(newrole.getId()); 
 | 
                                m.setCreateTime(com.getCreateTime()); 
 | 
                            } 
 | 
                            systemRoleMapper.insertRolePermissionBatch(permissions); 
 | 
                        } 
 | 
  
 | 
                        //内置数据数权限 
 | 
                        SystemDataPermission systemDataPermission = new SystemDataPermission(); 
 | 
                        systemDataPermission.setDeleted(false); 
 | 
                        systemDataPermission.setRoleId(tr.getId()); 
 | 
                        List<SystemDataPermission> datas = systemDataPermissionMapper.selectList(new QueryWrapper<>(systemDataPermission)); 
 | 
                        if(datas !=null && datas.size()>0){ 
 | 
                            for(SystemDataPermission m : datas){ 
 | 
                                m.setRoleId(newrole.getId()); 
 | 
                                m.setCreateTime(com.getCreateTime()); 
 | 
                                m.setCompanyId(newrole.getCompanyId()); 
 | 
                            } 
 | 
                            systemRoleMapper.insertDataPermissionBatch(datas); 
 | 
                        }else{ 
 | 
                            //默认内置一个数据权限 
 | 
                            systemDataPermission.setRoleId(newrole.getId()); 
 | 
                            systemDataPermission.setCompanyId(newrole.getCompanyId()); 
 | 
                            systemDataPermission.setCreateTime(new Date()); 
 | 
                            systemDataPermission.setBusinessCode("DEPARTMENT"); 
 | 
                            systemDataPermission.setDisabled(Boolean.FALSE); 
 | 
                            systemDataPermission.setType(Constants.DATAPERMISSION_TYPE.all); 
 | 
                            datas = new ArrayList<>(); 
 | 
                            datas.add(systemDataPermission); 
 | 
                            systemRoleMapper.insertDataPermissionBatch(datas); 
 | 
                        } 
 | 
                    } 
 | 
                } 
 | 
                initRedisCache(com); 
 | 
            } 
 | 
        }else{ 
 | 
            if(com == null){ 
 | 
                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"企业未注册"); 
 | 
            } 
 | 
            Department department = new Department(); 
 | 
            department.setCompanyId(com.getId()); 
 | 
            department.setDeleted(Constants.ZERO); 
 | 
            department.setType(Constants.DEPART_TYPE.com); 
 | 
            department = departmentExtMapper.selectOne(new QueryWrapper<>(department).last("limit 1")); 
 | 
            if(department == null){ 
 | 
                throw  new BusinessException(ResponseStatus.ERR_STATUS.getCode(),"对不起,企业信息异常,请联系系统管理员!"); 
 | 
            } 
 | 
            com.setRootDepartment(department); 
 | 
        } 
 | 
        systemUserBiz.importLingYangUser(user,pwd,com); 
 | 
  
 | 
        return com; 
 | 
    } 
 | 
  
 | 
    private void initRedisCache(Company com) { 
 | 
        CompanyExtListVO c = new CompanyExtListVO(); 
 | 
        BeanUtils.copyProperties(com,c); 
 | 
        departmentExtService.loadComDepart(c); 
 | 
        departmentExtService.initCompnayCodesByCom(com); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public CompanyExtListVO getModelById(Integer companyId){ 
 | 
        CompanyExtListVO com = RedisUtil.getObject(redisTemplate, Constants.RedisKeys.COM_INFO_KEY+companyId,CompanyExtListVO.class); 
 | 
        return com; 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 获取企业token 
 | 
     * @param companyId 
 | 
     * @return 
 | 
     */ 
 | 
    @Override 
 | 
    public String getDingdingToken(Integer companyId){ 
 | 
        String token = RedisUtil.getObject(redisTemplate, Constants.RedisKeys.COM_DINGDING_TOKEN+companyId,String.class); 
 | 
        if(StringUtils.isBlank(token)){ 
 | 
            CompanyExtListVO com = RedisUtil.getObject(redisTemplate, Constants.RedisKeys.COM_INFO_KEY+companyId,CompanyExtListVO.class); 
 | 
            if(com!=null){ 
 | 
                try { 
 | 
                    String ddinfo = com.getDingdingInfo(); 
 | 
                    JSONObject json = JSONObject.parseObject(ddinfo); 
 | 
                    String key = json.getString("app_key"); 
 | 
                    String secret = json.getString("app_secret"); 
 | 
                    token = DingDingUtil.getInnerAppTokenNew(key,secret); 
 | 
                    //加入redis缓存 
 | 
                    RedisUtil.addObject(redisTemplate,Constants.RedisKeys.COM_DINGDING_TOKEN+com.getId(),token,7000); 
 | 
                }catch (Exception e){ 
 | 
                    e.printStackTrace(); 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
  
 | 
        return token; 
 | 
    } 
 | 
    /** 
 | 
     * 获取企业审批模板 
 | 
     * @param companyId 
 | 
     * @return 
 | 
     */ 
 | 
    @Override 
 | 
    public String getDingdingProCode(Integer companyId){ 
 | 
        CompanyExtListVO com = RedisUtil.getObject(redisTemplate, Constants.RedisKeys.COM_INFO_KEY+companyId,CompanyExtListVO.class); 
 | 
        if(com!=null){ 
 | 
            try { 
 | 
                String ddinfo = com.getDingdingInfo(); 
 | 
                JSONObject json = JSONObject.parseObject(ddinfo); 
 | 
                String code = json.getString("process_code"); 
 | 
                if(StringUtils.isNotBlank(code)){ 
 | 
                    Long agentId = json.getLong("agentid"); 
 | 
                    code = DingDingUtil.createJobTmpl(getDingdingToken(companyId),  agentId  ); 
 | 
                    if(StringUtils.isNotBlank(code)){ 
 | 
                        json.put("process_code",code); 
 | 
                        Company company = new Company(); 
 | 
                        company.setId(com.getId()); 
 | 
                        company.setDingdingInfo(json.toJSONString()); 
 | 
                        //更新数据 
 | 
                        companyExtMapper.updateById(company); 
 | 
                        //加入redis缓存 
 | 
                        RedisUtil.addObject(redisTemplate,Constants.RedisKeys.COM_INFO_KEY+com.getId(),com); 
 | 
                        return code; 
 | 
                    } 
 | 
                } 
 | 
  
 | 
            }catch (Exception e){ 
 | 
                e.printStackTrace(); 
 | 
            } 
 | 
        } 
 | 
        return null; 
 | 
    } 
 | 
    /** 
 | 
     * 获取企业token 
 | 
     * @param companyId 
 | 
     * @return 
 | 
     */ 
 | 
    @Override 
 | 
    public String getDingdingTicekt(Integer companyId){ 
 | 
        String ticket = RedisUtil.getObject(redisTemplate, Constants.RedisKeys.COM_DINGDING_JSAPITIKCKT+companyId,String.class); 
 | 
        if(StringUtils.isBlank(ticket)){ 
 | 
            String token = getDingdingToken(companyId); 
 | 
            if(StringUtils.isBlank(token)){ 
 | 
                try { 
 | 
                    ticket = DingDingUtil.getJsTicketNew(token); 
 | 
                    //加入redis缓存 
 | 
                    RedisUtil.addObject(redisTemplate,Constants.RedisKeys.COM_DINGDING_JSAPITIKCKT+companyId,ticket,7000); 
 | 
                }catch (Exception e){ 
 | 
                    e.printStackTrace(); 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
        return ticket; 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public PageData<CompanyInfoListVO> findCompanyInfoListVOPage(PageWrap<QueryCompanyExtDTO> pageWrap) { 
 | 
  
 | 
        PageHelper.startPage(pageWrap.getPage(), pageWrap.getCapacity()); 
 | 
        pageWrap.getModel().setDeleted(Constants.ZERO); 
 | 
        List<CompanyInfoListVO> companyInfoListVOS = companyExtMapper.selectCompanyInfoList(pageWrap.getModel()); 
 | 
        return PageData.from(new PageInfo<>(companyInfoListVOS)); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public CompanyInfoListVO findCompanyInfo(Integer CompanyId) { 
 | 
        CompanyInfoListVO companyInfoListVO = companyExtMapper.selectCompanyInfo(CompanyId); 
 | 
        if (Objects.isNull(companyInfoListVO)){ 
 | 
            return companyInfoListVO; 
 | 
        } 
 | 
        String rPath =systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+systemDictDataBiz.queryByCode(Constants.OSS,Constants.MENU_IMG).getCode(); 
 | 
        companyInfoListVO.setFileurlfull(rPath+companyInfoListVO.getFileStoreAddr()); 
 | 
  
 | 
        companyInfoListVO.setSystemUrl( systemDictDataBiz.queryByCode(Constants.EDGP_PARAM,Constants.SYSTEM_URL).getCode()+companyInfoListVO.getId()); 
 | 
  
 | 
        return companyInfoListVO; 
 | 
    } 
 | 
} 
 |