package com.artfess.uc.controller; import com.artfess.base.annotation.ApiGroup; import com.artfess.base.conf.SaaSConfig; import com.artfess.base.constants.ApiGroupConsts; import com.artfess.base.controller.BaseController; import com.artfess.base.feign.WorkflowFeignService; import com.artfess.base.model.CommonResult; import com.artfess.base.query.FieldRelation; import com.artfess.base.query.PageList; import com.artfess.base.query.QueryFilter; import com.artfess.base.query.QueryOP; import com.artfess.base.util.BeanUtils; import com.artfess.base.util.StringUtil; import com.artfess.uc.exception.BaseException; import com.artfess.uc.manager.TenantAuthManager; import com.artfess.uc.manager.TenantManageManager; import com.artfess.uc.manager.TenantTypeManager; import com.artfess.uc.model.TenantAuth; import com.artfess.uc.model.TenantManage; import com.artfess.uc.model.User; import com.artfess.uc.util.ContextUtil; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.fasterxml.jackson.databind.node.ObjectNode; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; /** * *
 
 * 描述:租户管理 控制器类
 * 构建组:x7
 * 作者:zhangxw
 * 邮箱:zhangxw@jee-soft.cn
 * 日期:2020-04-17 10:56:07
 * 版权:广州宏天软件股份有限公司
 * 
*/ @RestController @RequestMapping(value="/uc/tenantManage/v1") @Api(tags="租户管理 ") @ApiGroup(group= {ApiGroupConsts.GROUP_UC}) public class TenantManageController extends BaseController{ @Resource TenantManageManager tenantManageManager; @Resource TenantTypeManager tenantTypeManager; @Resource TenantAuthManager tenantAuthManager; @Resource WorkflowFeignService workflowFeignService; @Resource SaaSConfig saasConfig; /** * 租户管理 列表(分页条件查询)数据 * @param queryFilter * @return * @throws Exception * PageJson * @exception */ @PostMapping("/listJson") @ApiOperation(value="租户管理 数据列表", httpMethod = "POST", notes = "获取租户管理 列表") public PageList list(@ApiParam(name="queryFilter",value="查询对象")@RequestBody QueryFilter queryFilter) throws Exception{ User user = ContextUtil.getCurrentUser(); if(!user.isAdmin()){ //处理管理员数据权限 List authTypeIds = new ArrayList(); List authTenantIds = new ArrayList(); List auths = tenantAuthManager.getByUserId(null, null, user.getId()); if(BeanUtils.isNotEmpty(auths)){ for (TenantAuth tenantAuth : auths) { if(StringUtil.isEmpty(tenantAuth.getTenantId())){ authTypeIds.add(tenantAuth.getTypeId()); }else{ authTenantIds.add(tenantAuth.getTenantId()); } } } if(BeanUtils.isEmpty(authTypeIds) && BeanUtils.isEmpty(authTenantIds) ){ authTypeIds.add("0"); authTenantIds.add("0"); } if(BeanUtils.isNotEmpty(authTypeIds)){ queryFilter.addFilter("TYPE_ID_", authTypeIds, QueryOP.IN, FieldRelation.OR, "auth"); } if(BeanUtils.isNotEmpty(authTenantIds)){ queryFilter.addFilter("ID_", authTenantIds, QueryOP.IN, FieldRelation.OR, "auth"); } } PageList pageList = tenantManageManager.queryWithType(queryFilter); //处理租户类型名称 // if(BeanUtils.isNotEmpty(pageList) && pageList.getRows().size()>0){ // List types = tenantTypeManager.getAll(); // Map typeNameMaps = new HashMap(); // for (TenantType tenantType : types) { // typeNameMaps.put(tenantType.getId(), tenantType.getName()); // } // for (TenantManage tenant : pageList.getRows()) { // tenant.setTypeName(typeNameMaps.get(tenant.getTypeId())); // } // } return pageList; } /** * 租户管理 明细页面 * @param id * @return * @throws Exception * ModelAndView */ @GetMapping(value="/getJson") @ApiOperation(value="租户管理 数据详情",httpMethod = "GET",notes = "租户管理 数据详情") public TenantManage get(@ApiParam(name="id",value="业务对象主键", required = true)@RequestParam String id) throws Exception{ TenantManage tenantManage = tenantManageManager.get(id); if(saasConfig.isEnable()){ tenantManage.setIsViewPartThree(false); }else{ tenantManage.setIsViewPartThree(true); } return tenantManage; } /** * 新增租户管理 * @param tenantManage * @throws Exception * @return * @exception */ @PostMapping(value="save") @ApiOperation(value = "新增,更新租户管理 数据", httpMethod = "POST", notes = "新增,更新租户管理 数据") public CommonResult save(@ApiParam(name="tenantManage",value="租户管理 业务对象", required = true)@RequestBody TenantManage tenantManage) throws Exception{ String msg = "添加租户管理 成功"; if(saasConfig.isEnable()){ tenantManage.setIsPartThree(0); } if(StringUtil.isEmpty(tenantManage.getId())){ tenantManageManager.create(tenantManage); }else{ if(TenantManage.STATUS_DISABLED.equals(tenantManage.getStatus())) { TenantManage oldManage = tenantManageManager.get(tenantManage.getId()); if(TenantManage.STATUS_ENABLE.equals(oldManage.getStatus())) { //禁用 String tenantId = tenantManage.getId(); List tasList = workflowFeignService.getTaskListByTenantId(tenantId); if(BeanUtils.isNotEmpty(tasList)) { if(tasList.size() >0) { throw new BaseException("该租户仍有任务未完成,不允许禁用!"); } } } } tenantManageManager.update(tenantManage); UpdateWrapper wrapper = new UpdateWrapper(); wrapper.set("type_id_",tenantManage.getTypeId()); wrapper.eq("tenant_id_",tenantManage.getId()); tenantAuthManager.update(wrapper); msg = "保存成功"; } return new CommonResult(true,msg,tenantManage.getId()); } /** * 批量删除租户管理 记录 * @param ids * @throws Exception * @return * @exception */ @DeleteMapping(value="/remove") @ApiOperation(value = "批量删除租户管理 记录", httpMethod = "DELETE", notes = "批量删除租户管理 记录") public CommonResult removes(@ApiParam(name="ids",value="业务主键数组,多个业务主键之间用逗号分隔", required = true)@RequestParam String...ids) throws Exception{ tenantManageManager.removeByIds(ids); return new CommonResult(true, "删除成功"); } @RequestMapping(value="checkCode", method=RequestMethod.GET, produces={"application/json; charset=utf-8" }) @ApiOperation(value = "检查租户类型编码是否存在", httpMethod = "GET", notes = "检查租户类型编码是否存在") public boolean checkCode(@ApiParam(name="code",value="租户类型编码") @RequestParam String code) throws Exception{ TenantManage tenant = tenantManageManager.getByCode(code); return BeanUtils.isNotEmpty(tenant); } @RequestMapping(value="getTenantByCode", method=RequestMethod.GET, produces={"application/json; charset=utf-8" }) @ApiOperation(value = "通过编码获取租户类型", httpMethod = "GET", notes = "通过编码获取租户类型") public TenantManage getTenantByCode(@ApiParam(name="code",value="租户类型编码") @RequestParam String code) throws Exception{ return tenantManageManager.getByCode(code); } @RequestMapping(value="setThreeAdmin", method=RequestMethod.POST, produces={"application/json; charset=utf-8" }) @ApiOperation(value = "开启或关闭三员管理", httpMethod = "POST", notes = "开启或关闭三员管理") public CommonResult setThreeAdmin( @ApiParam(name="isPartThree",value="是否开启三员管理(0:否 1:是)") @RequestParam Integer isPartThree, @ApiParam(name = "tenantId", value = "租户ID", required = true) @RequestParam String tenantId) throws Exception{ tenantManageManager.setThreeAdmin(isPartThree,tenantId); return new CommonResult(true, "设置成功"); } }