Quellcode durchsuchen

导入账号关联邮箱接口

zoujiajian vor 1 Jahr
Ursprung
Commit
306ad087d9

+ 25 - 0
netflix-dao/src/main/java/com/cyksj/model/excel/ExcelAccountEmailBindData.java

@@ -0,0 +1,25 @@
+package com.cyksj.model.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 项目名: yhlxj
+ * 文件名: ExcelAccountEmailBindData
+ * 创建者: JavaZou
+ * 创建时间:2024/12/2 15:39
+ */
+@Getter
+@Setter
+public class ExcelAccountEmailBindData {
+
+	@ExcelProperty("账号")
+	private String account;
+
+	@ExcelProperty("辅助邮箱")
+	private String email;
+
+	@ExcelProperty("关联邮箱")
+	private String relateEmail;
+}

+ 8 - 0
netflix-dao/src/main/java/com/cyksj/model/excel/ExcelManageAccountData.java

@@ -131,4 +131,12 @@ public class ExcelManageAccountData {
 	@DbField("a.type")
 	@ExcelIgnore
 	private Integer accountType;
+
+	@DbField("a.email")
+	@ExcelProperty("辅助邮箱")
+	private String email;
+
+	@DbField("a.relate_email")
+	@ExcelProperty("关联邮箱")
+	private String relateEmail;
 }

+ 41 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/account/CmsAccountController.java

@@ -1323,4 +1323,45 @@ public class CmsAccountController {
 		String code = accountService.getAccountEmailCode(accountId);
 		return GatewayResponse.SUCCESS.newBuilder().toResult(code);
 	}
+
+	/**
+	 * 下载导入账号 辅助邮箱、关联邮箱模板
+	 */
+	@GetMapping("/get/export/email/template")
+	public void getAccountEmailTemplate(HttpServletResponse response) {
+		EasyExcelUtils.createTemplateExcel(response, ExcelAccountEmailBindData.class, "导入账号邮箱模板", "导入账号邮箱模板", ExcelTypeEnum.XLSX, null);
+	}
+
+	/**
+	 * 导入账号 辅助邮箱、关联邮箱
+	 */
+	@PostMapping("/export/email")
+	public Result<String> exportEmail(MultipartFile file) throws IOException {
+		EasyExcel.read(file.getInputStream(), ExcelAccountEmailBindData.class, new AnalysisEventListener<ExcelAccountEmailBindData>() {
+			@Override
+			public void invoke(ExcelAccountEmailBindData data, AnalysisContext analysisContext) {
+				String account = data.getAccount();
+				String email = data.getEmail();
+				String relateEmail = data.getRelateEmail();
+				if (StrUtil.isAllEmpty(email, relateEmail)) {
+					return;
+				}
+				List<Account> list = accountService.list(Wrappers.lambdaQuery(Account.class)
+						.eq(Account::getAccount, account.trim()));
+				if (list.isEmpty()) return;
+
+				list.forEach(dbAccount->{
+					dbAccount.setEmail(email);
+					dbAccount.setRelateEmail(relateEmail);
+					accountService.updateById(dbAccount);
+				});
+			}
+
+			@Override
+			public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+
+			}
+		}).sheet().doRead();
+		return GatewayResponse.SUCCESS.newBuilder().toResult();
+	}
 }