tangxiangan 9 months ago
parent
commit
0d5f532d27

+ 0 - 4
pdf-tech-common/pom.xml

@@ -31,10 +31,6 @@
             <groupId>io.springfox</groupId>
             <artifactId>springfox-swagger2</artifactId>
         </dependency>
-<!--        <dependency>-->
-<!--            <groupId>org.apache.commons</groupId>-->
-<!--            <artifactId>commons-pool2</artifactId>-->
-<!--        </dependency>-->
 
         <dependency>
             <groupId>org.springframework.boot</groupId>

+ 20 - 5
pdf-tech-core/pom.xml

@@ -52,11 +52,11 @@
             <artifactId>spring-boot-starter-aop</artifactId>
         </dependency>
 
-        <dependency>
-            <groupId>com.squareup.okhttp3</groupId>
-            <artifactId>okhttp</artifactId>
-            <version>3.10.0</version>
-        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>com.squareup.okhttp3</groupId>-->
+<!--            <artifactId>okhttp</artifactId>-->
+<!--            <version>3.10.0</version>-->
+<!--        </dependency>-->
 
         <!-- logback  -->
         <dependency>
@@ -189,11 +189,26 @@
             <artifactId>azure-identity</artifactId>
             <version>1.11.0</version>
         </dependency>
+        <dependency>
+            <groupId>io.projectreactor</groupId>
+            <artifactId>reactor-core</artifactId>
+            <version>3.4.33</version>
+        </dependency>
+        <dependency>
+            <groupId>io.github.std-uritemplate</groupId>
+            <artifactId>std-uritemplate</artifactId>
+            <version>0.0.54</version>
+        </dependency>
         <dependency>
             <groupId>org.quartz-scheduler</groupId>
             <artifactId>quartz</artifactId>
             <version>2.3.2</version>
         </dependency>
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpclient</artifactId>
+            <version>4.5.13</version> <!-- 或者使用最新版本 -->
+        </dependency>
     </dependencies>
 
     <dependencyManagement>

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

@@ -15,6 +15,7 @@ import cn.kdan.pdf.tech.core.pojo.vo.SSOClientVO;
 import cn.kdan.pdf.tech.core.pojo.vo.SSOMemberLicenseVO;
 import cn.kdan.pdf.tech.core.pojo.vo.VppMemberVO;
 import cn.kdan.pdf.tech.core.service.DirectoryService;
+import cn.kdan.pdf.tech.core.service.VppDeviceService;
 import cn.kdan.pdf.tech.core.service.VppLicenseCodeService;
 import cn.kdan.pdf.tech.core.service.VppMemberService;
 import constant.CommonConstant;
@@ -27,6 +28,7 @@ import pojo.ResultMap;
 
 import javax.annotation.Resource;
 import javax.validation.Valid;
+import java.net.CookieManager;
 
 /**
  * @author tangxiangan
@@ -41,6 +43,8 @@ public class VppMemberController {
     private VppLicenseCodeService licenseCodeService;
     @Resource
     private DirectoryService directoryService;
+    @Resource
+    private VppDeviceService deviceService;
 
     /**
      * 用户注册
@@ -129,16 +133,23 @@ public class VppMemberController {
             throw new BackendRuntimeException(SSOConstant.EXCEPTION_MSG_MEMBER_REVOKED);
         }
         LicenseCodes codes = licenseCodeService.getByMemberId(member.getId(), productCode);
-        if (!ObjectUtils.isEmpty(codes)) {
-            throw new BackendRuntimeException(SSOConstant.EXCEPTION_MSG_MEMBER_HAS_ASSIGNED);
-        }
+//        if (ObjectUtils.isEmpty(codes)) {
+//            throw new BackendRuntimeException(SSOConstant.EXCEPTION_MSG_MEMBER_HAS_ASSIGNED);
+//        }
         SSOMemberLicenseVO ssoMemberLicenseVO = new SSOMemberLicenseVO();
         BeanUtils.copyProperties(member, ssoMemberLicenseVO);
-        BeanUtils.copyProperties(codes, ssoMemberLicenseVO);
+        if (!ObjectUtils.isEmpty(codes)) {
+            BeanUtils.copyProperties(codes, ssoMemberLicenseVO);
+        }
 
-        return new ResultMap<>(CommonConstant.SUCCESS, VppLicenseCodeConstant.SUCCESS_MSG_ASSIGN, ssoMemberLicenseVO);
+        return new ResultMap<>(CommonConstant.SUCCESS, CommonConstant.RESULT_SUCCESS, ssoMemberLicenseVO);
     }
 
+    /**
+     * 获取微软配置
+     * @param email 邮箱
+     * @return SSOClientVO
+     */
     @GetMapping("/getSSOInfo")
     public ResultMap<SSOClientVO> getSSOInfo(@RequestParam("email") String email) {
         VppMember member = vppMemberService.getByAccountSSO(email);
@@ -154,4 +165,15 @@ public class VppMemberController {
         return new ResultMap<>(CommonConstant.SUCCESS, VppLicenseCodeConstant.SUCCESS_MSG_ASSIGN, vo);
     }
 
+    /**
+     * SSO用户登出
+     * @param deviceId 设备id
+     * @return Boolean
+     */
+    @PostMapping("cancelSSOMember")
+    public ResultMap<Boolean> cancelSSOMember(@RequestParam String deviceId) {
+        deviceService.cancel(deviceId);
+        return new ResultMap<>(CommonConstant.SUCCESS, CommonConstant.RESULT_SUCCESS, true);
+    }
+
 }

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

@@ -87,7 +87,7 @@ public class VppRTeamMemberRoleController {
                                                                  @RequestParam(required = false) String directoryId,
                                                                  @RequestParam(required = false) String status,
                                                                  @RequestParam(required = false) String queryString) {
-        if (StringUtils.isEmpty(directoryId)) {
+        if (!StringUtils.isEmpty(directoryId)) {
             String teamId = directoryService.getById(directoryId).getTeamId();
             return new ResultMap<>(CommonConstant.SUCCESS, CommonConstant.RESULT_SUCCESS, vppRTeamMemberRoleService.pageForMember(page, pageSize, teamId, status, null, queryString, SyncUserEnum.SSO.value()));
         }

+ 3 - 0
pdf-tech-core/src/main/java/cn/kdan/pdf/tech/core/mapper/ext/ExtVppLicenseCodeMapper.java

@@ -6,6 +6,7 @@ import cn.kdan.pdf.tech.core.pojo.vo.VppLicenseCodeVO;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.UUID;
 
 /**
  * @author tangxiangan
@@ -28,6 +29,8 @@ public interface ExtVppLicenseCodeMapper extends LicenseCodesMapper {
 
     List<LicenseCodes> listBySubscriptionIds(@Param("subscriptionIds") List<String> subscriptionIds);
 
+    List<LicenseCodes> listWithMemberId(@Param("memberId") String memberId, @Param("productId") Integer productId, @Param("validFlags") List<Integer> validFlags);
+
 
     /**
      * 序列码列表

+ 1 - 1
pdf-tech-core/src/main/java/cn/kdan/pdf/tech/core/model/LicenseCodesExample.java

@@ -176,7 +176,7 @@ public class LicenseCodesExample {
         }
 
         public Criteria andMemberIdEqualTo(String value) {
-            addCriterion("member_id =", value, "memberId");
+            addCriterion("member_id = CAST(" + value + " AS UUID)");
             return (Criteria) this;
         }
 

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

@@ -60,7 +60,7 @@ public class SyncServiceImpl implements SyncService {
         directory.setScope(syncDTO.getScope());
         directory.setTenantId(syncDTO.getTenantId());
         directory.setUpdateTime(new Date());
-        if (CollectionUtils.isEmpty(syncDTO.getGroupIds())) {
+        if (!CollectionUtils.isEmpty(syncDTO.getGroupIds())) {
             directory.setMsGroupIds(listToString(syncDTO.getGroupIds()));
         }
         directoryService.updateSelective(directory);
@@ -250,7 +250,7 @@ public class SyncServiceImpl implements SyncService {
 
     @Override
     public List<MSGroup> getGroupList(String clientId, String tenantId, String clientSecret) {
-        String[] scopes = new String[]{SSOConstant.GRAPH_SCOPE};
+        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);

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

@@ -624,7 +624,7 @@ public class VppLicenseCodeServiceImpl implements VppLicenseCodeService {
         List<Integer> statuses = new ArrayList<>();
         statuses.add(LicenseCodeStatusEnum.ASSIGNED.code());
         statuses.add(LicenseCodeStatusEnum.PARTIALLY_ACTIVATED.code());
-        example.createCriteria().andMemberIdEqualTo(id).andProductIdEqualTo(products.getId()).andValidFlagIn(statuses);
+        example.createCriteria().andVppMemberIdEqualTo(id).andProductIdEqualTo(products.getId()).andValidFlagIn(statuses);
         List<LicenseCodes> list = licenseCodeMapper.selectByExample(example);
         return CollectionUtils.isEmpty(list) ?  null: list.get(0) ;
     }

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

@@ -549,7 +549,7 @@ public class VppRTeamMemberRoleServiceImpl implements VppRTeamMemberRoleService
             throw new BackendRuntimeException(VppDeviceConstant.EXCEPTION_MSG_NO_TEAM);
         }
         PageHelper.startPage(page, pageSize);
-        return new PageInfo<>(vppRTeamMemberRoleMapper.listForMember(teamIds, member.getEmail(), queryString, status, productCode, isSso));
+        return new PageInfo<>(vppRTeamMemberRoleMapper.listForMember(teamIds, null, queryString, status, productCode, isSso));
     }
 
     @Override

+ 37 - 0
pdf-tech-core/src/main/resources/sqlmap/ext/ExtVppLicenseCodeMapper.xml

@@ -124,4 +124,41 @@
                 #{item}::uuid
         </foreach>
     </select>
+
+    <select id="listWithMemberId" resultMap="BaseResultMap">
+        select id,
+        member_id,
+        subscription_id,
+        cdkey,
+        times,
+        used_times,
+        created_at,
+        updated_at,
+        last_remind_at,
+        product_id,
+        vpp_member_id,
+        team_id,
+        company_id,
+        type,
+        end_up_at,
+        valid_flag,
+        assigned_date,
+        activated_date,
+        is_vpp
+        from license_codes
+        WHERE
+        <if test="memberId != null">
+            member_id = #{memberId}::uuid
+        </if>
+        <if test="validFlags != null and validFlags.size > 0 ">
+            and valid_flag in
+            <foreach item="item" index="index" collection="validFlags" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="productId != null and productId != ''">
+            and product_id = #{productId}
+        </if>
+        order by updated_at desc
+    </select>
 </mapper>

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

@@ -105,15 +105,15 @@
     <if test="productCode != null and productCode != ''">
       and p.code = #{productCode}
     </if>
-    <if test="status != null and status != ''">
-      and vm.valid_flag = #{status}
-    </if>
     <if test="isSso != null and isSso != ''">
       and vm.is_sso = #{isSso}
-      <if test="status = null and status = ''">
+      <if test="status == null and status == ''">
         and vm.valid_flag != '0'
       </if>
     </if>
+    <if test="status != null and status != ''">
+      and vm.valid_flag = #{status}
+    </if>
     group by vm.full_name, vm.email, vm.id, vm.created_at, vm.updated_at, vt.name, vm.valid_flag, p.name, p.code
     order by vm.created_at desc
     ) as a   group by a.full_name,a.email,a.id,a.created_at,a.updated_at,a.valid_flag,a.team_name

+ 9 - 28
pom.xml

@@ -64,7 +64,7 @@
             <dependency>
                 <groupId>org.apache.httpcomponents</groupId>
                 <artifactId>httpclient</artifactId>
-                <version>4.5.5</version>
+                <version>4.5.13</version> <!-- 或者使用最新版本 -->
             </dependency>
             <dependency>
                 <groupId>org.apache.httpcomponents</groupId>
@@ -163,41 +163,22 @@
                 <artifactId>postgresql</artifactId>
                 <version>42.3.3</version>
             </dependency>
-            <dependency>
-                <groupId>com.google.code.gson</groupId>
-                <artifactId>gson</artifactId>
-                <version>2.7</version>
-            </dependency>
+<!--            <dependency>-->
+<!--                <groupId>com.google.code.gson</groupId>-->
+<!--                <artifactId>gson</artifactId>-->
+<!--                <version>2.7</version>-->
+<!--            </dependency>-->
             <dependency>
                 <groupId>com.alibaba</groupId>
                 <artifactId>fastjson</artifactId>
                 <version>1.2.51</version>
                 <scope>compile</scope>
             </dependency>
-
-            <!-- poi start -->
 <!--            <dependency>-->
-<!--                <groupId>org.apache.poi</groupId>-->
-<!--                <artifactId>poi</artifactId>-->
-<!--                <version>3.17</version>-->
+<!--                <groupId>dom4j</groupId>-->
+<!--                <artifactId>dom4j</artifactId>-->
+<!--                <version>1.6.1</version>-->
 <!--            </dependency>-->
-<!--            <dependency>-->
-<!--                <groupId>org.apache.poi</groupId>-->
-<!--                <artifactId>poi-ooxml</artifactId>-->
-<!--                <version>3.17</version>-->
-<!--            </dependency>-->
-<!--            <dependency>-->
-<!--                <groupId>org.apache.poi</groupId>-->
-<!--                <artifactId>poi-ooxml-schemas</artifactId>-->
-<!--                <version>3.17</version>-->
-<!--            </dependency>-->
-            <!-- poi end -->
-
-            <dependency>
-                <groupId>dom4j</groupId>
-                <artifactId>dom4j</artifactId>
-                <version>1.6.1</version>
-            </dependency>
             <dependency>
                 <groupId>javax.validation</groupId>
                 <artifactId>validation-api</artifactId>