瀏覽代碼

Merge branch 'saas' of http://git.dayaedu.com/yonge/mec into zx_saas_2023_03

 Conflicts:
	mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java
zouxuan 2 年之前
父節點
當前提交
fa5b2f4b81
共有 49 個文件被更改,包括 617 次插入299 次删除
  1. 3 3
      audio-analysis/src/main/java/com/yonge/netty/dto/HardLevelEnum.java
  2. 1 1
      audio-analysis/src/main/resources/bootstrap-prod.properties
  3. 1 1
      cms/src/main/resources/bootstrap-prod.properties
  4. 1 1
      mec-auth/mec-auth-server/src/main/resources/bootstrap-prod.properties
  5. 3 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupStudentMapperDao.java
  6. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupDao.java
  7. 5 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentDao.java
  8. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysMusicCompareRecordDao.java
  9. 12 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TempLittleArtistTrainingCampDao.java
  10. 2 3
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CloudTeacherSumDto.java
  11. 57 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TempLittleArtistTrainingCampDto.java
  12. 25 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupClassGroupMapper.java
  13. 16 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseScheduleStudentPayment.java
  14. 26 136
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TempLittleArtistTrainingCamp.java
  15. 15 5
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/ConvertLogQueryInfo.java
  16. 10 44
      mec-biz/src/main/java/com/ym/mec/biz/dal/vo/TempCampUserTrainingDetailVo.java
  17. 12 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/vo/TempCampUserTrainingSequenceVo.java
  18. 22 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/vo/TempUserTrainingTimeDetailVo.java
  19. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupService.java
  20. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/service/TempLittleArtistTrainingCampService.java
  21. 0 5
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java
  22. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  23. 100 23
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TempLittleArtistTrainingCampServiceImpl.java
  24. 3 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TempLittleArtistTrainingCampUserRelationServiceImpl.java
  25. 191 35
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  26. 10 0
      mec-biz/src/main/resources/config/mybatis/ClassGroupStudentMapperMapper.xml
  27. 4 4
      mec-biz/src/main/resources/config/mybatis/CourseConvertLogMapper.xml
  28. 2 2
      mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml
  29. 16 4
      mec-biz/src/main/resources/config/mybatis/StudentMapper.xml
  30. 4 0
      mec-biz/src/main/resources/config/mybatis/SysMusicCompareRecordMapper.xml
  31. 25 4
      mec-biz/src/main/resources/config/mybatis/TempLittleArtistTrainingCampMapper.xml
  32. 1 1
      mec-education/src/main/resources/bootstrap-prod.properties
  33. 1 1
      mec-eureka/src/main/resources/bootstrap-prod.properties
  34. 1 1
      mec-gateway/mec-gateway-web/src/main/resources/bootstrap-prod.properties
  35. 1 1
      mec-im/src/main/resources/bootstrap-prod.properties
  36. 1 1
      mec-mall/mall-admin/src/main/resources/bootstrap-prod.yml
  37. 1 1
      mec-mall/mall-portal/src/main/resources/bootstrap-prod.yml
  38. 1 1
      mec-monitor/src/main/resources/bootstrap-prod.properties
  39. 12 0
      mec-student/src/main/java/com/ym/mec/student/controller/TempLittleArtistTrainingCampController.java
  40. 1 1
      mec-student/src/main/resources/bootstrap-prod.properties
  41. 1 1
      mec-task/src/main/resources/bootstrap-prod.properties
  42. 1 1
      mec-teacher/src/main/resources/bootstrap-prod.properties
  43. 1 1
      mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupController.java
  44. 13 1
      mec-web/src/main/java/com/ym/mec/web/controller/TempLittleArtistTrainingCampController.java
  45. 1 1
      mec-web/src/main/resources/bootstrap-prod.properties
  46. 2 2
      mec-web/src/main/resources/exportColumnMapper.ini
  47. 3 3
      mec-web/src/main/resources/logback-spring.xml
  48. 1 1
      mec-websocket/src/main/resources/bootstrap-prod.properties
  49. 1 1
      mec-zipkin/src/main/resources/bootstrap-prod.properties

+ 3 - 3
audio-analysis/src/main/java/com/yonge/netty/dto/HardLevelEnum.java

@@ -9,20 +9,20 @@ public enum HardLevelEnum implements BaseEnum<String, HardLevelEnum> {
 	 * 完成度范围, 未演奏的范围
 	 */
 	//BEGINNER("入门级", 3, 5, 5, 5, 10, 10, 13, 15, 60, 10), 
-	BEGINNER("入门级", 3, 5, 10, 10, 15, 18, 22, 25, 70, 25), 
+	BEGINNER("入门级", 3, 5, 10, 10, 15, 15, 22, 22, 75, 25), 
 	/**
 	 * 进阶级, 振幅阈值, 频率阈值 <br>
 	 * 节奏有效范围(1分音符), 节奏有效范围(2分音符), 节奏有效范围(4分音符), 节奏有效范围(8分音符), 节奏有效范围(16分音符), 节奏有效范围(32分音符)<br>
 	 * 完成度范围, 未演奏的范围
 	 */
-	ADVANCED("进阶级", 3, 5, 8, 8, 12, 15, 20, 22, 80, 15),
+	ADVANCED("进阶级", 3, 5, 8, 8, 12, 12, 20, 20, 85, 15),
 	//ADVANCED("进阶级", 3, 5, 50, 50, 50, 50, 50, 5, 80, 10),
 	/**
 	 * 大师级, 振幅阈值, 频率阈值 <br>
 	 * 节奏有效范围(1分音符), 节奏有效范围(2分音符), 节奏有效范围(4分音符), 节奏有效范围(8分音符), 节奏有效范围(16分音符), 节奏有效范围(32分音符)<br>
 	 * 完成度范围, 未演奏的范围
 	 */
-	PERFORMER("大师级", 3, 3, 5, 5, 10, 12, 15, 18, 90, 10);
+	PERFORMER("大师级", 3, 3, 5, 5, 10, 10, 13, 15, 95, 10);
 
 	private String msg;
 

+ 1 - 1
audio-analysis/src/main/resources/bootstrap-prod.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.80.97:8848
+spring.cloud.nacos.config.server-addr=10.206.0.12:8848
 #\u9ed8\u8ba4\u4e3aPublic\u547d\u540d\u7a7a\u95f4,\u53ef\u4ee5\u7701\u7565\u4e0d\u5199
 spring.cloud.nacos.config.namespace=f40a7594-4bd0-4bc6-8397-9353c6d2e63a
 #\u6307\u5b9a\u914d\u7f6e\u7fa4\u7ec4 --\u5982\u679c\u662fPublic\u547d\u540d\u7a7a\u95f4 \u5219\u53ef\u4ee5\u7701\u7565\u7fa4\u7ec4\u914d\u7f6e

+ 1 - 1
cms/src/main/resources/bootstrap-prod.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.80.97:8848
+spring.cloud.nacos.config.server-addr=10.206.0.12:8848
 #\u9ed8\u8ba4\u4e3aPublic\u547d\u540d\u7a7a\u95f4,\u53ef\u4ee5\u7701\u7565\u4e0d\u5199
 spring.cloud.nacos.config.namespace=f40a7594-4bd0-4bc6-8397-9353c6d2e63a
 #\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-auth/mec-auth-server/src/main/resources/bootstrap-prod.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.80.97:8848
+spring.cloud.nacos.config.server-addr=10.206.0.12:8848
 #\u9ed8\u8ba4\u4e3aPublic\u547d\u540d\u7a7a\u95f4,\u53ef\u4ee5\u7701\u7565\u4e0d\u5199
 spring.cloud.nacos.config.namespace=f40a7594-4bd0-4bc6-8397-9353c6d2e63a
 #\u6307\u5b9a\u914d\u7f6e\u7fa4\u7ec4 --\u5982\u679c\u662fPublic\u547d\u540d\u7a7a\u95f4 \u5219\u53ef\u4ee5\u7701\u7565\u7fa4\u7ec4\u914d\u7f6e

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupStudentMapperDao.java

@@ -14,6 +14,7 @@ import com.ym.mec.biz.dal.dto.StudentAttendanceViewDto;
 import com.ym.mec.biz.dal.dto.StudentEduTeacherDto;
 import com.ym.mec.biz.dal.dto.StudentNameAndPhoneDto;
 import com.ym.mec.biz.dal.dto.TeacherClassStudentDto;
+import com.ym.mec.biz.dal.dto.VipGroupClassGroupMapper;
 import com.ym.mec.biz.dal.entity.ClassGroup;
 import com.ym.mec.biz.dal.entity.ClassGroupStudentMapper;
 import com.ym.mec.biz.dal.entity.StudentRegistration;
@@ -475,4 +476,6 @@ public interface ClassGroupStudentMapperDao extends BaseDAO<Long, ClassGroupStud
     List<ClassGroupStudentMapperDto> queryByClassGroupType(@Param("musicGroupId") String musicGroupId,@Param("classGroupType") ClassGroupTypeEnum classGroupType,@Param("teacherRole") TeachTypeEnum teacherRole, @Param("studentIdList") List<Integer> studentIdList);
 
     Integer countByUserIdsAndClassIds(@Param("studentIds") String studentIds, @Param("oldClassId") Integer oldClassId);
+    
+    List<VipGroupClassGroupMapper> queryWaitCancelVipGroup();
 }

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

@@ -281,7 +281,7 @@ public interface MusicGroupDao extends BaseDAO<String, MusicGroup> {
      * @date 2020/9/7
      * @time 14:31
      */
-    List<MusicCardDto> queryOrganMusicInfos(@Param("organId") Integer organId, @Param("tenantId") Integer tenantId);
+    List<MusicCardDto> queryOrganMusicInfos(@Param("organId") String organId, @Param("tenantId") Integer tenantId);
 
     /**
      * @param userId:

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentDao.java

@@ -6,6 +6,7 @@ import com.ym.mec.biz.dal.entity.IndexBaseMonthData;
 import com.ym.mec.biz.dal.entity.Student;
 import com.ym.mec.biz.dal.entity.Subject;
 import com.ym.mec.biz.dal.page.StudentCourseConsumerQueryInfo;
+import com.ym.mec.biz.dal.vo.TempCampUserTrainingSequenceVo;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.Date;
@@ -357,4 +358,8 @@ public interface StudentDao extends com.ym.mec.common.dal.BaseDAO<Integer, Stude
 
     //统计重复购买人数
     List<Map<Integer,Long>> getAgainBuyNum(@Param("organIds") List<Integer> organIds);
+
+    List<TempCampUserTrainingSequenceVo> getStudentCloudStudySequenceDays(@Param("studentIds") List<Integer> studentIds,
+                                                                          @Param("startTime") String startTime,
+                                                                          @Param("endTime") String endTime);
 }

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

@@ -123,4 +123,6 @@ public interface SysMusicCompareRecordDao extends BaseDAO<Long, SysMusicCompareR
     List<TeacherCloudTrainingDto> queryTeacherTrainingList(@Param("queryInfo") TeacherCloudTrainingQueryInfo queryInfo);
     
     int queryTeacherTrainingCount(@Param("queryInfo") TeacherCloudTrainingQueryInfo queryInfo);
+
+    Integer getUserTrainingTime(@Param("userId") Integer userId);
 }

+ 12 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TempLittleArtistTrainingCampDao.java

@@ -35,8 +35,6 @@ public interface TempLittleArtistTrainingCampDao extends BaseMapper<TempLittleAr
      */
     <T> IPage<T> queryUserTrainingDetail(Page<T> page, @Param("param") Map<String, Object> param);
 
-    <T> List<T> queryUserTrainingDetail(@Param("param") Map<String, Object> param);
-
     List<ImGroup> queryCampImGroup(String imGroupIds);
 
     Integer queryUserTrainingPlayTime(@Param("param") Map<String, Object> param);
@@ -46,5 +44,17 @@ public interface TempLittleArtistTrainingCampDao extends BaseMapper<TempLittleAr
     List<BaseVo> queryStartTrainInfo(@Param("date") String date);
 
     int updateUserNum(@Param("campId") Integer campId, @Param("maxNum") Integer maxNum);
+
+    /**
+    * @description: 获取学员可见训练营
+     * @param organId
+     * @param musicGroupIds
+    * @return java.util.List<com.ym.mec.biz.dal.entity.TempLittleArtistTrainingCamp>
+    * @author zx
+    * @date 2023/3/15 14:45
+    */
+    List<TempLittleArtistTrainingCamp> findTrainingByStudent(@Param("organId") Integer organId,
+                                                             @Param("musicGroupIds") String musicGroupIds,
+                                                             @Param("userId") Integer userId);
 }
 

+ 2 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CloudTeacherSumDto.java

@@ -36,10 +36,10 @@ public class CloudTeacherSumDto {
     @ApiModelProperty(value = "练习总人数")
     private BigDecimal trainStudentNum = BigDecimal.ZERO;
 
-    @ApiModelProperty(value = "练习时长>60分钟的人数")
+    @ApiModelProperty(value = "<10分钟")
     private BigDecimal train0 = BigDecimal.ZERO;
 
-    @ApiModelProperty(value = "<60分钟")
+    @ApiModelProperty(value = "10~60分钟")
     private Integer train1;
 
     @ApiModelProperty(value = "60~120分钟")
@@ -50,7 +50,6 @@ public class CloudTeacherSumDto {
 
     @ApiModelProperty(value = ">=240分钟")
     private Integer train4;
-
     public BigDecimal getTrainAvgTrainTime() {
         return trainAvgTrainTime;
     }

+ 57 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TempLittleArtistTrainingCampDto.java

@@ -43,9 +43,66 @@ public class TempLittleArtistTrainingCampDto implements Serializable {
     @ApiModelProperty(value = "训练结束日期")
     private Date trainEndDate;
 
+    @ApiModelProperty(value = "适用分部")
+    private String organIds = "";
+
+    @ApiModelProperty(value = "适用学校")
+    private String musicGroupIds = "";
+
+    @NotNull(message = "打卡标准不能为空")
+    @ApiModelProperty(value = "打卡标准")
+    private Integer signStandard;
+
+    @NotNull(message = "达标天数不能为空")
+    @ApiModelProperty(value = "达标天数")
+    private Integer standardDays;
+
+    @ApiModelProperty(value = "是否启用")
+    private Boolean enableFlag;
+
     @ApiModelProperty(value = "图片")
     private String picUrl;
 
+    public Boolean getEnableFlag() {
+        return enableFlag;
+    }
+
+    public void setEnableFlag(Boolean enableFlag) {
+        this.enableFlag = enableFlag;
+    }
+
+    public String getOrganIds() {
+        return organIds;
+    }
+
+    public void setOrganIds(String organIds) {
+        this.organIds = organIds;
+    }
+
+    public String getMusicGroupIds() {
+        return musicGroupIds;
+    }
+
+    public void setMusicGroupIds(String musicGroupIds) {
+        this.musicGroupIds = musicGroupIds;
+    }
+
+    public Integer getSignStandard() {
+        return signStandard;
+    }
+
+    public void setSignStandard(Integer signStandard) {
+        this.signStandard = signStandard;
+    }
+
+    public Integer getStandardDays() {
+        return standardDays;
+    }
+
+    public void setStandardDays(Integer standardDays) {
+        this.standardDays = standardDays;
+    }
+
     public Integer getId() {
         return id;
     }

+ 25 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupClassGroupMapper.java

@@ -0,0 +1,25 @@
+package com.ym.mec.biz.dal.dto;
+
+public class VipGroupClassGroupMapper {
+
+	private Long id;
+	
+	private Integer classGroupId;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public Integer getClassGroupId() {
+		return classGroupId;
+	}
+
+	public void setClassGroupId(Integer classGroupId) {
+		this.classGroupId = classGroupId;
+	}
+	
+}

+ 16 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseScheduleStudentPayment.java

@@ -68,6 +68,22 @@ public class CourseScheduleStudentPayment extends BaseEntity implements Comparab
 	@ApiModelProperty(value = "关联的云教练缴费项目编号",required = false)
 	private Long calenderId;
 
+	public BigDecimal getExpectPriceBak() {
+		return expectPriceBak;
+	}
+
+	public void setExpectPriceBak(BigDecimal expectPriceBak) {
+		this.expectPriceBak = expectPriceBak;
+	}
+
+	public BigDecimal getActualPriceBak() {
+		return actualPriceBak;
+	}
+
+	public void setActualPriceBak(BigDecimal actualPriceBak) {
+		this.actualPriceBak = actualPriceBak;
+	}
+
 	public Long getCalenderId() {
 		return calenderId;
 	}

+ 26 - 136
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TempLittleArtistTrainingCamp.java

@@ -1,15 +1,15 @@
 package com.ym.mec.biz.dal.entity;
 
 
-import java.util.Date;
-
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
 
 import java.io.Serializable;
+import java.util.Date;
 
 /**
  * 小小艺术家训练营活动(TempLittleArtistTrainingCamp)表实体类
@@ -18,6 +18,7 @@ import java.io.Serializable;
  * @since 2022-05-17 20:56:22
  */
 @ApiModel(value = "temp_little_artist_training_camp-小小艺术家训练营活动")
+@Data
 public class TempLittleArtistTrainingCamp implements Serializable {
     //未开始-未到报名时间
     public static final String NOT_START = "NOT_START";
@@ -90,141 +91,30 @@ public class TempLittleArtistTrainingCamp implements Serializable {
     @ApiModelProperty(value = "修改时间")
     private Date updateTime;
 
+    @TableField("organ_ids_")
+    @ApiModelProperty(value = "适用分部")
+    private String organIds;
+
+    @TableField("music_group_ids_")
+    @ApiModelProperty(value = "适用学校")
+    private String musicGroupIds;
+
+    @TableField("sign_standard_")
+    @ApiModelProperty(value = "打卡标准")
+    private Integer signStandard;
+
+    @TableField("standard_days_")
+    @ApiModelProperty(value = "达标天数")
+    private Integer standardDays;
+
+    @TableField("enable_flag_")
+    @ApiModelProperty(value = "是否启用")
+    private Boolean enableFlag;
+
     @TableField(exist = false)
     private Integer userCount;
 
-    public Integer getId() {
-        return id;
-    }
-
-    public void setId(Integer id) {
-        this.id = id;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public Integer getNum() {
-        return num;
-    }
-
-    public void setNum(Integer num) {
-        this.num = num;
-    }
-
-    public Date getApplyStartDate() {
-        return applyStartDate;
-    }
-
-    public void setApplyStartDate(Date applyStartDate) {
-        this.applyStartDate = applyStartDate;
-    }
-
-    public Date getApplyEndDate() {
-        return applyEndDate;
-    }
-
-    public void setApplyEndDate(Date applyEndDate) {
-        this.applyEndDate = applyEndDate;
-    }
-
-    public Date getTrainStartDate() {
-        return trainStartDate;
-    }
-
-    public void setTrainStartDate(Date trainStartDate) {
-        this.trainStartDate = trainStartDate;
-    }
-
-    public Date getTrainEndDate() {
-        return trainEndDate;
-    }
-
-    public void setTrainEndDate(Date trainEndDate) {
-        this.trainEndDate = trainEndDate;
-    }
-
-    /**
-     * 未开始 NOT_START,报名中 APPLY,筹备中 READY,进行中 ING,已结束 END
-     */
-    public String getState() {
-        return state;
-    }
-
-    /**
-     * 未开始 NOT_START,报名中 APPLY,筹备中 READY,进行中 ING,已结束 END
-     */
-    public void setState(String state) {
-        this.state = state;
-    }
-
-    public String getImGroupIds() {
-        return imGroupIds;
-    }
-
-    public void setImGroupIds(String imGroupIds) {
-        this.imGroupIds = imGroupIds;
-    }
-
-    public String getPicUrl() {
-        return picUrl;
-    }
-
-    public void setPicUrl(String picUrl) {
-        this.picUrl = picUrl;
-    }
-
-    public Integer getDelFlag() {
-        return delFlag;
-    }
-
-    public void setDelFlag(Integer delFlag) {
-        this.delFlag = delFlag;
-    }
-
-    public Integer getCreateBy() {
-        return createBy;
-    }
-
-    public void setCreateBy(Integer createBy) {
-        this.createBy = createBy;
-    }
-
-    public Date getCreateTime() {
-        return createTime;
-    }
-
-    public void setCreateTime(Date createTime) {
-        this.createTime = createTime;
-    }
-
-    public Integer getUpdateBy() {
-        return updateBy;
-    }
-
-    public void setUpdateBy(Integer updateBy) {
-        this.updateBy = updateBy;
-    }
-
-    public Date getUpdateTime() {
-        return updateTime;
-    }
-
-    public void setUpdateTime(Date updateTime) {
-        this.updateTime = updateTime;
-    }
-
-    public Integer getUserCount() {
-        return userCount;
-    }
-
-    public void setUserCount(Integer userCount) {
-        this.userCount = userCount;
-    }
+    @TableField(exist = false)
+    private String status;
 }
 

+ 15 - 5
mec-biz/src/main/java/com/ym/mec/biz/dal/page/ConvertLogQueryInfo.java

@@ -6,7 +6,9 @@ public class ConvertLogQueryInfo extends QueryInfo {
 
     private String operator;
 
-    private String operatorDate;
+    private String operatorStartDate;
+
+    private String operatorEndDate;
 
     private String musicGroupId;
 
@@ -18,12 +20,20 @@ public class ConvertLogQueryInfo extends QueryInfo {
         this.operator = operator;
     }
 
-    public String getOperatorDate() {
-        return operatorDate;
+    public String getOperatorStartDate() {
+        return operatorStartDate;
+    }
+
+    public void setOperatorStartDate(String operatorStartDate) {
+        this.operatorStartDate = operatorStartDate;
+    }
+
+    public String getOperatorEndDate() {
+        return operatorEndDate;
     }
 
-    public void setOperatorDate(String operatorDate) {
-        this.operatorDate = operatorDate;
+    public void setOperatorEndDate(String operatorEndDate) {
+        this.operatorEndDate = operatorEndDate;
     }
 
     public String getMusicGroupId() {

+ 10 - 44
mec-biz/src/main/java/com/ym/mec/biz/dal/vo/TempCampUserTrainingDetailVo.java

@@ -2,6 +2,7 @@ package com.ym.mec.biz.dal.vo;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
@@ -9,6 +10,7 @@ import java.math.RoundingMode;
 import java.util.Objects;
 
 @ApiModel(value = "训练营详情")
+@Data
 public class TempCampUserTrainingDetailVo implements Serializable {
     @ApiModelProperty(value = "用户id")
     private Integer id;
@@ -22,50 +24,14 @@ public class TempCampUserTrainingDetailVo implements Serializable {
     private Integer playDay;
     @ApiModelProperty(value = "训练时间")
     private Integer playTime;
-
-    public Integer getId() {
-        return id;
-    }
-
-    public void setId(Integer id) {
-        this.id = id;
-    }
-
-    public String getUsername() {
-        return username;
-    }
-
-    public void setUsername(String username) {
-        this.username = username;
-    }
-
-    public String getPhone() {
-        return phone;
-    }
-
-    public void setPhone(String phone) {
-        this.phone = phone;
-    }
-
-    public String getImGroupName() {
-        return imGroupName;
-    }
-
-    public void setImGroupName(String imGroupName) {
-        this.imGroupName = imGroupName;
-    }
-
-    public Integer getPlayDay() {
-        return playDay;
-    }
-
-    public void setPlayDay(Integer playDay) {
-        this.playDay = playDay;
-    }
-
-    public Integer getPlayTime() {
-        return playTime;
-    }
+    @ApiModelProperty(value = "是否达标")
+    private Boolean standardFlag;
+    @ApiModelProperty(value = "声部")
+    private String subjectName;
+    @ApiModelProperty(value = "乐团")
+    private String musicGroupName;
+    @ApiModelProperty(value = "连续打卡天数")
+    private Long cloudStudySequenceDays = 0l;
 
     /**
      * 传入秒钟换算成分钟

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/vo/TempCampUserTrainingSequenceVo.java

@@ -0,0 +1,12 @@
+package com.ym.mec.biz.dal.vo;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+@ApiModel(value = "学员指定时间连续打卡天数")
+@Data
+public class TempCampUserTrainingSequenceVo{
+    private Integer userId;
+
+    private Long dayNum;
+}

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/vo/TempUserTrainingTimeDetailVo.java

@@ -24,6 +24,28 @@ public class TempUserTrainingTimeDetailVo implements Serializable {
     @ApiModelProperty(value = "是否完成训练  0-未完成 1-已完成")
     private Integer isFinish;
 
+    @ApiModelProperty(value = "打卡标准")
+    private Integer signStandard;
+
+    @ApiModelProperty(value = "达标天数")
+    private Integer standardDays;
+
+    public Integer getSignStandard() {
+        return signStandard;
+    }
+
+    public void setSignStandard(Integer signStandard) {
+        this.signStandard = signStandard;
+    }
+
+    public Integer getStandardDays() {
+        return standardDays;
+    }
+
+    public void setStandardDays(Integer standardDays) {
+        this.standardDays = standardDays;
+    }
+
     public Integer getUserId() {
         return userId;
     }

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

@@ -387,7 +387,7 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
      * @date 2020/9/7
      * @time 14:28
      */
-    List<MusicCardDto> queryOrganMusicInfos(Integer organId);
+    List<MusicCardDto> queryOrganMusicInfos(String organId);
 
 
     /**

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/TempLittleArtistTrainingCampService.java

@@ -125,6 +125,8 @@ public interface TempLittleArtistTrainingCampService extends IService<TempLittle
      * 导出小小训练营想详情
      */
     void exportUserTrainingDetail(Map<String, Object> param, HttpServletResponse response) throws IOException;
+
+    Integer getUserTrainingTime(Integer userId);
 }
 
 

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

@@ -444,11 +444,6 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
             }, executor);
             executor.shutdown();
         }
-        //如果缴费项目不需要审核,处理经营报表相关改动
-        if(musicGroupPaymentCalender.getStatus() != AUDITING){
-            studentMusicCourseFeeService.addExpcetPrice(musicGroupPaymentCalender);
-        }
-
         ModelMap map = new ModelMap(1);
         map.put("musicGroupPaymentCalenderBatchNo", batchNo);
         return BaseController.succeed(map);

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

@@ -1687,7 +1687,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     }
 
     @Override
-    public List<MusicCardDto> queryOrganMusicInfos(Integer organId) {
+    public List<MusicCardDto> queryOrganMusicInfos(String organId) {
         return musicGroupDao.queryOrganMusicInfos(organId, TenantContextHolder.getTenantId());
     }
 

+ 100 - 23
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TempLittleArtistTrainingCampServiceImpl.java

@@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.google.common.collect.Lists;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dao.TempLittleArtistTrainingCampDao;
+import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.ImGroupDto;
 import com.ym.mec.biz.dal.dto.TempLittleArtistTrainingCampDto;
 import com.ym.mec.biz.dal.entity.*;
@@ -20,6 +20,7 @@ import com.ym.mec.common.page.PageUtil;
 import com.ym.mec.common.page.WrapperUtil;
 import com.ym.mec.common.tenant.TenantContextHolder;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
+import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.excel.POIUtil;
 import org.apache.commons.collections.CollectionUtils;
@@ -64,6 +65,14 @@ public class TempLittleArtistTrainingCampServiceImpl extends ServiceImpl<TempLit
     private SysConfigService sysConfigService;
     @Autowired
     private SysMessageService sysMessageService;
+    @Autowired
+    private StudentDao studentDao;
+    @Autowired
+    private StudentRegistrationDao studentRegistrationDao;
+    @Autowired
+    private MusicGroupDao musicGroupDao;
+    @Autowired
+    private SysMusicCompareRecordDao sysMusicCompareRecordDao;
 
     @Override
     public TempLittleArtistTrainingCampDao getDao() {
@@ -103,17 +112,22 @@ public class TempLittleArtistTrainingCampServiceImpl extends ServiceImpl<TempLit
         TempLittleArtistTrainingCamp entity = Optional.ofNullable(dto.getId())
                 .map(this::getById)
                 .orElseThrow(() -> new BizException("训练营不存在"));
-        int count = tempLittleArtistTrainingCampUserRelationService.count(Wrappers.<TempLittleArtistTrainingCampUserRelation>lambdaQuery()
+        /*int count = tempLittleArtistTrainingCampUserRelationService.count(Wrappers.<TempLittleArtistTrainingCampUserRelation>lambdaQuery()
                 .eq(TempLittleArtistTrainingCampUserRelation::getActivityId, entity.getId()));
         if (count > 0) {
             throw new BizException("训练营已有学生报名,无法修改");
-        }
+        }*/
         entity.setName(dto.getName());
         entity.setApplyStartDate(dto.getApplyStartDate());
         entity.setApplyEndDate(dto.getApplyEndDate());
         entity.setTrainStartDate(dto.getTrainStartDate());
         entity.setTrainEndDate(dto.getTrainEndDate());
         entity.setPicUrl(dto.getPicUrl());
+        entity.setEnableFlag(dto.getEnableFlag());
+        entity.setMusicGroupIds(dto.getMusicGroupIds());
+        entity.setOrganIds(dto.getOrganIds());
+        entity.setSignStandard(dto.getSignStandard());
+        entity.setStandardDays(dto.getStandardDays());
         entity.setUpdateBy(user.getId());
         entity.setUpdateTime(new Date());
         this.updateById(entity);
@@ -181,6 +195,7 @@ public class TempLittleArtistTrainingCampServiceImpl extends ServiceImpl<TempLit
                 .le(Objects.nonNull(param.get("applyEndDate")), TempLittleArtistTrainingCamp::getApplyEndDate, param.get("applyEndDate"))
                 .ge(Objects.nonNull(param.get("trainStartDate")), TempLittleArtistTrainingCamp::getTrainStartDate, param.get("trainStartDate"))
                 .le(Objects.nonNull(param.get("trainEndDate")), TempLittleArtistTrainingCamp::getTrainEndDate, param.get("trainEndDate"))
+                .le(Objects.nonNull(param.get("enableFlag")), TempLittleArtistTrainingCamp::getEnableFlag, param.get("enableFlag"))
                 .orderByDesc(TempLittleArtistTrainingCamp::getId));
         return PageUtil.pageInfo(pageList);
     }
@@ -210,15 +225,10 @@ public class TempLittleArtistTrainingCampServiceImpl extends ServiceImpl<TempLit
     @Override
     public List<TempUserTrainingTimeDetailVo> queryUserTrainingTime(Map<String, Object> param) {
         Integer userId = WrapperUtil.toInt(param, "userId", "学员id不能为空");
-        //查询训练营的训练时间段
-        TempLittleArtistTrainingCampUserRelation campUser = tempLittleArtistTrainingCampUserRelationService.getOne(Wrappers.<TempLittleArtistTrainingCampUserRelation>lambdaQuery()
-                .eq(TempLittleArtistTrainingCampUserRelation::getUserId, userId));
-        TempLittleArtistTrainingCamp camp = this.getOne(Wrappers.<TempLittleArtistTrainingCamp>lambdaQuery()
-                .eq(TempLittleArtistTrainingCamp::getId, campUser.getActivityId())
-                .eq(TempLittleArtistTrainingCamp::getDelFlag, 0));
+        //获取训练营
+        TempLittleArtistTrainingCamp camp = this.lambdaQuery().eq(TempLittleArtistTrainingCamp::getId, param.get("campId")).one();
         String startDateStr = DateUtil.dateToString(camp.getTrainStartDate());
         String endDateStr = DateUtil.dateToString(camp.getTrainEndDate());
-
         //生成训练时间集合
         List<TempUserTrainingTimeDetailVo> resultList = new ArrayList<>();
         LocalDate generateDate = LocalDate.parse(startDateStr);
@@ -232,6 +242,8 @@ public class TempLittleArtistTrainingCampServiceImpl extends ServiceImpl<TempLit
             tempUserTrainingTimeDetailVo.setTrainingDate(DateUtil.toDate(generateDate.toString()));
             tempUserTrainingTimeDetailVo.setPlayTime(BigDecimal.ZERO);
             tempUserTrainingTimeDetailVo.setIsFinish(0);
+            tempUserTrainingTimeDetailVo.setSignStandard(camp.getSignStandard());
+            tempUserTrainingTimeDetailVo.setStandardDays(camp.getStandardDays());
             resultList.add(tempUserTrainingTimeDetailVo);
             generateDate = generateDate.plusDays(1);
         }
@@ -249,7 +261,7 @@ public class TempLittleArtistTrainingCampServiceImpl extends ServiceImpl<TempLit
                 if (Objects.nonNull(t)) {
                     vo.setPlayTime(t);
                     //大于1200秒
-                    if (t.intValue() > 600) {
+                    if (t.intValue() > camp.getSignStandard() * 60) {
                         vo.setIsFinish(1);
                     }
                 }
@@ -273,7 +285,63 @@ public class TempLittleArtistTrainingCampServiceImpl extends ServiceImpl<TempLit
         queryUserTrainingDetailOpsParam(param);
         Page<TempCampUserTrainingDetailVo> page = PageUtil.getPageInfo(param);
         page.setDesc("b.playDay");
-        return PageUtil.pageInfo(baseMapper.queryUserTrainingDetail(page, param));
+        IPage<TempCampUserTrainingDetailVo> vos = baseMapper.queryUserTrainingDetail(page, param);
+        List<TempCampUserTrainingDetailVo> records = vos.getRecords();
+        if(CollectionUtils.isNotEmpty(records)){
+            List<Integer> studentIds = records.stream().map(e -> e.getId()).collect(Collectors.toList());
+            Map<Integer,String> subjectMap = MapUtil.convertIntegerMap(studentDao.getStudentSubjectMapList(studentIds));
+            Map<Integer,String> groupNameMap = MapUtil.convertMybatisMap(musicGroupDao.queryNormalGroupName(studentIds));
+            List<TempCampUserTrainingSequenceVo> sequenceDays = studentDao.getStudentCloudStudySequenceDays(studentIds,
+                    param.get("startTime").toString(),param.get("endTime").toString());
+            Map<Integer, List<Long>> listMap = sequenceDays.stream().collect(Collectors.groupingBy(e -> e.getUserId(),
+                    Collectors.collectingAndThen(Collectors.toList(),v->v.stream().map(e->e.getDayNum()).collect(Collectors.toList()))));
+            Integer standardDays = Integer.parseInt(param.get("standardDays").toString());
+            for (TempCampUserTrainingDetailVo record : records) {
+                record.setSubjectName(subjectMap.get(record.getId()));
+                record.setMusicGroupName(groupNameMap.get(record.getId()));
+                record.setStandardFlag(record.getPlayDay() >= standardDays);
+                List<Long> sequenceVos = listMap.get(record.getId());
+                if(CollectionUtils.isNotEmpty(sequenceVos)){
+                    record.setCloudStudySequenceDays(getLongDay(sequenceVos));
+                }
+            }
+        }
+        return PageUtil.pageInfo(vos);
+    }
+
+    private static long getLongDay(List<Long> list) {
+        List<Long> list2 = new ArrayList<>();// 存放中断元素的位置
+        List<Long> list3 = new ArrayList<>();
+        //先获取连续中断的位置,放在list2中
+        for (Integer i = 0; i < list.size(); i++ ) {
+            if (i == list.size() - 1) {
+                break;
+            } else if (list.get(i + 1) - list.get(i) != 1) {
+                list2.add(i.longValue());
+            }
+        }
+        //通过判断获取连续的个数,在list3中取最大值即可。
+        if (0 == list2.size()) {
+            // 没有中断 返回原集合长度
+            return list.size();
+        } else {
+            for (int i = 0; i < list2.size(); i++ ) {
+                if (1 == list2.size()) {
+                    list3.add(list2.get(0) + 1);// 中断前的天数
+                    list3.add(list.size() - 1 - list2.get(i));// 剩余的天数
+                } else {
+                    if (i == 0) {
+                        list3.add(list2.get(0) + 1);
+                        list3.add(list2.get(i + 1) - list2.get(i));
+                    } else if (i == list2.size() - 1) {
+                        list3.add(list.size() - 1 - list2.get(i));
+                    } else {
+                        list3.add(list2.get(i + 1) - list2.get(i));
+                    }
+                }
+            }
+            return Collections.max(list3);
+        }
     }
 
     /**
@@ -284,8 +352,10 @@ public class TempLittleArtistTrainingCampServiceImpl extends ServiceImpl<TempLit
         TempLittleArtistTrainingCamp camp = this.getOne(Wrappers.<TempLittleArtistTrainingCamp>lambdaQuery()
                 .eq(TempLittleArtistTrainingCamp::getId, campId)
                 .eq(TempLittleArtistTrainingCamp::getDelFlag, 0));
-        param.put("startTime", camp.getTrainStartDate());
-        param.put("endTime", camp.getTrainEndDate());
+        param.put("startTime", DateUtil.format(camp.getTrainStartDate(),DateUtil.DEFAULT_PATTERN));
+        param.put("endTime", DateUtil.format(camp.getTrainEndDate(),DateUtil.DEFAULT_PATTERN));
+        param.put("signStandard", camp.getSignStandard() * 60);
+        param.put("standardDays", camp.getStandardDays());
         param.put("state", TempLittleArtistTrainingCampUserRelation.APPLY);
     }
 
@@ -309,10 +379,12 @@ public class TempLittleArtistTrainingCampServiceImpl extends ServiceImpl<TempLit
     @Override
     public Map<String, Object> queryCampCycle() {
         SysUser user = getUser();
-        //查询未删除的训练营
-        List<TempLittleArtistTrainingCamp> campList = this.list(Wrappers.<TempLittleArtistTrainingCamp>lambdaQuery()
-                .eq(TempLittleArtistTrainingCamp::getDelFlag, 0)
-                .orderByDesc(TempLittleArtistTrainingCamp::getId));
+        //获取学员可见训练营
+        //获取学员分部、乐团列表
+        Integer organId = user.getOrganId();
+        musicGroupDao.queryUserMusicGroups(user.getId());
+        List<String> musicGroupIds = studentRegistrationDao.queryStudentMusicGroup(user.getId());
+        List<TempLittleArtistTrainingCamp> campList = this.baseMapper.findTrainingByStudent(organId,StringUtils.join(musicGroupIds,","),user.getId());
         //查询该学员是否购买过该训练营
         TempLittleArtistTrainingCampUserRelation userRelation = tempLittleArtistTrainingCampUserRelationService.getOne(Wrappers.<TempLittleArtistTrainingCampUserRelation>lambdaQuery()
                 .eq(TempLittleArtistTrainingCampUserRelation::getUserId, user.getId()));
@@ -541,22 +613,22 @@ public class TempLittleArtistTrainingCampServiceImpl extends ServiceImpl<TempLit
         vo.setPlayTime(playTime);
         vo.setTrainStartDate(camp.getTrainStartDate());
         vo.setTrainEndDate(camp.getTrainEndDate());
-        vo.setIsFinish(playTime >= 600 ? 0 : 1);
+        vo.setIsFinish(playTime >= camp.getSignStandard() * 60 ? 0 : 1);
         return vo;
     }
 
     /**
-     * 导出小小训练营详情
+     * 导出小小训练营详情
      */
     public void exportUserTrainingDetail(Map<String, Object> param, HttpServletResponse response) throws IOException {
         //训练营详情-查询条件时间设置
         queryUserTrainingDetailOpsParam(param);
-        List<TempCampUserTrainingDetailVo> list = baseMapper.queryUserTrainingDetail(param);
+        List<TempCampUserTrainingDetailVo> list = this.queryUserTrainingDetail(param).getRows();
         OutputStream outputStream = response.getOutputStream();
         HSSFWorkbook workbook = null;
         try {
-            String[] header = {"学员编号", "学员姓名", "手机号", "群组", "打卡天数", "训练时长(分钟)"};
-            String[] body = {"id", "username", "phone", "imGroupName", "playDay", "playTime"};
+            String[] header = {"学员编号", "学员姓名",  "学员声部",  "乐团", "手机号", "群组", "打卡天数", "训练时长(分钟)", "打卡状态"};
+            String[] body = {"id", "username",  "subjectName",  "musicGroupName", "phone", "imGroupName", "playDay", "playTime", "standardFlag?'达标':'未达标'"};
             workbook = POIUtil.exportExcel(header, body, list);
             response.setContentType("application/octet-stream");
             response.setHeader("Content-Disposition", "attachment;filename=replacement-" + DateUtil.getDate(new Date()) + ".xls");
@@ -579,6 +651,11 @@ public class TempLittleArtistTrainingCampServiceImpl extends ServiceImpl<TempLit
         }
     }
 
+    @Override
+    public Integer getUserTrainingTime(Integer userId) {
+        return sysMusicCompareRecordDao.getUserTrainingTime(userId);
+    }
+
     private SysUser getUser() {
         return Optional.ofNullable(sysUserFeignService.queryUserInfo())
                 .orElseThrow(() -> new BizException("用户信息获取失败,请刷新页面或者重新登录!"));

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

@@ -66,9 +66,9 @@ public class TempLittleArtistTrainingCampUserRelationServiceImpl extends Service
         }
         TempLittleArtistTrainingCampUserRelation one = this.getOne(Wrappers.<TempLittleArtistTrainingCampUserRelation>lambdaQuery()
                 .eq(TempLittleArtistTrainingCampUserRelation::getUserId, user.getId())
-                .isNotNull(TempLittleArtistTrainingCampUserRelation::getActivityId));
-        if (Objects.nonNull(one) && one.getActivityId() != null) {
-            throw new BizException("您已登记训练营!");
+                .eq(TempLittleArtistTrainingCampUserRelation::getActivityId,campId));
+        if (Objects.nonNull(one)) {
+            throw new BizException("您已登记训练营!");
         }
         int count = this.count(Wrappers.<TempLittleArtistTrainingCampUserRelation>lambdaUpdate()
                 .eq(TempLittleArtistTrainingCampUserRelation::getActivityId, campId));

+ 191 - 35
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -1,17 +1,179 @@
 package com.ym.mec.biz.service.impl;
 
+import static com.ym.mec.biz.dal.enums.GroupType.VIP;
+import static com.ym.mec.biz.dal.enums.SysUserRoleEnum.ORGAN_MANAGER;
+import static java.math.BigDecimal.ROUND_DOWN;
+import static java.math.BigDecimal.ZERO;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+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.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.http.HttpStatus;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Isolation;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
+import org.springframework.util.CollectionUtils;
+
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 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.dao.ClassGroupDao;
+import com.ym.mec.biz.dal.dao.ClassGroupStudentMapperDao;
+import com.ym.mec.biz.dal.dao.ClassGroupTeacherMapperDao;
+import com.ym.mec.biz.dal.dao.ClassGroupTeacherSalaryDao;
+import com.ym.mec.biz.dal.dao.CourseScheduleDao;
+import com.ym.mec.biz.dal.dao.CourseScheduleStudentPaymentDao;
+import com.ym.mec.biz.dal.dao.CourseScheduleTeacherSalaryDao;
+import com.ym.mec.biz.dal.dao.EmployeeDao;
+import com.ym.mec.biz.dal.dao.GroupDao;
+import com.ym.mec.biz.dal.dao.OrganizationDao;
+import com.ym.mec.biz.dal.dao.StudentApplyRefundsDao;
+import com.ym.mec.biz.dal.dao.StudentAttendanceDao;
+import com.ym.mec.biz.dal.dao.StudentDao;
+import com.ym.mec.biz.dal.dao.StudentPauseInfoDao;
+import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
+import com.ym.mec.biz.dal.dao.SubjectDao;
+import com.ym.mec.biz.dal.dao.SysConfigDao;
+import com.ym.mec.biz.dal.dao.SysUserCashAccountDetailDao;
+import com.ym.mec.biz.dal.dao.SysUserCashAccountLogDao;
+import com.ym.mec.biz.dal.dao.TeacherAttendanceDao;
+import com.ym.mec.biz.dal.dao.TeacherDao;
+import com.ym.mec.biz.dal.dao.TeacherDefaultVipGroupSalaryDao;
+import com.ym.mec.biz.dal.dao.VipGroupActivityDao;
+import com.ym.mec.biz.dal.dao.VipGroupDao;
+import com.ym.mec.biz.dal.dao.VipGroupDefaultClassesCycleDao;
+import com.ym.mec.biz.dal.dao.VipGroupDefaultClassesUnitPriceDao;
+import com.ym.mec.biz.dal.dao.VipGroupStudentCoursePriceDao;
+import com.ym.mec.biz.dal.dto.ActivityUserDto;
+import com.ym.mec.biz.dal.dto.BaseMapDto;
+import com.ym.mec.biz.dal.dto.GroupUserDto;
+import com.ym.mec.biz.dal.dto.ReturnFeeDto;
+import com.ym.mec.biz.dal.dto.SimpleUserDto;
+import com.ym.mec.biz.dal.dto.StudentCourseInfoDto;
+import com.ym.mec.biz.dal.dto.StudentRecoverInfoDto;
+import com.ym.mec.biz.dal.dto.StudentVipGroupDetailDto;
+import com.ym.mec.biz.dal.dto.StudentVipGroupShowListDto;
+import com.ym.mec.biz.dal.dto.TeacherBasicDto;
+import com.ym.mec.biz.dal.dto.TeachingRecordBaseInfo;
+import com.ym.mec.biz.dal.dto.VipBuyResultDto;
+import com.ym.mec.biz.dal.dto.VipGroupApplyBaseInfoDto;
+import com.ym.mec.biz.dal.dto.VipGroupApplyDto;
+import com.ym.mec.biz.dal.dto.VipGroupBuyParamsDto;
+import com.ym.mec.biz.dal.dto.VipGroupClassGroupMapper;
+import com.ym.mec.biz.dal.dto.VipGroupCourseSchduleRecordDto;
+import com.ym.mec.biz.dal.dto.VipGroupManageDetailDto;
+import com.ym.mec.biz.dal.dto.VipGroupPayInfoDto;
+import com.ym.mec.biz.dal.dto.VipGroupSalaryBaseInfo;
+import com.ym.mec.biz.dal.dto.VipGroupSalaryDto;
+import com.ym.mec.biz.dal.dto.VipGroupSalarySettlementDto;
+import com.ym.mec.biz.dal.dto.VipGroupSalarySettlementTypeDto;
+import com.ym.mec.biz.dal.dto.VipGroupStudentDto;
+import com.ym.mec.biz.dal.entity.ActivityUserMapper;
+import com.ym.mec.biz.dal.entity.ClassGroup;
+import com.ym.mec.biz.dal.entity.ClassGroupStudentMapper;
+import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
+import com.ym.mec.biz.dal.entity.ClassGroupTeacherSalary;
+import com.ym.mec.biz.dal.entity.CourseSchedule;
+import com.ym.mec.biz.dal.entity.CourseScheduleStudentPayment;
+import com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary;
+import com.ym.mec.biz.dal.entity.Employee;
+import com.ym.mec.biz.dal.entity.ImGroup;
+import com.ym.mec.biz.dal.entity.Organization;
+import com.ym.mec.biz.dal.entity.PracticeGroup;
+import com.ym.mec.biz.dal.entity.School;
+import com.ym.mec.biz.dal.entity.Student;
+import com.ym.mec.biz.dal.entity.StudentApplyRefunds;
 import com.ym.mec.biz.dal.entity.StudentApplyRefunds.StudentApplyRefundsStatus;
-import com.ym.mec.biz.dal.enums.*;
-import com.ym.mec.biz.dal.page.*;
+import com.ym.mec.biz.dal.entity.StudentPauseInfo;
+import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
+import com.ym.mec.biz.dal.entity.StudentRecoverDto;
+import com.ym.mec.biz.dal.entity.SysConfig;
+import com.ym.mec.biz.dal.entity.SysUserCashAccount;
+import com.ym.mec.biz.dal.entity.SysUserCashAccountDetail;
+import com.ym.mec.biz.dal.entity.SysUserCashAccountLog;
+import com.ym.mec.biz.dal.entity.Teacher;
+import com.ym.mec.biz.dal.entity.TeacherAttendance;
+import com.ym.mec.biz.dal.entity.TeacherDefaultVipGroupSalary;
+import com.ym.mec.biz.dal.entity.VipGroup;
+import com.ym.mec.biz.dal.entity.VipGroupActivity;
+import com.ym.mec.biz.dal.entity.VipGroupCategory;
+import com.ym.mec.biz.dal.entity.VipGroupDefaultClassesCycle;
+import com.ym.mec.biz.dal.entity.VipGroupDefaultClassesUnitPrice;
+import com.ym.mec.biz.dal.entity.VipGroupStudentCoursePrice;
+import com.ym.mec.biz.dal.enums.ActivityCourseType;
+import com.ym.mec.biz.dal.enums.AuditStatusEnum;
+import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
+import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
+import com.ym.mec.biz.dal.enums.CouponDetailTypeEnum;
+import com.ym.mec.biz.dal.enums.CourseStatusEnum;
+import com.ym.mec.biz.dal.enums.DealStatusEnum;
+import com.ym.mec.biz.dal.enums.GroupType;
+import com.ym.mec.biz.dal.enums.MessageTypeEnum;
+import com.ym.mec.biz.dal.enums.OrderTypeEnum;
+import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
+import com.ym.mec.biz.dal.enums.ReturnFeeEnum;
+import com.ym.mec.biz.dal.enums.SalarySettlementTypeEnum;
+import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
+import com.ym.mec.biz.dal.enums.SysUserRoleEnum;
+import com.ym.mec.biz.dal.enums.TeachModeEnum;
+import com.ym.mec.biz.dal.enums.TeachTypeEnum;
+import com.ym.mec.biz.dal.enums.VipGroupStatusEnum;
+import com.ym.mec.biz.dal.enums.YesOrNoEnum;
+import com.ym.mec.biz.dal.page.ActivityUserQueryInfo;
+import com.ym.mec.biz.dal.page.StudentVipGroupQueryInfo;
+import com.ym.mec.biz.dal.page.VipGroupAttendanceQueryInfo;
+import com.ym.mec.biz.dal.page.VipGroupQueryInfo;
+import com.ym.mec.biz.dal.page.VipGroupSalaryQueryInfo;
+import com.ym.mec.biz.dal.page.VipGroupTeachingRecordQueryInfo;
 import com.ym.mec.biz.event.source.SendSeoMessageSource;
-import com.ym.mec.biz.service.*;
+import com.ym.mec.biz.service.ActivityUserMapperService;
+import com.ym.mec.biz.service.ClassGroupService;
+import com.ym.mec.biz.service.ContractService;
+import com.ym.mec.biz.service.CourseScheduleService;
+import com.ym.mec.biz.service.CourseScheduleStudentPaymentService;
+import com.ym.mec.biz.service.CourseScheduleTeacherSalaryService;
+import com.ym.mec.biz.service.GroupClassService;
+import com.ym.mec.biz.service.ImGroupMemberService;
+import com.ym.mec.biz.service.ImGroupService;
+import com.ym.mec.biz.service.ImUserFriendService;
+import com.ym.mec.biz.service.PayService;
+import com.ym.mec.biz.service.PracticeGroupService;
+import com.ym.mec.biz.service.StudentPaymentOrderService;
+import com.ym.mec.biz.service.StudentPaymentRouteOrderService;
+import com.ym.mec.biz.service.SysConfigService;
+import com.ym.mec.biz.service.SysCouponCodeService;
+import com.ym.mec.biz.service.SysMessageService;
+import com.ym.mec.biz.service.SysTenantConfigService;
+import com.ym.mec.biz.service.SysUserCashAccountDetailService;
+import com.ym.mec.biz.service.SysUserCashAccountLogService;
+import com.ym.mec.biz.service.SysUserCashAccountService;
+import com.ym.mec.biz.service.TeacherCourseRewardService;
+import com.ym.mec.biz.service.TeacherService;
+import com.ym.mec.biz.service.VipGroupCategoryService;
+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.dal.BaseDAO;
@@ -26,31 +188,6 @@ import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateConvertor;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.string.MessageFormatter;
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Lazy;
-import org.springframework.http.HttpStatus;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Isolation;
-import org.springframework.transaction.annotation.Propagation;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.transaction.interceptor.TransactionAspectSupport;
-import org.springframework.util.CollectionUtils;
-
-import java.math.BigDecimal;
-import java.time.LocalDate;
-import java.time.format.DateTimeFormatter;
-import java.util.*;
-import java.util.function.Function;
-import java.util.stream.Collectors;
-
-import static com.ym.mec.biz.dal.enums.GroupType.VIP;
-import static com.ym.mec.biz.dal.enums.SysUserRoleEnum.ORGAN_MANAGER;
-import static java.math.BigDecimal.ROUND_DOWN;
-import static java.math.BigDecimal.ZERO;
 
 @Service
 public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> implements VipGroupService {
@@ -4089,15 +4226,17 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
     @Override
     @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
     public void updateVipGroupStatusToFinished() {
+
+        Date now = new Date();
+    	//更新至已结束
         List<VipGroup> vipGroupList = vipGroupDao.queryRequiredOverList();
         if (vipGroupList != null && vipGroupList.size() > 0) {
-            Date date = new Date();
             for (VipGroup vipGroup : vipGroupList) {
-                if (Objects.nonNull(vipGroup.getCoursesExpireDate()) && (vipGroup.getCoursesExpireDate().compareTo(date) > 0 || DateUtil.isSameDay(vipGroup.getCoursesExpireDate(), date))) {
+                if (Objects.nonNull(vipGroup.getCoursesExpireDate()) && (vipGroup.getCoursesExpireDate().compareTo(now) > 0 || DateUtil.isSameDay(vipGroup.getCoursesExpireDate(), now))) {
 //					continue;
                 }
                 vipGroup.setStatus(VipGroupStatusEnum.FINISHED);
-                vipGroup.setUpdateTime(date);
+                vipGroup.setUpdateTime(now);
             }
             vipGroupDao.batchUpdate(vipGroupList);
             Set<Long> collect = vipGroupList.stream().filter(v -> VipGroupStatusEnum.FINISHED.equals(v.getStatus())).map(e -> e.getId()).collect(Collectors.toSet());
@@ -4109,9 +4248,26 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
                 }
             }
         }
+        
+        //关闭没有学生的课程组
+        List<VipGroupClassGroupMapper> vipGroupClassGroupMapperList = classGroupStudentMapperDao.queryWaitCancelVipGroup();
+        if(vipGroupClassGroupMapperList != null && vipGroupClassGroupMapperList.size() > 0){
+        	vipGroupList = vipGroupDao.queryByIds(vipGroupClassGroupMapperList.stream().map(t -> t.getId().toString()).collect(Collectors.joining(",")));
+        	for(VipGroup vipGroup : vipGroupList){
+        		vipGroup.setStatus(VipGroupStatusEnum.CANCEL);
+                vipGroup.setUpdateTime(now);
+                vipGroup.setStopReason("没有学员");
+        	}
+            vipGroupDao.batchUpdate(vipGroupList);
+            
+            for(VipGroupClassGroupMapper vgcgm : vipGroupClassGroupMapperList){
+            	imGroupService.cancel(vgcgm.getClassGroupId().toString());
+            }
+        }
+        
+        //更新到进行中或报名中
         List<VipGroup> normalVipGroupList = vipGroupDao.queryNormalStatusList();
         if (!CollectionUtils.isEmpty(normalVipGroupList)) {
-            Date now = new Date();
             List<VipGroup> needUpdateVipGroups = new ArrayList<>();
             for (VipGroup vipGroup : normalVipGroupList) {
                 try {

+ 10 - 0
mec-biz/src/main/resources/config/mybatis/ClassGroupStudentMapperMapper.xml

@@ -708,4 +708,14 @@
         select COUNT(cgsm.id_) from class_group_student_mapper cgsm
         where FIND_IN_SET(cgsm.user_id_,#{studentIds}) AND cgsm.class_group_id_ = #{oldClassId}
     </select>
+    
+    <select id="queryWaitCancelVipGroup" resultType="com.ym.mec.biz.dal.dto.VipGroupClassGroupMapper">
+        SELECT a.id_ 'id',a.class_group_id_ classGroupId from 
+		(
+		select vg.id_,cgsm.class_group_id_,count(cgsm.user_id_) total_student_num_,sum(case when cgsm.status_ = 'QUIT' then 1 else 0 end ) quit_student_num_ 
+		from class_group_student_mapper cgsm LEFT JOIN class_group cg on cgsm.class_group_id_ = cg.id_
+		LEFT JOIN vip_group vg on vg.id_ = cgsm.music_group_id_
+		WHERE cgsm.group_type_ = 'VIP' and vg.group_status_ in (2,6) and cg.del_flag_ != 1 GROUP BY cgsm.class_group_id_
+		) a WHERE a.total_student_num_ = a.quit_student_num_
+    </select>
 </mapper>

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

@@ -60,8 +60,8 @@
 	</select>
 	<sql id="queryPageSql">
 		<where>
-			<if test="className != null and className != ''">
-				AND ccl.old_class_name_ = #{className}
+			<if test="search != null and search != ''">
+				AND ccl.old_class_name_ = #{search}
 			</if>
 			<if test="musicGroupId != null and musicGroupId != ''">
 				AND ccl.music_group_id_ = #{musicGroupId}
@@ -69,8 +69,8 @@
 			<if test="operator != null and operator != ''">
 				AND operator_name_ LIKE CONCAT('%',#{operator},'%')
 			</if>
-			<if test="operatorDate != null and operatorDate != ''">
-				AND DATE_FORMAT(ccl.create_time_,'%Y-%m-%d') = #{operatorDate}
+			<if test="operatorStartDate != null and operatorStartDate != ''">
+				AND DATE_FORMAT(ccl.create_time_,'%Y-%m-%d') BETWEEN #{operatorStartDate} AND #{operatorEndDate}
 			</if>
 		</where>
 	</sql>

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

@@ -763,8 +763,8 @@
         mg.id_ music_group_id_
         FROM music_group mg
         WHERE mg.status_ IN ('APPLY','PAY','PREPARE','PROGRESS') and mg.tenant_id_ = #{tenantId}
-        <if test="organId != null">
-            AND mg.organ_id_ = #{organId}
+        <if test="organId != null and organId != ''">
+            AND FIND_IN_SET(mg.organ_id_,#{organId})
         </if>
         ORDER BY mg.create_time_ DESC
     </select>

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

@@ -1183,11 +1183,12 @@
     </resultMap>
     <select id="cloudTeacherSum" resultMap="CloudTeacherSumDto">
         select o.id_ organ_id_,o.name_ organ_name_,COUNT(distinct s.user_id_) normal_num_,COUNT(distinct smcr.user_id_) train_student_num_,
-        COUNT(distinct CASE WHEN smcr.train_time_ &lt; 60 OR smcr.train_time_ IS NULL THEN s.user_id_ END) 'train1',
+        COUNT(distinct CASE WHEN smcr.train_time_ > 0 AND smcr.train_time_ &lt; 10 THEN s.user_id_ END) 'train0',
+        COUNT(distinct CASE WHEN smcr.train_time_ >= 10 AND smcr.train_time_ &lt; 60 THEN s.user_id_ END) 'train1',
         COUNT(distinct CASE WHEN smcr.train_time_ >= 60 AND smcr.train_time_ &lt; 120 THEN s.user_id_ END) 'train2',
         COUNT(distinct CASE WHEN smcr.train_time_ >= 120 AND smcr.train_time_ &lt; 240 THEN s.user_id_ END) 'train3',
         COUNT(distinct CASE WHEN smcr.train_time_ >= 240 THEN s.user_id_ END) 'train4',
-        ROUND(SUM(smcr.train_time_),2) train_total_time_,COUNT(distinct CASE WHEN smcr.train_time_ >= 60 THEN s.user_id_ END) 'train0'
+        ROUND(SUM(smcr.train_time_),2) train_total_time_
         from (select distinct sr.user_id_ from music_group mg
         left join student_registration sr ON mg.id_ = sr.music_group_id_
         where mg.status_ IN ('PROGRESS','PAUSE') AND sr.music_group_status_ = 'NORMAL') mg
@@ -1215,11 +1216,12 @@
     </select>
     <select id="queryCloudTeacherSumDetail" resultMap="CloudTeacherSumDto">
         select su.real_name_ teacher_name_,COUNT(distinct s.user_id_) normal_num_,COUNT(distinct smcr.user_id_) train_student_num_,
-        COUNT(distinct CASE WHEN smcr.train_time_ &lt; 60 OR smcr.train_time_ IS NULL THEN s.user_id_ END) 'train1',
+        COUNT(distinct CASE WHEN smcr.train_time_ > 0 AND smcr.train_time_ &lt; 10 THEN s.user_id_ END) 'train0',
+        COUNT(distinct CASE WHEN smcr.train_time_ >= 10 AND smcr.train_time_ &lt; 60 THEN s.user_id_ END) 'train1',
         COUNT(distinct CASE WHEN smcr.train_time_ >= 60 AND smcr.train_time_ &lt; 120 THEN s.user_id_ END) 'train2',
         COUNT(distinct CASE WHEN smcr.train_time_ >= 120 AND smcr.train_time_ &lt; 240 THEN s.user_id_ END) 'train3',
         COUNT(distinct CASE WHEN smcr.train_time_ >= 240 THEN s.user_id_ END) 'train4',
-        ROUND(SUM(smcr.train_time_),2) train_total_time_,COUNT(distinct CASE WHEN smcr.train_time_ >= 60 THEN s.user_id_ END) 'train0'
+        ROUND(SUM(smcr.train_time_),2) train_total_time_
         from student_teacher_mapper stm
         left join (select distinct sr.user_id_ from music_group mg
         left join student_registration sr ON mg.id_ = sr.music_group_id_
@@ -1261,6 +1263,16 @@
         </if>
         group by mg.organ_id_
     </select>
+    <select id="getStudentCloudStudySequenceDays" resultType="com.ym.mec.biz.dal.vo.TempCampUserTrainingSequenceVo">
+        select user_id_ userId,TO_DAYS(DATE_FORMAT(create_time_,'%Y-%m-%d')) dayNum
+        from sys_music_compare_record
+        where DATE_FORMAT(create_time_,'%Y-%m-%d') BETWEEN #{startTime} AND #{endTime}
+        and user_id_ IN
+        <foreach collection="studentIds" open="(" close=")" item="userId" separator=",">
+            #{userId}
+        </foreach>
+        group by user_id_,DATE_FORMAT(create_time_,'%Y-%m-%d')
+    </select>
     <sql id="queryStudentBasicInfoSql">
         <where>
             AND su.lock_flag_ = 0 AND su.del_flag_ = 0

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

@@ -538,4 +538,8 @@
 		LEFT JOIN `teacher` t on t.`id_` = cr.`user_id_` and cr.`client_id_` = 'teacher'
 		WHERE cr.`client_id_` = 'teacher' and t.`organ_id_` in (${queryInfo.organIdList}) AND date(cr.`create_time_`) BETWEEN #{queryInfo.startTime} and #{queryInfo.endTime} and t.job_nature_ = 'FULL_TIME'
 	</select>
+    <select id="getUserTrainingTime" resultType="java.lang.Integer">
+		select CASE WHEN sum(play_time_) IS NULL THEN 0 ELSE sum(play_time_) END
+		from sys_music_compare_record where user_id_ = #{userId} and DATE_FORMAT(create_time_,'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d')
+	</select>
 </mapper>

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

@@ -17,22 +17,30 @@
         <result column="create_time_" jdbcType="TIMESTAMP" property="createTime"/>
         <result column="update_by_" jdbcType="INTEGER" property="updateBy"/>
         <result column="update_time_" jdbcType="TIMESTAMP" property="updateTime"/>
+        <result column="organ_ids_" property="organIds"/>
+        <result column="music_group_ids_" property="musicGroupIds"/>
+        <result column="sign_standard_" property="signStandard"/>
+        <result column="standard_days_" property="standardDays"/>
+        <result column="enable_flag_" property="enableFlag"/>
     </resultMap>
 
     <sql id="Base_Column_List">
         id_
-        , name_, num_, apply_start_date_, apply_end_date_, train_start_date_, train_end_date_, state_,pic_url_, im_group_ids_, create_by_, create_time_, update_by_, update_time_
+        , name_, num_, apply_start_date_, apply_end_date_, train_start_date_, train_end_date_,
+            state_,pic_url_, im_group_ids_, create_by_, create_time_, update_by_, update_time_
+            ,organ_ids_,music_group_ids_,sign_standard_,standard_days_,enable_flag_
     </sql>
 
     <insert id="insertBatch" keyColumn="id_" keyProperty="id" useGeneratedKeys="true"
             parameterType="com.ym.mec.biz.dal.entity.TempLittleArtistTrainingCamp">
         insert into temp_little_artist_training_camp(name_, num_, apply_start_date_, apply_end_date_, train_start_date_,
-        train_end_date_, state_, im_group_ids_,pic_url_, del_flag_,create_by_, create_time_, update_by_, update_time_)
+        train_end_date_, state_, im_group_ids_,pic_url_, del_flag_,create_by_, create_time_, update_by_, update_time_
+        ,organ_ids_,music_group_ids_,sign_standard_,standard_days_,enable_flag_)
         values
         <foreach collection="entities" item="entity" separator=",">
             (#{entity.name}, #{entity.num}, #{entity.applyStartDate}, #{entity.applyEndDate}, #{entity.trainStartDate},
             #{entity.trainEndDate}, #{entity.state}, #{entity.imGroupIds}, #{entity.delFlag},#{entity.picUrl},#{entity.createBy}, #{entity.createTime},
-            #{entity.updateBy}, #{entity.updateTime})
+            #{entity.updateBy}, #{entity.updateTime},#{entity.organIds}, #{entity.musicGroupIds},#{entity.signStandard}, #{entity.standardDays},#{entity.enableFlag})
         </foreach>
     </insert>
 
@@ -115,7 +123,7 @@
         WHERE `cr`.`create_time_` &gt;= DATE_ADD(DATE(#{param.startTime}), INTERVAL IF(#{param.startTime} = DATE(#{param.startTime}), 0, 1) DAY)
         AND `cr`.`create_time_` &lt; DATE_ADD(DATE(#{param.endTime}), INTERVAL 1 DAY)
         GROUP BY `cr`.`user_id_`, DATE(`cr`.`create_time_`)
-        HAVING SUM(`cr`.`play_time_`) > 600
+        HAVING SUM(`cr`.`play_time_`) > #{param.signStandard}
         ) `a`
         GROUP BY `a`.`user_id_`
         ) `b`
@@ -135,6 +143,12 @@
             <if test="param.imGroupId != null">
                 AND e.id_ = #{param.imGroupId}
             </if>
+            <if test="param.standardFlag != null and param.standardFlag == true">
+                AND ifnull( b.playDay, 0 ) >= #{param.standardDays}
+            </if>
+            <if test="param.standardFlag != null and param.standardFlag == false">
+                AND ifnull( b.playDay, 0 ) &lt; #{param.standardDays}
+            </if>
             <if test="param.search != null ">
                 AND (
                 d.`id_` LIKE CONCAT('%', #{param.search},'%')
@@ -215,6 +229,13 @@
           and a.state_ = 'ING'
           and b.im_group_id_ is not null
     </select>
+    <select id="findTrainingByStudent" resultType="com.ym.mec.biz.dal.entity.TempLittleArtistTrainingCamp">
+        select tlatc.*,tlatcur.state_ status from temp_little_artist_training_camp tlatc
+        left join temp_little_artist_training_camp_user_relation tlatcur ON tlatc.id_ = tlatcur.activity_id_ and tlatcur.user_id_ = #{userId}
+        where (INTE_ARRAY(tlatc.music_group_ids_,#{musicGroupIds}) OR tlatc.music_group_ids_ IS NULL) AND
+            (FIND_IN_SET(#{organId},tlatc.organ_ids_) OR tlatc.organ_ids_ IS NULL)
+          and tlatc.del_flag_ = 0 and tlatc.enable_flag_ = 1 order by id_ DESC
+    </select>
 
     <update id="updateUserNum" parameterType="object">
         update temp_little_artist_training_camp

+ 1 - 1
mec-education/src/main/resources/bootstrap-prod.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.80.97:8848
+spring.cloud.nacos.config.server-addr=10.206.0.12:8848
 #\u9ed8\u8ba4\u4e3aPublic\u547d\u540d\u7a7a\u95f4,\u53ef\u4ee5\u7701\u7565\u4e0d\u5199
 spring.cloud.nacos.config.namespace=f40a7594-4bd0-4bc6-8397-9353c6d2e63a
 #\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-eureka/src/main/resources/bootstrap-prod.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.80.97:8848
+spring.cloud.nacos.config.server-addr=10.206.0.12:8848
 #\u9ed8\u8ba4\u4e3aPublic\u547d\u540d\u7a7a\u95f4,\u53ef\u4ee5\u7701\u7565\u4e0d\u5199
 spring.cloud.nacos.config.namespace=f40a7594-4bd0-4bc6-8397-9353c6d2e63a
 #\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-gateway/mec-gateway-web/src/main/resources/bootstrap-prod.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.80.97:8848
+spring.cloud.nacos.config.server-addr=10.206.0.12:8848
 #\u9ed8\u8ba4\u4e3aPublic\u547d\u540d\u7a7a\u95f4,\u53ef\u4ee5\u7701\u7565\u4e0d\u5199
 spring.cloud.nacos.config.namespace=f40a7594-4bd0-4bc6-8397-9353c6d2e63a
 #\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-im/src/main/resources/bootstrap-prod.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.80.97:8848
+spring.cloud.nacos.config.server-addr=10.206.0.12:8848
 #\u9ed8\u8ba4\u4e3aPublic\u547d\u540d\u7a7a\u95f4,\u53ef\u4ee5\u7701\u7565\u4e0d\u5199
 spring.cloud.nacos.config.namespace=f40a7594-4bd0-4bc6-8397-9353c6d2e63a
 #\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-mall/mall-admin/src/main/resources/bootstrap-prod.yml

@@ -2,7 +2,7 @@ spring:
   cloud:
     nacos:
       config:
-        server-addr: 47.96.80.97:8848
+        server-addr: 10.206.0.12:8848
         namespace: f40a7594-4bd0-4bc6-8397-9353c6d2e63a
         group: DEFAULT_GROUP
         prefix: mall-admin

+ 1 - 1
mec-mall/mall-portal/src/main/resources/bootstrap-prod.yml

@@ -2,7 +2,7 @@ spring:
   cloud:
     nacos:
       config:
-        server-addr: 47.96.80.97:8848
+        server-addr: 10.206.0.12:8848
         namespace: f40a7594-4bd0-4bc6-8397-9353c6d2e63a
         group: DEFAULT_GROUP
         prefix: mall-portal

+ 1 - 1
mec-monitor/src/main/resources/bootstrap-prod.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.80.97:8848
+spring.cloud.nacos.config.server-addr=10.206.0.12:8848
 #\u9ed8\u8ba4\u4e3aPublic\u547d\u540d\u7a7a\u95f4,\u53ef\u4ee5\u7701\u7565\u4e0d\u5199
 spring.cloud.nacos.config.namespace=f40a7594-4bd0-4bc6-8397-9353c6d2e63a
 #\u6307\u5b9a\u914d\u7f6e\u7fa4\u7ec4 --\u5982\u679c\u662fPublic\u547d\u540d\u7a7a\u95f4 \u5219\u53ef\u4ee5\u7701\u7565\u7fa4\u7ec4\u914d\u7f6e

+ 12 - 0
mec-student/src/main/java/com/ym/mec/student/controller/TempLittleArtistTrainingCampController.java

@@ -1,5 +1,7 @@
 package com.ym.mec.student.controller;
 
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.entity.TempLittleArtistTrainingCamp;
 import com.ym.mec.biz.dal.vo.*;
 import com.ym.mec.biz.service.TempLittleArtistTrainingCampService;
@@ -31,6 +33,8 @@ public class TempLittleArtistTrainingCampController extends BaseController {
     private TempLittleArtistTrainingCampService tempLittleArtistTrainingCampService;
     @Resource
     private TempLittleArtistTrainingCampUserRelationService tempLittleArtistTrainingCampUserRelationService;
+    @Resource
+    private SysUserFeignService sysUserFeignService;
 
     @ApiImplicitParams({
             @ApiImplicitParam(name = "name", dataType = "String", value = "训练营标题-模糊搜索"),
@@ -50,6 +54,7 @@ public class TempLittleArtistTrainingCampController extends BaseController {
 
     @ApiImplicitParams({
             @ApiImplicitParam(name = "userId", dataType = "Integer", required = true, value = "用户id"),
+            @ApiImplicitParam(name = "campId", dataType = "Integer", value = "训练营id"),
     })
     @ApiOperation("查询指定学生-训练营每日训练时长")
     @PostMapping(value = "/queryUserTrainingTime")
@@ -57,6 +62,13 @@ public class TempLittleArtistTrainingCampController extends BaseController {
         return succeed(tempLittleArtistTrainingCampService.queryUserTrainingTime(param));
     }
 
+    @ApiOperation("查询指定学生-训练营每日训练时长")
+    @PostMapping(value = "/getUserTrainingTime")
+    public HttpResponseResult<Integer> getUserTrainingTime() {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        return succeed(tempLittleArtistTrainingCampService.getUserTrainingTime(sysUser.getId()));
+    }
+
     @ApiImplicitParams({
             @ApiImplicitParam(name = "search", dataType = "String", value = "学员姓名/手机号/编号-模糊搜索"),
             @ApiImplicitParam(name = "imGroupId", dataType = "Integer", value = "所在群组Id"),

+ 1 - 1
mec-student/src/main/resources/bootstrap-prod.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.80.97:8848
+spring.cloud.nacos.config.server-addr=10.206.0.12:8848
 #\u9ed8\u8ba4\u4e3aPublic\u547d\u540d\u7a7a\u95f4,\u53ef\u4ee5\u7701\u7565\u4e0d\u5199
 spring.cloud.nacos.config.namespace=f40a7594-4bd0-4bc6-8397-9353c6d2e63a
 #\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-prod.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.80.97:8848
+spring.cloud.nacos.config.server-addr=10.206.0.12:8848
 #\u9ed8\u8ba4\u4e3aPublic\u547d\u540d\u7a7a\u95f4,\u53ef\u4ee5\u7701\u7565\u4e0d\u5199
 spring.cloud.nacos.config.namespace=f40a7594-4bd0-4bc6-8397-9353c6d2e63a
 #\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-prod.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.80.97:8848
+spring.cloud.nacos.config.server-addr=10.206.0.12:8848
 #\u9ed8\u8ba4\u4e3aPublic\u547d\u540d\u7a7a\u95f4,\u53ef\u4ee5\u7701\u7565\u4e0d\u5199
 spring.cloud.nacos.config.namespace=f40a7594-4bd0-4bc6-8397-9353c6d2e63a
 #\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-web/src/main/java/com/ym/mec/web/controller/MusicGroupController.java

@@ -264,7 +264,7 @@ public class MusicGroupController extends BaseController {
 	@ApiOperation("获取分部乐团列表名称")
 	@GetMapping(value = "/queryOrganMusicInfos")
 	@PreAuthorize("@pcs.hasPermissions('musicGroup/queryOrganMusicInfos')")
-	public Object queryOrganMusicInfos(Integer organId) {
+	public Object queryOrganMusicInfos(String organId) {
 		return succeed(musicGroupService.queryOrganMusicInfos(organId));
 	}
 

+ 13 - 1
mec-web/src/main/java/com/ym/mec/web/controller/TempLittleArtistTrainingCampController.java

@@ -51,13 +51,22 @@ public class TempLittleArtistTrainingCampController extends BaseController {
         return succeed();
     }
 
-    @ApiOperation("修改机构启用停用状态")
+    @ApiOperation("修改训练营启用停用状态")
     @GetMapping(value = "/delete/{id}")
     public HttpResponseResult<Object> opsState(@ApiParam(value = "训练营ID", required = true) @PathVariable("id") Integer id) {
         tempLittleArtistTrainingCampService.delete(id);
         return succeed();
     }
 
+    @ApiOperation("修改训练营启用停用状态")
+    @GetMapping(value = "/enable/{id}")
+    public HttpResponseResult<Object> enable(@ApiParam(value = "训练营ID", required = true) @PathVariable("id") Integer id) {
+        TempLittleArtistTrainingCamp byId = tempLittleArtistTrainingCampService.getById(id);
+        tempLittleArtistTrainingCampService.lambdaUpdate()
+                .eq(TempLittleArtistTrainingCamp::getId,id).set(TempLittleArtistTrainingCamp::getEnableFlag,!byId.getEnableFlag()).update();
+        return succeed();
+    }
+
     @ApiImplicitParams({
             @ApiImplicitParam(name = "name", dataType = "String", value = "训练营标题-模糊搜索"),
             @ApiImplicitParam(name = "state", dataType = "String", value = "筹备中 READY,报名中 APPLY,未开始 NOT_START,进行中 ING,已结束 END"),
@@ -65,6 +74,7 @@ public class TempLittleArtistTrainingCampController extends BaseController {
             @ApiImplicitParam(name = "applyEndDate", dataType = "String", value = "申请报名登记结束日期-年月日"),
             @ApiImplicitParam(name = "trainStartDate", dataType = "String", value = "训练开始日期-年月日"),
             @ApiImplicitParam(name = "trainEndDate", dataType = "String", value = "训练结束日期-年月日"),
+            @ApiImplicitParam(name = "enableFlag", dataType = "Boolean", value = "是否启用"),
             @ApiImplicitParam(name = "page", dataType = "Integer", required = true, value = "页数"),
             @ApiImplicitParam(name = "rows", dataType = "Integer", required = true, value = "每页数量"),
     })
@@ -99,6 +109,7 @@ public class TempLittleArtistTrainingCampController extends BaseController {
             @ApiImplicitParam(name = "search", dataType = "String", value = "学员姓名/手机号/编号-模糊搜索"),
             @ApiImplicitParam(name = "imGroupId", dataType = "Integer", value = "所在群组Id"),
             @ApiImplicitParam(name = "campId", dataType = "Integer", value = "训练营id"),
+            @ApiImplicitParam(name = "standardFlag", dataType = "Boolean", value = "是否达标"),
             @ApiImplicitParam(name = "page", dataType = "Integer", required = true, value = "页数"),
             @ApiImplicitParam(name = "rows", dataType = "Integer", required = true, value = "每页数量"),
     })
@@ -154,6 +165,7 @@ public class TempLittleArtistTrainingCampController extends BaseController {
     @ApiOperation(value="导出训练营详情")
     @PostMapping(value = "/exportUserTrainingDetail")
     public void exportUserTrainingDetail(@RequestBody Map<String, Object> param, HttpServletResponse response) throws IOException{
+        param.put("rows", 49999);
         tempLittleArtistTrainingCampService.exportUserTrainingDetail(param, response);
     }
 

+ 1 - 1
mec-web/src/main/resources/bootstrap-prod.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.80.97:8848
+spring.cloud.nacos.config.server-addr=10.206.0.12:8848
 #\u9ed8\u8ba4\u4e3aPublic\u547d\u540d\u7a7a\u95f4,\u53ef\u4ee5\u7701\u7565\u4e0d\u5199
 spring.cloud.nacos.config.namespace=f40a7594-4bd0-4bc6-8397-9353c6d2e63a
 #\u6307\u5b9a\u914d\u7f6e\u7fa4\u7ec4 --\u5982\u679c\u662fPublic\u547d\u540d\u7a7a\u95f4 \u5219\u53ef\u4ee5\u7701\u7565\u7fa4\u7ec4\u914d\u7f6e

+ 2 - 2
mec-web/src/main/resources/exportColumnMapper.ini

@@ -323,8 +323,8 @@ headColumns = ["分部", "在读人数", "应有课耗", "实际课耗","课耗
 fieldColumns = ["organName","normalNum","courseConsumerNum","courseSum","courseConsumerRate+'%'","num5","num4","num3","num2","num1","num0","standRate+'%'"]
 
 [云教练统计导出]
-headColumns = ["分部", "会员人数","练习人数","练习率","<60分钟", "60~120分钟","120~240分钟",">=240分钟","平均练习时长(会员)","平均练习时长(练习)","练习达标占比"]
-fieldColumns = ["organName","normalNum","trainStudentNum","trainRate+'%'","train1","train2","train3","train4","avgTrainTime","trainAvgTrainTime","trainStandRate+'%'"]
+headColumns = ["分部", "会员人数","练习人数","练习率","<10分钟","10~60分钟", "60~120分钟","120~240分钟",">=240分钟","平均练习时长(会员)","平均练习时长(练习)","练习达标占比"]
+fieldColumns = ["organName","normalNum","trainStudentNum","trainRate+'%'","train","train1","train2","train3","train4","avgTrainTime","trainAvgTrainTime","trainStandRate+'%'"]
 
 [云教练统计详情导出]
 headColumns = ["声部老师", "会员人数","练习人数","练习率","<60分钟", "60~120分钟","120~240分钟",">=240分钟","平均练习时长(会员)","平均练习时长(练习)","练习达标占比"]

+ 3 - 3
mec-web/src/main/resources/logback-spring.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration scan="true" scanPeriod="10 seconds">
 
-    <property name="LOG_HOME" value="/Users/chenxiaoyu/Documents/logs/web-%d{yyyy-MM-dd_HH}-%i.log"/>
+    <property name="LOG_HOME" value="/mdata/logs/web-%d{yyyy-MM-dd_HH}-%i.log"/>
     <property name="CONSOLE_LOG_PATTERN"
               value="[%X{username} %X{ip} %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}] : %msg%n"/>
 
@@ -30,7 +30,7 @@
     <appender name="messagefile"
               class="ch.qos.logback.core.rolling.RollingFileAppender">
         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <FileNamePattern>/Users/chenxiaoyu/Documents/logs/web-message-%d{yyyy-MM-dd_HH}-%i.log</FileNamePattern>
+            <FileNamePattern>/mdata/logs/web-message-%d{yyyy-MM-dd_HH}-%i.log</FileNamePattern>
             <MaxHistory>90</MaxHistory>
             <TimeBasedFileNamingAndTriggeringPolicy
                     class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
@@ -46,7 +46,7 @@
     <appender name="liveFile"
               class="ch.qos.logback.core.rolling.RollingFileAppender">
         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <FileNamePattern>/Users/chenxiaoyu/Documents/logs/web-live-%d{yyyy-MM-dd_HH}-%i.log</FileNamePattern>
+            <FileNamePattern>/mdata/logs/web-live-%d{yyyy-MM-dd_HH}-%i.log</FileNamePattern>
             <MaxHistory>90</MaxHistory>
             <TimeBasedFileNamingAndTriggeringPolicy
                     class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+ 1 - 1
mec-websocket/src/main/resources/bootstrap-prod.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.80.97:8848
+spring.cloud.nacos.config.server-addr=10.206.0.12:8848
 #\u9ed8\u8ba4\u4e3aPublic\u547d\u540d\u7a7a\u95f4,\u53ef\u4ee5\u7701\u7565\u4e0d\u5199
 spring.cloud.nacos.config.namespace=f40a7594-4bd0-4bc6-8397-9353c6d2e63a
 #\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-prod.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.80.97:8848
+spring.cloud.nacos.config.server-addr=10.206.0.12:8848
 #\u9ed8\u8ba4\u4e3aPublic\u547d\u540d\u7a7a\u95f4,\u53ef\u4ee5\u7701\u7565\u4e0d\u5199
 spring.cloud.nacos.config.namespace=f40a7594-4bd0-4bc6-8397-9353c6d2e63a
 #\u6307\u5b9a\u914d\u7f6e\u7fa4\u7ec4 --\u5982\u679c\u662fPublic\u547d\u540d\u7a7a\u95f4 \u5219\u53ef\u4ee5\u7701\u7565\u7fa4\u7ec4\u914d\u7f6e