package org.jeecg.modules.system.controller; 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 lombok.extern.slf4j.Slf4j; import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.PermissionData; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.system.entity.SysTenant; import org.jeecg.modules.system.service.ISysTenantService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; import java.util.List; /** * 租户配置信息 */ @Slf4j @RestController @RequestMapping("/sys/tenant") public class SysTenantController { @Autowired private ISysTenantService sysTenantService; /** * 获取列表数据 * @param sysTenant * @param pageNo * @param pageSize * @param req * @return */ @PermissionData(pageComponent = "system/TenantList") @RequestMapping(value = "/list", method = RequestMethod.GET) public Result> queryPageList(SysTenant sysTenant,@RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,HttpServletRequest req) { Result> result = new Result>(); QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(sysTenant, req.getParameterMap()); Page page = new Page(pageNo, pageSize); IPage pageList = sysTenantService.page(page, queryWrapper); result.setSuccess(true); result.setResult(pageList); return result; } /** * 添加 * @param * @return */ @RequestMapping(value = "/add", method = RequestMethod.POST) public Result add(@RequestBody SysTenant sysTenant) { Result result = new Result(); if(sysTenantService.getById(sysTenant.getId())!=null){ return result.error500("该编号已存在!"); } try { sysTenantService.save(sysTenant); result.success("添加成功!"); } catch (Exception e) { log.error(e.getMessage(), e); result.error500("操作失败"); } return result; } /** * 编辑 * @param * @return */ @RequestMapping(value = "/edit", method = RequestMethod.POST) public Result edit(@RequestBody SysTenant tenant) { Result result = new Result(); SysTenant sysTenant = sysTenantService.getById(tenant.getId()); if(sysTenant==null) { result.error500("未找到对应实体"); }else { boolean ok = sysTenantService.updateById(tenant); if(ok) { result.success("修改成功!"); } } return result; } /** * 通过id删除 * @param id * @return */ @RequestMapping(value = "/delete", method = RequestMethod.POST) public Result delete(@RequestParam(name="id",required=true) String id) { sysTenantService.removeTenantById(id); return Result.ok("删除成功"); } /** * 批量删除 * @param ids * @return */ @RequestMapping(value = "/deleteBatch", method = RequestMethod.POST) public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { Result result = new Result<>(); if(oConvertUtils.isEmpty(ids)) { result.error500("未选中租户!"); }else { String[] ls = ids.split(","); // 过滤掉已被引用的租户 List idList = new ArrayList<>(); for (String id : ls) { int userCount = sysTenantService.countUserLinkTenant(id); if (userCount == 0) { idList.add(id); } } if (idList.size() > 0) { sysTenantService.removeByIds(idList); if (ls.length == idList.size()) { result.success("删除成功!"); } else { result.success("部分删除成功!(被引用的租户无法删除)"); } }else { result.error500("选择的租户都已被引用,无法删除!"); } } return result; } /** * 通过id查询 * @param id * @return */ @RequestMapping(value = "/queryById", method = RequestMethod.GET) public Result queryById(@RequestParam(name="id",required=true) String id) { Result result = new Result(); SysTenant sysTenant = sysTenantService.getById(id); if(sysTenant==null) { result.error500("未找到对应实体"); }else { result.setResult(sysTenant); result.setSuccess(true); } return result; } /** * 查询有效的 租户数据 * @return */ @RequestMapping(value = "/queryList", method = RequestMethod.GET) public Result> queryList(@RequestParam(name="ids",required=false) String ids) { Result> result = new Result>(); LambdaQueryWrapper query = new LambdaQueryWrapper<>(); query.eq(SysTenant::getStatus, 1); if(oConvertUtils.isNotEmpty(ids)){ query.in(SysTenant::getId, ids.split(",")); } //此处查询忽略时间条件 List ls = sysTenantService.list(query); result.setSuccess(true); result.setResult(ls); return result; } }