| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- package com.uas.sso.service.impl;
- import com.uas.sso.dao.UserspaceDao;
- import com.uas.sso.entity.User;
- import com.uas.sso.entity.Userspace;
- import com.uas.sso.exception.VisibleError;
- import com.uas.sso.service.UserService;
- import com.uas.sso.service.UserspaceService;
- import com.uas.sso.util.ChineseUtils;
- import com.uas.sso.util.StringUtil;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.util.StringUtils;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * 企业信息service层
- *
- * @author wangmh
- * @date 2018/1/5
- */
- @Service
- public class UserspaceServiceImpl implements UserspaceService {
- @Autowired
- private UserspaceDao userspaceDao;
- @Autowired
- private UserService userService;
- /**
- * 企业初始uu号
- */
- public static final Long SPACE_INIT_UU = 10000000L;
- @Override
- public void register(Userspace userspace, User admin) {
- // 校验企业名是否重复
- checkSpaceName(userspace.getSpaceName());
- // 校验营业执照号是否重复
- checkBusinessCode(userspace.getBusinessCode());
- // 设置域名
- if (StringUtils.isEmpty(userspace.getDomain())) {
- generateDefaultDomain(userspace);
- }
- // 设置uu号
- Long maxUU = userspaceDao.findMaxUU();
- userspace.setSpaceUU(StringUtils.isEmpty(maxUU) ? SPACE_INIT_UU : (maxUU + 1));
- // 设置管理员信息
- User oldUser = userService.findByMobile(admin.getMobile());
- if (oldUser == null) {
- userService.register(admin);
- } else {
- userService.save(admin);
- }
- // 给企业设置管理员
- userspace.setAdmin(admin);
- // 将管理员设置在企业下
- List<User> users = new ArrayList<>();
- users.add(admin);
- userspace.setUsers(users);
- // 注册企业
- userspaceDao.save(userspace);
- }
- /**
- * 生成默认域名
- *
- * @return
- */
- private String generateDefaultDomain(Userspace userspace) {
- String domain = null;
- Userspace oldOne = null;
- /// 代码复制,以后可能用到这个
- // if (!StringUtils.isEmpty(userspace.getUrl())) {
- // Pattern p = Pattern.compile("http(s)*://(.+\\.)*(.+)\\..+", Pattern.CASE_INSENSITIVE);
- // Matcher m = p.matcher(userspace.getUrl());
- // if (m.find()) {
- // domain = m.group(3);
- // if ("1688".equals(domain) || "taobao".equals(domain) || "qq".equals(domain) || "baidu".equals(domain)) {
- // domain = m.group(2);
- // }
- // }
- // }
- if (domain == null) {
- domain = StringUtil.substr(ChineseUtils.converterToFirstSpell(StringUtils.trimAllWhitespace(userspace.getSpaceName())), 0, 16);
- } else {
- oldOne = findByDomain(domain);
- if (oldOne != null) {
- domain = StringUtil.substr(ChineseUtils.converterToFirstSpell(StringUtils.trimAllWhitespace(userspace.getSpaceName())), 0, 16);
- }
- }
- oldOne = findByDomain(domain);
- if (oldOne != null) {
- domain = StringUtil.substr(ChineseUtils.converterToSpell(StringUtils.trimAllWhitespace(userspace.getSpaceName())), 0, 16);
- oldOne = findByDomain(domain);
- if (oldOne != null) {
- domain = null;
- }
- }
- return domain;
- }
- @Override
- public void checkSpaceName(String spaceName) {
- Userspace userspace = userspaceDao.findBySpaceName(spaceName);
- if (userspace != null) {
- throw new VisibleError("该企业名称已被注册,请确认");
- }
- }
- @Override
- public void checkBusinessCode(String businessCode) {
- Userspace userspace = userspaceDao.findByBusinessCode(businessCode);
- if (userspace != null) {
- throw new VisibleError("该企业营业执照已被注册,请确认");
- }
- }
- @Override
- public Userspace findByDomain(String domain) {
- return userspaceDao.findByDomain(domain);
- }
- }
|