Forráskód Böngészése

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

zouxuan 5 éve
szülő
commit
4c9cbe5552

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysUserCashAccountDetailDao.java

@@ -29,4 +29,12 @@ public interface SysUserCashAccountDetailDao extends BaseDAO<Long, SysUserCashAc
      * @return
      */
     Integer countByTypeAndTime(@Param("currentMonth") String currentMonth,@Param("teacherId")Integer teacherId,@Param("activeId")Integer activeId);
+
+    /**
+     * 流水明细查询-包含账户余额与课程余额
+     * @param params
+     * @return
+     */
+    List<SysUserCashAccountDetail> queryAccountDetail(Map<String, Object> params);
+    int countAccountDetails(Map<String, Object> params);
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SysUserCashAccountDetailService.java

@@ -2,10 +2,13 @@ package com.ym.mec.biz.service;
 
 import java.math.BigDecimal;
 
+import com.ym.mec.biz.dal.dto.CashAccountDetail;
 import com.ym.mec.biz.dal.entity.SysUserCashAccountDetail;
 import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
 import com.ym.mec.biz.dal.enums.TransTypeEnum;
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.BaseService;
 
 public interface SysUserCashAccountDetailService extends BaseService<Long, SysUserCashAccountDetail> {
@@ -34,4 +37,11 @@ public interface SysUserCashAccountDetailService extends BaseService<Long, SysUs
 	boolean addCashAccountDetail(Integer userId, BigDecimal amount, String origOrderId, String transNo, PlatformCashAccountDetailTypeEnum type,
 			TransTypeEnum transType, DealStatusEnum status, String comment,String description);
 
+	/**
+	 * 流水明细查询-包含账户余额与课程余额
+	 * @param queryInfo
+	 * @return
+	 */
+	PageInfo<SysUserCashAccountDetail> queryAccountDetail(CashAccountDetail queryInfo);
+
 }

+ 27 - 13
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -158,7 +158,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 	@Override
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public boolean create(ClassGroup classGroup) {
-		
+
 		if(classGroup.getType() == null){
 			throw new BizException("班级类型不能为空");
 		}
@@ -168,7 +168,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         String userIds = classGroup.getUserIds();
 
         Set<String> userIdStrSet = new HashSet<String>();
-        
+
         if(StringUtils.isNotBlank(userIds)){
         	userIdStrSet = new HashSet<>(Arrays.asList(userIds.split(",")));
         }
@@ -179,7 +179,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         classGroup.setStudentNum(userIdStrSet.size());
         //创建班级
         insert(classGroup);
-        
+
         //设置班级上的老师
         List<ClassGroupTeacherMapper> teacherMapperList = classGroup.getTeacherMapperList();
         for(ClassGroupTeacherMapper tm : teacherMapperList){
@@ -189,7 +189,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         	tm.setCreateTime(date);
         	tm.setUpdateTime(date);
         }
-        
+
         if(teacherMapperList.size() > 0){
         	classGroupTeacherMapperDao.classGroupTeachersInsert(teacherMapperList);
         }
@@ -683,7 +683,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
         }
         if(!waringStr.isEmpty()){
-            throw new BizException(waringStr);
+            throw new BizException(waringStr+"请调整");
         }
         return classGroupAndTeachers;
     }
@@ -1537,19 +1537,21 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                     Map<CourseSchedule.CourseScheduleType, TeacherDefaultMusicGroupSalary> collect = teacherSalaryList.stream().collect(Collectors.toMap(TeacherDefaultMusicGroupSalary::getCourseScheduleType, teacherDefaultMusicGroupSalary -> teacherDefaultMusicGroupSalary));
 
                     TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary = collect.get(classGroup4MixDto.getCourseType());
-                    if(teacherDefaultMusicGroupSalary != null){
-						if (teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary() == null
-								|| teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary() == null
-								|| teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() == null
-								|| teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() == null) {
-							throw new BizException("请设置老师默认课酬");
-						}
+                    Teacher teacher = teacherMap.get(classGroupTeacherMapper.getUserId());
+                    if(teacherDefaultMusicGroupSalary == null){
+                        throw new BizException("请设置"+teacher.getRealName()+"老师的"+classGroup4MixDto.getCourseType().getMsg()+"课酬");
+                    }
+                    if (teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary() == null
+                            || teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary() == null
+                            || teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() == null
+                            || teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() == null
+                            || teacherDefaultMusicGroupSalary.getSalaryRuleJson() == null) {
+                        throw new BizException("请设置"+teacher.getRealName()+"老师的"+classGroup4MixDto.getCourseType().getMsg()+"课酬");
                     }
 
                     //对应基准课酬
                     BigDecimal baseSalary = new BigDecimal(0), classTimeDuty = new BigDecimal(0);
 
-                    Teacher teacher = teacherMap.get(classGroupTeacherMapper.getUserId());
                     SalarySettlementTypeEnum settlementType = musicGroup.getSettlementType();
                     if(Objects.nonNull(teacher.getEntryDate())
                             &&(teacher.getEntryDate().after(entryDate)||teacher.getEntryDate().getTime()==entryDate.getTime())){
@@ -1586,6 +1588,10 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                     //线上小班课
                     if(classGroup4MixDto.getCourseType().equals(CourseSchedule.CourseScheduleType.HIGH_ONLINE)){
                         Integer studentNum = classGroupStudentMapperDao.countClassGroupNormalStudentNum(classGroupTeacherMapper.getClassGroupId());
+                        if (studentNum < 3 || studentNum > 5) {
+                            String numWaring = studentNum < 3 ? "人数不能小于3," : "人数不能大于5,";
+                            throw new BizException(classGroup.getName() + numWaring + "请调整");
+                        }
                         salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(studentNum.toString());
                     }
 
@@ -1876,6 +1882,10 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                     //线上小班课
                     if(classGroup4MixDto.getCourseType().equals(CourseSchedule.CourseScheduleType.HIGH_ONLINE)){
                         Integer studentNum = classGroupStudentMapperDao.countClassGroupNormalStudentNum(classGroupTeacherMapper.getClassGroupId());
+                        if (studentNum < 3 || studentNum > 5) {
+                            String numWaring = studentNum < 3 ? "人数不能小于3," : "人数不能大于5,";
+                            throw new BizException(classGroup.getName() + numWaring + "请调整");
+                        }
                         salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(studentNum.toString());
                     }
 
@@ -2138,6 +2148,10 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                     //线上小班课
                     if(classGroup4MixDto.getCourseType().equals(CourseSchedule.CourseScheduleType.HIGH_ONLINE)){
                         Integer studentNum = classGroupStudentMapperDao.countClassGroupNormalStudentNum(classGroupTeacherMapper.getClassGroupId());
+                        if (studentNum < 3 || studentNum > 5) {
+                            String numWaring = studentNum < 3 ? "人数不能小于3," : "人数不能大于5,";
+                            throw new BizException(classGroup.getName() + numWaring + "请调整");
+                        }
                         salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(studentNum.toString());
                     }
 

+ 42 - 30
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupTeacherMapperServiceImpl.java

@@ -4,10 +4,7 @@ import com.alibaba.fastjson.JSON;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.ClassGroupTeachersDto;
 import com.ym.mec.biz.dal.entity.*;
-import com.ym.mec.biz.dal.enums.CourseStatusEnum;
-import com.ym.mec.biz.dal.enums.GroupType;
-import com.ym.mec.biz.dal.enums.SalarySettlementTypeEnum;
-import com.ym.mec.biz.dal.enums.TeachTypeEnum;
+import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.service.*;
 import com.ym.mec.common.constant.CommonConstants;
 import com.ym.mec.common.dal.BaseDAO;
@@ -160,7 +157,7 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
 
     public boolean classGroupTeacherMapperUpdate(List<ClassGroupTeacherMapper> classGroupTeacherMapperList) throws Exception {
         Date date = new Date();
-        Date entryDate = DateUtil.stringToDate(sysConfigDao.findByParamName(SysConfigService.TEACHER_ENTRY_DATE).getParanValue(),"yyyy-MM-dd");
+        Date entryDate = DateUtil.stringToDate(sysConfigDao.findByParamName(SysConfigService.TEACHER_ENTRY_DATE).getParanValue(), "yyyy-MM-dd");
         List<Integer> classGroupIds = classGroupTeacherMapperList.stream().map(classGroupTeacherMapper -> classGroupTeacherMapper.getClassGroupId()).collect(Collectors.toList());
 
         List<CourseSchedule> classGroupNoStartCourseSchedules = courseScheduleService.findClassGroupNoStartCourseSchedules(classGroupIds, GroupType.MUSIC);
@@ -215,8 +212,8 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
 
                 Teacher teacher = teacherMap.get(classGroupTeacherMapper.getUserId());
                 SalarySettlementTypeEnum settlementType = musicGroup.getSettlementType();
-                if(Objects.nonNull(teacher.getEntryDate())
-                        &&(teacher.getEntryDate().after(entryDate)||teacher.getEntryDate().getTime()==entryDate.getTime())){
+                if (Objects.nonNull(teacher.getEntryDate())
+                        && (teacher.getEntryDate().after(entryDate) || teacher.getEntryDate().getTime() == entryDate.getTime())) {
                     settlementType = SalarySettlementTypeEnum.GRADIENT_SALARY;
                 }
 
@@ -248,8 +245,13 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
                     }
                 }
                 //线上小班课
-                if(classGroupNoStartCourseSchedule.getType().equals(CourseSchedule.CourseScheduleType.HIGH_ONLINE)){
+                if (classGroupNoStartCourseSchedule.getType().equals(CourseSchedule.CourseScheduleType.HIGH_ONLINE)) {
                     Integer studentNum = classGroupStudentMapperDao.countClassGroupNormalStudentNum(classGroupTeacherMapper.getClassGroupId());
+                    if (studentNum < 3 || studentNum > 5) {
+                        ClassGroup classGroup = classGroupService.get(classGroupTeacherMapper.getClassGroupId());
+                        String numWaring = studentNum < 3 ? "人数不能小于3," : "人数不能大于5,";
+                        throw new BizException(classGroup.getName() + numWaring + "请调整");
+                    }
                     salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(studentNum.toString());
                 }
 
@@ -275,10 +277,10 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
     public void createMusicGroupTeacherMapper(List<CourseSchedule> courseSchedules, String musicGroupId) {
         Date date = new Date();
         MusicGroup musicGroup = musicGroupService.get(musicGroupId);
-        Date entryDate = DateUtil.stringToDate(sysConfigDao.findByParamName(SysConfigService.TEACHER_ENTRY_DATE).getParanValue(),"yyyy-MM-dd");
+        Date entryDate = DateUtil.stringToDate(sysConfigDao.findByParamName(SysConfigService.TEACHER_ENTRY_DATE).getParanValue(), "yyyy-MM-dd");
         List<Integer> teacherUserIds = courseSchedules.stream()
-                                        .map(CourseSchedule::getActualTeacherId)
-                                        .collect(Collectors.toList());
+                .map(CourseSchedule::getActualTeacherId)
+                .collect(Collectors.toList());
         //所有教师列表
         List<Teacher> teachers = teacherDao.findByTeacherIds(teacherUserIds);
         Map<Integer, Teacher> teacherMap = teachers.stream()
@@ -313,8 +315,8 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
 
                 Teacher teacher = teacherMap.get(classGroupTeacherMapper.getUserId());
                 SalarySettlementTypeEnum settlementType = musicGroup.getSettlementType();
-                if(Objects.nonNull(teacher.getEntryDate())
-                        &&(teacher.getEntryDate().after(entryDate)||teacher.getEntryDate().getTime()==entryDate.getTime())){
+                if (Objects.nonNull(teacher.getEntryDate())
+                        && (teacher.getEntryDate().after(entryDate) || teacher.getEntryDate().getTime() == entryDate.getTime())) {
                     settlementType = SalarySettlementTypeEnum.GRADIENT_SALARY;
                 }
 
@@ -334,10 +336,10 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
                 salary = baseSalary.multiply(classTimeDuty).setScale(2, BigDecimal.ROUND_HALF_UP);
 
                 for (CourseScheduleTeacherSalary teacherSalary : allTeacherSalarys) {
-                    if(teacherSalary.getUserId().equals(classGroupTeacherMapper.getUserId())
-                            &&teacherSalary.getTeacherRole().equals(classGroupTeacherMapper.getTeacherRole())){
-                        int oldDuration=DateUtil.minutesBetween(teacherSalary.getCourseSchedule().getStartClassTime(),teacherSalary.getCourseSchedule().getEndClassTime());
-                        salary=teacherSalary.getExpectSalary().divide(new BigDecimal(oldDuration), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(duration)).setScale(2, BigDecimal.ROUND_HALF_UP);
+                    if (teacherSalary.getUserId().equals(classGroupTeacherMapper.getUserId())
+                            && teacherSalary.getTeacherRole().equals(classGroupTeacherMapper.getTeacherRole())) {
+                        int oldDuration = DateUtil.minutesBetween(teacherSalary.getCourseSchedule().getStartClassTime(), teacherSalary.getCourseSchedule().getEndClassTime());
+                        salary = teacherSalary.getExpectSalary().divide(new BigDecimal(oldDuration), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(duration)).setScale(2, BigDecimal.ROUND_HALF_UP);
                         break;
                     }
                 }
@@ -354,8 +356,13 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
                     }
                 }
                 //线上小班课
-                if(classGroupNoStartCourseSchedule.getType().equals(CourseSchedule.CourseScheduleType.HIGH_ONLINE)){
+                if (classGroupNoStartCourseSchedule.getType().equals(CourseSchedule.CourseScheduleType.HIGH_ONLINE)) {
                     Integer studentNum = classGroupStudentMapperDao.countClassGroupNormalStudentNum(classGroupTeacherMapper.getClassGroupId());
+                    if (studentNum < 3 || studentNum > 5) {
+                        ClassGroup classGroup = classGroupService.get(classGroupTeacherMapper.getClassGroupId());
+                        String numWaring = studentNum < 3 ? "人数不能小于3," : "人数不能大于5,";
+                        throw new BizException(classGroup.getName() + numWaring + "请调整");
+                    }
                     salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(studentNum.toString());
                 }
 
@@ -390,7 +397,7 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
     @Transactional(rollbackFor = Exception.class)
     public void createCourseScheduleTeacherSalary(List<CourseSchedule> courseSchedules, Map<Long, CourseSchedule> oldCourseSchedules) {
         List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
-        Date entryDate = DateUtil.stringToDate(sysConfigDao.findByParamName(SysConfigService.TEACHER_ENTRY_DATE).getParanValue(),"yyyy-MM-dd");
+        Date entryDate = DateUtil.stringToDate(sysConfigDao.findByParamName(SysConfigService.TEACHER_ENTRY_DATE).getParanValue(), "yyyy-MM-dd");
 
         //课程编号列表
         List<Long> courseScheduleIds = courseSchedules.stream().map(CourseSchedule::getId).collect(Collectors.toList());
@@ -399,7 +406,7 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
         //助教老师列表
         List<Integer> teachingTeacherIds = new ArrayList<>();
         courseSchedules.forEach(courseSchedule -> {
-            if(Objects.nonNull(courseSchedule.getTeachingTeacherIdList())){
+            if (Objects.nonNull(courseSchedule.getTeachingTeacherIdList())) {
                 teachingTeacherIds.addAll(courseSchedule.getTeachingTeacherIdList());
             }
         });
@@ -446,8 +453,8 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
 
             if (!courseSchedule.isBishopTeacherSalaryNotCreate()) {
                 Teacher teacher = teacherMap.get(courseSchedule.getActualTeacherId());
-                if(Objects.nonNull(teacher.getEntryDate())
-                        &&(teacher.getEntryDate().after(entryDate)||teacher.getEntryDate().getTime()==entryDate.getTime())){
+                if (Objects.nonNull(teacher.getEntryDate())
+                        && (teacher.getEntryDate().after(entryDate) || teacher.getEntryDate().getTime() == entryDate.getTime())) {
                     settlementType = SalarySettlementTypeEnum.GRADIENT_SALARY.getCode();
                 }
 
@@ -469,12 +476,12 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
                 return;
             }
             for (Integer teacherId : teachingTeacherIdList) {
-                if(Objects.isNull(teacherId)){
+                if (Objects.isNull(teacherId)) {
                     return;
                 }
                 Teacher teacher = teacherMap.get(teacherId);
-                if(Objects.nonNull(teacher.getEntryDate())
-                        &&(teacher.getEntryDate().after(entryDate)||teacher.getEntryDate().getTime()==entryDate.getTime())){
+                if (Objects.nonNull(teacher.getEntryDate())
+                        && (teacher.getEntryDate().after(entryDate) || teacher.getEntryDate().getTime() == entryDate.getTime())) {
                     settlementType = SalarySettlementTypeEnum.GRADIENT_SALARY.getCode();
                 }
                 TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalaryWithTeacherId = teacherDefaultMusicGroupSalariesGroupByTeacherId.get(teacherId);
@@ -487,7 +494,7 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
                         teacherDefaultMusicGroupSalaryWithTeacherId));
             }
         }
-        if(!CollectionUtils.isEmpty(courseScheduleTeacherSalaryList)){
+        if (!CollectionUtils.isEmpty(courseScheduleTeacherSalaryList)) {
             courseScheduleTeacherSalaryService.batchInsert(courseScheduleTeacherSalaryList);
         }
     }
@@ -519,7 +526,7 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
         //课时长度
         int duration = DateUtil.minutesBetween(courseSchedule.getStartClassTime(), courseSchedule.getEndClassTime());
 
-        BigDecimal teacherDefaultSalary=BigDecimal.ZERO;
+        BigDecimal teacherDefaultSalary = BigDecimal.ZERO;
 
         //如果结算方式是教师默认课酬
         if (settlementType.equals(SalarySettlementTypeEnum.TEACHER_DEFAULT.getCode())) {
@@ -561,8 +568,13 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
             }
         }
         //线上小班课
-        if(courseSchedule.getType().equals(CourseSchedule.CourseScheduleType.HIGH_ONLINE)){
+        if (courseSchedule.getType().equals(CourseSchedule.CourseScheduleType.HIGH_ONLINE)) {
             Integer studentNum = classGroupStudentMapperDao.countClassGroupNormalStudentNum(courseSchedule.getClassGroupId());
+            if (studentNum < 3 || studentNum > 5) {
+                ClassGroup classGroup = classGroupService.get(courseSchedule.getClassGroupId());
+                String numWaring = studentNum < 3 ? "人数不能小于3," : "人数不能大于5,";
+                throw new BizException(classGroup.getName() + numWaring + "请调整");
+            }
             teacherSalary = JSON.parseObject(teacherDefaultMusicGroupSalaryWithTeacherId.getSalaryRuleJson()).getBigDecimal(studentNum.toString());
         }
 
@@ -583,7 +595,7 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
     }
 
     @Override
-    public void updateTeacher(String groupId, Integer teacherId,String groupType) {
-        classGroupTeacherMapperDao.updateTeacher(groupId,teacherId,groupType);
+    public void updateTeacher(String groupId, Integer teacherId, String groupType) {
+        classGroupTeacherMapperDao.updateTeacher(groupId, teacherId, groupType);
     }
 }

+ 24 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysUserCashAccountDetailServiceImpl.java

@@ -1,8 +1,11 @@
 package com.ym.mec.biz.service.impl;
 
 import java.math.BigDecimal;
-import java.util.Date;
+import java.util.*;
 
+import com.ym.mec.biz.dal.dto.CashAccountDetail;
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.util.collection.MapUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
@@ -77,4 +80,24 @@ public class SysUserCashAccountDetailServiceImpl extends BaseServiceImpl<Long, S
 
 		return true;
 	}
+
+	@Override
+	public PageInfo<SysUserCashAccountDetail> queryAccountDetail(CashAccountDetail queryInfo) {
+		PageInfo<SysUserCashAccountDetail> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+		Map<String, Object> params = new HashMap<>();
+		MapUtil.populateMap(params, queryInfo);
+
+		List<SysUserCashAccountDetail> dataList = null;
+		int count = sysUserCashAccountDetailDao.countAccountDetails(params);
+		if (count > 0) {
+			pageInfo.setTotal(count);
+			params.put("offset", pageInfo.getOffset());
+			dataList = sysUserCashAccountDetailDao.queryAccountDetail(params);
+		}
+		if (count == 0) {
+			dataList = new ArrayList<>();
+		}
+		pageInfo.setRows(dataList);
+		return pageInfo;
+	}
 }

+ 28 - 1
mec-biz/src/main/resources/config/mybatis/SysUserCashAccountDetailMapper.xml

@@ -163,7 +163,7 @@
                 AND channel_ NOT IN (#{channel}) OR channel_ IS NULL
             </if>
         </where>
-        ORDER BY id_
+        ORDER BY id_ DESC
         <include refid="global.limit"/>
     </select>
 
@@ -204,4 +204,31 @@
       WHERE s.type_ = 'REWARDS' AND DATE_FORMAT(s.create_time_,'%Y-%m') = #{currentMonth}
       AND s.user_id_ = #{teacherId} AND s.description_ = #{activeId}
     </select>
+
+    <sql id="queryAccountDetailCondition">
+        <where>
+            <if test="userId!=null">
+                user_id_=#{userId}
+            </if>
+        </where>
+    </sql>
+    <select id="queryAccountDetail" resultMap="SysUserCashAccountDetail">
+        SELECT * FROM (
+            SELECT create_time_,amount_,balance_,status_,type_,description_,comment_ FROM	sys_user_cash_account_detail
+            <include refid="queryAccountDetailCondition"/>
+            UNION ALL
+            SELECT create_time_,amount_,balance_,status_,type_,description_,comment_ FROM sys_user_courses_account_detail
+            <include refid="queryAccountDetailCondition"/>
+        ) t ORDER BY t.create_time_
+        <include refid="global.limit"/>
+    </select>
+    <select id="countAccountDetails" resultType="int">
+        SELECT COUNT(t.id_) FROM (
+            SELECT id_,create_time_,amount_,balance_,status_,type_,description_,comment_ FROM	sys_user_cash_account_detail
+            <include refid="queryAccountDetailCondition"/>
+            UNION ALL
+            SELECT id_,create_time_,amount_,balance_,status_,type_,description_,comment_ FROM sys_user_courses_account_detail
+            <include refid="queryAccountDetailCondition"/>
+        ) t
+    </select>
 </mapper>

+ 12 - 1
mec-biz/src/main/resources/config/mybatis/SysUserCoursesAccountDetailMapper.xml

@@ -97,14 +97,25 @@
 	<delete id="delete" >
 		DELETE FROM sys_user_courses_account_detail WHERE id_ = #{id} 
 	</delete>
+
+	<sql id="queryPageCondition">
+		<where>
+			<if test="userId!=null">
+				user_id_=#{userId}
+			</if>
+		</where>
+	</sql>
 	
 	<!-- 分页查询 -->
 	<select id="queryPage" resultMap="SysUserCoursesAccountDetail" parameterType="map">
-		SELECT * FROM sys_user_courses_account_detail ORDER BY id_ <include refid="global.limit"/>
+		SELECT * FROM sys_user_courses_account_detail
+		<include refid="queryPageCondition" />
+		ORDER BY id_ DESC <include refid="global.limit"/>
 	</select>
 	
 	<!-- 查询当前表的总记录数 -->
 	<select id="queryCount" resultType="int">
 		SELECT COUNT(*) FROM sys_user_courses_account_detail
+		<include refid="queryPageCondition" />
 	</select>
 </mapper>

+ 3 - 1
mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -699,7 +699,9 @@
     </select>
 
     <select id="findByTeacherIds" resultMap="Teacher">
-        SELECT * FROM teacher WHERE id_ IN
+        SELECT t.*,su.real_name_ FROM teacher t
+        LEFT JOIN sys_user su ON su.id_ = t.id_
+        WHERE t.id_ IN
         <foreach collection="teacherIds" item="teacherId" open="(" close=")" separator=",">
             #{teacherId}
         </foreach>

+ 11 - 0
mec-web/src/main/java/com/ym/mec/web/controller/SysUserCashAccountDetailController.java

@@ -1,5 +1,6 @@
 package com.ym.mec.web.controller;
 
+import com.ym.mec.auth.api.entity.SysUser;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 
@@ -55,4 +56,14 @@ public class SysUserCashAccountDetailController extends BaseController {
         return succeed(sysUserCashAccountDetailPageInfo);
     }
 
+    @ApiOperation(value = "流水明细查询-包含账户余额与课程余额")
+    @GetMapping("/queryAccountDetail")
+    public Object queryAccountDetail(CashAccountDetail queryInfo) {
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if(user == null || user.getId() != null){
+            return failed("请重新登录");
+        }
+        return succeed(sysUserCashAccountDetailService.queryAccountDetail(queryInfo));
+    }
+
 }

+ 33 - 0
mec-web/src/main/java/com/ym/mec/web/controller/SysUserCoursesAccountDetailController.java

@@ -0,0 +1,33 @@
+package com.ym.mec.web.controller;
+
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dto.CashAccountDetail;
+import com.ym.mec.biz.service.SysUserCoursesAccountDetailService;
+import com.ym.mec.common.controller.BaseController;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RequestMapping("userCoursesAccount")
+@Api(tags = "用户课程余额服务")
+@RestController
+public class SysUserCoursesAccountDetailController extends BaseController {
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+    @Autowired
+    private SysUserCoursesAccountDetailService sysUserCoursesAccountDetailService;
+
+    @ApiOperation(value = "分页查询用户交易明细")
+    @GetMapping("/queryPage")
+    public Object queryPage(CashAccountDetail queryInfo) {
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if(user == null || user.getId() != null){
+            return failed("请重新登录");
+        }
+        return succeed(sysUserCoursesAccountDetailService.queryPage(queryInfo));
+    }
+}