| 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.setCreateTime(new Date()); | 
|         companyOpen.setUpdateTime(new Date()); | 
|         companyOpen.setCompanyId(com.getId()); | 
|         companyOpen.setValidDate(user.getOepnValidDate()); | 
|         companyOpen.setOepnType(user.getOepnType()); | 
| //        companyOpen.setCreateUser(); | 
| //        companyOpen.setUpdateUser(); | 
| //        companyOpen.setUserNum(); | 
| //        companyOpen.setModules(); | 
|         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.setOpenUserNum(user.getOpenUserNum()); | 
|         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.setIsNew(Constants.ONE); | 
| //                com.setOrigin(Constants.THREE); | 
|                 com.setCreditCode(user.getCreditCode()); | 
|                 com.setName(user.getOrgName()); | 
|                 com.setLingyangInfo(user.getUserinfo()); | 
|                 com.setLegalPersonPhone(user.getPhone()); | 
|                 //默认限制人员10 | 
|                 if(user.getOrigin() == Constants.COMPANY_ORIGIN.lingyang){ | 
|                     int userNum = 10; | 
|                     try { | 
|                         userNum =Integer.parseInt(systemDictDataBiz.queryByCode(Constants.LINGYANG_PARAM, Constants.LINGYANG_USERNUM_LIMIT).getCode()); | 
|                     }catch (Exception e){ | 
|                     } | 
|                     com.setOpenUserNum(userNum); | 
|                 }else{ | 
|                     com.setOpenUserNum(-1); | 
|                 } | 
|                 com.setOpenModules(Constants.ONE+""); | 
|                 com.setOepnValidDate(DateUtil.StringToDate("2099-12-31 09:25:09")); | 
|                 com.setOepnType(Constants.ONE); | 
|                 com.setStatus(Constants.ONE); | 
|                 com.setChannelId(Constants.TWO); | 
|                 com.setOrigin(user.getOrigin()); | 
|                 //插入企业信息 | 
|                 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; | 
|     } | 
| } |