소스 검색

私有化部署:合并发送邮件逻辑

tangxiangan 1 년 전
부모
커밋
fe00457144

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

@@ -156,19 +156,19 @@ public class VppDeviceServiceImpl implements VppDeviceService {
         log.info("update code:" + code);
         licenseCodeService.update(code);
 
-        log.info("send cancel email!");
-        ThreadPoolSingleUtil.getInstance().excute(() -> {
-            if(!ObjectUtils.isEmpty(vppMember)){
-                Subscriptions subscriptions = subscriptionService.getById(code.getSubscriptionId());
-                Products product = productService.getById(subscriptions.getProductId());
-                String helpLink = vppLicenseCodeServiceImpl.getHelpLink(product.getCode());
-                String devicesModel = StringUtils.isNotEmpty(model) ? model : "";
-                String text = String.format(CaptchaActionEnum.CANCEL_DEVICE_ASSIGN.text(),vppMember.getEmail(),devicesModel,product.getName(),product.getName(),devicesModel, helpLink);
-                // 替换图片动态地址和取消订阅链接
-                text = text.replace("emailImagesUrl", emailImagesUrl).replace("cancelEmailUrl", readerproUrl + "/unsubscribe?email=" + vppMember.getEmail());
-//                emailUtils.sendMail(CaptchaActionEnum.CANCEL_DEVICE_ASSIGN.subject(), text, Collections.singletonList(vppMember.getEmail()));
-            }
-        });
+//        log.info("send cancel email!");
+//        ThreadPoolSingleUtil.getInstance().excute(() -> {
+//            if(!ObjectUtils.isEmpty(vppMember)){
+//                Subscriptions subscriptions = subscriptionService.getById(code.getSubscriptionId());
+//                Products product = productService.getById(subscriptions.getProductId());
+//                String helpLink = vppLicenseCodeServiceImpl.getHelpLink(product.getCode());
+//                String devicesModel = StringUtils.isNotEmpty(model) ? model : "";
+//                String text = String.format(CaptchaActionEnum.CANCEL_DEVICE_ASSIGN.text(),vppMember.getEmail(),devicesModel,product.getName(),product.getName(),devicesModel, helpLink);
+//                // 替换图片动态地址和取消订阅链接
+//                text = text.replace("emailImagesUrl", emailImagesUrl).replace("cancelEmailUrl", readerproUrl + "/unsubscribe?email=" + vppMember.getEmail());
+////                emailUtils.sendMail(CaptchaActionEnum.CANCEL_DEVICE_ASSIGN.subject(), text, Collections.singletonList(vppMember.getEmail()));
+//            }
+//        });
     }
 
     /**

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

@@ -189,86 +189,87 @@ public class VppLicenseCodeServiceImpl implements VppLicenseCodeService {
         });
         //修改团队的剩余序列码数量
         reduceLicenseRemainNum(memberIds.size() * productIds.size(), teamId);
-        LICENSE_CODE_SEND_MAIL_THREAD_POOL.submit(() -> {
-            //通知用户获得了哪个产品的序列码的授权
-            memberCodeMap.forEach((key,value) -> {
-                List<LicenseCodes> codes = value;
-//                String text = "";
-                String cdKey = "";
-                String productName = "";
-                // 跨平台标记3
-                // 平台类型 1win 2mac 3cross
-                int platformType = 0;
-                String winDownloadUrl = "<tr>\n" +
-                        "                  <td style=\"padding-top: 8px; font-size: 20px; line-height: 28px; color: #121E3F;\"><a target=\"_blank\" href=\"https://www.pdfreaderpro.com/windows/download\" style=\"color: #3B99FC;\">Click HERE</a></td>\n" +
-                        "                </tr>\n";
-                String macDownloadUrl = "<tr>\n" +
-                        "                  <td style=\"padding-top: 8px; font-size: 20px; line-height: 28px; color: #121E3F;\"><a target=\"_blank\" href=\"https://www.pdfreaderpro.com/downloading\" style=\"color: #3B99FC;\">Click HERE</a></td>\n" +
-                        "                </tr>\n";
-                String platformDownloadUrl = "<tr>\n" +
-                        "                       <td style=\"padding-top: 8px; font-size: 20px; line-height: 28px; color: #121E3F;\">\n" +
-                        "                         <a target=\"_blank\" href=\"https://www.pdfreaderpro.com/windows/download\" style=\"color: #3B99FC;\">-> Download Windows</a> <br/>\n" +
-                        "                         <a target=\"_blank\" href=\"https://www.pdfreaderpro.com/downloading\" style=\"color: #3B99FC;\">-> Download Mac</a>\n" +
-                        "                       </td> \n" +
-                        "                     </tr>";
-
-                String winHelpUrl = "<tr>\n" +
-                        "              <td style=\"font-family: Rubik; padding: 0 40px 20px; font-size: 16px; line-height: 19px; color: #121E3F;\">\n" +
-                        "                How to activate license? Click <a target=\"_blank\" href=\"https://www.pdfreaderpro.com/windows/help/how-to-use-license\" style=\"color: #3B99FC;\">Here</a> to check.  \n" +
-                        "              </td>\n" +
-                        "            </tr>\n";
-                String macHelpUrl = "<tr>\n" +
-                        "              <td style=\"font-family: Rubik; padding: 0 40px 20px; font-size: 16px; line-height: 19px; color: #121E3F;\">\n" +
-                        "                How to activate license? Click <a target=\"_blank\" href=\"https://www.pdfreaderpro.com/mac/help/how-to-use-license-code\" style=\"color: #3B99FC;\">Here</a> to check.  \n" +
-                        "              </td>\n" +
-                        "            </tr>\n";
-                String platformHelpUrl = "<tr>\n" +
-                        "                   <td style=\"font-family: Rubik; padding: 0 40px 20px; font-size: 16px; line-height: 19px; color: #121E3F;\">\n" +
-                        "                     How to activate license? <br/>\n" +
-                        "                     <a target=\"_blank\" href=\"https://www.pdfreaderpro.com/mac/help/how-to-use-license-code\" style=\"color: #3B99FC;\">-> Activate license on Mac</a> <br/>\n" +
-                        "                     <a target=\"_blank\" href=\"https://www.pdfreaderpro.com/windows/help/how-to-use-license\" style=\"color: #3B99FC;\">-> Activate license on Windows</a>\n" +
-                        "                   </td>\n" +
-                        "                 </tr>";
-                for (LicenseCodes code : codes) {
-                    Products product = productService.getById(code.getProductId());
-                    productName = productName + product.getName() + "<br/>";
-                    cdKey = cdKey + code.getCdkey() + "<br/>";
-                    if (product.getCode().contains("platform")) {
-                        platformType = 3;
-                    }
-                    if (product.getCode().contains("windows")) {
-                        // 判断之前有没有别的平台,或者跨平台序列码
-                        if (platformType == 2 || platformType == 3) {
-                            platformType = 3;
-                        } else {
-                            platformType = 1;
-                        }
-                    }
-                    if (product.getCode().contains("mac")) {
-                        // 判断之前有没有别的平台,或者跨平台序列码
-                        if (platformType == 1 || platformType == 3) {
-                            platformType = 3;
-                        } else {
-                            platformType = 2;
-                        }
-                    }
-                }
-                VppMember vppMember = vppMemberService.getById(key);
-                // 根据平台发送序列码授权邮件
-                log.info("根据平台发送序列码授权邮件:productWin{};cdKeyWin:{};platformType:{}", productName, cdKey, platformType);
-                switch(platformType) {
-                    case 1:
-                        sendAssignEmail(cdKey, productName, vppMember, winDownloadUrl, winHelpUrl);
-                        break;
-                    case 2:
-                        sendAssignEmail(cdKey, productName, vppMember, macDownloadUrl, macHelpUrl);
-                        break;
-                    case 3:
-                        sendAssignEmail(cdKey, productName, vppMember, platformDownloadUrl, platformHelpUrl);
-                        break;
-                }
-            });
-        });
+        //私有化部署不需要通知
+//        LICENSE_CODE_SEND_MAIL_THREAD_POOL.submit(() -> {
+//            //通知用户获得了哪个产品的序列码的授权
+//            memberCodeMap.forEach((key,value) -> {
+//                List<LicenseCodes> codes = value;
+////                String text = "";
+//                String cdKey = "";
+//                String productName = "";
+//                // 跨平台标记3
+//                // 平台类型 1win 2mac 3cross
+//                int platformType = 0;
+//                String winDownloadUrl = "<tr>\n" +
+//                        "                  <td style=\"padding-top: 8px; font-size: 20px; line-height: 28px; color: #121E3F;\"><a target=\"_blank\" href=\"https://www.pdfreaderpro.com/windows/download\" style=\"color: #3B99FC;\">Click HERE</a></td>\n" +
+//                        "                </tr>\n";
+//                String macDownloadUrl = "<tr>\n" +
+//                        "                  <td style=\"padding-top: 8px; font-size: 20px; line-height: 28px; color: #121E3F;\"><a target=\"_blank\" href=\"https://www.pdfreaderpro.com/downloading\" style=\"color: #3B99FC;\">Click HERE</a></td>\n" +
+//                        "                </tr>\n";
+//                String platformDownloadUrl = "<tr>\n" +
+//                        "                       <td style=\"padding-top: 8px; font-size: 20px; line-height: 28px; color: #121E3F;\">\n" +
+//                        "                         <a target=\"_blank\" href=\"https://www.pdfreaderpro.com/windows/download\" style=\"color: #3B99FC;\">-> Download Windows</a> <br/>\n" +
+//                        "                         <a target=\"_blank\" href=\"https://www.pdfreaderpro.com/downloading\" style=\"color: #3B99FC;\">-> Download Mac</a>\n" +
+//                        "                       </td> \n" +
+//                        "                     </tr>";
+//
+//                String winHelpUrl = "<tr>\n" +
+//                        "              <td style=\"font-family: Rubik; padding: 0 40px 20px; font-size: 16px; line-height: 19px; color: #121E3F;\">\n" +
+//                        "                How to activate license? Click <a target=\"_blank\" href=\"https://www.pdfreaderpro.com/windows/help/how-to-use-license\" style=\"color: #3B99FC;\">Here</a> to check.  \n" +
+//                        "              </td>\n" +
+//                        "            </tr>\n";
+//                String macHelpUrl = "<tr>\n" +
+//                        "              <td style=\"font-family: Rubik; padding: 0 40px 20px; font-size: 16px; line-height: 19px; color: #121E3F;\">\n" +
+//                        "                How to activate license? Click <a target=\"_blank\" href=\"https://www.pdfreaderpro.com/mac/help/how-to-use-license-code\" style=\"color: #3B99FC;\">Here</a> to check.  \n" +
+//                        "              </td>\n" +
+//                        "            </tr>\n";
+//                String platformHelpUrl = "<tr>\n" +
+//                        "                   <td style=\"font-family: Rubik; padding: 0 40px 20px; font-size: 16px; line-height: 19px; color: #121E3F;\">\n" +
+//                        "                     How to activate license? <br/>\n" +
+//                        "                     <a target=\"_blank\" href=\"https://www.pdfreaderpro.com/mac/help/how-to-use-license-code\" style=\"color: #3B99FC;\">-> Activate license on Mac</a> <br/>\n" +
+//                        "                     <a target=\"_blank\" href=\"https://www.pdfreaderpro.com/windows/help/how-to-use-license\" style=\"color: #3B99FC;\">-> Activate license on Windows</a>\n" +
+//                        "                   </td>\n" +
+//                        "                 </tr>";
+//                for (LicenseCodes code : codes) {
+//                    Products product = productService.getById(code.getProductId());
+//                    productName = productName + product.getName() + "<br/>";
+//                    cdKey = cdKey + code.getCdkey() + "<br/>";
+//                    if (product.getCode().contains("platform")) {
+//                        platformType = 3;
+//                    }
+//                    if (product.getCode().contains("windows")) {
+//                        // 判断之前有没有别的平台,或者跨平台序列码
+//                        if (platformType == 2 || platformType == 3) {
+//                            platformType = 3;
+//                        } else {
+//                            platformType = 1;
+//                        }
+//                    }
+//                    if (product.getCode().contains("mac")) {
+//                        // 判断之前有没有别的平台,或者跨平台序列码
+//                        if (platformType == 1 || platformType == 3) {
+//                            platformType = 3;
+//                        } else {
+//                            platformType = 2;
+//                        }
+//                    }
+//                }
+////                VppMember vppMember = vppMemberService.getById(key);
+////                // 根据平台发送序列码授权邮件
+////                log.info("根据平台发送序列码授权邮件:productWin{};cdKeyWin:{};platformType:{}", productName, cdKey, platformType);
+////                switch(platformType) {
+////                    case 1:
+////                        sendAssignEmail(cdKey, productName, vppMember, winDownloadUrl, winHelpUrl);
+////                        break;
+////                    case 2:
+////                        sendAssignEmail(cdKey, productName, vppMember, macDownloadUrl, macHelpUrl);
+////                        break;
+////                    case 3:
+////                        sendAssignEmail(cdKey, productName, vppMember, platformDownloadUrl, platformHelpUrl);
+////                        break;
+////                }
+//            });
+//        });
 
     }
 
@@ -463,14 +464,14 @@ public class VppLicenseCodeServiceImpl implements VppLicenseCodeService {
                     log.info("解绑激活设备{};{}", vppLicenseCode.getCdkey(), DateUtil.date().toString("yyyy-MM-dd HH:mm:ss:SSS"));
                     vppDeviceService.unBindByMemberId(null, Collections.singletonList(vppLicenseCode.getCdkey()));
                     count++;
-                    log.info("发送邮件前{}", DateUtil.date().toString("yyyy-MM-dd HH:mm:ss:SSS"));
-                    // 发送邮件
-                    ThreadPoolSingleUtil.getInstance().excute(() -> {
-                        String text = String.format(CaptchaActionEnum.CANCEL_LICENSE_ASSIGN.text(), vppMember.getEmail(), product.getName(), product.getName(), user.getEmail());
-                        // 替换图片动态地址和取消订阅链接
-                        text = text.replace("emailImagesUrl", emailImagesUrl).replace("cancelEmailUrl", readerproUrl + "/unsubscribe?email=" + vppMember.getEmail());
-//                        emailUtils.sendMail(CaptchaActionEnum.CANCEL_LICENSE_ASSIGN.subject(), text, Collections.singletonList(vppMember.getEmail()));
-                    });
+//                    log.info("发送邮件前{}", DateUtil.date().toString("yyyy-MM-dd HH:mm:ss:SSS"));
+//                    // 发送邮件
+//                    ThreadPoolSingleUtil.getInstance().excute(() -> {
+//                        String text = String.format(CaptchaActionEnum.CANCEL_LICENSE_ASSIGN.text(), vppMember.getEmail(), product.getName(), product.getName(), user.getEmail());
+//                        // 替换图片动态地址和取消订阅链接
+//                        text = text.replace("emailImagesUrl", emailImagesUrl).replace("cancelEmailUrl", readerproUrl + "/unsubscribe?email=" + vppMember.getEmail());
+////                        emailUtils.sendMail(CaptchaActionEnum.CANCEL_LICENSE_ASSIGN.subject(), text, Collections.singletonList(vppMember.getEmail()));
+//                    });
                 }
             }
         } catch (IOException e) {

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

@@ -149,17 +149,18 @@ public class VppRTeamMemberRoleServiceImpl implements VppRTeamMemberRoleService
         ThreadPoolSingleUtil.getInstance().excute(() -> {
             CaptchaActionEnum actionEnum = CaptchaActionEnum.JOIN_TEAM_FOR_MEMBER;
             String code = CommonUtils.generateVerifyCode();
-            String url = readerproUrl + confirmAddUrl + "?teamId=" + dto.getTeamId() + "&code=" + code + "&memberEmail=" + dto.getMemberEmail() + "&memberName=" + dto.getMemberName() + "&action=" + actionEnum.value();
+//            String url = readerproUrl + confirmAddUrl + "?teamId=" + dto.getTeamId() + "&code=" + code + "&memberEmail=" + dto.getMemberEmail() + "&memberName=" + dto.getMemberName() + "&action=" + actionEnum.value();
             if (StringUtils.isEmpty(dto.getMemberName())) {
                 dto.setMemberName(dto.getMemberEmail());
             }
-            String text = String.format(actionEnum.text(), dto.getMemberName(), vppCompany.getName(), vppCompany.getName(), url);
+ //           String text = String.format(actionEnum.text(), dto.getMemberName(), vppCompany.getName(), vppCompany.getName(), url);
             // 替换图片动态地址和取消订阅链接
-            text = text.replace("emailImagesUrl", emailImagesUrl).replace("cancelEmailUrl", readerproUrl + "/unsubscribe?email=" + dto.getMemberEmail());
-            String subject = String.format(actionEnum.subject(), user.getFullName());
+//            text = text.replace("emailImagesUrl", emailImagesUrl).replace("cancelEmailUrl", readerproUrl + "/unsubscribe?email=" + dto.getMemberEmail());
+//            String subject = String.format(actionEnum.subject(), user.getFullName());
 //            if(emailUtils.sendMail(subject, text, Collections.singletonList(dto.getMemberEmail()))) {
 //                redisUtils.hset(AuthConstant.VERIFY_CODE_KEY + actionEnum.value(), dto.getMemberEmail(), code, AuthConstant.INVITE_VERIFY_CODE_KEY_EXPIRE_TIME);
 //            }
+            confirmTeamMember(dto.getMemberEmail(), dto.getMemberName(), dto.getTeamId(), actionEnum.value(), code);
         });
     }
 
@@ -265,15 +266,16 @@ public class VppRTeamMemberRoleServiceImpl implements VppRTeamMemberRoleService
                 ThreadPoolSingleUtil.getInstance().excute(() -> {
                     CaptchaActionEnum actionEnum = CaptchaActionEnum.JOIN_TEAM_FOR_MEMBER;
                     String code = CommonUtils.generateVerifyCode();
-                    String url = readerproUrl + confirmAddUrl + "?teamId=" + vppTeam.getId() + "&code=" + code + "&memberEmail=" + memberEmail + "&memberName=" + memberName + "&action=" + actionEnum.value();
-                    String memberEmailName = StringUtils.isEmpty(memberName) ? memberName : memberEmail;
-                    String text = String.format(actionEnum.text(), memberEmailName, vppCompany.getName(), vppCompany.getName(), url);
+  //                  String url = readerproUrl + confirmAddUrl + "?teamId=" + vppTeam.getId() + "&code=" + code + "&memberEmail=" + memberEmail + "&memberName=" + memberName + "&action=" + actionEnum.value();
+  //                  String memberEmailName = StringUtils.isEmpty(memberName) ? memberName : memberEmail;
+ //                   String text = String.format(actionEnum.text(), memberEmailName, vppCompany.getName(), vppCompany.getName(), url);
                     // 替换图片动态地址和取消订阅链接
-                    text = text.replace("emailImagesUrl", emailImagesUrl).replace("cancelEmailUrl", readerproUrl + "/unsubscribe?email=" + memberEmail);
-                    String subject = String.format(actionEnum.subject(), user.getFullName());
+//                    text = text.replace("emailImagesUrl", emailImagesUrl).replace("cancelEmailUrl", readerproUrl + "/unsubscribe?email=" + memberEmail);
+//                    String subject = String.format(actionEnum.subject(), user.getFullName());
 //                    if(emailUtils.sendMail(subject, text, Collections.singletonList(memberEmail))){
 //                        redisUtils.hset(AuthConstant.VERIFY_CODE_KEY + actionEnum.value(), memberEmail, code, AuthConstant.INVITE_VERIFY_CODE_KEY_EXPIRE_TIME);
 //                    }
+                    confirmTeamMember(memberEmail, memberName, vppTeam.getId(), actionEnum.value(), code);
                 });
             }
         } catch (IOException e) {
@@ -288,8 +290,8 @@ public class VppRTeamMemberRoleServiceImpl implements VppRTeamMemberRoleService
             memberName = StringUtils.EMPTY;
         }
         // 验证code有效性
-        CaptchaActionEnum captchaActionEnum = CaptchaActionEnum.getEnumByValue(action);
-        authService.checkVerifyCodeByAction(captchaActionEnum, memberEmail, code);
+//        CaptchaActionEnum captchaActionEnum = CaptchaActionEnum.getEnumByValue(action);
+//        authService.checkVerifyCodeByAction(captchaActionEnum, memberEmail, code);
         VppMember byAccount = vppMemberService.getByAccount(memberEmail);
         VppTeam vppTeam = vppTeamService.getById(teamId);
         // 如果成员不存在

+ 4 - 4
pdf-tech-core/src/main/java/cn/kdan/pdf/tech/core/service/impl/VppTeamServiceImpl.java

@@ -284,10 +284,10 @@ public class VppTeamServiceImpl implements VppTeamService {
             VppMember vppMember = vppMemberService.getById(id);
             CaptchaActionEnum actionEnum;
             String code = CommonUtils.generateVerifyCode();
-            String text;
-            String teamString = newVppTeam.getId();
-            //如果已经注册账号需要判断该账号是普通用户还是管理员,如果是普通用户的话给一个密码
-            VppCompany vppCompany = vppCompanyService.getById(superAdmin.getCompanyId());
+//            String text;
+//            String teamString = newVppTeam.getId();
+//            //如果已经注册账号需要判断该账号是普通用户还是管理员,如果是普通用户的话给一个密码
+//            VppCompany vppCompany = vppCompanyService.getById(superAdmin.getCompanyId());
             if(vppMember.getRole().equals("3") && StringUtils.isEmpty(vppMember.getDigestPassword())) {
                 actionEnum = CaptchaActionEnum.JOIN_TEAM_FOR_ADD_ADMIN_NO_PASSWORD;
                 String pwd = DEFAULT_PASSWORD;