Explorar o código

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

 Conflicts:
	mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java
zouxuan %!s(int64=3) %!d(string=hai) anos
pai
achega
633bf16f27
Modificáronse 35 ficheiros con 252 adicións e 40 borrados
  1. 2 2
      cms/src/main/resources/bootstrap-test.properties
  2. 1 1
      mec-auth/mec-auth-server/src/main/resources/bootstrap-test.properties
  3. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentExtracurricularExercisesSituationDao.java
  4. 2 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysMusicCompareWeekDataDao.java
  5. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/DegreeRegistrationActivityDto.java
  6. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/DegreeRegistration.java
  7. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Student.java
  8. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentPreRegistration.java
  9. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/SysMusicCompareRecordQueryInfo.java
  10. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentExtracurricularExercisesSituationService.java
  11. 35 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/DegreeRegistrationServiceImpl.java
  12. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  13. 33 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentExtracurricularExercisesSituationServiceImpl.java
  14. 1 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServiceImpl.java
  15. 3 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMusicCompareRecordServiceImpl.java
  16. 9 2
      mec-biz/src/main/resources/config/mybatis/DegreeRegistrationMapper.xml
  17. 27 0
      mec-biz/src/main/resources/config/mybatis/StudentExtracurricularExercisesSituationMapper.xml
  18. 15 9
      mec-biz/src/main/resources/config/mybatis/StudentMapper.xml
  19. 4 1
      mec-biz/src/main/resources/config/mybatis/SysMusicCompareWeekDataMapper.xml
  20. 1 1
      mec-biz/src/main/resources/config/mybatis/SysMusicScoreMapper.xml
  21. 2 2
      mec-eureka/src/main/resources/bootstrap-test.properties
  22. 1 1
      mec-gateway/mec-gateway-web/src/main/resources/bootstrap-test.properties
  23. 1 0
      mec-im/src/main/java/com/ym/controller/RoomController.java
  24. 2 2
      mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java
  25. 1 1
      mec-im/src/main/resources/bootstrap-test.properties
  26. 1 1
      mec-monitor/src/main/resources/bootstrap-test.properties
  27. 1 0
      mec-student/src/main/java/com/ym/mec/student/controller/CloudStudyController.java
  28. 5 3
      mec-student/src/main/java/com/ym/mec/student/controller/DegreeController.java
  29. 1 1
      mec-student/src/main/resources/bootstrap-test.properties
  30. 1 1
      mec-task/src/main/resources/bootstrap-test.properties
  31. 1 1
      mec-teacher/src/main/resources/bootstrap-test.properties
  32. 38 2
      mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java
  33. 1 1
      mec-web/src/main/resources/bootstrap-test.properties
  34. 1 1
      mec-websocket/src/main/resources/bootstrap-test.properties
  35. 1 1
      mec-zipkin/src/main/resources/bootstrap-test.properties

+ 2 - 2
cms/src/main/resources/bootstrap-test.properties

@@ -1,9 +1,9 @@
 #\u6307\u5b9a\u5f00\u53d1\u73af\u5883
 #spring.profiles.active=dev
 #\u670d\u52a1\u5668\u5730\u5740
-spring.cloud.nacos.config.server-addr=47.114.1.200:8848
+spring.cloud.nacos.config.server-addr=47.114.176.40:8848
 #\u9ed8\u8ba4\u4e3aPublic\u547d\u540d\u7a7a\u95f4,\u53ef\u4ee5\u7701\u7565\u4e0d\u5199
-spring.cloud.nacos.config.namespace=f753d9d9-4bb2-4df6-a483-da9e169617c4
+spring.cloud.nacos.config.namespace=46f06363-b9d6-46f0-9cd7-7b33dcf26bb0
 #\u6307\u5b9a\u914d\u7f6e\u7fa4\u7ec4 --\u5982\u679c\u662fPublic\u547d\u540d\u7a7a\u95f4 \u5219\u53ef\u4ee5\u7701\u7565\u7fa4\u7ec4\u914d\u7f6e
 spring.cloud.nacos.config.group=DEFAULT_GROUP
 #\u6587\u4ef6\u540d -- \u5982\u679c\u6ca1\u6709\u914d\u7f6e\u5219\u9ed8\u8ba4\u4e3a ${spring.appliction.name}

+ 1 - 1
mec-auth/mec-auth-server/src/main/resources/bootstrap-test.properties

@@ -1,7 +1,7 @@
 #\u6307\u5b9a\u5f00\u53d1\u73af\u5883
 #spring.profiles.active=dev
 #\u670d\u52a1\u5668\u5730\u5740
-spring.cloud.nacos.config.server-addr=47.114.1.200:8848
+spring.cloud.nacos.config.server-addr=47.114.176.40:8848
 #\u9ed8\u8ba4\u4e3aPublic\u547d\u540d\u7a7a\u95f4,\u53ef\u4ee5\u7701\u7565\u4e0d\u5199
 spring.cloud.nacos.config.namespace=46f06363-b9d6-46f0-9cd7-7b33dcf26bb0
 #\u6307\u5b9a\u914d\u7f6e\u7fa4\u7ec4 --\u5982\u679c\u662fPublic\u547d\u540d\u7a7a\u95f4 \u5219\u53ef\u4ee5\u7701\u7565\u7fa4\u7ec4\u914d\u7f6e

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentExtracurricularExercisesSituationDao.java

@@ -160,4 +160,6 @@ public interface StudentExtracurricularExercisesSituationDao extends BaseDAO<Lon
      * @return
      */
     int countWaitCreateHomeworkNum1(Integer teacherId);
+    
+    List<TeacherServeDto> queryTeacherPerformanceIndicator(Map<String, Object> params);
 }

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysMusicCompareWeekDataDao.java

@@ -14,6 +14,7 @@ public interface SysMusicCompareWeekDataDao extends BaseDAO<Integer, SysMusicCom
 
     List<MusicCompareRankingDto> getUserTrainStat(@Param("monday") String monday,
                                                   @Param("orderType") Integer orderType,
-                                                  @Param("heardLevel") String heardLevel);
+                                                  @Param("heardLevel") String heardLevel,
+                                                  @Param("organId") Integer organId);
 	
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/DegreeRegistrationActivityDto.java

@@ -15,6 +15,8 @@ public class DegreeRegistrationActivityDto extends DegreeRegistration {
     private Map<CourseSchedule.CourseScheduleType, Integer> additionCourseInfo;
 
     private BigDecimal price;
+    
+    private boolean isUseBalance;
 
     public Map<CourseSchedule.CourseScheduleType, Integer> getAdditionCourseInfo() {
         return additionCourseInfo;
@@ -31,4 +33,12 @@ public class DegreeRegistrationActivityDto extends DegreeRegistration {
     public void setPrice(BigDecimal price) {
         this.price = price;
     }
+
+	public boolean isUseBalance() {
+		return isUseBalance;
+	}
+
+	public void setIsUseBalance(boolean isUseBalance) {
+		this.isUseBalance = isUseBalance;
+	}
 }

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

@@ -41,6 +41,8 @@ public class DegreeRegistration {
      */
     @ApiModelProperty(value = "性别",required = true)
     private String gender;
+    
+	private String certificateType;
 
     /**
      * 身份证号
@@ -361,4 +363,12 @@ public class DegreeRegistration {
     public void setOrganId(Integer organId) {
         this.organId = organId;
     }
+
+	public String getCertificateType() {
+		return certificateType;
+	}
+
+	public void setCertificateType(String certificateType) {
+		this.certificateType = certificateType;
+	}
 }

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

@@ -21,6 +21,8 @@ public class Student extends SysUser {
 	/**  */
 	private Integer userId;
 	
+	private String schoolName;
+	
 	/**  */
 	private String subjectIdList;
 
@@ -154,6 +156,14 @@ public class Student extends SysUser {
 		return this.userId;
 	}
 			
+	public String getSchoolName() {
+		return schoolName;
+	}
+
+	public void setSchoolName(String schoolName) {
+		this.schoolName = schoolName;
+	}
+
 	public void setSubjectIdList(String subjectIdList){
 		this.subjectIdList = subjectIdList;
 	}

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

@@ -14,6 +14,8 @@ public class StudentPreRegistration {
 	
 	private String musicGroupId;
 	
+	private String school;
+	
 	/** 用户编号 */
 	private Integer userId;
 	
@@ -83,6 +85,14 @@ public class StudentPreRegistration {
 		this.musicGroupId = musicGroupId;
 	}
 
+	public String getSchool() {
+		return school;
+	}
+
+	public void setSchool(String school) {
+		this.school = school;
+	}
+
 	public void setUserId(Integer userId){
 		this.userId = userId;
 	}

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/SysMusicCompareRecordQueryInfo.java

@@ -33,6 +33,16 @@ public class SysMusicCompareRecordQueryInfo extends QueryInfo {
 
     private Boolean visitFlag;
 
+    private Integer organId;
+
+    public Integer getOrganId() {
+        return organId;
+    }
+
+    public void setOrganId(Integer organId) {
+        this.organId = organId;
+    }
+
     public Boolean getVisitFlag() {
         return visitFlag;
     }

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/StudentExtracurricularExercisesSituationService.java

@@ -64,4 +64,11 @@ public interface StudentExtracurricularExercisesSituationService extends BaseSer
      * @return
      */
     int countWaitCreateHomeworkNum();
+    
+    /**
+     * 根据条件查询老师的服务指标
+     * @param queryInfo
+     * @return
+     */
+    List<TeacherServeDto> queryTeacherPerformanceIndicator(TeacherServeQueryInfo queryInfo);
 }

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

@@ -13,7 +13,9 @@ import com.ym.mec.biz.service.SysUserCashAccountService;
 import com.ym.mec.common.constant.CommonConstants;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.date.DateUtil;
+
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
@@ -31,6 +33,7 @@ import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.IdGeneratorService;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.util.collection.MapUtil;
+
 import org.springframework.util.CollectionUtils;
 
 @Service
@@ -273,10 +276,11 @@ public class DegreeRegistrationServiceImpl extends BaseServiceImpl<Integer, Degr
         if(amount.compareTo(degreeRegistration.getPrice())!=0){
             throw new BizException("商品价格不符");
         }
+        
+        Integer userId = degreeRegistration.getUserId();
 
         OrderTypeEnum type = OrderTypeEnum.DEGREE_REGISTRATION;
 
-        Integer userId = degreeRegistration.getUserId();
         String channelType = "";
         StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
         studentPaymentOrder.setUserId(userId);
@@ -284,7 +288,30 @@ public class DegreeRegistrationServiceImpl extends BaseServiceImpl<Integer, Degr
         studentPaymentOrder.setOrderNo(orderNo);
         studentPaymentOrder.setType(type);
         studentPaymentOrder.setExpectAmount(amount);
-        studentPaymentOrder.setActualAmount(amount);
+        
+        if(degreeRegistration.isUseBalance()){
+        	SysUserCashAccount userCashAccount = sysUserCashAccountService.getLocked(userId);
+            if (userCashAccount == null) {
+                throw new BizException("用户账户找不到");
+            }
+            BigDecimal deductBalance = BigDecimal.ZERO;
+            if (userCashAccount.getBalance().subtract(amount).doubleValue() >= 0) {
+                // 更新订单信息
+                studentPaymentOrder.setActualAmount(BigDecimal.ZERO);
+                studentPaymentOrder.setBalancePaymentAmount(amount);
+                deductBalance = amount;
+                studentPaymentOrder.setPaymentChannel("BALANCE");
+            } else {
+                studentPaymentOrder.setActualAmount(amount.subtract(userCashAccount.getBalance()));
+                studentPaymentOrder.setBalancePaymentAmount(userCashAccount.getBalance());
+                deductBalance = userCashAccount.getBalance();
+            }
+            amount = amount.subtract(deductBalance);
+            sysUserCashAccountService.updateBalance(userId, deductBalance.negate(), PlatformCashAccountDetailTypeEnum.PAY_FEE, "考级报名");
+        }else{
+            studentPaymentOrder.setActualAmount(amount);
+            studentPaymentOrder.setBalancePaymentAmount(BigDecimal.ZERO);
+        }
         studentPaymentOrder.setStatus(DealStatusEnum.ING);
         studentPaymentOrder.setClassGroupId(degreeRegistration.getId());
         if(Objects.nonNull(degreeRegistration.getSporadicId())){
@@ -565,6 +592,12 @@ public class DegreeRegistrationServiceImpl extends BaseServiceImpl<Integer, Degr
             }
         }
 
+        if (studentPaymentOrder.getStatus() == DealStatusEnum.CLOSE || studentPaymentOrder.getStatus() == DealStatusEnum.FAILED) {
+            if (studentPaymentOrder.getBalancePaymentAmount() != null && studentPaymentOrder.getBalancePaymentAmount().compareTo(BigDecimal.ZERO) > 0) {
+                sysUserCashAccountService.updateBalance(studentPaymentOrder.getUserId(), studentPaymentOrder.getBalancePaymentAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "支付失败-退回");
+            }
+        }
+
         if(Objects.isNull(studentPaymentOrder.getClassGroupId())){
             return true;
         }

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

@@ -987,7 +987,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         	}*/
         }
 
-    	MusicGroupPaymentCalender musicGroupRegCalender = musicGroupPaymentCalenderDao.getMusicGroupRegCalender(studentRegistration.getMusicGroupId());
+    	MusicGroupPaymentCalender musicGroupRegCalender = musicGroupPaymentCalenderDao.findByMusicGroupRegCalender(studentRegistration.getMusicGroupId());
         if(musicGroupRegCalender == null){
         	throw new BizException("缴费信息不存在");
         }
@@ -1061,7 +1061,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
         //新课程形态
         List<MusicGroupPaymentCalenderCourseSettings> newCourses = new ArrayList<>();
-        if (registerPayDto.getNewCourse() != null && registerPayDto.getNewCourse().size() > 0) {
+        if (musicGroupRegCalender.getPayUserType() == PayUserType.STUDENT && registerPayDto.getNewCourse() != null && registerPayDto.getNewCourse().size() > 0) {
             newCourses = musicGroupPaymentCalenderCourseSettingsDao.getCalenderCourseSettings(registerPayDto.getNewCourse());
             for (MusicGroupPaymentCalenderCourseSettings calenderCourseSetting : newCourses) {
                 if (remitCourseRFeeFlag && !calenderCourseSetting.getIsStudentOptional()) {

+ 33 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentExtracurricularExercisesSituationServiceImpl.java

@@ -22,6 +22,7 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
+
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -546,4 +547,36 @@ public class StudentExtracurricularExercisesSituationServiceImpl extends BaseSer
 		}
 		return studentExtracurricularExercisesSituationDao.countWaitCreateHomeworkNum1(sysUser.getId());
 	}
+
+	@Override
+	public List<TeacherServeDto> queryTeacherPerformanceIndicator(TeacherServeQueryInfo queryInfo) {
+		if(StringUtils.isNotBlank(queryInfo.getOrganId())){
+			List<Integer> organIds = Arrays.stream(queryInfo.getOrganId().split(",")).map(e -> Integer.valueOf(e)).collect(Collectors.toList());
+			queryInfo.setOrganIds(organIds);
+		}
+		Map<String, Object> params = new HashMap<>();
+		MapUtil.populateMap(params, queryInfo);
+
+		List<TeacherServeDto> dataList = null;
+		dataList = studentExtracurricularExercisesSituationDao.queryTeacherPerformanceIndicator(params);
+		List<Integer> teacherIds = dataList.stream().map(TeacherServeDto::getTeacherId).collect(Collectors.toList());
+		List<StudentExtracurricularExercisesSituation> teacherServeWithDate = studentExtracurricularExercisesSituationDao.findTeacherServeWithDate(queryInfo.getMonday(), queryInfo.getSunday(), teacherIds, null);
+		Map<Integer, List<StudentExtracurricularExercisesSituation>> teacherServeMap = teacherServeWithDate.stream().collect(Collectors.groupingBy(StudentExtracurricularExercisesSituation::getTeacherId));
+		for (TeacherServeDto teacherServeDto : dataList) {
+			List<StudentExtracurricularExercisesSituation> tss = teacherServeMap.get(teacherServeDto.getTeacherId());
+			Set<Long> courseIds = new HashSet<>();
+			for (StudentExtracurricularExercisesSituation ts : tss) {
+				if(teacherServeDto.getMonday().compareTo(ts.getMonday())!=0){
+					continue;
+				}
+				if(StringUtils.isBlank(ts.getCourseIds())){
+					continue;
+				}
+				Set<Long> ids = Arrays.stream(ts.getCourseIds().split(",")).map(s -> Long.valueOf(s)).collect(Collectors.toSet());
+				courseIds.addAll(ids);
+			}
+			teacherServeDto.setHomeworkNum(courseIds.size());
+		}
+		return dataList;
+	}
 }

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

@@ -175,6 +175,7 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
         student.setCreateTime(date);
         student.setUpdateTime(date);
         student.setIsNewUser(true);
+        student.setSchoolName(studentPreRegistration.getSchool());
         student.setCurrentGradeNum(studentPreRegistration.getCurrentGradeNum());
         student.setCurrentClass(studentPreRegistration.getCurrentClass());
         studentDao.insert(student);

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

@@ -179,7 +179,9 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
 		StatDto result = new StatDto();
 		MusicCompareRankingDto head = new MusicCompareRankingDto();
 		head.setUserId(queryInfo.getUserId());
-		List<MusicCompareRankingDto> userTrainStat = sysMusicCompareWeekDataDao.getUserTrainStat(queryInfo.getStartTime(), queryInfo.getOrderType(), Objects.isNull(queryInfo.getHeardLevel())?null:queryInfo.getHeardLevel().getCode());
+		List<MusicCompareRankingDto> userTrainStat = sysMusicCompareWeekDataDao.getUserTrainStat(queryInfo.getStartTime(),
+				queryInfo.getOrderType(),
+				Objects.isNull(queryInfo.getHeardLevel())?null:queryInfo.getHeardLevel().getCode(),queryInfo.getOrganId());
 		List<MusicCompareRankingDto> detail = new ArrayList<>();
 
 		List<Integer> studentIds = userTrainStat.stream().limit(10).map(MusicCompareRankingDto::getUserId).collect(Collectors.toList());

+ 9 - 2
mec-biz/src/main/resources/config/mybatis/DegreeRegistrationMapper.xml

@@ -28,6 +28,7 @@
         <result column="status_" jdbcType="TINYINT" property="status"/>
         <result column="activity_tag_" property="activityTag"/>
         <result column="degree_type_" property="degreeType"/>
+        <result column="certificate_type_" property="certificateType"/>
     </resultMap>
 
     <select id="get" parameterType="java.lang.Integer" resultMap="DegreeRegistration">
@@ -137,13 +138,13 @@
         idcard_, city_, school_,
         subject_,level_, theory_level_,theory_money_, theory_cert_,mobile_,
         money_, memo_, create_time_,
-        update_time_, status_, activity_tag_,degree_type_)
+        update_time_, status_, activity_tag_,degree_type_,certificate_type_)
         values (#{userId},#{sporadicId,jdbcType=INTEGER},#{organId,jdbcType=INTEGER}, #{orderNo,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{gender,jdbcType=VARCHAR},
         #{idcard,jdbcType=VARCHAR}, #{city,jdbcType=VARCHAR}, #{school,jdbcType=VARCHAR},
         #{subject,jdbcType=VARCHAR},#{level,jdbcType=VARCHAR},
         #{theoryLevel,jdbcType=VARCHAR},#{theoryMoney,jdbcType=DECIMAL},
         #{theoryCert,jdbcType=VARCHAR},#{mobile,jdbcType=VARCHAR},#{money,jdbcType=DECIMAL}, #{memo,jdbcType=VARCHAR},
-        #{createTime}, #{updateTime}, #{status,jdbcType=TINYINT}, #{activityTag}, #{degreeType})
+        #{createTime}, #{updateTime}, #{status,jdbcType=TINYINT}, #{activityTag}, #{degreeType},#{certificateType})
     </insert>
     <update id="update" parameterType="com.ym.mec.biz.dal.entity.DegreeRegistration">
         <!--@mbg.generated-->
@@ -215,6 +216,9 @@
             <if test="activityTag != null">
                 activity_tag_ = #{activityTag},
             </if>
+            <if test="certificateType != null">
+                certificate_type_ = #{certificateType},
+            </if>
                 update_time_ = NOW()
         </set>
         where id_ = #{id,jdbcType=INTEGER}
@@ -290,6 +294,9 @@
                 <if test="degree.activityTag != null">
                     activity_tag_ = #{degree.activityTag},
                 </if>
+	            <if test="degree.certificateType != null">
+	                certificate_type_ = #{degree.certificateType},
+	            </if>
                     update_time_ = NOW()
             </set>
             where id_ = #{degree.id,jdbcType=INTEGER}

+ 27 - 0
mec-biz/src/main/resources/config/mybatis/StudentExtracurricularExercisesSituationMapper.xml

@@ -749,4 +749,31 @@
 		AND se.expect_exercises_num_ > se.actual_exercises_num_ AND DATE_FORMAT(NOW(), '%Y-%m-%d') BETWEEN se.monday_ AND se.sunday_
 		AND se.serve_type_ = 'HOMEWORK' AND cs.group_type_ != 'MUSIC' AND cs.class_date_ &lt;= DATE_FORMAT(NOW(), '%Y-%m-%d'))t
 	</select>
+
+	<select id="queryTeacherPerformanceIndicator" resultMap="TeacherServeDto">
+		SELECT
+			organ.name_ organ_name_,
+			sees.monday_,
+			sees.sunday_,
+			sees.teacher_id_,
+			su.real_name_ teacher_name_,
+		    tea.job_nature_,
+			SUM(expect_exercises_num_) expect_exercises_num_,
+			SUM(actual_exercises_num_) actual_exercises_num_,
+			SUM(exercises_reply_num_) exercises_reply_num_,
+			SUM(exercises_message_num_) exercises_message_num_,
+			SUM(exercises_message_timely_num_) exercises_message_timely_num_,
+			SUM(CASE sees.serve_type_ WHEN 'HOMEWORK' THEN sees.expect_exercises_num_ ELSE 0 END) homework_num_,
+			SUM(CASE sees.serve_type_ WHEN 'EXERCISE' THEN 1 ELSE 0 END) exercise_num_,
+			SUM( sees.expect_exercises_num_-sees.not_over_course_num_ )> SUM( sees.actual_exercises_num_ ) un_done_
+		FROM
+			student_extracurricular_exercises_situation_ sees
+			LEFT JOIN teacher tea ON tea.id_=sees.teacher_id_
+			LEFT JOIN organization organ ON organ.id_=tea.organ_id_
+			LEFT JOIN sys_user su ON tea.id_=su.id_
+		<include refid="queryTeacherServeInfoCondition" />
+		GROUP BY sees.teacher_id_
+		ORDER BY sees.teacher_id_
+		<include refid="global.limit"></include>
+	</select>
 </mapper>

+ 15 - 9
mec-biz/src/main/resources/config/mybatis/StudentMapper.xml

@@ -8,6 +8,7 @@
 
     <resultMap type="com.ym.mec.biz.dal.entity.Student" id="Student">
         <result column="user_id_" property="userId"/>
+        <result column="school_name_" property="schoolName"/>
         <result column="subject_id_list_" property="subjectIdList"/>
         <result column="subject_name_" property="subjectNames"/>
         <result column="service_tag_" property="serviceTag"/>
@@ -77,7 +78,7 @@
     <!-- 向数据库增加一条记录 -->
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.Student" useGeneratedKeys="true" keyColumn="id"
             keyProperty="id">
-        INSERT INTO student (user_id_,subject_id_list_,
+        INSERT INTO student (user_id_,school_name_,subject_id_list_,
         <if test="serviceTag != null">
             service_tag_,
         </if>
@@ -85,9 +86,9 @@
             operating_tag_,
         </if>
         teacher_id_,create_time_,update_time_,service_tag_update_time_,cooperation_organ_id_,
-        care_package_,come_on_package_,member_rank_setting_id_,membership_start_time_,membership_end_time_)
+        care_package_,come_on_package_,member_rank_setting_id_,membership_start_time_,membership_end_time_,current_grade_num_,current_class_)
         VALUES
-        (#{userId},#{subjectIdList},
+        (#{userId},#{schoolName},#{subjectIdList},
         <if test="serviceTag != null">
             #{serviceTag},
         </if>
@@ -95,12 +96,15 @@
             #{operatingTag},
         </if>
         #{teacherId},NOW(),NOW(),NOW(),#{cooperationOrganId},
-         #{carePackage},#{comeOnPackage},#{memberRankSettingId},#{membershipStartTime},#{membershipEndTime})
+         #{carePackage},#{comeOnPackage},#{memberRankSettingId},#{membershipStartTime},#{membershipEndTime},#{currentGradeNum},#{currentClass})
     </insert>
 
     <update id="update" parameterType="com.ym.mec.biz.dal.entity.Student">
         UPDATE student
         <set>
+            <if test="schoolName != null">
+                school_name_ = #{schoolName},
+            </if>
             <if test="subjectIdList != null">
                 subject_id_list_ = #{subjectIdList},
             </if>
@@ -232,6 +236,9 @@
         <foreach collection="studentList" item="item" index="index" open="" close="" separator=";">
             UPDATE student
             <set>
+	            <if test="item.schoolName != null">
+	                school_name_ = #{item.schoolName},
+	            </if>
                 <if test="item.subjectIdList != null">
                     subject_id_list_ = #{item.subjectIdList},
                 </if>
@@ -769,15 +776,14 @@
         </foreach>
     </select>
     <select id="getNoTeacherOrNoSubjectStudent" resultMap="Student">
-        SELECT * FROM student WHERE teacher_id_ IS NULL OR subject_id_list_ IS NULL OR cooperation_organ_id_ IS NULL;
+        SELECT * FROM student WHERE teacher_id_ IS NULL OR subject_id_list_ IS NULL OR cooperation_organ_id_ IS NULL limit 0,1000;
     </select>
 
     <select id="getHasVipCourseStudentIdsFromNewStudents" resultType="int">
-        SELECT DISTINCT s.user_id_
-        FROM student s
-        LEFT JOIN course_schedule_student_payment cssp ON s.user_id_=cssp.user_id_
-        WHERE s.is_new_user_=1 AND cssp.group_type_='VIP'
+        SELECT DISTINCT(spo.user_id_) from student_payment_order spo LEFT JOIN student s on spo.user_id_ = s.user_id_ WHERE spo.type_ in ('DOUBLE_ELEVEN2021','DOUBLE_ELEVEN2020','SMALL_CLASS_TO_BUY')
+		and spo.status_ = 'SUCCESS' and spo.expect_amount_ > 0 and s.is_new_user_ = 1
     </select>
+    
     <select id="getMemberNum" resultType="int">
         SELECT COUNT(0) FROM student WHERE member_rank_setting_id_ IS NOT NULL AND FIND_IN_SET(user_id_,#{studentIdsStr})
     </select>

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

@@ -129,7 +129,10 @@
 			</if>
 		</if>
 		WHERE smcwd.monday_ = #{monday}
-			AND stu.user_id_=smcwd.user_id_
+			AND stu.user_id_ = smcwd.user_id_
+			<if test="organId != null">
+				AND su.organ_id_ = #{organId}
+			</if>
 			<if test="orderType==1">
 				<if test="heardLevel==null">
 					AND smcwd.advanced_max_score_ > 0

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

@@ -171,7 +171,7 @@
 			</if>
 			<if test="rankType != null">
 				<if test="rankType == 0">
-					AND ses.rank_ids_ IS NULL
+					AND (ses.rank_ids_ IS NULL or ses.rank_ids_ = '')
 				</if>
 				<if test="rankType == 1">
 					AND ses.rank_ids_ IS NOT NULL AND ses.rank_ids_ != ''

+ 2 - 2
mec-eureka/src/main/resources/bootstrap-test.properties

@@ -1,9 +1,9 @@
 #\u6307\u5b9a\u5f00\u53d1\u73af\u5883
 #spring.profiles.active=dev
 #\u670d\u52a1\u5668\u5730\u5740
-spring.cloud.nacos.config.server-addr=47.114.1.200:8848
+spring.cloud.nacos.config.server-addr=47.114.176.40:8848
 #\u9ed8\u8ba4\u4e3aPublic\u547d\u540d\u7a7a\u95f4,\u53ef\u4ee5\u7701\u7565\u4e0d\u5199
-spring.cloud.nacos.config.namespace=f9d46b0a-9847-48ae-8e4b-216c7a3eb466
+spring.cloud.nacos.config.namespace=46f06363-b9d6-46f0-9cd7-7b33dcf26bb0
 #\u6307\u5b9a\u914d\u7f6e\u7fa4\u7ec4 --\u5982\u679c\u662fPublic\u547d\u540d\u7a7a\u95f4 \u5219\u53ef\u4ee5\u7701\u7565\u7fa4\u7ec4\u914d\u7f6e
 spring.cloud.nacos.config.group=DEFAULT_GROUP
 #\u6587\u4ef6\u540d -- \u5982\u679c\u6ca1\u6709\u914d\u7f6e\u5219\u9ed8\u8ba4\u4e3a ${spring.appliction.name}

+ 1 - 1
mec-gateway/mec-gateway-web/src/main/resources/bootstrap-test.properties

@@ -1,7 +1,7 @@
 #\u6307\u5b9a\u5f00\u53d1\u73af\u5883
 #spring.profiles.active=dev
 #\u670d\u52a1\u5668\u5730\u5740
-spring.cloud.nacos.config.server-addr=47.114.1.200:8848
+spring.cloud.nacos.config.server-addr=47.114.176.40:8848
 #\u9ed8\u8ba4\u4e3aPublic\u547d\u540d\u7a7a\u95f4,\u53ef\u4ee5\u7701\u7565\u4e0d\u5199
 spring.cloud.nacos.config.namespace=46f06363-b9d6-46f0-9cd7-7b33dcf26bb0
 #\u6307\u5b9a\u914d\u7f6e\u7fa4\u7ec4 --\u5982\u679c\u662fPublic\u547d\u540d\u7a7a\u95f4 \u5219\u53ef\u4ee5\u7701\u7565\u7fa4\u7ec4\u914d\u7f6e

+ 1 - 0
mec-im/src/main/java/com/ym/controller/RoomController.java

@@ -165,6 +165,7 @@ public class RoomController{
     @RequestMapping(value = "/device/control", method = RequestMethod.POST)
     public Object controlDevice(@RequestBody ReqDeviceControlData data)
             throws Exception {
+        log.info("device_control: {}",JSONObject.toJSON(data));
         return new BaseResponse<>(roomService.controlDevice(data));
     }
 

+ 2 - 2
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -829,14 +829,14 @@ public class RoomServiceImpl implements RoomService {
             enable = data.getMusicScoreOn();
             if(enable){
                 //保存伴奏音量
-                roomDao.updateRoom(roomId,null,data.getSoundVolume(),null);
+                roomDao.updateRoom(roomId,null,data.getSoundVolume()==null?0:data.getSoundVolume(),null);
             }
         }else if (data.getAccompanimentOn() != null) {
             typeEnum = DeviceTypeEnum.MusicScoreAccompaniment;
             enable = data.getAccompanimentOn();
             if(enable){
                 //保存伴奏音量
-                roomDao.updateRoom(roomId,null,data.getSoundVolume(),null);
+                roomDao.updateRoom(roomId,null,data.getSoundVolume()==null?0:data.getSoundVolume(),null);
             }
         } else {
             throw new ApiException(ErrorEnum.ERR_REQUEST_PARA_ERR);

+ 1 - 1
mec-im/src/main/resources/bootstrap-test.properties

@@ -1,7 +1,7 @@
 #\u6307\u5b9a\u5f00\u53d1\u73af\u5883
 #spring.profiles.active=dev
 #\u670d\u52a1\u5668\u5730\u5740
-spring.cloud.nacos.config.server-addr=47.114.1.200:8848
+spring.cloud.nacos.config.server-addr=47.114.176.40:8848
 #\u9ed8\u8ba4\u4e3aPublic\u547d\u540d\u7a7a\u95f4,\u53ef\u4ee5\u7701\u7565\u4e0d\u5199
 spring.cloud.nacos.config.namespace=46f06363-b9d6-46f0-9cd7-7b33dcf26bb0
 #\u6307\u5b9a\u914d\u7f6e\u7fa4\u7ec4 --\u5982\u679c\u662fPublic\u547d\u540d\u7a7a\u95f4 \u5219\u53ef\u4ee5\u7701\u7565\u7fa4\u7ec4\u914d\u7f6e

+ 1 - 1
mec-monitor/src/main/resources/bootstrap-test.properties

@@ -1,7 +1,7 @@
 #\u6307\u5b9a\u5f00\u53d1\u73af\u5883
 #spring.profiles.active=dev
 #\u670d\u52a1\u5668\u5730\u5740
-spring.cloud.nacos.config.server-addr=47.96.85.100:8848
+spring.cloud.nacos.config.server-addr=47.114.176.40:8848
 #\u9ed8\u8ba4\u4e3aPublic\u547d\u540d\u7a7a\u95f4,\u53ef\u4ee5\u7701\u7565\u4e0d\u5199
 spring.cloud.nacos.config.namespace=02105743-16b8-46ab-87df-2aca0f3dbca3
 #\u6307\u5b9a\u914d\u7f6e\u7fa4\u7ec4 --\u5982\u679c\u662fPublic\u547d\u540d\u7a7a\u95f4 \u5219\u53ef\u4ee5\u7701\u7565\u7fa4\u7ec4\u914d\u7f6e

+ 1 - 0
mec-student/src/main/java/com/ym/mec/student/controller/CloudStudyController.java

@@ -38,6 +38,7 @@ public class CloudStudyController extends BaseController {
             return failed("获取用户信息失败");
         }
         queryInfo.setUserId(sysUser.getId());
+        queryInfo.setOrganId(sysUser.getOrganId());
         return succeed(sysMusicCompareRecordService.rankingList(queryInfo));
     }
 

+ 5 - 3
mec-student/src/main/java/com/ym/mec/student/controller/DegreeController.java

@@ -96,9 +96,11 @@ public class DegreeController extends BaseController {
         	return failed("请从正确入口进行报名");
         }
         
-        IdcardValidator idcardValidator = new IdcardValidator();
-        if (!debugMode && !idcardValidator.isValidatedAllIdcard(degreeRegistration.getIdcard())) {
-            throw new BizException("身份证号不正确,请核对");
+        if("IDENTITY".equals(degreeRegistration.getCertificateType())){
+	        IdcardValidator idcardValidator = new IdcardValidator();
+	        if (!debugMode && !idcardValidator.isValidatedAllIdcard(degreeRegistration.getIdcard())) {
+	            throw new BizException("身份证号不正确,请核对");
+	        }
         }
         SporadicChargeInfo info = sporadicChargeInfoDao.get(degreeRegistration.getSporadicId());
         if (info == null || info.getDelFlag().equals(1)) {

+ 1 - 1
mec-student/src/main/resources/bootstrap-test.properties

@@ -1,7 +1,7 @@
 #\u6307\u5b9a\u5f00\u53d1\u73af\u5883
 #spring.profiles.active=dev
 #\u670d\u52a1\u5668\u5730\u5740
-spring.cloud.nacos.config.server-addr=47.114.1.200:8848
+spring.cloud.nacos.config.server-addr=47.114.176.40:8848
 #\u9ed8\u8ba4\u4e3aPublic\u547d\u540d\u7a7a\u95f4,\u53ef\u4ee5\u7701\u7565\u4e0d\u5199
 spring.cloud.nacos.config.namespace=46f06363-b9d6-46f0-9cd7-7b33dcf26bb0
 #\u6307\u5b9a\u914d\u7f6e\u7fa4\u7ec4 --\u5982\u679c\u662fPublic\u547d\u540d\u7a7a\u95f4 \u5219\u53ef\u4ee5\u7701\u7565\u7fa4\u7ec4\u914d\u7f6e

+ 1 - 1
mec-task/src/main/resources/bootstrap-test.properties

@@ -1,7 +1,7 @@
 #\u6307\u5b9a\u5f00\u53d1\u73af\u5883
 #spring.profiles.active=dev
 #\u670d\u52a1\u5668\u5730\u5740
-spring.cloud.nacos.config.server-addr=47.114.1.200:8848
+spring.cloud.nacos.config.server-addr=47.114.176.40:8848
 #\u9ed8\u8ba4\u4e3aPublic\u547d\u540d\u7a7a\u95f4,\u53ef\u4ee5\u7701\u7565\u4e0d\u5199
 spring.cloud.nacos.config.namespace=46f06363-b9d6-46f0-9cd7-7b33dcf26bb0
 #\u6307\u5b9a\u914d\u7f6e\u7fa4\u7ec4 --\u5982\u679c\u662fPublic\u547d\u540d\u7a7a\u95f4 \u5219\u53ef\u4ee5\u7701\u7565\u7fa4\u7ec4\u914d\u7f6e

+ 1 - 1
mec-teacher/src/main/resources/bootstrap-test.properties

@@ -1,7 +1,7 @@
 #\u6307\u5b9a\u5f00\u53d1\u73af\u5883
 #spring.profiles.active=dev
 #\u670d\u52a1\u5668\u5730\u5740
-spring.cloud.nacos.config.server-addr=47.114.1.200:8848
+spring.cloud.nacos.config.server-addr=47.114.176.40:8848
 #\u9ed8\u8ba4\u4e3aPublic\u547d\u540d\u7a7a\u95f4,\u53ef\u4ee5\u7701\u7565\u4e0d\u5199
 spring.cloud.nacos.config.namespace=46f06363-b9d6-46f0-9cd7-7b33dcf26bb0
 #\u6307\u5b9a\u914d\u7f6e\u7fa4\u7ec4 --\u5982\u679c\u662fPublic\u547d\u540d\u7a7a\u95f4 \u5219\u53ef\u4ee5\u7701\u7565\u7fa4\u7ec4\u914d\u7f6e

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

@@ -3544,8 +3544,6 @@ public class ExportController extends BaseController {
         }
     }
 
-
-
     @ApiOperation(value = "启蒙课问卷导出")
     @RequestMapping("export/musicEnlightenmentQuestionnaires")
     @PreAuthorize("@pcs.hasPermissions('export/musicEnlightenmentQuestionnaires')")
@@ -3588,4 +3586,42 @@ public class ExportController extends BaseController {
             }
         }
     }
+
+    @ApiOperation(value = "服务指标导出")
+    @RequestMapping("export/exercisesSituation")
+    @PreAuthorize("@pcs.hasPermissions('export/exercisesSituation')")
+    public void exportExercisesSituation(TeacherServeQueryInfo queryInfo, HttpServletResponse response) throws IOException {
+        queryInfo.setPage(1);
+        queryInfo.setRows(49999);
+        List<TeacherServeDto> list = studentExtracurricularExercisesSituationService.queryTeacherPerformanceIndicator(queryInfo);
+        if (list.size() <= 0) {
+            response.setStatus(500);
+            response.setContentType("Content-Type: application/json;charset=UTF-8");
+            response.getOutputStream().write("{\"data\": null, \"code\": 500, \"status\": false, \"msg\": \"没有可导出的记录\"}".getBytes());
+            response.flushBuffer();
+            return;
+        }
+        OutputStream outputStream = response.getOutputStream();
+        try {
+            String[] header = {"分部","老师编号","老师姓名","预计安排(人次)","实际安排(人次)","布置率(%)","提交人数","点评次数","点评率(%)","及时点评次数","及时点评率(%)"};
+            String[] body = {"organName","teacherId","teacherName","expectExercisesNum","actualExercisesNum","100 * actualExercisesNum / expectExercisesNum","exercisesReplyNum","exercisesMessageNum","100 * exercisesMessageNum / exercisesReplyNum", "exercisesMessageTimelyNum","100 * exercisesMessageTimelyNum / exercisesReplyNum"};
+            HSSFWorkbook workbook = POIUtil.exportExcel(header, body, list);
+            response.setContentType("application/octet-stream");
+            response.setHeader("Content-Disposition", "attachment;filename=teacherPerformanceIndicator-" + 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();
+                }
+            }
+        }
+    }
 }

+ 1 - 1
mec-web/src/main/resources/bootstrap-test.properties

@@ -1,7 +1,7 @@
 #\u6307\u5b9a\u5f00\u53d1\u73af\u5883
 #spring.profiles.active=dev
 #\u670d\u52a1\u5668\u5730\u5740
-spring.cloud.nacos.config.server-addr=47.114.1.200:8848
+spring.cloud.nacos.config.server-addr=47.114.176.40:8848
 #\u9ed8\u8ba4\u4e3aPublic\u547d\u540d\u7a7a\u95f4,\u53ef\u4ee5\u7701\u7565\u4e0d\u5199
 spring.cloud.nacos.config.namespace=46f06363-b9d6-46f0-9cd7-7b33dcf26bb0
 #\u6307\u5b9a\u914d\u7f6e\u7fa4\u7ec4 --\u5982\u679c\u662fPublic\u547d\u540d\u7a7a\u95f4 \u5219\u53ef\u4ee5\u7701\u7565\u7fa4\u7ec4\u914d\u7f6e

+ 1 - 1
mec-websocket/src/main/resources/bootstrap-test.properties

@@ -1,7 +1,7 @@
 #\u6307\u5b9a\u5f00\u53d1\u73af\u5883
 #spring.profiles.active=dev
 #\u670d\u52a1\u5668\u5730\u5740
-spring.cloud.nacos.config.server-addr=47.114.1.200:8848
+spring.cloud.nacos.config.server-addr=47.114.176.40:8848
 #\u9ed8\u8ba4\u4e3aPublic\u547d\u540d\u7a7a\u95f4,\u53ef\u4ee5\u7701\u7565\u4e0d\u5199
 spring.cloud.nacos.config.namespace=46f06363-b9d6-46f0-9cd7-7b33dcf26bb0
 #\u6307\u5b9a\u914d\u7f6e\u7fa4\u7ec4 --\u5982\u679c\u662fPublic\u547d\u540d\u7a7a\u95f4 \u5219\u53ef\u4ee5\u7701\u7565\u7fa4\u7ec4\u914d\u7f6e

+ 1 - 1
mec-zipkin/src/main/resources/bootstrap-test.properties

@@ -1,7 +1,7 @@
 #\u6307\u5b9a\u5f00\u53d1\u73af\u5883
 #spring.profiles.active=dev
 #\u670d\u52a1\u5668\u5730\u5740
-spring.cloud.nacos.config.server-addr=47.96.85.100:8848
+spring.cloud.nacos.config.server-addr=47.114.176.40:8848
 #\u9ed8\u8ba4\u4e3aPublic\u547d\u540d\u7a7a\u95f4,\u53ef\u4ee5\u7701\u7565\u4e0d\u5199
 spring.cloud.nacos.config.namespace=02105743-16b8-46ab-87df-2aca0f3dbca3
 #\u6307\u5b9a\u914d\u7f6e\u7fa4\u7ec4 --\u5982\u679c\u662fPublic\u547d\u540d\u7a7a\u95f4 \u5219\u53ef\u4ee5\u7701\u7565\u7fa4\u7ec4\u914d\u7f6e