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