tangxiangan 9 months ago
parent
commit
c4be956788

+ 2 - 2
pdf-tech-core/src/main/java/cn/kdan/pdf/tech/core/controller/DirectoryController.java

@@ -100,8 +100,8 @@ public class DirectoryController {
      * @return List
      */
     @GetMapping("/getGroupList")
-    public ResultMap<List<MSGroup>> getGroupList(@RequestParam String clientId, @RequestParam String tenantId, @RequestParam String clientSecret) {
-        List<MSGroup> directoryList = syncService.getGroupList(clientId, tenantId, clientSecret);
+    public ResultMap<List<MSGroup>> getGroupList(@RequestParam String clientId, @RequestParam String tenantId, @RequestParam String clientSecret,  @RequestParam(required = false) String queryString) {
+        List<MSGroup> directoryList = syncService.getGroupList(clientId, tenantId, clientSecret,queryString);
         return new ResultMap<>(CommonConstant.SUCCESS, CommonConstant.RESULT_SUCCESS, directoryList);
     }
 

+ 2 - 2
pdf-tech-core/src/main/java/cn/kdan/pdf/tech/core/controller/DomainController.java

@@ -80,8 +80,8 @@ public class DomainController {
      * @return list
      */
     @GetMapping("/list")
-    public ResultMap<List<Domain>> list(@RequestParam(required = false) String verified) {
-        List<Domain> domainList = domainService.list(verified);
+    public ResultMap<List<Domain>> list(@RequestParam(required = false) String verified,@RequestParam(required = false) String used) {
+        List<Domain> domainList = domainService.list(verified,used);
         return new ResultMap<>(CommonConstant.SUCCESS, CommonConstant.RESULT_SUCCESS, domainList);
     }
 

+ 1 - 1
pdf-tech-core/src/main/java/cn/kdan/pdf/tech/core/controller/VppMemberController.java

@@ -172,7 +172,7 @@ public class VppMemberController {
      */
     @PostMapping("cancelSSOMember")
     public ResultMap<Boolean> cancelSSOMember(@RequestParam String deviceId) {
-        deviceService.cancel(deviceId);
+        deviceService.cancelSSO(deviceId);
         return new ResultMap<>(CommonConstant.SUCCESS, CommonConstant.RESULT_SUCCESS, true);
     }
 

+ 7 - 7
pdf-tech-core/src/main/java/cn/kdan/pdf/tech/core/controller/VppRTeamMemberRoleController.java

@@ -154,7 +154,7 @@ public class VppRTeamMemberRoleController {
                     .sheet("模板")
                     .doWrite(() -> {
                         List<VppTeamMemberVO> list;
-                        if (StringUtils.isEmpty(directoryId)) {
+                        if (!StringUtils.isEmpty(directoryId)) {
                             String teamId = directoryService.getById(directoryId).getTeamId();
                             list = vppRTeamMemberRoleService.listForMember(teamId, status, null, queryString, SyncUserEnum.SSO.value());
 
@@ -273,24 +273,24 @@ public class VppRTeamMemberRoleController {
     /**
      * 删除ms用户
      *
-     * @param memberId 用户id
+     * @param memberIds 用户id
      * @return Boolean
      */
     @PostMapping("/removeSSOMember")
-    public ResultMap<Boolean> removeSSOMember(@RequestParam String memberId) {
-        vppRTeamMemberRoleService.removeSSOMembers(memberId);
+    public ResultMap<Boolean> removeSSOMember(@RequestParam List<String> memberIds) {
+        vppRTeamMemberRoleService.removeSSOMembers(memberIds);
         return new ResultMap<>(CommonConstant.SUCCESS, CommonConstant.RESULT_SUCCESS, Boolean.TRUE);
     }
 
     /**
      * 还原ms用户
      *
-     * @param memberId 用户id
+     * @param memberIds 用户id
      * @return Boolean
      */
     @PostMapping("/reductionSSOMember")
-    public ResultMap<Boolean> reductionSSOMember(@RequestParam String memberId) {
-        vppRTeamMemberRoleService.reductionSSOMember(memberId);
+    public ResultMap<Boolean> reductionSSOMember(@RequestParam List<String> memberIds) {
+        vppRTeamMemberRoleService.reductionSSOMember(memberIds);
         return new ResultMap<>(CommonConstant.SUCCESS, CommonConstant.RESULT_SUCCESS, Boolean.TRUE);
     }
 

+ 4 - 1
pdf-tech-core/src/main/java/cn/kdan/pdf/tech/core/service/DomainService.java

@@ -20,9 +20,10 @@ public interface DomainService {
      * 根据公司id获取域名列表(已验证的)
      *
      * @param verified 是否已验证
+     * @param used
      * @return 域名列表
      */
-    List<Domain> list(String verified);
+    List<Domain> list(String verified, String used);
 
     /**
      * 删除域名
@@ -32,6 +33,8 @@ public interface DomainService {
      */
     void delete(String domainId);
 
+    void unbindByDirectoryId(String directoryId);
+
     /**
      * 创建域名
      *

+ 1 - 1
pdf-tech-core/src/main/java/cn/kdan/pdf/tech/core/service/SyncService.java

@@ -25,5 +25,5 @@ public interface SyncService {
      * @param clientSecret clientSecret
      * @return
      */
-    List<MSGroup> getGroupList(String clientId, String tenantId, String clientSecret);
+    List<MSGroup> getGroupList(String clientId, String tenantId, String clientSecret, String queryString);
 }

+ 7 - 0
pdf-tech-core/src/main/java/cn/kdan/pdf/tech/core/service/VppDeviceService.java

@@ -3,6 +3,7 @@ package cn.kdan.pdf.tech.core.service;
 import cn.kdan.pdf.tech.core.model.Devices;
 import cn.kdan.pdf.tech.core.pojo.vo.VppDeviceVO;
 import com.github.pagehelper.PageInfo;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
@@ -56,4 +57,10 @@ public interface VppDeviceService {
      * @return
      */
     List<Devices> getByCdKeyList(List<String> cdKeyList);
+
+    /**
+     * 解绑SSO设备
+     * @param uniqueSn 设备唯一码
+     */
+    void cancelSSO(String uniqueSn);
 }

+ 6 - 6
pdf-tech-core/src/main/java/cn/kdan/pdf/tech/core/service/VppRTeamMemberRoleService.java

@@ -7,9 +7,7 @@ import cn.kdan.pdf.tech.core.pojo.vo.VppRTeamMemberRoleVO;
 import cn.kdan.pdf.tech.core.pojo.vo.VppTeamAdminVO;
 import cn.kdan.pdf.tech.core.pojo.vo.VppTeamMemberVO;
 import com.github.pagehelper.PageInfo;
-import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.multipart.MultipartFile;
-import pojo.ResultMap;
 
 import java.util.List;
 
@@ -181,9 +179,10 @@ public interface VppRTeamMemberRoleService {
 
     /**
      * 删除sso用户
-     * @param memberId 用户id
+     *
+     * @param memberIds 用户id
      */
-    void removeSSOMembers(String memberId);
+    void removeSSOMembers(List<String> memberIds);
 
     /**
      * 吊销sso用户(暂时冻结登录和使用)
@@ -193,9 +192,10 @@ public interface VppRTeamMemberRoleService {
 
     /**
      * 还原用户
-     * @param memberId 用户id
+     *
+     * @param memberIds 用户id
      */
-    void reductionSSOMember(String memberId);
+    void reductionSSOMember(List<String> memberIds);
     /**
      * 取消吊销用户
      * @param memberId 用户id

+ 1 - 0
pdf-tech-core/src/main/java/cn/kdan/pdf/tech/core/service/impl/DirectoryServiceImpl.java

@@ -103,6 +103,7 @@ public class DirectoryServiceImpl implements DirectoryService {
 
     @Override
     public void delete(String directoryId) {
+        domainService.unbindByDirectoryId(directoryId);
         directoryMapper.deleteByPrimaryKey(directoryId);
     }
 

+ 15 - 1
pdf-tech-core/src/main/java/cn/kdan/pdf/tech/core/service/impl/DomainServiceImpl.java

@@ -49,7 +49,7 @@ public class DomainServiceImpl implements DomainService {
     }
 
     @Override
-    public List<Domain> list(String verified) {
+    public List<Domain> list(String verified, String used) {
         VppMember member = vppMemberService.getCurrentUser();
         DomainExample domainExample = new DomainExample();
         DomainExample.Criteria criteria = domainExample.createCriteria().andCompanyIdEqualTo(member.getCompanyId())
@@ -57,6 +57,9 @@ public class DomainServiceImpl implements DomainService {
         if (!StringUtils.isEmpty(verified)) {
             criteria.andVerifiedEqualTo(verified);
         }
+        if (!StringUtils.isEmpty(used)) {
+            criteria.andUsedEqualTo(verified);
+        }
         List<Domain> list = domainMapper.selectByExample(domainExample);
         return CollectionUtils.isEmpty(list) ? new ArrayList<>() : list;
     }
@@ -66,6 +69,17 @@ public class DomainServiceImpl implements DomainService {
         domainMapper.deleteByPrimaryKey(domainId);
     }
 
+    @Override
+    public void unbindByDirectoryId(String directoryId) {
+        DomainExample example = new DomainExample();
+        example.createCriteria().andDirectoryIdEqualTo(directoryId);
+        Domain domain = new Domain();
+        domain.setUsed(DomainUsedEnum.AVAILABLE.code());
+        domain.setUpdateTime(new Date());
+        domain.setDirectoryId("");
+        domainMapper.updateByExampleSelective(domain,example);
+    }
+
     @Override
     public void create(String verifyType, String domain) {
         //检查域名是否重复

+ 7 - 2
pdf-tech-core/src/main/java/cn/kdan/pdf/tech/core/service/impl/SyncServiceImpl.java

@@ -26,6 +26,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.ObjectUtils;
+import org.springframework.util.StringUtils;
 import utils.CommonUtils;
 
 import javax.annotation.Resource;
@@ -249,13 +250,17 @@ public class SyncServiceImpl implements SyncService {
     }
 
     @Override
-    public List<MSGroup> getGroupList(String clientId, String tenantId, String clientSecret) {
+    public List<MSGroup> getGroupList(String clientId, String tenantId, String clientSecret, String queryString) {
         final String[] scopes = new String[] { "https://graph.microsoft.com/.default" };
         ClientSecretCredential credential = new ClientSecretCredentialBuilder()
                 .clientId(clientId).tenantId(tenantId).clientSecret(clientSecret).build();
         GraphServiceClient graphClient = new GraphServiceClient(credential, scopes);
         try {
-            GroupCollectionResponse groupResponse = graphClient.groups().get();
+            GroupCollectionResponse groupResponse = graphClient.groups().get(requestConfiguration -> {
+                if (!StringUtils.isEmpty(queryString)) {
+                    requestConfiguration.queryParameters.filter = "startswith(displayName, '" + queryString + "')";
+                }
+            });
             List<Group> groups = groupResponse.getValue();
             List<MSGroup> msGroups = new ArrayList<>();
             groups.forEach(group -> {

+ 29 - 14
pdf-tech-core/src/main/java/cn/kdan/pdf/tech/core/service/impl/VppDeviceServiceImpl.java

@@ -13,12 +13,10 @@ import cn.kdan.pdf.tech.core.service.*;
 import cn.kdan.pdf.tech.core.utils.ThreadPoolSingleUtil;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
-import constant.CommonConstant;
 import enums.ValidStatusEnum;
 import exception.BackendRuntimeException;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
-import org.omg.PortableInterceptor.ACTIVE;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
@@ -130,8 +128,37 @@ public class VppDeviceServiceImpl implements VppDeviceService {
         if (ObjectUtils.isEmpty(devices)) {
             throw new BackendRuntimeException(VppDeviceConstant.EXCEPTION_MSG_DEVICE_NOT_EXIST);
         }
+        //设置序列码状态
+        handleCancel(devices);
+    }
 
+    /**
+     * 获取序列激活的设备
+     * @param cdKeyList 序列码
+     * @return
+     */
+    @Override
+    public List<Devices> getByCdKeyList(List<String> cdKeyList) {
+        DevicesExample devicesExample = new DevicesExample();
+        devicesExample.createCriteria().andCdkeyIn(cdKeyList).andStatusEqualTo(1);
+        return extVppDeviceMapper.selectByExample(devicesExample);
+    }
+
+    @Transactional
+    @Override
+    public void cancelSSO(String uniqueSn) {
+        DevicesExample devicesExample = new DevicesExample();
+        devicesExample.createCriteria().andUniqueSnEqualTo(uniqueSn).andStatusEqualTo(1);
+        List<Devices> devicesList = extVppDeviceMapper.selectByExample(devicesExample);
+        if (CollectionUtils.isEmpty(devicesList)) {
+            throw new BackendRuntimeException(VppDeviceConstant.EXCEPTION_MSG_DEVICE_NOT_EXIST);
+        }
+        Devices devices = devicesList.get(0);
         //设置序列码状态
+        handleCancel(devices);
+    }
+
+    private void handleCancel(Devices devices) {
         String cdkey = devices.getCdkey();
         String model = devices.getModel();
         LicenseCodes code = licenseCodeService.getByCdKey(cdkey);
@@ -171,16 +198,4 @@ public class VppDeviceServiceImpl implements VppDeviceService {
             }
         });
     }
-
-    /**
-     * 获取序列激活的设备
-     * @param cdKeyList 序列码
-     * @return
-     */
-    @Override
-    public List<Devices> getByCdKeyList(List<String> cdKeyList) {
-        DevicesExample devicesExample = new DevicesExample();
-        devicesExample.createCriteria().andCdkeyIn(cdKeyList).andStatusEqualTo(1);
-        return extVppDeviceMapper.selectByExample(devicesExample);
-    }
 }

+ 21 - 19
pdf-tech-core/src/main/java/cn/kdan/pdf/tech/core/service/impl/VppRTeamMemberRoleServiceImpl.java

@@ -19,8 +19,6 @@ import cn.kdan.pdf.tech.core.utils.FileUtil;
 import cn.kdan.pdf.tech.core.utils.ThreadPoolSingleUtil;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
-import com.sun.jna.platform.win32.WinBase;
-import constant.CommonConstant;
 import enums.ValidStatusEnum;
 import exception.BackendRuntimeException;
 import lombok.extern.slf4j.Slf4j;
@@ -617,17 +615,19 @@ public class VppRTeamMemberRoleServiceImpl implements VppRTeamMemberRoleService
     }
 
     @Override
-    public void removeSSOMembers(String memberId) {
-        List<VppRTeamMemberRole> vppRTeamMemberRoles = getVppRTeamMemberRoles(memberId);
-        List<String> ids = new ArrayList<>();
-        ids.add(vppRTeamMemberRoles.get(0).getTeamId());
-        //sso用户只有一个默认团队,只需要解绑设备序列码,并且修改用户数据
-        vppLicenseCodeService.unBindByMemberId(memberId, ids);
-        VppMember member = new VppMember();
-        member.setId(memberId);
-        member.setRole(RoleEnum.TEAM_MEMBER.code());
-        member.setValidFlag(ValidStatusEnum.INVALID.value());
-        vppMemberService.update(member);
+    public void removeSSOMembers(List<String> memberIds) {
+        memberIds.forEach(memberId->{
+            List<VppRTeamMemberRole> vppRTeamMemberRoles = getVppRTeamMemberRoles(memberId);
+            List<String> ids = new ArrayList<>();
+            ids.add(vppRTeamMemberRoles.get(0).getTeamId());
+            //sso用户只有一个默认团队,只需要解绑设备序列码,并且修改用户数据
+            vppLicenseCodeService.unBindByMemberId(memberId, ids);
+            VppMember member = new VppMember();
+            member.setId(memberId);
+            member.setRole(RoleEnum.TEAM_MEMBER.code());
+            member.setValidFlag(ValidStatusEnum.INVALID.value());
+            vppMemberService.update(member);
+        });
     }
 
     @Override
@@ -640,12 +640,14 @@ public class VppRTeamMemberRoleServiceImpl implements VppRTeamMemberRoleService
     }
 
     @Override
-    public void reductionSSOMember(String memberId) {
-        VppMember member = new VppMember();
-        member.setId(memberId);
-        member.setRole(RoleEnum.TEAM_MEMBER.code());
-        member.setValidFlag(ValidStatusEnum.VALID.value());
-        vppMemberService.update(member);
+    public void reductionSSOMember(List<String> memberIds) {
+        memberIds.forEach(memberId->{
+            VppMember member = new VppMember();
+            member.setId(memberId);
+            member.setRole(RoleEnum.TEAM_MEMBER.code());
+            member.setValidFlag(ValidStatusEnum.VALID.value());
+            vppMemberService.update(member);
+        });
     }
 
     @Override

+ 1 - 1
pdf-tech-core/src/main/resources/sqlmap/ext/ExtVppRTeamMemberRoleMapper.xml

@@ -107,7 +107,7 @@
     </if>
     <if test="isSso != null and isSso != ''">
       and vm.is_sso = #{isSso}
-      <if test="status == null and status == ''">
+      <if test="status == null or status == ''">
         and vm.valid_flag != '0'
       </if>
     </if>