|  | @ -1,15 +1,21 @@
 | 
	
		
			
				|  |  | package com.yihu.jw.base.endpoint.saas;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import com.yihu.jw.base.contant.CommonContant;
 | 
	
		
			
				|  |  | import com.yihu.jw.base.service.module.SaasModuleService;
 | 
	
		
			
				|  |  | import com.yihu.jw.base.service.saas.BaseEmailTemplateConfigService;
 | 
	
		
			
				|  |  | import com.yihu.jw.base.service.saas.SaasService;
 | 
	
		
			
				|  |  | import com.yihu.jw.base.service.saas.SaasTypeDictService;
 | 
	
		
			
				|  |  | import com.yihu.jw.base.service.user.UserService;
 | 
	
		
			
				|  |  | import com.yihu.jw.base.util.ErrorCodeUtil;
 | 
	
		
			
				|  |  | import com.yihu.jw.base.util.ValidateUtil;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.base.module.ModuleDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.base.module.SaasModuleDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.base.saas.BaseEmailTemplateConfigDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.base.saas.SaasDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.base.saas.SaasTypeDictDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.base.user.UserDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.exception.code.BaseErrorCode;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.base.module.SaasModuleVO;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.base.saas.SaasVO;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.web.Envelop;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.web.ListEnvelop;
 | 
	
	
		
			
				|  | @ -20,6 +26,7 @@ import com.yihu.jw.rm.base.BaseRequestMapping;
 | 
	
		
			
				|  |  | import io.swagger.annotations.Api;
 | 
	
		
			
				|  |  | import io.swagger.annotations.ApiOperation;
 | 
	
		
			
				|  |  | import io.swagger.annotations.ApiParam;
 | 
	
		
			
				|  |  | import org.apache.commons.lang3.StringUtils;
 | 
	
		
			
				|  |  | import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  | import org.springframework.beans.factory.annotation.Value;
 | 
	
		
			
				|  |  | import org.springframework.mail.MailException;
 | 
	
	
		
			
				|  | @ -27,8 +34,11 @@ import org.springframework.mail.SimpleMailMessage;
 | 
	
		
			
				|  |  | import org.springframework.mail.javamail.JavaMailSender;
 | 
	
		
			
				|  |  | import org.springframework.web.bind.annotation.*;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import java.util.ArrayList;
 | 
	
		
			
				|  |  | import java.util.List;
 | 
	
		
			
				|  |  | import java.util.Map;
 | 
	
		
			
				|  |  | import java.util.UUID;
 | 
	
		
			
				|  |  | import java.util.stream.Collectors;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | /**
 | 
	
		
			
				|  |  |  * Endpoint - SAAS
 | 
	
	
		
			
				|  | @ -50,6 +60,8 @@ public class SaasEndpoint extends EnvelopRestEndpoint {
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private BaseEmailTemplateConfigService baseEmailTemplateConfigService;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private SaasModuleService saasModuleService;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     JavaMailSender jms;
 | 
	
		
			
				|  |  |     @Value("${spring.mail.username}")
 | 
	
		
			
				|  |  |     private String username;
 | 
	
	
		
			
				|  | @ -60,6 +72,12 @@ public class SaasEndpoint extends EnvelopRestEndpoint {
 | 
	
		
			
				|  |  |             @ApiParam(name = "jsonSaas", value = "租户数据", required = true)
 | 
	
		
			
				|  |  |             @RequestParam String jsonSaas) throws Exception {
 | 
	
		
			
				|  |  |         SaasDO saasDO = toEntity(jsonSaas, SaasDO.class);
 | 
	
		
			
				|  |  |         if(!ValidateUtil.isValidMobileNo(saasDO.getMobile())){
 | 
	
		
			
				|  |  |             return failed(errorCodeUtil.getErrorMsg(BaseErrorCode.Saas.MOBILE_IS_EXIST), Envelop.class);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(!ValidateUtil.isValidEmail(saasDO.getEmail())){
 | 
	
		
			
				|  |  |             return failed(errorCodeUtil.getErrorMsg(BaseErrorCode.Saas.EMAIL_IS_EXIST), Envelop.class);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if (saasService.search("name=" + saasDO.getName()).size() > 0) {
 | 
	
		
			
				|  |  |             return failed(errorCodeUtil.getErrorMsg(BaseErrorCode.Saas.NAME_IS_EXIST), Envelop.class);
 | 
	
		
			
				|  |  |         }
 | 
	
	
		
			
				|  | @ -199,6 +217,29 @@ public class SaasEndpoint extends EnvelopRestEndpoint {
 | 
	
		
			
				|  |  |         return success(saasVO);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @GetMapping(value = BaseRequestMapping.Saas.FIND_MODULE_BY_SAASID)
 | 
	
		
			
				|  |  |     @ApiOperation(value = "获取租户的模块列表")
 | 
	
		
			
				|  |  |     public ListEnvelop<SaasModuleVO> findModuleBySaasId (
 | 
	
		
			
				|  |  |             @ApiParam(name = "saasId", value = "saasId")
 | 
	
		
			
				|  |  |             @RequestParam(value = "saasId", required = true) String saasId) throws Exception {
 | 
	
		
			
				|  |  |         String filters = "status="+ ModuleDO.Status.available.getValue()+";";
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(saasId)){
 | 
	
		
			
				|  |  |             filters = "saasId="+saasId;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         List<SaasModuleDO> modules = saasModuleService.search(null, filters, null);
 | 
	
		
			
				|  |  |         List<SaasModuleVO> moduleVOs = convertToModels(modules,new ArrayList<>(modules.size()),SaasModuleVO.class);
 | 
	
		
			
				|  |  |         Map<String,List<SaasModuleVO>> map = moduleVOs.stream().collect(Collectors.groupingBy(SaasModuleVO::getParentModuleId));
 | 
	
		
			
				|  |  |         moduleVOs.forEach(module->{
 | 
	
		
			
				|  |  |             List<SaasModuleVO> tmp = map.get(module.getId());
 | 
	
		
			
				|  |  |             module.setChildren(tmp);
 | 
	
		
			
				|  |  |         });
 | 
	
		
			
				|  |  |         moduleVOs = moduleVOs.stream()
 | 
	
		
			
				|  |  |                 .filter(module -> CommonContant.DEFAULT_PARENTID.equals(module.getParentModuleId()))
 | 
	
		
			
				|  |  |                 .collect(Collectors.toList());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return success(moduleVOs);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @PostMapping(value = BaseRequestMapping.Saas.AUDIT)
 | 
	
		
			
				|  |  |     @ApiOperation(value = "审核")
 | 
	
		
			
				|  |  |     public ObjEnvelop<SaasDO> audit(
 |