|
@@ -3,13 +3,17 @@ package cn.cslg.permission.service;
|
|
|
import cn.cslg.permission.common.model.vo.*;
|
|
|
import cn.cslg.permission.common.utils.*;
|
|
|
import cn.cslg.permission.common.utils.SecurityUtils.SecurityUtils;
|
|
|
+import cn.cslg.permission.common.utils.message.MessageUtils;
|
|
|
import cn.cslg.permission.domain.*;
|
|
|
+import cn.cslg.permission.domain.sys.SysDictItem;
|
|
|
import cn.cslg.permission.mapper.AssoTenantVipTypeFunctionMapper;
|
|
|
+import cn.cslg.permission.mapper.SysDictItemMapper;
|
|
|
import cn.cslg.permission.mapper.TenantEntityMapper;
|
|
|
import cn.cslg.permission.service.associate.PersonRoleService;
|
|
|
import cn.cslg.permission.service.associate.RoleFunctionDataService;
|
|
|
import cn.dev33.satoken.stp.StpUtil;
|
|
|
import cn.hutool.crypto.SecureUtil;
|
|
|
+import cn.hutool.extra.mail.MailUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
@@ -23,9 +27,7 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Arrays;
|
|
|
-import java.util.List;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -50,7 +52,8 @@ public class TenantService extends ServiceImpl<TenantEntityMapper, Tenant> {
|
|
|
private final InvitationService invitationService;
|
|
|
private final LoginUtils loginUtils;
|
|
|
private final RoleService roleService;
|
|
|
-
|
|
|
+ private final SysDictItemMapper sysDictItemMapper;
|
|
|
+ private final MessageUtils mailUtils;
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public Integer addTenant(TenantVO tenantVO) {
|
|
|
Personnel personnel = new Personnel();
|
|
@@ -389,10 +392,57 @@ public class TenantService extends ServiceImpl<TenantEntityMapper, Tenant> {
|
|
|
invitation.updateById();
|
|
|
}
|
|
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void addByInvitation3(TenantVO tenantVo) {
|
|
|
+ //根据验证码查询是否存在
|
|
|
+ LambdaQueryWrapper<Invitation> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ wrapper.eq(Invitation::getInvitation, tenantVo.getInvitation());
|
|
|
+ List<Invitation> invitations = invitationService.list(wrapper);
|
|
|
+ if (invitations == null || invitations.size() == 0) {
|
|
|
+ ThrowException.throwXiaoShiException("邀请码不存在");
|
|
|
+ }
|
|
|
+ Invitation invitation = invitations.get(0);
|
|
|
+ if (invitation.getIsInvalid().equals(1)) {
|
|
|
+ ThrowException.throwXiaoShiException("邀请码已被使用");
|
|
|
+ }
|
|
|
+
|
|
|
+ //邀请码表更新信息
|
|
|
+ //地址
|
|
|
+ invitation.setAddress(tenantVo.getAddress());
|
|
|
+ //电话
|
|
|
+ invitation.setPhoneNumber(tenantVo.getPhoneNumber());
|
|
|
+ //联系人
|
|
|
+ invitation.setContacts(tenantVo.getContacts());
|
|
|
+ //邮箱
|
|
|
+ invitation.setEmail(tenantVo.getEmail());
|
|
|
+ //租户名称
|
|
|
+ invitation.setCompanyName(tenantVo.getName());
|
|
|
+ invitation.setIsInvalid(1);
|
|
|
+ invitation.updateById();
|
|
|
+ //从字典表里获得配置联系人数
|
|
|
+ LambdaQueryWrapper<SysDictItem> wrapper1 =new LambdaQueryWrapper<>();
|
|
|
+ wrapper1.eq(SysDictItem::getDictParentKey,"ADMIN_EMAIL");
|
|
|
+ List<SysDictItem> sysDictItems= sysDictItemMapper.selectList(wrapper1);
|
|
|
+ sysDictItems.forEach(item->{
|
|
|
+ Map<String, Object> map = new LinkedHashMap<>();
|
|
|
+ map.put("title", "激活码审核通知");
|
|
|
+ map.put("template", "mail/adminEmail.html");
|
|
|
+ map.put("value1", item.getDictChildLabel());
|
|
|
+ map.put("img", "/logo.png");
|
|
|
+ map.put("email", item.getDictChildValue());
|
|
|
+ map.put("value2",invitation.getInvitation());
|
|
|
+ map.put("value3",invitation.getName());
|
|
|
+ map.put("value4",invitation.getContacts());
|
|
|
+ map.put("value5",invitation.getEmail());
|
|
|
+ map.put("value6",invitation.getPhoneNumber());
|
|
|
+ map.put("value7",invitation.getAddress());
|
|
|
+ mailUtils.sendEmailMessage(map);
|
|
|
+ });
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
public Invitation queryByInvitation(String invitation) {
|
|
|
log.info("开始处理【根据邀请码查询租户】的业务,参数为:{}", invitation);
|
|
|
-
|
|
|
LambdaQueryWrapper<Invitation> wrapper = new LambdaQueryWrapper<>();
|
|
|
wrapper.eq(Invitation::getInvitation, invitation);
|
|
|
List<Invitation> invitations = invitationService.list(wrapper);
|