Browse Source

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@1253 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d

suntg 10 years ago
parent
commit
4363fe3a5d

+ 2 - 0
src/main/java/com/uas/platform/b2b/model/Enterprise.java

@@ -446,6 +446,8 @@ public class Enterprise implements Serializable {
 		this.enSaasSendStatus = enSaasSendStatus;
 		this.enSaasSendStatus = enSaasSendStatus;
 	}
 	}
 
 
+	@JsonIgnore
+	@JSONField(serialize = false)
 	public String getEnAdminPassword() {
 	public String getEnAdminPassword() {
 		return enAdminPassword;
 		return enAdminPassword;
 	}
 	}

+ 28 - 0
src/main/java/com/uas/platform/b2b/service/EnterpriseService.java

@@ -9,7 +9,19 @@ import com.uas.platform.b2b.model.Enterprise;
 
 
 public interface EnterpriseService {
 public interface EnterpriseService {
 
 
+	/**
+	 * 企业注册号是否可用
+	 * @param code
+	 * @return
+	 */
 	public String bussinessCodeEnable(String code);
 	public String bussinessCodeEnable(String code);
+	
+	/**
+	 * 修改企业信息
+	 * @param enterprise
+	 * @return
+	 */
+	public Enterprise save(Enterprise enterprise);
 
 
 	/**
 	/**
 	 * saas域名是否可用
 	 * saas域名是否可用
@@ -18,6 +30,15 @@ public interface EnterpriseService {
 	 * @return
 	 * @return
 	 */
 	 */
 	public boolean isSaasUrlUseable(String saasUrl);
 	public boolean isSaasUrlUseable(String saasUrl);
+	
+	/**
+	 * B2B企业申请SaaS
+	 * @param enUU
+	 * @param enSaasUrl
+	 * @param enAdminPassword
+	 * @return
+	 */
+	public Enterprise applySaas(Long enUU, String enSaasUrl, String enAdminPassword);
 
 
 	public Enterprise registerEnterprise(Enterprise enterprise, Boolean isSaas);
 	public Enterprise registerEnterprise(Enterprise enterprise, Boolean isSaas);
 
 
@@ -78,4 +99,11 @@ public interface EnterpriseService {
 	 */
 	 */
 	public long getSequence();
 	public long getSequence();
 
 
+	/**
+	 * 管理平台创建SAAS账套后,发送邮件通知企业管理员
+	 * @param enterprises
+	 * @param request
+	 */
+	public void createdSaas(List<Enterprise> enterprises, HttpServletRequest request);
+
 }
 }

+ 81 - 11
src/main/java/com/uas/platform/b2b/service/impl/EnterpriseServiceImpl.java

@@ -21,6 +21,7 @@ import com.uas.platform.b2b.dao.CommonDao;
 import com.uas.platform.b2b.dao.EnterpriseDao;
 import com.uas.platform.b2b.dao.EnterpriseDao;
 import com.uas.platform.b2b.dao.RegisterRecordDao;
 import com.uas.platform.b2b.dao.RegisterRecordDao;
 import com.uas.platform.b2b.dao.UserDao;
 import com.uas.platform.b2b.dao.UserDao;
+import com.uas.platform.b2b.manage.controller.EnterpriseController;
 import com.uas.platform.b2b.model.Enterprise;
 import com.uas.platform.b2b.model.Enterprise;
 import com.uas.platform.b2b.model.RegisterRecord;
 import com.uas.platform.b2b.model.RegisterRecord;
 import com.uas.platform.b2b.model.User;
 import com.uas.platform.b2b.model.User;
@@ -72,7 +73,7 @@ public class EnterpriseServiceImpl implements EnterpriseService {
 		if (en == null && userService.isEmailUseable(enterprise.getEnAdminEmail()) && userService.isTelUseable(enterprise.getEnAdminTel())) {
 		if (en == null && userService.isEmailUseable(enterprise.getEnAdminEmail()) && userService.isTelUseable(enterprise.getEnAdminTel())) {
 			enterprise.setEnDate(new Date());
 			enterprise.setEnDate(new Date());
 			enterprise.setEnable(Constant.NO);
 			enterprise.setEnable(Constant.NO);
-			if(isSaas) {// 申请SAAS
+			if(isSaas != null && isSaas) {// 申请SAAS
 				enterprise.setEnStatus((short) Status.UNAUDIT.value());
 				enterprise.setEnStatus((short) Status.UNAUDIT.value());
 				enterprise.setEnSaasStatus((short) Status.UNAUDIT.value());
 				enterprise.setEnSaasStatus((short) Status.UNAUDIT.value());
 				enterprise.setEnSaasSendStatus((short) Status.NOT_UPLOAD.value());
 				enterprise.setEnSaasSendStatus((short) Status.NOT_UPLOAD.value());
@@ -94,7 +95,7 @@ public class EnterpriseServiceImpl implements EnterpriseService {
 			User newUser = userDao.save(user);// 保存user
 			User newUser = userDao.save(user);// 保存user
 			newEnterprise.setEnAdminuu(newUser.getUserUU());// 设置管理员UU号
 			newEnterprise.setEnAdminuu(newUser.getUserUU());// 设置管理员UU号
 			newEnterprise = enterpriseDao.save(newEnterprise);// 再次保存enterprise
 			newEnterprise = enterpriseDao.save(newEnterprise);// 再次保存enterprise
-			if(isSaas) {
+			if(isSaas != null && isSaas) {
 				registeRecord(newEnterprise, "注册并申请SAAS", "成功");
 				registeRecord(newEnterprise, "注册并申请SAAS", "成功");
 			} else {
 			} else {
 				registeRecord(newEnterprise, "注册", "成功");
 				registeRecord(newEnterprise, "注册", "成功");
@@ -116,6 +117,10 @@ public class EnterpriseServiceImpl implements EnterpriseService {
 					admin.setIssys(Constant.YES);
 					admin.setIssys(Constant.YES);
 					enterprise.setEnStatus((short) Status.ENABLED.value());
 					enterprise.setEnStatus((short) Status.ENABLED.value());
 					enterprise.setEnSendStatus((short) Status.NOT_UPLOAD.value());
 					enterprise.setEnSendStatus((short) Status.NOT_UPLOAD.value());
+					// 激活saas状态,开账套已经在管理平台审核时完成
+					if(enterprise.getEnSaasStatus() != null && enterprise.getEnSaasStatus() == Status.UNACT.value()) {
+						enterprise.setEnSaasStatus((short) Status.ENABLED.value());
+					}
 					userDao.save(admin);
 					userDao.save(admin);
 					enterpriseDao.save(enterprise);
 					enterpriseDao.save(enterprise);
 					registeRecord(enterprise, "激活企业", "成功");
 					registeRecord(enterprise, "激活企业", "成功");
@@ -164,15 +169,22 @@ public class EnterpriseServiceImpl implements EnterpriseService {
 
 
 	@Override
 	@Override
 	public String setAdminPassword(Long enuu, String password) {
 	public String setAdminPassword(Long enuu, String password) {
-		Enterprise enterprise = enterpriseDao.findEnterpriseByUu(enuu);
-		User admin = userDao.findUserByUserUU(enterprise.getEnAdminuu()).get(0);
+		Enterprise enterprise = enterpriseDao.findOne(enuu);
+		if(enterprise == null) throw new IllegalArgumentException();
+		User admin = userDao.findOne(enterprise.getEnAdminuu());
+		if(admin == null) throw new IllegalArgumentException();
 		admin.setUserPwd(Md5Utils.encode(password, admin.getUserUU()));
 		admin.setUserPwd(Md5Utils.encode(password, admin.getUserUU()));
 		userDao.save(admin);
 		userDao.save(admin);
 		enterprise.setEnAdminPassword(password);
 		enterprise.setEnAdminPassword(password);
 		enterpriseDao.save(enterprise);
 		enterpriseDao.save(enterprise);
 		updateManagePassword(enuu, password);
 		updateManagePassword(enuu, password);
 		registeRecord(enterprise, "设置管理员密码", "成功");
 		registeRecord(enterprise, "设置管理员密码", "成功");
-		return "SUCCESS";
+		if(enterprise.getEnSaasStatus() != null && enterprise.getEnSaasStatus() == Status.ENABLED.value() && 
+				enterprise.getEnSaasUrl() != null) {
+			// 申请Saas 跳转至SAAS初始化界面
+			return enterprise.getEnSaasUrl();
+		}
+		return null;
 	}
 	}
 	
 	
 	/**
 	/**
@@ -183,7 +195,7 @@ public class EnterpriseServiceImpl implements EnterpriseService {
 	private void updateManagePassword(Long enUU, String password) {
 	private void updateManagePassword(Long enUU, String password) {
 		try {
 		try {
 			Response response = HttpUtil.sendPostRequest(
 			Response response = HttpUtil.sendPostRequest(
-					Constant.MANAGE_HOST + "enterprise/password?enUU=" + enUU + "&password=" + password, null);
+					EnterpriseController.MANAGE_HOST + "enterprise/password?enUU=" + enUU + "&password=" + password, null);
 			if(response.getStatusCode() != HttpStatus.OK.value())
 			if(response.getStatusCode() != HttpStatus.OK.value())
 				throw new IllegalOperatorException(response.getResponseText());
 				throw new IllegalOperatorException(response.getResponseText());
 		} catch (Exception e) {
 		} catch (Exception e) {
@@ -262,7 +274,6 @@ public class EnterpriseServiceImpl implements EnterpriseService {
 
 
 	@Override
 	@Override
 	public void audit(Enterprise enterprise, HttpServletRequest request) {
 	public void audit(Enterprise enterprise, HttpServletRequest request) {
-		String myEmail = "suntg@usoftchina.com";
 		Enterprise enter = enterpriseDao.findEnterpriseByUu(enterprise.getUu());
 		Enterprise enter = enterpriseDao.findEnterpriseByUu(enterprise.getUu());
 		if (enter != null && (enter.getEnStatus() == null || enter.getEnStatus() == Status.UNAUDIT.value())) {
 		if (enter != null && (enter.getEnStatus() == null || enter.getEnStatus() == Status.UNAUDIT.value())) {
 			if (enterprise.getEnStatus() == Status.AUDITED.value()) {// 审核通过
 			if (enterprise.getEnStatus() == Status.AUDITED.value()) {// 审核通过
@@ -285,8 +296,7 @@ public class EnterpriseServiceImpl implements EnterpriseService {
 					model.put("adminEmail", admin.getUserEmail());
 					model.put("adminEmail", admin.getUserEmail());
 					model.put("adminTel", admin.getUserTel());
 					model.put("adminTel", admin.getUserTel());
 					try {
 					try {
-						//admin.getUserEmail()
-						sendMailService.sendTemplateMail(myEmail, "欢迎注册优软商务平台账号", model, "velocity/registerActivate.vm");
+						sendMailService.sendTemplateMail(admin.getUserEmail(), "欢迎注册优软商务平台账号", model, "velocity/registerActivate.vm");
 						registeRecord(enter, "发送审核通过邮件", "成功");
 						registeRecord(enter, "发送审核通过邮件", "成功");
 					} catch (Exception e) {
 					} catch (Exception e) {
 						registeRecord(enter, "发送审核通过邮件", "失败");
 						registeRecord(enter, "发送审核通过邮件", "失败");
@@ -306,8 +316,7 @@ public class EnterpriseServiceImpl implements EnterpriseService {
 					model.put("rootpath", AgentUtils.getHost(request));
 					model.put("rootpath", AgentUtils.getHost(request));
 					model.put("reason", enterprise.getEnAuditRemark());
 					model.put("reason", enterprise.getEnAuditRemark());
 					try {
 					try {
-						//admin.getUserEmail()
-						sendMailService.sendTemplateMail(myEmail, "很遗憾账号未能通过审核", model, "velocity/invalid.vm");
+						sendMailService.sendTemplateMail(admin.getUserEmail(), "很遗憾账号未能通过审核", model, "velocity/invalid.vm");
 						registeRecord(enter, "发送审核不通过邮件", "成功");
 						registeRecord(enter, "发送审核不通过邮件", "成功");
 					} catch (Exception e) {
 					} catch (Exception e) {
 						registeRecord(enter, "发送审核不通过邮件", "失败");
 						registeRecord(enter, "发送审核不通过邮件", "失败");
@@ -408,4 +417,65 @@ public class EnterpriseServiceImpl implements EnterpriseService {
 		return CollectionUtils.isEmpty(enterpriseDao.findByEnSaasUrl(saasUrl));
 		return CollectionUtils.isEmpty(enterpriseDao.findByEnSaasUrl(saasUrl));
 	}
 	}
 
 
+	@Override
+	public Enterprise save(Enterprise enterprise) {
+		Enterprise existEnterprise = enterpriseDao.findOne(enterprise.getUu());
+		if(existEnterprise == null) throw new IllegalArgumentException();
+		return enterpriseDao.save(enterprise);
+	}
+
+	@Override
+	public Enterprise applySaas(Long enUU, String enSaasUrl,
+			String enAdminPassword) {
+		Enterprise enterprise = enterpriseDao.findOne(enUU);
+		if(enterprise == null) throw new IllegalArgumentException();
+		if(enterprise.getEnSaasStatus() != null && enterprise.getEnSaasStatus() != Status.UNAPPLY.value())
+			throw new IllegalOperatorException("您的企业已申请SAAS服务");
+		User admin = userDao.findOne(enterprise.getEnAdminuu());
+		boolean result = admin.getUserPwd().equals(Md5Utils.encode(enAdminPassword, admin.getUserUU()));
+		if(result) {
+			updateManagePassword(enUU, enAdminPassword);
+			enterprise.setEnAdminPassword(enAdminPassword);
+			enterprise.setEnSaasUrl(enSaasUrl);
+			enterprise.setEnSaasStatus((short) Status.UNAUDIT.value());
+			enterprise.setEnSaasSendStatus((short) Status.NOT_UPLOAD.value());
+			enterprise = enterpriseDao.save(enterprise);
+			registeRecord(enterprise, "申请开通SAAS服务", "成功");
+		} else {
+			throw new IllegalOperatorException("管理员账号的密码错误");
+		}
+		return enterprise;
+	}
+
+	@Override
+	public void createdSaas(List<Enterprise> enterprises,
+			HttpServletRequest request) {
+		if(!CollectionUtils.isEmpty(enterprises)) {
+			for(Enterprise enterprise : enterprises) {
+				Enterprise enter = enterpriseDao.findEnterpriseByUu(enterprise.getUu());
+				if (enter != null && enter.getEnSaasStatus() != null && enter.getEnSaasStatus() == Status.UNAUDIT.value()) {
+					User admin = userDao.findOne(enter.getEnAdminuu());
+					registeRecord(enter, "创建SAAS账套", "成功");
+					enter.setEnSaasStatus((short) Status.ENABLED.value());
+					enterpriseDao.save(enter);
+					if (admin != null) {
+						Map<String, Object> model = new HashMap<String, Object>();
+						model.put("name", enter.getEnName());
+						model.put("email", admin.getUserEmail());
+						model.put("saasUrl", enter.getEnSaasUrl());
+						model.put("rootpath", AgentUtils.getHost(request));
+						model.put("uu", enter.getUu());
+						try {
+							sendMailService.sendTemplateMail(admin.getUserEmail(), "成功优软SAAS服务系统", model, "velocity/createdSaas.vm");
+							registeRecord(enter, "发送SAAS开通提醒邮件", "成功");
+						} catch (Exception e) {
+							registeRecord(enter, "发送SAAS开通提醒邮件", "失败");
+							e.printStackTrace();
+						}
+					}
+				}
+			}
+		}
+	}
+
 }
 }