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

Merge remote-tracking branch 'origin/master'

Joburgess 5 éve
szülő
commit
2a66b0d3c0

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -1443,4 +1443,11 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
                                  @Param("startTime") String startTime,
                                  @Param("teacherId") Integer teacherId,
                                  @Param("continueCourseTime") String continueCourseTime);
+
+    /**
+     * 获取课程组已结束最后一节课时间
+     * @param vipGroupIds
+     * @return
+     */
+    List<Map<String, String>> findLastOverTime(@Param("vipGroupIds") List<String> vipGroupIds);
 }

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

@@ -255,4 +255,12 @@ public interface PracticeGroupDao extends com.ym.mec.common.dal.BaseDAO<Long, Pr
     List<SimpleUserDto> findEnableAssignTeachers(@Param("studentOrganId") Integer studentOrganId,
                                                  @Param("subjectId") Integer subjectId,
                                                  @Param("studentId") Integer studentId);
+
+
+    /**
+     * 修改网管课备注
+     * @param groupId
+     * @param memo
+     */
+    void updateMemo(@Param("groupId") Long groupId, @Param("memo") String memo);
 }

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

@@ -0,0 +1,8 @@
+package com.ym.mec.biz.dal.dao;
+
+import com.ym.mec.biz.dal.entity.TeacherCourseReward;
+import com.ym.mec.common.dal.BaseDAO;
+
+public interface TeacherCourseRewardDao extends BaseDAO<Long, TeacherCourseReward> {
+
+}

+ 154 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TeacherCourseReward.java

@@ -0,0 +1,154 @@
+package com.ym.mec.biz.dal.entity;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+public class TeacherCourseReward {
+    private Long id;
+
+    private String musicGroupId;
+
+    private String groupType;
+
+    private String courseScheduleIdList;
+
+    private String courseGroupName;
+
+    private Integer organId;
+
+    private String organName;
+
+    private Integer teacherId;
+
+    private String teacherName;
+
+    private BigDecimal expectRewardAmount;
+
+    private BigDecimal actualRewardAmount;
+
+    private String memo;
+
+    private Date createTime;
+
+    private Date updateTime;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getMusicGroupId() {
+        return musicGroupId;
+    }
+
+    public void setMusicGroupId(String musicGroupId) {
+        this.musicGroupId = musicGroupId;
+    }
+
+    public String getGroupType() {
+        return groupType;
+    }
+
+    public void setGroupType(String groupType) {
+        this.groupType = groupType;
+    }
+
+    public String getCourseScheduleIdList() {
+        return courseScheduleIdList;
+    }
+
+    public void setCourseScheduleIdList(String courseScheduleIdList) {
+        this.courseScheduleIdList = courseScheduleIdList;
+    }
+
+    public String getCourseGroupName() {
+        return courseGroupName;
+    }
+
+    public void setCourseGroupName(String courseGroupName) {
+        this.courseGroupName = courseGroupName;
+    }
+
+    public Integer getOrganId() {
+        return organId;
+    }
+
+    public void setOrganId(Integer organId) {
+        this.organId = organId;
+    }
+
+    public String getOrganName() {
+        return organName;
+    }
+
+    public void setOrganName(String organName) {
+        this.organName = organName;
+    }
+
+    public Integer getTeacherId() {
+        return teacherId;
+    }
+
+    public void setTeacherId(Integer teacherId) {
+        this.teacherId = teacherId;
+    }
+
+    public String getTeacherName() {
+        return teacherName;
+    }
+
+    public void setTeacherName(String teacherName) {
+        this.teacherName = teacherName;
+    }
+
+    public BigDecimal getExpectRewardAmount() {
+        return expectRewardAmount;
+    }
+
+    public void setExpectRewardAmount(BigDecimal expectRewardAmount) {
+        this.expectRewardAmount = expectRewardAmount;
+    }
+
+    public BigDecimal getActualRewardAmount() {
+        return actualRewardAmount;
+    }
+
+    public void setActualRewardAmount(BigDecimal actualRewardAmount) {
+        this.actualRewardAmount = actualRewardAmount;
+    }
+
+    public String getMemo() {
+        return memo;
+    }
+
+    public void setMemo(String memo) {
+        this.memo = memo;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    @Override
+    public String toString() {
+        return ToStringBuilder.reflectionToString(this);
+    }
+
+}

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/VipGroup.java

@@ -130,6 +130,16 @@ public class VipGroup {
 
 	private String userInfo;
 
+	private String lastOverTime;
+
+	public String getLastOverTime() {
+		return lastOverTime;
+	}
+
+	public void setLastOverTime(String lastOverTime) {
+		this.lastOverTime = lastOverTime;
+	}
+
 	public String getUserInfo() {
 		return userInfo;
 	}

+ 25 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/TeacherCourseRewardQueryInfo.java

@@ -0,0 +1,25 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+
+public class TeacherCourseRewardQueryInfo extends QueryInfo {
+    private Integer teacherId;
+
+    private String organId;
+
+    public Integer getTeacherId() {
+        return teacherId;
+    }
+
+    public void setTeacherId(Integer teacherId) {
+        this.teacherId = teacherId;
+    }
+
+    public String getOrganId() {
+        return organId;
+    }
+
+    public void setOrganId(String organId) {
+        this.organId = organId;
+    }
+}

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/PracticeGroupService.java

@@ -286,4 +286,12 @@ public interface PracticeGroupService extends BaseService<Long, PracticeGroup> {
 	 * @return com.ym.mec.common.page.PageInfo<com.ym.mec.biz.dal.dto.SimpleUserDto>
 	 */
 	PageInfo<SimpleUserDto> findConvertDefeatStudents(QueryInfo queryInfo);
+
+
+	/**
+	 * 修改网管课备注
+	 * @param groupId
+	 * @param memo
+	 */
+    void updateMemo(Long groupId, String memo);
 }

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/TeacherCourseRewardService.java

@@ -0,0 +1,8 @@
+package com.ym.mec.biz.service;
+
+import com.ym.mec.biz.dal.entity.TeacherCourseReward;
+import com.ym.mec.common.service.BaseService;
+
+public interface TeacherCourseRewardService extends BaseService<Long, TeacherCourseReward> {
+
+}

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java

@@ -3608,4 +3608,9 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         pageInfo.setRows(dataList);
         return pageInfo;
     }
+
+    @Override
+    public void updateMemo(Long groupId, String memo) {
+        practiceGroupDao.updateMemo(groupId,memo);
+    }
 }

+ 21 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherCourseRewardServiceImpl.java

@@ -0,0 +1,21 @@
+package com.ym.mec.biz.service.impl;
+
+import com.ym.mec.biz.dal.dao.TeacherCourseRewardDao;
+import com.ym.mec.biz.dal.entity.TeacherCourseReward;
+import com.ym.mec.biz.service.TeacherCourseRewardService;
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.service.impl.BaseServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class TeacherCourseRewardServiceImpl extends BaseServiceImpl<Long, TeacherCourseReward> implements TeacherCourseRewardService {
+
+    @Autowired
+    private TeacherCourseRewardDao teacherCourseRewardDao;
+
+    @Override
+    public BaseDAO<Long, TeacherCourseReward> getDAO() {
+        return teacherCourseRewardDao;
+    }
+}

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -584,6 +584,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 				Map<String,Long> totalClassTimeMap = MapUtil.convertIntegerMap(courseScheduleDao.countTotalCourseScheduleNum(vipGroupIds,"VIP"));
 				Map<String,Long> currentClassTimeMap = MapUtil.convertIntegerMap(courseScheduleDao.countCourseScheduleNum(vipGroupIds,"VIP"));
+				Map<String,String> lastOverTimeMap = MapUtil.convertIntegerMap(courseScheduleDao.findLastOverTime(vipGroupIds));
 
 				Map<Integer, String> idNameMap=new HashMap<>();
 				if(!CollectionUtils.isEmpty(educationalTeacherIds)){
@@ -603,7 +604,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 					if(Objects.nonNull(classGroup)){
 						vipGroup.setStudentNum(classGroup.getStudentNum());
 					}
-
+					vipGroup.setLastOverTime(lastOverTimeMap.get(vipGroup.getId().toString()));
 					Long aLong = totalClassTimeMap.get(vipGroup.getId() + "");
 					vipGroup.setTotalClassTimes(aLong==null?0:aLong.intValue());
 					Long aLong1 = currentClassTimeMap.get(vipGroup.getId() + "");

+ 9 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -2964,5 +2964,14 @@
         ORDER BY cs.class_date_ DESC,cs.end_class_time_ DESC
         LIMIT 1
     </select>
+    <select id="findLastOverTime" resultType="java.util.Map">
+        SELECT cs.music_group_id_ 'key',MAX(CONCAT(cs.class_date_,' ',cs.start_class_time_)) 'value'
+        FROM course_schedule cs
+        WHERE cs.status_ = 'OVER' AND cs.group_type_ = 'VIP' AND cs.music_group_id_ IN
+        <foreach collection="vipGroupIds" open="(" close=")" separator="," item="item">
+            #{item}
+        </foreach>
+        GROUP BY cs.music_group_id_
+    </select>
 
 </mapper>

+ 3 - 0
mec-biz/src/main/resources/config/mybatis/PracticeGroupMapper.xml

@@ -99,6 +99,9 @@
             WHERE id_ = #{group.id}
         </foreach>
     </update>
+    <update id="updateMemo">
+        UPDATE practice_group SET memo_ = #{memo},update_time_ = NOW() WHERE id_ = #{groupId}
+    </update>
 
     <!-- 根据主键查询一条记录 -->
     <select id="get" resultMap="PracticeGroup">

+ 118 - 0
mec-biz/src/main/resources/config/mybatis/TeacherCourseRewardDao.xml

@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ym.mec.biz.dal.dao.TeacherCourseRewardDao">
+    <resultMap id="teacherCourseReward" type="com.ym.mec.biz.dal.entity.TeacherCourseReward">
+        <id column="id_" jdbcType="BIGINT" property="id"/>
+        <result column="music_group_id_" jdbcType="VARCHAR" property="musicGroupId"/>
+        <result column="group_type_" jdbcType="VARCHAR" property="groupType"/>
+        <result column="course_schedule_id_list_" jdbcType="VARCHAR" property="courseScheduleIdList"/>
+        <result column="course_group_name_" jdbcType="VARCHAR" property="courseGroupName"/>
+        <result column="organ_id_" jdbcType="INTEGER" property="organId"/>
+        <result column="organ_name_" jdbcType="VARCHAR" property="organName"/>
+        <result column="teacher_id_" jdbcType="INTEGER" property="teacherId"/>
+        <result column="teacher_name_" jdbcType="VARCHAR" property="teacherName"/>
+        <result column="expect_reward_amount_" jdbcType="DECIMAL" property="expectRewardAmount"/>
+        <result column="actual_reward_amount_" jdbcType="DECIMAL" property="actualRewardAmount"/>
+        <result column="memo_" jdbcType="VARCHAR" property="memo"/>
+        <result column="create_time_" jdbcType="TIMESTAMP" property="createTime"/>
+        <result column="update_time_" jdbcType="TIMESTAMP" property="updateTime"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+        <!--@mbg.generated-->
+        id_, music_group_id_, group_type_, course_schedule_id_list_, course_group_name_,
+        organ_id_, teacher_id_, expect_reward_amount_, actual_reward_amount_, memo_, create_time_,
+        update_time_
+    </sql>
+    <select id="get" parameterType="java.lang.Long" resultMap="teacherCourseReward">
+        select *
+        from teacher_course_reward
+        where id_ = #{id,jdbcType=BIGINT}
+    </select>
+    <delete id="delete" parameterType="java.lang.Long">
+        delete
+        from teacher_course_reward
+        where id_ = #{id,jdbcType=BIGINT}
+    </delete>
+    <insert id="insert" keyColumn="id_" keyProperty="id" parameterType="com.ym.mec.biz.dal.entity.TeacherCourseReward"
+            useGeneratedKeys="true">
+        insert into teacher_course_reward (music_group_id_, group_type_, course_schedule_id_list_,
+                                           course_group_name_, organ_id_, teacher_id_,
+                                           expect_reward_amount_, actual_reward_amount_,
+                                           memo_, create_time_, update_time_)
+        values (#{musicGroupId,jdbcType=VARCHAR}, #{groupType,jdbcType=VARCHAR},
+                #{courseScheduleIdList,jdbcType=VARCHAR},
+                #{courseGroupName,jdbcType=VARCHAR}, #{organId,jdbcType=INTEGER}, #{teacherId,jdbcType=INTEGER},
+                #{expectRewardAmount,jdbcType=DECIMAL}, #{actualRewardAmount,jdbcType=DECIMAL},
+                #{memo,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP})
+    </insert>
+    <update id="update" parameterType="com.ym.mec.biz.dal.entity.TeacherCourseReward">
+        update teacher_course_reward
+        <set>
+            <if test="musicGroupId != null">
+                music_group_id_ = #{musicGroupId,jdbcType=VARCHAR},
+            </if>
+            <if test="groupType != null">
+                group_type_ = #{groupType,jdbcType=VARCHAR},
+            </if>
+            <if test="courseScheduleIdList != null">
+                course_schedule_id_list_ = #{courseScheduleIdList,jdbcType=VARCHAR},
+            </if>
+            <if test="courseGroupName != null">
+                course_group_name_ = #{courseGroupName,jdbcType=VARCHAR},
+            </if>
+            <if test="organId != null">
+                organ_id_ = #{organId,jdbcType=INTEGER},
+            </if>
+            <if test="teacherId != null">
+                teacher_id_ = #{teacherId,jdbcType=INTEGER},
+            </if>
+            <if test="expectRewardAmount != null">
+                expect_reward_amount_ = #{expectRewardAmount,jdbcType=DECIMAL},
+            </if>
+            <if test="actualRewardAmount != null">
+                actual_reward_amount_ = #{actualRewardAmount,jdbcType=DECIMAL},
+            </if>
+            <if test="memo != null">
+                memo_ = #{memo,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                create_time_ = #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateTime != null">
+                update_time_ = #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+        </set>
+        where id_ = #{id,jdbcType=BIGINT}
+    </update>
+
+    <sql id="queryCondition">
+        <where>
+            <if test="teacherId!=null">
+                AND tcr.teacher_id_=#{teacherId}
+            </if>
+            <if test="search!=null">
+                AND (tcr.course_group_name_ LIKE CONCAT('%', #{search}, '%') OR tcr.music_group_id_ LIKE CONCAT(#{search}, '%'))
+            </if>
+            <if test="organId!=null">
+                AND FIND_IN_SET(tcr.organ_id_ ,#{organId})
+            </if>
+        </where>
+    </sql>
+
+    <!-- 分页查询 -->
+    <select id="queryPage" resultMap="teacherCourseReward" parameterType="map">
+        SELECT tcr.*,su.real_name_ teacher_name_,o.name_ organ_name_ FROM teacher_course_reward tcr
+        LEFT JOIN sys_user su ON su.id_ = tcr.teacher_id_
+        LEFT JOIN organization o ON o.id_ = tcr.organ_id_
+        <include refid="queryCondition"/>
+        ORDER BY tcr.id_ DESC
+        <include refid="global.limit"/>
+    </select>
+
+    <!-- 查询当前表的总记录数 -->
+    <select id="queryCount" resultType="int" parameterType="map">
+        SELECT count(*) FROM teacher_course_reward tcr
+        <include refid="queryCondition"/>
+    </select>
+
+</mapper>

+ 4 - 4
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -374,9 +374,9 @@ public class ExportController extends BaseController {
         }
         try {
             HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"VIP编号", "课程名称", "课程状态", "指导老师", "指导老师", "班级人数", "先上课单价", "线下课单价",
-                    "活动方案", "当前课次", "总课次", "剩余课次", "月消耗", "开课时间", "结束时间", "申请时间", "学生姓名"}, new String[]{
+                    "活动方案", "当前课次", "总课次", "剩余课次", "月消耗", "上次课时间", "开课时间", "结束时间", "申请时间", "学生姓名"}, new String[]{
                     "id", "name", "status.msg", "userName", "educationalTeacherName", "studentNum", "onlineClassesUnitPrice",
-                    "offlineClassesUnitPrice", "vipGroupActivityName", "currentClassTimes", "totalClassTimes", "subClassTimes", "monthConsumeRate",
+                    "offlineClassesUnitPrice", "vipGroupActivityName", "currentClassTimes", "totalClassTimes", "subClassTimes", "monthConsumeRate", "lastOverTime",
                     "courseStartDate", "coursesExpireDate", "registrationStartTime", "userInfo"}, rows);
             response.setContentType("application/octet-stream");
             response.setHeader("Content-Disposition", "attachment;filename=lender-" + DateUtil.getDate(new Date()) + ".xls");
@@ -1115,8 +1115,8 @@ public class ExportController extends BaseController {
         OutputStream ouputStream = null;
         try {
             HSSFWorkbook workbook = POIUtil.exportExcel(
-                    new String[]{"布置时间", "截至时间", "训练标题", "老师名字", "分部", "学生姓名", "提交作业", "是否回复", "是否查看"},
-                    new String[]{"createTime", "expireDate", "title", "teacherName", "organName", "user.username", "statusStr", "isRepliedStr", "isViewStr"}, rows);
+                    new String[]{"布置时间", "截至时间", "训练标题", "老师名字", "分部", "学生编号", "学生姓名", "提交作业", "提交作业时间", "是否回复", "是否查看"},
+                    new String[]{"createTime", "expireDate", "title", "teacherName", "organName", "user.username","userId", "statusStr","submitTime", "isRepliedStr", "isViewStr"}, rows);
             response.setContentType("application/octet-stream");
             response.setHeader("Content-Disposition", "attachment;filename=lender-" + DateUtil.getDate(new Date()) + ".xls");
             ouputStream = response.getOutputStream();

+ 8 - 0
mec-web/src/main/java/com/ym/mec/web/controller/PracticeGroupManageController.java

@@ -77,6 +77,14 @@ public class PracticeGroupManageController extends BaseController {
         return succeed(practiceGroupService.findPracticeGroupCourseSchedules(queryInfo));
     }
 
+    @ApiOperation(value = "修改网管课备注")
+    @PostMapping(value = "/updateMemo")
+    @PreAuthorize("@pcs.hasPermissions('practiceGroupManage/updateMemo')")
+    public Object updateMemo(Long groupId,String memo) {
+        practiceGroupService.updateMemo(groupId,memo);
+        return succeed();
+    }
+
     @ApiOperation(value = "获取陪练课可预约声部")
     @GetMapping(value = "/getPracticeApplySubjects")
     @PreAuthorize("@pcs.hasPermissions('practiceGroupManage/getPracticeApplySubjects')")

+ 62 - 0
mec-web/src/main/java/com/ym/mec/web/controller/TeacherCourseRewardController.java

@@ -0,0 +1,62 @@
+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.dao.EmployeeDao;
+import com.ym.mec.biz.dal.entity.Employee;
+import com.ym.mec.biz.dal.entity.Teacher;
+import com.ym.mec.biz.dal.page.*;
+import com.ym.mec.biz.service.ClassGroupService;
+import com.ym.mec.biz.service.TeacherCourseRewardService;
+import com.ym.mec.biz.service.TeacherService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
+import io.swagger.annotations.*;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Arrays;
+import java.util.List;
+
+@RequestMapping("teacherCourseReward")
+@Api(tags = "结转奖励服务")
+@RestController
+public class TeacherCourseRewardController extends BaseController {
+
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+    @Autowired
+    private EmployeeDao employeeDao;
+    @Autowired
+    private TeacherCourseRewardService teacherCourseRewardService;
+
+
+    @ApiOperation(value = "分页查询结转奖励")
+    @GetMapping("/queryPage")
+    @PreAuthorize("@pcs.hasPermissions('teacherCourseReward/queryPage')")
+    public Object queryPage(TeacherCourseRewardQueryInfo queryInfo) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        if (!sysUser.getIsSuperAdmin()) {
+            Employee employee = employeeDao.get(sysUser.getId());
+            if (StringUtils.isEmpty(queryInfo.getOrganId())) {
+                queryInfo.setOrganId(employee.getOrganIdList());
+            } else if (StringUtils.isEmpty(employee.getOrganIdList())) {
+                return failed("用户所在分部异常");
+            } else {
+                List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
+                if (!list.containsAll(Arrays.asList(queryInfo.getOrganId().split(",")))) {
+                    return failed("非法请求");
+                }
+            }
+        }
+        return succeed(teacherCourseRewardService.queryPage(queryInfo));
+    }
+}