package cn.gistack.sm.sjztmd.controller; import cn.gistack.sm.exam.entity.ExamPlan; import cn.gistack.sm.sjztmd.entity.AttAdBase; import cn.gistack.sm.sjztmd.service.IAttAdBaseService; import cn.gistack.sm.sjztmd.vo.AttAdBaseVO; import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.core.tool.node.ForestNodeMerger; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import springfox.documentation.annotations.ApiIgnore; import java.util.List; import java.util.Map; /** * @ClassName AttAdBaseController * @Description TODO * @Author aix * @Date 2023/4/21 20:09 * @Version 1.0 */ @Slf4j @Api(tags = "中台行政区划") @RestController @RequestMapping("/sjztmd/attad") @AllArgsConstructor public class AttAdBaseController extends BladeController { private final IAttAdBaseService attAdBaseService; @ApiOperation(value = "中台行政区划-分页列表查询", notes = "中台行政区划-分页列表查询") @GetMapping(value = "/list") public R queryPageList(AttAdBase attAdBase, Query query) { IPage pageList = attAdBaseService.page(Condition.getPage(query), Condition.getQueryWrapper(attAdBase)); return R.data(pageList); } @GetMapping("/select") @ApiImplicitParams({ @ApiImplicitParam(name = "code", value = "区划编号", paramType = "query", dataType = "string"), @ApiImplicitParam(name = "name", value = "区划名称", paramType = "query", dataType = "string") }) @ApiOperation(value = "加载树列表", notes = "传入code") public R> select(String parentCode, @ApiIgnore @RequestParam Map obj) { String code = obj.get("code").toString(); if (code.substring(0,4).indexOf("00") > -1) { obj.put("code",code.substring(0,2)); } else if (code.substring(0,6).indexOf("00") > -1) { obj.put("code",code.substring(0,4)); } List list = attAdBaseService.lazyTree(parentCode, obj); return R.data(listNodeLazyVO(list)); } /** * 懒加载列表 懒加载待优化 */ @GetMapping("/lazy-tree") @ApiImplicitParams({ @ApiImplicitParam(name = "code", value = "区划编号", paramType = "query", dataType = "string"), @ApiImplicitParam(name = "name", value = "区划名称", paramType = "query", dataType = "string") }) @ApiOperation(value = "懒加载列表", notes = "传入code") public R> lazyTree(String parentCode, @ApiIgnore @RequestParam Map obj) { List list = attAdBaseService.lazyTree(parentCode, obj); return R.data(listNodeLazyVO(list)); } private List listNodeLazyVO(List list) { return ForestNodeMerger.merge(list); } }