diff --git a/admin-core/src/main/java/com/ibeetl/admin/core/util/beetl/DataTableName.java b/admin-core/src/main/java/com/ibeetl/admin/core/util/beetl/DataTableName.java
index b903c36b..b9b300a4 100644
--- a/admin-core/src/main/java/com/ibeetl/admin/core/util/beetl/DataTableName.java
+++ b/admin-core/src/main/java/com/ibeetl/admin/core/util/beetl/DataTableName.java
@@ -1,18 +1,48 @@
 package com.ibeetl.admin.core.util.beetl;
 
+import cn.hutool.core.util.ReflectUtil;
+import cn.hutool.extra.spring.SpringUtil;
+import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
+import com.mysql.cj.jdbc.JdbcConnection;
 import org.apache.commons.lang3.StringUtils;
 import org.beetl.core.Context;
 import org.beetl.core.Function;
+import org.beetl.sql.ext.spring.SpringConnectionSource;
 import org.springframework.stereotype.Component;
 
+import java.lang.reflect.Method;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
 //1商品分类 2商品 3文章分类 4文章 5商品属性 6适用场合 7品牌 8Region
 @Component
 public class DataTableName implements Function {
-
-    public static String dataName;
+    public volatile Map<String, String> dataSourceMap = new ConcurrentHashMap<>();
 
     @Override
     public Object call(Object[] objects, Context context) {
+        // 获取当前线程的数据源
+        String dataName = getDatabaseName(DynamicDataSourceContextHolder.peek());
         return StringUtils.isBlank(dataName)?"springbootplus":dataName;
     }
+
+    private String getDatabaseName(String sourceName) {
+
+        if (StringUtils.isBlank(sourceName)) {
+            sourceName = "master";
+        }
+        String s = dataSourceMap.get(sourceName);
+        if (StringUtils.isNotBlank(s)) {
+            return s;
+        }
+        String beanName = sourceName + "BeetlSqlDataSourceBean";
+        SpringConnectionSource cs = SpringUtil.getBean(beanName, SpringConnectionSource.class);
+        JdbcConnection delegate = (JdbcConnection)ReflectUtil.getFieldValue(cs.getMetaData(), "delegate");
+        Method getDatabase = ReflectUtil.getMethodByName(JdbcConnection.class, "getDatabase");
+
+        // 获取当前线程的数据源库名
+        String dataBaseName = ReflectUtil.invoke(delegate, getDatabase);
+        dataSourceMap.put(sourceName, dataBaseName);
+        return dataBaseName;
+    }
 }
diff --git a/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseScheduleSession.java b/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseScheduleSession.java
index 46ce9131..51daac8c 100644
--- a/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseScheduleSession.java
+++ b/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseScheduleSession.java
@@ -3,8 +3,8 @@ package com.ibeetl.jlw.entity;
 import com.ibeetl.admin.core.annotation.Dict;
 import com.ibeetl.admin.core.entity.BaseEntity;
 import com.ibeetl.admin.core.util.ValidateConfig;
+import lombok.Data;
 import org.beetl.sql.annotation.entity.AssignID;
-import org.beetl.sql.annotation.entity.Table;
 import org.beetl.sql.fetch.annotation.Fetch;
 import org.beetl.sql.fetch.annotation.FetchSql;
 
@@ -17,7 +17,7 @@ import java.util.List;
 * gen by Spring Boot2 Admin 2022-09-11
 */
 @Fetch
-@Table(name="teacher_open_course_schedule_session")
+@Data
 public class TeacherOpenCourseScheduleSession extends BaseEntity{
 
     //课程开课-排课位置ID
@@ -34,7 +34,7 @@ public class TeacherOpenCourseScheduleSession extends BaseEntity{
     //创建时间
 
     private Date teacherOpenCourseScheduleSessionAddTime ;
-	
+
     //状态(1正常 2删除)
     @Dict(type="global_status")
 
@@ -62,16 +62,12 @@ public class TeacherOpenCourseScheduleSession extends BaseEntity{
 
     private Long userId ;
 
-    @FetchSql("select * from teacher_open_course_schedule_session where teacher_open_course_id = #teacherOpenCourseId# and teacher_id = #teacherId# and teacher_open_course_schedule_session_status = 1")
-    private List<TeacherOpenCourseScheduleSessionTag> sessionTagList;
-
-    public List<TeacherOpenCourseScheduleSessionTag> getSessionTagList() {
-        return sessionTagList;
-    }
-
-    public void setSessionTagList(List<TeacherOpenCourseScheduleSessionTag> sessionTagList) {
-        this.sessionTagList = sessionTagList;
-    }
+    @FetchSql("select teacher_open_course_schedule_session_tag_name, teacher_open_course_schedule_session_add_time," +
+            "teacher_open_course_schedule_session_tag_duration," +
+            "teacher_open_course_schedule_session_tag_start_time, teacher_open_course_schedule_session_tag_end_time " +
+            "from teacher_open_course_schedule_session where teacher_open_course_id = #teacherOpenCourseId# " +
+            "and teacher_id = #teacherId# and teacher_open_course_schedule_session_status = 1")
+    private List<TeacherOpenCourseScheduleSessionTagTemp> sessionTagList;
 
     //课次名称
 
@@ -101,199 +97,28 @@ public class TeacherOpenCourseScheduleSession extends BaseEntity{
 
     private Integer teacherOpenCourseScheduleSessionWeekNum;
 
-    public TeacherOpenCourseScheduleSession(){
-    }
-
-    /**课程开课-排课位置ID
-    *@return 
-    */
-    public Long getTeacherOpenCourseScheduleSessionId(){
-        return  teacherOpenCourseScheduleSessionId;
-    }
-    /**课程开课-排课位置ID
-    *@param  teacherOpenCourseScheduleSessionId
-    */
-    public void setTeacherOpenCourseScheduleSessionId(Long teacherOpenCourseScheduleSessionId){
-        this.teacherOpenCourseScheduleSessionId = teacherOpenCourseScheduleSessionId;
-    }
-
-    /**日期
-    *@return 
-    */
-    public String getTeacherOpenCourseScheduleSessionDayTime(){
-        return  teacherOpenCourseScheduleSessionDayTime;
-    }
-    /**日期
-    *@param  teacherOpenCourseScheduleSessionDayTime
-    */
-    public void setTeacherOpenCourseScheduleSessionDayTime(String teacherOpenCourseScheduleSessionDayTime){
-        this.teacherOpenCourseScheduleSessionDayTime = teacherOpenCourseScheduleSessionDayTime;
-    }
-
-    /**创建时间
-    *@return 
-    */
-    public Date getTeacherOpenCourseScheduleSessionAddTime(){
-        return  teacherOpenCourseScheduleSessionAddTime;
-    }
-    /**创建时间
-    *@param  teacherOpenCourseScheduleSessionAddTime
-    */
-    public void setTeacherOpenCourseScheduleSessionAddTime(Date teacherOpenCourseScheduleSessionAddTime){
-        this.teacherOpenCourseScheduleSessionAddTime = teacherOpenCourseScheduleSessionAddTime;
-    }
-
-    /**状态(1正常 2删除)
-    *@return 
-    */
-    public Integer getTeacherOpenCourseScheduleSessionStatus(){
-        return  teacherOpenCourseScheduleSessionStatus;
-    }
-    /**状态(1正常 2删除)
-    *@param  teacherOpenCourseScheduleSessionStatus
-    */
-    public void setTeacherOpenCourseScheduleSessionStatus(Integer teacherOpenCourseScheduleSessionStatus){
-        this.teacherOpenCourseScheduleSessionStatus = teacherOpenCourseScheduleSessionStatus;
-    }
-
-    /**课程开课ID
-    *@return 
-    */
-    public Long getTeacherOpenCourseId(){
-        return  teacherOpenCourseId;
-    }
-    /**课程开课ID
-    *@param  teacherOpenCourseId
-    */
-    public void setTeacherOpenCourseId(Long teacherOpenCourseId){
-        this.teacherOpenCourseId = teacherOpenCourseId;
-    }
-
-    /**教师ID
-    *@return 
-    */
-    public Long getTeacherId(){
-        return  teacherId;
-    }
-    /**教师ID
-    *@param  teacherId
-    */
-    public void setTeacherId(Long teacherId){
-        this.teacherId = teacherId;
-    }
+    @Data
+    public static class TeacherOpenCourseScheduleSessionTagTemp {
 
-    /**班级ID集合
-    *@return 
-    */
-    public String getSchoolClassIds(){
-        return  schoolClassIds;
-    }
-    /**班级ID集合
-    *@param  schoolClassIds
-    */
-    public void setSchoolClassIds(String schoolClassIds){
-        this.schoolClassIds = schoolClassIds;
-    }
+        //课次名称(支持自定义)
 
-    /**组织ID
-    *@return 
-    */
-    public Long getOrgId(){
-        return  orgId;
-    }
-    /**组织ID
-    *@param  orgId
-    */
-    public void setOrgId(Long orgId){
-        this.orgId = orgId;
-    }
+        private String teacherOpenCourseScheduleSessionTagName;
 
-    /**用户ID
-    *@return 
-    */
-    public Long getUserId(){
-        return  userId;
-    }
-    /**用户ID
-    *@param  userId
-    */
-    public void setUserId(Long userId){
-        this.userId = userId;
-    }
+        //创建时间
 
-    /**课次名称
-    *@return
-    */
-    public String getTeacherOpenCourseScheduleSessionTagName(){
-        return  teacherOpenCourseScheduleSessionTagName;
-    }
-    /**课次名称
-    *@param  teacherOpenCourseScheduleSessionTagName
-    */
-    public void setTeacherOpenCourseScheduleSessionTagName(String teacherOpenCourseScheduleSessionTagName){
-        this.teacherOpenCourseScheduleSessionTagName = teacherOpenCourseScheduleSessionTagName;
-    }
+        private Date    teacherOpenCourseScheduleSessionAddTime;
 
-    /**课程时长(分钟)
-    *@return
-    */
-    public Integer getTeacherOpenCourseScheduleSessionTagDuration(){
-        return  teacherOpenCourseScheduleSessionTagDuration;
-    }
-    /**课程时长(分钟)
-    *@param  teacherOpenCourseScheduleSessionTagDuration
-    */
-    public void setTeacherOpenCourseScheduleSessionTagDuration(Integer teacherOpenCourseScheduleSessionTagDuration){
-        this.teacherOpenCourseScheduleSessionTagDuration = teacherOpenCourseScheduleSessionTagDuration;
-    }
+        //课程时长(分钟)
 
-    /**开始时间
-    *@return
-    */
-    public String getTeacherOpenCourseScheduleSessionTagStartTime(){
-        return  teacherOpenCourseScheduleSessionTagStartTime;
-    }
-    /**开始时间
-    *@param  teacherOpenCourseScheduleSessionTagStartTime
-    */
-    public void setTeacherOpenCourseScheduleSessionTagStartTime(String teacherOpenCourseScheduleSessionTagStartTime){
-        this.teacherOpenCourseScheduleSessionTagStartTime = teacherOpenCourseScheduleSessionTagStartTime;
-    }
+        private Integer teacherOpenCourseScheduleSessionTagDuration;
 
-    /**结束时间
-    *@return
-    */
-    public String getTeacherOpenCourseScheduleSessionTagEndTime(){
-        return  teacherOpenCourseScheduleSessionTagEndTime;
-    }
-    /**结束时间
-    *@param  teacherOpenCourseScheduleSessionTagEndTime
-    */
-    public void setTeacherOpenCourseScheduleSessionTagEndTime(String teacherOpenCourseScheduleSessionTagEndTime){
-        this.teacherOpenCourseScheduleSessionTagEndTime = teacherOpenCourseScheduleSessionTagEndTime;
-    }
-    public String getTeacherOpenCourseScheduleSessionStartDate() {
-        return teacherOpenCourseScheduleSessionStartDate;
-    }
+        //开始时间
 
-    public void setTeacherOpenCourseScheduleSessionStartDate(String teacherOpenCourseScheduleSessionStartDate) {
-        this.teacherOpenCourseScheduleSessionStartDate = teacherOpenCourseScheduleSessionStartDate;
-    }
+        private String  teacherOpenCourseScheduleSessionTagStartTime;
 
-    public String getTeacherOpenCourseScheduleSessionEndDate() {
-        return teacherOpenCourseScheduleSessionEndDate;
-    }
-
-    public void setTeacherOpenCourseScheduleSessionEndDate(String teacherOpenCourseScheduleSessionEndDate) {
-        this.teacherOpenCourseScheduleSessionEndDate = teacherOpenCourseScheduleSessionEndDate;
-    }
-
-    public Integer getTeacherOpenCourseScheduleSessionWeekNum() {
-        return teacherOpenCourseScheduleSessionWeekNum;
-    }
+        //结束时间
 
-    public void setTeacherOpenCourseScheduleSessionWeekNum(Integer teacherOpenCourseScheduleSessionWeekNum) {
-        this.teacherOpenCourseScheduleSessionWeekNum = teacherOpenCourseScheduleSessionWeekNum;
+        private String  teacherOpenCourseScheduleSessionTagEndTime;
     }
 
 }
diff --git a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseScheduleSessionService.java b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseScheduleSessionService.java
index cb52b6ce..8568ccf9 100644
--- a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseScheduleSessionService.java
+++ b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseScheduleSessionService.java
@@ -26,6 +26,7 @@ import com.ibeetl.jlw.web.query.TeacherOpenCourseScheduleSessionQuery;
 import org.apache.commons.lang3.StringUtils;
 import org.beetl.sql.core.SqlId;
 import org.beetl.sql.core.engine.PageQuery;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -49,6 +50,9 @@ public class TeacherOpenCourseScheduleSessionService extends CoreBaseService<Tea
 
     @Resource private TeacherOpenCourseScheduleSessionDao teacherOpenCourseScheduleSessionDao;
 
+    @Lazy
+    @Resource TeacherOpenCourseScheduleSessionService teacherOpenCourseScheduleSessionService;
+
     @Master
     public PageQuery<TeacherOpenCourseScheduleSession>queryByCondition(PageQuery query){
         PageQuery ret =  teacherOpenCourseScheduleSessionDao.queryByCondition(query);
@@ -56,7 +60,7 @@ public class TeacherOpenCourseScheduleSessionService extends CoreBaseService<Tea
         return ret;
     }
 
-    @Master
+    @DS("ds2")
     public PageQuery<TeacherOpenCourseScheduleSession> queryByConditionGroup(PageQuery query){
         PageQuery ret =  teacherOpenCourseScheduleSessionDao.queryByConditionGroup(query);
         queryListAfter(ret.getList());
@@ -120,8 +124,8 @@ public class TeacherOpenCourseScheduleSessionService extends CoreBaseService<Tea
         jsonResult.setData(teacherOpenCourseScheduleSession.getTeacherOpenCourseScheduleSessionId());//自增的ID丢进去
         jsonResult.setCode(JsonReturnCode.SUCCESS.getCode());
         jsonResult.setMsg(msg);
-        // 自己类调用自己类的方法,是支持回滚的
-//        mAdd(teacherOpenCourseScheduleSessionQuery);
+        // 自己类调用自己类的方法,是支持回滚的。必须注入的方式调用,才能启用@DS注解。否则是同一个库插入操作。切记
+//        teacherOpenCourseScheduleSessionService.mAdd(teacherOpenCourseScheduleSessionQuery);
         return jsonResult;
     }
 
@@ -135,9 +139,9 @@ public class TeacherOpenCourseScheduleSessionService extends CoreBaseService<Tea
         jsonResult.setData(teacherOpenCourseScheduleSession.getTeacherOpenCourseScheduleSessionId());//自增的ID丢进去
         jsonResult.setCode(JsonReturnCode.SUCCESS.getCode());
         jsonResult.setMsg(msg);
-        if(1==1){
-            throw new RuntimeException("模拟异常");
-        }
+//        if(1==1){
+//            throw new RuntimeException("模拟异常");
+//        }
         return jsonResult;
     }
 
diff --git a/web/src/main/java/com/ibeetl/jlw/web/ApplicationRunnerController.java b/web/src/main/java/com/ibeetl/jlw/web/ApplicationRunnerController.java
index d62446d2..4dc94184 100644
--- a/web/src/main/java/com/ibeetl/jlw/web/ApplicationRunnerController.java
+++ b/web/src/main/java/com/ibeetl/jlw/web/ApplicationRunnerController.java
@@ -1,6 +1,5 @@
 package com.ibeetl.jlw.web;
 
-import com.ibeetl.admin.core.util.beetl.DataTableName;
 import com.ibeetl.jlw.entity.Quartz;
 import com.ibeetl.jlw.service.AttributeService;
 import com.ibeetl.jlw.service.IpAddressService;
@@ -39,10 +38,11 @@ public class ApplicationRunnerController implements ApplicationRunner {
     public void run(ApplicationArguments args) throws Exception {
         long l = System.currentTimeMillis();
 
-        try {
-            String url = ResourceBundle.getBundle("application").getString("spring.datasource.baseDataSource.url").split("\\?")[0];
-            DataTableName.dataName = url.substring(url.lastIndexOf("/") + 1);
-        } catch (Exception e) {}
+        // 多数据源用不到这块
+//        try {
+//            String url = ResourceBundle.getBundle("application").getString("spring.datasource.baseDataSource.url").split("\\?")[0];
+//            DataTableName.dataName = url.substring(url.lastIndexOf("/") + 1);
+//        } catch (Exception e) {}
 
 
         try {
diff --git a/web/src/main/resources/sql/jlw/teacherOpenCourseScheduleSession.md b/web/src/main/resources/sql/jlw/teacherOpenCourseScheduleSession.md
index edce8a1f..ae162d02 100644
--- a/web/src/main/resources/sql/jlw/teacherOpenCourseScheduleSession.md
+++ b/web/src/main/resources/sql/jlw/teacherOpenCourseScheduleSession.md
@@ -87,7 +87,6 @@ queryByConditionGroup
   @pageTag(){
   tz.teacher_open_course_schedule_session_id,
   tz.teacher_open_course_schedule_session_day_time,
-  tz.teacher_open_course_schedule_session_add_time,
   tz.teacher_open_course_schedule_session_status,
   tz.teacher_open_course_id,
   tz.teacher_id,