Parcourir la source

批量替换封禁账号

zoujiajian il y a 2 ans
Parent
commit
8ec1e8c851

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

@@ -0,0 +1,25 @@
+package com.cyksj.model.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 项目名: yhlxj
+ * 文件名: ExcelBannedAccountData
+ * 创建者: JavaZou
+ * 创建时间:2023/10/7 15:35
+ */
+@Getter
+@Setter
+public class ExcelBannedAccountData {
+
+	@ExcelProperty("原账号")
+	private String oldAccount;
+
+	@ExcelProperty("新账号")
+	private String account;
+
+	@ExcelProperty("新账号密码")
+	private String password;
+}

+ 50 - 4
netflix-web/src/main/java/com/cyksj/web/controller/manage/account/CmsAccountController.java

@@ -24,10 +24,7 @@ import com.cyksj.enums.GatewayResponse;
 import com.cyksj.mapper.*;
 import com.cyksj.mapper.manage.cms.CmsUserMapper;
 import com.cyksj.model.entity.*;
-import com.cyksj.model.excel.ExcelDoubleVerifyAccountData;
-import com.cyksj.model.excel.ExcelImportAccountData;
-import com.cyksj.model.excel.ExcelImportDoubleVerifyAccountData;
-import com.cyksj.model.excel.ExcelManageAccountData;
+import com.cyksj.model.excel.*;
 import com.cyksj.model.manage.request.ReqAccountIncrExpiryTime;
 import com.cyksj.model.manage.views.AccountView;
 import com.cyksj.model.manage.views.GroupsRelationView;
@@ -899,4 +896,53 @@ public class CmsAccountController {
 		return GatewayResponse.SUCCESS.newBuilder().toResult();
 	}
 
+	/**
+	 * 下载 替换错误账号模板
+	 */
+	@GetMapping("/get/replace/banned/template")
+	public void getReplaceBannedTemplate(HttpServletResponse response) {
+		EasyExcelUtils.createTemplateExcel(response, ExcelBannedAccountData.class, "封禁账号替换模板", "封禁账号替换模板", ExcelTypeEnum.XLSX, null);
+	}
+
+	/**
+	 * 替换封禁账号
+	 */
+	@PostMapping("/replace/banned")
+	public Result<String> replaceBannedAccount(Long goodsId, MultipartFile file) throws IOException {
+		EasyExcel.read(file.getInputStream(), ExcelBannedAccountData.class, new AnalysisEventListener<ExcelBannedAccountData>() {
+			@Override
+			public void invoke(ExcelBannedAccountData data, AnalysisContext analysisContext) {
+				String oldAccount = data.getOldAccount();
+				String account = data.getAccount();
+				String password = data.getPassword();
+				if (StrUtil.isEmpty(oldAccount) || StrUtil.isEmpty(account) || StrUtil.isEmpty(password)) {
+					return;
+				}
+				Account dbAccount = accountService.getOne(Wrappers.lambdaQuery(Account.class)
+						.eq(Account::getGoodsId, goodsId)
+						.eq(Account::getAccount, oldAccount.trim())
+						.last("limit 1"));
+				if (dbAccount == null) {
+					return;
+				}
+				account = account.trim();
+				password = password.trim();
+				if (accountCommonService.checkIsDupAccount(goodsId, account)) {
+					return;
+				}
+				dbAccount.setAccount(account);
+				dbAccount.setPassword(password);
+				dbAccount.setStartTime(DateTime.now());
+				dbAccount.setExpiryTime(DateUtil.offsetMonth(DateTime.now(), 1));
+				accountService.updateById(dbAccount);
+			}
+
+			@Override
+			public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+
+			}
+		}).sheet().doRead();
+		return GatewayResponse.SUCCESS.newBuilder().toResult();
+	}
+
 }