Browse Source

Merge remote-tracking branch 'origin/saas' into saas

zouxuan 2 years ago
parent
commit
f7e036471c

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ExportTypeEnum.java

@@ -7,7 +7,7 @@ public enum ExportTypeEnum implements BaseEnum<Integer, ExportTypeEnum> {
 	COURSE_SCHEDULE(1, "课表列表"),
 	ROUTE_ORDER(2, "财务管理"),
 	STUDENT_VIP_PRACTICE(3, "VIP网管课耗导出"),
-	STUDENT_MUSIC_THEORY_COURSE_INFO(4, "网管课学员课程信息导出"),
+	STUDENT_MUSIC_THEORY_COURSE_INFO(4, "乐理课学员课程导出"),
 	STUDENT_VIP_COURSE_INFO(5, "VIP课学员课程信息导出"),
 	VIP_STUDENT_COURSE_MANAGE(6, "vip学员课程管理"),
 	STUDENT_SMALL_CLASS_STATISTICS(7, "学员小课数据统计"),

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SysConfigService.java

@@ -393,6 +393,9 @@ public interface SysConfigService extends BaseService<Long, SysConfig> {
 
     //平台收款账户
     String PLATFORM_PAYEE_ACCOUNT = "platform_payee_account";
+    
+    //机构云教室账户余额提醒
+    String TENANT_CLOUD_ROOM_BALANCE_NOTICE = "tenant_cloud_room_balance_notice_";
 
     static Date checkActivityDate(String startTimeStr, String endTimeStr) {
         Date now = new Date();

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

@@ -4379,7 +4379,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         List<Map<Integer, BigDecimal>> surplusCourseFeeMapList = new ArrayList<>();
         List<Map<String, String>> classGroupStudents = (List<Map<String, String>>) JSON.parse(classGroupStudentMap);
         //班级列表
-        List<Integer> classGroupIds = classGroupStudents.stream().map(e -> Integer.parseInt(e.keySet().iterator().next())).collect(Collectors.toList());
+        /*List<Integer> classGroupIds = classGroupStudents.stream().map(e -> Integer.parseInt(e.keySet().iterator().next())).collect(Collectors.toList());
         classGroupIds.add(masterClassGroupId);
         List<ClassGroup> byClassGroupIds = classGroupDao.findByClassGroupIds(classGroupIds, null);
         long count = byClassGroupIds.stream().map(e -> e.getMusicGroupId()).distinct().count();
@@ -4390,7 +4390,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             if (musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE) {
                 throw new BizException("操作失败:主班乐团不能是系统收费团");
             }
-        }
+        }*/
         //学员剩余课程价值
         Map<Integer, BigDecimal> classGroupTotalPrice = new HashMap<>();
         //主班剩余课程价值

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

@@ -273,6 +273,7 @@ public class OrderPayOpsServiceImpl implements OrderPayOpsService {
             throw new BizException("微信支付请先授权");
         }
         String wxMpOAuth2AccessTokenUrl = String.format(ConfigInit.wxMpOAuth2AccessTokenUrl, hfMerchantConfig.getWxAppId(), hfMerchantConfig.getWxAppSecret(), code);
+        log.info("请求微信授权接口的参数:{}", wxMpOAuth2AccessTokenUrl);
         Map<String, String> weChatRes = JSON.parseObject(HttpUtil.get(wxMpOAuth2AccessTokenUrl, new HashMap<>()), Map.class);
         if (!weChatRes.containsKey("openid")) {
         	log.error("获取微信openId失败:[{}]",JsonUtil.toJSONString(weChatRes));

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

@@ -1119,6 +1119,7 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
         studentPaymentOrder.setTenantId(student.getTenantId());
         studentPaymentOrderService.insert(studentPaymentOrder);
 
+        studentPaymentOrder.setVersion(0);
         studentGoodsSell.setCouponMarketAmount(studentPaymentOrder.getCouponRemitFee());
         studentGoodsSell.setOrganId(student.getOrganId());
         studentGoodsSell.setTotalAmount(studentPaymentOrder.getActualAmount());

+ 10 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantAssetsInfoServiceImpl.java

@@ -49,6 +49,9 @@ public class TenantAssetsInfoServiceImpl extends ServiceImpl<TenantAssetsInfoDao
     private TenantInfoService tenantInfoService;
     @Autowired
     private SysMessageService sysMessageService;
+    
+    @Autowired
+    private SysConfigService sysConfigService;
 
     private final Predicate<String> VipPredicate = (o) -> Objects.equals(o, CourseSchedule.CourseScheduleType.VIP.getCode());
 
@@ -175,13 +178,18 @@ public class TenantAssetsInfoServiceImpl extends ServiceImpl<TenantAssetsInfoDao
     private void sendMsg(Integer tenantId, BigDecimal balance, BigDecimal after) {
         TenantInfo t = tenantInfoService.getById(tenantId);
         //当前余额大于300 并且 本次扣除后剩余额度小于300
-        BigDecimal threeHundred = new BigDecimal(300);
+        int balanceThresholdValue = 300;
+        SysConfig config = sysConfigService.findByParamName(SysConfigService.TENANT_CLOUD_ROOM_BALANCE_NOTICE);
+        if(config != null && StringUtils.isNotBlank(config.getParanValue())){
+        	balanceThresholdValue = Integer.parseInt(config.getParanValue());
+        }
+        BigDecimal threeHundred = new BigDecimal(balanceThresholdValue);
         if (balance.compareTo(threeHundred) >= 0 && after.compareTo(threeHundred) < 0) {
 
             //邮件
             if (StringUtils.isNotBlank(t.getEmail())) {
                 //机构名称 300 余额
-                Object[] emailMsg = {t.getName(), 300, after.toString()};
+                Object[] emailMsg = {t.getName(), balanceThresholdValue, after.toString()};
                 Map<Integer, String> sendPar = new HashMap<>();
                 sendPar.put(t.getUserId(), t.getEmail());
                 log.info("platformSendToAll>>> 余额不足 receiveUserId {} email {} objs {} sendPar {}", t.getUserId(), t.getEmail(), emailMsg, sendPar);

+ 0 - 10
mec-biz/src/main/resources/config/contracts/latest_contract_template.ftl

@@ -99,16 +99,6 @@
                 <div class="iInfo">
                     <span>学生姓名:${studentInfo.username!}</span>
                 </div>
-                <#if studentInfo.grade?default("")?trim?length gt 1>
-                <div class="iInfo">
-                    <span>所在班级:${studentInfo.grade!} ${studentInfo.clazz!}</span>
-                </div>
-                </#if>
-                <#if studentInfo.subject.name?default("")?trim?length gt 1>
-                <div class="iInfo">
-                    <span>所在声部:${studentInfo.subject.name!}</span>
-                </div>
-                </#if>
             </div>
         </div>
         <div>(本协议中“乙方“指学员及家长;”乙方学员“指购买甲方产品或服务的学员;”乙方家长“仅指乙方学员的法定监护人。)</div>

+ 2 - 2
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherCourseScheduleController.java

@@ -203,9 +203,9 @@ public class TeacherCourseScheduleController extends BaseController {
         if(Objects.isNull(oldCourseSchedule.getTenantId())){
             return failed("课程机构信息异常");
         }
-        if(oldCourseSchedule.getGroupType() != GroupType.VIP){
+        /*if(oldCourseSchedule.getGroupType() != GroupType.VIP){
         	return failed("客户端只能调整VIP课");
-        }
+        }*/
         Date now = new Date();
         if(now.compareTo(oldCourseSchedule.getStartClassTime())>0){
             throw new BizException("进行中或已结束课程不可调整");

+ 7 - 1
mec-web/src/main/java/com/ym/mec/web/controller/ChargeTypeController.java

@@ -5,16 +5,20 @@ import com.ym.mec.biz.service.ChargeTypeService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.page.QueryInfo;
+import com.ym.mec.common.tenant.TenantContextHolder;
 import com.yonge.log.model.AuditLogAnnotation;
+
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 @RequestMapping("chargeType")
 @Api(tags = "收费类型服务")
@@ -53,7 +57,9 @@ public class ChargeTypeController extends BaseController {
     @GetMapping("/findAll")
     @PreAuthorize("@pcs.hasPermissions('chargeType/findAll')")
     public HttpResponseResult<List<ChargeType>> findAll() {
-        return succeed(chargeTypeService.findAll(new HashMap<>()));
+    	Map<String, Object> params = new HashMap<String, Object>();
+    	params.put("tenantId", TenantContextHolder.getTenantId());
+        return succeed(chargeTypeService.findAll(params));
     }
 
 }

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

@@ -1,14 +1,219 @@
 package com.ym.mec.web.controller;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dao.*;
-import com.ym.mec.biz.dal.dto.*;
-import com.ym.mec.biz.dal.entity.*;
-import com.ym.mec.biz.dal.enums.*;
-import com.ym.mec.biz.dal.page.*;
+import com.ym.mec.biz.dal.dao.CourseScheduleDao;
+import com.ym.mec.biz.dal.dao.CourseScheduleStudentPaymentDao;
+import com.ym.mec.biz.dal.dao.MusicGroupDao;
+import com.ym.mec.biz.dal.dao.PracticeGroupDao;
+import com.ym.mec.biz.dal.dao.StudentDao;
+import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
+import com.ym.mec.biz.dal.dao.SysUserCashAccountDetailDao;
+import com.ym.mec.biz.dal.dao.SysUserCoursesAccountDetailDao;
+import com.ym.mec.biz.dal.dao.TempBuyFreeLiveTheoryCourseDao;
+import com.ym.mec.biz.dal.dao.VipGroupDao;
+import com.ym.mec.biz.dal.dto.ChildrenStatisticsDetailDto;
+import com.ym.mec.biz.dal.dto.ClassGroupTeachersDto;
+import com.ym.mec.biz.dal.dto.CloudTeacherActiveTargetDetailDto;
+import com.ym.mec.biz.dal.dto.CloudTeacherActiveTargetDto;
+import com.ym.mec.biz.dal.dto.CourseGroupExportDto;
+import com.ym.mec.biz.dal.dto.CourseReviewDto;
+import com.ym.mec.biz.dal.dto.DoubleEleven2021Dto;
+import com.ym.mec.biz.dal.dto.DoubleEleven2021OrderDetailDto;
+import com.ym.mec.biz.dal.dto.EduOrganStudentDataDto;
+import com.ym.mec.biz.dal.dto.EduOrganStudentListExportDto;
+import com.ym.mec.biz.dal.dto.ExportDto;
+import com.ym.mec.biz.dal.dto.ExportStudentAttendanceDto;
+import com.ym.mec.biz.dal.dto.ExportTeacherSalaryDto;
+import com.ym.mec.biz.dal.dto.ExportVipGroupActivityDto;
+import com.ym.mec.biz.dal.dto.ExtraExerciseStudentsDto;
+import com.ym.mec.biz.dal.dto.IndexErrorDataExportDto;
+import com.ym.mec.biz.dal.dto.MusicArrearageStudentDto;
+import com.ym.mec.biz.dal.dto.MusicGroupCourseScheduleDto;
+import com.ym.mec.biz.dal.dto.MusicGroupPaymentCalenderAuditDto;
+import com.ym.mec.biz.dal.dto.MusicGroupPaymentCalenderDetailDto;
+import com.ym.mec.biz.dal.dto.MusicGroupStudentsDto;
+import com.ym.mec.biz.dal.dto.MusicalListDetailDto;
+import com.ym.mec.biz.dal.dto.NoClassMusicStudentDto;
+import com.ym.mec.biz.dal.dto.OrderByTypeExportDto;
+import com.ym.mec.biz.dal.dto.OrganDoubleEleven2021StatisDto;
+import com.ym.mec.biz.dal.dto.PageInfoDegree;
+import com.ym.mec.biz.dal.dto.PracticeCourseDto;
+import com.ym.mec.biz.dal.dto.PracticeGroupDto;
+import com.ym.mec.biz.dal.dto.Student4operating;
+import com.ym.mec.biz.dal.dto.StudentApplyDetailDto;
+import com.ym.mec.biz.dal.dto.StudentBuyPracticeDto;
+import com.ym.mec.biz.dal.dto.StudentErrorLeaveDto;
+import com.ym.mec.biz.dal.dto.StudentExercisesSituationDto;
+import com.ym.mec.biz.dal.dto.StudentManageListDto;
+import com.ym.mec.biz.dal.dto.StudentVisitDto;
+import com.ym.mec.biz.dal.dto.TeacherCourseSalaryDetail4WebDto;
+import com.ym.mec.biz.dal.dto.TeacherDefaultSalaryDto;
+import com.ym.mec.biz.dal.dto.TeacherSalaryDto;
+import com.ym.mec.biz.dal.dto.TeacherServeDto;
+import com.ym.mec.biz.dal.dto.TeacherStudentDataDto;
+import com.ym.mec.biz.dal.dto.VipBuyResultDto;
+import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
+import com.ym.mec.biz.dal.entity.CooperationOrgan;
+import com.ym.mec.biz.dal.entity.DegreeRegistration;
+import com.ym.mec.biz.dal.entity.EmployeeInfo;
+import com.ym.mec.biz.dal.entity.Goods;
+import com.ym.mec.biz.dal.entity.ManagerDownload;
+import com.ym.mec.biz.dal.entity.MusicEnlightenmentQuestionnaire;
+import com.ym.mec.biz.dal.entity.MusicGroup;
+import com.ym.mec.biz.dal.entity.MusicGroupQuit;
+import com.ym.mec.biz.dal.entity.SellOrder;
+import com.ym.mec.biz.dal.entity.SporadicChargeInfo;
+import com.ym.mec.biz.dal.entity.Student;
+import com.ym.mec.biz.dal.entity.StudentAttendance;
+import com.ym.mec.biz.dal.entity.SysMusicScore;
+import com.ym.mec.biz.dal.entity.SysUserCashAccountDetail;
+import com.ym.mec.biz.dal.entity.SysUserCoursesAccountDetail;
+import com.ym.mec.biz.dal.entity.Teacher;
+import com.ym.mec.biz.dal.entity.TeacherCourseReward;
+import com.ym.mec.biz.dal.entity.TeacherCourseStatistics;
+import com.ym.mec.biz.dal.entity.TeacherSalaryComplaints;
+import com.ym.mec.biz.dal.entity.TempBuyFreeLiveTheoryCourse;
+import com.ym.mec.biz.dal.entity.TenantPaymentOrder;
+import com.ym.mec.biz.dal.entity.VipGroup;
+import com.ym.mec.biz.dal.enums.AccountType;
+import com.ym.mec.biz.dal.enums.CourseStatusEnum;
+import com.ym.mec.biz.dal.enums.ExamSongTypeEnum;
+import com.ym.mec.biz.dal.enums.ExportEnum;
+import com.ym.mec.biz.dal.enums.ExportTypeEnum;
+import com.ym.mec.biz.dal.enums.GroupType;
+import com.ym.mec.biz.dal.enums.IndexErrorType;
+import com.ym.mec.biz.dal.enums.KitGroupPurchaseTypeEnum;
+import com.ym.mec.biz.dal.enums.LevelEnum;
+import com.ym.mec.biz.dal.enums.OrderTypeEnum;
+import com.ym.mec.biz.dal.enums.PaymentChannelEnum;
+import com.ym.mec.biz.dal.enums.PaymentStatusEnum;
+import com.ym.mec.biz.dal.enums.TeachTypeEnum;
+import com.ym.mec.biz.dal.enums.YesOrNoEnum;
+import com.ym.mec.biz.dal.page.ArrearageStudentsQueryInfo;
+import com.ym.mec.biz.dal.page.ChildrenReserveQueryInfo;
+import com.ym.mec.biz.dal.page.ClassGroupQueryInfo;
+import com.ym.mec.biz.dal.page.CloudTeacherActiveQueryInfo;
+import com.ym.mec.biz.dal.page.CooperationOrganQueryInfo;
+import com.ym.mec.biz.dal.page.CourseReviewQueryInfo;
+import com.ym.mec.biz.dal.page.CourseSalaryQueryInfo4Web;
+import com.ym.mec.biz.dal.page.CourseScheduleTeacherSalaryQueryInfo;
+import com.ym.mec.biz.dal.page.DegreeQueryInfo;
+import com.ym.mec.biz.dal.page.DoubleEleven2021QueryInfo;
+import com.ym.mec.biz.dal.page.EmployeeInfoQueryInfo;
+import com.ym.mec.biz.dal.page.EndCourseScheduleQueryInfo;
+import com.ym.mec.biz.dal.page.ExportStudentAttendanceQueryInfo;
+import com.ym.mec.biz.dal.page.ExportTeacherSalaryQueryInfo;
+import com.ym.mec.biz.dal.page.ExportUserAccountQueryInfo;
+import com.ym.mec.biz.dal.page.ExtraExercilseReplyQueryInfo;
+import com.ym.mec.biz.dal.page.GoodsQueryInfo;
+import com.ym.mec.biz.dal.page.IndexErrRecordQueryInfo;
+import com.ym.mec.biz.dal.page.LiveBroadcastRoomMemberQueryInfo;
+import com.ym.mec.biz.dal.page.MusicCalenderDetailQueryInfo;
+import com.ym.mec.biz.dal.page.MusicEnlightenmentQuestionnaireQueryInfo;
+import com.ym.mec.biz.dal.page.MusicGroupPaymentCalenderQueryInfo;
+import com.ym.mec.biz.dal.page.MusicGroupQueryInfo;
+import com.ym.mec.biz.dal.page.MusicGroupQuitQueryInfo;
+import com.ym.mec.biz.dal.page.MusicGroupStudentQueryInfo;
+import com.ym.mec.biz.dal.page.NoClassMusicStudentQueryInfo;
+import com.ym.mec.biz.dal.page.OrganCloudStudyStudentDataQueryInfo;
+import com.ym.mec.biz.dal.page.PracticeGroupQueryInfo;
+import com.ym.mec.biz.dal.page.SellOrderQueryInfo;
+import com.ym.mec.biz.dal.page.SporadicChargeInfoQueryInfo;
+import com.ym.mec.biz.dal.page.StudentAttendanceQueryInfo;
+import com.ym.mec.biz.dal.page.StudentBuyPracticeQueryInfo;
+import com.ym.mec.biz.dal.page.StudentErrorLeaveQueryInfo;
+import com.ym.mec.biz.dal.page.StudentExercisesSituationQueryInfo;
+import com.ym.mec.biz.dal.page.StudentManageQueryInfo;
+import com.ym.mec.biz.dal.page.StudentOperatingQueryInfo;
+import com.ym.mec.biz.dal.page.StudentQueryInfo;
+import com.ym.mec.biz.dal.page.StudentRegistrationQueryInfo;
+import com.ym.mec.biz.dal.page.StudentVisitQueryInfo;
+import com.ym.mec.biz.dal.page.SysExamSongQueryInfo;
+import com.ym.mec.biz.dal.page.TeacherCloseQueryInfo;
+import com.ym.mec.biz.dal.page.TeacherCourseRewardQueryInfo;
+import com.ym.mec.biz.dal.page.TeacherCourseStatisticsQueryInfo;
+import com.ym.mec.biz.dal.page.TeacherQueryInfo;
+import com.ym.mec.biz.dal.page.TeacherSalaryModifyQueryInfo;
+import com.ym.mec.biz.dal.page.TeacherServeQueryInfo;
+import com.ym.mec.biz.dal.page.TenantPaymentOrderQueryInfo;
+import com.ym.mec.biz.dal.page.VipGroupActivityQueryInfo;
+import com.ym.mec.biz.dal.page.VipGroupQueryInfo;
+import com.ym.mec.biz.dal.page.queryMusicGroupCourseScheduleQueryInfo;
 import com.ym.mec.biz.dal.vo.ImLiveBroadcastRoomMemberVo;
-import com.ym.mec.biz.service.*;
+import com.ym.mec.biz.service.ChildrenDayReserveService;
+import com.ym.mec.biz.service.ClassGroupService;
+import com.ym.mec.biz.service.CooperationOrganService;
+import com.ym.mec.biz.service.CourseReviewService;
+import com.ym.mec.biz.service.CourseScheduleService;
+import com.ym.mec.biz.service.CourseScheduleTeacherSalaryService;
+import com.ym.mec.biz.service.DegreeRegistrationService;
+import com.ym.mec.biz.service.EmployeeInfoService;
+import com.ym.mec.biz.service.ExportService;
+import com.ym.mec.biz.service.ExtracurricularExercisesReplyService;
+import com.ym.mec.biz.service.GoodsService;
+import com.ym.mec.biz.service.ImLiveBroadcastRoomMemberService;
+import com.ym.mec.biz.service.IndexBaseMonthDataService;
+import com.ym.mec.biz.service.IndexErrDataRecordService;
+import com.ym.mec.biz.service.MusicEnlightenmentQuestionnaireService;
+import com.ym.mec.biz.service.MusicGroupPaymentCalenderDetailService;
+import com.ym.mec.biz.service.MusicGroupPaymentCalenderService;
+import com.ym.mec.biz.service.MusicGroupQuitService;
+import com.ym.mec.biz.service.MusicGroupService;
+import com.ym.mec.biz.service.OrganizationService;
+import com.ym.mec.biz.service.PracticeGroupService;
+import com.ym.mec.biz.service.SellOrderService;
+import com.ym.mec.biz.service.SporadicChargeInfoService;
+import com.ym.mec.biz.service.StudentAttendanceService;
+import com.ym.mec.biz.service.StudentExtracurricularExercisesSituationService;
+import com.ym.mec.biz.service.StudentManageService;
+import com.ym.mec.biz.service.StudentPaymentOrderDetailService;
+import com.ym.mec.biz.service.StudentRegistrationService;
+import com.ym.mec.biz.service.StudentService;
+import com.ym.mec.biz.service.StudentVisitService;
+import com.ym.mec.biz.service.SysConfigService;
+import com.ym.mec.biz.service.SysMusicScoreService;
+import com.ym.mec.biz.service.SysTenantConfigService;
+import com.ym.mec.biz.service.TeacherAttendanceService;
+import com.ym.mec.biz.service.TeacherCourseRewardService;
+import com.ym.mec.biz.service.TeacherCourseStatisticsService;
+import com.ym.mec.biz.service.TeacherSalaryComplaintsService;
+import com.ym.mec.biz.service.TeacherService;
+import com.ym.mec.biz.service.TenantPaymentOrderService;
+import com.ym.mec.biz.service.VipGroupActivityService;
+import com.ym.mec.biz.service.VipGroupService;
 import com.ym.mec.common.constant.CommonConstants;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
@@ -19,27 +224,6 @@ import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.excel.POIUtil;
 
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
-
-import org.apache.commons.lang3.StringUtils;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.util.CollectionUtils;
-import org.springframework.web.bind.annotation.*;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletResponse;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.math.BigDecimal;
-import java.util.*;
-import java.util.stream.Collectors;
-
 @RequestMapping
 @Api(tags = "数据导出服务")
 @RestController
@@ -3048,4 +3232,76 @@ public class ExportController extends BaseController {
             }
         }
     }
+    
+    @ApiOperation(value = "没有班级的学员导出")
+    @PostMapping("export/noClassGroupStudentList")
+    @PreAuthorize("@pcs.hasPermissions('export/noClassGroupStudentList')")
+    public void exportNoClassGroupStudentList(HttpServletResponse response, NoClassMusicStudentQueryInfo queryInfo) throws IOException {
+    	queryInfo = organizationService.onlyEducation(queryInfo);
+        queryInfo.setPage(1);
+        queryInfo.setRows(49999);
+        List<NoClassMusicStudentDto> rows = studentRegistrationService.queryNoClassMusicStudentInfo(queryInfo).getRows();
+        if (rows.size() < 1) {
+            throw new BizException("没有可导出数据");
+        }
+        OutputStream outputStream = response.getOutputStream();
+        try {
+            HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"分部", "乐团编号",
+                    "乐团名称", "学生编号", "学生姓名", "学员声部"}, new String[]{
+                    "organName", "groupId", "groupName", "studentId", "studentName", "subjectName"}, rows);
+            response.setContentType("application/octet-stream");
+            response.setHeader("Content-Disposition", "attac:wq" +
+                    "hment;filename=noClassGroupStudentList-" + DateUtil.getDate(new Date()) + ".xls");
+
+            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/studentErrorLeaveList")
+    @PreAuthorize("@pcs.hasPermissions('export/studentErrorLeaveList')")
+    public void exportStudentErrorLeaveList(HttpServletResponse response, StudentErrorLeaveQueryInfo queryInfo) throws IOException {
+    	queryInfo.setOrganIds(organizationService.getEmployeeOrgan(queryInfo.getOrganIds()));
+        queryInfo.setPage(1);
+        queryInfo.setRows(49999);
+        List<StudentErrorLeaveDto> rows = studentManageService.queryStudentErrorLeaveList(queryInfo).getRows();
+        if (rows.size() < 1) {
+            throw new BizException("没有可导出数据");
+        }
+        OutputStream outputStream = response.getOutputStream();
+        try {
+            HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"分部", "学生编号",
+                    "学生姓名", "手机号", "近两个月请假次数", "本月请假次数"}, new String[]{
+                    "organName", "userId", "studentName", "phone", "totalNum", "currentNum"}, rows);
+            response.setContentType("application/octet-stream");
+            response.setHeader("Content-Disposition", "attac:wq" +
+                    "hment;filename=studentErrorLeaveList-" + DateUtil.getDate(new Date()) + ".xls");
+
+            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();
+                }
+            }
+        }
+    }
 }

+ 54 - 13
mec-web/src/main/java/com/ym/mec/web/controller/StudentManageController.java

@@ -1,25 +1,66 @@
 package com.ym.mec.web.controller;
 
-import com.ym.mec.biz.dal.dto.*;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.ym.mec.biz.dal.dto.ActivityCourseDetailDto;
+import com.ym.mec.biz.dal.dto.CloudStudyStudentDataDto;
+import com.ym.mec.biz.dal.dto.EduOrganStudentDataDto;
+import com.ym.mec.biz.dal.dto.IndexCloudStudyListDto;
+import com.ym.mec.biz.dal.dto.StatDto;
+import com.ym.mec.biz.dal.dto.StudentSubTotalCourseTimesDto;
+import com.ym.mec.biz.dal.dto.UpdateStudentFeeDto;
 import com.ym.mec.biz.dal.entity.Organization;
 import com.ym.mec.biz.dal.entity.Student;
-import com.ym.mec.biz.dal.page.*;
-import com.ym.mec.biz.service.*;
+import com.ym.mec.biz.dal.page.CloudTeacherActiveQueryInfo;
+import com.ym.mec.biz.dal.page.MusicGroupStudentQueryInfo;
+import com.ym.mec.biz.dal.page.OrganCloudStudyStudentDataQueryInfo;
+import com.ym.mec.biz.dal.page.StudentActivityQueryInfo;
+import com.ym.mec.biz.dal.page.StudentErrorLeaveQueryInfo;
+import com.ym.mec.biz.dal.page.StudentManageAttendanceQueryInfo;
+import com.ym.mec.biz.dal.page.StudentManageCourseQueryInfo;
+import com.ym.mec.biz.dal.page.StudentManageQueryInfo;
+import com.ym.mec.biz.dal.page.StudentManageVipClassQueryInfo;
+import com.ym.mec.biz.dal.page.StudentOperatingQueryInfo;
+import com.ym.mec.biz.dal.page.StudentQueryInfo;
+import com.ym.mec.biz.dal.page.StudentSignQueryInfo;
+import com.ym.mec.biz.dal.page.StudentSubTotalCourseTimesQueryInfo;
+import com.ym.mec.biz.dal.page.TeacherPaymentRecordInfo;
+import com.ym.mec.biz.dal.page.UserBasicQueryInfo;
+import com.ym.mec.biz.service.MusicGroupStudentFeeService;
+import com.ym.mec.biz.service.OrganizationService;
+import com.ym.mec.biz.service.StudentCourseHomeworkService;
+import com.ym.mec.biz.service.StudentManageService;
+import com.ym.mec.biz.service.StudentRegistrationService;
+import com.ym.mec.biz.service.StudentService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.QueryInfo;
-import io.swagger.annotations.*;
-import io.swagger.models.auth.In;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.util.CollectionUtils;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.*;
-import java.util.stream.Collectors;
 
 @Api(tags = "学生管理")
 @RestController

+ 1 - 3
mec-web/src/main/java/com/ym/mec/web/controller/TeacherController.java

@@ -86,9 +86,7 @@ public class TeacherController extends BaseController {
     @PreAuthorize("@pcs.hasPermissions('teacher/findTeachers','system')")
     public HttpResponseResult findTeachers(String organId,Boolean demissionFlag, Boolean isForzenWithQueryCondition) {
         organId = organizationService.getEmployeeOrgan(organId);
-        if (demissionFlag == null){
-            demissionFlag = false;
-        }
+        demissionFlag = false;
         if(isForzenWithQueryCondition == null){
         	isForzenWithQueryCondition = false;
         }