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