package com.dg.core.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.dg.core.ResultData; import com.dg.core.annotation.Authorization; import com.dg.core.db.gen.entity.ClassifyAdministration; import com.dg.core.db.gen.entity.OrganizationChartEntity; import com.dg.core.db.gen.entity.TransactionEvent; import com.dg.core.service.IClassifyAdministrationService; import com.dg.core.service.ITransactionEventService; import com.dg.core.util.TableDataInfo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.Assert; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; /** * 分类管理 */ @Api(tags = {"分类管理接口"}) @RestController @RequestMapping("/classify") public class ClassifyAdministrationController extends BaseController { @Autowired(required = true) IClassifyAdministrationService iClassifyAdministrationService; @Autowired(required = true) ITransactionEventService iTransactionEventService; /** * 获取管理菜单列表 * @return */ @ApiOperation(value = "获取管理菜单列表(无分页)",response = ClassifyAdministration.class) @GetMapping("/getList") @Authorization public TableDataInfo selectConfigList(@RequestParam(value = "classifyGrade",required = false) String classifyGrade) { int num=iClassifyAdministrationService.countNum("",classifyGrade); return getDataTable(iClassifyAdministrationService.selectConfigList("",classifyGrade),num); } /** * 获取管理菜单列表(已分级) * @return */ @ApiOperation(value = " 获取管理菜单列表(已分级)",response = ClassifyAdministration.class) @GetMapping("/getListByParentId") public TableDataInfo selectConfigListByParentId(@RequestParam(value = "pageNum",required = false) Integer pageNum, @RequestParam(value = "pageSize",required = false) Integer pageSize, @RequestParam(value = "parentId",required = false) String parentId, @RequestParam(value = "departmentId",required = false) Integer departmentId){ Assert.notNull(pageNum, "pageNum can not be empty"); Assert.notNull(pageSize, "pageSize can not be empty"); int num=iClassifyAdministrationService.countNum("",null); Page pageParam = new Page<>(pageNum,pageSize); return getDataTable(iClassifyAdministrationService.selectRootList(pageParam,pageSize,parentId,departmentId),num); } /** * 获取管理菜单列表 * @return */ @ApiOperation(value = "获取管理菜单列表",response = ClassifyAdministration.class) @GetMapping("/getListPage") @Authorization public TableDataInfo selectConfigList(@RequestParam(value = "pageNum",required = false) Integer pageNum, @RequestParam(value = "pageSize",required = false) Integer pageSize, @RequestParam(value = "name",required = false) String name, @RequestParam(value = "classifyGrade",required = false) String classifyGrade) { Assert.notNull(pageNum, "pageNum can not be empty"); Assert.notNull(pageSize, "pageSize can not be empty"); Page pageParam = new Page<>(pageNum,pageSize); List list = iClassifyAdministrationService.selectConfigList(pageParam,pageSize,name,classifyGrade); int num=iClassifyAdministrationService.countNum(name,classifyGrade); return getDataTable(list,num); } /** * 新增分类 * @param entity * @return */ @ApiOperation(value = "新增分类",response = ClassifyAdministration.class) @PostMapping("/add") @Authorization public ResultData insertConfig(@RequestBody ClassifyAdministration entity) { Assert.notNull(entity, "参数不能为空"); Assert.notNull(entity.getClassifyName(), "分类名称不能为空"); Assert.notNull(entity.getClassifyGrade(), "分类等级不能为空"); if(StringUtils.equals(entity.getClassifyGrade(),"2")) { Assert.notNull(entity.getParentId(), "上级分类不能为空"); } return toAjax(iClassifyAdministrationService.insertConfig(entity)); } /** * 更新分类 * @param entity * @return */ @ApiOperation("编辑分类") @PostMapping("/update") @Authorization public ResultData updateConfig(@RequestBody ClassifyAdministration entity) { return toAjax(iClassifyAdministrationService.updateConfig(entity)); } /** * 删除分类 * @param Id * @return */ @ApiOperation("删除分类") @DeleteMapping("/delete/{Id}") @Authorization public ResultData deleteConfigById(@PathVariable("Id") String Id) { if(StringUtils.isEmpty(Id)) { return ResultData.error("id 不能为空"); } /** * 根据上级id查询子分类 * @param parentId * @return */ List list=iClassifyAdministrationService.selectParent(Id); if(list!=null && list.size()>0) { return ResultData.error("请先删除其下的二级分类"); } List listIds=iTransactionEventService.selectclassifyId(Id); if(listIds!=null && listIds.size()>0) { return ResultData.error("分类下有办事指南!不能删除"); } return toAjax(iClassifyAdministrationService.deleteConfigById(Id)); } /** * 获取分类根据id 如果是二级id则获取的是办事指南 * @return */ @ApiOperation("获取分类根据id 如果是二级id则获取的是办事指南,不传参默认是0") @GetMapping("/queryListById") ResultData queryListById(@RequestParam(value = "id",required = false) Integer id){ if(id==null) id=0; return iClassifyAdministrationService.queryListById(id); } /** * 树状分类选择列表 * @return */ @ApiOperation("树状分类选择列表") @GetMapping("/getClassifyList") public TableDataInfo getClassifyList() { List list=iClassifyAdministrationService.selectConfigList("","1"); for(ClassifyAdministration entity:list) { entity.setClassifyAdministrationEntityList(iClassifyAdministrationService.selectParentData(entity.getId()+"")); } return getDataTable(list); } }