+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.springblade.system.controller;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.AllArgsConstructor;
+import javax.validation.Valid;
+
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.system.feign.IDictClient;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.RequestParam;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.system.entity.Tenant;
+import org.springblade.system.vo.TenantVO;
+import org.springblade.system.wrapper.TenantWrapper;
+import org.springblade.system.service.ITenantService;
+import org.springblade.core.boot.ctrl.BladeController;
+import java.util.List;
+
+/**
+ * 控制器
+ *
+ * @author Blade
+ * @since 2019-04-17
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/tenant")
+@Api(value = "", tags = "接口")
+public class TenantController extends BladeController {
+
+ private ITenantService tenantService;
+
+ private IDictClient dictClient;
+
+ /**
+ * 详情
+ */
+ @GetMapping("/detail")
+ @ApiOperation(value = "详情", notes = "传入tenant", position = 1)
+ public R detail(Tenant tenant) {
+ Tenant detail = tenantService.getOne(Condition.getQueryWrapper(tenant));
+ TenantWrapper tenantWrapper = new TenantWrapper(dictClient);
+ return R.data(tenantWrapper.entityVO(detail));
+ }
+
+ /**
+ * 分页
+ */
+ @GetMapping("/list")
+ @ApiOperation(value = "分页", notes = "传入tenant", position = 2)
+ public R> list(Tenant tenant, Query query) {
+ IPage pages = tenantService.page(Condition.getPage(query), Condition.getQueryWrapper(tenant));
+ TenantWrapper tenantWrapper = new TenantWrapper(dictClient);
+ return R.data(tenantWrapper.pageVO(pages));
+ }
+
+ /**
+ * 自定义分页
+ */
+ @GetMapping("/page")
+ @ApiOperation(value = "分页", notes = "传入tenant", position = 3)
+ public R> page(TenantVO tenant, Query query) {
+ IPage pages = tenantService.selectTenantPage(Condition.getPage(query), tenant);
+ return R.data(pages);
+ }
+
+ /**
+ * 新增
+ */
+ @PostMapping("/save")
+ @ApiOperation(value = "新增", notes = "传入tenant", position = 4)
+ public R save(@Valid @RequestBody Tenant tenant) {
+ return R.status(tenantService.save(tenant));
+ }
+
+ /**
+ * 修改
+ */
+ @PostMapping("/update")
+ @ApiOperation(value = "修改", notes = "传入tenant", position = 5)
+ public R update(@Valid @RequestBody Tenant tenant) {
+ return R.status(tenantService.updateById(tenant));
+ }
+
+ /**
+ * 新增或修改
+ */
+ @PostMapping("/submit")
+ @ApiOperation(value = "新增或修改", notes = "传入tenant", position = 6)
+ public R submit(@Valid @RequestBody Tenant tenant) {
+ return R.status(tenantService.saveOrUpdate(tenant));
+ }
+
+
+ /**
+ * 删除
+ */
+ @PostMapping("/remove")
+ @ApiOperation(value = "逻辑删除", notes = "传入ids", position = 7)
+ public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+ return R.status(tenantService.deleteLogic(Func.toIntList(ids)));
+ }
+
+
+}
diff --git a/blade-ops/blade-develop/src/main/java/org/springblade/system/dto/TenantDTO.java b/blade-ops/blade-develop/src/main/java/org/springblade/system/dto/TenantDTO.java
new file mode 100644
index 0000000..43d70c2
--- /dev/null
+++ b/blade-ops/blade-develop/src/main/java/org/springblade/system/dto/TenantDTO.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com).
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.springblade.system.dto;
+
+import org.springblade.system.entity.Tenant;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 数据传输对象实体类
+ *
+ * @author Blade
+ * @since 2019-04-17
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class TenantDTO extends Tenant {
+ private static final long serialVersionUID = 1L;
+
+}
diff --git a/blade-ops/blade-develop/src/main/java/org/springblade/system/entity/Tenant.java b/blade-ops/blade-develop/src/main/java/org/springblade/system/entity/Tenant.java
new file mode 100644
index 0000000..fcf0621
--- /dev/null
+++ b/blade-ops/blade-develop/src/main/java/org/springblade/system/entity/Tenant.java
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com).
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.springblade.system.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import org.springblade.core.mp.base.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * 实体类
+ *
+ * @author Blade
+ * @since 2019-04-17
+ */
+@Data
+@TableName("blade_tenant")
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "Tenant对象", description = "Tenant对象")
+public class Tenant extends BaseEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 租户名称
+ */
+ @ApiModelProperty(value = "租户名称")
+ private String tenantName;
+ /**
+ * 联系人
+ */
+ @ApiModelProperty(value = "联系人")
+ private String linkman;
+ /**
+ * 联系电话
+ */
+ @ApiModelProperty(value = "联系电话")
+ private String contactNumber;
+ /**
+ * 联系地址
+ */
+ @ApiModelProperty(value = "联系地址")
+ private String address;
+
+
+}
diff --git a/blade-ops/blade-develop/src/main/java/org/springblade/system/mapper/TenantMapper.java b/blade-ops/blade-develop/src/main/java/org/springblade/system/mapper/TenantMapper.java
new file mode 100644
index 0000000..a2a4110
--- /dev/null
+++ b/blade-ops/blade-develop/src/main/java/org/springblade/system/mapper/TenantMapper.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com).
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.springblade.system.mapper;
+
+import org.springblade.system.entity.Tenant;
+import org.springblade.system.vo.TenantVO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import java.util.List;
+
+/**
+ * Mapper 接口
+ *
+ * @author Blade
+ * @since 2019-04-17
+ */
+public interface TenantMapper extends BaseMapper {
+
+ /**
+ * 自定义分页
+ *
+ * @param page
+ * @param tenant
+ * @return
+ */
+ List selectTenantPage(IPage page, TenantVO tenant);
+
+}
diff --git a/blade-ops/blade-develop/src/main/java/org/springblade/system/mapper/TenantMapper.xml b/blade-ops/blade-develop/src/main/java/org/springblade/system/mapper/TenantMapper.xml
new file mode 100644
index 0000000..4f06512
--- /dev/null
+++ b/blade-ops/blade-develop/src/main/java/org/springblade/system/mapper/TenantMapper.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/blade-ops/blade-develop/src/main/java/org/springblade/system/service/ITenantService.java b/blade-ops/blade-develop/src/main/java/org/springblade/system/service/ITenantService.java
new file mode 100644
index 0000000..531d53f
--- /dev/null
+++ b/blade-ops/blade-develop/src/main/java/org/springblade/system/service/ITenantService.java
@@ -0,0 +1,40 @@
+/**
+ * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com).
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.springblade.system.service;
+
+import org.springblade.system.entity.Tenant;
+import org.springblade.system.vo.TenantVO;
+import org.springblade.core.mp.base.BaseService;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+/**
+ * 服务类
+ *
+ * @author Blade
+ * @since 2019-04-17
+ */
+public interface ITenantService extends BaseService {
+
+ /**
+ * 自定义分页
+ *
+ * @param page
+ * @param tenant
+ * @return
+ */
+ IPage selectTenantPage(IPage page, TenantVO tenant);
+
+}
diff --git a/blade-ops/blade-develop/src/main/java/org/springblade/system/service/impl/TenantServiceImpl.java b/blade-ops/blade-develop/src/main/java/org/springblade/system/service/impl/TenantServiceImpl.java
new file mode 100644
index 0000000..c71ebea
--- /dev/null
+++ b/blade-ops/blade-develop/src/main/java/org/springblade/system/service/impl/TenantServiceImpl.java
@@ -0,0 +1,40 @@
+/**
+ * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com).
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.springblade.system.service.impl;
+
+import org.springblade.system.entity.Tenant;
+import org.springblade.system.vo.TenantVO;
+import org.springblade.system.mapper.TenantMapper;
+import org.springblade.system.service.ITenantService;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+/**
+ * 服务实现类
+ *
+ * @author Blade
+ * @since 2019-04-17
+ */
+@Service
+public class TenantServiceImpl extends BaseServiceImpl implements ITenantService {
+
+ @Override
+ public IPage selectTenantPage(IPage page, TenantVO tenant) {
+ return page.setRecords(baseMapper.selectTenantPage(page, tenant));
+ }
+
+}
diff --git a/blade-ops/blade-develop/src/main/java/org/springblade/system/vo/TenantVO.java b/blade-ops/blade-develop/src/main/java/org/springblade/system/vo/TenantVO.java
new file mode 100644
index 0000000..20998c1
--- /dev/null
+++ b/blade-ops/blade-develop/src/main/java/org/springblade/system/vo/TenantVO.java
@@ -0,0 +1,35 @@
+/**
+ * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com).
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.springblade.system.vo;
+
+import org.springblade.system.entity.Tenant;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import io.swagger.annotations.ApiModel;
+
+/**
+ * 视图实体类
+ *
+ * @author Blade
+ * @since 2019-04-17
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "TenantVO对象", description = "TenantVO对象")
+public class TenantVO extends Tenant {
+ private static final long serialVersionUID = 1L;
+
+}
diff --git a/blade-ops/blade-develop/src/main/java/org/springblade/system/wrapper/TenantWrapper.java b/blade-ops/blade-develop/src/main/java/org/springblade/system/wrapper/TenantWrapper.java
new file mode 100644
index 0000000..0ce1000
--- /dev/null
+++ b/blade-ops/blade-develop/src/main/java/org/springblade/system/wrapper/TenantWrapper.java
@@ -0,0 +1,49 @@
+/**
+ * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com).
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *