dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/SysRegionController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/SysRegion.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/bo/SysRegionBo.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/SysRegionVo.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/SysRegionMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/ISysRegionService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/SysRegionServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
dujy-modules/dujy-demo/src/main/resources/mapper/demo/SysRegionMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/SysRegionController.java
New file @@ -0,0 +1,105 @@ package org.dromara.demo.controller; import java.util.List; import lombok.RequiredArgsConstructor; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.*; import cn.dev33.satoken.annotation.SaCheckPermission; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; import org.dromara.common.idempotent.annotation.RepeatSubmit; import org.dromara.common.log.annotation.Log; import org.dromara.common.web.core.BaseController; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.core.domain.R; import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.EditGroup; import org.dromara.common.log.enums.BusinessType; import org.dromara.common.excel.utils.ExcelUtil; import org.dromara.demo.domain.vo.SysRegionVo; import org.dromara.demo.domain.bo.SysRegionBo; import org.dromara.demo.service.ISysRegionService; import org.dromara.common.mybatis.core.page.TableDataInfo; /** * 地区 * * @author gonghl * @date 2024-03-07 */ @Validated @RequiredArgsConstructor @RestController @RequestMapping("/demo/region") public class SysRegionController extends BaseController { private final ISysRegionService sysRegionService; /** * 查询地区列表 */ @SaCheckPermission("demo:region:list") @GetMapping("/list") public TableDataInfo<SysRegionVo> list(SysRegionBo bo, PageQuery pageQuery) { return sysRegionService.queryPageList(bo, pageQuery); } /** * 导出地区列表 */ @SaCheckPermission("demo:region:export") @Log(title = "地区", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(SysRegionBo bo, HttpServletResponse response) { List<SysRegionVo> list = sysRegionService.queryList(bo); ExcelUtil.exportExcel(list, "地区", SysRegionVo.class, response); } /** * 获取地区详细信息 * * @param id 主键 */ @SaCheckPermission("demo:region:query") @GetMapping("/{id}") public R<SysRegionVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable String id) { return R.ok(sysRegionService.queryById(id)); } /** * 新增地区 */ @SaCheckPermission("demo:region:add") @Log(title = "地区", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() public R<Void> add(@Validated(AddGroup.class) @RequestBody SysRegionBo bo) { return toAjax(sysRegionService.insertByBo(bo)); } /** * 修改地区 */ @SaCheckPermission("demo:region:edit") @Log(title = "地区", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() public R<Void> edit(@Validated(EditGroup.class) @RequestBody SysRegionBo bo) { return toAjax(sysRegionService.updateByBo(bo)); } /** * 删除地区 * * @param ids 主键串 */ @SaCheckPermission("demo:region:remove") @Log(title = "地区", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable String[] ids) { return toAjax(sysRegionService.deleteWithValidByIds(List.of(ids), true)); } } dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/SysRegion.java
New file @@ -0,0 +1,49 @@ package org.dromara.demo.domain; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.io.Serial; /** * 地区对象 sys_region * * @author gonghl * @date 2024-03-07 */ @Data @TableName("sys_region") public class SysRegion { @Serial private static final long serialVersionUID = 1L; /** * */ @TableId(value = "id") private String id; /** * 地区编码 */ private Long code; /** * 父级地区 */ private Long parentCode; /** * 地区名称 */ private String name; /** * 地区级别 */ private String level; } dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/bo/SysRegionBo.java
New file @@ -0,0 +1,54 @@ package org.dromara.demo.domain.bo; import org.dromara.demo.domain.SysRegion; import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.EditGroup; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; /** * 地区业务对象 sys_region * * @author gonghl * @date 2024-03-07 */ @Data @EqualsAndHashCode(callSuper = true) @AutoMapper(target = SysRegion.class, reverseConvertGenerate = false) public class SysRegionBo extends BaseEntity { /** * */ @NotBlank(message = "不能为空", groups = { EditGroup.class }) private String id; /** * 地区编码 */ @NotNull(message = "地区编码不能为空", groups = { AddGroup.class, EditGroup.class }) private Long code; /** * 父级地区 */ @NotNull(message = "父级地区不能为空", groups = { AddGroup.class, EditGroup.class }) private Long parentCode; /** * 地区名称 */ @NotBlank(message = "地区名称不能为空", groups = { AddGroup.class, EditGroup.class }) private String name; /** * 地区级别 */ @NotBlank(message = "地区级别不能为空", groups = { AddGroup.class, EditGroup.class }) private String level; } dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/SysRegionVo.java
New file @@ -0,0 +1,62 @@ package org.dromara.demo.domain.vo; import org.dromara.demo.domain.SysRegion; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import org.dromara.common.excel.annotation.ExcelDictFormat; import org.dromara.common.excel.convert.ExcelDictConvert; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import java.io.Serial; import java.io.Serializable; import java.util.Date; /** * 地区视图对象 sys_region * * @author gonghl * @date 2024-03-07 */ @Data @ExcelIgnoreUnannotated @AutoMapper(target = SysRegion.class) public class SysRegionVo implements Serializable { @Serial private static final long serialVersionUID = 1L; /** * */ @ExcelProperty(value = "") private String id; /** * 地区编码 */ @ExcelProperty(value = "地区编码") private Long code; /** * 父级地区 */ @ExcelProperty(value = "父级地区") private Long parentCode; /** * 地区名称 */ @ExcelProperty(value = "地区名称") private String name; /** * 地区级别 */ @ExcelProperty(value = "地区级别") private String level; } dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/SysRegionMapper.java
New file @@ -0,0 +1,15 @@ package org.dromara.demo.mapper; import org.dromara.demo.domain.SysRegion; import org.dromara.demo.domain.vo.SysRegionVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; /** * 地区Mapper接口 * * @author gonghl * @date 2024-03-07 */ public interface SysRegionMapper extends BaseMapperPlus<SysRegion, SysRegionVo> { } dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/ISysRegionService.java
New file @@ -0,0 +1,49 @@ package org.dromara.demo.service; import org.dromara.demo.domain.SysRegion; import org.dromara.demo.domain.vo.SysRegionVo; import org.dromara.demo.domain.bo.SysRegionBo; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; import java.util.Collection; import java.util.List; /** * 地区Service接口 * * @author gonghl * @date 2024-03-07 */ public interface ISysRegionService { /** * 查询地区 */ SysRegionVo queryById(String id); /** * 查询地区列表 */ TableDataInfo<SysRegionVo> queryPageList(SysRegionBo bo, PageQuery pageQuery); /** * 查询地区列表 */ List<SysRegionVo> queryList(SysRegionBo bo); /** * 新增地区 */ Boolean insertByBo(SysRegionBo bo); /** * 修改地区 */ Boolean updateByBo(SysRegionBo bo); /** * 校验并批量删除地区信息 */ Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid); } dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/SysRegionServiceImpl.java
New file @@ -0,0 +1,112 @@ package org.dromara.demo.service.impl; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.dromara.demo.domain.bo.SysRegionBo; import org.dromara.demo.domain.vo.SysRegionVo; import org.dromara.demo.domain.SysRegion; import org.dromara.demo.mapper.SysRegionMapper; import org.dromara.demo.service.ISysRegionService; import java.util.List; import java.util.Map; import java.util.Collection; /** * 地区Service业务层处理 * * @author gonghl * @date 2024-03-07 */ @RequiredArgsConstructor @Service public class SysRegionServiceImpl implements ISysRegionService { private final SysRegionMapper baseMapper; /** * 查询地区 */ @Override public SysRegionVo queryById(String id){ return baseMapper.selectVoById(id); } /** * 查询地区列表 */ @Override public TableDataInfo<SysRegionVo> queryPageList(SysRegionBo bo, PageQuery pageQuery) { LambdaQueryWrapper<SysRegion> lqw = buildQueryWrapper(bo); Page<SysRegionVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); return TableDataInfo.build(result); } /** * 查询地区列表 */ @Override public List<SysRegionVo> queryList(SysRegionBo bo) { LambdaQueryWrapper<SysRegion> lqw = buildQueryWrapper(bo); return baseMapper.selectVoList(lqw); } private LambdaQueryWrapper<SysRegion> buildQueryWrapper(SysRegionBo bo) { Map<String, Object> params = bo.getParams(); LambdaQueryWrapper<SysRegion> lqw = Wrappers.lambdaQuery(); lqw.eq(bo.getCode() != null, SysRegion::getCode, bo.getCode()); lqw.eq(bo.getParentCode() != null, SysRegion::getParentCode, bo.getParentCode()); lqw.like(StringUtils.isNotBlank(bo.getName()), SysRegion::getName, bo.getName()); lqw.eq(StringUtils.isNotBlank(bo.getLevel()), SysRegion::getLevel, bo.getLevel()); return lqw; } /** * 新增地区 */ @Override public Boolean insertByBo(SysRegionBo bo) { SysRegion add = MapstructUtils.convert(bo, SysRegion.class); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setId(add.getId()); } return flag; } /** * 修改地区 */ @Override public Boolean updateByBo(SysRegionBo bo) { SysRegion update = MapstructUtils.convert(bo, SysRegion.class); validEntityBeforeSave(update); return baseMapper.updateById(update) > 0; } /** * 保存前的数据校验 */ private void validEntityBeforeSave(SysRegion entity){ //TODO 做一些数据校验,如唯一约束 } /** * 批量删除地区 */ @Override public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) { if(isValid){ //TODO 做一些业务上的校验,判断是否需要校验 } return baseMapper.deleteBatchIds(ids) > 0; } } dujy-modules/dujy-demo/src/main/resources/mapper/demo/SysRegionMapper.xml
New file @@ -0,0 +1,7 @@ <?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="org.dromara.demo.mapper.SysRegionMapper"> </mapper>