Joburgess 5 年 前
コミット
7e80808512
15 ファイル変更294 行追加41 行削除
  1. 15 6
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/ExamManualLedgerController.java
  2. 1 6
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/MusicTheoryController.java
  3. 17 1
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/ExamManualLedgerDao.java
  4. 3 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/MusicTheoryDao.java
  5. 34 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/dto/ExamManualLedgerStatisticsDto.java
  6. 54 20
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/entity/ExamManualLedger.java
  7. 37 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/enums/TransDirectionEnum.java
  8. 16 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/ExamManualLedgerService.java
  9. 2 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/MusicTheoryService.java
  10. 43 1
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamManualLedgerServiceImpl.java
  11. 18 1
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/MusicTheoryServiceImpl.java
  12. 43 2
      edu-user/edu-user-server/src/main/resources/config/mybatis/ExamManualLedgerMapper.xml
  13. 6 2
      edu-user/edu-user-server/src/main/resources/config/mybatis/ExamTeacherSalaryMapper.xml
  14. 3 0
      edu-user/edu-user-server/src/main/resources/config/mybatis/MusicTheoryMapper.xml
  15. 2 2
      edu-user/edu-user-server/src/main/resources/config/mybatis/TeacherMapper.xml

+ 15 - 6
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/ExamManualLedgerController.java

@@ -4,7 +4,9 @@ import com.keao.edu.common.controller.BaseController;
 import com.keao.edu.common.entity.HttpResponseResult;
 import com.keao.edu.common.page.PageInfo;
 import com.keao.edu.common.tenant.TenantContextHolder;
+import com.keao.edu.user.dto.ExamManualLedgerStatisticsDto;
 import com.keao.edu.user.entity.ExamManualLedger;
+import com.keao.edu.user.enums.TransDirectionEnum;
 import com.keao.edu.user.page.ExamManualLedgerQueryInfo;
 import com.keao.edu.user.service.ExamManualLedgerService;
 import io.swagger.annotations.Api;
@@ -18,7 +20,7 @@ import org.springframework.web.bind.annotation.*;
  */
 @RestController
 @RequestMapping("examManualLedger")
-@Api(tags = "出记录服务")
+@Api(tags = "出记录服务")
 public class ExamManualLedgerController extends BaseController {
 
     @Autowired
@@ -27,28 +29,35 @@ public class ExamManualLedgerController extends BaseController {
     @ApiOperation("分页查询")
     @GetMapping(value = "/list")
     public HttpResponseResult<PageInfo<ExamManualLedger>> getList(ExamManualLedgerQueryInfo queryInfo) {
-        return succeed(examManualLedgerService.queryPage(queryInfo));
+        return succeed(examManualLedgerService.queryExamManualLedgers(queryInfo));
     }
 
-    @ApiOperation("新增考点")
+    @ApiOperation("新增支出记录")
     @PostMapping(value = "/add")
     public HttpResponseResult add(@RequestBody ExamManualLedger examManualLedger) {
+        examManualLedger.setTransDirection(TransDirectionEnum.EXPENDITURE);
         examManualLedger.setTenantId(TenantContextHolder.getTenantId().toString());
-        examManualLedgerService.insert(examManualLedger);
+        examManualLedgerService.addExamManualLedger(examManualLedger);
         return succeed();
     }
 
-    @ApiOperation("更新考点")
+    @ApiOperation("更新支出记录")
     @PostMapping(value = "/update")
     public HttpResponseResult update(@RequestBody ExamManualLedger examManualLedger) {
         examManualLedgerService.update(examManualLedger);
         return succeed();
     }
 
-    @ApiOperation("删除考点")
+    @ApiOperation("删除支出记录")
     @PostMapping(value = "/del")
     public HttpResponseResult add(Long id) {
         return succeed(examManualLedgerService.delete(id));
     }
 
+    @ApiOperation("获取考级项目支出统计信息")
+    @PostMapping(value = "/getExamManualLedgerStatistics")
+    public HttpResponseResult<ExamManualLedgerStatisticsDto> getExamManualLedgerStatistics(Long examId){
+        return succeed(examManualLedgerService.getExamManualLedgerStatistics(examId));
+    }
+
 }

+ 1 - 6
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/MusicTheoryController.java

@@ -5,9 +5,7 @@ import com.keao.edu.common.entity.HttpResponseResult;
 import com.keao.edu.common.page.PageInfo;
 import com.keao.edu.common.page.QueryInfo;
 import com.keao.edu.common.tenant.TenantContextHolder;
-import com.keao.edu.user.entity.ExamSong;
 import com.keao.edu.user.entity.MusicTheory;
-import com.keao.edu.user.service.ExamSongService;
 import com.keao.edu.user.service.MusicTheoryService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -16,9 +14,6 @@ import io.swagger.annotations.ApiParam;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import javax.validation.Valid;
-import java.util.Date;
-
 /**
  * @Author wangyp
  * @Date 2020/6/27 9:17
@@ -49,7 +44,7 @@ public class MusicTheoryController extends BaseController {
     @PostMapping(value = "/add")
     public HttpResponseResult add(@ApiParam(value = "乐理信息") @RequestBody MusicTheory musicTheory) {
         musicTheory.setTenantId(TenantContextHolder.getTenantId().toString());
-        musicTheoryService.insert(musicTheory);
+        musicTheoryService.addMusicTheory(musicTheory);
         return succeed();
     }
 

+ 17 - 1
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/ExamManualLedgerDao.java

@@ -1,9 +1,25 @@
 package com.keao.edu.user.dao;
 
 import com.keao.edu.common.dal.BaseDAO;
+import com.keao.edu.user.dto.ExamManualLedgerStatisticsDto;
 import com.keao.edu.user.entity.ExamManualLedger;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
 
 public interface ExamManualLedgerDao extends BaseDAO<Long, ExamManualLedger> {
 
-	
+    List<ExamManualLedger> queryExamManualLedgers(Map<String, Object> params);
+    int countExamManualLedgers(Map<String, Object> params);
+
+    /**
+     * @describe 获取考级项目支出统计信息
+     * @author Joburgess
+     * @date 2020.07.09
+     * @param examId:
+     * @return com.keao.edu.user.dto.ExamManualLedgerStatisticsDto
+     */
+    ExamManualLedgerStatisticsDto getExamManualLedgerStatistics(@Param("examId") Long examId);
+
 }

+ 3 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/MusicTheoryDao.java

@@ -15,4 +15,7 @@ public interface MusicTheoryDao extends BaseDAO<Integer, MusicTheory> {
 
     List<MusicTheory> getWithTenant(@Param("tenantId") Integer tenantId);
 
+    MusicTheory getWithTenantAndLevel(@Param("tenantId") String tenantId,
+                                      @Param("level") Integer level);
+
 }

+ 34 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dto/ExamManualLedgerStatisticsDto.java

@@ -0,0 +1,34 @@
+package com.keao.edu.user.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+import java.math.BigDecimal;
+
+/**
+ * @Author Joburgess
+ * @Date 2020.07.09
+ */
+public class ExamManualLedgerStatisticsDto {
+
+    @ApiModelProperty(value = "支出笔数")
+    private Integer expenditureNum;
+
+    @ApiModelProperty(value = "支出费用")
+    private BigDecimal expenditureFee;
+
+    public Integer getExpenditureNum() {
+        return expenditureNum;
+    }
+
+    public void setExpenditureNum(Integer expenditureNum) {
+        this.expenditureNum = expenditureNum;
+    }
+
+    public BigDecimal getExpenditureFee() {
+        return expenditureFee;
+    }
+
+    public void setExpenditureFee(BigDecimal expenditureFee) {
+        this.expenditureFee = expenditureFee;
+    }
+}

+ 54 - 20
edu-user/edu-user-server/src/main/java/com/keao/edu/user/entity/ExamManualLedger.java

@@ -1,5 +1,8 @@
 package com.keao.edu.user.entity;
 
+import com.keao.edu.auth.api.entity.SysUser;
+import com.keao.edu.user.enums.TransDirectionEnum;
+import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 /**
@@ -7,30 +10,37 @@ import org.apache.commons.lang3.builder.ToStringBuilder;
  */
 public class ExamManualLedger {
 
-	/**  */
 	private Long id;
-	
-	/**  */
+
+	@ApiModelProperty(value = "合作单位编号")
+	private Integer organId;
+
+	@ApiModelProperty(value = "合作单位基本信息")
+	private Organization organization;
+
+	@ApiModelProperty(value = "考级项目编号")
 	private Integer examinationBasicId;
 	
-	/** 转账方向(收/支) */
-	private String transDirection;
-	
-	/** 交易金额 */
+	@ApiModelProperty(value = "转账方向")
+	private TransDirectionEnum transDirection;
+
+	@ApiModelProperty(value = "交易金额")
 	private java.math.BigDecimal amount;
 	
-	/** 交易时间 */
+	@ApiModelProperty(value = "交易时间")
 	private java.util.Date transTime;
 	
-	/**  */
+	@ApiModelProperty(value = "备注")
 	private String memo;
 	
-	/** 操作人编号 */
+	@ApiModelProperty(value = "操作人编号")
 	private Integer operatorUserId;
 
+	@ApiModelProperty(value = "操作人基本信息")
+	private SysUser operator;
+
 	private String tenantId;
-	
-	/**  */
+
 	private java.util.Date createTime;
 	
 	public void setId(Long id){
@@ -40,7 +50,15 @@ public class ExamManualLedger {
 	public Long getId(){
 		return this.id;
 	}
-			
+
+	public Integer getOrganId() {
+		return organId;
+	}
+
+	public void setOrganId(Integer organId) {
+		this.organId = organId;
+	}
+
 	public void setExaminationBasicId(Integer examinationBasicId){
 		this.examinationBasicId = examinationBasicId;
 	}
@@ -48,15 +66,31 @@ public class ExamManualLedger {
 	public Integer getExaminationBasicId(){
 		return this.examinationBasicId;
 	}
-			
-	public void setTransDirection(String transDirection){
-		this.transDirection = transDirection;
+
+	public Organization getOrganization() {
+		return organization;
 	}
-	
-	public String getTransDirection(){
-		return this.transDirection;
+
+	public void setOrganization(Organization organization) {
+		this.organization = organization;
 	}
-			
+
+	public SysUser getOperator() {
+		return operator;
+	}
+
+	public void setOperator(SysUser operator) {
+		this.operator = operator;
+	}
+
+	public TransDirectionEnum getTransDirection() {
+		return transDirection;
+	}
+
+	public void setTransDirection(TransDirectionEnum transDirection) {
+		this.transDirection = transDirection;
+	}
+
 	public void setAmount(java.math.BigDecimal amount){
 		this.amount = amount;
 	}

+ 37 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/enums/TransDirectionEnum.java

@@ -0,0 +1,37 @@
+package com.keao.edu.user.enums;
+
+import com.keao.edu.common.enums.BaseEnum;
+
+/**
+ * @Author Joburgess
+ * @Date 2020.07.09
+ */
+public enum  TransDirectionEnum implements BaseEnum<String, TransDirectionEnum> {
+    INCOME("INCOME", "收入"),
+    EXPENDITURE("EXPENDITURE", "支出");
+    private String code;
+
+    private String msg;
+
+    TransDirectionEnum(String code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+    @Override
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+}

+ 16 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/ExamManualLedgerService.java

@@ -1,9 +1,25 @@
 package com.keao.edu.user.service;
 
 
+import com.keao.edu.common.page.PageInfo;
 import com.keao.edu.common.service.BaseService;
+import com.keao.edu.user.dto.ExamManualLedgerStatisticsDto;
 import com.keao.edu.user.entity.ExamManualLedger;
+import com.keao.edu.user.page.ExamManualLedgerQueryInfo;
 
 public interface ExamManualLedgerService extends BaseService<Long, ExamManualLedger> {
 
+    void addExamManualLedger(ExamManualLedger examManualLedger);
+
+    PageInfo<ExamManualLedger> queryExamManualLedgers(ExamManualLedgerQueryInfo queryInfo);
+
+    /**
+     * @describe 获取考级项目支出统计信息
+     * @author Joburgess
+     * @date 2020.07.09
+     * @param examId:
+     * @return com.keao.edu.user.dto.ExamManualLedgerStatisticsDto
+     */
+    ExamManualLedgerStatisticsDto getExamManualLedgerStatistics(Long examId);
+
 }

+ 2 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/MusicTheoryService.java

@@ -5,4 +5,6 @@ import com.keao.edu.user.entity.MusicTheory;
 
 public interface MusicTheoryService extends BaseService<Integer, MusicTheory> {
 
+    void addMusicTheory(MusicTheory musicTheory);
+
 }

+ 43 - 1
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamManualLedgerServiceImpl.java

@@ -2,13 +2,20 @@ package com.keao.edu.user.service.impl;
 
 
 import com.keao.edu.common.dal.BaseDAO;
+import com.keao.edu.common.exception.BizException;
+import com.keao.edu.common.page.PageInfo;
 import com.keao.edu.common.service.impl.BaseServiceImpl;
 import com.keao.edu.user.dao.ExamManualLedgerDao;
+import com.keao.edu.user.dto.ExamManualLedgerStatisticsDto;
 import com.keao.edu.user.entity.ExamManualLedger;
+import com.keao.edu.user.page.ExamManualLedgerQueryInfo;
 import com.keao.edu.user.service.ExamManualLedgerService;
+import com.keao.edu.util.collection.MapUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.*;
+
 @Service
 public class ExamManualLedgerServiceImpl extends BaseServiceImpl<Long, ExamManualLedger> implements ExamManualLedgerService {
 	
@@ -19,5 +26,40 @@ public class ExamManualLedgerServiceImpl extends BaseServiceImpl<Long, ExamManua
 	public BaseDAO<Long, ExamManualLedger> getDAO() {
 		return examManualLedgerDao;
 	}
-	
+
+	@Override
+	public void addExamManualLedger(ExamManualLedger examManualLedger) {
+		if(Objects.isNull(examManualLedger.getExaminationBasicId())){
+			throw new BizException("请指定考级项目");
+		}
+		if(Objects.isNull(examManualLedger.getAmount())){
+			throw new BizException("请指定交易金额");
+		}
+		examManualLedgerDao.insert(examManualLedger);
+	}
+
+	@Override
+	public PageInfo<ExamManualLedger> queryExamManualLedgers(ExamManualLedgerQueryInfo queryInfo) {
+		PageInfo<ExamManualLedger> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+		Map<String, Object> params = new HashMap<String, Object>();
+		MapUtil.populateMap(params, queryInfo);
+
+		List<ExamManualLedger> dataList = new ArrayList<>();
+		int count = examManualLedgerDao.countExamManualLedgers(params);
+		if (count > 0) {
+			pageInfo.setTotal(count);
+			params.put("offset", pageInfo.getOffset());
+			dataList = examManualLedgerDao.queryExamManualLedgers(params);
+		}
+		pageInfo.setRows(dataList);
+		return pageInfo;
+	}
+
+	@Override
+	public ExamManualLedgerStatisticsDto getExamManualLedgerStatistics(Long examId) {
+		if(Objects.isNull(examId)){
+			throw new BizException("请指定考级项目");
+		}
+		return examManualLedgerDao.getExamManualLedgerStatistics(examId);
+	}
 }

+ 18 - 1
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/MusicTheoryServiceImpl.java

@@ -1,6 +1,7 @@
 package com.keao.edu.user.service.impl;
 
 import com.keao.edu.common.dal.BaseDAO;
+import com.keao.edu.common.exception.BizException;
 import com.keao.edu.common.service.impl.BaseServiceImpl;
 import com.keao.edu.user.dao.MusicTheoryDao;
 import com.keao.edu.user.entity.MusicTheory;
@@ -8,6 +9,8 @@ import com.keao.edu.user.service.MusicTheoryService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Objects;
+
 @Service
 public class MusicTheoryServiceImpl extends BaseServiceImpl<Integer, MusicTheory> implements MusicTheoryService {
 	
@@ -18,5 +21,19 @@ public class MusicTheoryServiceImpl extends BaseServiceImpl<Integer, MusicTheory
 	public BaseDAO<Integer, MusicTheory> getDAO() {
 		return musicTheoryDao;
 	}
-	
+
+	@Override
+	public void addMusicTheory(MusicTheory musicTheory) {
+		if(Objects.isNull(musicTheory.getLevel())){
+			throw new BizException("请设置乐理级别");
+		}
+		if(Objects.isNull(musicTheory.getFee())){
+			throw new BizException("请设置乐理费用");
+		}
+		MusicTheory existsMusicTheory = musicTheoryDao.getWithTenantAndLevel(musicTheory.getTenantId(), musicTheory.getLevel());
+		if(Objects.nonNull(existsMusicTheory)){
+			throw new BizException("乐理级别重复");
+		}
+		musicTheoryDao.insert(musicTheory);
+	}
 }

+ 43 - 2
edu-user/edu-user-server/src/main/resources/config/mybatis/ExamManualLedgerMapper.xml

@@ -8,6 +8,7 @@
 	
 	<resultMap type="com.keao.edu.user.entity.ExamManualLedger" id="ExamManualLedger">
 		<result column="id_" property="id" />
+		<result column="organ_id_" property="organId"/>
 		<result column="examination_basic_id_" property="examinationBasicId" />
 		<result column="trans_direction_" property="transDirection" />
 		<result column="amount_" property="amount" />
@@ -16,6 +17,8 @@
 		<result column="operator_user_id_" property="operatorUserId" />
 		<result column="tenant_id_" property="tenantId" />
 		<result column="create_time_" property="createTime" />
+		<association property="organization" columnPrefix="organ_" resultMap="com.keao.edu.user.dao.OrganizationDao"/>
+		<association property="operator" columnPrefix="user_" resultMap="com.keao.edu.user.dao.SysUserDao.SysUser"/>
 	</resultMap>
 	
 	<!-- 根据主键查询一条记录 -->
@@ -35,14 +38,17 @@
 		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
 		</selectKey>
 		-->
-		INSERT INTO exam_manual_ledger (examination_basic_id_,trans_direction_,amount_,trans_time_,memo_,operator_user_id_,tenant_id_,create_time_)
-		VALUES(#{examinationBasicId},#{transDirection},#{amount},#{transTime},#{memo},#{operatorUserId},#{tenantId},NOW())
+		INSERT INTO exam_manual_ledger (organ_id_,examination_basic_id_,trans_direction_,amount_,trans_time_,memo_,operator_user_id_,tenant_id_,create_time_)
+		VALUES(#{organId},#{examinationBasicId},#{transDirection},#{amount},#{transTime},#{memo},#{operatorUserId},#{tenantId},NOW())
 	</insert>
 	
 	<!-- 根据主键查询一条记录 -->
 	<update id="update" parameterType="com.keao.edu.user.entity.ExamManualLedger">
 		UPDATE exam_manual_ledger
 		<set>
+			<if test="organId!=null">
+				organ_id_=#{organId},
+			</if>
 			<if test="examinationBasicId != null">
 				examination_basic_id_ = #{examinationBasicId},
 			</if>
@@ -82,4 +88,39 @@
 		SELECT COUNT(*) FROM exam_manual_ledger
 		WHERE examination_basic_id_=#{examId}
 	</select>
+
+	<sql id="queryExamManualLedgersCondition">
+		<where>
+			examination_basic_id_=#{examId}
+		</where>
+	</sql>
+
+	<select id="queryExamManualLedgers" resultMap="ExamManualLedger" parameterType="map">
+		SELECT
+			eml.*,
+			o.name_ organ_name_,
+			su.real_name_ user_real_name_
+		FROM
+			exam_manual_ledger eml
+		LEFT JOIN organization o ON eml.organ_id_ = o.id_
+		LEFT JOIN sys_user su ON eml.operator_user_id_ = su.id_
+		<include refid="queryExamManualLedgersCondition"/>
+		ORDER BY id_
+		<include refid="global.limit"/>
+	</select>
+
+	<select id="countExamManualLedgers" resultType="int">
+		SELECT COUNT(*) FROM exam_manual_ledger
+		<include refid="queryExamManualLedgersCondition"/>
+	</select>
+
+	<select id="getExamManualLedgerStatistics" resultType="com.keao.edu.user.dto.ExamManualLedgerStatisticsDto">
+		SELECT
+			COUNT( id_ ) expenditureNum,
+			SUM( amount_ ) expenditureFee
+		FROM
+			exam_manual_ledger
+		WHERE
+			trans_direction_ = 'EXPENDITURE';
+	</select>
 </mapper>

+ 6 - 2
edu-user/edu-user-server/src/main/resources/config/mybatis/ExamTeacherSalaryMapper.xml

@@ -160,7 +160,10 @@
 				AND ets.teacher_id_=#{teacherId}
 			</if>
 			<if test="settlementType!=null">
-				AND ets.settlement_type_ = #{ts.settlementType,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler}
+				AND ets.settlement_type_ = #{settlementType,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler}
+			</if>
+			<if test="search!=null">
+				AND (ets.teacher_id_=#{search} OR su.real_name_ LIKE CONCAT(#{search}, '%'))
 			</if>
 		</where>
 	</sql>
@@ -175,6 +178,7 @@
 
 	<select id="countExamTeacherSalary" resultType="int">
 		SELECT COUNT(*) FROM exam_teacher_salary ets
+		LEFT JOIN sys_user su ON ets.teacher_id_=su.id_
 		<include refid="queryExamTeacherSalaryCondition"/>
 	</select>
 
@@ -233,7 +237,7 @@
 		FROM
 			exam_teacher_salary
 		WHERE
-			examination_basic_id_ =1
+			examination_basic_id_ =#{examId}
 	</select>
 
 </mapper>

+ 3 - 0
edu-user/edu-user-server/src/main/resources/config/mybatis/MusicTheoryMapper.xml

@@ -92,4 +92,7 @@
 	<select id="getWithTenant" resultMap="MusicTheory">
 		SELECT * FROM music_theory WHERE tenant_id_=#{tenantId}
 	</select>
+    <select id="getWithTenantAndLevel" resultMap="MusicTheory">
+		SELECT * FROM music_theory WHERE tenant_id_=#{tenantId} AND level=#{level}
+    </select>
 </mapper>

+ 2 - 2
edu-user/edu-user-server/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -112,8 +112,8 @@
 
     <select id="getWithTeachers" resultMap="Teacher">
 		SELECT * FROM teacher WHERE user_id_ IN
-		<foreach collection="teacherIds" item="teacherId" separator=",">
-			(#{teacherId})
+		<foreach collection="teacherIds" item="teacherId" separator="," open="(" close=")">
+			#{teacherId}
 		</foreach>
 	</select>
 	<select id="queryTeacherSubjectNames" resultType="java.util.Map">