package com.tievd.cube.modules.system.controller; import cn.hutool.core.collection.ListUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.tievd.cube.commons.base.CubeController; import com.tievd.cube.commons.mybatisplus.QueryGenerator; import com.tievd.cube.commons.annotations.AutoLog; import com.tievd.cube.commons.annotations.DictMethod; import com.tievd.cube.commons.annotations.PermissionData; import com.tievd.cube.commons.base.Result; import com.tievd.cube.modules.system.entity.SysTenant; import com.tievd.cube.modules.system.service.ISysTenantService; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.util.Arrays; import java.util.List; /** * 多租户 */ @Slf4j @Tag(name = "多租户相关接口") @RestController @RequestMapping("/sys/tenant") public class SysTenantController extends CubeController { /** * 分页列表查询 * * @param sysTenant 查询参数 * @param pageNo 页码 * @param pageSize 每页数量 */ @DictMethod @GetMapping("/list") @PermissionData("system/TenantList") public Result> queryPageList(SysTenant sysTenant, @RequestParam(defaultValue = "1") Integer pageNo, @RequestParam(defaultValue = "10") Integer pageSize, HttpServletRequest req) { QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(sysTenant, req.getParameterMap()); Page page = new Page<>(pageNo, pageSize); IPage pageList = service.page(page, queryWrapper); return Result.ok(pageList); } /** * 新增 * * @param sysTenant 新增参数 */ @AutoLog("租户管理-新增") @PostMapping("/add") public Result add(@RequestBody SysTenant sysTenant) { if (service.getById(sysTenant.getId()) != null) { return Result.error("该编号已存在!"); } service.save(sysTenant); return Result.ok(); } /** * 更新 * * @param tenant 更新参数 */ @AutoLog("租户管理-更新") @PutMapping("/edit") public Result edit(@RequestBody SysTenant tenant) { service.updateById(tenant); return Result.ok(); } /** * 通过id删除 * * @param id 租户id */ @AutoLog("租户管理-通过id删除") @DeleteMapping("/delete") public Result delete(@RequestParam String id) { service.removeById(id); return Result.ok(); } /** * 批量删除 * * @param ids 租户id(多个逗号分隔) */ @AutoLog("租户管理-批量删除") @DeleteMapping("/deleteBatch") public Result deleteBatch(@RequestParam String ids) { if (StrUtil.isEmpty(ids)) { return Result.error("未选中租户!"); } List list = Arrays.asList(ids.split(",")); service.removeByIds(list); return Result.ok(); } /** * 通过id查询 * * @param id 租户id */ @DictMethod @GetMapping("/queryById") public Result queryById(@RequestParam String id) { SysTenant sysTenant = service.getById(id); if (sysTenant == null) { return Result.error("未找到对应实体!"); } return Result.ok(sysTenant); } /** * 查询有效的租户数据 * * @param ids 租户id(多个逗号分隔) */ @GetMapping("/queryList") public Result> queryList(@RequestParam(required = false) String ids) { LambdaQueryWrapper query = new LambdaQueryWrapper<>(); query.eq(SysTenant::getStatus, 1); if (StrUtil.isNotEmpty(ids)) { query.in(SysTenant::getId, ListUtil.toList(ids.split(","))); } //此处查询忽略时间条件 List list = service.list(query); return Result.ok(list); } }