UserspaceServiceImpl.java 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. package com.uas.sso.service.impl;
  2. import com.uas.sso.dao.UserspaceDao;
  3. import com.uas.sso.entity.User;
  4. import com.uas.sso.entity.Userspace;
  5. import com.uas.sso.exception.VisibleError;
  6. import com.uas.sso.service.UserService;
  7. import com.uas.sso.service.UserspaceService;
  8. import com.uas.sso.util.ChineseUtils;
  9. import com.uas.sso.util.StringUtil;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.stereotype.Service;
  12. import org.springframework.util.StringUtils;
  13. import java.util.ArrayList;
  14. import java.util.List;
  15. /**
  16. * 企业信息service层
  17. *
  18. * @author wangmh
  19. * @date 2018/1/5
  20. */
  21. @Service
  22. public class UserspaceServiceImpl implements UserspaceService {
  23. @Autowired
  24. private UserspaceDao userspaceDao;
  25. @Autowired
  26. private UserService userService;
  27. /**
  28. * 企业初始uu号
  29. */
  30. public static final Long SPACE_INIT_UU = 10000000L;
  31. @Override
  32. public void register(Userspace userspace, User admin) {
  33. // 校验企业名是否重复
  34. checkSpaceName(userspace.getSpaceName());
  35. // 校验营业执照号是否重复
  36. checkBusinessCode(userspace.getBusinessCode());
  37. // 设置域名
  38. if (StringUtils.isEmpty(userspace.getDomain())) {
  39. generateDefaultDomain(userspace);
  40. }
  41. // 设置uu号
  42. Long maxUU = userspaceDao.findMaxUU();
  43. userspace.setSpaceUU(StringUtils.isEmpty(maxUU) ? SPACE_INIT_UU : (maxUU + 1));
  44. // 设置管理员信息
  45. User oldUser = userService.findByMobile(admin.getMobile());
  46. if (oldUser == null) {
  47. userService.register(admin);
  48. } else {
  49. userService.save(admin);
  50. }
  51. // 给企业设置管理员
  52. userspace.setAdmin(admin);
  53. // 将管理员设置在企业下
  54. List<User> users = new ArrayList<>();
  55. users.add(admin);
  56. userspace.setUsers(users);
  57. // 注册企业
  58. userspaceDao.save(userspace);
  59. }
  60. /**
  61. * 生成默认域名
  62. *
  63. * @return
  64. */
  65. private String generateDefaultDomain(Userspace userspace) {
  66. String domain = null;
  67. Userspace oldOne = null;
  68. /// 代码复制,以后可能用到这个
  69. // if (!StringUtils.isEmpty(userspace.getUrl())) {
  70. // Pattern p = Pattern.compile("http(s)*://(.+\\.)*(.+)\\..+", Pattern.CASE_INSENSITIVE);
  71. // Matcher m = p.matcher(userspace.getUrl());
  72. // if (m.find()) {
  73. // domain = m.group(3);
  74. // if ("1688".equals(domain) || "taobao".equals(domain) || "qq".equals(domain) || "baidu".equals(domain)) {
  75. // domain = m.group(2);
  76. // }
  77. // }
  78. // }
  79. if (domain == null) {
  80. domain = StringUtil.substr(ChineseUtils.converterToFirstSpell(StringUtils.trimAllWhitespace(userspace.getSpaceName())), 0, 16);
  81. } else {
  82. oldOne = findByDomain(domain);
  83. if (oldOne != null) {
  84. domain = StringUtil.substr(ChineseUtils.converterToFirstSpell(StringUtils.trimAllWhitespace(userspace.getSpaceName())), 0, 16);
  85. }
  86. }
  87. oldOne = findByDomain(domain);
  88. if (oldOne != null) {
  89. domain = StringUtil.substr(ChineseUtils.converterToSpell(StringUtils.trimAllWhitespace(userspace.getSpaceName())), 0, 16);
  90. oldOne = findByDomain(domain);
  91. if (oldOne != null) {
  92. domain = null;
  93. }
  94. }
  95. return domain;
  96. }
  97. @Override
  98. public void checkSpaceName(String spaceName) {
  99. Userspace userspace = userspaceDao.findBySpaceName(spaceName);
  100. if (userspace != null) {
  101. throw new VisibleError("该企业名称已被注册,请确认");
  102. }
  103. }
  104. @Override
  105. public void checkBusinessCode(String businessCode) {
  106. Userspace userspace = userspaceDao.findByBusinessCode(businessCode);
  107. if (userspace != null) {
  108. throw new VisibleError("该企业营业执照已被注册,请确认");
  109. }
  110. }
  111. @Override
  112. public Userspace findByDomain(String domain) {
  113. return userspaceDao.findByDomain(domain);
  114. }
  115. }