增加了 tenantid 字段业务
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TApiClient.java b/src/main/java/com/supwisdom/dlpay/framework/domain/TApiClient.java
index 0e94b39..9ffe634 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/domain/TApiClient.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/domain/TApiClient.java
@@ -79,4 +79,12 @@
   public void setThirdurl(String thirdurl) {
     this.thirdurl = thirdurl;
   }
+
+  public String getTenantId() {
+    return tenantId;
+  }
+
+  public void setTenantId(String tenantId) {
+    this.tenantId = tenantId;
+  }
 }
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TFunction.java b/src/main/java/com/supwisdom/dlpay/framework/domain/TFunction.java
index d0a4349..352df76 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/domain/TFunction.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/domain/TFunction.java
@@ -1,11 +1,14 @@
 package com.supwisdom.dlpay.framework.domain;
 
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+
 import javax.persistence.*;
 import javax.validation.constraints.NotNull;
 
 @Entity
 @Table(name = "TB_FUNCTION")
-@SequenceGenerator(name = "SEQ_FUNC", sequenceName = "SEQ_FUNC", allocationSize = 1)
+@JsonIgnoreProperties(value={"hibernateLazyInitializer"})
+@SequenceGenerator(name = "SEQ_FUNC", sequenceName = "SEQ_FUNC", allocationSize = 1, initialValue=1000)
 public class TFunction {
   @Id
   @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_FUNC")
@@ -111,4 +114,12 @@
   public void setLastsaved(String lastsaved) {
     this.lastsaved = lastsaved;
   }
+
+  public String getTenantId() {
+    return tenantId;
+  }
+
+  public void setTenantId(String tenantId) {
+    this.tenantId = tenantId;
+  }
 }
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TPermission.java b/src/main/java/com/supwisdom/dlpay/framework/domain/TPermission.java
index 2c83c18..e6fd9e1 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/domain/TPermission.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/domain/TPermission.java
@@ -15,7 +15,6 @@
   private String id;
 
   @Column(name = "ROLE_FUNC_ID", length = 32)
-  @NotNull
   private String roleFuncId;
 
   @Column(name = "RESID")
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TRoleFunction.java b/src/main/java/com/supwisdom/dlpay/framework/domain/TRoleFunction.java
index 5aebc73..911ca71 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/domain/TRoleFunction.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/domain/TRoleFunction.java
@@ -23,7 +23,6 @@
   private Integer functionId;
 
   @Column(name = "PERMISSIONS", length = 200)
-  @NotNull
   private String permissions;
 
   @Column(name = "tenantid", length = 20)
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TShop.java b/src/main/java/com/supwisdom/dlpay/framework/domain/TShop.java
index fad9bbd..49b5df7 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/domain/TShop.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/domain/TShop.java
@@ -9,7 +9,7 @@
     indexes = {@Index(name = "shop_shopaccno_idx", columnList = "shopaccno")})
 public class TShop {
   @Id
-  @SequenceGenerator(name = "shopid", sequenceName = "SEQ_SHOP", allocationSize = 1)
+  @SequenceGenerator(name = "shopid", sequenceName = "SEQ_SHOP", allocationSize = 1, initialValue = 10)
   @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "shopid")
   @Column(name = "SHOPID", nullable = false, precision = 9)
   private Integer shopid;
diff --git a/src/main/java/com/supwisdom/dlpay/framework/security/MyPermissionEvaluator.java b/src/main/java/com/supwisdom/dlpay/framework/security/MyPermissionEvaluator.java
index 02dbce4..d110ae7 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/security/MyPermissionEvaluator.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/security/MyPermissionEvaluator.java
@@ -1,6 +1,7 @@
 package com.supwisdom.dlpay.framework.security;
 
 import com.supwisdom.dlpay.framework.domain.*;
+import com.supwisdom.dlpay.framework.tenant.TenantContext;
 import com.supwisdom.dlpay.framework.util.DateUtil;
 import com.supwisdom.dlpay.framework.util.StringUtil;
 import com.supwisdom.dlpay.system.service.FunctionService;
@@ -19,53 +20,55 @@
 
 @Component
 public class MyPermissionEvaluator implements PermissionEvaluator {
-    @Autowired
-    private RoleService roleService;
-    @Autowired
-    private OperatorService operatorService;
-    @Autowired
-    private FunctionService functionService;
-    @Override
-    public boolean hasPermission(Authentication authentication, Object targetUri, Object permission) {
-        //TODO save logger
-        if (targetUri != null) {
-            UserDetails userDetails = (UserDetails) authentication.getPrincipal();
-            if (userDetails != null) {
-                TOperator operator = operatorService.getOperatorByCode(userDetails.getUsername());
-                if (operator != null) {
-                    List<TOperRole> operRoles = operatorService.getOperRoleByOperId(operator.getOperid());
-                    for (TOperRole operRole : operRoles) {
-                        TRole role = roleService.findRoleByRoleid(operRole.getRoleId());
-                        if (role != null) {
-                            TResource resource = roleService.findResourceByURI(String.valueOf(targetUri));
-                            if (resource != null) {
-                                TPermission permission1 = roleService.findByRoleIdAndResid(role.getRoleId(), resource.getId());
-                                if (permission1 != null) {
-                                    TOperLog log = new TOperLog();
-                                    log.setLogdate(DateUtil.getNow());
-                                    log.setOperid(operator.getOperid());
-                                    log.setOpername(operator.getOpercode());
-                                    log.setResname(resource.getName());
-                                    log.setRespath(resource.getUri());
-                                    TFunction function  =functionService.getFunctionById(resource.getFunctionId());
-                                    if(function!=null){
-                                        log.setFunctionid(function.getId());
-                                        log.setFunctionname(function.getName());
-                                    }
-                                    operatorService.saveOperLog(log);
-                                    return true;
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-        }
-        return false;
-    }
+  @Autowired
+  private RoleService roleService;
+  @Autowired
+  private OperatorService operatorService;
+  @Autowired
+  private FunctionService functionService;
 
-    @Override
-    public boolean hasPermission(Authentication authentication, Serializable targetId, String targetType, Object permission) {
-        return false;
+  @Override
+  public boolean hasPermission(Authentication authentication, Object targetUri, Object permission) {
+    //TODO save logger
+    if (targetUri != null) {
+      UserDetails userDetails = (UserDetails) authentication.getPrincipal();
+      if (userDetails != null) {
+        TOperator operator = operatorService.getOperatorByCode(userDetails.getUsername());
+        if (operator != null) {
+          List<TOperRole> operRoles = operatorService.getOperRoleByOperId(operator.getOperid());
+          for (TOperRole operRole : operRoles) {
+            TRole role = roleService.findRoleByRoleid(operRole.getRoleId());
+            if (role != null) {
+              TResource resource = roleService.findResourceByURI(String.valueOf(targetUri));
+              if (resource != null) {
+                TPermission permission1 = roleService.findByRoleIdAndResid(role.getRoleId(), resource.getId());
+                if (permission1 != null) {
+                  TOperLog log = new TOperLog();
+                  log.setLogdate(DateUtil.getNow());
+                  log.setOperid(operator.getOperid());
+                  log.setOpername(operator.getOpercode());
+                  log.setResname(resource.getName());
+                  log.setRespath(resource.getUri());
+                  log.setTenantId(operator.getTenantId());
+                  TFunction function = functionService.getFunctionById(resource.getFunctionId());
+                  if (function != null) {
+                    log.setFunctionid(function.getId());
+                    log.setFunctionname(function.getName());
+                  }
+                  operatorService.saveOperLog(log);
+                  return true;
+                }
+              }
+            }
+          }
+        }
+      }
     }
+    return false;
+  }
+
+  @Override
+  public boolean hasPermission(Authentication authentication, Serializable targetId, String targetType, Object permission) {
+    return false;
+  }
 }
diff --git a/src/main/java/com/supwisdom/dlpay/framework/tenant/HibernateConfig.java b/src/main/java/com/supwisdom/dlpay/framework/tenant/HibernateConfig.java
index dcf68e8..b44b872 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/tenant/HibernateConfig.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/tenant/HibernateConfig.java
@@ -1,5 +1,6 @@
 package com.supwisdom.dlpay.framework.tenant;
 
+import lombok.extern.slf4j.Slf4j;
 import org.hibernate.MultiTenancyStrategy;
 import org.hibernate.cfg.Environment;
 import org.hibernate.context.spi.CurrentTenantIdentifierResolver;
@@ -14,13 +15,14 @@
 import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
 import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
 
-import javax.persistence.EntityManagerFactory;
 import javax.sql.DataSource;
 import java.util.HashMap;
 import java.util.Map;
 
 @Configuration
+@Slf4j
 public class HibernateConfig {
+
   private final JpaProperties jpaProperties;
 
   private final HibernateProperties hibernateProperties;
@@ -55,11 +57,8 @@
     em.setPackagesToScan("com.supwisdom");
     em.setJpaPropertyMap(properties);
     em.setJpaVendorAdapter(getJpaVendorAdapter());
+    log.info("setup multi-tenant entityManagerFactor");
     return em;
   }
 
-//  @Bean
-//  public EntityManagerFactory entityManagerFactoryBean(LocalContainerEntityManagerFactoryBean localBean) {
-//    return localBean.getObject();
-//  }
 }
diff --git a/src/main/java/com/supwisdom/dlpay/framework/tenant/MultiTenantConnectionProviderImpl.java b/src/main/java/com/supwisdom/dlpay/framework/tenant/MultiTenantConnectionProviderImpl.java
index 7a0fb8a..d13ffdb 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/tenant/MultiTenantConnectionProviderImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/tenant/MultiTenantConnectionProviderImpl.java
@@ -34,7 +34,7 @@
     final Connection connection = getAnyConnection();
     try {
       if (tenantIdentifier != null) {
-        connection.createStatement().execute("SET search_path = " + tenantIdentifier + ", public");
+        connection.createStatement().execute("SET search_path = \"" + tenantIdentifier + "\", public");
       } else {
         connection.createStatement().execute("SET search_path =  public");
       }
diff --git a/src/main/java/com/supwisdom/dlpay/framework/tenant/TenantInterceptor.java b/src/main/java/com/supwisdom/dlpay/framework/tenant/TenantInterceptor.java
index 73bdbea..e60b957 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/tenant/TenantInterceptor.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/tenant/TenantInterceptor.java
@@ -1,6 +1,9 @@
 package com.supwisdom.dlpay.framework.tenant;
 
+import com.supwisdom.dlpay.framework.domain.TOperator;
 import com.supwisdom.dlpay.framework.util.Constants;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.stereotype.Component;
 import org.springframework.web.servlet.ModelAndView;
 import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
@@ -15,7 +18,16 @@
   public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
       throws Exception {
     String tenantId = request.getHeader(Constants.HEADER_TETANTID);
-    TenantContext.setTenantSchema(tenantId);
+    Authentication auth = SecurityContextHolder.getContext().getAuthentication();
+    if (auth != null && auth.getPrincipal() instanceof TOperator) {
+      TOperator oper = (TOperator) auth.getPrincipal();
+      if (tenantId != null && !oper.getTenantId().equals(tenantId)) {
+        throw new RuntimeException("tenant ID 不匹配");
+      }
+      TenantContext.setTenantSchema(oper.getTenantId());
+    } else {
+      TenantContext.setTenantSchema(tenantId);
+    }
     return true;
   }
 
diff --git a/src/main/java/com/supwisdom/dlpay/system/controller/FunctionController.java b/src/main/java/com/supwisdom/dlpay/system/controller/FunctionController.java
index bbd7a5c..05d5977 100644
--- a/src/main/java/com/supwisdom/dlpay/system/controller/FunctionController.java
+++ b/src/main/java/com/supwisdom/dlpay/system/controller/FunctionController.java
@@ -4,6 +4,7 @@
 import com.supwisdom.dlpay.api.bean.JsonResult;
 import com.supwisdom.dlpay.framework.domain.TFunction;
 import com.supwisdom.dlpay.framework.domain.TResource;
+import com.supwisdom.dlpay.framework.tenant.TenantContext;
 import com.supwisdom.dlpay.framework.util.PageResult;
 import com.supwisdom.dlpay.framework.util.WebConstant;
 import com.supwisdom.dlpay.system.bean.FunctionSearchBean;
@@ -19,120 +20,126 @@
 @Controller
 public class FunctionController {
 
-    @Autowired
-    private FunctionService functionService;
+  @Autowired
+  private FunctionService functionService;
 
-    @GetMapping("/function/index")
-    public String indexView() {
-        return "system/function/index";
-    }
+  @GetMapping("/function/index")
+  public String indexView() {
+    return "system/function/index";
+  }
 
-    @GetMapping("/function/list")
-    @PreAuthorize("hasPermission('/function/index','')")
-    @ResponseBody
-    public PageResult<TFunction> getDataList(@RequestParam("page") Integer pageNo,
-                                             @RequestParam("limit") Integer pageSize,
-                                             @RequestParam(value = "searchkey", required = false) String searchKey) {
-        try {
-            if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT;
-            if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT;
-            FunctionSearchBean searchBean = new FunctionSearchBean();
-            searchBean.setPageNo(pageNo);
-            searchBean.setFunctioname(searchKey);
-            searchBean.setPageSize(pageSize);
-            return functionService.getFunctionsByKey(searchBean);
-        } catch (Exception e) {
-            e.printStackTrace();
-            return new PageResult<>(99, "系统查询错误");
-        }
+  @GetMapping("/function/list")
+  @PreAuthorize("hasPermission('/function/index','')")
+  @ResponseBody
+  public PageResult<TFunction> getDataList(@RequestParam("page") Integer pageNo,
+                                           @RequestParam("limit") Integer pageSize,
+                                           @RequestParam(value = "searchkey", required = false) String searchKey) {
+    try {
+      if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT;
+      if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT;
+      FunctionSearchBean searchBean = new FunctionSearchBean();
+      searchBean.setPageNo(pageNo);
+      searchBean.setFunctioname(searchKey);
+      searchBean.setPageSize(pageSize);
+      return functionService.getFunctionsByKey(searchBean);
+    } catch (Exception e) {
+      e.printStackTrace();
+      return new PageResult<>(99, "系统查询错误");
     }
+  }
 
-    @GetMapping("/function/loadadd")
-    @PreAuthorize("hasPermission('/function/loadadd','')")
-    public String loadadd() {
-        return "system/function/form";
-    }
+  @GetMapping("/function/loadadd")
+  @PreAuthorize("hasPermission('/function/loadadd','')")
+  public String loadadd() {
+    return "system/function/form";
+  }
 
-    @PostMapping("/function/add")
-    @PreAuthorize("hasPermission('/function/add','')")
-    @ResponseBody
-    public JsonResult add(@RequestBody TFunction function) {
-        if (function != null) {
-            return functionService.saveFunction(function);
-        } else {
-            return JsonResult.error("添加失败");
-        }
+  @PostMapping("/function/add")
+  @PreAuthorize("hasPermission('/function/add','')")
+  @ResponseBody
+  public JsonResult add(@RequestBody TFunction function) {
+    if (function != null) {
+      function.setTenantId(TenantContext.getTenantSchema());
+      return functionService.saveFunction(function);
+    } else {
+      return JsonResult.error("添加失败");
     }
-    @PostMapping("/function/delfunc")
-    @PreAuthorize("hasPermission('/function/delfunc','')")
-    @ResponseBody
-    public JsonResult delfunc(@RequestParam Integer funcid) {
-        return functionService.deleteFunction(funcid);
-    }
+  }
 
-    @GetMapping("/function/checkname")
-    @ResponseBody
-    public JsonResult checkname(@RequestParam String name,
-                                @RequestParam(value = "id", required = false) Integer id) {
-        TFunction function = functionService.getFunctionByNameAndId(name, id);
-        if (function == null) {
-            return JsonResult.ok();
-        } else {
-            return JsonResult.error("功能名称重复");
-        }
-    }
+  @PostMapping("/function/delfunc")
+  @PreAuthorize("hasPermission('/function/delfunc','')")
+  @ResponseBody
+  public JsonResult delfunc(@RequestParam Integer funcid) {
+    return functionService.deleteFunction(funcid);
+  }
 
-    @GetMapping("/function/loadsubadd")
-    @PreAuthorize("hasPermission('/function/loadsubadd','')")
-    public String loadsubadd(Model model) {
-        List<TFunction> functionList = functionService.getParentFunction();
-        model.addAttribute("list", functionList);
-        return "system/function/subform";
+  @GetMapping("/function/checkname")
+  @ResponseBody
+  public JsonResult checkname(@RequestParam String name,
+                              @RequestParam(value = "id", required = false) Integer id) {
+    TFunction function = functionService.getFunctionByNameAndId(name, id);
+    if (function == null) {
+      return JsonResult.ok();
+    } else {
+      return JsonResult.error("功能名称重复");
     }
+  }
 
-    @GetMapping("/function/loadres")
-    @PreAuthorize("hasPermission('/function/loadres','')")
-    public String loadres(@RequestParam Integer functionid, Model model) {
-        TFunction function = functionService.getFunctionById(functionid);
-        List<TResource> resources = functionService.getResources(functionid);
-        model.addAttribute("function", function);
-        model.addAttribute("resources", resources);
-        return "system/function/reslist";
-    }
-    @GetMapping("/function/reslist")
-    @PreAuthorize("hasPermission('/function/loadres','')")
-    @ResponseBody
-    public PageResult<TResource> reslist(@RequestParam Integer functionid, Model model) {
-        List<TResource> resources = functionService.getResources(functionid);
-        return new PageResult<TResource>(resources);
-    }
-    @GetMapping("/function/loadresadd")
-    public String loadresadd(Model model) {
-        List<TFunction> functionList = functionService.getLeafFunction();
-        model.addAttribute("list", functionList);
-        return "system/function/resform";
-    }
+  @GetMapping("/function/loadsubadd")
+  @PreAuthorize("hasPermission('/function/loadsubadd','')")
+  public String loadsubadd(Model model) {
+    List<TFunction> functionList = functionService.getParentFunction();
+    model.addAttribute("list", functionList);
+    return "system/function/subform";
+  }
 
-    @PostMapping("/function/addres")
-    @PreAuthorize("hasPermission('/function/addres','')")
-    @ResponseBody
-    public JsonResult addres(@RequestBody TResource resource) {
-        if (resource != null) {
-            return functionService.saveRes(resource);
-        } else {
-            return JsonResult.error("添加失败");
-        }
+  @GetMapping("/function/loadres")
+  @PreAuthorize("hasPermission('/function/loadres','')")
+  public String loadres(@RequestParam Integer functionid, Model model) {
+    TFunction function = functionService.getFunctionById(functionid);
+    List<TResource> resources = functionService.getResources(functionid);
+    model.addAttribute("function", function);
+    model.addAttribute("resources", resources);
+    return "system/function/reslist";
+  }
+
+  @GetMapping("/function/reslist")
+  @PreAuthorize("hasPermission('/function/loadres','')")
+  @ResponseBody
+  public PageResult<TResource> reslist(@RequestParam Integer functionid, Model model) {
+    List<TResource> resources = functionService.getResources(functionid);
+    return new PageResult<TResource>(resources);
+  }
+
+  @GetMapping("/function/loadresadd")
+  public String loadresadd(Model model) {
+    List<TFunction> functionList = functionService.getLeafFunction();
+    model.addAttribute("list", functionList);
+    return "system/function/resform";
+  }
+
+  @PostMapping("/function/addres")
+  @PreAuthorize("hasPermission('/function/addres','')")
+  @ResponseBody
+  public JsonResult addres(@RequestBody TResource resource) {
+    if (resource != null) {
+      return functionService.saveRes(resource);
+    } else {
+      return JsonResult.error("添加失败");
     }
-    @GetMapping("/function/editres")
-    public String loadresadd(@RequestParam Integer resid,Model model) {
-        List<TFunction> functionList = functionService.getLeafFunction();
-        model.addAttribute("list", functionList);
-        return "system/function/resform";
-    }
-    @PostMapping("/function/delres")
-    @PreAuthorize("hasPermission('/function/delres','')")
-    @ResponseBody
-    public JsonResult delres(@RequestParam Integer resid) {
-        return functionService.deleteResource(resid);
-    }
+  }
+
+  @GetMapping("/function/editres")
+  public String loadresadd(@RequestParam Integer resid, Model model) {
+    List<TFunction> functionList = functionService.getLeafFunction();
+    model.addAttribute("list", functionList);
+    return "system/function/resform";
+  }
+
+  @PostMapping("/function/delres")
+  @PreAuthorize("hasPermission('/function/delres','')")
+  @ResponseBody
+  public JsonResult delres(@RequestParam Integer resid) {
+    return functionService.deleteResource(resid);
+  }
 }
diff --git a/src/main/java/com/supwisdom/dlpay/system/controller/ParamController.java b/src/main/java/com/supwisdom/dlpay/system/controller/ParamController.java
index d931676..53af3c4 100644
--- a/src/main/java/com/supwisdom/dlpay/system/controller/ParamController.java
+++ b/src/main/java/com/supwisdom/dlpay/system/controller/ParamController.java
@@ -7,6 +7,7 @@
 import com.supwisdom.dlpay.framework.domain.TBusinesspara;
 import com.supwisdom.dlpay.framework.domain.TSyspara;
 import com.supwisdom.dlpay.framework.service.SystemUtilService;
+import com.supwisdom.dlpay.framework.tenant.TenantContext;
 import com.supwisdom.dlpay.framework.util.*;
 import com.supwisdom.dlpay.system.service.ParamService;
 import com.supwisdom.dlpay.util.ConstantUtil;
@@ -306,7 +307,7 @@
         apiClient.setSecret(secret);
       }
       if (!StringUtil.isEmpty(roles)) {
-        apiClient.setRoles(roles.replaceAll(",",";"));
+        apiClient.setRoles(roles.replaceAll(",", ";"));
       }
       if (paramService.saveOrUpdateApiClient(apiClient)) {
         return JsonResult.ok("修改成功");
@@ -336,7 +337,8 @@
       apiClient.setAppid(appid.trim());
       apiClient.setSecret(RandomUtils.getUUIDStr());
       apiClient.setStatus(TradeDict.STATUS_NORMAL);
-      apiClient.setRoles(roles.replaceAll(",",";"));
+      apiClient.setTenantId(TenantContext.getTenantSchema());
+      apiClient.setRoles(roles.replaceAll(",", ";"));
       if (paramService.saveOrUpdateApiClient(apiClient)) {
         return JsonResult.ok("新增成功");
       } else {
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/impl/OperatorServiceImpl.java b/src/main/java/com/supwisdom/dlpay/system/service/impl/OperatorServiceImpl.java
index e58032e..73ce52b 100644
--- a/src/main/java/com/supwisdom/dlpay/system/service/impl/OperatorServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/system/service/impl/OperatorServiceImpl.java
@@ -6,6 +6,7 @@
 import com.supwisdom.dlpay.framework.domain.TOperLog;
 import com.supwisdom.dlpay.framework.domain.TOperRole;
 import com.supwisdom.dlpay.framework.domain.TOperator;
+import com.supwisdom.dlpay.framework.tenant.TenantContext;
 import com.supwisdom.dlpay.framework.util.*;
 import com.supwisdom.dlpay.system.bean.LogBean;
 import com.supwisdom.dlpay.system.bean.OperatorSearchBean;
@@ -29,145 +30,147 @@
 
 @Service
 public class OperatorServiceImpl implements OperatorService {
-    @Autowired
-    private OperatorDao operatorDao;
-    @Autowired
-    private OperRoleDao operRoleDao;
-    @Autowired
-    private OperLogDao operLogDao;
+  @Autowired
+  private OperatorDao operatorDao;
+  @Autowired
+  private OperRoleDao operRoleDao;
+  @Autowired
+  private OperLogDao operLogDao;
 
-    @Override
-    public PageResult<TOperator> getOperatorsByPage(int pageNo, int pageSize, OperatorSearchBean searchBean) {
-        Pageable pageable = PageRequest.of(pageNo - 1, pageSize, Sort.Direction.DESC, "opendate");
-        Page<TOperator> page = operatorDao.findAll(new Specification<TOperator>() {
-            @Override
-            public Predicate toPredicate(Root<TOperator> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder) {
-                List<Predicate> predicates = new ArrayList<>();
-                if (!StringUtil.isEmpty(searchBean.getOpercode())) {
-                    predicates.add(criteriaBuilder.equal(root.get("opercode").as(String.class), searchBean.getOpercode().trim()));
-                }
-                if (!StringUtil.isEmpty(searchBean.getOpername())) {
-                    predicates.add(criteriaBuilder.like(root.get("opername").as(String.class), "%" + searchBean.getOpername().trim() + "%"));
-                }
-                if (!StringUtil.isEmpty(searchBean.getMobile())) {
-                    predicates.add(criteriaBuilder.like(root.get("mobile").as(String.class), "%" + searchBean.getMobile().trim() + "%"));
-                }
-                if (null != searchBean.getDeleteShow() && !searchBean.getDeleteShow()) {
-                    predicates.add(criteriaBuilder.equal(root.get("status").as(String.class), TradeDict.STATUS_NORMAL)); //仅显示正常
-                }
-                return criteriaBuilder.and(predicates.toArray(new Predicate[0]));
-            }
-        }, pageable);
+  @Override
+  public PageResult<TOperator> getOperatorsByPage(int pageNo, int pageSize, OperatorSearchBean searchBean) {
+    Pageable pageable = PageRequest.of(pageNo - 1, pageSize, Sort.Direction.DESC, "opendate");
+    Page<TOperator> page = operatorDao.findAll(new Specification<TOperator>() {
+      @Override
+      public Predicate toPredicate(Root<TOperator> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder) {
+        List<Predicate> predicates = new ArrayList<>();
+        if (!StringUtil.isEmpty(searchBean.getOpercode())) {
+          predicates.add(criteriaBuilder.equal(root.get("opercode").as(String.class), searchBean.getOpercode().trim()));
+        }
+        if (!StringUtil.isEmpty(searchBean.getOpername())) {
+          predicates.add(criteriaBuilder.like(root.get("opername").as(String.class), "%" + searchBean.getOpername().trim() + "%"));
+        }
+        if (!StringUtil.isEmpty(searchBean.getMobile())) {
+          predicates.add(criteriaBuilder.like(root.get("mobile").as(String.class), "%" + searchBean.getMobile().trim() + "%"));
+        }
+        if (null != searchBean.getDeleteShow() && !searchBean.getDeleteShow()) {
+          predicates.add(criteriaBuilder.equal(root.get("status").as(String.class), TradeDict.STATUS_NORMAL)); //仅显示正常
+        }
+        return criteriaBuilder.and(predicates.toArray(new Predicate[0]));
+      }
+    }, pageable);
 
-        return new PageResult<>(page);
-    }
+    return new PageResult<>(page);
+  }
 
-    @Override
-    public boolean checkOpercodeExists(String opercode, String operid) {
-        TOperator oper = operatorDao.findByOpercode(opercode.trim());
-        if (null != oper && StringUtil.isEmpty(operid)) return true;
-        if (null != oper && !StringUtil.isEmpty(operid) && !operid.trim().equals(oper.getOperid())) return true;
+  @Override
+  public boolean checkOpercodeExists(String opercode, String operid) {
+    TOperator oper = operatorDao.findByOpercode(opercode.trim());
+    if (null != oper && StringUtil.isEmpty(operid)) return true;
+    if (null != oper && !StringUtil.isEmpty(operid) && !operid.trim().equals(oper.getOperid())) return true;
+    return false;
+  }
+
+  @Override
+  public boolean saveOperator(TOperator operator, String roles) {
+    if (StringUtil.isEmpty(operator.getOperid())) {
+      String[] roleids = roles.split(",");
+      operator.setOpendate(DateUtil.getNow("yyyyMMdd"));
+      operator.setStatus(TradeDict.STATUS_NORMAL);
+      operator.setOpertype(WebConstant.OPERTYPE_DEFAULT);
+      operator.setTenantId(TenantContext.getTenantSchema());
+      BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
+      operator.setOperpwd(encoder.encode(WebConstant.OPERPWD_DEFAULT));
+      operator = operatorDao.save(operator);
+      for (String role : roleids) {
+        TOperRole operRole = new TOperRole();
+        operRole.setOperid(operator.getOperid());
+        operRole.setRoleId(role);
+        operRoleDao.save(operRole);
+      }
+    } else {
+      Optional<TOperator> temp = operatorDao.findById(operator.getOperid());
+      if (!temp.isPresent()) {
         return false;
+      }
+      TOperator op = temp.get();
+      op.setSex(operator.getSex());
+      op.setEmail(operator.getEmail());
+      op.setMobile(operator.getMobile());
+      op.setOpername(operator.getOpername());
+      op.setOpercode(operator.getOpercode());
+      op.setTenantId(operator.getTenantId());
+      operatorDao.save(op);
+      operRoleDao.deleteByOperid(op.getOperid());
+      String[] roleids = roles.split(",");
+      for (String role : roleids) {
+        TOperRole operRole = new TOperRole();
+        operRole.setOperid(op.getOperid());
+        operRole.setRoleId(role);
+        operRoleDao.save(operRole);
+      }
     }
+    return true;
+  }
 
-    @Override
-    public boolean saveOperator(TOperator operator, String roles) {
-        if (StringUtil.isEmpty(operator.getOperid())) {
-            String[] roleids = roles.split(",");
-            operator.setOpendate(DateUtil.getNow("yyyyMMdd"));
-            operator.setStatus(TradeDict.STATUS_NORMAL);
-            operator.setOpertype(WebConstant.OPERTYPE_DEFAULT);
-            BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
-            operator.setOperpwd(encoder.encode(WebConstant.OPERPWD_DEFAULT));
-            operator = operatorDao.save(operator);
-            for (String role : roleids) {
-                TOperRole operRole = new TOperRole();
-                operRole.setOperid(operator.getOperid());
-                operRole.setRoleId(role);
-                operRoleDao.save(operRole);
-            }
-        } else {
-            Optional<TOperator> temp = operatorDao.findById(operator.getOperid());
-            if (!temp.isPresent()) {
-                return false;
-            }
-            TOperator op = temp.get();
-            op.setSex(operator.getSex());
-            op.setEmail(operator.getEmail());
-            op.setMobile(operator.getMobile());
-            op.setOpername(operator.getOpername());
-            op.setOpercode(operator.getOpercode());
-            operatorDao.save(op);
-            operRoleDao.deleteByOperid(op.getOperid());
-            String[] roleids = roles.split(",");
-            for (String role : roleids) {
-                TOperRole operRole = new TOperRole();
-                operRole.setOperid(op.getOperid());
-                operRole.setRoleId(role);
-                operRoleDao.save(operRole);
-            }
-        }
-        return true;
-    }
+  @Override
+  public TOperator getOperatorByCode(String opercode) {
+    return operatorDao.findByOpercode(opercode);
+  }
 
-    @Override
-    public TOperator getOperatorByCode(String opercode) {
-        return operatorDao.findByOpercode(opercode);
-    }
+  @Override
+  public List<TOperRole> getOperRoleByOperId(String operid) {
+    return operRoleDao.findAllByOperid(operid);
+  }
 
-    @Override
-    public List<TOperRole> getOperRoleByOperId(String operid) {
-        return operRoleDao.findAllByOperid(operid);
+  @Override
+  public boolean resetPwd(String operid) {
+    Optional<TOperator> temp = operatorDao.findById(operid);
+    if (!temp.isPresent()) {
+      return false;
     }
+    TOperator op = temp.get();
+    BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
+    op.setOperpwd(encoder.encode(WebConstant.OPERPWD_DEFAULT));
+    operatorDao.save(op);
+    return true;
+  }
 
-    @Override
-    public boolean resetPwd(String operid) {
-        Optional<TOperator> temp = operatorDao.findById(operid);
-        if (!temp.isPresent()) {
-            return false;
-        }
-        TOperator op = temp.get();
-        BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
-        op.setOperpwd(encoder.encode(WebConstant.OPERPWD_DEFAULT));
-        operatorDao.save(op);
-        return true;
+  @Override
+  public boolean updateState(String operid, String state) {
+    Optional<TOperator> temp = operatorDao.findById(operid);
+    if (!temp.isPresent()) {
+      return false;
     }
+    TOperator op = temp.get();
+    op.setStatus(state);
+    operatorDao.save(op);
+    return true;
+  }
 
-    @Override
-    public boolean updateState(String operid, String state) {
-        Optional<TOperator> temp = operatorDao.findById(operid);
-        if (!temp.isPresent()) {
-            return false;
-        }
-        TOperator op = temp.get();
-        op.setStatus(state);
-        operatorDao.save(op);
-        return true;
-    }
+  @Override
+  public boolean saveOperLog(TOperLog log) {
+    operLogDao.save(log);
+    return true;
+  }
 
-    @Override
-    public boolean saveOperLog(TOperLog log) {
-        operLogDao.save(log);
-        return true;
+  @Override
+  public PageResult<TOperLog> getOperLogs(LogBean param) {
+    Pageable pageable = PageRequest.of(param.getPageNo() - 1, param.getPageSize()
+        , Sort.by(Sort.Direction.DESC, "logdate"));
+    if (!StringUtil.isEmpty(param.getOpername())) {
+      return new PageResult<>(operLogDao.findAllByOpernameContaining(param.getOpername(), pageable));
     }
+    return new PageResult<>(operLogDao.findAll(pageable));
+  }
 
-    @Override
-    public PageResult<TOperLog> getOperLogs(LogBean param) {
-        Pageable pageable = PageRequest.of(param.getPageNo() - 1, param.getPageSize()
-                , Sort.by(Sort.Direction.DESC,"logdate"));
-        if (!StringUtil.isEmpty(param.getOpername())) {
-            return new PageResult<>(operLogDao.findAllByOpernameContaining(param.getOpername(), pageable));
-        }
-        return new PageResult<>(operLogDao.findAll(pageable));
+  @Override
+  public boolean saveOperator(TOperator operator) {
+    Optional<TOperator> temp = operatorDao.findById(operator.getOperid());
+    if (!temp.isPresent()) {
+      return false;
     }
-
-    @Override
-    public boolean saveOperator(TOperator operator) {
-        Optional<TOperator> temp = operatorDao.findById(operator.getOperid());
-        if (!temp.isPresent()) {
-            return false;
-        }
-        operatorDao.save(operator);
-        return true;
-    }
+    operatorDao.save(operator);
+    return true;
+  }
 }
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/impl/ParamServiceImpl.java b/src/main/java/com/supwisdom/dlpay/system/service/impl/ParamServiceImpl.java
index f774582..babde31 100644
--- a/src/main/java/com/supwisdom/dlpay/system/service/impl/ParamServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/system/service/impl/ParamServiceImpl.java
@@ -132,8 +132,8 @@
   }
 
   @Override
-  public boolean saveOrUpdateApiClient(TApiClient apiClient){
-    if(null!=apiClient){
+  public boolean saveOrUpdateApiClient(TApiClient apiClient) {
+    if (null != apiClient) {
       apiClientDao.save(apiClient);
       return true;
     }
@@ -167,8 +167,8 @@
   }
 
   @Override
-  public boolean saveOrUpdatePaytype(TSourceType paytype){
-    if(null!=paytype){
+  public boolean saveOrUpdatePaytype(TSourceType paytype) {
+    if (null != paytype) {
       paytypeDao.save(paytype);
       return true;
     }
@@ -176,8 +176,8 @@
   }
 
   @Override
-  public boolean deletePaytype(TSourceType paytype){
-    if(null!=paytype){
+  public boolean deletePaytype(TSourceType paytype) {
+    if (null != paytype) {
       paytypeDao.delete(paytype);
       return true;
     }
@@ -201,7 +201,8 @@
     for (String key : param.keySet()) {
       String value = param.get(key);
       TPaytypeConfig config = paytypeConfigDao.getByPaytypeAndAndConfigid(tPaytype.getSourceType(), key);
-      if (null == config) throw new WebCheckException("支付能力[" + tPaytype.getSourceType() + "]不存在配置项[" + key + "],请重新查询");
+      if (null == config)
+        throw new WebCheckException("支付能力[" + tPaytype.getSourceType() + "]不存在配置项[" + key + "],请重新查询");
       config.setConfigValue(StringUtil.isEmpty(value) ? null : value.trim());
       paytypeConfigDao.save(config);
     }
@@ -209,5 +210,4 @@
   }
 
 
-
 }
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/impl/RoleServiceImpl.java b/src/main/java/com/supwisdom/dlpay/system/service/impl/RoleServiceImpl.java
index c96485c..66acac4 100644
--- a/src/main/java/com/supwisdom/dlpay/system/service/impl/RoleServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/system/service/impl/RoleServiceImpl.java
@@ -7,6 +7,7 @@
 import com.supwisdom.dlpay.framework.domain.TResource;
 import com.supwisdom.dlpay.framework.domain.TRole;
 import com.supwisdom.dlpay.framework.domain.TRoleFunction;
+import com.supwisdom.dlpay.framework.tenant.TenantContext;
 import com.supwisdom.dlpay.framework.util.DateUtil;
 import com.supwisdom.dlpay.framework.util.PageResult;
 import com.supwisdom.dlpay.framework.util.StringUtil;
@@ -25,154 +26,156 @@
 
 @Service
 public class RoleServiceImpl implements RoleService {
-    @Autowired
-    private RoleDao roleDao;
+  @Autowired
+  private RoleDao roleDao;
 
-    @Autowired
-    private ResourceDao resourceDao;
+  @Autowired
+  private ResourceDao resourceDao;
 
-    @Autowired
-    private RoleFunctionDao roleFunctionDao;
+  @Autowired
+  private RoleFunctionDao roleFunctionDao;
 
-    @Autowired
-    private PermissionDao permissionDao;
-    @Autowired
-    private OperRoleDao operRoleDao;
+  @Autowired
+  private PermissionDao permissionDao;
+  @Autowired
+  private OperRoleDao operRoleDao;
 
 
-    @Override
-    public List<TRole> findAllRoles() {
-        List<TRole> list = roleDao.getAllRoles();
-        if (!StringUtil.isEmpty(list)) return list;
-        return new ArrayList<>(0);
+  @Override
+  public List<TRole> findAllRoles() {
+    List<TRole> list = roleDao.getAllRoles();
+    if (!StringUtil.isEmpty(list)) return list;
+    return new ArrayList<>(0);
+  }
+
+  @Override
+  public TRole findRoleByRoleid(String roleid) {
+    Optional<TRole> role = roleDao.findById(roleid);
+    if (role.isPresent()) {
+      return role.get();
     }
+    return null;
+  }
 
-    @Override
-    public TRole findRoleByRoleid(String roleid) {
-        Optional<TRole> role = roleDao.findById(roleid);
-        if(role.isPresent()){
-            return role.get();
-        }
-        return null;
+  @Override
+  public TResource findResourceByURI(String uri) {
+    return resourceDao.findByUri(uri);
+  }
+
+  @Override
+  public TRoleFunction findRoleFunctionByRoleIdAndFunctionId(String roleid, Integer functionid) {
+    return roleFunctionDao.findByRoleIdAndFunctionId(roleid, functionid);
+  }
+
+  @Override
+  public PageResult<TRole> getRolesByKey(FunctionSearchBean param) {
+    Pageable pageable = PageRequest.of(param.getPageNo() - 1, param.getPageSize()
+        , Sort.by("createtime"));
+    if (!StringUtil.isEmpty(param.getFunctioname())) {
+      return new PageResult<>(roleDao.findAllByRoleNameContaining(param.getFunctioname(), pageable));
     }
+    return new PageResult<>(roleDao.findAll(pageable));
+  }
 
-    @Override
-    public TResource findResourceByURI(String uri) {
-        return resourceDao.findByUri(uri);
+  @Override
+  public JsonResult saveRole(TRole role) {
+    if (!StringUtil.isEmpty(role.getRoleId())) {
+      TRole temp = roleDao.findByRoleNameAndRoleIdNot(role.getRoleName(), role.getRoleId());
+      if (temp != null) {
+        return JsonResult.error("角色名称已存在");
+      }
+      Optional<TRole> opt = roleDao.findById(role.getRoleId());
+      if (opt == null || !opt.isPresent()) {
+        return JsonResult.error("角色已被删除");
+      }
+      temp = opt.get();
+      temp.setRoleName(role.getRoleName());
+      temp.setRoleDesc(role.getRoleDesc());
+//      temp.setRoleCode(role.getRoleCode());
+      temp.setLastsaved(DateUtil.getNow());
+      temp.setTenantId(TenantContext.getTenantSchema());
+      roleDao.save(temp);
+    } else {
+      TRole temp = roleDao.findByRoleName(role.getRoleName());
+      if (temp != null) {
+        return JsonResult.error("角色名称已存在");
+      }
+
+      role.setCreatetime(DateUtil.getNow());
+      role.setEditflag(1);
+      role.setRoleCode("ROLE_ADMIN");
+      role.setTenantId(TenantContext.getTenantSchema());
+      roleDao.save(role);
     }
+    return JsonResult.ok("成功");
+  }
 
-    @Override
-    public TRoleFunction findRoleFunctionByRoleIdAndFunctionId(String roleid, Integer functionid) {
-        return roleFunctionDao.findByRoleIdAndFunctionId(roleid, functionid);
+  @Override
+  public List<TRoleFunction> getRoleFuncByRoleid(String roleId) {
+    return roleFunctionDao.findByRoleId(roleId);
+  }
+
+
+  @Override
+  public TPermission findByRoleIdAndResid(String roleFuncId, Integer resid) {
+    return permissionDao.findByRoleIdAndResid(roleFuncId, resid);
+  }
+
+  @Override
+  public JsonResult saveRoleFuncId(String roleId, String funcs) {
+    Optional<TRole> ret = roleDao.findById(roleId);
+    if (ret == null || !ret.isPresent()) {
+      return JsonResult.error("角色不存在");
     }
-
-    @Override
-    public PageResult<TRole> getRolesByKey(FunctionSearchBean param) {
-        Pageable pageable = PageRequest.of(param.getPageNo() - 1, param.getPageSize()
-                , Sort.by("createtime"));
-        if (!StringUtil.isEmpty(param.getFunctioname())) {
-            return new PageResult<>(roleDao.findAllByRoleNameContaining(param.getFunctioname(), pageable));
-        }
-        return new PageResult<>(roleDao.findAll(pageable));
+    roleFunctionDao.deleteByRoleId(roleId);
+    permissionDao.deleteByRoleId(roleId);
+    String[] datas = funcs.split(",");
+    for (String func : datas) {
+      if (func.contains("_res")) {
+        String id = func.replace("_res", "");
+        TPermission permission = new TPermission();
+        permission.setResid(Integer.valueOf(id));
+        permission.setRoleId(roleId);
+        permissionDao.save(permission);
+      } else {
+        TRoleFunction roleFunction = new TRoleFunction();
+        roleFunction.setFunctionId(Integer.valueOf(func));
+        roleFunction.setRoleId(roleId);
+        roleFunctionDao.save(roleFunction);
+      }
     }
+    return JsonResult.ok("成功");
+  }
 
-    @Override
-    public JsonResult saveRole(TRole role) {
-        if (!StringUtil.isEmpty(role.getRoleId())) {
-            TRole temp = roleDao.findByRoleNameAndRoleIdNot(role.getRoleName(), role.getRoleId());
-            if (temp != null) {
-                return JsonResult.error("角色名称已存在");
-            }
-            Optional<TRole> opt = roleDao.findById(role.getRoleId());
-            if (opt == null || !opt.isPresent()) {
-                return JsonResult.error("角色已被删除");
-            }
-            temp = opt.get();
-            temp.setRoleName(role.getRoleName());
-            temp.setRoleDesc(role.getRoleDesc());
-            temp.setRoleCode(role.getRoleCode());
-            temp.setLastsaved(DateUtil.getNow());
-            roleDao.save(temp);
-        } else {
-            TRole temp = roleDao.findByRoleName(role.getRoleName());
-            if (temp != null) {
-                return JsonResult.error("角色名称已存在");
-            }
-
-            role.setCreatetime(DateUtil.getNow());
-            role.setEditflag(1);
-            role.setRoleCode("ROLE_ADMIN");
-            roleDao.save(role);
-        }
-        return JsonResult.ok("成功");
+  @Override
+  public List<ZTreeNode> findByRoleIdNative(String roleId) {
+    List<NodeData> nodeData = roleFunctionDao.findByRoleIdNative(roleId);
+    List<ZTreeNode> ret = new ArrayList<>();
+    for (NodeData data : nodeData) {
+      ZTreeNode zTreeNode = new ZTreeNode();
+      zTreeNode.setpId(data.getPid());
+      zTreeNode.setId(data.getId());
+      zTreeNode.setName(data.getName());
+      zTreeNode.setChecked(data.getChecked() == 0 ? false : true);
+      zTreeNode.setOpen(data.getOpen() == 0 ? false : true);
+      ret.add(zTreeNode);
     }
+    return ret;
+  }
 
-    @Override
-    public List<TRoleFunction> getRoleFuncByRoleid(String roleId) {
-        return roleFunctionDao.findByRoleId(roleId);
+  @Override
+  public JsonResult deleteRole(String roleid) {
+    Optional<TRole> ret = roleDao.findById(roleid);
+    if (ret == null || !ret.isPresent()) {
+      return JsonResult.error("角色不存在");
     }
-
-
-    @Override
-    public TPermission findByRoleIdAndResid(String roleFuncId, Integer resid) {
-        return permissionDao.findByRoleIdAndResid(roleFuncId, resid);
+    if (ret.get().getEditflag() != 1) {
+      return JsonResult.error("该角色不能删除");
     }
-
-    @Override
-    public JsonResult saveRoleFuncId(String roleId, String funcs) {
-        Optional<TRole> ret = roleDao.findById(roleId);
-        if (ret == null || !ret.isPresent()) {
-            return JsonResult.error("角色不存在");
-        }
-        roleFunctionDao.deleteByRoleId(roleId);
-        permissionDao.deleteByRoleId(roleId);
-        String[] datas = funcs.split(",");
-        for (String func : datas) {
-            if (func.contains("_res")) {
-                String id = func.replace("_res", "");
-                TPermission permission = new TPermission();
-                permission.setResid(Integer.valueOf(id));
-                permission.setRoleId(roleId);
-                permissionDao.save(permission);
-            } else {
-                TRoleFunction roleFunction = new TRoleFunction();
-                roleFunction.setFunctionId(Integer.valueOf(func));
-                roleFunction.setRoleId(roleId);
-                roleFunctionDao.save(roleFunction);
-            }
-        }
-        return JsonResult.ok("成功");
-    }
-
-    @Override
-    public List<ZTreeNode> findByRoleIdNative(String roleId) {
-        List<NodeData> nodeData = roleFunctionDao.findByRoleIdNative(roleId);
-        List<ZTreeNode> ret = new ArrayList<>();
-        for (NodeData data : nodeData) {
-            ZTreeNode zTreeNode = new ZTreeNode();
-            zTreeNode.setpId(data.getPid());
-            zTreeNode.setId(data.getId());
-            zTreeNode.setName(data.getName());
-            zTreeNode.setChecked(data.getChecked() == 0 ? false : true);
-            zTreeNode.setOpen(data.getOpen() == 0 ? false : true);
-            ret.add(zTreeNode);
-        }
-        return ret;
-    }
-
-    @Override
-    public JsonResult deleteRole(String roleid) {
-        Optional<TRole> ret = roleDao.findById(roleid);
-        if (ret == null || !ret.isPresent()) {
-            return JsonResult.error("角色不存在");
-        }
-        if(ret.get().getEditflag()!=1){
-            return JsonResult.error("该角色不能删除");
-        }
-        permissionDao.deleteByRoleId(roleid);
-        roleFunctionDao.deleteByRoleId(roleid);
-        operRoleDao.deleteByRoleId(roleid);
-        roleDao.deleteById(roleid);
-        return JsonResult.ok("成功");
-    }
+    permissionDao.deleteByRoleId(roleid);
+    roleFunctionDao.deleteByRoleId(roleid);
+    operRoleDao.deleteByRoleId(roleid);
+    roleDao.deleteById(roleid);
+    return JsonResult.ok("成功");
+  }
 }
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/impl/ShopDataServiceImpl.java b/src/main/java/com/supwisdom/dlpay/system/service/impl/ShopDataServiceImpl.java
index f2bc236..0594fcc 100644
--- a/src/main/java/com/supwisdom/dlpay/system/service/impl/ShopDataServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/system/service/impl/ShopDataServiceImpl.java
@@ -14,6 +14,7 @@
 import com.supwisdom.dlpay.framework.domain.TShop;
 import com.supwisdom.dlpay.framework.domain.TShopacc;
 import com.supwisdom.dlpay.framework.service.SystemUtilService;
+import com.supwisdom.dlpay.framework.tenant.TenantContext;
 import com.supwisdom.dlpay.framework.util.PageResult;
 import com.supwisdom.dlpay.framework.util.StringUtil;
 import com.supwisdom.dlpay.framework.util.Subject;
@@ -128,6 +129,7 @@
       //新增
       SystemDateTime dt = systemUtilService.getSysdatetime();
       shop.setOpendate(dt.getHostdate());
+      shop.setTenantId(TenantContext.getTenantSchema());
       shopDao.save(shop);
       if (shop.getShoptype() == 1) {
         TShopacc shopacc = new TShopacc();
@@ -138,6 +140,7 @@
         shopacc.setStatus(TradeDict.STATUS_NORMAL);
         shopacc.setOpendate(dt.getHostdate());
         shopacc.setBalance(0D);
+        shopacc.setTenantId(shop.getTenantId());
         shopaccDao.save(shopacc);
 
         shop.setShopaccno(shopacc.getShopaccno());
@@ -219,6 +222,7 @@
   @Override
   public boolean saveOrUpdateShopPaytype(TShopPaytype shopPaytype) {
     if (null != shopPaytype) {
+      shopPaytype.setTenantid(TenantContext.getTenantSchema());
       shopPaytypeDao.save(shopPaytype);
       return true;
     }
@@ -270,6 +274,7 @@
           spc.setConfigName(paytypeConfig.getConfigName());
         }
       }
+      spc.setTenantid(shopPaytype.getTenantid());
       shopPaytypeConfigDao.save(spc);
     }
     return true;
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/impl/UserDataServiceImpl.java b/src/main/java/com/supwisdom/dlpay/system/service/impl/UserDataServiceImpl.java
index 1d7b899..1254d32 100644
--- a/src/main/java/com/supwisdom/dlpay/system/service/impl/UserDataServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/system/service/impl/UserDataServiceImpl.java
@@ -11,6 +11,7 @@
 import com.supwisdom.dlpay.api.domain.TPointsAccount;
 import com.supwisdom.dlpay.framework.data.SystemDateTime;
 import com.supwisdom.dlpay.framework.service.SystemUtilService;
+import com.supwisdom.dlpay.framework.tenant.TenantContext;
 import com.supwisdom.dlpay.framework.util.*;
 import com.supwisdom.dlpay.system.bean.PersonParamBean;
 import com.supwisdom.dlpay.system.service.UserDataService;
@@ -25,153 +26,156 @@
 
 @Service
 public class UserDataServiceImpl implements UserDataService {
-    @Autowired
-    private PersonDao personDao;
-    @Autowired
-    private AccountDao accountDao;
-    @Autowired
-    private PointsAccountDao pointsAccountDao;
-    @Autowired
-    private SystemUtilService systemUtilService;
-    @Autowired
-    private PersonIdentityDao personIdentityDao;
+  @Autowired
+  private PersonDao personDao;
+  @Autowired
+  private AccountDao accountDao;
+  @Autowired
+  private PointsAccountDao pointsAccountDao;
+  @Autowired
+  private SystemUtilService systemUtilService;
+  @Autowired
+  private PersonIdentityDao personIdentityDao;
 
-    @Override
-    public PageResult<TPerson> getPersonsByKey(PersonParamBean param) {
-        Pageable pageable = PageRequest.of(param.getPageNo() - 1, param.getPageSize()
-                , Sort.by(Sort.Direction.DESC, "lastsaved"));
-        if (!StringUtil.isEmpty(param.getName())) {
-            return new PageResult<>(personDao.findAllByNameContaining(param.getName(), pageable));
-        }
-        return new PageResult<>(personDao.findAll(pageable));
+  @Override
+  public PageResult<TPerson> getPersonsByKey(PersonParamBean param) {
+    Pageable pageable = PageRequest.of(param.getPageNo() - 1, param.getPageSize()
+        , Sort.by(Sort.Direction.DESC, "lastsaved"));
+    if (!StringUtil.isEmpty(param.getName())) {
+      return new PageResult<>(personDao.findAllByNameContaining(param.getName(), pageable));
     }
+    return new PageResult<>(personDao.findAll(pageable));
+  }
 
-    @Override
-    public PageResult<TAccount> getAccountsByKey(PersonParamBean param) {
-        Pageable pageable = PageRequest.of(param.getPageNo() - 1, param.getPageSize());
-        if (!StringUtil.isEmpty(param.getName())) {
-            return new PageResult<>(accountDao.findAllByAccnameContaining(param.getName(), pageable));
-        }
-        return new PageResult<>(accountDao.findAll(pageable));
+  @Override
+  public PageResult<TAccount> getAccountsByKey(PersonParamBean param) {
+    Pageable pageable = PageRequest.of(param.getPageNo() - 1, param.getPageSize());
+    if (!StringUtil.isEmpty(param.getName())) {
+      return new PageResult<>(accountDao.findAllByAccnameContaining(param.getName(), pageable));
     }
+    return new PageResult<>(accountDao.findAll(pageable));
+  }
 
-    @Override
-    public PageResult<TPointsAccount> getPointsByKey(PersonParamBean param) {
-        Pageable pageable = PageRequest.of(param.getPageNo() - 1, param.getPageSize());
-        if (!StringUtil.isEmpty(param.getName())) {
-            return new PageResult<>(pointsAccountDao.findAllByNameContaining(param.getName(), pageable));
-        }
-        return new PageResult<>(pointsAccountDao.findAll(pageable));
+  @Override
+  public PageResult<TPointsAccount> getPointsByKey(PersonParamBean param) {
+    Pageable pageable = PageRequest.of(param.getPageNo() - 1, param.getPageSize());
+    if (!StringUtil.isEmpty(param.getName())) {
+      return new PageResult<>(pointsAccountDao.findAllByNameContaining(param.getName(), pageable));
     }
+    return new PageResult<>(pointsAccountDao.findAll(pageable));
+  }
 
-    @Override
-    public JsonResult saveUser(TPerson person) {
-        if (!StringUtil.isEmpty(person.getUserid())) {
-            Optional<TPerson> temp = personDao.findById(person.getUserid());
-            if (!temp.isPresent()) {
-                return JsonResult.error("参数错误");
-            }
-            TPerson it = temp.get();
-            if (!person.getIdno().equals(it.getIdno())
-                    || !person.getIdtype().equals(it.getIdtype())) {
-                TPerson has = personDao.findByIdentity(person.getIdtype(), person.getIdno());
-                if (has != null && !has.getUserid().equals(person.getUserid())) {
-                    return JsonResult.error("证件类型、证件号已存在");
-                }
-            }
-            if (!person.getName().equals(it.getName())) {
-                TAccount account = accountDao.findByUserid(person.getUserid());
-                if (account != null) {
-                    account.setAccname(person.getName());
-                    accountDao.save(account);
-                }
-            }
-            if (StringUtil.isEmpty(person.getStatus())) {
-                person.setStatus(TradeDict.STATUS_NORMAL);
-            }
-            personDao.save(person);
-        } else {
-            TPerson has = personDao.findByIdentity(person.getIdtype(), person.getIdno());
-            if (has != null) {
-                return JsonResult.error("证件类型、证件号已存在");
-            }
-            SystemDateTime systemDateTime = systemUtilService.getSysdatetime();
-            person.setStatus(TradeDict.STATUS_NORMAL);
-            person.setLastsaved(systemDateTime.getHostdatetime());
-            person = personDao.save(person);
-
-            TAccount account = new TAccount();
-            account.setAccname(person.getName());
-            account.setSubjno(Subject.SUBJNO_PERSONAL_DEPOSIT);
-            account.setUserid(person.getUserid());
-            account.setTransStatus(person.getStatus());
-            account.setBalance(0.0);
-            account.setAvailbal(0.0);
-            account.setFrozebal(0.0);
-            account.setLowfreeFlag(false);
-            account.setMaxbal(systemUtilService.getSysparaValueAsDouble(SysparaUtil.SYSPARAID_NO1, SysparaUtil.SYSPARA_NO1_DEFAULT));
-            account.setLastdayDpsamt(0.0);
-            account.setLastdayTransamt(0.0);
-            account.setOpendate(systemDateTime.getHostdate());
-            account.setTac(account.generateTac());
-            accountDao.save(account);
+  @Override
+  public JsonResult saveUser(TPerson person) {
+    if (!StringUtil.isEmpty(person.getUserid())) {
+      Optional<TPerson> temp = personDao.findById(person.getUserid());
+      if (!temp.isPresent()) {
+        return JsonResult.error("参数错误");
+      }
+      TPerson it = temp.get();
+      if (!person.getIdno().equals(it.getIdno())
+          || !person.getIdtype().equals(it.getIdtype())) {
+        TPerson has = personDao.findByIdentity(person.getIdtype(), person.getIdno());
+        if (has != null && !has.getUserid().equals(person.getUserid())) {
+          return JsonResult.error("证件类型、证件号已存在");
         }
-        return JsonResult.ok("添加成功");
-    }
-
-    @Override
-    public JsonResult deleteUser(String userid) {
-        TAccount account = accountDao.findByUserid(userid);
+      }
+      if (!person.getName().equals(it.getName())) {
+        TAccount account = accountDao.findByUserid(person.getUserid());
         if (account != null) {
-            if (!TradeDict.STATUS_CLOSED.equals(account.getTransStatus()) && account.getBalance() != 0) {
-                return JsonResult.error("该用户账户未注销且余额不为0,无法删除");
-            } else {
-                accountDao.delete(account);
-            }
+          account.setAccname(person.getName());
+          accountDao.save(account);
         }
-        TPointsAccount pointsAccount = pointsAccountDao.findByUserid(userid);
-        if (pointsAccount != null) {
-            if (pointsAccount.getPoints() != 0) {
-                return JsonResult.error("该用户账户积分不为0,无法删除,若要删除请先删除积分账户");
-            } else {
-                pointsAccountDao.delete(pointsAccount);
-            }
-        }
-        personDao.deleteById(userid);
-        return JsonResult.ok("操作成功");
-    }
+      }
+      if (StringUtil.isEmpty(person.getStatus())) {
+        person.setStatus(TradeDict.STATUS_NORMAL);
+      }
+      person.setTenantid(TenantContext.getTenantSchema());
+      personDao.save(person);
+    } else {
+      TPerson has = personDao.findByIdentity(person.getIdtype(), person.getIdno());
+      if (has != null) {
+        return JsonResult.error("证件类型、证件号已存在");
+      }
+      SystemDateTime systemDateTime = systemUtilService.getSysdatetime();
+      person.setStatus(TradeDict.STATUS_NORMAL);
+      person.setLastsaved(systemDateTime.getHostdatetime());
+      person.setTenantid(TenantContext.getTenantSchema());
+      person = personDao.save(person);
 
-    @Override
-    public JsonResult closeAccount(String accno) {
-        Optional<TAccount> opt = accountDao.findById(accno);
-        if (opt.isPresent()) {
-            TAccount acc = opt.get();
-            acc.setTransStatus(TradeDict.STATUS_CLOSED);
-            accountDao.save(acc);
-            return JsonResult.ok("操作成功");
-        } else {
-            return JsonResult.error("参数错误");
-        }
+      TAccount account = new TAccount();
+      account.setAccname(person.getName());
+      account.setSubjno(Subject.SUBJNO_PERSONAL_DEPOSIT);
+      account.setUserid(person.getUserid());
+      account.setTransStatus(person.getStatus());
+      account.setBalance(0.0);
+      account.setAvailbal(0.0);
+      account.setFrozebal(0.0);
+      account.setLowfreeFlag(false);
+      account.setMaxbal(systemUtilService.getSysparaValueAsDouble(SysparaUtil.SYSPARAID_NO1, SysparaUtil.SYSPARA_NO1_DEFAULT));
+      account.setLastdayDpsamt(0.0);
+      account.setLastdayTransamt(0.0);
+      account.setOpendate(systemDateTime.getHostdate());
+      account.setTac(account.generateTac());
+      account.setTenantid(person.getTenantid());
+      accountDao.save(account);
     }
+    return JsonResult.ok("添加成功");
+  }
 
-    @Override
-    public JsonResult deletePoint(String userid) {
-        Optional<TPointsAccount> pointsAccount = pointsAccountDao.findById(userid);
-        if (pointsAccount.isPresent()) {
-            pointsAccountDao.delete(pointsAccount.get());
-            return JsonResult.ok("操作成功");
-        }else {
-            return JsonResult.error("参数错误");
-        }
+  @Override
+  public JsonResult deleteUser(String userid) {
+    TAccount account = accountDao.findByUserid(userid);
+    if (account != null) {
+      if (!TradeDict.STATUS_CLOSED.equals(account.getTransStatus()) && account.getBalance() != 0) {
+        return JsonResult.error("该用户账户未注销且余额不为0,无法删除");
+      } else {
+        accountDao.delete(account);
+      }
     }
+    TPointsAccount pointsAccount = pointsAccountDao.findByUserid(userid);
+    if (pointsAccount != null) {
+      if (pointsAccount.getPoints() != 0) {
+        return JsonResult.error("该用户账户积分不为0,无法删除,若要删除请先删除积分账户");
+      } else {
+        pointsAccountDao.delete(pointsAccount);
+      }
+    }
+    personDao.deleteById(userid);
+    return JsonResult.ok("操作成功");
+  }
 
-    @Override
-    public List<TPersonIdentity> getPersonIdentity(String userid) {
-        return null;
+  @Override
+  public JsonResult closeAccount(String accno) {
+    Optional<TAccount> opt = accountDao.findById(accno);
+    if (opt.isPresent()) {
+      TAccount acc = opt.get();
+      acc.setTransStatus(TradeDict.STATUS_CLOSED);
+      accountDao.save(acc);
+      return JsonResult.ok("操作成功");
+    } else {
+      return JsonResult.error("参数错误");
     }
+  }
 
-    @Override
-    public PageResult<TPointsAccount> getUserPointDTL(PersonParamBean param) {
-        return null;
+  @Override
+  public JsonResult deletePoint(String userid) {
+    Optional<TPointsAccount> pointsAccount = pointsAccountDao.findById(userid);
+    if (pointsAccount.isPresent()) {
+      pointsAccountDao.delete(pointsAccount.get());
+      return JsonResult.ok("操作成功");
+    } else {
+      return JsonResult.error("参数错误");
     }
+  }
+
+  @Override
+  public List<TPersonIdentity> getPersonIdentity(String userid) {
+    return null;
+  }
+
+  @Override
+  public PageResult<TPointsAccount> getUserPointDTL(PersonParamBean param) {
+    return null;
+  }
 }
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/transaction_service_impl.kt b/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/transaction_service_impl.kt
index 6f51928..44598d1 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/transaction_service_impl.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/transaction_service_impl.kt
@@ -1,6 +1,5 @@
 package com.supwisdom.dlpay.api.service.impl
 
-import com.supwisdom.dlpay.api.AccountProxy
 import com.supwisdom.dlpay.api.TransactionBuilder
 import com.supwisdom.dlpay.api.dao.AccountDao
 import com.supwisdom.dlpay.api.dao.TransactionMainDao
@@ -13,6 +12,7 @@
 import com.supwisdom.dlpay.framework.dao.ShopaccDao
 import com.supwisdom.dlpay.framework.dao.SubjectDao
 import com.supwisdom.dlpay.framework.service.SystemUtilService
+import com.supwisdom.dlpay.framework.tenant.TenantContext
 import com.supwisdom.dlpay.framework.util.Subject
 import com.supwisdom.dlpay.framework.util.TradeDict
 import com.supwisdom.dlpay.framework.util.TradeErrorCode
@@ -78,7 +78,7 @@
                 createTime = systemUtilService.sysdatetime.sysdate
                 operid = builder.operId
                 opertype = builder.operType
-                reverseFlag = builder.reverseType
+                reverseFlag = TradeDict.REVERSE_FLAG_NONE
                 checkable = sourceType.checkable
                 transCode = builder.transCode
                 reverseType = builder.reverseType
@@ -86,6 +86,7 @@
                 refundAmount = 0.0
                 checkDate = null
                 settleDate = null
+                tenantid = TenantContext.getTenantSchema()
                 this.sourceType = sourceType.sourceType
             }
 
@@ -110,6 +111,7 @@
                     oppositeAccName = builder.person().oppositeAccName()
                     this.reverseFlag = TradeDict.REVERSE_FLAG_NONE
                     remark = builder.person().remark
+                    tenantid = transaction.tenantid
                     this.status = status
                 }.also {
                     //                    persondtlDao.save(it)
@@ -138,6 +140,7 @@
                     this.remark = builder.shop().remark
                     this.reverseFlag = TradeDict.REVERSE_FLAG_NONE
                     this.updateBala = false
+                    this.tenantid = transaction.tenantid
                     this.status = status
                 }.also {
                     // save shopdtl
@@ -158,6 +161,7 @@
                     this.transTime = builder.transTime
                     this.oppositeAccNo = builder.subject().oppositeAccNo()
                     this.oppositeAccName = builder.subject().oppositeAccName()
+                    this.tenantid = transaction.tenantid
                     this.status = status
                 }.also {
                     transaction.subjectDtl = it
@@ -176,6 +180,7 @@
                     this.amount = line.amount
                     this.summary = line.summary
                     this.settleDate = null
+                    this.tenantid = transaction.tenantid
                 }
             }.apply {
                 transaction.details = this
diff --git a/src/main/kotlin/com/supwisdom/dlpay/framework/controller/security_controller.kt b/src/main/kotlin/com/supwisdom/dlpay/framework/controller/security_controller.kt
index 393b5fb..0bb3345 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/framework/controller/security_controller.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/framework/controller/security_controller.kt
@@ -83,15 +83,15 @@
                         .fail(TradeErrorCode.BUSINESS_DEAL_ERROR, "API状态错误"))
             }
             get()
-        }.let {
+        }.let { api ->
             val token = generateRandomToken()
             val now = systemUtil.sysdatetime.hostdatetime
-            ApiClientRedis().apply {
-                id = if (clientid == null) appid else "$appid-$clientid"
-                loginTimestamp = now
-                roles = it.roles
-                this.tenantId = tenantId
-                this.token = HmacUtil.HMACSHA256(token, it.secret)
+            ApiClientRedis().also {
+                it.id = if (clientid == null) appid else "$appid-$clientid"
+                it.loginTimestamp = now
+                it.roles = api.roles
+                it.tenantId = tetantId
+                it.token = HmacUtil.HMACSHA256(token, api.secret)
             }.also {
                 apiClientRepository.save(it)
             }
diff --git a/src/main/kotlin/com/supwisdom/dlpay/security.kt b/src/main/kotlin/com/supwisdom/dlpay/security.kt
index d898fb7..614f548 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/security.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/security.kt
@@ -81,7 +81,7 @@
             url = url.replace(context, "")
         }
         logger.info(url)
-        if(!url.startsWith("/api/")&&!url.startsWith("/mobileapi/")){
+        if (!url.startsWith("/api/") && !url.startsWith("/mobileapi/")){
             filterChain.doFilter(request, response)
             return
         }
diff --git a/src/main/resources/data-postgresql.sql b/src/main/resources/data-postgresql.sql
new file mode 100644
index 0000000..bdea1da
--- /dev/null
+++ b/src/main/resources/data-postgresql.sql
@@ -0,0 +1,14 @@
+--pg--
+INSERT INTO "tb_period" ("period_year", "period_month", "startdate", "enddate", "settleflag" , "tenantid")
+VALUES (to_number(to_char(CURRENT_TIMESTAMP,'yyyy'),'9999'),to_number(to_char(CURRENT_TIMESTAMP,'MM'),'99'), to_char(CURRENT_TIMESTAMP,'yyyyMM')||'01', to_char((to_date(to_char(CURRENT_TIMESTAMP+'1 month','yyyyMM')||'01','yyyyMMdd')-1)::Timestamp,'yyyyMMdd'), 0, '{tenantid}');
+
+insert into TB_SETTLECTL(BOOKSETNO,PERIODYEAR,PERIODMONTH,STATDATE,SETTLEDATE,STATUS,updtime, "tenantid")
+values (1,to_number(to_char(CURRENT_TIMESTAMP,'yyyy'),'9999'),to_number(to_char(CURRENT_TIMESTAMP,'MM'),'99'),to_number(to_char(CURRENT_TIMESTAMP,'yyyyMMdd'),'99999999'),to_number(to_char(CURRENT_TIMESTAMP,'yyyyMMdd'),'99999999'),0,to_char(CURRENT_TIMESTAMP,'yyyyMMddhh24miss'), '{tenantid}');
+
+insert into TB_VOUCHERNOCTL(VOUCHERTYPE,PERIODMONTH,VOUCHERNO,"tenantid")
+values (1,to_number(to_char(CURRENT_TIMESTAMP,'MM'),'99'),0, , '{tenantid}');
+
+CREATE SEQUENCE seq_refno;
+
+---------  end of script
+commit;
diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql
new file mode 100644
index 0000000..6b60981
--- /dev/null
+++ b/src/main/resources/data.sql
@@ -0,0 +1,510 @@
+INSERT INTO tb_tenantconfig(cfgid, tenantid, datacenter_id)
+values ('main', '{tenantid}', '01');
+
+INSERT INTO tb_operator(operid, closedate, opendate, opercode, opername, operpwd, opertype, status, tenantid)
+VALUES ('LOR2IwRkbOjp+sVG9KR2BpHZbwGKepS4', '20500101', '20190101', 'system', '系统管理员', '$2a$10$Ex9xp11.vCaD8D0a7ahiUOKqDij1TcCUBwRAmrqXeDvAkmzLibn4.', 'oper', 'normal', '{tenantid}');
+
+
+INSERT INTO tb_role(roleid, createtime, editflag, lastsaved, rolecode, roledesc, rolename, tenantid)
+VALUES ('d1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '20190101000000', 0, '', 'ROLE_ADMIN', '超级管理员', '超级管理员', '{tenantid}');
+
+INSERT INTO tb_oper_role(id, operid, roleid, tenantid)
+VALUES ('1', 'LOR2IwRkbOjp+sVG9KR2BpHZbwGKepS4', 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+
+INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid)
+VALUES (1, NULL, 0, NULL, 'layui-icon-home', '#', '主页', 1, -1, '{tenantid}');
+INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid)
+VALUES (2, NULL, 1, NULL, 'layui-icon-home', '/home/console', '控制台', 1, 1, '{tenantid}');
+INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid)
+VALUES (3, NULL, 0, NULL, 'layui-icon-set', '#', '系统中心', 2, -1, '{tenantid}');
+INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid)
+VALUES (5, NULL, 1, NULL, 'layui-icon-set', '/role/index', '角色管理', 2, 3, '{tenantid}');
+INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid)
+VALUES (6, NULL, 1, NULL, 'layui-icon-set', '/operator/index', '操作员管理', 4, 3, '{tenantid}');
+INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid)
+VALUES (4, NULL, 1, NULL, 'layui-icon-set', '/function/index', '功能维护', 1, 3, '{tenantid}');
+INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid)
+VALUES (7, NULL, 0, NULL, 'layui-icon-release', '#', '商户中心', 4, -1, '{tenantid}');
+INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid)
+VALUES (9, NULL, 1, NULL, '', '/operator/logs', '操作日志', 4, 3, '{tenantid}');
+INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid)
+VALUES (10, NULL, 0, NULL, 'layui-icon-util', '#', '参数管理', 3, -1, '{tenantid}');
+INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid)
+VALUES (11, NULL, 1, NULL, 'layui-icon-util', '/param/syspara', '全局参数配置', 1, 10, '{tenantid}');
+INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid)
+VALUES (12, NULL, 1, NULL, 'layui-icon-util', '/param/businesspara', '业务参数配置', 2, 10, '{tenantid}');
+INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid)
+VALUES (17, NULL, 1, NULL, 'layui-icon-util', '/param/apiclientpara', '应用参数配置', 3, 10, '{tenantid}');
+INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid)
+VALUES (18, NULL, 1, NULL, 'layui-icon-util', '/param/paytype', '支付能力配置', 4, 10, '{tenantid}');
+INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid)
+VALUES (19, NULL, 0, NULL, 'layui-icon-user', '#', '用户中心', 5, -1, '{tenantid}');
+INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid)
+VALUES (20, NULL, 0, NULL, 'layui-icon-rmb', '#', '结算中心', 6, -1, '{tenantid}');
+INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid)
+VALUES (21, NULL, 1, NULL, '', '/user/index', '用户管理', 1, 19, '{tenantid}');
+INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid)
+VALUES (23, NULL, 1, NULL, '', '/shop/index', '商户管理', 1, 7, '{tenantid}');
+INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid)
+VALUES (24, NULL, 1, NULL, '', '/user/point', '积分管理', 3, 19, '{tenantid}');
+INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid)
+VALUES (22, NULL, 1, NULL, '', '/user/acc', '账户管理', 2, 19, '{tenantid}');
+INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid)
+VALUES (25, NULL, 1, NULL, '', '/shop/config', '商户支付能力配置', 2, 7, '{tenantid}');
+INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid)
+VALUES (26, NULL, 0, NULL, 'layui-icon-tabs', '#', '流水管理', 3, -1, '{tenantid}');
+INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid)
+VALUES (27, NULL, 1, NULL, '', '/dtl/userdtl', '个人流水查询', 1, 26, '{tenantid}');
+INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid)
+VALUES (28, NULL, 1, NULL, '', '/dtl/shopdtl', '商户流水查询', 2, 26, '{tenantid}');
+INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid)
+VALUES (29, NULL, 1, NULL, '', '/report/subjectday', '科目汇总表', 1, 20, '{tenantid}');
+INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid)
+VALUES (30, NULL, 1, NULL, '', '/report/subjectdetail', '科目明细账', 2, 20, '{tenantid}');
+INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid)
+VALUES (31, NULL, 1, NULL, '', '/report/shopbusiness', '商户营业情况表', 3, 20, '{tenantid}');
+
+
+INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions", tenantid)
+VALUES ('ff8080816b7947ed016b7955772c0032', 1, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL, '{tenantid}');
+INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions", tenantid)
+VALUES ('ff8080816b7947ed016b7955772d0033', 2, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL, '{tenantid}');
+INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions", tenantid)
+VALUES ('ff8080816b7947ed016b7955772d0034', 3, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL, '{tenantid}');
+INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions", tenantid)
+VALUES ('ff8080816b7947ed016b7955772d0035', 5, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL, '{tenantid}');
+INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions", tenantid)
+VALUES ('ff8080816b7947ed016b79557730003b', 6, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL, '{tenantid}');
+INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions", tenantid)
+VALUES ('ff8080816b7947ed016b795577310041', 4, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL, '{tenantid}');
+INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions", tenantid)
+VALUES ('ff8080816b7947ed016b79557732004a', 9, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL, '{tenantid}');
+INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions", tenantid)
+VALUES ('ff8080816b7947ed016b79557732004c', 7, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL, '{tenantid}');
+INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions", tenantid)
+VALUES ('ff8080816b7947ed016b79557732004d', 23, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL, '{tenantid}');
+INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions", tenantid)
+VALUES ('ff8080816b7947ed016b795577330052', 25, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL, '{tenantid}');
+INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions", tenantid)
+VALUES ('ff8080816b7947ed016b79557733005a', 20, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL, '{tenantid}');
+INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions", tenantid)
+VALUES ('ff8080816b7947ed016b79557733005b', 29, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL, '{tenantid}');
+INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions", tenantid)
+VALUES ('ff8080816b7947ed016b79557733005d', 30, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL, '{tenantid}');
+INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions", tenantid)
+VALUES ('ff8080816b7947ed016b79557733005f', 31, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL, '{tenantid}');
+INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions", tenantid)
+VALUES ('ff8080816b7947ed016b795577340061', 19, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL, '{tenantid}');
+INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions", tenantid)
+VALUES ('ff8080816b7947ed016b795577340062', 21, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL, '{tenantid}');
+INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions", tenantid)
+VALUES ('ff8080816b7947ed016b795577350068', 24, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL, '{tenantid}');
+INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions", tenantid)
+VALUES ('ff8080816b7947ed016b79557735006a', 22, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL, '{tenantid}');
+INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions", tenantid)
+VALUES ('ff8080816b7947ed016b79557735006c', 26, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL, '{tenantid}');
+INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions", tenantid)
+VALUES ('ff8080816b7947ed016b79557735006d', 27, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL, '{tenantid}');
+INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions", tenantid)
+VALUES ('ff8080816b7947ed016b79557735006f', 28, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL, '{tenantid}');
+INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions", tenantid)
+VALUES ('ff8080816b7947ed016b795577350071', 10, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL, '{tenantid}');
+INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions", tenantid)
+VALUES ('ff8080816b7947ed016b795577350072', 11, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL, '{tenantid}');
+INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions", tenantid)
+VALUES ('ff8080816b7947ed016b795577360074', 17, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL, '{tenantid}');
+INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions", tenantid)
+VALUES ('ff8080816b7947ed016b79557736007b', 12, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL, '{tenantid}');
+INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions", tenantid)
+VALUES ('ff8080816b7947ed016b795577370081', 18, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL, '{tenantid}');
+
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (4, '1', 4, '添加功能', '/function/add', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (5, '', 4, '添加父功能', '/function/loadadd', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (6, '1', 6, '查询', '/operator/index', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (7, '', 6, '添加查询', '/operator/load4add', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (8, '', 6, '添加和修改', '/operator/add', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (9, '', 6, '重置密码', '/operator/resetpwd', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (10, '', 4, '查询', '/function/index', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (11, '', 4, '删除', '/function/delfunc', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (12, '', 4, '添加子功能', '/function/loadsubadd', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (13, '', 4, '维护资源', '/function/loadres', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (14, '', 4, '添加资源', '/function/addres', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (15, '', 4, '删除资源', '/function/delres', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (16, '', 5, '查询', '/role/index', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (17, '', 5, '添加', '/role/add', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (19, '', 5, '分配功能', '/role/addfunc', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (20, '', 5, '加载分配功能', '/role/loadfunc', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (21, '', 5, '删除角色', '/role/del', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (22, '', 6, '修改状态', '/operator/updatestate', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (24, '', 9, '查询', '/operator/logslist', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (26, '', 11, '修改', '/param/sysparaupdate', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (27, '', 11, '查询', '/param/syspara', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (28, '', 12, '查询', '/param/businesspara', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (29, '', 12, '删除', '/param/deletebusinesspara', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (30, '', 12, '修改', '/param/businessparaupdate', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (32, '', 12, '新增', '/param/addbusinesspara', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (33, '', 12, '新增跳转', '/param/load4addbuspara', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (34, '', 17, '查询', '/param/apiclientpara', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (35, '', 17, '新增修改跳转', '/param/load4addapiclient', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (36, '', 17, '修改状态', '/param/updateapiclientstate', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (37, '', 17, '删除', '/param/deleteapiclient', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (39, '', 17, '修改', '/param/updateapiclientpara', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (40, '', 17, '新增', '/param/addapiclientpara', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (41, '', 18, '查询', '/param/paytype', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (42, '', 21, '查询', '/user/list', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (43, '', 18, '新增跳转', '/param/load4addpaytype', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (44, '', 18, '切换状态', '/param/updatepaytypestate', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (45, '', 18, '修改', '/param/updatepaytypename', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (46, '', 18, '删除', '/param/deletepaytype', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (48, '', 18, '配置跳转', '/param/load4paytypeconfig', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (49, '', 18, '配置参数', '/param/addpaytypeconfig', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (50, '', 22, '查询', '/user/account', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (52, '', 24, '查询', '/user/pointlist', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (53, '', 23, '删除', '/shop/deleteshop', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (54, '', 21, '添加', '/user/add', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (56, '', 23, '查询', '/shop/getshopinfo', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (57, '', 23, '商户树', '/shop/index', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (58, '', 23, '新增修改', '/shop/saveorupdate', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (59, '', 21, '删除', '/user/del', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (60, '', 21, '注销账户', '/user/delacc', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (61, '', 21, '删除积分账户', '/user/delpoint', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (63, '', 25, '商户树', '/shop/config', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (64, '', 25, '查询', '/shop/shoppaytypelist', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (65, '', 25, '切换状态', '/shop/updatepaytypestat', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (66, '', 25, '新增跳转', '/shop/load4addpaytype', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (67, '', 25, '新增', '/shop/addshoppaytype', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (68, '', 25, '配置跳转', '/shop/load4paytypepara', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (69, '', 25, '配置', '/shop/addpaytypepara', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (70, '', 27, '查询', '/dtl/userdtl', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (71, '', 28, '查询', '/dtl/shopdtl', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (72, '', 29, '查询', '/report/subjectday', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (73, '', 30, '查询', '/report/subjectdetail', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (74, '', 31, '查询', '/report/shopbusiness', '{tenantid}');
+INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
+VALUES (76, '', 18, '新增', '/param/addpaytype', '{tenantid}');
+
+INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid", tenantid)
+VALUES ('ff8080816b7947ed016b795577300036', 16, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid", tenantid)
+VALUES ('ff8080816b7947ed016b795577300037', 17, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid", tenantid)
+VALUES ('ff8080816b7947ed016b795577300038', 19, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid", tenantid)
+VALUES ('ff8080816b7947ed016b795577300039', 20, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid", tenantid)
+VALUES ('ff8080816b7947ed016b79557730003a', 21, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid", tenantid)
+VALUES ('ff8080816b7947ed016b79557730003c', 6, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid", tenantid)
+VALUES ('ff8080816b7947ed016b79557730003d', 7, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b79557731003e', 8, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b79557731003f', 9, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b795577310040', 22, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b795577310042', 4, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b795577310043', 5, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b795577310044', 10, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b795577310045', 11, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b795577310046', 12, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b795577320047', 13, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b795577320048', 14, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b795577320049', 15, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b79557732004b', 24, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b79557732004e', 53, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b79557732004f', 57, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b795577320050', 56, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b795577320051', 58, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b795577330053', 63, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+ VALUES ('ff8080816b7947ed016b795577330054', 64, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b795577330055', 65, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b795577330056', 66, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+ VALUES ('ff8080816b7947ed016b795577330057', 68, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+ VALUES ('ff8080816b7947ed016b795577330058', 67, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+ VALUES ('ff8080816b7947ed016b795577330059', 69, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b79557733005c', 72, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b79557733005e', 73, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b795577340060', 74, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b795577340063', 54, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b795577340064', 60, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b795577340065', 61, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+ VALUES ('ff8080816b7947ed016b795577350066', 42, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b795577350067', 59, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b795577350069', 52, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+ VALUES ('ff8080816b7947ed016b79557735006b', 50, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b79557735006e', 70, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b795577350070', 71, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b795577360073', 27, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b795577360075', 39, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b795577360076', 34, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b795577360077', 40, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b795577360078', 37, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b795577360079', 36, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b79557736007a', 35, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b79557736007c', 33, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b79557736007d', 32, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b79557736007e', 28, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+ VALUES ('ff8080816b7947ed016b79557737007f', 30, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b795577370080', 29, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b795577370082', 46, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b795577370083', 48, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b795577370084', 41, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b795577370085', 44, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+ VALUES ('ff8080816b7947ed016b795577370086', 49, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b795577370087', 45, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816b7947ed016b795577370088', 43, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+
+
+INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES ('1001', 1, 'y', 1, NULL, 20190430, 1, '库存现金', 1, '{tenantid}');
+INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES ('1002', 1, 'y', 1, NULL, 20190430, 1, '银行存款', 1, '{tenantid}');
+INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES ('1121', 1, 'n', 0, NULL, 20190430, 1, '应收票据', 1, '{tenantid}');
+INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES ('112101', 1, 'n', 1, '1121', 20190430, 2, '支票', 1, '{tenantid}');
+INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES ('112102', 1, 'n', 1, '1121', 20190430, 2, '经费本', 1, '{tenantid}');
+INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES ('1122', 1, 'y', 0, NULL, 20190430, 1, '应收账款', 1, '{tenantid}');
+INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES ('112201', 1, 'y', 1, '1122', 20190430, 2, '现金充值款', 1, '{tenantid}');
+INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES ('112209', 1, 'y', 1, '1122', 20190617, 2, '其他第三方充值款', 1, '{tenantid}');
+INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES ('112210', 1, 'y', 1, '1122', 20190430, 2, '支付宝充值款', 1, '{tenantid}');
+INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES ('112211', 1, 'y', 1, '1122', 20190430, 2, '微信充值款', 1, '{tenantid}');
+INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES ('112212', 1, 'n', 1, '1122', 20190430, 2, '银联充值款', 1, '{tenantid}');
+INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES ('112213', 1, 'y', 1, '1122', 20190430, 2, '一卡通充值款', 1, '{tenantid}');
+INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES ('112230', 1, 'y', 1, '1122', 20190430, 2, '支付宝支付款', 1, '{tenantid}');
+INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES ('112231', 1, 'y', 1, '1122', 20190430, 2, '微信支付款', 1, '{tenantid}');
+INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES ('112232', 1, 'n', 1, '1122', 20190430, 2, '银联支付款', 1, '{tenantid}');
+INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES ('112233', 1, 'y', 1, '1122', 20190430, 2, '一卡通支付款', 1, '{tenantid}');
+INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES ('112234', 1, 'y', 1, '1122', NULL, 2, '市民卡支付款', 1, '{tenantid}');
+--负债
+INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES ('2001', 2, 'n', 1, NULL, 20190430, 1, '用户押金', 2, '{tenantid}');
+INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES ('2004', 2, 'y', 1, NULL, 20190430, 1, '商户营业款', 2, '{tenantid}');
+INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES ('2202', 2, 'y', 0, NULL, 20190430, 1, '应付账款', 2, '{tenantid}');
+INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES ('220201', 2, 'y', 1, '2202', 20190430, 2, '个人存款', 2, '{tenantid}');
+INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES ('220211', 2, 'n', 1, '2202', 20190430, 2, '销户退款', 2, '{tenantid}');
+--损益
+INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES ('6021', 2, 'y', 0, NULL, 20190430, 1, '手续费收入', 6, '{tenantid}');
+INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES ('602101', 2, 'y', 1, '6021', 20190430, 2, '支付宝充值手续费', 6, '{tenantid}');
+INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES ('602102', 2, 'y', 1, '6021', 20190430, 2, '微信充值手续费', 6, '{tenantid}');
+INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES ('602103', 2, 'n', 1, '6021', 20190430, 2, '银联充值手续费', 6, '{tenantid}');
+INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES ('6601', 2, 'y', 0, NULL, 20190430, 1, '销售费用', 6, '{tenantid}');
+INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES ('660101', 2, 'y', 1, '6601', 20190430, 2, '折扣优惠款', 6, '{tenantid}');
+INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES ('660102', 2, 'y', 1, '6601', 20190430, 2, '积分抵扣款', 6, '{tenantid}');
+INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES ('6602', 2, 'y', 1, NULL, 20190430, 1, '管理费收入', 6, '{tenantid}');
+update TB_SUBJECT set opendate = to_number(to_char(CURRENT_TIMESTAMP,'yyyymmdd'),'99999999');
+
+
+INSERT INTO "tb_sourcetype" ("sourcetype", "checkable", "paydesc", "enable", "charge_enable", "consume_enable", "anonymous_enable", "reversable", "tenantid")
+VALUES ('citizenCard', 't', '大理市民卡', 't', 'f', 't', 'f', 't', '{tenantid}');
+INSERT INTO "tb_sourcetype" ("sourcetype", "checkable", "paydesc", "enable", "charge_enable", "consume_enable", "anonymous_enable", "reversable", "tenantid")
+VALUES ('balance', 'f', '账户余额', 't', 'f', 't', 'f', 't', '{tenantid}');
+INSERT INTO "tb_sourcetype" ("sourcetype", "checkable", "paydesc", "enable", "charge_enable", "consume_enable", "anonymous_enable", "reversable", "tenantid")
+VALUES ('thirdpart', 'f', '其他第三方支付', 't', 't', 'f', 'f', 'f', '{tenantid}');
+INSERT INTO "tb_sourcetype" ("sourcetype", "checkable", "paydesc", "enable", "charge_enable", "consume_enable", "anonymous_enable", "reversable", "tenantid")
+VALUES ('yktpay', 't', '一卡通支付', 't', 't', 't', 't', 't', '{tenantid}');
+INSERT INTO "tb_sourcetype" ("sourcetype", "checkable", "paydesc", "enable", "charge_enable", "consume_enable", "anonymous_enable", "reversable", "tenantid")
+VALUES ('alipay', 't', '支付宝', 't', 't', 't', 't', 'f', '{tenantid}');
+INSERT INTO "tb_sourcetype" ("sourcetype", "checkable", "paydesc", "enable", "charge_enable", "consume_enable", "anonymous_enable", "reversable", "tenantid")
+VALUES ('wechat', 't', '微信支付', 't', 't', 't', 't', 'f', '{tenantid}');
+
+-- 支付方式
+INSERT INTO TB_PAYTYPE_CONFIG (PAYTYPE,CONFIGID,CONFIG_NAME,CONFIG_VALUE, "tenantid")
+VALUES ('yktpay','appid',null,'100005', '{tenantid}');
+INSERT INTO TB_PAYTYPE_CONFIG (PAYTYPE,CONFIGID,CONFIG_NAME,CONFIG_VALUE, "tenantid")
+VALUES ('yktpay','appkey',null,'adc4ac6822fd462780f878b86cb94688', '{tenantid}');
+INSERT INTO TB_PAYTYPE_CONFIG (PAYTYPE,CONFIGID,CONFIG_NAME,CONFIG_VALUE, "tenantid")
+VALUES ('yktpay','orderurl',null,'http://172.28.201.101:9116/epayapi/services/thirdparty/common/pay', '{tenantid}');
+INSERT INTO TB_PAYTYPE_CONFIG (PAYTYPE,CONFIGID,CONFIG_NAME,CONFIG_VALUE, "tenantid")
+VALUES ('yktpay','reverseurl',null,'http://172.28.201.101:9116/epayapi/services/thirdparty/common/payreverse', '{tenantid}');
+INSERT INTO TB_PAYTYPE_CONFIG (PAYTYPE,CONFIGID,CONFIG_NAME,CONFIG_VALUE, "tenantid")
+VALUES ('alipay', 'alipay.gateway', '支付宝网关地址', 'https://openapi.alipay.com/gateway.do', '{tenantid}');
+INSERT INTO TB_PAYTYPE_CONFIG (PAYTYPE,CONFIGID,CONFIG_NAME,CONFIG_VALUE, "tenantid")
+VALUES ('alipay', 'enable.paymethod', '支付渠道', 'balance,moneyFund,debitCardExpress,bankPay,pcredit', '{tenantid}');
+INSERT INTO TB_PAYTYPE_CONFIG (PAYTYPE,CONFIGID,CONFIG_NAME,CONFIG_VALUE, "tenantid")
+VALUES ('alipay', 'notify.url', '异步通知地址', 'http://ykt.supwisdom.com:9116/epay/zfb/newnotify', '{tenantid}');
+INSERT INTO TB_PAYTYPE_CONFIG (PAYTYPE,CONFIGID,CONFIG_NAME,CONFIG_VALUE, "tenantid")
+VALUES ('alipay', 'timeout.express', '支付超时时间', '5m', '{tenantid}');
+INSERT INTO TB_PAYTYPE_CONFIG (PAYTYPE,CONFIGID,CONFIG_NAME,CONFIG_VALUE, "tenantid")
+VALUES ('alipay', 'alipay.public.key', '支付宝商户应用的支付宝公钥', NULL, '{tenantid}');
+INSERT INTO TB_PAYTYPE_CONFIG (PAYTYPE,CONFIGID,CONFIG_NAME,CONFIG_VALUE, "tenantid")
+VALUES ('alipay', 'alipay.rsa.private.key', '支付宝商户应用RSA私钥', NULL, '{tenantid}');
+INSERT INTO TB_PAYTYPE_CONFIG (PAYTYPE,CONFIGID,CONFIG_NAME,CONFIG_VALUE, "tenantid")
+VALUES ('alipay', 'alipay.rsa.public.key', '支付宝商户应用RSA公钥', NULL, '{tenantid}');
+INSERT INTO TB_PAYTYPE_CONFIG (PAYTYPE,CONFIGID,CONFIG_NAME,CONFIG_VALUE, "tenantid")
+VALUES ('alipay', 'appid', '支付宝应用APPID', NULL, '{tenantid}');
+INSERT INTO TB_PAYTYPE_CONFIG (PAYTYPE,CONFIGID,CONFIG_NAME,CONFIG_VALUE, "tenantid")
+VALUES ('citizenCard', 'bankcardno', NULL, NULL, '{tenantid}');
+
+INSERT INTO "tb_syspara" ("paraid", "displayflag", "editflag", "lastsaved", "paraname", "paraunit", "paraval", "remark", "valuetype", "tenantid")
+VALUES (1, 'yes', 1, '20190514165658', '账户最大余额默认值', '元', '10001', '账户开户时的默认账户最大余额', 'amount', '{tenantid}');
+
+INSERT INTO "tb_task_lock" ("taskcode", "remark", "taskstatus", "tasktime", "tenantid")
+VALUES ('DAYENDSETTLETASK', '日终结算', '0', '20190619100600', '{tenantid}');
+
+INSERT INTO "tb_shop" ("shopid", "shopname", "shoptype", "fshopid", "status", "opendate", "tenantid")
+VALUES (1, '支付中心', 0, 0, 'normal', '20190517', '{tenantid}');
+
+INSERT INTO "tb_transcode" ("transcode", "transname", "tenantid")
+VALUES (3010, '市民卡代扣', '{tenantid}');
+INSERT INTO "tb_transcode" ("transcode", "transname", "tenantid")
+VALUES (3500, '账户充值', '{tenantid}');
+
+INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
+VALUES ('cancel', 1, '冲正', '冲正状态', '{tenantid}');
+INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
+VALUES ('reverse', 1, '手工撤销', '冲正状态', '{tenantid}');
+INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
+VALUES ('none', 1, ' ', '冲正状态', '{tenantid}');
+INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
+VALUES ('init', 2, '初始化', '流水状态', '{tenantid}');
+INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
+VALUES ('success', 2, '交易成功', '流水状态', '{tenantid}');
+INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
+VALUES ('fail', 2, '交易失败', '流水状态', '{tenantid}');
+INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
+VALUES ('wip', 2, '待支付', '流水状态', '{tenantid}');
+INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename", "tenantid")
+VALUES ('cancel', 2, '交易取消', '流水状态', '{tenantid}');
+
+----------------------------------------------------
+commit;
\ No newline at end of file
diff --git a/src/main/resources/import.sql b/src/main/resources/import.sql
deleted file mode 100644
index a1161f6..0000000
--- a/src/main/resources/import.sql
+++ /dev/null
@@ -1,280 +0,0 @@
-INSERT INTO tb_tenantconfig(cfgid, tenantid, datacenter_id)
-values ('main', '10000110', '01');
-
-INSERT INTO tb_operator(operid, closedate, opendate, opercode, opername, operpwd, opertype, status)
-VALUES ('LOR2IwRkbOjp+sVG9KR2BpHZbwGKepS4', '20500101', '20190101', 'system', '系统管理员', '$2a$10$Ex9xp11.vCaD8D0a7ahiUOKqDij1TcCUBwRAmrqXeDvAkmzLibn4.', 'oper', 'normal');
-
-
-INSERT INTO tb_role(roleid, createtime, editflag, lastsaved, rolecode, roledesc, rolename)
-VALUES ('d1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '20190101000000', 0, '', 'ROLE_ADMIN', '超级管理员', '超级管理员');
-
-INSERT INTO tb_oper_role(id, operid, roleid) VALUES ('1', 'LOR2IwRkbOjp+sVG9KR2BpHZbwGKepS4', 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-
-INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (1, NULL, 0, NULL, 'layui-icon-home', '#', '主页', 1, -1);
-INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (2, NULL, 1, NULL, 'layui-icon-home', '/home/console', '控制台', 1, 1);
-INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (3, NULL, 0, NULL, 'layui-icon-set', '#', '系统中心', 2, -1);
-INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (5, NULL, 1, NULL, 'layui-icon-set', '/role/index', '角色管理', 2, 3);
-INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (6, NULL, 1, NULL, 'layui-icon-set', '/operator/index', '操作员管理', 4, 3);
-INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (4, NULL, 1, NULL, 'layui-icon-set', '/function/index', '功能维护', 1, 3);
-INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (7, NULL, 0, NULL, 'layui-icon-release', '#', '商户中心', 4, -1);
-INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (9, NULL, 1, NULL, '', '/operator/logs', '操作日志', 4, 3);
-INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (10, NULL, 0, NULL, 'layui-icon-util', '#', '参数管理', 3, -1);
-INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (11, NULL, 1, NULL, 'layui-icon-util', '/param/syspara', '全局参数配置', 1, 10);
-INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (12, NULL, 1, NULL, 'layui-icon-util', '/param/businesspara', '业务参数配置', 2, 10);
-INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (17, NULL, 1, NULL, 'layui-icon-util', '/param/apiclientpara', '应用参数配置', 3, 10);
-INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (18, NULL, 1, NULL, 'layui-icon-util', '/param/paytype', '支付能力配置', 4, 10);
-INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (19, NULL, 0, NULL, 'layui-icon-user', '#', '用户中心', 5, -1);
-INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (20, NULL, 0, NULL, 'layui-icon-rmb', '#', '结算中心', 6, -1);
-INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (21, NULL, 1, NULL, '', '/user/index', '用户管理', 1, 19);
-INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (23, NULL, 1, NULL, '', '/shop/index', '商户管理', 1, 7);
-INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (24, NULL, 1, NULL, '', '/user/point', '积分管理', 3, 19);
-INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (22, NULL, 1, NULL, '', '/user/acc', '账户管理', 2, 19);
-INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (25, NULL, 1, NULL, '', '/shop/config', '商户支付能力配置', 2, 7);
-INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (26, NULL, 0, NULL, 'layui-icon-tabs', '#', '流水管理', 3, -1);
-INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (27, NULL, 1, NULL, '', '/dtl/userdtl', '个人流水查询', 1, 26);
-INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (28, NULL, 1, NULL, '', '/dtl/shopdtl', '商户流水查询', 2, 26);
-INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (29, NULL, 1, NULL, '', '/report/subjectday', '科目汇总表', 1, 20);
-INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (30, NULL, 1, NULL, '', '/report/subjectdetail', '科目明细账', 2, 20);
-INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (31, NULL, 1, NULL, '', '/report/shopbusiness', '商户营业情况表', 3, 20);
-
-
-INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions") VALUES ('ff8080816b7947ed016b7955772c0032', 1, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL);
-INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions") VALUES ('ff8080816b7947ed016b7955772d0033', 2, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL);
-INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions") VALUES ('ff8080816b7947ed016b7955772d0034', 3, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL);
-INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions") VALUES ('ff8080816b7947ed016b7955772d0035', 5, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL);
-INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions") VALUES ('ff8080816b7947ed016b79557730003b', 6, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL);
-INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions") VALUES ('ff8080816b7947ed016b795577310041', 4, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL);
-INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions") VALUES ('ff8080816b7947ed016b79557732004a', 9, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL);
-INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions") VALUES ('ff8080816b7947ed016b79557732004c', 7, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL);
-INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions") VALUES ('ff8080816b7947ed016b79557732004d', 23, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL);
-INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions") VALUES ('ff8080816b7947ed016b795577330052', 25, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL);
-INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions") VALUES ('ff8080816b7947ed016b79557733005a', 20, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL);
-INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions") VALUES ('ff8080816b7947ed016b79557733005b', 29, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL);
-INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions") VALUES ('ff8080816b7947ed016b79557733005d', 30, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL);
-INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions") VALUES ('ff8080816b7947ed016b79557733005f', 31, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL);
-INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions") VALUES ('ff8080816b7947ed016b795577340061', 19, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL);
-INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions") VALUES ('ff8080816b7947ed016b795577340062', 21, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL);
-INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions") VALUES ('ff8080816b7947ed016b795577350068', 24, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL);
-INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions") VALUES ('ff8080816b7947ed016b79557735006a', 22, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL);
-INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions") VALUES ('ff8080816b7947ed016b79557735006c', 26, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL);
-INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions") VALUES ('ff8080816b7947ed016b79557735006d', 27, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL);
-INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions") VALUES ('ff8080816b7947ed016b79557735006f', 28, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL);
-INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions") VALUES ('ff8080816b7947ed016b795577350071', 10, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL);
-INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions") VALUES ('ff8080816b7947ed016b795577350072', 11, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL);
-INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions") VALUES ('ff8080816b7947ed016b795577360074', 17, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL);
-INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions") VALUES ('ff8080816b7947ed016b79557736007b', 12, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL);
-INSERT INTO "tb_role_function" ("id", "functionid", "roleid", "permissions") VALUES ('ff8080816b7947ed016b795577370081', 18, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL);
-
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (4, '1', 4, '添加功能', '/function/add');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (5, '', 4, '添加父功能', '/function/loadadd');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (6, '1', 6, '查询', '/operator/index');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (7, '', 6, '添加查询', '/operator/load4add');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (8, '', 6, '添加和修改', '/operator/add');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (9, '', 6, '重置密码', '/operator/resetpwd');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (10, '', 4, '查询', '/function/index');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (11, '', 4, '删除', '/function/delfunc');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (12, '', 4, '添加子功能', '/function/loadsubadd');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (13, '', 4, '维护资源', '/function/loadres');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (14, '', 4, '添加资源', '/function/addres');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (15, '', 4, '删除资源', '/function/delres');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (16, '', 5, '查询', '/role/index');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (17, '', 5, '添加', '/role/add');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (19, '', 5, '分配功能', '/role/addfunc');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (20, '', 5, '加载分配功能', '/role/loadfunc');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (21, '', 5, '删除角色', '/role/del');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (22, '', 6, '修改状态', '/operator/updatestate');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (24, '', 9, '查询', '/operator/logslist');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (26, '', 11, '修改', '/param/sysparaupdate');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (27, '', 11, '查询', '/param/syspara');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (28, '', 12, '查询', '/param/businesspara');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (29, '', 12, '删除', '/param/deletebusinesspara');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (30, '', 12, '修改', '/param/businessparaupdate');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (32, '', 12, '新增', '/param/addbusinesspara');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (33, '', 12, '新增跳转', '/param/load4addbuspara');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (34, '', 17, '查询', '/param/apiclientpara');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (35, '', 17, '新增修改跳转', '/param/load4addapiclient');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (36, '', 17, '修改状态', '/param/updateapiclientstate');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (37, '', 17, '删除', '/param/deleteapiclient');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (39, '', 17, '修改', '/param/updateapiclientpara');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (40, '', 17, '新增', '/param/addapiclientpara');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (41, '', 18, '查询', '/param/paytype');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (42, '', 21, '查询', '/user/list');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (43, '', 18, '新增跳转', '/param/load4addpaytype');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (44, '', 18, '切换状态', '/param/updatepaytypestate');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (45, '', 18, '修改', '/param/updatepaytypename');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (46, '', 18, '删除', '/param/deletepaytype');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (48, '', 18, '配置跳转', '/param/load4paytypeconfig');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (49, '', 18, '配置参数', '/param/addpaytypeconfig');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (50, '', 22, '查询', '/user/account');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (52, '', 24, '查询', '/user/pointlist');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (53, '', 23, '删除', '/shop/deleteshop');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (54, '', 21, '添加', '/user/add');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (56, '', 23, '查询', '/shop/getshopinfo');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (57, '', 23, '商户树', '/shop/index');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (58, '', 23, '新增修改', '/shop/saveorupdate');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (59, '', 21, '删除', '/user/del');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (60, '', 21, '注销账户', '/user/delacc');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (61, '', 21, '删除积分账户', '/user/delpoint');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (63, '', 25, '商户树', '/shop/config');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (64, '', 25, '查询', '/shop/shoppaytypelist');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (65, '', 25, '切换状态', '/shop/updatepaytypestat');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (66, '', 25, '新增跳转', '/shop/load4addpaytype');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (67, '', 25, '新增', '/shop/addshoppaytype');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (68, '', 25, '配置跳转', '/shop/load4paytypepara');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (69, '', 25, '配置', '/shop/addpaytypepara');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (70, '', 27, '查询', '/dtl/userdtl');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (71, '', 28, '查询', '/dtl/shopdtl');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (72, '', 29, '查询', '/report/subjectday');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (73, '', 30, '查询', '/report/subjectdetail');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (74, '', 31, '查询', '/report/shopbusiness');
-INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri") VALUES (76, '', 18, '新增', '/param/addpaytype');
-
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577300036', 16, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577300037', 17, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577300038', 19, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577300039', 20, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b79557730003a', 21, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b79557730003c', 6, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b79557730003d', 7, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b79557731003e', 8, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b79557731003f', 9, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577310040', 22, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577310042', 4, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577310043', 5, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577310044', 10, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577310045', 11, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577310046', 12, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577320047', 13, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577320048', 14, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577320049', 15, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b79557732004b', 24, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b79557732004e', 53, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b79557732004f', 57, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577320050', 56, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577320051', 58, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577330053', 63, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577330054', 64, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577330055', 65, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577330056', 66, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577330057', 68, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577330058', 67, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577330059', 69, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b79557733005c', 72, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b79557733005e', 73, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577340060', 74, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577340063', 54, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577340064', 60, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577340065', 61, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577350066', 42, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577350067', 59, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577350069', 52, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b79557735006b', 50, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b79557735006e', 70, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577350070', 71, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577360073', 27, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577360075', 39, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577360076', 34, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577360077', 40, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577360078', 37, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577360079', 36, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b79557736007a', 35, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b79557736007c', 33, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b79557736007d', 32, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b79557736007e', 28, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b79557737007f', 30, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577370080', 29, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577370082', 46, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577370083', 48, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577370084', 41, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577370085', 44, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577370086', 49, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577370087', 45, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816b7947ed016b795577370088', 43, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-
-
-INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype") VALUES ('1001', 1, 'y', 1, NULL, 20190430, 1, '库存现金', 1);
-INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype") VALUES ('1002', 1, 'y', 1, NULL, 20190430, 1, '银行存款', 1);
-INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype") VALUES ('1121', 1, 'n', 0, NULL, 20190430, 1, '应收票据', 1);
-INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype") VALUES ('112101', 1, 'n', 1, '1121', 20190430, 2, '支票', 1);
-INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype") VALUES ('112102', 1, 'n', 1, '1121', 20190430, 2, '经费本', 1);
-INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype") VALUES ('1122', 1, 'y', 0, NULL, 20190430, 1, '应收账款', 1);
-INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype") VALUES ('112201', 1, 'y', 1, '1122', 20190430, 2, '现金充值款', 1);
-INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype") VALUES ('112209', 1, 'y', 1, '1122', 20190617, 2, '其他第三方充值款', 1);
-INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype") VALUES ('112210', 1, 'y', 1, '1122', 20190430, 2, '支付宝充值款', 1);
-INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype") VALUES ('112211', 1, 'y', 1, '1122', 20190430, 2, '微信充值款', 1);
-INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype") VALUES ('112212', 1, 'n', 1, '1122', 20190430, 2, '银联充值款', 1);
-INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype") VALUES ('112213', 1, 'y', 1, '1122', 20190430, 2, '一卡通充值款', 1);
-INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype") VALUES ('112230', 1, 'y', 1, '1122', 20190430, 2, '支付宝支付款', 1);
-INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype") VALUES ('112231', 1, 'y', 1, '1122', 20190430, 2, '微信支付款', 1);
-INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype") VALUES ('112232', 1, 'n', 1, '1122', 20190430, 2, '银联支付款', 1);
-INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype") VALUES ('112233', 1, 'y', 1, '1122', 20190430, 2, '一卡通支付款', 1);
-INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype") VALUES ('112234', 1, 'y', 1, '1122', NULL, 2, '市民卡支付款', 1);
---负债
-INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype") VALUES ('2001', 2, 'n', 1, NULL, 20190430, 1, '用户押金', 2);
-INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype") VALUES ('2004', 2, 'y', 1, NULL, 20190430, 1, '商户营业款', 2);
-INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype") VALUES ('2202', 2, 'y', 0, NULL, 20190430, 1, '应付账款', 2);
-INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype") VALUES ('220201', 2, 'y', 1, '2202', 20190430, 2, '个人存款', 2);
-INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype") VALUES ('220211', 2, 'n', 1, '2202', 20190430, 2, '销户退款', 2);
---损益
-INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype") VALUES ('6021', 2, 'y', 0, NULL, 20190430, 1, '手续费收入', 6);
-INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype") VALUES ('602101', 2, 'y', 1, '6021', 20190430, 2, '支付宝充值手续费', 6);
-INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype") VALUES ('602102', 2, 'y', 1, '6021', 20190430, 2, '微信充值手续费', 6);
-INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype") VALUES ('602103', 2, 'n', 1, '6021', 20190430, 2, '银联充值手续费', 6);
-INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype") VALUES ('6601', 2, 'y', 0, NULL, 20190430, 1, '销售费用', 6);
-INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype") VALUES ('660101', 2, 'y', 1, '6601', 20190430, 2, '折扣优惠款', 6);
-INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype") VALUES ('660102', 2, 'y', 1, '6601', 20190430, 2, '积分抵扣款', 6);
-INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype") VALUES ('6602', 2, 'y', 1, NULL, 20190430, 1, '管理费收入', 6);
-update TB_SUBJECT set opendate = to_number(to_char(CURRENT_TIMESTAMP,'yyyymmdd'),'99999999');
-
-
-INSERT INTO "tb_sourcetype" ("sourcetype", "checkable", "paydesc", "enable", "charge_enable", "consume_enable", "anonymous_enable", "reversable") VALUES ('citizenCard', 't', '大理市民卡', 't', 'f', 't', 'f', 't');
-INSERT INTO "tb_sourcetype" ("sourcetype", "checkable", "paydesc", "enable", "charge_enable", "consume_enable", "anonymous_enable", "reversable") VALUES ('balance', 'f', '账户余额', 't', 'f', 't', 'f', 't');
-INSERT INTO "tb_sourcetype" ("sourcetype", "checkable", "paydesc", "enable", "charge_enable", "consume_enable", "anonymous_enable", "reversable") VALUES ('thirdpart', 'f', '其他第三方支付', 't', 't', 'f', 'f', 'f');
-INSERT INTO "tb_sourcetype" ("sourcetype", "checkable", "paydesc", "enable", "charge_enable", "consume_enable", "anonymous_enable", "reversable") VALUES ('yktpay', 't', '一卡通支付', 't', 't', 't', 't', 't');
-INSERT INTO "tb_sourcetype" ("sourcetype", "checkable", "paydesc", "enable", "charge_enable", "consume_enable", "anonymous_enable", "reversable") VALUES ('alipay', 't', '支付宝', 't', 't', 't', 't', 'f');
-INSERT INTO "tb_sourcetype" ("sourcetype", "checkable", "paydesc", "enable", "charge_enable", "consume_enable", "anonymous_enable", "reversable") VALUES ('wechat', 't', '微信支付', 't', 't', 't', 't', 'f');
-
--- 支付方式
-Insert into TB_PAYTYPE_CONFIG (PAYTYPE,CONFIGID,CONFIG_NAME,CONFIG_VALUE) values ('yktpay','appid',null,'100005');
-Insert into TB_PAYTYPE_CONFIG (PAYTYPE,CONFIGID,CONFIG_NAME,CONFIG_VALUE) values ('yktpay','appkey',null,'adc4ac6822fd462780f878b86cb94688');
-Insert into TB_PAYTYPE_CONFIG (PAYTYPE,CONFIGID,CONFIG_NAME,CONFIG_VALUE) values ('yktpay','orderurl',null,'http://172.28.201.101:9116/epayapi/services/thirdparty/common/pay');
-Insert into TB_PAYTYPE_CONFIG (PAYTYPE,CONFIGID,CONFIG_NAME,CONFIG_VALUE) values ('yktpay','reverseurl',null,'http://172.28.201.101:9116/epayapi/services/thirdparty/common/payreverse');
-INSERT INTO TB_PAYTYPE_CONFIG (PAYTYPE,CONFIGID,CONFIG_NAME,CONFIG_VALUE) VALUES ('alipay', 'alipay.gateway', '支付宝网关地址', 'https://openapi.alipay.com/gateway.do');
-INSERT INTO TB_PAYTYPE_CONFIG (PAYTYPE,CONFIGID,CONFIG_NAME,CONFIG_VALUE) VALUES ('alipay', 'enable.paymethod', '支付渠道', 'balance,moneyFund,debitCardExpress,bankPay,pcredit');
-INSERT INTO TB_PAYTYPE_CONFIG (PAYTYPE,CONFIGID,CONFIG_NAME,CONFIG_VALUE) VALUES ('alipay', 'notify.url', '异步通知地址', 'http://ykt.supwisdom.com:9116/epay/zfb/newnotify');
-INSERT INTO TB_PAYTYPE_CONFIG (PAYTYPE,CONFIGID,CONFIG_NAME,CONFIG_VALUE) VALUES ('alipay', 'timeout.express', '支付超时时间', '5m');
-INSERT INTO TB_PAYTYPE_CONFIG (PAYTYPE,CONFIGID,CONFIG_NAME,CONFIG_VALUE) VALUES ('alipay', 'alipay.public.key', '支付宝商户应用的支付宝公钥', NULL);
-INSERT INTO TB_PAYTYPE_CONFIG (PAYTYPE,CONFIGID,CONFIG_NAME,CONFIG_VALUE) VALUES ('alipay', 'alipay.rsa.private.key', '支付宝商户应用RSA私钥', NULL);
-INSERT INTO TB_PAYTYPE_CONFIG (PAYTYPE,CONFIGID,CONFIG_NAME,CONFIG_VALUE) VALUES ('alipay', 'alipay.rsa.public.key', '支付宝商户应用RSA公钥', NULL);
-INSERT INTO TB_PAYTYPE_CONFIG (PAYTYPE,CONFIGID,CONFIG_NAME,CONFIG_VALUE) VALUES ('alipay', 'appid', '支付宝应用APPID', NULL);
-INSERT INTO TB_PAYTYPE_CONFIG (PAYTYPE,CONFIGID,CONFIG_NAME,CONFIG_VALUE) VALUES ('citizenCard', 'bankcardno', NULL, NULL);
-
-INSERT INTO "tb_syspara" ("paraid", "displayflag", "editflag", "lastsaved", "paraname", "paraunit", "paraval", "remark", "valuetype") VALUES (1, 'yes', 1, '20190514165658', '账户最大余额默认值', '元', '10001', '账户开户时的默认账户最大余额', 'amount');
-
-INSERT INTO "tb_task_lock" ("taskcode", "remark", "taskstatus", "tasktime") VALUES ('DAYENDSETTLETASK', '日终结算', '0', '20190619100600');
-
-INSERT INTO "tb_shop" ("shopid", "shopname", "shoptype", "fshopid", "status", "opendate") VALUES (1, '支付中心', 0, 0, 'normal', '20190517');
-
-INSERT INTO "tb_transcode" ("transcode", "transname") VALUES (3010, '市民卡代扣');
-INSERT INTO "tb_transcode" ("transcode", "transname") VALUES (3500, '账户充值');
-
-INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename") VALUES ('cancel', 1, '冲正', '冲正状态');
-INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename") VALUES ('reverse', 1, '手工撤销', '冲正状态');
-INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename") VALUES ('none', 1, ' ', '冲正状态');
-INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename") VALUES ('init', 2, '初始化', '流水状态');
-INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename") VALUES ('success', 2, '交易成功', '流水状态');
-INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename") VALUES ('fail', 2, '交易失败', '流水状态');
-INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename") VALUES ('wip', 2, '待支付', '流水状态');
-INSERT INTO "tb_dictionary" ("dictval", "dicttype", "dictcaption", "dicttypename") VALUES ('cancel', 2, '交易取消', '流水状态');
-
---pg--
-INSERT INTO "tb_period" ("period_year", "period_month", "startdate", "enddate", "settleflag")
-VALUES (to_number(to_char(CURRENT_TIMESTAMP,'yyyy'),'9999'),to_number(to_char(CURRENT_TIMESTAMP,'MM'),'99'), to_char(CURRENT_TIMESTAMP,'yyyyMM')||'01', to_char((to_date(to_char(CURRENT_TIMESTAMP+'1 month','yyyyMM')||'01','yyyyMMdd')-1)::Timestamp,'yyyyMMdd'), 0);
-
-insert into TB_SETTLECTL(BOOKSETNO,PERIODYEAR,PERIODMONTH,STATDATE,SETTLEDATE,STATUS,updtime)
-values (1,to_number(to_char(CURRENT_TIMESTAMP,'yyyy'),'9999'),to_number(to_char(CURRENT_TIMESTAMP,'MM'),'99'),to_number(to_char(CURRENT_TIMESTAMP,'yyyyMMdd'),'99999999'),to_number(to_char(CURRENT_TIMESTAMP,'yyyyMMdd'),'99999999'),0,to_char(CURRENT_TIMESTAMP,'yyyyMMddhh24miss'));
-
-insert into TB_VOUCHERNOCTL(VOUCHERTYPE,PERIODMONTH,VOUCHERNO)
-values (1,to_number(to_char(CURRENT_TIMESTAMP,'MM'),'99'),0);
----------  end of script
-commit;