SystemManager.java 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package com.yihu.hos.system.service;
  2. import com.yihu.hos.common.constants.ContextAttributes;
  3. import com.yihu.hos.interceptor.LocalContext;
  4. import com.yihu.hos.system.model.SystemUser;
  5. import com.yihu.hos.tenant.model.TenantSession;
  6. import com.yihu.hos.web.framework.model.ActionResult;
  7. import org.apache.commons.codec.digest.DigestUtils;
  8. import org.springframework.beans.factory.annotation.Value;
  9. import org.springframework.stereotype.Service;
  10. import javax.annotation.Resource;
  11. import javax.servlet.http.HttpSession;
  12. /**
  13. * Created by HZP on 2016/02/26.
  14. */
  15. @Service("systemManager")
  16. public class SystemManager {
  17. public static final String BEAN_ID = "systemManager";
  18. @Resource(name = UserManager.BEAN_ID)
  19. private UserManager userManager;
  20. @Value("${spring.administrators}")
  21. private String saasAdmin;
  22. /*
  23. 登录操作
  24. */
  25. public ActionResult loginAction(HttpSession session,String user,String password) throws Exception
  26. {
  27. ActionResult result = null;
  28. TenantSession tenantSession = (TenantSession)session.getAttribute(ContextAttributes.TENANT_SESSION);
  29. //特殊账户
  30. if(user.equals("admin") && password.equals("JKZL"))
  31. {
  32. SystemUser userInfo = new SystemUser();
  33. userInfo.setLoginCode("admin");
  34. userInfo.setUserName("管理员");
  35. session.setAttribute("userInfo",userInfo);
  36. tenantSession.setUserCode("admin");//设置租户code
  37. tenantSession.setRole("admin");//标识为管理员账号
  38. session.setAttribute(ContextAttributes.TENANT_SESSION, tenantSession);
  39. LocalContext.getContext().setAttachment(ContextAttributes.TENANT_NAME,tenantSession.getUserCode());
  40. LocalContext.getContext().setAttachment(ContextAttributes.SCHEMA, tenantSession.getSchema());
  41. result = new ActionResult(true,"登录成功!");
  42. result.setData(tenantSession);
  43. return result;
  44. }
  45. //根据用户名/密码到总平台校验
  46. SystemUser userInfo = userManager.getUserByLoginCode(user);
  47. if(userInfo==null)
  48. {
  49. result = new ActionResult(false,"登录失败!用户不存在!");
  50. return result;
  51. }
  52. else{
  53. String saltValue =userInfo.getSaltValue();
  54. String userPassword = userInfo.getPassword();
  55. if(userPassword.equals(DigestUtils.md5Hex(password + saltValue)))
  56. {
  57. if (saasAdmin.equals(user)){
  58. tenantSession.setRole("admin");//标识为管理员账号
  59. }
  60. tenantSession.setUserCode(user);
  61. session.setAttribute(ContextAttributes.TENANT_SESSION, tenantSession);
  62. session.setAttribute("userInfo",userInfo);
  63. result = new ActionResult(true,"登录成功!");
  64. result.setData(tenantSession);
  65. return result;
  66. }
  67. else{
  68. result = new ActionResult(false,"登录失败!密码错误!");
  69. return result;
  70. }
  71. }
  72. }
  73. }