he2802 2 years ago
parent
commit
89399d79cc

+ 0 - 1
zhongzheng-api/src/main/java/com/zhongzheng/controller/cmmon/CommonController.java

@@ -225,7 +225,6 @@ public class CommonController extends BaseController {
     @ApiOperation("查询用户拥有的商品")
     @ApiOperation("查询用户拥有的商品")
     @GetMapping("/test")
     @GetMapping("/test")
     public AjaxResult<Integer> test(CourseQueryBo bo) throws InterruptedException, ParseException {
     public AjaxResult<Integer> test(CourseQueryBo bo) throws InterruptedException, ParseException {
-
         return AjaxResult.success(Printer.num);
         return AjaxResult.success(Printer.num);
     }
     }
 
 

+ 21 - 8
zhongzheng-framework/src/main/java/com/zhongzheng/framework/mybatisplus/CustomTenantLineInnerInterceptor.java

@@ -18,16 +18,13 @@ import org.springframework.stereotype.Component;
 
 
 
 
 public class CustomTenantLineInnerInterceptor extends TenantLineInnerInterceptor {
 public class CustomTenantLineInnerInterceptor extends TenantLineInnerInterceptor {
+    private TenantLineHandler tenantLineHandler;
     public CustomTenantLineInnerInterceptor(TenantLineHandler tenantLineHandler) {
     public CustomTenantLineInnerInterceptor(TenantLineHandler tenantLineHandler) {
         super(tenantLineHandler);
         super(tenantLineHandler);
+        this.tenantLineHandler = tenantLineHandler;
     }
     }
 
 
-    /**
-     * 重构mybatispuls的多租户改为支持in
-     * @param currentExpression
-     * @param table
-     * @return
-     */
+
     @Override
     @Override
     protected Expression builderExpression(Expression currentExpression, Table table) {
     protected Expression builderExpression(Expression currentExpression, Table table) {
         Column aliasColumn = this.getAliasColumn(table);
         Column aliasColumn = this.getAliasColumn(table);
@@ -54,12 +51,28 @@ public class CustomTenantLineInnerInterceptor extends TenantLineInnerInterceptor
 
 
     @Override
     @Override
     protected void processUpdate(Update update, int index, String sql, Object obj) {
     protected void processUpdate(Update update, int index, String sql, Object obj) {
-     //   super.processUpdate(update,index,sql,obj);
+        Table table = update.getTable();
+        if (!this.tenantLineHandler.ignoreTable(table.getName())) {
+            Column aliasColumn = this.getAliasColumn(table);
+            FindInSetExpression findInSetExpression = new FindInSetExpression();
+            findInSetExpression.setLeftExpression(getTenantLineHandler().getTenantId());
+            findInSetExpression.setRightExpression(aliasColumn);
+            Expression where = update.getWhere() instanceof OrExpression ? new AndExpression(new Parenthesis(update.getWhere()), findInSetExpression) : new AndExpression(update.getWhere(), findInSetExpression);
+            update.setWhere(where);
+        }
     }
     }
 
 
     @Override
     @Override
     protected void processDelete(Delete delete, int index, String sql, Object obj) {
     protected void processDelete(Delete delete, int index, String sql, Object obj) {
-        super.processDelete(delete,index,sql,obj);
+        Table table = delete.getTable();
+        if (!this.tenantLineHandler.ignoreTable(table.getName())) {
+            Column aliasColumn = this.getAliasColumn(table);
+            FindInSetExpression findInSetExpression = new FindInSetExpression();
+            findInSetExpression.setLeftExpression(getTenantLineHandler().getTenantId());
+            findInSetExpression.setRightExpression(aliasColumn);
+            Expression where = delete.getWhere() instanceof OrExpression ? new AndExpression(new Parenthesis(delete.getWhere()), findInSetExpression) : new AndExpression(delete.getWhere(), findInSetExpression);
+            delete.setWhere(where);
+        }
     }
     }
 
 
     @Override
     @Override