소스 검색

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

yonge 5 년 전
부모
커밋
cdea1fbcb0

+ 13 - 4
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/PracticeGroup.java

@@ -1,11 +1,10 @@
 package com.ym.mec.biz.dal.entity;
 
-import java.util.Date;
-
-import org.apache.commons.lang3.builder.ToStringBuilder;
-
 import com.ym.mec.biz.dal.enums.GroupStatusEnum;
 import com.ym.mec.biz.dal.enums.PracticeGroupType;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+import java.util.Date;
 
 /**
  * 对应数据库表(practice_group):
@@ -40,6 +39,8 @@ public class PracticeGroup {
 	
 	/**  */
 	private java.util.Date coursesStartDate;
+
+	private String coursesStartDates;
 	
 	/**  */
 	private java.util.Date coursesExpireDate;
@@ -65,6 +66,14 @@ public class PracticeGroup {
 
 	private Integer educationalTeacherId;
 
+	public String getCoursesStartDates() {
+		return coursesStartDates;
+	}
+
+	public void setCoursesStartDates(String coursesStartDates) {
+		this.coursesStartDates = coursesStartDates;
+	}
+
 	public Integer getEducationalTeacherId() {
 		return educationalTeacherId;
 	}

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

@@ -2,12 +2,34 @@ package com.ym.mec.biz.dal.page;
 
 import com.ym.mec.common.page.QueryInfo;
 
+import java.util.Date;
+
 public class TeacherCourseRewardQueryInfo extends QueryInfo {
     private Integer teacherId;
 
     private String organId;
 
-    private Integer settlementStatus;
+    private String settlementStatus;
+
+    private Date startTime;
+
+    private Date endTime;
+
+    public Date getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Date startTime) {
+        this.startTime = startTime;
+    }
+
+    public Date getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Date endTime) {
+        this.endTime = endTime;
+    }
 
     public Integer getTeacherId() {
         return teacherId;
@@ -25,11 +47,11 @@ public class TeacherCourseRewardQueryInfo extends QueryInfo {
         this.organId = organId;
     }
 
-    public Integer getSettlementStatus() {
+    public String getSettlementStatus() {
         return settlementStatus;
     }
 
-    public void setSettlementStatus(Integer settlementStatus) {
+    public void setSettlementStatus(String settlementStatus) {
         this.settlementStatus = settlementStatus;
     }
 }

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

@@ -1082,7 +1082,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                     }else {
                         teacherClassGroupDto.setStudyReportUrl(studyReportUrl + teacherClassGroupDto.getClassGroupId());
                     }
-                }else if(PracticeGroupType.FREE.equals(teacherClassGroupDto.getPracticeGroupType()) && classGroupNoStartClassTimes.intValue()==0 && classGroupTeacherMap.get(teacherClassGroupDto.getClassGroupId().intValue()).equals(user.getId())){
+                }else if(teacherClassGroupDto.getBuyMonths() == null && classGroupNoStartClassTimes.intValue()==0 && classGroupTeacherMap.get(teacherClassGroupDto.getClassGroupId().intValue()).equals(user.getId())){
                    String studyReportUrl = sysConfigDao.findConfigValue(SysConfigService.TEACHER_STUDY_REPORT_URL);
                    teacherClassGroupDto.setStudyReportUrl(studyReportUrl+teacherClassGroupDto.getClassGroupId());
                }

+ 14 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/EduPracticeGroupServiceImpl.java

@@ -185,10 +185,6 @@ public class EduPracticeGroupServiceImpl implements EduPracticeGroupService{
         Date now=new Date();
 
         int studentExitChargePractices = practiceGroupDao.checkStudentExitChargePractice(practiceGroupBuyParams.getStudentId());
-        Integer buyMonths=practiceGroupBuyParams.getBuyMonths();
-        if(!now.before(practicePromotionActivityStartDate)&&now.before(practiceBuyActivityExpireDate)&&studentExitChargePractices<=0){
-            practiceGroupBuyParams.setBuyMonths(2);
-        }
 
         LocalDate courseStartDay=LocalDate.now();
         LocalDate tempCourseLocalDate=LocalDate.parse("2020-03-01", DateUtil.dateFormatter);
@@ -291,7 +287,10 @@ public class EduPracticeGroupServiceImpl implements EduPracticeGroupService{
         }else{
             oneMonthPrice=practiceGroupBuyParams.getDrillTimesOnWeek()==1?practiceGroupSellPrice.getOnceOriginalPrice():practiceGroupSellPrice.getTwiceOriginalPrice();
         }
-        BigDecimal amount= oneMonthPrice.multiply(new BigDecimal(buyMonths));
+        BigDecimal amount= oneMonthPrice.multiply(new BigDecimal(practiceGroupBuyParams.getBuyMonths()));
+        if(!now.before(practicePromotionActivityStartDate)&&studentExitChargePractices<=0){
+            amount= oneMonthPrice.multiply(new BigDecimal(1));
+        }
 
         practiceGroupBuyParams.setDrillTimesJson(drillTimesObject.toJSONString());
         practiceGroupBuyParams.setOrganId(sysUser.getOrganId());
@@ -1140,6 +1139,16 @@ public class EduPracticeGroupServiceImpl implements EduPracticeGroupService{
             e.printStackTrace();
         }
 
+        List<ImGroupMember> imGroupMemberList = new ArrayList<>();
+        if(Objects.nonNull(practiceGroupBuyParams.getEducationalTeacherId())){
+            imGroupMemberList.add(new ImGroupMember(practiceGroupBuyParams.getEducationalTeacherId().toString()));
+        }
+        imGroupMemberList.add(new ImGroupMember(practiceGroupBuyParams.getUserId().toString()));
+        imGroupMemberList.add(new ImGroupMember(practiceGroupBuyParams.getStudentId().toString()));
+        ImGroupMember[] imGroupMembers = imGroupMemberList.toArray(new ImGroupMember[imGroupMemberList.size()]);
+        // 创建群组
+        imFeignService.groupCreate(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
+
         return BaseController.succeed();
     }
 

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

@@ -2706,10 +2706,6 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         Date now=new Date();
 
         int studentExitChargePractices = practiceGroupDao.checkStudentExitChargePractice(practiceGroupBuyParams.getStudentId());
-        Integer buyMonths=practiceGroupBuyParams.getBuyMonths();
-        if(!now.before(practicePromotionActivityStartDate)&&now.before(practiceBuyActivityExpireDate)&&studentExitChargePractices<=0){
-            practiceGroupBuyParams.setBuyMonths(2);
-        }
 
         LocalDate courseStartDay=LocalDate.now();
         LocalDate tempCourseLocalDate=LocalDate.parse("2020-03-01", DateUtil.dateFormatter);
@@ -2827,7 +2823,10 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         }else{
             oneMonthPrice=practiceGroupBuyParams.getDrillTimesOnWeek()==1?practiceGroupSellPrice.getOnceOriginalPrice():practiceGroupSellPrice.getTwiceOriginalPrice();
         }
-        BigDecimal amount= oneMonthPrice.multiply(new BigDecimal(buyMonths));
+        BigDecimal amount= oneMonthPrice.multiply(new BigDecimal(practiceGroupBuyParams.getBuyMonths()));
+        if(!now.before(practicePromotionActivityStartDate)&&studentExitChargePractices<=0){
+            amount= oneMonthPrice.multiply(new BigDecimal(1));
+        }
 
         practiceGroupBuyParams.setDrillTimesJson(drillTimesObject.toJSONString());
         practiceGroupBuyParams.setOrganId(sysUser.getOrganId());

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

@@ -45,6 +45,7 @@
         <result column="single_class_minutes_" property="singleClassMinutes"/>
         <result column="organ_id_" property="organId"/>
         <result column="courses_start_date_" property="coursesStartDate"/>
+        <result column="courses_start_dates_" property="coursesStartDates"/>
         <result column="courses_expire_date_" property="coursesExpireDate"/>
         <result column="create_time_" property="createTime"/>
         <result column="update_time_" property="updateTime"/>
@@ -538,7 +539,7 @@
                 AND (su.username_ LIKE CONCAT('%', #{search}, '%') OR su.phone_ LIKE CONCAT('%', #{search}, '%'))
             </if>
             AND su.id_ NOT IN (
-                SELECT student_id_ FROM practice_group WHERE type_='CHARGE' AND group_status_ IN ('NORMAL', 'FINISH')
+        SELECT DISTINCT pg.student_id_ FROM course_schedule_student_payment cssp LEFT JOIN practice_group pg ON pg.id_=cssp.music_group_id_ WHERE cssp.group_type_='PRACTICE' AND  pg.type_ = 'CHARGE'
             )
             AND NOT EXISTS (
                 SELECT user_id_ FROM course_schedule_student_payment cssp
@@ -568,7 +569,7 @@
                 AND (su.username_ LIKE CONCAT('%', #{search}, '%') OR su.phone_ LIKE CONCAT('%', #{search}, '%'))
             </if>
             AND su.id_ NOT IN (
-                SELECT student_id_ FROM practice_group WHERE type_='CHARGE' AND group_status_ IN ('NORMAL', 'FINISH')
+                SELECT DISTINCT pg.student_id_ FROM course_schedule_student_payment cssp LEFT JOIN practice_group pg ON pg.id_=cssp.music_group_id_ WHERE cssp.group_type_='PRACTICE' AND  pg.type_ = 'CHARGE'
             )
             AND NOT EXISTS (
                 SELECT user_id_ FROM course_schedule_student_payment cssp
@@ -610,8 +611,7 @@
             pg.name_,
             pg.user_id_,
             su.real_name_ teacher_name_,
-            MIN(CONCAT(cs.class_date_, ' ', cs.start_class_time_)) courses_start_date_,
-            MAX(CONCAT(cs.class_date_, ' ', cs.end_class_time_)) courses_expire_date_,
+            GROUP_CONCAT(CONCAT(cs.class_date_, ' ', cs.start_class_time_) ORDER BY CONCAT( cs.class_date_, ' ', cs.start_class_time_ )) courses_start_dates_,
             pg.memo_
         FROM
             practice_group pg

+ 4 - 4
mec-biz/src/main/resources/config/mybatis/TeacherAttendanceMapper.xml

@@ -178,16 +178,16 @@
             <if test="courseEndDate != null">
                 AND cs.class_date_ &lt;= #{courseEndDate}
             </if>
-            <if test="signInStatus != null and signInStatus != 3">
+            <if test="signInStatus != null and signInStatus != '' and signInStatus != 3">
                 AND ta.sign_in_status_ = #{signInStatus}
             </if>
-            <if test="signOutStatus != null and signOutStatus != 3">
+            <if test="signOutStatus != null and signOutStatus != '' and signOutStatus != 3">
                 AND ta.sign_out_status_ = #{signOutStatus}
             </if>
-            <if test="signOutStatus != null and signOutStatus == 3">
+            <if test="signOutStatus != null and signOutStatus != '' and signOutStatus == 3">
                 AND ta.sign_out_status_ IS NULL
             </if>
-            <if test="signInStatus != null and signInStatus == 3">
+            <if test="signInStatus != null and signInStatus != '' and signInStatus == 3">
                 AND ta.sign_in_status_ IS NULL
             </if>
             <if test="courseScheduleType != null">

+ 10 - 4
mec-biz/src/main/resources/config/mybatis/TeacherCourseRewardDao.xml

@@ -135,18 +135,24 @@
 
     <sql id="queryCondition">
         <where>
-            <if test="teacherId!=null">
+            <if test="teacherId != null">
                 AND tcr.teacher_id_=#{teacherId}
             </if>
-            <if test="search!=null">
+            <if test="search != null and search != ''">
                 AND (tcr.course_group_name_ LIKE CONCAT('%', #{search}, '%') OR tcr.music_group_id_ LIKE CONCAT(#{search}, '%'))
             </if>
-            <if test="organId!=null">
+            <if test="organId != null and organId != ''">
                 AND FIND_IN_SET(tcr.organ_id_ ,#{organId})
             </if>
-            <if test="settlementStatus!=null">
+            <if test="settlementStatus != null and settlementStatus != ''">
                 AND tcr.settlement_status_ = #{settlementStatus}
             </if>
+            <if test="startTime != null">
+                AND tcr.settlement_date_ >= #{startTime}
+            </if>
+            <if test="endTime != null">
+                AND tcr.settlement_date_ &lt; #{endTime}
+            </if>
         </where>
     </sql>
 

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

@@ -80,6 +80,8 @@ public class ExportController extends BaseController {
     private StudentExtracurricularExercisesSituationService studentExtracurricularExercisesSituationService;
     @Autowired
     private TeacherSalaryComplaintsService teacherSalaryComplaintsService;
+    @Autowired
+    private TeacherCourseRewardService teacherCourseRewardService;
 
     @ApiOperation(value = "导出申述处理列表")
     @PostMapping("export/teacherSalaryComplaints")
@@ -235,6 +237,57 @@ public class ExportController extends BaseController {
         }
     }
 
+    @ApiOperation(value = "导出老师结转奖励")
+    @PostMapping("export/teacherCourseReward")
+    @PreAuthorize("@pcs.hasPermissions('export/teacherCourseReward')")
+    public void teacherCourseReward(HttpServletResponse response, TeacherCourseRewardQueryInfo queryInfo) throws IOException {
+        queryInfo.setRows(99999);
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            throw new BizException("用户信息获取失败");
+        }
+        if (!sysUser.getIsSuperAdmin()) {
+            Employee employee = employeeDao.get(sysUser.getId());
+            if (StringUtils.isEmpty(queryInfo.getOrganId())) {
+                queryInfo.setOrganId(employee.getOrganIdList());
+            } else if (StringUtils.isEmpty(employee.getOrganIdList())) {
+                throw new BizException("用户所在分部异常");
+            } else {
+                List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
+                if (!list.containsAll(Arrays.asList(queryInfo.getOrganId().split(",")))) {
+                    throw new BizException("非法请求");
+                }
+            }
+        }
+        Date endTime = queryInfo.getEndTime();
+        if(endTime != null){
+            queryInfo.setEndTime(DateUtil.addDays(endTime, 1));
+        }
+        List<TeacherCourseReward> rows = teacherCourseRewardService.queryPage(queryInfo).getRows();
+        OutputStream outputStream = response.getOutputStream();
+        try {
+            HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"课程组编号", "课程组名称", "分部", "指导老师", "是否结转", "结转金额", "结转日期", "备注"}, new String[]{
+                    "musicGroupId", "courseGroupName", "organName", "teacherName", "settlementStatus.msg",
+                    "expectRewardAmount", "settlementDate", "memo"}, rows);
+            response.setContentType("application/octet-stream");
+            response.setHeader("Content-Disposition", "attachment;filename=lender-" + DateUtil.getDate(new Date()) + ".xls");
+            response.flushBuffer();
+            outputStream = response.getOutputStream();
+            workbook.write(outputStream);
+            outputStream.flush();
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            if (outputStream != null) {
+                try {
+                    outputStream.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+    }
+
 
     @ApiOperation(value = "导出学员列表")
     @PostMapping("export/studentHasCourse")

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

@@ -9,6 +9,7 @@ import com.ym.mec.biz.dal.page.TeacherCourseRewardQueryInfo;
 import com.ym.mec.biz.service.TeacherCourseRewardService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.util.date.DateUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
@@ -19,6 +20,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.Arrays;
+import java.util.Date;
 import java.util.List;
 
 @RequestMapping("teacherCourseReward")
@@ -55,6 +57,10 @@ public class TeacherCourseRewardController extends BaseController {
                 }
             }
         }
+        Date endTime = queryInfo.getEndTime();
+        if(endTime != null){
+            queryInfo.setEndTime(DateUtil.addDays(endTime, 1));
+        }
         return succeed(teacherCourseRewardService.queryPage(queryInfo));
     }
 }