From f59419de626b095cc04a7d5d8dd99b7b962013fb Mon Sep 17 00:00:00 2001 From: super_liu <396572590@qq.com> Date: Thu, 8 Jul 2021 14:00:51 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=95=B0=E6=8D=AE=E5=AD=97=E5=85=B8=20?= =?UTF-8?q?=E6=A0=91=E5=BD=A2=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SarMenuStandardController.java | 76 ++++++++++ .../dao/SarMenuStandardDao.java | 17 +++ .../entity/SarMenuStandard.java | 107 ++++++++++++++ .../service/ISarMenuStandardService.java | 51 +++++++ .../impl/SarMenuStandardServiceImpl.java | 137 ++++++++++++++++++ .../sarMenuStandard/SarMenuStandardMapper.xml | 5 + 6 files changed, 393 insertions(+) create mode 100644 adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenuStandard/controller/SarMenuStandardController.java create mode 100644 adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenuStandard/dao/SarMenuStandardDao.java create mode 100644 adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenuStandard/entity/SarMenuStandard.java create mode 100644 adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenuStandard/service/ISarMenuStandardService.java create mode 100644 adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenuStandard/service/impl/SarMenuStandardServiceImpl.java create mode 100644 adc-da-slrs/src/main/resources/mybatis/mapper/sarMenuStandard/SarMenuStandardMapper.xml diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenuStandard/controller/SarMenuStandardController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenuStandard/controller/SarMenuStandardController.java new file mode 100644 index 00000000..34ebbbb5 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenuStandard/controller/SarMenuStandardController.java @@ -0,0 +1,76 @@ +package com.adc.da.slrs.sarMenuStandard.controller; + + +import com.adc.da.http.ResponseMessage; +import com.adc.da.http.Result; +import com.adc.da.slrs.sarMenu.entity.SarMenu; +import com.adc.da.slrs.sarMenu.service.ISarMenuService; +import com.adc.da.slrs.sarMenuStandard.service.ISarMenuStandardService; +import io.swagger.annotations.ApiOperation; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import com.adc.da.slrs.sarMenuStandard.entity.SarMenuStandard; +import io.swagger.annotations.Api; +import com.adc.da.base.web.BaseController; + +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +/** +*

+ * 前端控制器 + *

+* +* @author super_liu +* @since 2021-07-07 +*/ +@RestController +@Api(tags = "福田标准法规--标准法规库-菜单标准体系") +@RequestMapping("/${restPath}/lawss/sarMenuStandard") +public class SarMenuStandardController extends BaseController { + + @Autowired + private ISarMenuStandardService iSarMenuStandardService; + + @ApiOperation("查询所有菜单") + @GetMapping + public ResponseMessage> getAll(@RequestParam String dicId){ + List sarMenus=iSarMenuStandardService.getAll(dicId); + return Result.success(sarMenus); + } + + @ApiOperation("根据ID查询菜单") + @GetMapping("/getSarMenuStandardById") + public ResponseMessage getSarMenuStandardById(@RequestParam String menuId){ + SarMenuStandard sarMenus = iSarMenuStandardService.getById(menuId); + if(sarMenus != null && sarMenus.getParentIds() != null && StringUtils.isNotBlank(sarMenus.getParentIds())){ + List menuStandards = iSarMenuStandardService.getMenuByIds(Arrays.asList(sarMenus.getParentIds().split(","))); + if(!menuStandards.isEmpty()){ + String parentIdsName = menuStandards.stream().map(SarMenuStandard::getMenuName).collect(Collectors.joining(",")); + sarMenus.setParentIdsName(parentIdsName); + } + } + return Result.success(sarMenus); + } + + @ApiOperation("添加菜单") + @PostMapping("/add") + public ResponseMessage addMenu(@RequestBody SarMenuStandard sarMenu){ + return iSarMenuStandardService.addMenu(sarMenu); + } + + @ApiOperation("编辑菜单") + @PutMapping + public ResponseMessage updateMenu(@Validated(SarMenuStandard.update.class) @RequestBody SarMenuStandard sarMenu){ + return iSarMenuStandardService.updateMenu(sarMenu); + } + + @ApiOperation("删除菜单") + @DeleteMapping + public ResponseMessage delMenu(@RequestParam String menuId){ + return iSarMenuStandardService.delMenu(menuId); + } +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenuStandard/dao/SarMenuStandardDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenuStandard/dao/SarMenuStandardDao.java new file mode 100644 index 00000000..838bb7f5 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenuStandard/dao/SarMenuStandardDao.java @@ -0,0 +1,17 @@ +package com.adc.da.slrs.sarMenuStandard.dao; + +import com.adc.da.slrs.sarMenuStandard.entity.SarMenuStandard; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springframework.web.bind.annotation.ResponseBody; + +/** + *

+ * Mapper 接口 + *

+ * + * @author super_liu + * @since 2021-07-07 + */ +public interface SarMenuStandardDao extends BaseMapper { + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenuStandard/entity/SarMenuStandard.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenuStandard/entity/SarMenuStandard.java new file mode 100644 index 00000000..cec9006c --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenuStandard/entity/SarMenuStandard.java @@ -0,0 +1,107 @@ +package com.adc.da.slrs.sarMenuStandard.entity; + +import com.adc.da.base.entity.BaseEntity; +import com.adc.da.utils.treetool.annotation.TreeNodeName; +import com.adc.da.utils.treetool.annotation.TreeNodeParentId; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalDateTime; +import java.util.Date; +import java.util.List; + +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; + +/** + *

+ * + *

+ * + * @author super_liu + * @since 2021-07-07 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +@ApiModel(value="SarMenuStandard对象", description="") +public class SarMenuStandard extends BaseEntity { + public interface update{ + } + + private static final long serialVersionUID = 1L; + + @NotNull(message = "id不能为空",groups = {update.class}) + @ApiModelProperty(value = "主键") + @TableId(value = "ID",type = IdType.UUID) + private String id; + + @ApiModelProperty(value = "标准法规划分") + @TableField("SOR_DIVIDE") + private String sorDivide; + + @TreeNodeName + @ApiModelProperty(value = "目录名称") + @TableField("MENU_NAME") + private String menuName; + + @TreeNodeParentId + @ApiModelProperty(value = "父级ID") + @TableField("PARENT_ID") + private String parentId; + + @ApiModelProperty(value = "父级ID集合") + @TableField("PARENT_IDS") + private String parentIds; + + @ApiModelProperty(value = "排序序号") + @TableField("DISPLAY_SEQ") + private Integer displaySeq; + + @ApiModelProperty(value = "路径") + @TableField("HREF") + private String href; + + @ApiModelProperty(value = "是否有效") + @TableField("VALID_FLAG") + private Integer validFlag; + + @ApiModelProperty(value = "创建时间") + @TableField("CREATION_TIME") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date creationTime; + + @ApiModelProperty(value = "修改时间") + @TableField("MODIFY_TIME") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date modifyTime; + + @ApiModelProperty(value = "备注") + @TableField("REMARKS") + private String remarks; + + @ApiModelProperty(value = "数据字典ID") + @TableField("DIC_ID") + private String dicId; + + @ApiModelProperty(value = "子菜单") + @TableField(exist = false) + private List children; + + @TableField(exist=false) + private List roleIds; + + @TableField(exist=false) + private List childMenuIds; + + @TableField(exist=false) + private String parentIdsName; + + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenuStandard/service/ISarMenuStandardService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenuStandard/service/ISarMenuStandardService.java new file mode 100644 index 00000000..add1f398 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenuStandard/service/ISarMenuStandardService.java @@ -0,0 +1,51 @@ +package com.adc.da.slrs.sarMenuStandard.service; + +import com.adc.da.http.ResponseMessage; +import com.adc.da.slrs.sarMenuStandard.entity.SarMenuStandard; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author super_liu + * @since 2021-07-07 + */ +public interface ISarMenuStandardService extends IService { + + /** + * 查询所有菜单 + */ + List getAll(String dicId); + + /** + * 添加菜单 + * @param sarMenu:菜单信息 + * @return ResponseMessage + */ + ResponseMessage addMenu(SarMenuStandard sarMenu); + + /** + * 编辑菜单 + * @param sarMenu:菜单信息 + * @return ResponseMessage + */ + ResponseMessage updateMenu(SarMenuStandard sarMenu); + + /** + * 删除菜单 + * @param menuId :菜单ID + * @return ResponseMessage + */ + ResponseMessage delMenu(String menuId); + + /** + * 通过Ids查询menu + * @param menuIds :菜单Ids + * @return List + */ + List getMenuByIds(List menuIds); +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenuStandard/service/impl/SarMenuStandardServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenuStandard/service/impl/SarMenuStandardServiceImpl.java new file mode 100644 index 00000000..a544f8db --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenuStandard/service/impl/SarMenuStandardServiceImpl.java @@ -0,0 +1,137 @@ +package com.adc.da.slrs.sarMenuStandard.service.impl; + +import com.adc.da.http.ResponseMessage; +import com.adc.da.http.Result; +import com.adc.da.slrs.sarMenu.entity.SarMenu; +import com.adc.da.slrs.sarMenuStandard.entity.SarMenuStandard; +import com.adc.da.slrs.sarMenuStandard.dao.SarMenuStandardDao; +import com.adc.da.slrs.sarMenuStandard.service.ISarMenuStandardService; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author super_liu + * @since 2021-07-07 + */ +@Service +public class SarMenuStandardServiceImpl extends ServiceImpl implements ISarMenuStandardService { + + @Autowired + private SarMenuStandardDao dao; + + /** + * 查询所有菜单 + */ + @Override + public List getAll(String dicId) { + QueryWrapper sarMenuQueryWrapper=new QueryWrapper<>(); + sarMenuQueryWrapper.eq("DIC_ID",dicId); + sarMenuQueryWrapper.orderByAsc("DISPLAY_SEQ"); + sarMenuQueryWrapper.isNull("PARENT_ID"); + List sarMenus=dao.selectList(sarMenuQueryWrapper); + for(SarMenuStandard sarMenu:sarMenus){ + sarMenu.setChildren(recursionGetChildren((sarMenu))); + } + return sarMenus; + } + + /** + * 添加菜单 + * @param sarMenu:菜单信息 + * @return ResponseMessage + */ + @Override + public ResponseMessage addMenu(SarMenuStandard sarMenu) { + SarMenuStandard save = new SarMenuStandard(); + if(sarMenu.getParentId() != null && StringUtils.isNotBlank(sarMenu.getParentId())){ + SarMenuStandard parent=dao.selectById(sarMenu.getParentId()); + if(parent==null){ + return Result.error("该父菜单不存在"); + } + } + sarMenu.setCreationTime(new Date()); + sarMenu.setModifyTime(new Date()); + dao.insert(sarMenu); + return Result.success(); + } + + /** + * 编辑菜单 + * @param sarMenu:菜单信息 + * @return ResponseMessage + */ + @Override + public ResponseMessage updateMenu(SarMenuStandard sarMenu) { + SarMenuStandard oldMenu=dao.selectById(sarMenu.getId()); + if(oldMenu==null){ + return Result.error("该菜单不存在"); + } + if(sarMenu.getParentId() != null && StringUtils.isNotBlank(sarMenu.getParentId())){ + SarMenuStandard parent=dao.selectById(sarMenu.getParentId()); + if(parent==null){ + return Result.error("父节点不存在"); + } + } + dao.updateById(sarMenu); + return Result.success(); + } + + /** + * 删除菜单 + * @param menuId :菜单ID + * @return ResponseMessage + */ + @Override + public ResponseMessage delMenu(String menuId) { + QueryWrapper sarMenuQueryWrapper=new QueryWrapper<>(); + sarMenuQueryWrapper.eq("parent_id",menuId); + List children=dao.selectList(sarMenuQueryWrapper); + if(children !=null && !children.isEmpty()){ + return Result.error("该菜单有子节点,无法删除"); + } + dao.deleteById(menuId); + return Result.success(); + } + + /** + * 通过Ids查询menu + * @param menuIds :菜单Ids + * @return List + */ + @Override + public List getMenuByIds(List menuIds) { + if(menuIds!=null&&menuIds.size()>0){ + QueryWrapper sarMenuQueryWrapper=new QueryWrapper<>(); + sarMenuQueryWrapper.in("id",menuIds); + return dao.selectList(sarMenuQueryWrapper); + } + return new ArrayList<>(); + } + + /** + * 递归调用获取子节点 + * @param parent:父节点 + * @return List + */ + private List recursionGetChildren(SarMenuStandard parent){ + QueryWrapper sarMenuQueryWrapper=new QueryWrapper<>(); + sarMenuQueryWrapper.orderByAsc("DISPLAY_SEQ"); + sarMenuQueryWrapper.eq("PARENT_ID",parent.getId()); + List children=dao.selectList(sarMenuQueryWrapper); + for(SarMenuStandard sarMenu:children){ + sarMenu.setChildren(recursionGetChildren((sarMenu))); + } + return children; + } +} diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarMenuStandard/SarMenuStandardMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarMenuStandard/SarMenuStandardMapper.xml new file mode 100644 index 00000000..4f4bb0b0 --- /dev/null +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarMenuStandard/SarMenuStandardMapper.xml @@ -0,0 +1,5 @@ + + + + +