chenrui
2025-05-07 925a974564f0df25857fd5d9b92889a8b0ac6d68
全局查询添加租户
已修改7个文件
已添加5个文件
301 ■■■■■ 文件已修改
src/main/java/com/ruoyi/basic/controller/SupplierManageController.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/basic/dto/SupplierManageDto.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/basic/mapper/SupplierManageMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/basic/pojo/SupplierManage.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/basic/service/ISupplierService.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/basic/service/impl/SupplierServiceImpl.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/common/config/IgnoreTableConfig.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/common/config/MybatisHandler.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/common/handler/CustomTenantLineHandler.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/framework/security/service/SysLoginService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/basic/SupplierManageMapper.xml 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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));
    }
}
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 {
}
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);
}
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;
}
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);
}
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);
    }
}
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");
    }
}
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);
    }
}
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";
    }
}
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());
        // ä¹è§‚锁插件
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);
        // ç”¨æˆ·éªŒè¯
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>