..
This commit is contained in:
@@ -5,8 +5,6 @@ import cn.afterturn.easypoi.excel.ExcelImportUtil;
|
||||
import cn.afterturn.easypoi.excel.annotation.Excel;
|
||||
import cn.afterturn.easypoi.excel.entity.ImportParams;
|
||||
import cn.hutool.core.codec.Base64;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.util.CharsetUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.crypto.digest.DigestUtil;
|
||||
@@ -17,22 +15,17 @@ import cn.hutool.json.JSONObject;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.budwk.app.base.utils.PwdUtil;
|
||||
import com.budwk.app.sys.enums.SysDataUpdateMode;
|
||||
import com.budwk.app.sys.models.*;
|
||||
import com.budwk.app.sys.models.Sys_dict;
|
||||
import com.budwk.app.sys.models.Sys_unit;
|
||||
import com.budwk.app.sys.models.Sys_user;
|
||||
import com.budwk.app.sys.models.Sys_user_role;
|
||||
import com.budwk.app.sys.param.SysDataUserUpdateParam;
|
||||
import com.budwk.app.sys.services.SysDictService;
|
||||
import com.budwk.app.sys.services.SysUnitService;
|
||||
import com.budwk.app.sys.services.SysUserService;
|
||||
import com.budwk.app.sys.services.impl.SysDataUserAllUpdateServiceImpl;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import lombok.Data;
|
||||
import org.apache.poi.ss.usermodel.Cell;
|
||||
import org.apache.poi.ss.usermodel.Row;
|
||||
import org.apache.poi.ss.usermodel.Sheet;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.apache.poi.ss.util.CellRangeAddress;
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.nutz.boot.test.junit4.NbJUnit4Runner;
|
||||
@@ -41,22 +34,14 @@ import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.json.Json;
|
||||
import org.nutz.lang.Files;
|
||||
import org.nutz.lang.Lang;
|
||||
import org.nutz.lang.random.R;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
|
||||
import javax.validation.ConstraintViolation;
|
||||
import javax.validation.Validation;
|
||||
import javax.validation.Validator;
|
||||
import javax.validation.ValidatorFactory;
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
@IocBean
|
||||
@RunWith(NbJUnit4Runner.class)
|
||||
@@ -206,19 +191,19 @@ public class JugTest {
|
||||
|
||||
} while (skip < totalCount);
|
||||
|
||||
Files.write(new File("C:\\Users\\administrator\\Desktop\\博士后.txt"),allUsers);
|
||||
Files.write(new File("C:\\Users\\administrator\\Desktop\\博士后.txt"), allUsers);
|
||||
System.out.println(allUsers.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void userPwd(){
|
||||
public void userPwd() {
|
||||
List<Sys_user> users = dao.query(Sys_user.class, Cnd.NEW());
|
||||
String pwd = "1";
|
||||
for (Sys_user user : users) {
|
||||
user.setSalt(R.UU32());
|
||||
user.setPassword(PwdUtil.getPassword(pwd, user.getSalt()));
|
||||
}
|
||||
dao.update(users,"password|salt");
|
||||
dao.update(users, "password|salt");
|
||||
}
|
||||
|
||||
@Inject
|
||||
@@ -234,7 +219,7 @@ public class JugTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void bsh(){
|
||||
public void bsh() {
|
||||
List<String> bsh = new ArrayList<>();
|
||||
bsh.add("91036");
|
||||
bsh.add("91035");
|
||||
@@ -315,9 +300,9 @@ public class JugTest {
|
||||
|
||||
List<Sys_user> users = dao.query(Sys_user.class, Cnd.where(Sys_user::getLoginname, "in", bsh));
|
||||
|
||||
for (Sys_user user : users){
|
||||
for (Sys_user user : users) {
|
||||
user.setMember(true);
|
||||
dao.update(users,"member");
|
||||
dao.update(users, "member");
|
||||
|
||||
Sys_user_role user_role = new Sys_user_role();
|
||||
user_role.setUserId(user.getId());
|
||||
@@ -326,11 +311,89 @@ public class JugTest {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test0001() {
|
||||
SysDataUserUpdateParam param = new SysDataUserUpdateParam();
|
||||
param.setPullTime("2025-06-20 15:21:16");
|
||||
param.setUpdateMode(SysDataUpdateMode.ALL.name());
|
||||
sysDataUserUpdateService.update(param);
|
||||
}
|
||||
|
||||
|
||||
// 中国大陆手机号正则表达式
|
||||
private static final String MOBILE_REGEX = "^1[3-9]\\d{9}$";
|
||||
private static final Pattern MOBILE_PATTERN = Pattern.compile(MOBILE_REGEX);
|
||||
|
||||
/**
|
||||
* 验证手机号格式
|
||||
*/
|
||||
private boolean isValidMobile(String mobile) {
|
||||
if (StrUtil.isBlank(mobile)) {
|
||||
return false;
|
||||
}
|
||||
return MOBILE_PATTERN.matcher(mobile.trim()).matches();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void importWelfareMobile() {
|
||||
try {
|
||||
File file = new File("C:\\Users\\jug\\Desktop\\副本2025年南师大端午发放清单0915.xlsx");
|
||||
ImportParams params = new ImportParams();
|
||||
|
||||
List<User> list = ExcelImportUtil.importExcel(file, User.class, params);
|
||||
|
||||
int successCount = 0;
|
||||
int failCount = 0;
|
||||
|
||||
for (User user : list) {
|
||||
String sjh = user.getSjh();
|
||||
String loginname = user.getGh();
|
||||
|
||||
// 验证手机号是否正确
|
||||
if (isValidMobile(sjh) && StringUtils.isNotBlank(loginname)) {
|
||||
try {
|
||||
// 更新数据库
|
||||
int result = dao.update(Sys_user.class,
|
||||
Chain.make("welfareMobile", sjh),
|
||||
Cnd.where("loginname", "=", loginname));
|
||||
|
||||
if (result > 0) {
|
||||
successCount++;
|
||||
System.out.println("更新成功:工号=" + loginname + ", 手机号=" + sjh);
|
||||
} else {
|
||||
failCount++;
|
||||
System.out.println("更新失败(未找到匹配记录):工号=" + loginname);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
failCount++;
|
||||
System.out.println("数据库更新异常:工号=" + loginname + ", 错误:" + e.getMessage());
|
||||
}
|
||||
} else {
|
||||
failCount++;
|
||||
System.out.println("手机号格式无效或工号为空:工号=" + loginname + ", 手机号=" + sjh);
|
||||
}
|
||||
}
|
||||
|
||||
System.out.println("导入完成!成功:" + successCount + "条,失败:" + failCount + "条");
|
||||
|
||||
} catch (Exception e) {
|
||||
System.err.println("导入Excel文件时发生异常:" + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Data
|
||||
public static class User {
|
||||
|
||||
@Excel(name = "工号")
|
||||
private String gh;
|
||||
|
||||
@Excel(name = "手机号码")
|
||||
private String sjh;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user