From 925a974564f0df25857fd5d9b92889a8b0ac6d68 Mon Sep 17 00:00:00 2001
From: chenrui <1187576398@qq.com>
Date: 星期三, 07 五月 2025 17:19:16 +0800
Subject: [PATCH] 全局查询添加租户
---
src/main/java/com/ruoyi/basic/service/impl/SupplierServiceImpl.java | 49 ++++++++
src/main/resources/mapper/basic/SupplierManageMapper.xml | 34 +++++
src/main/java/com/ruoyi/basic/dto/SupplierManageDto.java | 8 +
src/main/java/com/ruoyi/basic/mapper/SupplierManageMapper.java | 6 +
src/main/java/com/ruoyi/basic/service/ISupplierService.java | 37 ++++++
src/main/java/com/ruoyi/framework/security/service/SysLoginService.java | 2
src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java | 5
src/main/java/com/ruoyi/basic/pojo/SupplierManage.java | 9 +
src/main/java/com/ruoyi/common/config/MybatisHandler.java | 39 ++++++
src/main/java/com/ruoyi/common/handler/CustomTenantLineHandler.java | 36 ++++++
src/main/java/com/ruoyi/basic/controller/SupplierManageController.java | 58 ++++++++
src/main/java/com/ruoyi/common/config/IgnoreTableConfig.java | 18 +++
12 files changed, 292 insertions(+), 9 deletions(-)
diff --git a/src/main/java/com/ruoyi/basic/controller/SupplierManageController.java b/src/main/java/com/ruoyi/basic/controller/SupplierManageController.java
index dca91cb..d399212 100644
--- a/src/main/java/com/ruoyi/basic/controller/SupplierManageController.java
+++ b/src/main/java/com/ruoyi/basic/controller/SupplierManageController.java
@@ -1,12 +1,12 @@
package com.ruoyi.basic.controller;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.basic.dto.SupplierManageDto;
import com.ruoyi.basic.pojo.SupplierManage;
import com.ruoyi.basic.service.ISupplierService;
+import com.ruoyi.framework.web.domain.AjaxResult;
import org.springframework.beans.factory.annotation.Autowired;
-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.RestController;
+import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/system/supplier")
@@ -15,8 +15,56 @@
@Autowired
private ISupplierService supplierService;
+ /**
+ * 渚涘簲鍟嗘柊澧�
+ * @param supplierManage
+ * @return
+ */
@PostMapping("/add")
- public void add(@RequestBody SupplierManage supplierManage) {
+ public AjaxResult add(@RequestBody SupplierManage supplierManage) {
supplierService.saveSupplier(supplierManage);
+ return AjaxResult.success();
+ }
+
+ /**
+ * 渚涘簲鍟嗗垹闄�
+ * @param id
+ * @return
+ */
+ @DeleteMapping("/del")
+ public AjaxResult delSupplier(Integer id) {
+ supplierService.delSupplier(id);
+ return AjaxResult.success();
+ }
+
+ /**
+ * 渚涘簲鍟嗚鎯�
+ * @param id
+ * @return
+ */
+ @GetMapping("/info")
+ public AjaxResult supplierDetail(Integer id) {
+ return AjaxResult.success(supplierService.supplierDetail(id));
+ }
+
+ /**
+ * 渚涘簲鍟嗕慨鏀�
+ * @param supplierManage
+ * @return
+ */
+ @PostMapping("/update")
+ public AjaxResult update(@RequestBody SupplierManage supplierManage) {
+ return AjaxResult.success();
+ }
+
+ /**
+ * 渚涘簲鍟嗙鐞嗗垎椤垫煡璇�
+ * @param page
+ * @param supplierManageDto
+ * @return
+ */
+ @GetMapping("/listPage")
+ public AjaxResult supplierListPage(Page page, SupplierManageDto supplierManageDto) {
+ return AjaxResult.success(supplierService.supplierListPage(page, supplierManageDto));
}
}
diff --git a/src/main/java/com/ruoyi/basic/dto/SupplierManageDto.java b/src/main/java/com/ruoyi/basic/dto/SupplierManageDto.java
new file mode 100644
index 0000000..3138433
--- /dev/null
+++ b/src/main/java/com/ruoyi/basic/dto/SupplierManageDto.java
@@ -0,0 +1,8 @@
+package com.ruoyi.basic.dto;
+
+import com.ruoyi.basic.pojo.SupplierManage;
+import lombok.Data;
+
+@Data
+public class SupplierManageDto extends SupplierManage {
+}
diff --git a/src/main/java/com/ruoyi/basic/mapper/SupplierManageMapper.java b/src/main/java/com/ruoyi/basic/mapper/SupplierManageMapper.java
index 4ecd7df..0b94203 100644
--- a/src/main/java/com/ruoyi/basic/mapper/SupplierManageMapper.java
+++ b/src/main/java/com/ruoyi/basic/mapper/SupplierManageMapper.java
@@ -1,9 +1,15 @@
package com.ruoyi.basic.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.basic.dto.SupplierManageDto;
import com.ruoyi.basic.pojo.SupplierManage;
import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
@Mapper
public interface SupplierManageMapper extends BaseMapper<SupplierManage> {
+
+ IPage<SupplierManage> supplierListPage(Page page, @Param("supplierManageDto") SupplierManageDto supplierManageDto);
}
diff --git a/src/main/java/com/ruoyi/basic/pojo/SupplierManage.java b/src/main/java/com/ruoyi/basic/pojo/SupplierManage.java
index 7cdbf17..b819cd5 100644
--- a/src/main/java/com/ruoyi/basic/pojo/SupplierManage.java
+++ b/src/main/java/com/ruoyi/basic/pojo/SupplierManage.java
@@ -1,8 +1,6 @@
package com.ruoyi.basic.pojo;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -46,17 +44,22 @@
private LocalDateTime maintainTime;
@ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
@ApiModelProperty(value = "鍒涘缓鐢ㄦ埛")
+ @TableField(fill = FieldFill.INSERT)
private Integer createUser;
@ApiModelProperty(value = "淇敼鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;
@ApiModelProperty(value = "淇敼鐢ㄦ埛")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
private Integer updateUser;
@ApiModelProperty(value = "绉熸埛ID")
+ @TableField(fill = FieldFill.INSERT)
private Integer tenantId;
}
diff --git a/src/main/java/com/ruoyi/basic/service/ISupplierService.java b/src/main/java/com/ruoyi/basic/service/ISupplierService.java
index 4dd722c..9244c52 100644
--- a/src/main/java/com/ruoyi/basic/service/ISupplierService.java
+++ b/src/main/java/com/ruoyi/basic/service/ISupplierService.java
@@ -1,8 +1,45 @@
package com.ruoyi.basic.service;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.basic.dto.SupplierManageDto;
import com.ruoyi.basic.pojo.SupplierManage;
public interface ISupplierService {
+ /**
+ * 渚涘簲鍟嗘柊澧�
+ * @param supplierManage
+ * @return
+ */
void saveSupplier(SupplierManage supplierManage);
+
+ /**
+ * 渚涘簲鍟嗗垹闄�
+ * @param id
+ * @return
+ */
+ int delSupplier(Integer id);
+
+ /**
+ * 渚涘簲鍟嗚鎯�
+ * @param id
+ * @return
+ */
+ SupplierManage supplierDetail(Integer id);
+
+ /**
+ * 渚涘簲鍟嗕慨鏀�
+ * @param supplierManage
+ * @return
+ */
+ int supplierManage(SupplierManage supplierManage);
+
+ /**
+ * 渚涘簲鍟嗗垎椤垫煡璇�
+ * @param page
+ * @param supplierManageDto
+ * @return
+ */
+ IPage<SupplierManage> supplierListPage(Page page, SupplierManageDto supplierManageDto);
}
diff --git a/src/main/java/com/ruoyi/basic/service/impl/SupplierServiceImpl.java b/src/main/java/com/ruoyi/basic/service/impl/SupplierServiceImpl.java
index bcf23a8..b699e75 100644
--- a/src/main/java/com/ruoyi/basic/service/impl/SupplierServiceImpl.java
+++ b/src/main/java/com/ruoyi/basic/service/impl/SupplierServiceImpl.java
@@ -1,6 +1,9 @@
package com.ruoyi.basic.service.impl;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.basic.dto.SupplierManageDto;
import com.ruoyi.basic.mapper.SupplierManageMapper;
import com.ruoyi.basic.pojo.SupplierManage;
import com.ruoyi.basic.service.ISupplierService;
@@ -13,8 +16,54 @@
@Autowired
private SupplierManageMapper supplierMapper;
+ /**
+ * 渚涘簲鍟嗘柊澧�
+ * @param supplierManage
+ * @return
+ */
@Override
public void saveSupplier(SupplierManage supplierManage) {
supplierMapper.insert(supplierManage);
}
+
+ /**
+ * 渚涘簲鍟嗗垹闄�
+ * @param id
+ * @return
+ */
+ @Override
+ public int delSupplier(Integer id) {
+ return supplierMapper.deleteById(id);
+ }
+
+ /**
+ * 渚涘簲鍟嗚鎯�
+ * @param id
+ * @return
+ */
+ @Override
+ public SupplierManage supplierDetail(Integer id) {
+ return supplierMapper.selectById(id);
+ }
+
+ /**
+ * 渚涘簲鍟嗕慨鏀�
+ * @param supplierManage
+ * @return
+ */
+ @Override
+ public int supplierManage(SupplierManage supplierManage) {
+ return supplierMapper.updateById(supplierManage);
+ }
+
+ /**
+ * 渚涘簲鍟嗗垎椤垫煡璇�
+ * @param page
+ * @param supplierManageDto
+ * @return
+ */
+ @Override
+ public IPage<SupplierManage> supplierListPage(Page page, SupplierManageDto supplierManageDto) {
+ return supplierMapper.supplierListPage(page,supplierManageDto);
+ }
}
diff --git a/src/main/java/com/ruoyi/common/config/IgnoreTableConfig.java b/src/main/java/com/ruoyi/common/config/IgnoreTableConfig.java
new file mode 100644
index 0000000..54e3c63
--- /dev/null
+++ b/src/main/java/com/ruoyi/common/config/IgnoreTableConfig.java
@@ -0,0 +1,18 @@
+package com.ruoyi.common.config;
+
+import org.springframework.stereotype.Component;
+
+import java.util.HashSet;
+import java.util.Set;
+
+@Component
+public class IgnoreTableConfig {
+
+ public static final Set<String> IGNORE_TABLES = new HashSet<>();
+
+ static {
+ IGNORE_TABLES.add("sys_config");
+ IGNORE_TABLES.add("sys_user");
+ IGNORE_TABLES.add("sys_dept");
+ }
+}
diff --git a/src/main/java/com/ruoyi/common/config/MybatisHandler.java b/src/main/java/com/ruoyi/common/config/MybatisHandler.java
new file mode 100644
index 0000000..ec8aa3c
--- /dev/null
+++ b/src/main/java/com/ruoyi/common/config/MybatisHandler.java
@@ -0,0 +1,39 @@
+package com.ruoyi.common.config;
+
+import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
+import com.ruoyi.common.utils.SecurityUtils;
+import org.apache.ibatis.reflection.MetaObject;
+import org.springframework.stereotype.Component;
+
+import java.time.LocalDateTime;
+
+@Component
+public class MybatisHandler implements MetaObjectHandler {
+ @Override
+ public void insertFill(MetaObject metaObject) {
+ Integer userId = null;
+ Integer tenantId = null;
+ try {
+ userId = SecurityUtils.getUserId().intValue();
+ tenantId = SecurityUtils.getLoginUser().getTenantId();
+ } catch (Exception ignored) {
+ }
+ System.out.println("鎵ц鎻掑叆濉厖...");
+ this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now());
+ this.strictInsertFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now());
+ this.strictInsertFill(metaObject, "createUser", Integer.class, userId);
+ this.strictInsertFill(metaObject, "updateUser", Integer.class, userId);
+ this.strictInsertFill(metaObject, "tenantId", Integer.class, tenantId);
+ }
+
+ @Override
+ public void updateFill(MetaObject metaObject) {
+ Integer userId = null;
+ try {
+ userId = SecurityUtils.getUserId().intValue();
+ } catch (Exception ignored) {
+ }
+ this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); // 璧峰鐗堟湰 3.3.0(鎺ㄨ崘)
+ this.strictUpdateFill(metaObject, "updateUser", Integer.class, userId);
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/common/handler/CustomTenantLineHandler.java b/src/main/java/com/ruoyi/common/handler/CustomTenantLineHandler.java
new file mode 100644
index 0000000..d8b2b69
--- /dev/null
+++ b/src/main/java/com/ruoyi/common/handler/CustomTenantLineHandler.java
@@ -0,0 +1,36 @@
+package com.ruoyi.common.handler;
+
+
+import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler;
+import com.ruoyi.common.config.IgnoreTableConfig;
+import com.ruoyi.common.utils.SecurityUtils;
+import net.sf.jsqlparser.expression.Expression;
+import net.sf.jsqlparser.expression.LongValue;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Set;
+
+@Component
+public class CustomTenantLineHandler implements TenantLineHandler {
+
+ @Override
+ public Expression getTenantId() {
+ Integer tenantId = SecurityUtils.getLoginUser().getTenantId();
+ return new LongValue(tenantId);
+ }
+
+ @Override
+ public boolean ignoreTable(String tableName) {
+ // 鎸囧畾涓嶉渶瑕佹坊鍔犺繃婊ゆ潯浠剁殑琛�
+ Set<String> ignoreTables = IgnoreTableConfig.IGNORE_TABLES;
+ return ignoreTables.contains(tableName);
+ }
+
+ @Override
+ public String getTenantIdColumn() {
+ // 鎸囧畾绉熸埛 ID 瀛楁鍚嶇О锛屾瘮濡� "station_id"
+ return "tenant_id";
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java b/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java
index f712180..90ad0f5 100644
--- a/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java
+++ b/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java
@@ -5,6 +5,8 @@
import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor;
+import com.ruoyi.common.handler.CustomTenantLineHandler;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@@ -22,6 +24,9 @@
public MybatisPlusInterceptor mybatisPlusInterceptor()
{
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+ // 绉熸埛鎻掍欢
+ TenantLineInnerInterceptor tenantLineInnerInterceptor = new TenantLineInnerInterceptor(new CustomTenantLineHandler());
+ interceptor.addInnerInterceptor(tenantLineInnerInterceptor);
// 鍒嗛〉鎻掍欢
interceptor.addInnerInterceptor(paginationInnerInterceptor());
// 涔愯閿佹彃浠�
diff --git a/src/main/java/com/ruoyi/framework/security/service/SysLoginService.java b/src/main/java/com/ruoyi/framework/security/service/SysLoginService.java
index 12a7c68..2c44d64 100644
--- a/src/main/java/com/ruoyi/framework/security/service/SysLoginService.java
+++ b/src/main/java/com/ruoyi/framework/security/service/SysLoginService.java
@@ -64,7 +64,7 @@
public String login(String username, String password, String code, String uuid)
{
// 楠岃瘉鐮佹牎楠�
- validateCaptcha(username, code, uuid);
+// validateCaptcha(username, code, uuid);
// 鐧诲綍鍓嶇疆鏍¢獙
loginPreCheck(username, password);
// 鐢ㄦ埛楠岃瘉
diff --git a/src/main/resources/mapper/basic/SupplierManageMapper.xml b/src/main/resources/mapper/basic/SupplierManageMapper.xml
new file mode 100644
index 0000000..248b940
--- /dev/null
+++ b/src/main/resources/mapper/basic/SupplierManageMapper.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.basic.mapper.SupplierManageMapper">
+
+ <select id="supplierListPage" resultType="com.ruoyi.basic.dto.SupplierManageDto">
+ SELECT
+ T1.id,
+ T1.supplier_name,
+ T1.taxpayer_identification_num,
+ T1.company_address,
+ T1.company_phone,
+ T1.bank_account_name,
+ T1.bank_account_num,
+ T1.contact_user_name,
+ T1.contact_user_phone,
+ T1.maintain_user_id,
+ T1.maintain_time,
+ T1.create_time,
+ T1.create_user,
+ T1.update_time,
+ T1.update_user,
+ T1.tenant_id
+ FROM supplier_manage T1
+ LEFT JOIN sys_user T2 ON T1.maintain_user_id = T2.user_id
+ <where>
+ <if test="supplierManageDto.supplierName != null and supplierManageDto.supplierName != '' ">
+ AND supplier_name = #{supplierManageDto.supplierName}
+ </if>
+ </where>
+ </select>
+
+</mapper>
\ No newline at end of file
--
Gitblit v1.9.3