This commit is contained in:
2026-03-04 18:01:13 +08:00
parent 15af775af4
commit 97df87eb06
20 changed files with 608 additions and 156 deletions

View File

@@ -1,5 +1,13 @@
package top.wms.admin.controller.meterial;
import cn.dev33.satoken.annotation.SaCheckPermission;
import io.swagger.v3.oas.annotations.Operation;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotNull;
import org.springframework.http.MediaType;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.multipart.MultipartFile;
import top.continew.starter.core.validation.ValidationUtils;
import top.continew.starter.extension.crud.enums.Api;
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -11,9 +19,17 @@ import top.continew.starter.extension.crud.annotation.CrudRequestMapping;
import top.wms.admin.common.controller.BaseController;
import top.wms.admin.material.model.entity.MaterialInfoDO;
import top.wms.admin.material.model.query.MaterialInfoQuery;
import top.wms.admin.material.model.req.MaterialInfoImportReq;
import top.wms.admin.material.model.req.MaterialInfoReq;
import top.wms.admin.material.model.resp.MaterialImportParseResp;
import top.wms.admin.material.model.resp.MaterialInfoImportResp;
import top.wms.admin.material.model.resp.MaterialInfoResp;
import top.wms.admin.material.service.MaterialInfoService;
import top.wms.admin.system.model.req.user.UserImportReq;
import top.wms.admin.system.model.resp.user.UserImportParseResp;
import top.wms.admin.system.model.resp.user.UserImportResp;
import java.io.IOException;
/**
* 物料信息管理 API
@@ -33,4 +49,26 @@ public class MaterialInfoController extends BaseController<MaterialInfoService,
public MaterialInfoDO getMaterialInfoByCode(@PathVariable String code) {
return baseService.getMaterialInfoByCode(code);
}
@Operation(summary = "下载导入模板", description = "下载导入模板")
@SaCheckPermission("admin:materialInfo:import")
@GetMapping(value = "/import/template", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
public void downloadImportTemplate(HttpServletResponse response) throws IOException {
baseService.downloadImportTemplate(response);
}
@Operation(summary = "解析导入数据", description = "解析导入数据")
@SaCheckPermission("admin:materialInfo:import")
@PostMapping("/import/parse")
public MaterialImportParseResp parseImport(@NotNull(message = "文件不能为空") MultipartFile file) {
ValidationUtils.throwIf(file::isEmpty, "文件不能为空");
return baseService.parseImport(file);
}
@Operation(summary = "导入数据", description = "导入数据")
@SaCheckPermission("admin:materialInfo:import")
@PostMapping(value = "/import")
public MaterialInfoImportResp importUser(@Validated @RequestBody MaterialInfoImportReq req) {
return baseService.importMaterial(req);
}
}

View File

@@ -10,6 +10,7 @@ import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
import org.springframework.http.MediaType;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@@ -91,7 +92,8 @@ public class UserController extends BaseController<UserService, UserResp, UserDe
ValidationUtils.throwIfNull(rawNewPassword, "新密码解密失败");
ValidationUtils.throwIf(!ReUtil
.isMatch(RegexConstants.PASSWORD, rawNewPassword), "密码长度为 8-32 个字符,支持大小写字母、数字、特殊字符,至少包含字母和数字");
req.setNewPassword(rawNewPassword);
BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
req.setNewPassword("{bcrypt}"+encoder.encode(rawNewPassword));
baseService.resetPassword(req, id);
}