forked from sfms3.0/sfms3.0
17 changed files with 616 additions and 7 deletions
@ -0,0 +1,14 @@ |
|||
package com.win.module.wms.enums; |
|||
|
|||
import com.win.framework.common.exception.ErrorCode; |
|||
|
|||
/** |
|||
* System 错误码枚举类 |
|||
* |
|||
* system 系统,使用 1-002-000-000 段 |
|||
*/ |
|||
public interface ErrorCodeConstants { |
|||
|
|||
ErrorCode CONDITION_NOT_EXISTS = new ErrorCode(1_046_000_000, "条件不存在"); |
|||
|
|||
} |
@ -0,0 +1,99 @@ |
|||
package com.win.module.wms.controller.condition; |
|||
|
|||
import com.win.framework.common.pojo.CommonResult; |
|||
import com.win.framework.common.pojo.PageResult; |
|||
import com.win.framework.excel.core.util.ExcelUtils; |
|||
import com.win.framework.operatelog.core.annotations.OperateLog; |
|||
import com.win.module.wms.controller.condition.vo.*; |
|||
import com.win.module.wms.convert.condition.ConditionConvert; |
|||
import com.win.module.wms.dal.dataobject.condition.ConditionDO; |
|||
import com.win.module.wms.service.condition.ConditionService; |
|||
import io.swagger.v3.oas.annotations.Operation; |
|||
import io.swagger.v3.oas.annotations.Parameter; |
|||
import io.swagger.v3.oas.annotations.tags.Tag; |
|||
import org.springframework.security.access.prepost.PreAuthorize; |
|||
import org.springframework.validation.annotation.Validated; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import javax.annotation.Resource; |
|||
import javax.servlet.http.HttpServletResponse; |
|||
import javax.validation.Valid; |
|||
import java.io.IOException; |
|||
import java.util.Collection; |
|||
import java.util.List; |
|||
|
|||
import static com.win.framework.common.pojo.CommonResult.success; |
|||
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; |
|||
|
|||
@Tag(name = "管理后台 - 条件") |
|||
@RestController |
|||
@RequestMapping("/wms/condition") |
|||
@Validated |
|||
public class ConditionController { |
|||
|
|||
@Resource |
|||
private ConditionService conditionService; |
|||
|
|||
@PostMapping("/create") |
|||
@Operation(summary = "创建条件") |
|||
@PreAuthorize("@ss.hasPermission('wms:condition:create')") |
|||
public CommonResult<Long> createCondition(@Valid @RequestBody ConditionCreateReqVO createReqVO) { |
|||
return success(conditionService.createCondition(createReqVO)); |
|||
} |
|||
|
|||
@PutMapping("/update") |
|||
@Operation(summary = "更新条件") |
|||
@PreAuthorize("@ss.hasPermission('wms:condition:update')") |
|||
public CommonResult<Boolean> updateCondition(@Valid @RequestBody ConditionUpdateReqVO updateReqVO) { |
|||
conditionService.updateCondition(updateReqVO); |
|||
return success(true); |
|||
} |
|||
|
|||
@DeleteMapping("/delete") |
|||
@Operation(summary = "删除条件") |
|||
@Parameter(name = "id", description = "编号", required = true) |
|||
@PreAuthorize("@ss.hasPermission('wms:condition:delete')") |
|||
public CommonResult<Boolean> deleteCondition(@RequestParam("id") Long id) { |
|||
conditionService.deleteCondition(id); |
|||
return success(true); |
|||
} |
|||
|
|||
@GetMapping("/get") |
|||
@Operation(summary = "获得条件") |
|||
@Parameter(name = "id", description = "编号", required = true, example = "1024") |
|||
@PreAuthorize("@ss.hasPermission('wms:condition:query')") |
|||
public CommonResult<ConditionRespVO> getCondition(@RequestParam("id") Long id) { |
|||
ConditionDO condition = conditionService.getCondition(id); |
|||
return success(ConditionConvert.INSTANCE.convert(condition)); |
|||
} |
|||
|
|||
@GetMapping("/list") |
|||
@Operation(summary = "获得条件列表") |
|||
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") |
|||
@PreAuthorize("@ss.hasPermission('wms:condition:query')") |
|||
public CommonResult<List<ConditionRespVO>> getConditionList(@RequestParam("ids") Collection<Long> ids) { |
|||
List<ConditionDO> list = conditionService.getConditionList(ids); |
|||
return success(ConditionConvert.INSTANCE.convertList(list)); |
|||
} |
|||
|
|||
@GetMapping("/page") |
|||
@Operation(summary = "获得条件分页") |
|||
@PreAuthorize("@ss.hasPermission('wms:condition:query')") |
|||
public CommonResult<PageResult<ConditionRespVO>> getConditionPage(@Valid ConditionPageReqVO pageVO) { |
|||
PageResult<ConditionDO> pageResult = conditionService.getConditionPage(pageVO); |
|||
return success(ConditionConvert.INSTANCE.convertPage(pageResult)); |
|||
} |
|||
|
|||
@GetMapping("/export-excel") |
|||
@Operation(summary = "导出条件 Excel") |
|||
@PreAuthorize("@ss.hasPermission('wms:condition:export')") |
|||
@OperateLog(type = EXPORT) |
|||
public void exportConditionExcel(@Valid ConditionExportReqVO exportReqVO, |
|||
HttpServletResponse response) throws IOException { |
|||
List<ConditionDO> list = conditionService.getConditionList(exportReqVO); |
|||
// 导出 Excel
|
|||
List<ConditionExcelVO> datas = ConditionConvert.INSTANCE.convertList02(list); |
|||
ExcelUtils.write(response, "条件.xls", "数据", ConditionExcelVO.class, datas); |
|||
} |
|||
|
|||
} |
@ -0,0 +1,41 @@ |
|||
package com.win.module.wms.controller.condition.vo; |
|||
|
|||
import io.swagger.v3.oas.annotations.media.Schema; |
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotNull; |
|||
|
|||
/** |
|||
* 条件 Base VO,提供给添加、修改、详细的子 VO 使用 |
|||
* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 |
|||
*/ |
|||
@Data |
|||
public class ConditionBaseVO { |
|||
|
|||
@Schema(description = "id", example = "id") |
|||
private Long id; |
|||
|
|||
@Schema(description = "策略代码", requiredMode = Schema.RequiredMode.REQUIRED) |
|||
@NotNull(message = "策略代码不能为空") |
|||
private String strategyCode; |
|||
|
|||
@Schema(description = "规则代码", requiredMode = Schema.RequiredMode.REQUIRED) |
|||
@NotNull(message = "规则代码不能为空") |
|||
private String ruleCode; |
|||
|
|||
@Schema(description = "参数", requiredMode = Schema.RequiredMode.REQUIRED) |
|||
@NotNull(message = "参数不能为空") |
|||
private String paramCode; |
|||
|
|||
@Schema(description = "操作符", requiredMode = Schema.RequiredMode.REQUIRED) |
|||
@NotNull(message = "操作符不能为空") |
|||
private String operator; |
|||
|
|||
@Schema(description = "值", requiredMode = Schema.RequiredMode.REQUIRED) |
|||
@NotNull(message = "值不能为空") |
|||
private String value; |
|||
|
|||
@Schema(description = "条件分组") |
|||
private String groupCode; |
|||
|
|||
} |
@ -0,0 +1,12 @@ |
|||
package com.win.module.wms.controller.condition.vo; |
|||
|
|||
import lombok.*; |
|||
import io.swagger.v3.oas.annotations.media.Schema; |
|||
|
|||
@Schema(description = "管理后台 - 条件创建 Request VO") |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@ToString(callSuper = true) |
|||
public class ConditionCreateReqVO extends ConditionBaseVO { |
|||
|
|||
} |
@ -0,0 +1,39 @@ |
|||
package com.win.module.wms.controller.condition.vo; |
|||
|
|||
import io.swagger.v3.oas.annotations.media.Schema; |
|||
import lombok.*; |
|||
import java.util.*; |
|||
|
|||
import com.alibaba.excel.annotation.ExcelProperty; |
|||
import com.win.framework.excel.core.annotations.DictFormat; |
|||
import com.win.framework.excel.core.convert.DictConvert; |
|||
|
|||
|
|||
/** |
|||
* 条件 Excel VO |
|||
* |
|||
* @author 超级管理员 |
|||
*/ |
|||
@Data |
|||
public class ConditionExcelVO { |
|||
|
|||
@ExcelProperty("策略代码") |
|||
private String strategyCode; |
|||
|
|||
@ExcelProperty("规则代码") |
|||
private String ruleCode; |
|||
|
|||
@ExcelProperty("参数") |
|||
private String paramCode; |
|||
|
|||
@ExcelProperty(value = "操作符", converter = DictConvert.class) |
|||
@DictFormat("strategy_param_opeartor") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
|
|||
private String operator; |
|||
|
|||
@ExcelProperty("值") |
|||
private String value; |
|||
|
|||
@ExcelProperty("条件分组") |
|||
private String groupCode; |
|||
|
|||
} |
@ -0,0 +1,28 @@ |
|||
package com.win.module.wms.controller.condition.vo; |
|||
|
|||
import io.swagger.v3.oas.annotations.media.Schema; |
|||
import lombok.Data; |
|||
|
|||
@Schema(description = "管理后台 - 条件 Excel 导出 Request VO,参数和 ConditionPageReqVO 是一致的") |
|||
@Data |
|||
public class ConditionExportReqVO { |
|||
|
|||
@Schema(description = "策略代码") |
|||
private String strategyCode; |
|||
|
|||
@Schema(description = "规则代码") |
|||
private String ruleCode; |
|||
|
|||
@Schema(description = "参数") |
|||
private String paramCode; |
|||
|
|||
@Schema(description = "操作符") |
|||
private String operator; |
|||
|
|||
@Schema(description = "值") |
|||
private String value; |
|||
|
|||
@Schema(description = "条件分组") |
|||
private String groupCode; |
|||
|
|||
} |
@ -0,0 +1,33 @@ |
|||
package com.win.module.wms.controller.condition.vo; |
|||
|
|||
import com.win.framework.common.pojo.PageParam; |
|||
import io.swagger.v3.oas.annotations.media.Schema; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import lombok.ToString; |
|||
|
|||
@Schema(description = "管理后台 - 条件分页 Request VO") |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@ToString(callSuper = true) |
|||
public class ConditionPageReqVO extends PageParam { |
|||
|
|||
@Schema(description = "策略代码") |
|||
private String strategyCode; |
|||
|
|||
@Schema(description = "规则代码") |
|||
private String ruleCode; |
|||
|
|||
@Schema(description = "参数") |
|||
private String paramCode; |
|||
|
|||
@Schema(description = "操作符") |
|||
private String operator; |
|||
|
|||
@Schema(description = "值") |
|||
private String value; |
|||
|
|||
@Schema(description = "条件分组") |
|||
private String groupCode; |
|||
|
|||
} |
@ -0,0 +1,12 @@ |
|||
package com.win.module.wms.controller.condition.vo; |
|||
|
|||
import io.swagger.v3.oas.annotations.media.Schema; |
|||
import lombok.*; |
|||
|
|||
@Schema(description = "管理后台 - 条件 Response VO") |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@ToString(callSuper = true) |
|||
public class ConditionRespVO extends ConditionBaseVO { |
|||
|
|||
} |
@ -0,0 +1,12 @@ |
|||
package com.win.module.wms.controller.condition.vo; |
|||
|
|||
import io.swagger.v3.oas.annotations.media.Schema; |
|||
import lombok.*; |
|||
|
|||
@Schema(description = "管理后台 - 条件更新 Request VO") |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@ToString(callSuper = true) |
|||
public class ConditionUpdateReqVO extends ConditionBaseVO { |
|||
|
|||
} |
@ -0,0 +1,36 @@ |
|||
package com.win.module.wms.convert.condition; |
|||
|
|||
import com.win.framework.common.pojo.PageResult; |
|||
import com.win.module.wms.controller.condition.vo.ConditionCreateReqVO; |
|||
import com.win.module.wms.controller.condition.vo.ConditionExcelVO; |
|||
import com.win.module.wms.controller.condition.vo.ConditionRespVO; |
|||
import com.win.module.wms.controller.condition.vo.ConditionUpdateReqVO; |
|||
import com.win.module.wms.dal.dataobject.condition.ConditionDO; |
|||
import org.mapstruct.Mapper; |
|||
import org.mapstruct.factory.Mappers; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 条件 Convert |
|||
* |
|||
* @author 超级管理员 |
|||
*/ |
|||
@Mapper |
|||
public interface ConditionConvert { |
|||
|
|||
ConditionConvert INSTANCE = Mappers.getMapper(ConditionConvert.class); |
|||
|
|||
ConditionDO convert(ConditionCreateReqVO bean); |
|||
|
|||
ConditionDO convert(ConditionUpdateReqVO bean); |
|||
|
|||
ConditionRespVO convert(ConditionDO bean); |
|||
|
|||
List<ConditionRespVO> convertList(List<ConditionDO> list); |
|||
|
|||
PageResult<ConditionRespVO> convertPage(PageResult<ConditionDO> page); |
|||
|
|||
List<ConditionExcelVO> convertList02(List<ConditionDO> list); |
|||
|
|||
} |
@ -0,0 +1,54 @@ |
|||
package com.win.module.wms.dal.dataobject.condition; |
|||
|
|||
import lombok.*; |
|||
import java.util.*; |
|||
import com.baomidou.mybatisplus.annotation.*; |
|||
import com.win.framework.mybatis.core.dataobject.BaseDO; |
|||
|
|||
/** |
|||
* 条件 DO |
|||
* |
|||
* @author 超级管理员 |
|||
*/ |
|||
@TableName("strategy_condition") |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@ToString(callSuper = true) |
|||
@Builder |
|||
@NoArgsConstructor |
|||
@AllArgsConstructor |
|||
public class ConditionDO extends BaseDO { |
|||
|
|||
/** |
|||
* 数据主键 |
|||
*/ |
|||
@TableId |
|||
private Long id; |
|||
/** |
|||
* 策略代码 |
|||
*/ |
|||
private String strategyCode; |
|||
/** |
|||
* 规则代码 |
|||
*/ |
|||
private String ruleCode; |
|||
/** |
|||
* 参数 |
|||
*/ |
|||
private String paramCode; |
|||
/** |
|||
* 操作符 |
|||
* |
|||
* 枚举 {@link TODO strategy_param_opeartor 对应的类} |
|||
*/ |
|||
private String operator; |
|||
/** |
|||
* 值 |
|||
*/ |
|||
private String value; |
|||
/** |
|||
* 条件分组 |
|||
*/ |
|||
private String groupCode; |
|||
|
|||
} |
@ -0,0 +1,43 @@ |
|||
package com.win.module.wms.dal.mysql.condition; |
|||
|
|||
import java.util.*; |
|||
|
|||
import com.win.framework.common.pojo.PageResult; |
|||
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX; |
|||
import com.win.framework.mybatis.core.mapper.BaseMapperX; |
|||
import com.win.module.wms.controller.condition.vo.ConditionExportReqVO; |
|||
import com.win.module.wms.controller.condition.vo.ConditionPageReqVO; |
|||
import com.win.module.wms.dal.dataobject.condition.ConditionDO; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
|
|||
/** |
|||
* 条件 Mapper |
|||
* |
|||
* @author 超级管理员 |
|||
*/ |
|||
@Mapper |
|||
public interface ConditionMapper extends BaseMapperX<ConditionDO> { |
|||
|
|||
default PageResult<ConditionDO> selectPage(ConditionPageReqVO reqVO) { |
|||
return selectPage(reqVO, new LambdaQueryWrapperX<ConditionDO>() |
|||
.eqIfPresent(ConditionDO::getStrategyCode, reqVO.getStrategyCode()) |
|||
.eqIfPresent(ConditionDO::getRuleCode, reqVO.getRuleCode()) |
|||
.eqIfPresent(ConditionDO::getParamCode, reqVO.getParamCode()) |
|||
.eqIfPresent(ConditionDO::getOperator, reqVO.getOperator()) |
|||
.eqIfPresent(ConditionDO::getValue, reqVO.getValue()) |
|||
.eqIfPresent(ConditionDO::getGroupCode, reqVO.getGroupCode()) |
|||
.orderByDesc(ConditionDO::getId)); |
|||
} |
|||
|
|||
default List<ConditionDO> selectList(ConditionExportReqVO reqVO) { |
|||
return selectList(new LambdaQueryWrapperX<ConditionDO>() |
|||
.eqIfPresent(ConditionDO::getStrategyCode, reqVO.getStrategyCode()) |
|||
.eqIfPresent(ConditionDO::getRuleCode, reqVO.getRuleCode()) |
|||
.eqIfPresent(ConditionDO::getParamCode, reqVO.getParamCode()) |
|||
.eqIfPresent(ConditionDO::getOperator, reqVO.getOperator()) |
|||
.eqIfPresent(ConditionDO::getValue, reqVO.getValue()) |
|||
.eqIfPresent(ConditionDO::getGroupCode, reqVO.getGroupCode()) |
|||
.orderByDesc(ConditionDO::getId)); |
|||
} |
|||
|
|||
} |
@ -0,0 +1,75 @@ |
|||
package com.win.module.wms.service.condition; |
|||
|
|||
import com.win.framework.common.pojo.PageResult; |
|||
import com.win.module.wms.controller.condition.vo.ConditionCreateReqVO; |
|||
import com.win.module.wms.controller.condition.vo.ConditionExportReqVO; |
|||
import com.win.module.wms.controller.condition.vo.ConditionPageReqVO; |
|||
import com.win.module.wms.controller.condition.vo.ConditionUpdateReqVO; |
|||
import com.win.module.wms.dal.dataobject.condition.ConditionDO; |
|||
|
|||
import javax.validation.Valid; |
|||
import java.util.Collection; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 条件 Service 接口 |
|||
* |
|||
* @author 超级管理员 |
|||
*/ |
|||
public interface ConditionService { |
|||
|
|||
/** |
|||
* 创建条件 |
|||
* |
|||
* @param createReqVO 创建信息 |
|||
* @return 编号 |
|||
*/ |
|||
Long createCondition(@Valid ConditionCreateReqVO createReqVO); |
|||
|
|||
/** |
|||
* 更新条件 |
|||
* |
|||
* @param updateReqVO 更新信息 |
|||
*/ |
|||
void updateCondition(@Valid ConditionUpdateReqVO updateReqVO); |
|||
|
|||
/** |
|||
* 删除条件 |
|||
* |
|||
* @param id 编号 |
|||
*/ |
|||
void deleteCondition(Long id); |
|||
|
|||
/** |
|||
* 获得条件 |
|||
* |
|||
* @param id 编号 |
|||
* @return 条件 |
|||
*/ |
|||
ConditionDO getCondition(Long id); |
|||
|
|||
/** |
|||
* 获得条件列表 |
|||
* |
|||
* @param ids 编号 |
|||
* @return 条件列表 |
|||
*/ |
|||
List<ConditionDO> getConditionList(Collection<Long> ids); |
|||
|
|||
/** |
|||
* 获得条件分页 |
|||
* |
|||
* @param pageReqVO 分页查询 |
|||
* @return 条件分页 |
|||
*/ |
|||
PageResult<ConditionDO> getConditionPage(ConditionPageReqVO pageReqVO); |
|||
|
|||
/** |
|||
* 获得条件列表, 用于 Excel 导出 |
|||
* |
|||
* @param exportReqVO 查询条件 |
|||
* @return 条件列表 |
|||
*/ |
|||
List<ConditionDO> getConditionList(ConditionExportReqVO exportReqVO); |
|||
|
|||
} |
@ -0,0 +1,85 @@ |
|||
package com.win.module.wms.service.condition; |
|||
|
|||
import com.win.framework.common.pojo.PageResult; |
|||
import com.win.module.wms.controller.condition.vo.ConditionCreateReqVO; |
|||
import com.win.module.wms.controller.condition.vo.ConditionExportReqVO; |
|||
import com.win.module.wms.controller.condition.vo.ConditionPageReqVO; |
|||
import com.win.module.wms.controller.condition.vo.ConditionUpdateReqVO; |
|||
import com.win.module.wms.convert.condition.ConditionConvert; |
|||
import com.win.module.wms.dal.dataobject.condition.ConditionDO; |
|||
import com.win.module.wms.dal.mysql.condition.ConditionMapper; |
|||
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.win.framework.common.exception.util.ServiceExceptionUtil.exception; |
|||
import static com.win.module.wms.enums.ErrorCodeConstants.CONDITION_NOT_EXISTS; |
|||
|
|||
/** |
|||
* 条件 Service 实现类 |
|||
* |
|||
* @author 超级管理员 |
|||
*/ |
|||
@Service |
|||
@Validated |
|||
public class ConditionServiceImpl implements ConditionService { |
|||
|
|||
@Resource |
|||
private ConditionMapper conditionMapper; |
|||
|
|||
@Override |
|||
public Long createCondition(ConditionCreateReqVO createReqVO) { |
|||
// 插入
|
|||
ConditionDO condition = ConditionConvert.INSTANCE.convert(createReqVO); |
|||
conditionMapper.insert(condition); |
|||
// 返回
|
|||
return condition.getId(); |
|||
} |
|||
|
|||
@Override |
|||
public void updateCondition(ConditionUpdateReqVO updateReqVO) { |
|||
// 校验存在
|
|||
validateConditionExists(updateReqVO.getId()); |
|||
// 更新
|
|||
ConditionDO updateObj = ConditionConvert.INSTANCE.convert(updateReqVO); |
|||
conditionMapper.updateById(updateObj); |
|||
} |
|||
|
|||
@Override |
|||
public void deleteCondition(Long id) { |
|||
// 校验存在
|
|||
validateConditionExists(id); |
|||
// 删除
|
|||
conditionMapper.deleteById(id); |
|||
} |
|||
|
|||
private void validateConditionExists(Long id) { |
|||
if (conditionMapper.selectById(id) == null) { |
|||
throw exception(CONDITION_NOT_EXISTS); |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public ConditionDO getCondition(Long id) { |
|||
return conditionMapper.selectById(id); |
|||
} |
|||
|
|||
@Override |
|||
public List<ConditionDO> getConditionList(Collection<Long> ids) { |
|||
return conditionMapper.selectBatchIds(ids); |
|||
} |
|||
|
|||
@Override |
|||
public PageResult<ConditionDO> getConditionPage(ConditionPageReqVO pageReqVO) { |
|||
return conditionMapper.selectPage(pageReqVO); |
|||
} |
|||
|
|||
@Override |
|||
public List<ConditionDO> getConditionList(ConditionExportReqVO exportReqVO) { |
|||
return conditionMapper.selectList(exportReqVO); |
|||
} |
|||
|
|||
} |
@ -0,0 +1,12 @@ |
|||
<?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.win.module.wms.dal.mysql.condition.ConditionMapper"> |
|||
|
|||
<!-- |
|||
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。 |
|||
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。 |
|||
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。 |
|||
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ |
|||
--> |
|||
|
|||
</mapper> |
Loading…
Reference in new issue