| 
					
				 | 
			
			
				@ -15,6 +15,7 @@ import com.yihu.jw.entity.base.dict.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.base.module.SaasModuleDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.base.org.BaseOrgDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.base.role.RoleDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.base.saas.BaseEmailTemplateConfigDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.base.saas.SaasDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.base.saas.SaasThemeDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.base.saas.SaasThemeExtendDO; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -25,6 +26,9 @@ import com.yihu.mysql.query.BaseJpaService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.utils.security.MD5; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.beans.factory.annotation.Value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.mail.MailException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.mail.SimpleMailMessage; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.mail.javamail.JavaMailSender; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.transaction.annotation.Transactional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.util.StringUtils; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -78,6 +82,13 @@ public class SaasService extends BaseJpaService<SaasDO, SaasDao> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private SaasThemeExtendDao saasThemeExtendDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Value("${configDefault.saasId}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private String defaultSaasId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private BaseEmailTemplateConfigService baseEmailTemplateConfigService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Value("${spring.mail.username}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private String username; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    JavaMailSender jms; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 默认租户管理员角色code 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -91,19 +102,119 @@ public class SaasService extends BaseJpaService<SaasDO, SaasDao> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Transactional(rollbackFor = Exception.class) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public SaasDO create(SaasDO saas){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        saas.setStatus(SaasDO.Status.auditWait); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        final SaasDO.Status staus = saas.getStatus(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        saas.setStatus(SaasDO.Status.auditPassed); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        saas = saasDao.save(saas); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<BaseOrgDO> orgDOList = saas.getOrgList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(orgDOList!=null&&orgDOList.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String saasId = saas.getId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            orgDOList.forEach(org->{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                BaseOrgDO orgDO = baseOrgDao.findByCodeAndSaasId(org.getCode(),defaultSaasId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setSaasid(saasId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setName(orgDO.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setAddress(orgDO.getAddress()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setAlias(orgDO.getAlias()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setBrief(orgDO.getBrief()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setCityCode(orgDO.getCityCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setCityName(orgDO.getCityName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setDel(orgDO.getDel()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setIntro(orgDO.getIntro()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setLatitude(orgDO.getLatitude()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setLegalperson(orgDO.getLegalperson()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setLongitude(orgDO.getLongitude()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setName(orgDO.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setOrgAdmin(orgDO.getOrgAdmin()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setOrgUrl(orgDO.getOrgUrl()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setPhoto(orgDO.getPhoto()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setProvinceCode(orgDO.getProvinceCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setProvinceName(orgDO.getProvinceName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setQrcode(orgDO.getQrcode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setSpell(orgDO.getSpell()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setStreetCode(orgDO.getStreetCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setStreetName(orgDO.getStreetName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setTownCode(orgDO.getTownCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setTownName(orgDO.getTownName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setType(orgDO.getType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        baseOrgDao.save(orgDOList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //用户信息初始化 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        UserDO userDO = new UserDO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        userDO.setEmail(saas.getEmail()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        userDO.setMobile(saas.getMobile()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        userDO.setName(saas.getManagerName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        userDO.setUsername(userDO.getEmail()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        saasAudit(saas, userDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        send(saas); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        saas.setStatus(staus); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        saasDao.save(saas); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return saas; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 发送邮件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param saasDO 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public void send(SaasDO saasDO) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            SaasDO.Status status = saasDO.getStatus(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String password = saasDO.getMobile().substring(0, 6); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            BaseEmailTemplateConfigDO baseEmailTemplateConfigDO = baseEmailTemplateConfigService.findByCode(status.name()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (null == baseEmailTemplateConfigDO) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //建立邮件消息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            SimpleMailMessage mainMessage = new SimpleMailMessage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //发送者 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            mainMessage.setFrom(username); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //接收者 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            mainMessage.setTo(saasDO.getEmail()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //发送的标题 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            mainMessage.setSubject(baseEmailTemplateConfigDO.getTemplateName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //发送的内容 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            StringBuffer content = new StringBuffer(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            content.append(baseEmailTemplateConfigDO.getFirst() + "\n").append(baseEmailTemplateConfigDO.getKeyword1() + "\n"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            content.append(baseEmailTemplateConfigDO.getKeyword2() + "\n"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (status.equals(SaasDO.Status.auditPassed)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //账号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                content.append(baseEmailTemplateConfigDO.getKeyword3() + saasDO.getMobile() + "\n"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //密码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                content.append(baseEmailTemplateConfigDO.getKeyword4() + password + "\n"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else if (status.equals(SaasDO.Status.auditNotPassed)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //审核未通过的原因 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                content.append(saasDO.getAuditFailedReason() + "\n"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            content.append(baseEmailTemplateConfigDO.getKeyword5() + baseEmailTemplateConfigDO.getUrl() + "\n"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            content.append(baseEmailTemplateConfigDO.getRemark()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            mainMessage.setText(content.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jms.send(mainMessage); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (MailException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 注册修改 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param saas 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Transactional(rollbackFor = Exception.class) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public SaasDO create(SaasDO saas,SaasDO oldSaas){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        oldSaas.setStatus(SaasDO.Status.auditWait); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        oldSaas.setEmail(saas.getEmail()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        oldSaas.setMobile(saas.getMobile()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        oldSaas.setManagerName(saas.getManagerName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        oldSaas.setName(saas.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        oldSaas.setOrganizationCode(saas.getOrganizationCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        oldSaas.setBusinessLicense(saas.getBusinessLicense()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        oldSaas.setType(saas.getType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        saasDao.save(oldSaas); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return oldSaas; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 修改 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param saas 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -127,7 +238,33 @@ public class SaasService extends BaseJpaService<SaasDO, SaasDao> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<BaseOrgDO> orgDOList = saas.getOrgList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(orgDOList!=null&&orgDOList.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            orgDOList.forEach(org->{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                BaseOrgDO orgDO = baseOrgDao.findByCodeAndSaasId(org.getCode(),defaultSaasId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setSaasid(saasId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setName(orgDO.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setAddress(orgDO.getAddress()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setAlias(orgDO.getAlias()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setBrief(orgDO.getBrief()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setCityCode(orgDO.getCityCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setCityName(orgDO.getCityName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setDel(orgDO.getDel()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setIntro(orgDO.getIntro()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setLatitude(orgDO.getLatitude()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setLegalperson(orgDO.getLegalperson()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setLongitude(orgDO.getLongitude()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setName(orgDO.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setOrgAdmin(orgDO.getOrgAdmin()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setOrgUrl(orgDO.getOrgUrl()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setPhoto(orgDO.getPhoto()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setProvinceCode(orgDO.getProvinceCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setProvinceName(orgDO.getProvinceName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setQrcode(orgDO.getQrcode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setSpell(orgDO.getSpell()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setStreetCode(orgDO.getStreetCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setStreetName(orgDO.getStreetName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setTownCode(orgDO.getTownCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setTownName(orgDO.getTownName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.setType(orgDO.getType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        baseOrgDao.save(orgDOList); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -136,7 +273,6 @@ public class SaasService extends BaseJpaService<SaasDO, SaasDao> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return oldSaas; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 系统配置 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param saasDO 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -233,6 +369,8 @@ public class SaasService extends BaseJpaService<SaasDO, SaasDao> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        userRoleDO.setUserId(user.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        userRoleDao.save(userRoleDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        saas.setManager(user.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        saas.setAppId(getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        saas.setAppSecret(getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        saas = saasDao.save(saas); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String saasId = saas.getId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //系统字典项 
			 |