demo测试模块类初始化v3

ccongli-dev-0821
LI-CCONG\李聪聪 1 year ago
parent 030d992779
commit a4285bd547

@ -4,12 +4,12 @@ import com.yunxi.scm.framework.common.pojo.CommonResult;
import com.yunxi.scm.framework.excel.core.util.ExcelUtils;
import com.yunxi.scm.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.yunxi.scm.framework.operatelog.core.annotations.OperateLog;
import com.yunxi.scm.module.demo.controller.admin.material.vo.MaterialExportTestVO;
import com.yunxi.scm.module.demo.controller.admin.material.vo.MaterialImportTestVO;
import com.yunxi.scm.module.demo.convert.material.MaterialXConvert;
import com.yunxi.scm.module.demo.dal.dataobject.material.MaterialXDO;
import com.yunxi.scm.module.demo.dal.mysql.material.MaterialXMapper;
import com.yunxi.scm.module.demo.enums.material.CategoryEnum;
import com.yunxi.scm.module.demo.controller.admin.pmaterial.vo.PMaterialExportTestVO;
import com.yunxi.scm.module.demo.controller.admin.pmaterial.vo.PMaterialImportTestVO;
import com.yunxi.scm.module.demo.convert.pmaterial.PMaterialXConvert;
import com.yunxi.scm.module.demo.dal.dataobject.pmaterial.PMaterialXDO;
import com.yunxi.scm.module.demo.dal.mysql.pmaterial.PMaterialXMapper;
import com.yunxi.scm.module.demo.enums.pmaterial.CategoryEnum;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
@ -51,13 +51,13 @@ public class DemoTestController {
@PermitAll
@OperateLog(type = EXPORT)
public void testExport(HttpServletResponse response) throws IOException {
MaterialXDO xdo1 = new MaterialXDO(1L,"80inu5yxl3",Arrays.asList("1","2"));
MaterialXDO xdo2 = new MaterialXDO(2L,"Q2ZY1I9cCBf0YKvDUlzCbw==",Arrays.asList("1","3"));
List<MaterialXDO> xdos = new ArrayList<>();
PMaterialXDO xdo1 = new PMaterialXDO(1L,"80inu5yxl3",Arrays.asList("1","2"));
PMaterialXDO xdo2 = new PMaterialXDO(2L,"Q2ZY1I9cCBf0YKvDUlzCbw==",Arrays.asList("1","3"));
List<PMaterialXDO> xdos = new ArrayList<>();
xdos.add(xdo1);
xdos.add(xdo2);
List<MaterialExportTestVO> datas = MaterialXConvert.INSTANCE.convertList03(xdos);
ExcelUtils.write(response, "测试导出.xls", "数据", MaterialExportTestVO.class, datas);
List<PMaterialExportTestVO> datas = PMaterialXConvert.INSTANCE.convertList03(xdos);
ExcelUtils.write(response, "测试导出.xls", "数据", PMaterialExportTestVO.class, datas);
}
@ -69,9 +69,9 @@ public class DemoTestController {
@Parameter(name = "file", description = "Excel 文件", required = true),
@Parameter(name = "updateSupport", description = "是否支持更新,默认为 false", example = "true")
})
public CommonResult<List<MaterialImportTestVO>> testImport(@RequestParam("file") MultipartFile file,
public CommonResult<List<PMaterialImportTestVO>> testImport(@RequestParam("file") MultipartFile file,
@RequestParam(value = "updateSupport", required = false, defaultValue = "false") Boolean updateSupport) throws IOException {
List<MaterialImportTestVO> list = ExcelUtils.read(file, MaterialImportTestVO.class);
List<PMaterialImportTestVO> list = ExcelUtils.read(file, PMaterialImportTestVO.class);
return success(list);
}
@ -83,23 +83,23 @@ public class DemoTestController {
List<String> values = Stream.of(CategoryEnum.COMMON.getCode(),CategoryEnum.KANJIA.getCode())
.map(String::valueOf).collect(Collectors.toList());
// 手动创建导出 demo
List<MaterialImportTestVO> list = Arrays.asList(
MaterialImportTestVO.builder().category(values).build()
List<PMaterialImportTestVO> list = Arrays.asList(
PMaterialImportTestVO.builder().category(values).build()
);
// 输出
ExcelUtils.write(response, "导入模板.xls", "物料标准模版", MaterialImportTestVO.class, list);
ExcelUtils.write(response, "导入模板.xls", "物料标准模版", PMaterialImportTestVO.class, list);
}
@Resource
MaterialXMapper materialXMapper;
PMaterialXMapper materialXMapper;
@GetMapping("/test_encrypt")
@Operation(summary = "测试字段加密")
@PermitAll
public CommonResult<String> testEncrypt() {
MaterialXDO xdo1 = new MaterialXDO(1L,"80inu5yxl3",Arrays.asList("1","2"));
MaterialXDO xdo2 = new MaterialXDO(2L,"80inu5yxl3",Arrays.asList("1","3"));
List<MaterialXDO> xdos = new ArrayList<>();
PMaterialXDO xdo1 = new PMaterialXDO(1L,"80inu5yxl3",Arrays.asList("1","2"));
PMaterialXDO xdo2 = new PMaterialXDO(2L,"80inu5yxl3",Arrays.asList("1","3"));
List<PMaterialXDO> xdos = new ArrayList<>();
xdos.add(xdo1);
xdos.add(xdo2);
materialXMapper.insertBatch(xdos);
@ -109,11 +109,11 @@ public class DemoTestController {
@GetMapping("/test_decrypt")
@Operation(summary = "测试字段解密")
@PermitAll
public CommonResult<MaterialExportTestVO> testDecrypt() {
LambdaQueryWrapperX<MaterialXDO> wrapperX = new LambdaQueryWrapperX<>();
wrapperX.eq(MaterialXDO::getId, 1);
MaterialXDO xdo = materialXMapper.selectOne(wrapperX);
return success(MaterialXConvert.INSTANCE.convert(xdo));
public CommonResult<PMaterialExportTestVO> testDecrypt() {
LambdaQueryWrapperX<PMaterialXDO> wrapperX = new LambdaQueryWrapperX<>();
wrapperX.eq(PMaterialXDO::getId, 1);
PMaterialXDO xdo = materialXMapper.selectOne(wrapperX);
return success(PMaterialXConvert.INSTANCE.convert(xdo));
}
}

@ -1,14 +1,14 @@
package com.yunxi.scm.module.demo.controller.admin.material;
package com.yunxi.scm.module.demo.controller.admin.pmaterial;
import com.yunxi.scm.framework.common.pojo.CommonResult;
import com.yunxi.scm.framework.common.pojo.PageResult;
import com.yunxi.scm.framework.datapermission.core.annotation.DataPermission;
import com.yunxi.scm.framework.excel.core.util.ExcelUtils;
import com.yunxi.scm.framework.operatelog.core.annotations.OperateLog;
import com.yunxi.scm.module.demo.controller.admin.material.vo.*;
import com.yunxi.scm.module.demo.convert.material.MaterialConvert;
import com.yunxi.scm.module.demo.dal.dataobject.material.MaterialDO;
import com.yunxi.scm.module.demo.service.material.PMaterialService;
import com.yunxi.scm.module.demo.controller.admin.pmaterial.vo.*;
import com.yunxi.scm.module.demo.convert.pmaterial.PMaterialConvert;
import com.yunxi.scm.module.demo.dal.dataobject.pmaterial.PMaterialDO;
import com.yunxi.scm.module.demo.service.pmaterial.PMaterialService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
@ -38,14 +38,14 @@ public class PMaterialController {
@PostMapping("/create")
@Operation(summary = "创建物料管理")
@PreAuthorize("@ss.hasPermission('demo:material:create')")
public CommonResult<Long> createMaterial(@Valid @RequestBody MaterialCreateReqVO createReqVO) {
public CommonResult<Long> createMaterial(@Valid @RequestBody PMaterialCreateReqVO createReqVO) {
return success(materialService.createMaterial(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新物料管理")
@PreAuthorize("@ss.hasPermission('demo:material:update')")
public CommonResult<Boolean> updateMaterial(@Valid @RequestBody MaterialUpdateReqVO updateReqVO) {
public CommonResult<Boolean> updateMaterial(@Valid @RequestBody PMaterialUpdateReqVO updateReqVO) {
materialService.updateMaterial(updateReqVO);
return success(true);
}
@ -63,39 +63,39 @@ public class PMaterialController {
@Operation(summary = "获得物料管理")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('demo:material:query')")
public CommonResult<MaterialRespVO> getMaterial(@RequestParam("id") Long id) {
MaterialDO material = materialService.getMaterial(id);
return success(MaterialConvert.INSTANCE.convert(material));
public CommonResult<PMaterialRespVO> getMaterial(@RequestParam("id") Long id) {
PMaterialDO material = materialService.getMaterial(id);
return success(PMaterialConvert.INSTANCE.convert(material));
}
@GetMapping("/list")
@Operation(summary = "获得物料管理列表")
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048")
@PreAuthorize("@ss.hasPermission('demo:material:query')")
public CommonResult<List<MaterialRespVO>> getMaterialList(@RequestParam("ids") Collection<Long> ids) {
List<MaterialDO> list = materialService.getMaterialList(ids);
return success(MaterialConvert.INSTANCE.convertList(list));
public CommonResult<List<PMaterialRespVO>> getMaterialList(@RequestParam("ids") Collection<Long> ids) {
List<PMaterialDO> list = materialService.getMaterialList(ids);
return success(PMaterialConvert.INSTANCE.convertList(list));
}
@GetMapping("/page")
@Operation(summary = "获得物料管理分页")
@PreAuthorize("@ss.hasPermission('demo:material:query')")
@DataPermission // 数据权限功能,默认是开启的
public CommonResult<PageResult<MaterialRespVO>> getMaterialPage(@Valid MaterialPageReqVO pageVO) {
PageResult<MaterialDO> pageResult = materialService.getMaterialPage(pageVO);
return success(MaterialConvert.INSTANCE.convertPage(pageResult));
public CommonResult<PageResult<PMaterialRespVO>> getMaterialPage(@Valid PMaterialPageReqVO pageVO) {
PageResult<PMaterialDO> pageResult = materialService.getMaterialPage(pageVO);
return success(PMaterialConvert.INSTANCE.convertPage(pageResult));
}
@GetMapping("/export-excel")
@Operation(summary = "导出物料管理 Excel")
@PreAuthorize("@ss.hasPermission('demo:material:export')")
@OperateLog(type = EXPORT)
public void exportMaterialExcel(@Valid MaterialExportReqVO exportReqVO,
public void exportMaterialExcel(@Valid PMaterialExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
List<MaterialDO> list = materialService.getMaterialList(exportReqVO);
List<PMaterialDO> list = materialService.getMaterialList(exportReqVO);
// 导出 Excel
List<MaterialExcelVO> datas = MaterialConvert.INSTANCE.convertList02(list);
ExcelUtils.write(response, "物料管理.xls", "数据", MaterialExcelVO.class, datas);
List<PMaterialExcelVO> datas = PMaterialConvert.INSTANCE.convertList02(list);
ExcelUtils.write(response, "物料管理.xls", "数据", PMaterialExcelVO.class, datas);
}
}

@ -1,4 +1,4 @@
package com.yunxi.scm.module.demo.controller.admin.material.vo;
package com.yunxi.scm.module.demo.controller.admin.pmaterial.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@ -12,7 +12,7 @@ import java.util.List;
* VO Swagger
*/
@Data
public class MaterialBaseVO {
public class PMaterialBaseVO {
@Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
@NotNull(message = "名称不能为空")

@ -1,14 +1,12 @@
package com.yunxi.scm.module.demo.controller.admin.material.vo;
package com.yunxi.scm.module.demo.controller.admin.pmaterial.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.*;
@Schema(description = "管理后台 - 物料管理创建 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class MaterialCreateReqVO extends MaterialBaseVO {
public class PMaterialCreateReqVO extends PMaterialBaseVO {
}

@ -1,4 +1,4 @@
package com.yunxi.scm.module.demo.controller.admin.material.vo;
package com.yunxi.scm.module.demo.controller.admin.pmaterial.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.yunxi.scm.framework.excel.core.annotations.DictFormat;
@ -18,7 +18,7 @@ import java.util.List;
* @author ccongli
*/
@Data
public class MaterialExcelVO {
public class PMaterialExcelVO {
@ExcelProperty("编号")
private Long id;

@ -1,4 +1,4 @@
package com.yunxi.scm.module.demo.controller.admin.material.vo;
package com.yunxi.scm.module.demo.controller.admin.pmaterial.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@ -8,9 +8,9 @@ import java.time.LocalDateTime;
import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 物料管理 Excel 导出 Request VO参数和 MaterialPageReqVO 是一致的")
@Schema(description = "管理后台 - 物料管理 Excel 导出 Request VO参数和 PMaterialPageReqVO 是一致的")
@Data
public class MaterialExportReqVO {
public class PMaterialExportReqVO {
@Schema(description = "名称", example = "李四")
private String name;

@ -1,4 +1,4 @@
package com.yunxi.scm.module.demo.controller.admin.material.vo;
package com.yunxi.scm.module.demo.controller.admin.pmaterial.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.yunxi.scm.framework.excel.core.annotations.DictFormat;
@ -10,7 +10,7 @@ import java.util.List;
// 测试转换
@Data
public class MaterialExportTestVO {
public class PMaterialExportTestVO {
@ExcelProperty(value = "密码")
private String password;

@ -1,4 +1,4 @@
package com.yunxi.scm.module.demo.controller.admin.material.vo;
package com.yunxi.scm.module.demo.controller.admin.pmaterial.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.yunxi.scm.framework.excel.core.annotations.DictFormat;
@ -17,7 +17,7 @@ import java.util.List;
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false避免用户导入有问题
public class MaterialImportTestVO {
public class PMaterialImportTestVO {

@ -1,4 +1,4 @@
package com.yunxi.scm.module.demo.controller.admin.material.vo;
package com.yunxi.scm.module.demo.controller.admin.pmaterial.vo;
import com.yunxi.scm.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
@ -15,7 +15,7 @@ import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MON
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class MaterialPageReqVO extends PageParam {
public class PMaterialPageReqVO extends PageParam {
@Schema(description = "名称", example = "李四")
private String name;

@ -1,4 +1,4 @@
package com.yunxi.scm.module.demo.controller.admin.material.vo;
package com.yunxi.scm.module.demo.controller.admin.pmaterial.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
@ -8,7 +8,7 @@ import java.time.LocalDateTime;
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class MaterialRespVO extends MaterialBaseVO {
public class PMaterialRespVO extends PMaterialBaseVO {
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "14541")
private Long id;

@ -1,15 +1,15 @@
package com.yunxi.scm.module.demo.controller.admin.material.vo;
package com.yunxi.scm.module.demo.controller.admin.pmaterial.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
@Schema(description = "管理后台 - 物料管理更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class MaterialUpdateReqVO extends MaterialBaseVO {
public class PMaterialUpdateReqVO extends PMaterialBaseVO {
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "14541")
@NotNull(message = "ID不能为空")

@ -1,37 +0,0 @@
package com.yunxi.scm.module.demo.convert.material;
import com.yunxi.scm.framework.common.pojo.PageResult;
import com.yunxi.scm.module.demo.controller.admin.material.vo.*;
import com.yunxi.scm.module.demo.dal.dataobject.material.MaterialDO;
import com.yunxi.scm.module.demo.dal.dataobject.material.MaterialXDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
/**
* Convert
*
* @author ccongli
*/
@Mapper
public interface MaterialConvert {
MaterialConvert INSTANCE = Mappers.getMapper(MaterialConvert.class);
MaterialDO convert(MaterialCreateReqVO bean);
MaterialDO convert(MaterialUpdateReqVO bean);
MaterialRespVO convert(MaterialDO bean);
List<MaterialRespVO> convertList(List<MaterialDO> list);
PageResult<MaterialRespVO> convertPage(PageResult<MaterialDO> page);
List<MaterialExcelVO> convertList02(List<MaterialDO> list);
List<MaterialExportTestVO> convertList03(List<MaterialXDO> list);
}

@ -1,24 +0,0 @@
package com.yunxi.scm.module.demo.convert.material;
import com.yunxi.scm.module.demo.controller.admin.material.vo.MaterialExportTestVO;
import com.yunxi.scm.module.demo.dal.dataobject.material.MaterialXDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
/**
* Convert
*
* @author ccongli
*/
@Mapper
public interface MaterialXConvert {
MaterialXConvert INSTANCE = Mappers.getMapper(MaterialXConvert.class);
MaterialExportTestVO convert(MaterialXDO xdo);
List<MaterialExportTestVO> convertList03(List<MaterialXDO> list);
}

@ -0,0 +1,37 @@
package com.yunxi.scm.module.demo.convert.pmaterial;
import com.yunxi.scm.framework.common.pojo.PageResult;
import com.yunxi.scm.module.demo.controller.admin.pmaterial.vo.*;
import com.yunxi.scm.module.demo.dal.dataobject.pmaterial.PMaterialDO;
import com.yunxi.scm.module.demo.dal.dataobject.pmaterial.PMaterialXDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
/**
* Convert
*
* @author ccongli
*/
@Mapper
public interface PMaterialConvert {
PMaterialConvert INSTANCE = Mappers.getMapper(PMaterialConvert.class);
PMaterialDO convert(PMaterialCreateReqVO bean);
PMaterialDO convert(PMaterialUpdateReqVO bean);
PMaterialRespVO convert(PMaterialDO bean);
List<PMaterialRespVO> convertList(List<PMaterialDO> list);
PageResult<PMaterialRespVO> convertPage(PageResult<PMaterialDO> page);
List<PMaterialExcelVO> convertList02(List<PMaterialDO> list);
List<PMaterialExportTestVO> convertList03(List<PMaterialXDO> list);
}

@ -0,0 +1,24 @@
package com.yunxi.scm.module.demo.convert.pmaterial;
import com.yunxi.scm.module.demo.controller.admin.pmaterial.vo.PMaterialExportTestVO;
import com.yunxi.scm.module.demo.dal.dataobject.pmaterial.PMaterialXDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
/**
* Convert
*
* @author ccongli
*/
@Mapper
public interface PMaterialXConvert {
PMaterialXConvert INSTANCE = Mappers.getMapper(PMaterialXConvert.class);
PMaterialExportTestVO convert(PMaterialXDO xdo);
List<PMaterialExportTestVO> convertList03(List<PMaterialXDO> list);
}

@ -1,4 +1,4 @@
package com.yunxi.scm.module.demo.dal.dataobject.material;
package com.yunxi.scm.module.demo.dal.dataobject.pmaterial;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableField;
@ -24,7 +24,7 @@ import java.util.List;
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MaterialDO extends BaseDO {
public class PMaterialDO extends BaseDO {
/**
* ID

@ -1,4 +1,4 @@
package com.yunxi.scm.module.demo.dal.dataobject.material;
package com.yunxi.scm.module.demo.dal.dataobject.pmaterial;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
@ -16,7 +16,7 @@ import java.util.List;
@NoArgsConstructor
@AllArgsConstructor
@TableName(value = "demo_xxx", autoResultMap = true)
public class MaterialXDO implements Serializable {
public class PMaterialXDO implements Serializable {
@TableId
private Long id;

@ -1,15 +0,0 @@
package com.yunxi.scm.module.demo.dal.mysql.material;
import com.yunxi.scm.framework.mybatis.core.mapper.BaseMapperX;
import com.yunxi.scm.module.demo.dal.dataobject.material.MaterialXDO;
import org.apache.ibatis.annotations.Mapper;
/**
* Mapper
*
* @author ccongli
*/
@Mapper
public interface MaterialXMapper extends BaseMapperX<MaterialXDO> {
}

@ -1,41 +0,0 @@
package com.yunxi.scm.module.demo.dal.mysql.material;
import com.yunxi.scm.framework.common.pojo.PageResult;
import com.yunxi.scm.framework.mybatis.core.mapper.BaseMapperX;
import com.yunxi.scm.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.yunxi.scm.module.demo.controller.admin.material.vo.MaterialExportReqVO;
import com.yunxi.scm.module.demo.controller.admin.material.vo.MaterialPageReqVO;
import com.yunxi.scm.module.demo.dal.dataobject.material.MaterialDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* Mapper
*
* @author ccongli
*/
@Mapper
public interface PMaterialMapper extends BaseMapperX<MaterialDO> {
default PageResult<MaterialDO> selectPage(MaterialPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<MaterialDO>()
.likeIfPresent(MaterialDO::getName, reqVO.getName())
.eqIfPresent(MaterialDO::getStatus, reqVO.getStatus())
.eqIfPresent(MaterialDO::getType, reqVO.getType())
.likeIfPresent(MaterialDO::getCategories, reqVO.getCategory())
.betweenIfPresent(MaterialDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(MaterialDO::getId));
}
default List<MaterialDO> selectList(MaterialExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<MaterialDO>()
.likeIfPresent(MaterialDO::getName, reqVO.getName())
.eqIfPresent(MaterialDO::getStatus, reqVO.getStatus())
.eqIfPresent(MaterialDO::getType, reqVO.getType())
.likeIfPresent(MaterialDO::getCategories, reqVO.getCategory())
.betweenIfPresent(MaterialDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(MaterialDO::getId));
}
}

@ -0,0 +1,41 @@
package com.yunxi.scm.module.demo.dal.mysql.pmaterial;
import com.yunxi.scm.framework.common.pojo.PageResult;
import com.yunxi.scm.framework.mybatis.core.mapper.BaseMapperX;
import com.yunxi.scm.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.yunxi.scm.module.demo.controller.admin.pmaterial.vo.PMaterialExportReqVO;
import com.yunxi.scm.module.demo.controller.admin.pmaterial.vo.PMaterialPageReqVO;
import com.yunxi.scm.module.demo.dal.dataobject.pmaterial.PMaterialDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* Mapper
*
* @author ccongli
*/
@Mapper
public interface PMaterialMapper extends BaseMapperX<PMaterialDO> {
default PageResult<PMaterialDO> selectPage(PMaterialPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<PMaterialDO>()
.likeIfPresent(PMaterialDO::getName, reqVO.getName())
.eqIfPresent(PMaterialDO::getStatus, reqVO.getStatus())
.eqIfPresent(PMaterialDO::getType, reqVO.getType())
.likeIfPresent(PMaterialDO::getCategories, reqVO.getCategory())
.betweenIfPresent(PMaterialDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(PMaterialDO::getId));
}
default List<PMaterialDO> selectList(PMaterialExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<PMaterialDO>()
.likeIfPresent(PMaterialDO::getName, reqVO.getName())
.eqIfPresent(PMaterialDO::getStatus, reqVO.getStatus())
.eqIfPresent(PMaterialDO::getType, reqVO.getType())
.likeIfPresent(PMaterialDO::getCategories, reqVO.getCategory())
.betweenIfPresent(PMaterialDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(PMaterialDO::getId));
}
}

@ -0,0 +1,15 @@
package com.yunxi.scm.module.demo.dal.mysql.pmaterial;
import com.yunxi.scm.framework.mybatis.core.mapper.BaseMapperX;
import com.yunxi.scm.module.demo.dal.dataobject.pmaterial.PMaterialXDO;
import org.apache.ibatis.annotations.Mapper;
/**
* Mapper
*
* @author ccongli
*/
@Mapper
public interface PMaterialXMapper extends BaseMapperX<PMaterialXDO> {
}

@ -1,4 +1,4 @@
package com.yunxi.scm.module.demo.enums.material;
package com.yunxi.scm.module.demo.enums.pmaterial;
import com.yunxi.scm.framework.common.core.IntArrayValuable;
import lombok.AllArgsConstructor;

@ -1,85 +0,0 @@
package com.yunxi.scm.module.demo.service.material;
import com.yunxi.scm.framework.common.pojo.PageResult;
import com.yunxi.scm.module.demo.controller.admin.material.vo.MaterialCreateReqVO;
import com.yunxi.scm.module.demo.controller.admin.material.vo.MaterialExportReqVO;
import com.yunxi.scm.module.demo.controller.admin.material.vo.MaterialPageReqVO;
import com.yunxi.scm.module.demo.controller.admin.material.vo.MaterialUpdateReqVO;
import com.yunxi.scm.module.demo.convert.material.MaterialConvert;
import com.yunxi.scm.module.demo.dal.dataobject.material.MaterialDO;
import com.yunxi.scm.module.demo.dal.mysql.material.PMaterialMapper;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.util.Collection;
import java.util.List;
import static com.yunxi.scm.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.yunxi.scm.module.demo.enums.ErrorCodeConstants.MATERIAL_NOT_EXISTS;
/**
* Service
*
* @author ccongli
*/
@Service
@Validated
public class PMaterialServiceImpl implements PMaterialService {
@Resource
private PMaterialMapper materialMapper;
@Override
public Long createMaterial(MaterialCreateReqVO createReqVO) {
// 插入
MaterialDO material = MaterialConvert.INSTANCE.convert(createReqVO);
materialMapper.insert(material);
// 返回
return material.getId();
}
@Override
public void updateMaterial(MaterialUpdateReqVO updateReqVO) {
// 校验存在
validateMaterialExists(updateReqVO.getId());
// 更新
MaterialDO updateObj = MaterialConvert.INSTANCE.convert(updateReqVO);
materialMapper.updateById(updateObj);
}
@Override
public void deleteMaterial(Long id) {
// 校验存在
validateMaterialExists(id);
// 删除
materialMapper.deleteById(id);
}
private void validateMaterialExists(Long id) {
if (materialMapper.selectById(id) == null) {
throw exception(MATERIAL_NOT_EXISTS);
}
}
@Override
public MaterialDO getMaterial(Long id) {
return materialMapper.selectById(id);
}
@Override
public List<MaterialDO> getMaterialList(Collection<Long> ids) {
return materialMapper.selectBatchIds(ids);
}
@Override
public PageResult<MaterialDO> getMaterialPage(MaterialPageReqVO pageReqVO) {
return materialMapper.selectPage(pageReqVO);
}
@Override
public List<MaterialDO> getMaterialList(MaterialExportReqVO exportReqVO) {
return materialMapper.selectList(exportReqVO);
}
}

@ -1,9 +1,9 @@
package com.yunxi.scm.module.demo.service.material;
package com.yunxi.scm.module.demo.service.pmaterial;
import java.util.*;
import javax.validation.*;
import com.yunxi.scm.module.demo.controller.admin.material.vo.*;
import com.yunxi.scm.module.demo.dal.dataobject.material.MaterialDO;
import com.yunxi.scm.module.demo.controller.admin.pmaterial.vo.*;
import com.yunxi.scm.module.demo.dal.dataobject.pmaterial.PMaterialDO;
import com.yunxi.scm.framework.common.pojo.PageResult;
/**
@ -19,14 +19,14 @@ public interface PMaterialService {
* @param createReqVO
* @return
*/
Long createMaterial(@Valid MaterialCreateReqVO createReqVO);
Long createMaterial(@Valid PMaterialCreateReqVO createReqVO);
/**
*
*
* @param updateReqVO
*/
void updateMaterial(@Valid MaterialUpdateReqVO updateReqVO);
void updateMaterial(@Valid PMaterialUpdateReqVO updateReqVO);
/**
*
@ -41,7 +41,7 @@ public interface PMaterialService {
* @param id
* @return
*/
MaterialDO getMaterial(Long id);
PMaterialDO getMaterial(Long id);
/**
*
@ -49,7 +49,7 @@ public interface PMaterialService {
* @param ids
* @return
*/
List<MaterialDO> getMaterialList(Collection<Long> ids);
List<PMaterialDO> getMaterialList(Collection<Long> ids);
/**
*
@ -57,7 +57,7 @@ public interface PMaterialService {
* @param pageReqVO
* @return
*/
PageResult<MaterialDO> getMaterialPage(MaterialPageReqVO pageReqVO);
PageResult<PMaterialDO> getMaterialPage(PMaterialPageReqVO pageReqVO);
/**
* , Excel
@ -65,6 +65,6 @@ public interface PMaterialService {
* @param exportReqVO
* @return
*/
List<MaterialDO> getMaterialList(MaterialExportReqVO exportReqVO);
List<PMaterialDO> getMaterialList(PMaterialExportReqVO exportReqVO);
}

@ -0,0 +1,85 @@
package com.yunxi.scm.module.demo.service.pmaterial;
import com.yunxi.scm.framework.common.pojo.PageResult;
import com.yunxi.scm.module.demo.controller.admin.pmaterial.vo.PMaterialCreateReqVO;
import com.yunxi.scm.module.demo.controller.admin.pmaterial.vo.PMaterialExportReqVO;
import com.yunxi.scm.module.demo.controller.admin.pmaterial.vo.PMaterialPageReqVO;
import com.yunxi.scm.module.demo.controller.admin.pmaterial.vo.PMaterialUpdateReqVO;
import com.yunxi.scm.module.demo.convert.pmaterial.PMaterialConvert;
import com.yunxi.scm.module.demo.dal.dataobject.pmaterial.PMaterialDO;
import com.yunxi.scm.module.demo.dal.mysql.pmaterial.PMaterialMapper;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.util.Collection;
import java.util.List;
import static com.yunxi.scm.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.yunxi.scm.module.demo.enums.ErrorCodeConstants.MATERIAL_NOT_EXISTS;
/**
* Service
*
* @author ccongli
*/
@Service
@Validated
public class PMaterialServiceImpl implements PMaterialService {
@Resource
private PMaterialMapper pMaterialMapper;
@Override
public Long createMaterial(PMaterialCreateReqVO createReqVO) {
// 插入
PMaterialDO material = PMaterialConvert.INSTANCE.convert(createReqVO);
pMaterialMapper.insert(material);
// 返回
return material.getId();
}
@Override
public void updateMaterial(PMaterialUpdateReqVO updateReqVO) {
// 校验存在
validateMaterialExists(updateReqVO.getId());
// 更新
PMaterialDO updateObj = PMaterialConvert.INSTANCE.convert(updateReqVO);
pMaterialMapper.updateById(updateObj);
}
@Override
public void deleteMaterial(Long id) {
// 校验存在
validateMaterialExists(id);
// 删除
pMaterialMapper.deleteById(id);
}
private void validateMaterialExists(Long id) {
if (pMaterialMapper.selectById(id) == null) {
throw exception(MATERIAL_NOT_EXISTS);
}
}
@Override
public PMaterialDO getMaterial(Long id) {
return pMaterialMapper.selectById(id);
}
@Override
public List<PMaterialDO> getMaterialList(Collection<Long> ids) {
return pMaterialMapper.selectBatchIds(ids);
}
@Override
public PageResult<PMaterialDO> getMaterialPage(PMaterialPageReqVO pageReqVO) {
return pMaterialMapper.selectPage(pageReqVO);
}
@Override
public List<PMaterialDO> getMaterialList(PMaterialExportReqVO exportReqVO) {
return pMaterialMapper.selectList(exportReqVO);
}
}

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yunxi.scm.module.demo.dal.mysql.material.PMaterialMapper">
<mapper namespace="com.yunxi.scm.module.demo.dal.mysql.pmaterial.PMaterialMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。

@ -1,13 +1,13 @@
package com.yunxi.scm.module.demo.service.material;
package com.yunxi.scm.module.demo.service.pmaterial;
import com.yunxi.scm.framework.common.pojo.PageResult;
import com.yunxi.scm.framework.test.core.ut.BaseDbUnitTest;
import com.yunxi.scm.module.demo.controller.admin.material.vo.MaterialCreateReqVO;
import com.yunxi.scm.module.demo.controller.admin.material.vo.MaterialExportReqVO;
import com.yunxi.scm.module.demo.controller.admin.material.vo.MaterialPageReqVO;
import com.yunxi.scm.module.demo.controller.admin.material.vo.MaterialUpdateReqVO;
import com.yunxi.scm.module.demo.dal.dataobject.material.MaterialDO;
import com.yunxi.scm.module.demo.dal.mysql.material.PMaterialMapper;
import com.yunxi.scm.module.demo.controller.admin.pmaterial.vo.PMaterialCreateReqVO;
import com.yunxi.scm.module.demo.controller.admin.pmaterial.vo.PMaterialExportReqVO;
import com.yunxi.scm.module.demo.controller.admin.pmaterial.vo.PMaterialPageReqVO;
import com.yunxi.scm.module.demo.controller.admin.pmaterial.vo.PMaterialUpdateReqVO;
import com.yunxi.scm.module.demo.dal.dataobject.pmaterial.PMaterialDO;
import com.yunxi.scm.module.demo.dal.mysql.pmaterial.PMaterialMapper;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.springframework.context.annotation.Import;
@ -41,38 +41,38 @@ public class MaterialServiceImplTest extends BaseDbUnitTest {
@Test
public void testCreateMaterial_success() {
// 准备参数
MaterialCreateReqVO reqVO = randomPojo(MaterialCreateReqVO.class);
PMaterialCreateReqVO reqVO = randomPojo(PMaterialCreateReqVO.class);
// 调用
Long materialId = materialService.createMaterial(reqVO);
// 断言
assertNotNull(materialId);
// 校验记录的属性是否正确
MaterialDO material = materialMapper.selectById(materialId);
PMaterialDO material = materialMapper.selectById(materialId);
assertPojoEquals(reqVO, material);
}
@Test
public void testUpdateMaterial_success() {
// mock 数据
MaterialDO dbMaterial = randomPojo(MaterialDO.class);
PMaterialDO dbMaterial = randomPojo(PMaterialDO.class);
materialMapper.insert(dbMaterial);// @Sql: 先插入出一条存在的数据
// 准备参数
MaterialUpdateReqVO reqVO = randomPojo(MaterialUpdateReqVO.class, o -> {
PMaterialUpdateReqVO reqVO = randomPojo(PMaterialUpdateReqVO.class, o -> {
o.setId(dbMaterial.getId()); // 设置更新的 ID
});
// 调用
materialService.updateMaterial(reqVO);
// 校验是否更新正确
MaterialDO material = materialMapper.selectById(reqVO.getId()); // 获取最新的
PMaterialDO material = materialMapper.selectById(reqVO.getId()); // 获取最新的
assertPojoEquals(reqVO, material);
}
@Test
public void testUpdateMaterial_notExists() {
// 准备参数
MaterialUpdateReqVO reqVO = randomPojo(MaterialUpdateReqVO.class);
PMaterialUpdateReqVO reqVO = randomPojo(PMaterialUpdateReqVO.class);
// 调用, 并断言异常
assertServiceException(() -> materialService.updateMaterial(reqVO), MATERIAL_NOT_EXISTS);
@ -81,7 +81,7 @@ public class MaterialServiceImplTest extends BaseDbUnitTest {
@Test
public void testDeleteMaterial_success() {
// mock 数据
MaterialDO dbMaterial = randomPojo(MaterialDO.class);
PMaterialDO dbMaterial = randomPojo(PMaterialDO.class);
materialMapper.insert(dbMaterial);// @Sql: 先插入出一条存在的数据
// 准备参数
Long id = dbMaterial.getId();
@ -105,7 +105,7 @@ public class MaterialServiceImplTest extends BaseDbUnitTest {
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
public void testGetMaterialPage() {
// mock 数据
MaterialDO dbMaterial = randomPojo(MaterialDO.class, o -> { // 等会查询到
PMaterialDO dbMaterial = randomPojo(PMaterialDO.class, o -> { // 等会查询到
o.setName(null);
o.setStatus(null);
o.setType(null);
@ -124,7 +124,7 @@ public class MaterialServiceImplTest extends BaseDbUnitTest {
// 测试 createTime 不匹配
materialMapper.insert(cloneIgnoreId(dbMaterial, o -> o.setCreateTime(null)));
// 准备参数
MaterialPageReqVO reqVO = new MaterialPageReqVO();
PMaterialPageReqVO reqVO = new PMaterialPageReqVO();
reqVO.setName(null);
reqVO.setStatus(null);
reqVO.setType(null);
@ -132,7 +132,7 @@ public class MaterialServiceImplTest extends BaseDbUnitTest {
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
// 调用
PageResult<MaterialDO> pageResult = materialService.getMaterialPage(reqVO);
PageResult<PMaterialDO> pageResult = materialService.getMaterialPage(reqVO);
// 断言
assertEquals(1, pageResult.getTotal());
assertEquals(1, pageResult.getList().size());
@ -143,7 +143,7 @@ public class MaterialServiceImplTest extends BaseDbUnitTest {
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
public void testGetMaterialList() {
// mock 数据
MaterialDO dbMaterial = randomPojo(MaterialDO.class, o -> { // 等会查询到
PMaterialDO dbMaterial = randomPojo(PMaterialDO.class, o -> { // 等会查询到
o.setName(null);
o.setStatus(null);
o.setType(null);
@ -162,7 +162,7 @@ public class MaterialServiceImplTest extends BaseDbUnitTest {
// 测试 createTime 不匹配
materialMapper.insert(cloneIgnoreId(dbMaterial, o -> o.setCreateTime(null)));
// 准备参数
MaterialExportReqVO reqVO = new MaterialExportReqVO();
PMaterialExportReqVO reqVO = new PMaterialExportReqVO();
reqVO.setName(null);
reqVO.setStatus(null);
reqVO.setType(null);
@ -170,7 +170,7 @@ public class MaterialServiceImplTest extends BaseDbUnitTest {
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
// 调用
List<MaterialDO> list = materialService.getMaterialList(reqVO);
List<PMaterialDO> list = materialService.getMaterialList(reqVO);
// 断言
assertEquals(1, list.size());
assertPojoEquals(dbMaterial, list.get(0));
Loading…
Cancel
Save