فهرست منبع

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

zouxuan 3 سال پیش
والد
کامیت
2acb574464
100فایلهای تغییر یافته به همراه3285 افزوده شده و 201 حذف شده
  1. 1 0
      .gitignore
  2. 1 1
      audio-analysis/src/main/resources/logback-spring.xml
  3. 12 0
      cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/AdminFeignService.java
  4. 140 0
      cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/dto/EmployeeApi.java
  5. 134 0
      cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/dto/StudentApi.java
  6. 362 0
      cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/dto/TeacherApi.java
  7. 18 0
      cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/fallback/AdminFeignServiceFallback.java
  8. 3 3
      cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/entity/SysUser.java
  9. 8 3
      cooleshow-auth/auth-server/pom.xml
  10. 44 7
      cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/core/provider/service/DefaultUserDetailsService.java
  11. 4 0
      cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/dal/dao/SysUserDao.java
  12. 4 0
      cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/service/SysUserService.java
  13. 5 0
      cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/service/impl/SysUserServiceImpl.java
  14. 1 1
      cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/web/controller/TokenController.java
  15. 34 20
      cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/web/controller/UserController.java
  16. 12 0
      cooleshow-auth/auth-server/src/main/resources/config/mybatis/SysUserMapper.xml
  17. 9 6
      cooleshow-bbs/pom.xml
  18. 7 3
      cooleshow-cms/pom.xml
  19. 35 0
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/ActivityResourceEnum.java
  20. 39 0
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/ActivityShareEnum.java
  21. 1 0
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/ActivityTypeEnum.java
  22. 69 0
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/EStatus.java
  23. 6 0
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/UnitEnum.java
  24. 2 2
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/UserLockFlag.java
  25. 39 0
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/UserStatusEnum.java
  26. 9 6
      cooleshow-mall/mall-admin/pom.xml
  27. 1 1
      cooleshow-mall/mall-admin/src/main/resources/logback-spring.xml
  28. 7 8
      cooleshow-mall/mall-portal/pom.xml
  29. 1 1
      cooleshow-mall/mall-portal/src/main/resources/logback-spring.xml
  30. 1 1
      cooleshow-task/src/main/resources/logback-spring.xml
  31. 43 10
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/ActivityEvaluationController.java
  32. 11 5
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/ActivityPlanController.java
  33. 41 2
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/EmployeeController.java
  34. 66 17
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/MusicSheetController.java
  35. 126 16
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/StudentController.java
  36. 10 1
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/TeacherAuthEntryRecordController.java
  37. 109 1
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/TeacherController.java
  38. 1 1
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/TeacherStyleVideoController.java
  39. 0 1
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/UserAccountRecordController.java
  40. 24 0
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/VideoLessonController.java
  41. 46 0
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/open/AdminClient.java
  42. 135 0
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/io/request/ActivityTeacherVO.java
  43. 19 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ActivityEvaluationDao.java
  44. 16 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ActivityEvaluationRecordDao.java
  45. 9 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ActivityPlanDao.java
  46. 8 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ActivityUserRewardDao.java
  47. 13 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/MusicSheetDao.java
  48. 11 7
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/TeacherAuthEntryRecordDao.java
  49. 24 5
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/VideoLessonGroupDao.java
  50. 2 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/VideoLessonGroupDetailDao.java
  51. 20 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/VideoLessonGroupLogDao.java
  52. 2 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/VideoLessonPurchaseRecordDao.java
  53. 10 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/VipCardRecordDao.java
  54. 12 3
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/ActivityEvaluationDto.java
  55. 103 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/ActivityPlanDto.java
  56. 41 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/MusicImgDto.java
  57. 36 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/SaveOrUpdateRewardDto.java
  58. 68 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/VipSubmitReq.java
  59. 102 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/activity/ActivityTeacherQuery.java
  60. 33 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/req/OrderReq.java
  61. 0 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/req/TeacherApplyDetailReq.java
  62. 11 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/req/TeacherMusicSheetAuditReq.java
  63. 0 4
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/ActivityPlanSearch.java
  64. 13 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/ActivityUserRewardSearch.java
  65. 23 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/AuthEntryRecordSearch.java
  66. 34 9
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/EmployeeSearch.java
  67. 22 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/MemberPriceSettingsSearch.java
  68. 31 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/StudentSearch.java
  69. 11 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/TeacherMusicSheetAuditSearch.java
  70. 36 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/TeacherSearch.java
  71. 11 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/VideoGroupSearch.java
  72. 97 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/VipRecordSearch.java
  73. 14 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ActivityEvaluation.java
  74. 27 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ActivityEvaluationRecord.java
  75. 15 7
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ActivityPlan.java
  76. 17 6
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ActivityReward.java
  77. 13 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ActivityUserReward.java
  78. 12 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/Employee.java
  79. 12 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/MusicSheet.java
  80. 28 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/MusicSheetAuthRecord.java
  81. 12 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/Student.java
  82. 68 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/Teacher.java
  83. 16 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/TeacherAuthEntryRecord.java
  84. 24 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/UserOrder.java
  85. 25 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/VideoLessonAuthRecord.java
  86. 12 11
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/VideoLessonGroup.java
  87. 311 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/VideoLessonGroupLog.java
  88. 5 4
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/VideoLessonPurchaseRecord.java
  89. 49 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/VipCardRecord.java
  90. 34 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/AuthTypeEnum.java
  91. 13 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/MK.java
  92. 3 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/MessageTypeEnum.java
  93. 32 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ActivityEvaluationRecordService.java
  94. 17 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ActivityEvaluationService.java
  95. 24 10
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ActivityPlanService.java
  96. 9 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ActivityUserRewardService.java
  97. 19 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MemberPriceSettingsService.java
  98. 4 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetAccompanimentService.java
  99. 5 5
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetAuthRecordService.java
  100. 26 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetService.java

+ 1 - 0
.gitignore

@@ -1,4 +1,5 @@
 /target/
+logback-test.xml
 
 ### STS ###
 .apt_generated

+ 1 - 1
audio-analysis/src/main/resources/logback-spring.xml

@@ -27,7 +27,7 @@
 		</encoder>
 	</appender>
 
-	<logger name="com.yonge" level="debug" />
+	<logger name="com.yonge" level="info" />
 
 	<!--开发环境:打印控制台 -->
 	<springProfile name="local">

+ 12 - 0
cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/AdminFeignService.java

@@ -1,5 +1,8 @@
 package com.yonge.cooleshow.api.feign;
 
+import com.yonge.cooleshow.api.feign.dto.EmployeeApi;
+import com.yonge.cooleshow.api.feign.dto.StudentApi;
+import com.yonge.cooleshow.api.feign.dto.TeacherApi;
 import com.yonge.cooleshow.api.feign.fallback.AdminFeignServiceFallback;
 import com.yonge.cooleshow.common.constant.AppConstant;
 import com.yonge.cooleshow.common.entity.ContractDto;
@@ -101,4 +104,13 @@ public interface AdminFeignService {
             @RequestParam("userId") Long userId,
             @RequestParam("userType") String userType,
             @RequestParam("firstTimeType") UserFirstTimeTypeEnum firstTimeType);
+
+    @GetMapping(value = "/open/adminClient/getTeacher")
+    HttpResponseResult<TeacherApi> getTeacher(@RequestParam("userId") Long userId);
+
+    @GetMapping(value = "/open/adminClient/getStudent")
+    HttpResponseResult<StudentApi> getStudent(@RequestParam("userId") Long userId);
+
+    @GetMapping(value = "/open/adminClient/getEmployee")
+    HttpResponseResult<EmployeeApi> getEmployee(@RequestParam("userId") Long userId);
 }

+ 140 - 0
cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/dto/EmployeeApi.java

@@ -0,0 +1,140 @@
+package com.yonge.cooleshow.api.feign.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.yonge.cooleshow.common.enums.UserLockFlag;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 员工表
+ */
+public class EmployeeApi implements Serializable {
+	private static final long serialVersionUID = 1L;
+	private Long userId;
+	private String jobNature;
+	private String isProbationPeriod;
+	private String educationBackground;
+	private String graduateSchool;
+	private String technicalTitles;
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+	private Date entryDate;
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+	private Date createTime;
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+	private Date updateTime;
+	private String introduction;
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+	private Date demissionDate;
+	private String contactAddress;
+	private UserLockFlag lockFlag;
+
+	public Long getUserId() {
+		return userId;
+	}
+
+	public void setUserId(Long userId) {
+		this.userId = userId;
+	}
+
+	public String getJobNature() {
+		return jobNature;
+	}
+
+	public void setJobNature(String jobNature) {
+		this.jobNature = jobNature;
+	}
+
+	public String getIsProbationPeriod() {
+		return isProbationPeriod;
+	}
+
+	public void setIsProbationPeriod(String isProbationPeriod) {
+		this.isProbationPeriod = isProbationPeriod;
+	}
+
+	public String getEducationBackground() {
+		return educationBackground;
+	}
+
+	public void setEducationBackground(String educationBackground) {
+		this.educationBackground = educationBackground;
+	}
+
+	public String getGraduateSchool() {
+		return graduateSchool;
+	}
+
+	public void setGraduateSchool(String graduateSchool) {
+		this.graduateSchool = graduateSchool;
+	}
+
+	public String getTechnicalTitles() {
+		return technicalTitles;
+	}
+
+	public void setTechnicalTitles(String technicalTitles) {
+		this.technicalTitles = technicalTitles;
+	}
+
+	public Date getEntryDate() {
+		return entryDate;
+	}
+
+	public void setEntryDate(Date entryDate) {
+		this.entryDate = entryDate;
+	}
+
+	public Date getCreateTime() {
+		return createTime;
+	}
+
+	public void setCreateTime(Date createTime) {
+		this.createTime = createTime;
+	}
+
+	public Date getUpdateTime() {
+		return updateTime;
+	}
+
+	public void setUpdateTime(Date updateTime) {
+		this.updateTime = updateTime;
+	}
+
+	public String getIntroduction() {
+		return introduction;
+	}
+
+	public void setIntroduction(String introduction) {
+		this.introduction = introduction;
+	}
+
+	public Date getDemissionDate() {
+		return demissionDate;
+	}
+
+	public void setDemissionDate(Date demissionDate) {
+		this.demissionDate = demissionDate;
+	}
+
+	public String getContactAddress() {
+		return contactAddress;
+	}
+
+	public void setContactAddress(String contactAddress) {
+		this.contactAddress = contactAddress;
+	}
+
+	public UserLockFlag getLockFlag() {
+		return lockFlag;
+	}
+
+	public void setLockFlag(UserLockFlag lockFlag) {
+		this.lockFlag = lockFlag;
+	}
+}

+ 134 - 0
cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/dto/StudentApi.java

@@ -0,0 +1,134 @@
+package com.yonge.cooleshow.api.feign.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.yonge.cooleshow.common.enums.UserLockFlag;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 学生表
+ */
+public class StudentApi implements Serializable {
+	private static final long serialVersionUID = 1L;
+    private Long userId;
+    /** 
+    * 学员声部 
+    */
+    private String subjectId;
+    /**
+    * 会员等级 
+    */
+    private Long memberRankSettingId;
+    /** 
+    * 有效期开始时间 
+    */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    private Date membershipStartTime;
+    /** 
+    * 有效期结束时间 
+    */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    private Date membershipEndTime;
+    /** 
+    * 小酷Ai连续使用天数 
+    */
+    private Integer cloudStudySequenceDays;
+    /** 
+    * 小酷Ai最后使用日期 
+    */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    private Date cloudStudyUseLastDay;
+
+    private UserLockFlag lockFlag;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    private Date createTime;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    private Date updateTime;
+
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
+    public String getSubjectId() {
+        return subjectId;
+    }
+
+    public void setSubjectId(String subjectId) {
+        this.subjectId = subjectId;
+    }
+
+    public Long getMemberRankSettingId() {
+        return memberRankSettingId;
+    }
+
+    public void setMemberRankSettingId(Long memberRankSettingId) {
+        this.memberRankSettingId = memberRankSettingId;
+    }
+
+    public Date getMembershipStartTime() {
+        return membershipStartTime;
+    }
+
+    public void setMembershipStartTime(Date membershipStartTime) {
+        this.membershipStartTime = membershipStartTime;
+    }
+
+    public Date getMembershipEndTime() {
+        return membershipEndTime;
+    }
+
+    public void setMembershipEndTime(Date membershipEndTime) {
+        this.membershipEndTime = membershipEndTime;
+    }
+
+    public Integer getCloudStudySequenceDays() {
+        return cloudStudySequenceDays;
+    }
+
+    public void setCloudStudySequenceDays(Integer cloudStudySequenceDays) {
+        this.cloudStudySequenceDays = cloudStudySequenceDays;
+    }
+
+    public Date getCloudStudyUseLastDay() {
+        return cloudStudyUseLastDay;
+    }
+
+    public void setCloudStudyUseLastDay(Date cloudStudyUseLastDay) {
+        this.cloudStudyUseLastDay = cloudStudyUseLastDay;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public UserLockFlag getLockFlag() {
+        return lockFlag;
+    }
+
+    public void setLockFlag(UserLockFlag lockFlag) {
+        this.lockFlag = lockFlag;
+    }
+}

+ 362 - 0
cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/dto/TeacherApi.java

@@ -0,0 +1,362 @@
+package com.yonge.cooleshow.api.feign.dto;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.yonge.cooleshow.common.enums.UserLockFlag;
+import com.yonge.cooleshow.common.enums.YesOrNoEnum;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 教师表
+ */
+@TableName("teacher")
+public class TeacherApi implements Serializable {
+	private static final long serialVersionUID = 1L;
+    /** 
+    * 对应user表用户编号 
+    */
+    private Long userId;
+    /** 
+    * 学历 
+    */
+    private String educationBackground;
+    /** 
+    * 毕业学校 
+    */
+    private String graduateSchool;
+    /** 
+    * 技术职称 
+    */
+    private String technicalTitles;
+    /** 
+    * 工作单位 
+    */
+    private String workUnit;
+    /** 
+    * 专业技能(支持多个,用逗号分隔),对应声部表编号
+    */
+    private String subjectId;
+    /**
+     * 个人介绍
+     */
+    private String introduction;
+    /**
+     * 学校专业
+     */
+    private String subject;
+    /**
+     * 毕业证书
+     */
+    private String gradCertificate;
+    /**
+     * 学位证书
+     */
+    private String degreeCertificate;
+    /**
+     * 教师资格证
+     */
+    private String teacherCertificate;
+    /**
+     * 老师入驻  0 否 1 是
+     */
+    private YesOrNoEnum entryFlag;
+    /**
+    * 入驻时间 
+    */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    private Date entryAuthDate;
+
+    private String tag;
+
+    /** 
+    * 音乐人  0 否 1 是
+    */
+    private YesOrNoEnum musicianFlag;
+    /**
+     * 音乐人认证时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    private Date musicianDate;
+    private YesOrNoEnum liveFlag;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    private Date liveDate;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    private Date musicDate;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    private Date videoDate;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    private Date styleDate;
+
+    /**
+     * 会员等级
+     */
+    private Long memberRankSettingId;
+    /**
+     * 有效期开始时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    private Date membershipStartTime;
+    /**
+     * 有效期结束时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    private Date membershipEndTime;
+
+    private Integer browse;
+    private String memo;
+    private UserLockFlag lockFlag;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    private Date createTime;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    private Date updateTime;
+
+
+    public Date getMusicDate() {
+        return musicDate;
+    }
+
+    public void setMusicDate(Date musicDate) {
+        this.musicDate = musicDate;
+    }
+
+    public Date getVideoDate() {
+        return videoDate;
+    }
+
+    public void setVideoDate(Date videoDate) {
+        this.videoDate = videoDate;
+    }
+
+    public Date getStyleDate() {
+        return styleDate;
+    }
+
+    public void setStyleDate(Date styleDate) {
+        this.styleDate = styleDate;
+    }
+
+    public String getTag() {
+        return tag;
+    }
+
+    public void setTag(String tag) {
+        this.tag = tag;
+    }
+
+    public Long getMemberRankSettingId() {
+        return memberRankSettingId;
+    }
+
+    public void setMemberRankSettingId(Long memberRankSettingId) {
+        this.memberRankSettingId = memberRankSettingId;
+    }
+
+    public Date getMembershipStartTime() {
+        return membershipStartTime;
+    }
+
+    public void setMembershipStartTime(Date membershipStartTime) {
+        this.membershipStartTime = membershipStartTime;
+    }
+
+    public Date getMembershipEndTime() {
+        return membershipEndTime;
+    }
+
+    public void setMembershipEndTime(Date membershipEndTime) {
+        this.membershipEndTime = membershipEndTime;
+
+    }
+
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
+    public String getEducationBackground() {
+        return educationBackground;
+    }
+
+    public void setEducationBackground(String educationBackground) {
+        this.educationBackground = educationBackground;
+    }
+
+    public String getGraduateSchool() {
+        return graduateSchool;
+    }
+
+    public void setGraduateSchool(String graduateSchool) {
+        this.graduateSchool = graduateSchool;
+    }
+
+    public String getTechnicalTitles() {
+        return technicalTitles;
+    }
+
+    public void setTechnicalTitles(String technicalTitles) {
+        this.technicalTitles = technicalTitles;
+    }
+
+    public String getWorkUnit() {
+        return workUnit;
+    }
+
+    public void setWorkUnit(String workUnit) {
+        this.workUnit = workUnit;
+    }
+
+    public String getSubjectId() {
+        return subjectId;
+    }
+
+    public void setSubjectId(String subjectId) {
+        this.subjectId = subjectId;
+    }
+
+    public String getIntroduction() {
+        return introduction;
+    }
+
+    public void setIntroduction(String introduction) {
+        this.introduction = introduction;
+    }
+
+    public String getSubject() {
+        return subject;
+    }
+
+    public void setSubject(String subject) {
+        this.subject = subject;
+    }
+
+    public String getGradCertificate() {
+        return gradCertificate;
+    }
+
+    public void setGradCertificate(String gradCertificate) {
+        this.gradCertificate = gradCertificate;
+    }
+
+    public String getDegreeCertificate() {
+        return degreeCertificate;
+    }
+
+    public void setDegreeCertificate(String degreeCertificate) {
+        this.degreeCertificate = degreeCertificate;
+    }
+
+    public String getTeacherCertificate() {
+        return teacherCertificate;
+    }
+
+    public void setTeacherCertificate(String teacherCertificate) {
+        this.teacherCertificate = teacherCertificate;
+    }
+
+    public YesOrNoEnum getEntryFlag() {
+        return entryFlag;
+    }
+
+    public void setEntryFlag(YesOrNoEnum entryFlag) {
+        this.entryFlag = entryFlag;
+    }
+
+    public Date getEntryAuthDate() {
+        return entryAuthDate;
+    }
+
+    public void setEntryAuthDate(Date entryAuthDate) {
+        this.entryAuthDate = entryAuthDate;
+    }
+
+    public YesOrNoEnum getMusicianFlag() {
+        return musicianFlag;
+    }
+
+    public void setMusicianFlag(YesOrNoEnum musicianFlag) {
+        this.musicianFlag = musicianFlag;
+    }
+
+    public Date getMusicianDate() {
+        return musicianDate;
+    }
+
+    public void setMusicianDate(Date musicianDate) {
+        this.musicianDate = musicianDate;
+    }
+
+    public YesOrNoEnum getLiveFlag() {
+        return liveFlag;
+    }
+
+    public void setLiveFlag(YesOrNoEnum liveFlag) {
+        this.liveFlag = liveFlag;
+    }
+
+    public String getMemo() {
+        return memo;
+    }
+
+    public void setMemo(String memo) {
+        this.memo = memo;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public Date getLiveDate() {
+        return liveDate;
+    }
+
+    public void setLiveDate(Date liveDate) {
+        this.liveDate = liveDate;
+    }
+
+    public Integer getBrowse() {
+        return browse;
+    }
+
+    public void setBrowse(Integer browse) {
+        this.browse = browse;
+    }
+
+    public UserLockFlag getLockFlag() {
+        return lockFlag;
+    }
+
+    public void setLockFlag(UserLockFlag lockFlag) {
+        this.lockFlag = lockFlag;
+    }
+}

+ 18 - 0
cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/fallback/AdminFeignServiceFallback.java

@@ -1,6 +1,9 @@
 package com.yonge.cooleshow.api.feign.fallback;
 
 import com.yonge.cooleshow.api.feign.AdminFeignService;
+import com.yonge.cooleshow.api.feign.dto.EmployeeApi;
+import com.yonge.cooleshow.api.feign.dto.StudentApi;
+import com.yonge.cooleshow.api.feign.dto.TeacherApi;
 import com.yonge.cooleshow.common.entity.ContractDto;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.entity.MallOrderItemDto;
@@ -76,4 +79,19 @@ public class AdminFeignServiceFallback implements AdminFeignService {
     public HttpResponseResult recordTime(Long userId, String userType, UserFirstTimeTypeEnum firstTimeTypeEnum) {
         return null;
     }
+
+    @Override
+    public HttpResponseResult<TeacherApi> getTeacher(Long userId) {
+        return null;
+    }
+
+    @Override
+    public HttpResponseResult<StudentApi> getStudent(Long userId) {
+        return null;
+    }
+
+    @Override
+    public HttpResponseResult<EmployeeApi> getEmployee(Long userId) {
+        return null;
+    }
 }

+ 3 - 3
cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/entity/SysUser.java

@@ -47,12 +47,12 @@ public class SysUser implements Serializable{
 	/** 修改时间 */
 	private java.util.Date updateTime;
 
-	/** 0-正常,9-锁定 */
-	@ApiModelProperty(value = "0-正常,1-锁定")
+	/** 0-正常, 1-锁定 */
+	@ApiModelProperty(value = "0-正常, 1-锁定")
 	private Integer lockFlag;
 
 	/** 0-正常,1-删除 */
-	@ApiModelProperty(value = "0-正常,1+ -删除")
+	@ApiModelProperty(value = "0-正常,1-删除")
 	private Boolean delFlag;
 
 	/** 微信openid */

+ 8 - 3
cooleshow-auth/auth-server/pom.xml

@@ -96,10 +96,15 @@
             <scope>compile</scope>
         </dependency>
 
+<!--        <dependency>-->
+<!--            <groupId>com.yonge.toolset</groupId>-->
+<!--            <artifactId>toolset-emoji</artifactId>-->
+<!--            <version>1.0</version>-->
+<!--        </dependency>-->
+
         <dependency>
-            <groupId>com.yonge.toolset</groupId>
-            <artifactId>toolset-emoji</artifactId>
-            <version>1.0</version>
+            <groupId>com.vdurmont</groupId>
+            <artifactId>emoji-java</artifactId>
         </dependency>
         <!-- redisson -->
         <dependency>

+ 44 - 7
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/core/provider/service/DefaultUserDetailsService.java

@@ -3,6 +3,12 @@ package com.yonge.cooleshow.auth.core.provider.service;
 import java.util.ArrayList;
 import java.util.List;
 
+import com.yonge.cooleshow.api.feign.AdminFeignService;
+import com.yonge.cooleshow.api.feign.dto.EmployeeApi;
+import com.yonge.cooleshow.api.feign.dto.StudentApi;
+import com.yonge.cooleshow.api.feign.dto.TeacherApi;
+import com.yonge.cooleshow.common.enums.SysUserType;
+import com.yonge.cooleshow.common.enums.UserLockFlag;
 import com.yonge.cooleshow.common.util.WebUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -22,6 +28,8 @@ import com.yonge.cooleshow.auth.service.SysUserService;
 import com.yonge.cooleshow.common.security.AuthUser;
 import com.yonge.cooleshow.common.security.SecurityConstants;
 
+import javax.annotation.Resource;
+
 @Service
 public class DefaultUserDetailsService implements UserDetailsService {
 
@@ -31,6 +39,9 @@ public class DefaultUserDetailsService implements UserDetailsService {
     @Autowired
     private SysUserService sysUserService;
 
+    @Resource
+    private AdminFeignService adminFeignService;
+
     private final String BCRYPT = "{bcrypt}";
 
     @Override
@@ -38,6 +49,8 @@ public class DefaultUserDetailsService implements UserDetailsService {
         if (StringUtils.isBlank(username)) {
             return null;
         }
+        String clientId = WebUtil.getParameter("clientId").toUpperCase();
+        String clientSecret = WebUtil.getParameter("clientSecret");
 
         SysUserInfo userInfo;
 
@@ -48,15 +61,43 @@ public class DefaultUserDetailsService implements UserDetailsService {
         } else {
             userInfo = sysUserService.queryUserInfoByUsername(username);
         }
-        if (userInfo == null) {
+        SysUser sysUser = userInfo.getSysUser();
+
+        if (userInfo == null || sysUser == null) {
             throw new UsernameNotFoundException("账户不存在");
-        } else if (userInfo.getSysUser().getLockFlag() == 9) {
+        } else if (sysUser.getLockFlag() == 9) {
             throw new LockedException("账户被锁定");
         }
+        //判断用户是否被锁定
+        if (SysUserType.STUDENT.getCode().equals(clientId)) {
+            StudentApi data = adminFeignService.getStudent(sysUser.getId()).getData();
+            if (data == null) {
+                throw new UsernameNotFoundException("账户不存在");
+            }
+            if (UserLockFlag.LOCKED.equals(data.getLockFlag())) {
+                throw new LockedException("账户被锁定");
+            }
+        }else if(SysUserType.TEACHER.getCode().equals(clientId)) {
+            TeacherApi data = adminFeignService.getTeacher(sysUser.getId()).getData();
+            if (data == null) {
+                throw new UsernameNotFoundException("账户不存在");
+            }
+            if (UserLockFlag.LOCKED.equals(data.getLockFlag())) {
+                throw new LockedException("账户被锁定");
+            }
+        }else if(SysUserType.SYSTEM.getCode().equals(clientId)) {
+            EmployeeApi data = adminFeignService.getEmployee(sysUser.getId()).getData();
+            if (data == null) {
+                throw new UsernameNotFoundException("账户不存在");
+            }
+            if (UserLockFlag.LOCKED.equals(data.getLockFlag())) {
+                throw new LockedException("账户被锁定");
+            }
+        }
 
         List<GrantedAuthority> authorities = null;
 
-        String userType = userInfo.getSysUser().getUserType();
+        String userType = sysUser.getUserType();
         String[] roles = userType.split(",");
 
         if (userType.contains("SYSTEM")) {
@@ -73,10 +114,6 @@ public class DefaultUserDetailsService implements UserDetailsService {
             authorities.add(new SimpleGrantedAuthority(StringUtils.lowerCase(role)));
         }
 
-        SysUser sysUser = userInfo.getSysUser();
-
-        String clientId = WebUtil.getParameter("clientId");
-        String clientSecret = WebUtil.getParameter("clientSecret");
         return new AuthUser(sysUser.getId(), username, BCRYPT + sysUser.getPassword(), sysUser.getLockFlag() == 0, true, true, true, authorities, clientId, clientSecret);
     }
 

+ 4 - 0
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/dal/dao/SysUserDao.java

@@ -2,6 +2,8 @@ package com.yonge.cooleshow.auth.dal.dao;
 
 import java.util.List;
 
+import com.yonge.cooleshow.common.enums.SysUserType;
+import io.swagger.models.auth.In;
 import org.apache.ibatis.annotations.Param;
 
 import com.yonge.cooleshow.auth.api.dto.RealnameAuthReq;
@@ -170,4 +172,6 @@ public interface SysUserDao extends BaseDAO<Long, SysUser> {
     List<SysUser> queryHistoryUserById(@Param("id")Long id);
 
     Integer getUnCompCourseNum(@Param("userId") Long userId);
+
+    void updateLockStatus(@Param("userId")Long userId, @Param("lockFlag") Integer lockFlag, @Param("sysUserType")  String sysUserType);
 }

+ 4 - 0
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/service/SysUserService.java

@@ -9,6 +9,8 @@ import com.yonge.cooleshow.auth.api.dto.UserSetReq;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.auth.api.vo.UserSetVo;
 import com.yonge.cooleshow.common.entity.ImUserModel;
+import com.yonge.cooleshow.common.enums.SysUserType;
+import com.yonge.cooleshow.common.enums.UserLockFlag;
 import com.yonge.toolset.mybatis.service.BaseService;
 
 public interface SysUserService extends BaseService<Long, SysUser> {
@@ -191,4 +193,6 @@ public interface SysUserService extends BaseService<Long, SysUser> {
      * @param id
      */
     void logoffById(Long id);
+
+    void updateLockStatus(Long userId, Integer lockFlag, String sysUserType);
 }

+ 5 - 0
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/service/impl/SysUserServiceImpl.java

@@ -8,6 +8,7 @@ import com.yonge.cooleshow.auth.config.RongCloudConfig;
 import com.yonge.cooleshow.common.enums.CacheNameEnum;
 import com.yonge.cooleshow.common.enums.SysUserType;
 import com.yonge.cooleshow.common.enums.UserFirstTimeTypeEnum;
+import com.yonge.cooleshow.common.enums.UserLockFlag;
 import com.yonge.toolset.mybatis.service.impl.BaseServiceImpl;
 import io.rong.models.user.UserModel;
 import org.apache.commons.lang3.StringUtils;
@@ -282,4 +283,8 @@ public class SysUserServiceImpl extends BaseServiceImpl<Long, SysUser> implement
         sysUserDao.logoffById(id, maxVersion);
     }
 
+    @Override
+    public void updateLockStatus(Long userId, Integer lockFlag, String sysUserType) {
+        sysUserDao.updateLockStatus(userId, lockFlag, sysUserType);
+    }
 }

+ 1 - 1
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/web/controller/TokenController.java

@@ -284,7 +284,7 @@ public class TokenController extends BaseController {
         url += "&qrCode=" + code;
         url += "&loginUserType=" + authUser.getClientId().toUpperCase();
 
-        HttpEntity<MultiValueMap<String, String>> entity = new HttpEntity<>(headers);
+        HttpEntity<LinkedMultiValueMap<String, String>> entity = new HttpEntity<>(headers);
 
         ResponseEntity<String> resp = restTemplate.exchange(url, HttpMethod.POST, entity, String.class);
 

+ 34 - 20
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/web/controller/UserController.java

@@ -1,23 +1,16 @@
 package com.yonge.cooleshow.auth.web.controller;
 
-import com.yonge.cooleshow.common.constant.SysConfigConstant;
-import com.yonge.cooleshow.common.enums.SysUserType;
-import com.yonge.toolset.base.util.StringUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 
-import java.time.Duration;
-import java.time.LocalDateTime;
-import java.time.ZoneId;
 import java.util.Date;
 import java.util.List;
 
 import javax.validation.Valid;
 
 import org.apache.commons.lang3.StringUtils;
-import org.joda.time.LocalDate;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.HttpStatus;
@@ -47,13 +40,17 @@ import com.yonge.cooleshow.auth.service.SysUserRoleService;
 import com.yonge.cooleshow.auth.service.SysUserService;
 import com.yonge.cooleshow.auth.web.controller.queryInfo.RoleQueryInfo;
 import com.yonge.cooleshow.common.constant.CommonConstants;
+import com.yonge.cooleshow.common.constant.SysConfigConstant;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
-import com.yonge.toolset.base.exception.BizException;
+import com.yonge.cooleshow.common.enums.SysUserType;
+import com.yonge.cooleshow.common.enums.UserStatusEnum;
 import com.yonge.cooleshow.common.security.AuthUser;
 import com.yonge.cooleshow.common.security.SecurityConstants;
 import com.yonge.cooleshow.common.security.SecurityUtils;
 import com.yonge.cooleshow.common.service.IdGeneratorService;
+import com.yonge.toolset.base.exception.BizException;
+import com.yonge.toolset.base.util.StringUtil;
 import com.yonge.toolset.thirdparty.user.realname.RealnameAuthenticationPlugin;
 import com.yonge.toolset.utils.date.DateUtil;
 import com.yonge.toolset.utils.idcard.IdcardInfoExtractor;
@@ -192,7 +189,7 @@ public class UserController extends BaseController {
                 sysUser.setRealName(username);
             }
             sysUser.setUsername(username);
-            if(SysUserType.TEACHER.getCode().equals(authUser.getClientId().toUpperCase())){
+            if (SysUserType.TEACHER.getCode().equals(authUser.getClientId().toUpperCase())) {
                 sysUser.setLastUsernameTime(new Date());
             }
         }
@@ -247,6 +244,18 @@ public class UserController extends BaseController {
         }
     }
 
+    private void loginOut(SysUser sysUser, SysUserType sysUserType) {
+        if (SysUserType.STUDENT.equals(sysUserType)) {
+            tokenService.revokeToken("student", sysUser.getPhone());
+        }
+        if (SysUserType.TEACHER.equals(sysUserType)) {
+            tokenService.revokeToken("teacher", sysUser.getPhone());
+        }
+        if (SysUserType.SYSTEM.equals(sysUserType)) {
+            tokenService.revokeToken("system", sysUser.getPhone());
+        }
+    }
+
     @ApiOperation(value = "原密码修改密码")
     @PostMapping(value = "/updatePasswordByOldPassword")
     public Object updatePasswordByOldPassword(@RequestBody UpdatePasswordDto updatePasswordDto) {
@@ -320,14 +329,16 @@ public class UserController extends BaseController {
     /**
      * 启用/冻结
      */
-    @GetMapping(value = "/changeLock/{userId}/{lockFlag}")
+    @GetMapping(value = "/changeLock/{userId}/{userStatus}/{userType}")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "userId", value = "userId", paramType = "path", dataType = "long", required = true),
-            @ApiImplicitParam(name = "lockFlag", value = "锁定状态 0-正常,1-锁定", paramType = "path", dataType = "int", required = true)
+            @ApiImplicitParam(name = "lockFlag", value = "锁定状态 0-正常, 1-锁定", paramType = "path", dataType = "int", required = true),
+            @ApiImplicitParam(name = "userType", value = "用户类型 STUDENT 学生 TEACHER 老师 SYSTEM 员工", paramType = "path", dataType = "String", required = true)
     })
     @ApiOperation(value = "启用/冻结", notes = "传入lockFlag")
-    public HttpResponseResult<Boolean> changeLock(@PathVariable("userId") Long userId, @PathVariable("lockFlag") Integer lockFlag) {
-        if (userId == null && lockFlag != 0 && lockFlag != 1) {
+    public HttpResponseResult<Boolean> changeLock(@PathVariable("userId") Long userId
+            , @PathVariable("userStatus") String userStatus, @PathVariable("userType") SysUserType sysUserType) {
+        if (userId == null || StringUtils.isBlank(userStatus) || sysUserType == null) {
             return failed("参数校验异常");
         }
         SysUser sysUser = sysUserService.queryUserInfo(userId);
@@ -337,13 +348,16 @@ public class UserController extends BaseController {
         if (sysUser.getId() != userId.longValue()) {
             return failed("非法操作");
         }
-        sysUser.setLockFlag(lockFlag);
-
-        if (lockFlag == 1) {
-            loginOut(sysUser);
+        UserStatusEnum userStatusEnum = UserStatusEnum.codeOf(userStatus);
+        //退出对应用户
+        if (UserStatusEnum.NORMAL != userStatusEnum) {
+            loginOut(sysUser, sysUserType);
         }
-        sysUser.setUpdateTime(new Date());
-        sysUserService.update(sysUser);
+        //sysUser.setLockFlag(lockFlag.getCode());
+        //sysUser.setUpdateTime(new Date());
+        //sysUserService.update(sysUser);
+        Integer lockFlag = userStatusEnum == UserStatusEnum.NORMAL ? 0 : 1;
+        sysUserService.updateLockStatus(userId, lockFlag, sysUserType.getCode());
         return succeed();
     }
 
@@ -599,7 +613,7 @@ public class UserController extends BaseController {
             if (null != user.getLastUsernameTime()
                     && StringUtils.isNotEmpty(configValue)) {
                 Long lastUsernameMonth = Long.parseLong(configValue);
-                Long monthDiff = DateUtil.getMonthDiff(user.getLastUsernameTime(),new Date());
+                Long monthDiff = DateUtil.getMonthDiff(user.getLastUsernameTime(), new Date());
 
                 if (monthDiff < lastUsernameMonth && lastUsernameMonth > 0) {
                     throw new BizException("每隔" + lastUsernameMonth + "个月可修改一次");

+ 12 - 0
cooleshow-auth/auth-server/src/main/resources/config/mybatis/SysUserMapper.xml

@@ -304,4 +304,16 @@
           and status_ in ('NOT_START','ING')
     </select>
 
+    <update id="updateLockStatus">
+        <if test="sysUserType == 'STUDENT'">
+            update student set lock_flag_ = #{lockFlag} where user_id_ = #{userId}
+        </if>
+        <if test="sysUserType == 'TEACHER'">
+            update teacher set lock_flag_ = #{lockFlag} where user_id_ = #{userId}
+        </if>
+        <if test="sysUserType == 'SYSTEM'">
+            update employee set lock_flag_ = #{lockFlag} where user_id_ = #{userId}
+        </if>
+    </update>
+
 </mapper>

+ 9 - 6
cooleshow-bbs/pom.xml

@@ -57,7 +57,10 @@
             <groupId>com.yonge.cooleshow</groupId>
             <artifactId>cooleshow-common</artifactId>
         </dependency>
-
+        <dependency>
+            <groupId>com.vdurmont</groupId>
+            <artifactId>emoji-java</artifactId>
+        </dependency>
         <dependency>
             <groupId>com.yonge.toolset</groupId>
             <artifactId>thirdparty-component</artifactId>
@@ -69,11 +72,11 @@
             <version>${project.version}</version>
         </dependency>
 
-        <dependency>
-            <groupId>com.yonge.toolset</groupId>
-            <artifactId>toolset-emoji</artifactId>
-            <version>1.0</version>
-        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>com.yonge.toolset</groupId>-->
+<!--            <artifactId>toolset-emoji</artifactId>-->
+<!--            <version>1.0</version>-->
+<!--        </dependency>-->
 
         <!-- mybatis-plus -->
         <dependency>

+ 7 - 3
cooleshow-cms/pom.xml

@@ -72,10 +72,14 @@
             <groupId>com.yonge.toolset</groupId>
             <artifactId>utils</artifactId>
         </dependency>
+<!--        <dependency>-->
+<!--            <groupId>com.yonge.toolset</groupId>-->
+<!--            <artifactId>toolset-emoji</artifactId>-->
+<!--            <version>1.0</version>-->
+<!--        </dependency>-->
         <dependency>
-            <groupId>com.yonge.toolset</groupId>
-            <artifactId>toolset-emoji</artifactId>
-            <version>1.0</version>
+            <groupId>com.vdurmont</groupId>
+            <artifactId>emoji-java</artifactId>
         </dependency>
         <dependency>
             <groupId>com.yonge.toolset</groupId>

+ 35 - 0
cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/ActivityResourceEnum.java

@@ -0,0 +1,35 @@
+package com.yonge.cooleshow.common.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.yonge.toolset.base.enums.BaseEnum;
+
+/**
+ * 活动资源类型
+ *
+ * @Author: liweifan
+ * @Data: 2022/4/7 15:48
+ */
+public enum ActivityResourceEnum implements BaseEnum<String, ActivityResourceEnum> {
+
+    MUSIC_SHEET("曲谱"),
+    TEACHER("老师"),
+    ;
+
+    @EnumValue
+    private String code;
+    private String msg;
+
+    ActivityResourceEnum(String msg) {
+        this.code = this.name();
+        this.msg = msg;
+    }
+
+    @Override
+    public String getCode() {
+        return this.code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+}

+ 39 - 0
cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/ActivityShareEnum.java

@@ -0,0 +1,39 @@
+package com.yonge.cooleshow.common.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.yonge.toolset.base.enums.BaseEnum;
+
+/**
+ * 活动分类类型
+ *
+ * @Author: liweifan
+ * @Data: 2022/4/7 15:48
+ */
+public enum ActivityShareEnum implements BaseEnum<String, ActivityShareEnum> {
+
+    MUSIC_SHEET("曲谱"),
+    MUSIC("音乐"),
+    VIP("会员"),
+    VIDEO("视频"),
+    LIVE("直播"),
+    GOODS("商品"),
+    ;
+
+    @EnumValue
+    private String code;
+    private String msg;
+
+    ActivityShareEnum(String msg) {
+        this.code = this.name();
+        this.msg = msg;
+    }
+
+    @Override
+    public String getCode() {
+        return this.code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+}

+ 1 - 0
cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/ActivityTypeEnum.java

@@ -13,6 +13,7 @@ public enum ActivityTypeEnum implements BaseEnum<String, ActivityTypeEnum> {
 
     EVALUATION("评测活动"),
     STANDARD_GIFT("达标赠送"),
+    SHARE("活动分享"),
     ;
 
     @EnumValue

+ 69 - 0
cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/EStatus.java

@@ -0,0 +1,69 @@
+package com.yonge.cooleshow.common.enums;
+
+import lombok.Getter;
+
+import java.util.Optional;
+
+/**
+ * @author: James
+ * @date: 2018/8/20 上午11:29
+ * @description:
+ */
+@Getter
+public enum EStatus {
+
+    DELETE(-1, "删除"),
+    DISABLE(0, "禁用"),
+    ENABLE(1, "启用"),
+    SELECTED(2, "选择");
+
+    private final int value;
+    private final String name;
+
+    EStatus(Integer value, String name) {
+        this.value = value;
+        this.name = name;
+    }
+
+    /**
+     * 校验参数合法性
+     * @param value 数据状态
+     * @return boolean
+     */
+    public static boolean invalid(Integer value) {
+        if (value != null) {
+            EStatus[] values = EStatus.values();
+            for (EStatus item : values) {
+                if (item.getValue() == value) {
+                    return false;
+                }
+            }
+        }
+        return true;
+    }
+
+    /**
+     * 数据状态
+     * @param value 状态值
+     * @return EStatus
+     */
+    public static EStatus get(int value) {
+        EStatus[] values = EStatus.values();
+        for (EStatus item : values) {
+            if (item.getValue() == value) {
+                return item;
+            }
+        }
+        return ENABLE;
+    }
+
+    /**
+     * 状态匹配
+     * @param dataType 匹配类型
+     * @return boolean
+     */
+    public boolean match(Integer dataType) {
+        return getValue() == Optional.ofNullable(dataType).orElse(-99);
+    }
+
+}

+ 6 - 0
cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/UnitEnum.java

@@ -16,6 +16,12 @@ public enum UnitEnum implements BaseEnum<String, UnitEnum> {
     YEAR("年"),
     MINUTE("分钟数"),
     PCS("个"),
+
+//    DAY("日"),
+//    MONTH("月"),
+//    YEAR("年"),
+    QUARTERLY("季度"),
+    YEAR_HALF("半年"),
     ;
 
     @EnumValue

+ 2 - 2
cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/UserLockFlag.java

@@ -4,11 +4,11 @@ import com.baomidou.mybatisplus.annotation.EnumValue;
 import com.yonge.toolset.base.enums.BaseEnum;
 
 /**
- * 会员状态枚举类
+ * 用户状态枚举类
  */
 public enum UserLockFlag implements BaseEnum<Integer, UserLockFlag> {
 
-	NORMAL(0, "正常"), LOCKED(9, "锁定"), CANCELLED(1, "冻结");
+	NORMAL(0, "正常"), LOCKED(1, "锁定");
 
 	@EnumValue
 	private int code;

+ 39 - 0
cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/UserStatusEnum.java

@@ -0,0 +1,39 @@
+package com.yonge.cooleshow.common.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.yonge.toolset.base.enums.BaseEnum;
+
+public enum UserStatusEnum implements BaseEnum<String, UserStatusEnum> {
+
+	NORMAL("正常"),
+	LOCKED("冻结"),
+    CLOSED("注销"),
+    ;
+
+    @EnumValue
+    private String code;
+    private String msg;
+
+    UserStatusEnum(String msg) {
+        this.code = this.name();
+        this.msg = msg;
+    }
+
+    @Override
+    public String getCode() {
+        return this.code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+	public static UserStatusEnum codeOf(String code) {
+		for (UserStatusEnum userStatus : UserStatusEnum.values()) {
+			if (code.equals(userStatus.getCode())) {
+				return userStatus;
+			}
+		}
+		return null;
+	}
+}

+ 9 - 6
cooleshow-mall/mall-admin/pom.xml

@@ -33,7 +33,10 @@
             <artifactId>thirdparty-component</artifactId>
             <version>1.0</version>
         </dependency>
-
+        <dependency>
+            <groupId>com.vdurmont</groupId>
+            <artifactId>emoji-java</artifactId>
+        </dependency>
         <dependency>
             <groupId>com.yonge.cooleshow</groupId>
             <artifactId>mall-mbg</artifactId>
@@ -77,11 +80,11 @@
             <version>${project.toolset.version}</version>
         </dependency>
 
-        <dependency>
-            <groupId>com.yonge.toolset</groupId>
-            <artifactId>toolset-emoji</artifactId>
-            <version>1.0</version>
-        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>com.yonge.toolset</groupId>-->
+<!--            <artifactId>toolset-emoji</artifactId>-->
+<!--            <version>1.0</version>-->
+<!--        </dependency>-->
 
         <dependency>
             <groupId>com.yonge.cooleshow</groupId>

+ 1 - 1
cooleshow-mall/mall-admin/src/main/resources/logback-spring.xml

@@ -27,7 +27,7 @@
 		</encoder>
 	</appender>
 
-	<logger name="com.yonge.cooleshow" level="debug" />
+	<logger name="com.yonge" level="info" />
 
 	<!--本地环境:打印控制台 -->
 	<springProfile name="local">

+ 7 - 8
cooleshow-mall/mall-portal/pom.xml

@@ -74,10 +74,14 @@
             <version>20.0</version>
             <scope>compile</scope>
         </dependency>
+<!--        <dependency>-->
+<!--            <groupId>com.yonge.toolset</groupId>-->
+<!--            <artifactId>toolset-emoji</artifactId>-->
+<!--            <version>1.0</version>-->
+<!--        </dependency>-->
         <dependency>
-            <groupId>com.yonge.toolset</groupId>
-            <artifactId>toolset-emoji</artifactId>
-            <version>1.0</version>
+            <groupId>com.vdurmont</groupId>
+            <artifactId>emoji-java</artifactId>
         </dependency>
         <dependency>
             <groupId>com.yonge.toolset</groupId>
@@ -85,11 +89,6 @@
             <version>1.0</version>
         </dependency>
         <dependency>
-            <groupId>com.yonge.cooleshow</groupId>
-            <artifactId>cooleshow-api</artifactId>
-            <version>1.0</version>
-        </dependency>
-        <dependency>
             <groupId>com.yonge.toolset</groupId>
             <artifactId>toolset-payment</artifactId>
             <version>${project.toolset.version}</version>

+ 1 - 1
cooleshow-mall/mall-portal/src/main/resources/logback-spring.xml

@@ -27,7 +27,7 @@
 		</encoder>
 	</appender>
 
-	<logger name="com.yonge.cooleshow" level="debug" />
+	<logger name="com.yonge" level="info" />
 
 	<!--本地环境:打印控制台 -->
 	<springProfile name="local">

+ 1 - 1
cooleshow-task/src/main/resources/logback-spring.xml

@@ -27,7 +27,7 @@
 		</encoder>
 	</appender>
 
-	<logger name="com.yonge.cooleshow" level="debug" />
+	<logger name="com.yonge" level="info" />
 
 	<!--本地环境:打印控制台 -->
 	<springProfile name="local">

+ 43 - 10
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/ActivityEvaluationController.java

@@ -1,33 +1,41 @@
 package com.yonge.cooleshow.admin.controller;
 
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yonge.cooleshow.admin.io.request.ActivityTeacherVO;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.ActivityEvaluationDto;
+import com.yonge.cooleshow.biz.dal.dto.activity.ActivityTeacherQuery;
+import com.yonge.cooleshow.biz.dal.dto.search.ActivityEvaluationSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.MusicSheetSearch;
 import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
+import com.yonge.cooleshow.biz.dal.service.ActivityEvaluationService;
+import com.yonge.cooleshow.biz.dal.vo.ActivityEvaluationVo;
 import com.yonge.cooleshow.biz.dal.vo.MusicSheetVo;
+import com.yonge.cooleshow.biz.dal.vo.activity.ActivityTeacherWrapper;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import com.yonge.toolset.base.page.PageInfo;
-import com.yonge.toolset.mybatis.support.PageUtil;
-
 import com.yonge.toolset.base.util.StringUtil;
-import io.swagger.annotations.*;
+import com.yonge.toolset.mybatis.support.PageUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
 import javax.validation.Valid;
-
-import com.yonge.cooleshow.biz.dal.vo.ActivityEvaluationVo;
-import com.yonge.cooleshow.biz.dal.dto.search.ActivityEvaluationSearch;
-import com.yonge.cooleshow.biz.dal.service.ActivityEvaluationService;
-
 import java.util.List;
+import java.util.Objects;
 
 @RestController
 @RequestMapping("/activityEvaluation")
@@ -38,6 +46,7 @@ public class ActivityEvaluationController extends BaseController {
     private ActivityEvaluationService activityEvaluationService;
 	@Resource
 	private SysUserFeignService sysUserFeignService;
+
     /**
      * 查询分页
      */
@@ -102,4 +111,28 @@ public class ActivityEvaluationController extends BaseController {
 		return succeed(PageUtil.pageInfo(musicSheetVoIPage));
 	}
 
+	/**
+	 * 分享活动老师信息
+	 * @param request ActivityTeacherInfoRequest
+	 * @return HttpResponseResult<PageInfo<ActivityTeacherResponse>>
+	 */
+	@ApiOperation(value = "分页查询活动老师信息", httpMethod="POST", consumes="application/json", produces="application/json")
+	@PostMapping(value="/teachers", consumes="application/json", produces="application/json")
+	public HttpResponseResult<PageInfo<ActivityTeacherVO.ResponseInfo>> activityTeacherPageInfo(@RequestBody ActivityTeacherVO.RequestInfo request) {
+
+		if(Objects.isNull(request.getActivityId())){
+			return failed("活动id不能为空");
+		}
+
+		// 老师信息
+		IPage<ActivityTeacherWrapper> wrapper = activityEvaluationService.activityTeacherPageInfo(PageUtil.getPage(request),
+				ActivityTeacherQuery.from(request.jsonString()));
+
+		// 数据转换
+		List<ActivityTeacherVO.ResponseInfo> responses = JSON.parseArray(JSON.toJSONString(wrapper.getRecords()),
+				ActivityTeacherVO.ResponseInfo.class);
+
+		// 分页数据信息
+		return succeed(PageUtil.getPageInfo(wrapper, responses));
+	}
 }

+ 11 - 5
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/ActivityPlanController.java

@@ -4,9 +4,11 @@ import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.ActivityPlanDto;
 import com.yonge.cooleshow.biz.dal.dto.ActivityPlanRewardDto;
+import com.yonge.cooleshow.biz.dal.dto.SaveOrUpdateRewardDto;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yonge.cooleshow.common.enums.ActivityTypeEnum;
 import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.base.page.PageInfo;
 import com.yonge.toolset.mybatis.support.PageUtil;
@@ -73,6 +75,13 @@ public class ActivityPlanController extends BaseController {
             return failed(HttpStatus.FORBIDDEN, "请登录");
         }
         activityPlan.setUserId(user.getId());
+
+        // 分享活动奖品校验
+        if (ActivityTypeEnum.SHARE == activityPlan.getActivityType()
+                && CollectionUtils.isEmpty(activityPlan.getRewardItems())) {
+            return failed("分享活动奖品信息为空");
+        }
+
         try {
             return HttpResponseResult.succeed(activityPlanService.submit(activityPlan));
         } catch (BizException e) {
@@ -121,17 +130,14 @@ public class ActivityPlanController extends BaseController {
     @PostMapping("/saveOrUpdateReward")
     @ApiOperation(value = "修改奖品")
     @PreAuthorize("@pcs.hasPermissions('activityPlan/saveOrUpdateReward')")
-    public HttpResponseResult saveOrUpdateReward(@Validated @RequestBody List<ActivityPlanRewardDto> updateRewardDtoList) {
+    public HttpResponseResult saveOrUpdateReward(@Validated @RequestBody SaveOrUpdateRewardDto saveOrUpdateRewardDto) {
         SysUser user = sysUserFeignService.queryUserInfo();
         if (user == null || null == user.getId()) {
             return failed(HttpStatus.FORBIDDEN, "请登录");
         }
 
-        if (CollectionUtils.isEmpty(updateRewardDtoList)) {
-            return failed("参数异常");
-        }
         try {
-            return HttpResponseResult.succeed(activityPlanService.saveOrUpdateReward(updateRewardDtoList));
+            return HttpResponseResult.succeed(activityPlanService.saveOrUpdateReward(saveOrUpdateRewardDto));
         } catch (BizException e) {
             return HttpResponseResult.failed(e.getMessage());
         } catch (Exception e) {

+ 41 - 2
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/EmployeeController.java

@@ -9,15 +9,22 @@ import com.yonge.cooleshow.biz.dal.dto.search.EmployeeSearch;
 import com.yonge.cooleshow.biz.dal.enums.GenderEnum;
 import com.yonge.toolset.mybatis.support.PageUtil;
 import com.yonge.cooleshow.biz.dal.vo.EmployeeVo;
+import com.yonge.cooleshow.biz.dal.vo.StudentVo;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.cooleshow.common.enums.UserLockFlag;
+import com.yonge.cooleshow.common.enums.UserStatusEnum;
+import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import com.yonge.toolset.base.page.PageInfo;
+
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 
 import java.util.Date;
+import java.util.List;
 
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -27,6 +34,7 @@ import com.yonge.cooleshow.biz.dal.entity.Employee;
 import com.yonge.cooleshow.biz.dal.service.EmployeeService;
 import com.yonge.cooleshow.common.controller.BaseController;
 
+import javax.annotation.Resource;
 import javax.validation.Valid;
 
 @RequestMapping("employee")
@@ -35,9 +43,9 @@ import javax.validation.Valid;
 public class EmployeeController extends BaseController {
     @Autowired
     private EmployeeService employeeService;
-    @Autowired
+    @Resource
     private SysUserFeignService sysUserFeignService;
-    @Autowired
+    @Resource
     private EmployeeDao employeeDao;
 
     @GetMapping("/detail/{id}")
@@ -59,7 +67,37 @@ public class EmployeeController extends BaseController {
     @PreAuthorize("@pcs.hasPermissions('employee/page')")
     public HttpResponseResult<PageInfo<EmployeeVo>> page(@RequestBody EmployeeSearch query) {
         query.setSort("id_");
+    	
+    	if(StringUtils.isNotBlank(query.getUserStatus())){
+    		switch (query.getUserStatus()) {
+			case "LOCKED":
+				query.setDelFlag(YesOrNoEnum.NO);
+				query.setLockFlag(UserLockFlag.LOCKED);
+				break;
+			case "CLOSED":
+				query.setDelFlag(YesOrNoEnum.YES);
+				break;
+
+			default:
+				query.setDelFlag(YesOrNoEnum.NO);
+				query.setLockFlag(UserLockFlag.NORMAL);
+				break;
+			}
+    	}
         IPage<EmployeeVo> pages = employeeService.selectPage(PageUtil.getPage(query), query);
+		List<EmployeeVo> rows = pages.getRecords();
+		
+		for(EmployeeVo vo : rows){
+			if(vo.getDelFlag() == YesOrNoEnum.YES){
+				vo.setUserStatus(UserStatusEnum.CLOSED);
+			}else{
+				if(vo.getLockFlag() == UserLockFlag.LOCKED){
+					vo.setUserStatus(UserStatusEnum.LOCKED);
+				}else{
+					vo.setUserStatus(UserStatusEnum.NORMAL);
+				}
+			}
+		}
         return succeed(PageUtil.pageInfo(pages));
     }
 
@@ -97,4 +135,5 @@ public class EmployeeController extends BaseController {
         }
         return failed("获取用户信息失败");
     }
+
 }

+ 66 - 17
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/MusicSheetController.java

@@ -1,5 +1,26 @@
 package com.yonge.cooleshow.admin.controller;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.validation.Valid;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
@@ -12,33 +33,29 @@ import com.yonge.cooleshow.biz.dal.dto.search.StudentMusicSheetOrderSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.TeacherMusicSheetAuditSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.TeacherMusicSheetSearch;
 import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
-import com.yonge.cooleshow.biz.dal.enums.*;
+import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
+import com.yonge.cooleshow.biz.dal.enums.ChargeTypeEnum;
+import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
+import com.yonge.cooleshow.biz.dal.enums.SourceTypeEnum;
 import com.yonge.cooleshow.biz.dal.service.MusicSheetService;
 import com.yonge.cooleshow.biz.dal.service.MusicTagService;
-import com.yonge.cooleshow.common.enums.YesOrNoEnum;
-import com.yonge.toolset.mybatis.support.PageUtil;
-import com.yonge.cooleshow.biz.dal.vo.*;
+import com.yonge.cooleshow.biz.dal.vo.MusicSheetDetailVo;
+import com.yonge.cooleshow.biz.dal.vo.MusicSheetStudentByMessage;
+import com.yonge.cooleshow.biz.dal.vo.MusicSheetVo;
+import com.yonge.cooleshow.biz.dal.vo.StudentMusicSheetOrderVo;
+import com.yonge.cooleshow.biz.dal.vo.TeacherMusicSheetVo;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.enums.BizHttpStatus;
+import com.yonge.cooleshow.common.enums.YesOrNoEnum;
+import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.base.page.PageInfo;
 import com.yonge.toolset.base.util.StringUtil;
+import com.yonge.toolset.mybatis.support.PageUtil;
 import com.yonge.toolset.utils.easyexcel.ErrMsg;
 import com.yonge.toolset.utils.easyexcel.ExcelDataReader;
 import com.yonge.toolset.utils.easyexcel.ExcelException;
 import com.yonge.toolset.utils.easyexcel.ExcelUtils;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.validation.Valid;
-import java.util.Date;
-import java.util.List;
 
 /**
  * 曲谱表 web 控制层
@@ -101,6 +118,10 @@ public class MusicSheetController extends BaseController {
             return failed("每个一级标签只能选一个二级标签");
         }
 
+        if (StringUtil.isEmpty(musicSheetDto.getMusicImg())) {
+            throw new BizException("曲目渲染失败");
+        }
+
         musicSheetDto.setUserId(sysUser.getId());
         musicSheetDto.setAuditStatus(AuthStatusEnum.PASS);
         musicSheetDto.setDelFlag(false);
@@ -151,6 +172,10 @@ public class MusicSheetController extends BaseController {
             musicSheet.setNotation(YesOrNoEnum.NO);
         }
 
+        if (StringUtil.isEmpty(musicSheet.getMusicImg())) {
+            throw new BizException("曲目渲染失败");
+        }
+
         musicSheet.setUpdateBy(sysUser.getId());
         musicSheet.setAuditStatus(AuthStatusEnum.PASS);
         musicSheet.setUpdateTime(new Date());
@@ -193,7 +218,7 @@ public class MusicSheetController extends BaseController {
                 musicSheet.getSourceType().equals(SourceTypeEnum.TEACHER) && StringUtil.isEmpty(reasonDto.getReason())) {
             return failed("请填写下架原因");
         }
-        return status(musicSheetService.state(id,reasonDto.getReason()));
+        return status(musicSheetService.state(id,reasonDto.getReason(),ClientEnum.SYSTEM));
     }
 
 
@@ -263,6 +288,30 @@ public class MusicSheetController extends BaseController {
     }
 
 
+    /**
+     * 审核中心-乐谱审核
+     */
+    @GetMapping(value = "/auditDetail/{authMusicSheetId}")
+    @ApiOperation(value = "审核中心-乐谱审核详情",  notes = "传入曲目审核id")
+    public HttpResponseResult<MusicSheetDetailVo> auditDetail(@PathVariable Long authMusicSheetId) {
+
+        return succeed(musicSheetService.auditDetail(authMusicSheetId));
+    }
+
+
+
+    /**
+     * 审核中心-乐谱审核记录列表
+     */
+    @GetMapping(value = "/auditDetailList/{authMusicSheetId}")
+    @ApiOperation(value = "审核中心-乐谱审核详情历史记录",  notes = "传入曲目审核id")
+    public HttpResponseResult<List<MusicSheetDetailVo>> auditDetailList(@PathVariable Long authMusicSheetId) {
+
+        return succeed(musicSheetService.auditDetailList(authMusicSheetId));
+    }
+
+
+
 
 
     @PostMapping(value = "/buySendMessage", consumes="application/json", produces="application/json")

+ 126 - 16
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/StudentController.java

@@ -1,32 +1,51 @@
 package com.yonge.cooleshow.admin.controller;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+
 import java.io.IOException;
 import java.io.OutputStream;
 import java.util.Date;
 import java.util.List;
 
 import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.dto.VipSubmitReq;
 import com.yonge.cooleshow.biz.dal.dto.search.StudentSearch;
-import com.yonge.cooleshow.biz.dal.dto.search.TeacherSearch;
+import com.yonge.cooleshow.biz.dal.dto.search.VipRecordSearch;
+import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
+import com.yonge.cooleshow.biz.dal.service.MemberPriceSettingsService;
 import com.yonge.cooleshow.biz.dal.service.StudentService;
-import com.yonge.toolset.mybatis.support.PageUtil;
-import com.yonge.toolset.utils.date.DateUtil;
-import com.yonge.toolset.utils.excel.POIUtil;
+import com.yonge.cooleshow.biz.dal.service.VipCardRecordService;
 import com.yonge.cooleshow.biz.dal.vo.StudentVo;
-import com.yonge.cooleshow.biz.dal.vo.TeacherVo;
+import com.yonge.cooleshow.biz.dal.vo.VipRecordVo;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.cooleshow.common.enums.UserLockFlag;
+import com.yonge.cooleshow.common.enums.UserStatusEnum;
+import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.base.page.PageInfo;
-
-import io.swagger.annotations.*;
-
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
+import com.yonge.toolset.mybatis.support.PageUtil;
+import com.yonge.toolset.utils.date.DateUtil;
+import com.yonge.toolset.utils.excel.POIUtil;
 
 @RestController
 @RequestMapping("/student")
@@ -35,6 +54,17 @@ public class StudentController extends BaseController {
     @Autowired
     private StudentService studentService;
 
+
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+
+    @Autowired
+    private MemberPriceSettingsService memberPriceSettingsService;
+
+    @Autowired
+    private VipCardRecordService vipCardRecordService;
+
+
     @GetMapping("/detail/{id}")
     @ApiOperation(value = "详情", notes = "传入id")
     @ApiImplicitParams({
@@ -50,7 +80,38 @@ public class StudentController extends BaseController {
     @ApiOperation(value = "查询分页", notes = "传入StudentSearch")
     @PreAuthorize("@pcs.hasPermissions('student/page')")
     public HttpResponseResult<PageInfo<StudentVo>> page(@RequestBody StudentSearch query) {
+    	
+    	if(StringUtils.isNotBlank(query.getUserStatus())){
+    		switch (query.getUserStatus()) {
+			case "LOCKED":
+				query.setDelFlag(YesOrNoEnum.NO);
+				query.setLockFlag(UserLockFlag.LOCKED);
+				break;
+			case "CLOSED":
+				query.setDelFlag(YesOrNoEnum.YES);
+				break;
+
+			default:
+				query.setDelFlag(YesOrNoEnum.NO);
+				query.setLockFlag(UserLockFlag.NORMAL);
+				break;
+			}
+    	}
+    	
 		IPage<StudentVo> pages = studentService.selectPage(PageUtil.getPage(query), query);
+		List<StudentVo> rows = pages.getRecords();
+		
+		for(StudentVo vo : rows){
+			if(vo.getDelFlag() == YesOrNoEnum.YES){
+				vo.setUserStatus(UserStatusEnum.CLOSED);
+			}else{
+				if(vo.getLockFlag() == UserLockFlag.LOCKED){
+					vo.setUserStatus(UserStatusEnum.LOCKED);
+				}else{
+					vo.setUserStatus(UserStatusEnum.NORMAL);
+				}
+			}
+		}
         return succeed(PageUtil.pageInfo(pages));
 	}
 
@@ -60,16 +121,45 @@ public class StudentController extends BaseController {
     public void export(HttpServletResponse response, @RequestBody StudentSearch queryInfo) throws IOException {
         queryInfo.setPage(1);
         queryInfo.setRows(49999);
+    	
+    	if(StringUtils.isNotBlank(queryInfo.getUserStatus())){
+    		switch (queryInfo.getUserStatus()) {
+			case "LOCKED":
+				queryInfo.setDelFlag(YesOrNoEnum.NO);
+				queryInfo.setLockFlag(UserLockFlag.LOCKED);
+				break;
+			case "CLOSED":
+				queryInfo.setDelFlag(YesOrNoEnum.YES);
+				break;
+
+			default:
+				queryInfo.setDelFlag(YesOrNoEnum.NO);
+				queryInfo.setLockFlag(UserLockFlag.NORMAL);
+				break;
+			}
+    	}
         List<StudentVo> rows = studentService.selectPage(PageUtil.getPage(queryInfo), queryInfo).getRecords();
         if (rows.size() < 1) {
             throw new BizException("没有可导出数据");
         }
+		
+		for(StudentVo vo : rows){
+			if(vo.getDelFlag() == YesOrNoEnum.YES){
+				vo.setUserStatus(UserStatusEnum.CLOSED);
+			}else{
+				if(vo.getLockFlag() == UserLockFlag.LOCKED){
+					vo.setUserStatus(UserStatusEnum.LOCKED);
+				}else{
+					vo.setUserStatus(UserStatusEnum.NORMAL);
+				}
+			}
+		}
         OutputStream outputStream = response.getOutputStream();
         try {
-            HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"学生编号", "学生姓名", "性别", "出生日期",
-                    "年龄", "专业", "手机号码", "是否是会员", "注册时间"}, new String[]{
-                    "userId", "realName", "gender.msg", "birthdate", "age", "subjectName", "phone",
-                    "isVip.msg", "createTime"}, rows);
+            HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"学生编号", "学生姓名", "真实姓名", "性别", "出生日期",
+                    "年龄", "专业", "手机号码", "是否是会员", "注册时间","用户状态"}, new String[]{
+                    "userId","username" , "realName", "gender.msg", "birthdate", "age", "subjectName", "phone",
+                    "isVip.msg", "createTime", "userStatus.msg"}, rows);
             response.setContentType("application/octet-stream");
             response.setHeader("Content-Disposition", "attac:wq" +
                     "hment;filename=学生列表-" + DateUtil.getDate(new Date()) + ".xls");
@@ -90,4 +180,24 @@ public class StudentController extends BaseController {
         }
     }
 
+    @PostMapping("/addVip")
+    @ApiOperation(value = "添加会员")
+    @PreAuthorize("@pcs.hasPermissions('student/addVip')")
+    public HttpResponseResult<Boolean> addVip(@Valid @RequestBody VipSubmitReq vipSubmitReq) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null  || sysUser.getId() == null) {
+            return failed("用户信息获取失败");
+        }
+        return succeed(memberPriceSettingsService.addVip(vipSubmitReq, ClientEnum.STUDENT, sysUser));
+    }
+
+
+    @PostMapping("/vipRecord")
+    @ApiOperation(value = "会员记录")
+    @PreAuthorize("@pcs.hasPermissions('student/vipRecord')")
+    public HttpResponseResult<PageInfo<VipRecordVo>> vipRecord(@Valid @RequestBody VipRecordSearch recordSearch) {
+
+        recordSearch.setClient(ClientEnum.STUDENT);
+        return succeed(vipCardRecordService.vipRecord(recordSearch));
+    }
 }

+ 10 - 1
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/TeacherAuthEntryRecordController.java

@@ -17,6 +17,7 @@ import org.springframework.http.HttpStatus;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import javax.validation.Valid;
 
 @RestController
@@ -25,7 +26,7 @@ import javax.validation.Valid;
 public class TeacherAuthEntryRecordController extends BaseController {
     @Autowired
     private TeacherAuthEntryRecordService teacherAuthEntryRecordService;
-    @Autowired
+    @Resource
     private SysUserFeignService sysUserFeignService;
 
     @GetMapping("/detail/{id}")
@@ -47,6 +48,14 @@ public class TeacherAuthEntryRecordController extends BaseController {
         return succeed(PageUtil.pageInfo(pages));
     }
 
+    @PostMapping("/historyPage")
+    @ApiOperation(value = "查询分页", notes = "传入AuthEntryRecordSearch")
+    @PreAuthorize("@pcs.hasPermissions('teacherAuthEntryRecord/page')")
+    public HttpResponseResult<PageInfo<TeacherAuthEntryRecordVo>> historyPage(@RequestBody AuthEntryRecordSearch search) {
+        IPage<TeacherAuthEntryRecordVo> pages = teacherAuthEntryRecordService.historyPage(PageUtil.getPage(search), search);
+        return succeed(PageUtil.pageInfo(pages));
+    }
+
     @PostMapping("/doAuth")
     @ApiOperation(value = "审核", notes = "传入authOperaDto")
     @PreAuthorize("@pcs.hasPermissions('teacherAuthEntryRecord/doAuth')")

+ 109 - 1
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/TeacherController.java

@@ -14,6 +14,7 @@ import java.util.stream.Collectors;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 
+import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -26,14 +27,25 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.dto.VipSubmitReq;
 import com.yonge.cooleshow.biz.dal.dto.req.TeacherSubmitReq;
 import com.yonge.cooleshow.biz.dal.dto.search.TeacherSearch;
+import com.yonge.cooleshow.biz.dal.dto.search.VipRecordSearch;
 import com.yonge.cooleshow.biz.dal.entity.TeacherStyleVideo;
 import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
+import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
+import com.yonge.cooleshow.biz.dal.service.MemberPriceSettingsService;
 import com.yonge.cooleshow.biz.dal.service.TeacherService;
+import com.yonge.cooleshow.biz.dal.service.VipCardRecordService;
 import com.yonge.cooleshow.biz.dal.vo.TeacherVo;
+import com.yonge.cooleshow.biz.dal.vo.VipRecordVo;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.cooleshow.common.enums.UserLockFlag;
+import com.yonge.cooleshow.common.enums.UserStatusEnum;
+import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.base.page.PageInfo;
 import com.yonge.toolset.mybatis.support.PageUtil;
@@ -46,8 +58,17 @@ import com.yonge.toolset.utils.excel.POIUtil;
 public class TeacherController extends BaseController {
 
     @Autowired
+    private SysUserFeignService sysUserFeignService;
+    @Autowired
     private TeacherService teacherService;
 
+    @Autowired
+    private MemberPriceSettingsService memberPriceSettingsService;
+
+
+    @Autowired
+    private VipCardRecordService vipCardRecordService;
+
     /**
      * 查询单条
      */
@@ -74,7 +95,37 @@ public class TeacherController extends BaseController {
     @ApiOperation(value = "查询分页", notes = "传入teacher")
     @PreAuthorize("@pcs.hasPermissions('teacher/page')")
     public HttpResponseResult<PageInfo<TeacherVo>> page(@RequestBody TeacherSearch query) {
+    	
+    	if(StringUtils.isNotBlank(query.getUserStatus())){
+    		switch (query.getUserStatus()) {
+			case "LOCKED":
+				query.setDelFlag(YesOrNoEnum.NO);
+				query.setLockFlag(UserLockFlag.LOCKED);
+				break;
+			case "CLOSED":
+				query.setDelFlag(YesOrNoEnum.YES);
+				break;
+
+			default:
+				query.setDelFlag(YesOrNoEnum.NO);
+				query.setLockFlag(UserLockFlag.NORMAL);
+				break;
+			}
+    	}
         IPage<TeacherVo> pages = teacherService.selectPage(PageUtil.getPage(query), query);
+		List<TeacherVo> rows = pages.getRecords();
+		
+		for(TeacherVo vo : rows){
+			if(vo.getDelFlag() == YesOrNoEnum.YES){
+				vo.setUserStatus(UserStatusEnum.CLOSED);
+			}else{
+				if(vo.getLockFlag() == UserLockFlag.LOCKED){
+					vo.setUserStatus(UserStatusEnum.LOCKED);
+				}else{
+					vo.setUserStatus(UserStatusEnum.NORMAL);
+				}
+			}
+		}
         return succeed(PageUtil.pageInfo(pages));
     }
 
@@ -94,16 +145,50 @@ public class TeacherController extends BaseController {
     public void export(HttpServletResponse response, @RequestBody TeacherSearch queryInfo) throws IOException {
         queryInfo.setPage(1);
         queryInfo.setRows(49999);
+    	
+    	if(StringUtils.isNotBlank(queryInfo.getUserStatus())){
+    		switch (queryInfo.getUserStatus()) {
+			case "LOCKED":
+				queryInfo.setDelFlag(YesOrNoEnum.NO);
+				queryInfo.setLockFlag(UserLockFlag.LOCKED);
+				break;
+			case "CLOSED":
+				queryInfo.setDelFlag(YesOrNoEnum.YES);
+				break;
+
+			default:
+				queryInfo.setDelFlag(YesOrNoEnum.NO);
+				queryInfo.setLockFlag(UserLockFlag.NORMAL);
+				break;
+			}
+    	}
         List<TeacherVo> rows = teacherService.selectPage(PageUtil.getPage(queryInfo), queryInfo).getRecords();
         if (rows.size() < 1) {
             throw new BizException("没有可导出数据");
         }
+		
+		for(TeacherVo vo : rows){
+			if(vo.getDelFlag() == YesOrNoEnum.YES){
+				vo.setUserStatus(UserStatusEnum.CLOSED);
+			}else{
+				if(vo.getLockFlag() == UserLockFlag.LOCKED){
+					vo.setUserStatus(UserStatusEnum.LOCKED);
+				}else{
+					vo.setUserStatus(UserStatusEnum.NORMAL);
+				}
+			}
+		}
+        for(TeacherVo vo : rows){
+        	if(StringUtils.isNotBlank(vo.getTag())){
+        		vo.setTag(vo.getTag().replace("STYLE", "个人风采").replace("LIVE", "直播课").replace("VIDEO", "视频课").replace("MUSIC", "乐谱").replace("DEGREE", "学历").replace("TEACHER", "教资"));
+        	}
+        }
         OutputStream outputStream = response.getOutputStream();
         try {
             HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"老师编号", "昵称", "姓名", "手机号", "老师类型",
                     "注册时间", "认证时间", "状态", "是否是会员", "徽章"}, new String[]{
                     "userId", "username", "realName", "phone", "entryFlag.code == 1 ? '达人' : '游客'", "createTime", "entryAuthDate",
-                    "lockFlag.remark", "isVip.code == 1 ? '是' : '否'", "tag"}, rows);
+                    "userStatus.msg", "isVip.code == 1 ? '是' : '否'", "tag"}, rows);
             response.setContentType("application/octet-stream");
             response.setHeader("Content-Disposition", "attac:wq" +
                     "hment;filename=老师列表-" + DateUtil.getDate(new Date()) + ".xls");
@@ -123,4 +208,27 @@ public class TeacherController extends BaseController {
             }
         }
     }
+
+    @PostMapping("/addVip")
+    @ApiOperation(value = "添加会员")
+    @PreAuthorize("@pcs.hasPermissions('teacher/addVip')")
+    public HttpResponseResult<Boolean> addVip(@Valid @RequestBody VipSubmitReq vipSubmitReq) {
+
+
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null  || sysUser.getId() == null) {
+            return failed("用户信息获取失败");
+        }
+        return succeed(memberPriceSettingsService.addVip(vipSubmitReq, ClientEnum.TEACHER,sysUser));
+    }
+
+
+    @PostMapping("/vipRecord")
+    @ApiOperation(value = "会员记录")
+    @PreAuthorize("@pcs.hasPermissions('teacher/vipRecord')")
+    public HttpResponseResult<PageInfo<VipRecordVo>> vipRecord(@Valid @RequestBody VipRecordSearch recordSearch) {
+
+        recordSearch.setClient(ClientEnum.TEACHER);
+        return succeed(vipCardRecordService.vipRecord(recordSearch));
+    }
 }

+ 1 - 1
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/TeacherStyleVideoController.java

@@ -56,7 +56,7 @@ public class TeacherStyleVideoController extends BaseController {
 
     @PostMapping("/doAuth")
     @ApiOperation(value = "审核", notes = "传入authOperaDto")
-    @PreAuthorize("@pcs.hasPermissions('teacherAuthMusicianRecord/doAuth')")
+    @PreAuthorize("@pcs.hasPermissions('teacherStyleVideo/doAuth')")
     public HttpResponseResult<Boolean> doAuth(@Valid @RequestBody AuthOperaReq authOperaReq) throws Exception {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         return succeed(teacherStyleVideoService.doAuth(authOperaReq, sysUser));

+ 0 - 1
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/UserAccountRecordController.java

@@ -57,7 +57,6 @@ public class UserAccountRecordController extends BaseController {
     @ApiOperation(value = "查询分页", notes = "传入userAccountRecordSearch")
     @PreAuthorize("@pcs.hasPermissions('userAccountRecord/page')")
     public HttpResponseResult<PageInfo<UserAccountRecordVo>> page(@RequestBody UserAccountRecordSearch query) {
-        query.setInOrOut(InOrOutEnum.IN);
         IPage<UserAccountRecordVo> pages = userAccountRecordService.selectPage(PageUtil.getPage(query), query);
         return succeed(PageUtil.pageInfo(pages));
     }

+ 24 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/VideoLessonController.java

@@ -7,6 +7,7 @@ import com.yonge.cooleshow.biz.dal.dto.search.VideoGroupSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.VideoLessonSearch;
 import com.yonge.cooleshow.biz.dal.entity.VideoLessonGroup;
 import com.yonge.cooleshow.biz.dal.entity.VideoLessonGroupDetail;
+import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.service.VideoLessonGroupDetailService;
 import com.yonge.cooleshow.biz.dal.service.VideoLessonGroupService;
 import com.yonge.toolset.base.util.StringUtil;
@@ -18,7 +19,9 @@ import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.base.page.PageInfo;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.validation.annotation.Validated;
@@ -106,6 +109,24 @@ public class VideoLessonController extends BaseController {
         return succeed(PageUtil.pageInfo(lessonGroupService.queryGroupList(PageUtil.getPage(search), search)));
     }
 
+    @ApiOperation(value = "审核-视频课组历史记录列表", httpMethod = "POST", consumes = "application/json", produces = "application/json")
+    @PostMapping(value = "/queryGroupHistoryList", consumes = "application/json", produces = "application/json")
+    public HttpResponseResult<PageInfo<VideoLessonAuthGroup>> queryGroupHistoryList(@RequestBody VideoGroupSearch search) {
+        return succeed(PageUtil.pageInfo(lessonGroupService.queryGroupHistoryList(PageUtil.getPage(search), search)));
+    }
+
+    /**
+     * @Description: 审核-根据视频课组id查视频课详情
+     * @Author: cy
+     * @Date: 2022/4/20
+     */
+    @ApiOperation(value = "审核-根据视频课组id查视频课详情")
+    @GetMapping("/authGroupDetil")
+    public HttpResponseResult<VideoLessonAuthGroup> authGroupDetil(
+            @ApiParam(value = "当前视频组id", required = true) @RequestParam(value = "videoGroupId") Long videoGroupId) {
+        return succeed(lessonGroupService.authGroupDetil(videoGroupId));
+    }
+
     /**
      * @Description: 审核-根据视频课组id查视频课详情
      * @Author: cy
@@ -119,6 +140,8 @@ public class VideoLessonController extends BaseController {
         return succeed(videoLessonGroupDetailService.list(queryWrapper));
     }
 
+
+
     /**
      * @Description: 审核-修改视频课组审核状态
      * @Author: cy
@@ -155,6 +178,7 @@ public class VideoLessonController extends BaseController {
 
         shelvesVo.setShelvesId(user.getId());
         shelvesVo.setShelvesTime(new Date());
+        shelvesVo.setClientType(ClientEnum.SYSTEM);
         lessonGroupService.updateShelves(shelvesVo);
         return succeed();
     }

+ 46 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/open/AdminClient.java

@@ -1,6 +1,15 @@
 package com.yonge.cooleshow.admin.controller.open;
 
+import com.yonge.cooleshow.api.feign.dto.EmployeeApi;
+import com.yonge.cooleshow.api.feign.dto.StudentApi;
+import com.yonge.cooleshow.api.feign.dto.TeacherApi;
+import com.yonge.cooleshow.biz.dal.entity.Employee;
+import com.yonge.cooleshow.biz.dal.entity.Student;
+import com.yonge.cooleshow.biz.dal.entity.Teacher;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
+import com.yonge.cooleshow.biz.dal.service.EmployeeService;
+import com.yonge.cooleshow.biz.dal.service.StudentService;
+import com.yonge.cooleshow.biz.dal.service.TeacherService;
 import com.yonge.cooleshow.biz.dal.service.UserFirstTimeService;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.ContractDto;
@@ -9,6 +18,7 @@ import com.yonge.cooleshow.common.enums.UserFirstTimeTypeEnum;
 import io.swagger.annotations.ApiOperation;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -23,6 +33,15 @@ public class AdminClient extends BaseController {
     @Autowired
     private UserFirstTimeService userFirstTimeService;
 
+    @Autowired
+    private TeacherService teacherService;
+
+    @Autowired
+    private StudentService studentService;
+
+    @Autowired
+    private EmployeeService employeeService;
+
     @GetMapping("/recordTime")
     public HttpResponseResult<Boolean> recordTime(
             @RequestParam("userId") Long userId,
@@ -34,4 +53,31 @@ public class AdminClient extends BaseController {
         return succeed(true);
     }
 
+    @GetMapping("/getTeacher")
+    public HttpResponseResult<TeacherApi> getTeacher(@RequestParam("userId") Long userId) {
+        Teacher teacher = teacherService.getById(userId);
+
+        TeacherApi teacherApi = new TeacherApi();
+        BeanUtils.copyProperties(teacher, teacherApi);
+        return succeed(teacherApi);
+    }
+
+    @GetMapping("/getStudent")
+    public HttpResponseResult<StudentApi> getStudent(@RequestParam("userId") Long userId) {
+        Student student = studentService.getById(userId);
+
+        StudentApi studentApi = new StudentApi();
+        BeanUtils.copyProperties(student, studentApi);
+        return succeed(studentApi);
+    }
+
+    @GetMapping("/getEmployee")
+    public HttpResponseResult<EmployeeApi> getEmployee(@RequestParam("userId") Long userId) {
+        Employee employee = employeeService.get(userId);
+
+        EmployeeApi employeeApi = new EmployeeApi();
+        BeanUtils.copyProperties(employee, employeeApi);
+        return succeed(employeeApi);
+    }
+
 }

+ 135 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/io/request/ActivityTeacherVO.java

@@ -0,0 +1,135 @@
+package com.yonge.cooleshow.admin.io.request;
+
+import com.alibaba.fastjson.JSON;
+import com.yonge.cooleshow.biz.dal.enums.MK;
+import com.yonge.toolset.base.page.QueryInfo;
+import com.yonge.toolset.base.util.StringUtil;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.Optional;
+
+/**
+ * 活动老师信息
+ * Created by Eric.Shang on 2022/8/29.
+ */
+public class ActivityTeacherVO {
+
+    /**
+     * 活动老师请求信息
+     */
+    @Data
+    @EqualsAndHashCode(callSuper = false)
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ApiModel(value = "分享活动老师请求", description = "分享活动老师信息")
+    public static class RequestInfo extends QueryInfo {
+
+        @ApiModelProperty("活动ID")
+        private Long activityId;
+        @ApiModelProperty("老师编号/真实姓名/昵称/手机号")
+        private String keyword;
+        @ApiModelProperty("声部id(多个逗号隔开)")
+        private String subjectIds;
+        @ApiModelProperty("新增老师搜索, 1: 新增搜索; 0:已添加老师")
+        private Integer addType;
+
+        @ApiModelProperty(hidden = true)
+        private List<Long> subjectIdList;
+        @ApiModelProperty(hidden = true)
+        private Long id;
+        @ApiModelProperty(hidden = true)
+        private String mobile;
+        @ApiModelProperty(hidden = true)
+        private String name;
+
+        public String jsonString() {
+
+            return JSON.toJSONString(this);
+        }
+
+        public Integer getAddType() {
+            return Optional.ofNullable(addType).orElse(0);
+        }
+
+        public List<Long> getSubjectIdList() {
+
+            if (StringUtils.isNotEmpty(getSubjectIds())) {
+                this.subjectIdList = StringUtil.toLongList(subjectIds);
+            }
+
+            return subjectIdList;
+        }
+
+        public Long getId() {
+
+            if (StringUtils.isNotEmpty(getKeyword())
+                    && !getKeyword().matches(MK.EXP_MOBILE_NUMBER)
+                    && getKeyword().matches(MK.EXP_INT)) {
+
+                return Long.parseLong(getKeyword());
+            }
+            return id;
+        }
+
+        public String getMobile() {
+            if (StringUtils.isNotEmpty(getKeyword())
+                    && getKeyword().matches(MK.EXP_MOBILE_NUMBER)) {
+                return getKeyword();
+            }
+            return mobile;
+        }
+
+        public String getName() {
+
+            if (StringUtils.isNotEmpty(getKeyword())
+                    && !getKeyword().matches(MK.EXP_MOBILE_NUMBER)
+                    && !getKeyword().matches(MK.EXP_INT)) {
+
+                return getKeyword();
+            }
+
+            return name;
+        }
+
+        public Long getActivityId() {
+
+            if (Optional.ofNullable(this.activityId).orElse(0L) > 0) {
+                return this.activityId;
+            }
+            return null;
+        }
+    }
+
+    /**
+     * 活动老师响应信息
+     */
+    @Data
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ApiModel(value = "分享活动老师响应", description = "分享活动老师信息")
+    public static class ResponseInfo implements Serializable {
+
+        @ApiModelProperty(value = "数据编号")
+        private Long id;
+        @ApiModelProperty("昵称")
+        private String username;
+        @ApiModelProperty("真实姓名")
+        private String realName;
+        @ApiModelProperty("手机号")
+        private String phone;
+        @ApiModelProperty("声部ID")
+        private String subjectId;
+        @ApiModelProperty("声部")
+        private String subjectName;
+        @ApiModelProperty(value = "老师编号")
+        private Long teacherId;
+    }
+}

+ 19 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ActivityEvaluationDao.java

@@ -4,9 +4,11 @@ import java.util.List;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yonge.cooleshow.biz.dal.dto.activity.ActivityTeacherQuery;
 import com.yonge.cooleshow.biz.dal.dto.search.MusicSheetSearch;
 import com.yonge.cooleshow.biz.dal.vo.ActivityMusicVo;
 import com.yonge.cooleshow.biz.dal.vo.MusicSheetVo;
+import com.yonge.cooleshow.biz.dal.vo.activity.ActivityTeacherWrapper;
 import org.apache.ibatis.annotations.Param;
 import com.yonge.cooleshow.biz.dal.entity.ActivityEvaluation;
 import com.yonge.cooleshow.biz.dal.vo.ActivityEvaluationVo;
@@ -40,7 +42,7 @@ public interface ActivityEvaluationDao extends BaseMapper<ActivityEvaluation> {
      * @param musicSheetIds
      * @return
      */
-    Integer addBatch(@Param("activityId") Long activityId,@Param("userId") Long userId , @Param("musicSheetIds") List<Long> musicSheetIds);
+    Integer addBatch(@Param("activityId") Long activityId,@Param("userId") Long userId , @Param("musicSheetIds") List<Long> musicSheetIds, @Param("resourceType") String resourceType);
 
 	/**
 	 * 获取活动曲目信息
@@ -67,4 +69,20 @@ public interface ActivityEvaluationDao extends BaseMapper<ActivityEvaluation> {
 	 */
 	List<MusicSheetVo> musicPage(@Param("page") IPage<MusicSheetVo> page, @Param("param") MusicSheetSearch query);
 
+	/**
+	 * 活动老师信息
+	 * @param page IPage<ActivityTeacherWrapper>
+	 * @param query ActivityTeacherQuery
+	 * @return List<ActivityTeacherWrapper>
+	 */
+	List<ActivityTeacherWrapper> selectActivityTeacherPageInfo(@Param("page") IPage<ActivityTeacherWrapper> page, @Param("record") ActivityTeacherQuery query);
+
+	/**
+	 * 查询活动老师信息
+	 * - 通过时间匹配
+	 * @param page IPage<ActivityTeacherWrapper>
+	 * @param query ActivityTeacherQuery
+	 * @return List<ActivityTeacherWrapper>
+	 */
+	List<ActivityTeacherWrapper> selectActivityTeacherByTimePageInfo(@Param("page") IPage<ActivityTeacherWrapper> page, @Param("record") ActivityTeacherQuery query);
 }

+ 16 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ActivityEvaluationRecordDao.java

@@ -4,9 +4,12 @@ import java.util.List;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+
 import org.apache.ibatis.annotations.Param;
+
 import com.yonge.cooleshow.biz.dal.entity.ActivityEvaluationRecord;
 import com.yonge.cooleshow.biz.dal.vo.ActivityEvaluationRecordVo;
+import com.yonge.cooleshow.biz.dal.vo.ActivityRankingVo;
 import com.yonge.cooleshow.biz.dal.dto.search.ActivityEvaluationRecordSearch;
 
 
@@ -35,4 +38,17 @@ public interface ActivityEvaluationRecordDao extends BaseMapper<ActivityEvaluati
 	 * @return
 	 */
     List<Long> getJoinEvaluationIdList(@Param("activityId") Long activityId, @Param("userId") Long userId);
+	
+	/**
+	 * 查询指定活动指定曲目的排行榜
+	 * @param activityPlanId 指定活动
+	 * @param activityEvaluationId 指定曲目
+	 * @param limit 获奖人数
+	 * @return
+	 */
+	List<ActivityRankingVo> queryRankingList(@Param("activityPlanId") Long activityPlanId, @Param("activityEvaluationId") Long activityEvaluationId, @Param("limit") int limit);
+	
+	ActivityRankingVo queryUserRanking(@Param("activityPlanId") Long activityPlanId, @Param("activityEvaluationId") Long activityEvaluationId, @Param("userId") Long userId);
+	
+	ActivityEvaluationRecord queryLastestRecord(@Param("activityPlanId") Long activityPlanId, @Param("userId") Long userId);
 }

+ 9 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ActivityPlanDao.java

@@ -55,9 +55,18 @@ public interface ActivityPlanDao extends BaseMapper<ActivityPlan> {
 
 	/**
 	 * 查询需要变更状态的活动
+	 *
 	 * @return
 	 */
     List<ActivityPlan> activityState();
 
 
+	/**
+	 * 获取用户参与的分享活动
+	 *
+	 * @param type   活动分享类型
+	 * @param userId 用户id
+	 * @return
+	 */
+	ActivityPlanVo selectActivityShare(@Param("type") String type, @Param("userId") Long userId);
 }

+ 8 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ActivityUserRewardDao.java

@@ -27,5 +27,12 @@ public interface ActivityUserRewardDao extends BaseMapper<ActivityUserReward>{
      * @return: com.yonge.cooleshow.biz.dal.vo.ActivityUserRewardVo
 	 */
 	List<UserRewardVo> selectPage(@Param("page") IPage page, @Param("param") ActivityUserRewardSearch activityUserReward);
-	
+
+	/**
+	 * 用户关联活动分享老师信息
+	 * @param activityId 活动ID
+	 * @param userIds 用户ID
+	 * @return List<UserRewardVo>
+	 */
+	List<UserRewardVo> selectActivityShareTeacher(@Param("activityId") Long activityId, @Param("userIds") List<Long> userIds);
 }

+ 13 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/MusicSheetDao.java

@@ -139,14 +139,27 @@ public interface MusicSheetDao extends BaseMapper<MusicSheet> {
 
     /**
      * 老师统计
+     *
      * @param userId
      * @return
      */
     List<TeacherTotalVo> queryTeacherTotal(@Param("userId") Long userId);
+
     /**
      * 学生统计
+     *
      * @param userId
      * @return
      */
     List<StudentTotalVo> queryStudentTotal(@Param("userId") Long userId);
+
+    /**
+     * 审核历史记录
+     *
+     * @param originalMusicSheetId 原曲目id
+     * @param authMusicSheetId     最新的审核曲目id
+     * @return
+     */
+    List<MusicSheetDetailVo> auditDetailList(@Param("originalMusicSheetId") Long originalMusicSheetId, @Param(
+            "authMusicSheetId") Long authMusicSheetId);
 }

+ 11 - 7
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/TeacherAuthEntryRecordDao.java

@@ -11,12 +11,6 @@ import com.yonge.cooleshow.biz.dal.vo.TeacherAuthEntryRecordVo;
 import org.apache.ibatis.annotations.Param;
 
 public interface TeacherAuthEntryRecordDao extends BaseMapper<TeacherAuthEntryRecord>{
-
-	/**
-	 * 自定义分页
-	 */
-	List<TeacherAuthEntryRecordVo> selectPage(@Param("page")IPage page,@Param("param") AuthEntryRecordSearch search);
-
 	/***
 	 * 根据老师id查询详情
 	 * @author liweifan
@@ -24,7 +18,17 @@ public interface TeacherAuthEntryRecordDao extends BaseMapper<TeacherAuthEntryRe
 	 * @updateTime 2022/3/21 13:43
 	 * @return: com.yonge.cooleshow.biz.dal.vo.TeacherAuthEntryRecordVo
 	 */
-    TeacherAuthEntryRecordVo detail(@Param("id") Long id);
+	TeacherAuthEntryRecordVo detail(@Param("id") Long id);
+
+	TeacherAuthEntryRecordVo lastDetil(@Param("id") Long id,@Param("userId") Long userId);
+
+	/**
+	 * 自定义分页
+	 */
+	List<TeacherAuthEntryRecordVo> selectPage(@Param("page")IPage page,@Param("param") AuthEntryRecordSearch search);
+
+	List<TeacherAuthEntryRecordVo> historyPage(@Param("page")IPage page,@Param("param")  AuthEntryRecordSearch search);
+
 	/***
 	 * 查询最近一条申请记录
 	 * @author liweifan

+ 24 - 5
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/VideoLessonGroupDao.java

@@ -1,15 +1,26 @@
 package com.yonge.cooleshow.biz.dal.dao;
 
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yonge.cooleshow.biz.dal.dto.search.VideoGroupSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.VideoLessonGroupSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.VideoLessonSearch;
 import com.yonge.cooleshow.biz.dal.entity.VideoLessonGroup;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.yonge.cooleshow.biz.dal.vo.*;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
+import com.yonge.cooleshow.biz.dal.entity.VideoLessonGroupLog;
+import com.yonge.cooleshow.biz.dal.vo.CountVideoGroupVo;
+import com.yonge.cooleshow.biz.dal.vo.LessonGroupVo;
+import com.yonge.cooleshow.biz.dal.vo.VideoLessonAuthGroup;
+import com.yonge.cooleshow.biz.dal.vo.VideoLessonExamineVo;
+import com.yonge.cooleshow.biz.dal.vo.VideoLessonGroupUpVo;
+import com.yonge.cooleshow.biz.dal.vo.VideoLessonGroupVo;
+import com.yonge.cooleshow.biz.dal.vo.VideoLessonPurchaseVo;
+import com.yonge.cooleshow.biz.dal.vo.VideoLessonShelvesVo;
+import com.yonge.cooleshow.biz.dal.vo.VideoLessonStudentDetailVo;
+import com.yonge.cooleshow.biz.dal.vo.VideoLessonTeacherVo;
 
 /**
  * VideoLessonGroupDao数据库访问类
@@ -40,10 +51,17 @@ public interface VideoLessonGroupDao extends BaseMapper<VideoLessonGroup> {
 
     //查询视频课组
     List<LessonGroupVo> selectLessonGroup(IPage page, @Param("param") VideoLessonGroupSearch search);
+    
+  //查询我的视频课组
+    List<LessonGroupVo> queryMyLessonGroup(IPage page, @Param("param") VideoLessonGroupSearch search);
 
     //查询所有视频课组
     List<VideoLessonAuthGroup> queryGroupList(IPage<VideoLessonAuthGroup> page, @Param("param") VideoGroupSearch query);
 
+    List<VideoLessonAuthGroup> queryGroupHistoryList(IPage<VideoLessonAuthGroup> page, @Param("param") VideoGroupSearch query);
+
+    VideoLessonAuthGroup authGroupDetil(@Param("videoGroupId") Long videoGroupId);
+
     //根据组id查详情
     VideoLessonGroup selectGroupById(Long groupId);
 
@@ -52,4 +70,5 @@ public interface VideoLessonGroupDao extends BaseMapper<VideoLessonGroup> {
 
     //查询付费人数前5的课程
     List<CountVideoGroupVo.VideoLesson> selectVideoLesson();
+
 }

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/VideoLessonGroupDetailDao.java

@@ -34,4 +34,6 @@ public interface VideoLessonGroupDetailDao extends BaseMapper<VideoLessonGroupDe
     void deleteByGroupId(Long groupId);
 
     List<VideoLessonGroupDetailVo> selectPageAuth(IPage page, @Param("param") VideoLessonSearch query);
+    
+    List<VideoLessonGroupDetail> queryByVideoLessonGroupId(Long videoLessonGroupId);
 }

+ 20 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/VideoLessonGroupLogDao.java

@@ -0,0 +1,20 @@
+package com.yonge.cooleshow.biz.dal.dao;
+
+import org.apache.ibatis.annotations.Param;
+
+import com.yonge.cooleshow.biz.dal.entity.VideoLessonGroupLog;
+import com.yonge.toolset.mybatis.dal.BaseDAO;
+
+public interface VideoLessonGroupLogDao extends BaseDAO<Long, VideoLessonGroupLog> {
+
+	Long queryMaxVersion(Long videoLessonGroupId);
+	
+	VideoLessonGroupLog queryByVideoLessonGroupId(@Param("videoLessonGroupId") Long videoLessonGroupId, @Param("version") Long version);
+	
+	/**
+	 * 查询最新上架信息
+	 * @param videoLessonGroupId
+	 * @return
+	 */
+	VideoLessonGroupLog queryLastestShelvesInfo(Long videoLessonGroupId);
+}

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/VideoLessonPurchaseRecordDao.java

@@ -21,4 +21,6 @@ public interface VideoLessonPurchaseRecordDao extends BaseMapper<VideoLessonPurc
 
     //修改订单状态
     void updateStatus(@Param("orderNo") String orderNo,@Param("status") String status);
+    
+    List<VideoLessonPurchaseRecord> queryByVideoLessonGroupId(@Param("videoLessonGroupId") Long videoLessonGroupId, @Param("orderStatus") String orderStatus);
 }

+ 10 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/VipCardRecordDao.java

@@ -4,7 +4,9 @@ import java.util.List;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yonge.cooleshow.biz.dal.dto.search.VipRecordSearch;
 import com.yonge.cooleshow.biz.dal.entity.MemberPriceSettings;
+import com.yonge.cooleshow.biz.dal.vo.VipRecordVo;
 import org.apache.ibatis.annotations.Param;
 import com.yonge.cooleshow.biz.dal.entity.VipCardRecord;
 import com.yonge.cooleshow.biz.dal.vo.VipCardRecordVo;
@@ -48,4 +50,12 @@ public interface VipCardRecordDao extends BaseMapper<VipCardRecord> {
     List<VipCardRecordVo> selectExpireRecord();
 
 
+    /**
+     * 会员添加记录
+     *
+     * @param page
+     * @param param
+     * @return
+     */
+    IPage<VipRecordVo> selectVipRecord(@Param("page") IPage<VipRecordVo> page, @Param("param") VipRecordSearch param);
 }

+ 12 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/ActivityEvaluationDto.java

@@ -4,7 +4,6 @@ import com.yonge.cooleshow.common.entity.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
-import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 
 /**
@@ -19,8 +18,18 @@ public class ActivityEvaluationDto extends BaseEntity {
 	@NotNull(message = "活动id不能为空")
 	private Long activityId;
 	@ApiModelProperty("曲目id 多个用,分割 ")
-	@NotBlank(message = "曲子id不能为空")
-	private String musicSheetIds;
+	//@NotBlank(message = "曲子id不能为空")
+	private String musicSheetIds; // 评测活动曲目ID
+	@ApiModelProperty("活动老师id 多个用,分割 ")
+	private String teacherIds; // 分享活动老师ID
+
+	public String getTeacherIds() {
+		return teacherIds;
+	}
+
+	public void setTeacherIds(String teacherIds) {
+		this.teacherIds = teacherIds;
+	}
 
 	public Long getActivityId() {
 		return activityId;

+ 103 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/ActivityPlanDto.java

@@ -1,12 +1,24 @@
 package com.yonge.cooleshow.biz.dal.dto;
 
+import com.google.common.collect.Lists;
 import com.yonge.cooleshow.biz.dal.entity.ActivityPlan;
 import com.yonge.cooleshow.biz.dal.entity.ActivityPlanEvaluation;
 import com.yonge.cooleshow.biz.dal.entity.ActivityPlanStandard;
+import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
+import com.yonge.cooleshow.common.enums.EStatus;
+import com.yonge.cooleshow.common.enums.RewardTypeEnum;
+import com.yonge.cooleshow.common.enums.UnitEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
 
-import javax.validation.Valid;
+import java.io.Serializable;
+import java.text.MessageFormat;
+import java.util.List;
+import java.util.Optional;
 
 /**
  * @Author: liweifan
@@ -24,6 +36,8 @@ public class ActivityPlanDto extends ActivityPlan{
 
 	@ApiModelProperty(value = "活动计划-达标赠送活动拓展")
 	private ActivityPlanStandard planStandard;
+	@ApiModelProperty(value = "分享活动-奖品信息")
+	private List<RewardItem> rewardItems;
 
 	public Long getUserId() {
 		return userId;
@@ -48,4 +62,92 @@ public class ActivityPlanDto extends ActivityPlan{
 	public void setPlanStandard(ActivityPlanStandard planStandard) {
 		this.planStandard = planStandard;
 	}
+
+	public List<RewardItem> getRewardItems() {
+		return Optional.ofNullable(rewardItems).orElse(Lists.newArrayList());
+	}
+
+	public void setRewardItems(List<RewardItem> rewardItems) {
+		this.rewardItems = rewardItems;
+	}
+
+	/**
+	 * 分享活动-奖品信息
+	 */
+	@Data
+	@NoArgsConstructor
+	@AllArgsConstructor
+	public static class RewardItem implements Serializable {
+
+		private Long activityId; // 业务更新活动ID
+		private String rewardClient;
+		private String rewardName;
+		private RewardTypeEnum rewardType;
+		private String rewardDescribe;
+		private String imgUrl;
+		private Integer stock;
+		private Integer num;
+		private UnitEnum unit; // 更新奖品会员类型
+		private Integer status;
+		private Double discountPrice; // 更新优惠价格
+
+		public Long getActivityId() {
+			return activityId;
+		}
+
+		public String getRewardClient() {
+			return Optional.ofNullable(rewardClient).orElse(ClientEnum.STUDENT.getCode());
+		}
+
+		public String getRewardName() {
+			return Optional.ofNullable(rewardName).orElse(MessageFormat.format("{0}会员", getUnit().getMsg()));
+		}
+
+		public RewardTypeEnum getRewardType() {
+			return Optional.ofNullable(rewardType).orElse(RewardTypeEnum.VIP);
+		}
+
+		public String getRewardDescribe() {
+
+			return Optional.ofNullable(rewardDescribe).orElse(getRewardName());
+		}
+
+		public String getImgUrl() {
+			return Optional.ofNullable(imgUrl).orElse("");
+		}
+
+		public Integer getStock() {
+			return Optional.ofNullable(stock).orElse(1);
+		}
+
+		public Integer getNum() {
+			return Optional.ofNullable(num).orElse(1);
+		}
+
+		public UnitEnum getUnit() {
+			return Optional.ofNullable(unit).orElse(UnitEnum.MONTH);
+		}
+
+		public Integer getStatus() {
+			return Optional.ofNullable(status).orElse(EStatus.DELETE.getValue());
+		}
+
+		public Double getDiscountPrice() {
+			return Optional.ofNullable(discountPrice).orElse(0D);
+		}
+	}
+
+	/**
+	 * 活动奖品-逻辑映射关系
+	 */
+	@Data
+	@Builder
+	@NoArgsConstructor
+	@AllArgsConstructor
+	public static class ActivityRewardRecord implements Serializable {
+
+		private Long activityId;
+		private Long rewardId;
+		private Integer rewardNum;
+	}
 }

+ 41 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/MusicImgDto.java

@@ -0,0 +1,41 @@
+package com.yonge.cooleshow.biz.dal.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2019-08-23
+ */
+@ApiModel("曲谱渲染图")
+public class MusicImgDto {
+
+    @NotBlank(message = "渲染图片不能为空")
+    @ApiModelProperty("渲染图片")
+    private String musicImg;
+
+    @NotNull(message = "曲目id不能为空")
+    @ApiModelProperty("曲目id")
+    private Long musicSheetId;
+
+    public String getMusicImg() {
+        return musicImg;
+    }
+
+    public void setMusicImg(String musicImg) {
+        this.musicImg = musicImg;
+    }
+
+    public Long getMusicSheetId() {
+        return musicSheetId;
+    }
+
+    public void setMusicSheetId(Long musicSheetId) {
+        this.musicSheetId = musicSheetId;
+    }
+}

+ 36 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/SaveOrUpdateRewardDto.java

@@ -0,0 +1,36 @@
+package com.yonge.cooleshow.biz.dal.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.List;
+
+@ApiModel(value = "SaveOrUpdateRewardDto对象", description = "修改奖品对象")
+public class SaveOrUpdateRewardDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("活动id")
+    @NotNull(message = "活动id不能为空")
+    private Long activityId;
+
+    @ApiModelProperty("奖品集合")
+    private List<ActivityPlanRewardDto> updateRewardDtoList;
+
+    public Long getActivityId() {
+        return activityId;
+    }
+
+    public void setActivityId(Long activityId) {
+        this.activityId = activityId;
+    }
+
+    public List<ActivityPlanRewardDto> getUpdateRewardDtoList() {
+        return updateRewardDtoList;
+    }
+
+    public void setUpdateRewardDtoList(List<ActivityPlanRewardDto> updateRewardDtoList) {
+        this.updateRewardDtoList = updateRewardDtoList;
+    }
+}

+ 68 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/VipSubmitReq.java

@@ -0,0 +1,68 @@
+package com.yonge.cooleshow.biz.dal.dto;
+
+import com.yonge.cooleshow.biz.dal.enums.PeriodEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2022-08-23
+ */
+@ApiModel("添加会员")
+public class VipSubmitReq {
+
+    @ApiModelProperty("时间数量")
+    @NotNull(message = "数量不能为空")
+    @Min(value = 1,message = "数量不能小于1")
+    private Integer times;
+
+    @ApiModelProperty("时间类型 DAY:天 MONTH:月 ,QUARTERLY : 季度 YEAR_HALF : 半年 YEAR:年")
+    @NotNull(message = "周期不能为空")
+    private PeriodEnum type;
+
+    @ApiModelProperty("原因")
+    @NotBlank(message = "原因不能为空")
+    private String reason;
+
+    @ApiModelProperty("用户id")
+    @NotNull(message = "用户id不能为空")
+    private Long  userId;
+
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
+    public Integer getTimes() {
+        return times;
+    }
+
+    public void setTimes(Integer times) {
+        this.times = times;
+    }
+
+    public PeriodEnum getType() {
+        return type;
+    }
+
+    public void setType(PeriodEnum type) {
+        this.type = type;
+    }
+
+    public String getReason() {
+        return reason;
+    }
+
+    public void setReason(String reason) {
+        this.reason = reason;
+    }
+}

+ 102 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/activity/ActivityTeacherQuery.java

@@ -0,0 +1,102 @@
+package com.yonge.cooleshow.biz.dal.dto.activity;
+
+import com.alibaba.fastjson.JSON;
+import com.yonge.cooleshow.common.enums.EStatus;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.Optional;
+
+/**
+ * 分享活动老师查询信息
+ * Created by Eric.Shang on 2022/8/29.
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class ActivityTeacherQuery implements Serializable {
+
+    // 活动ID
+    private Long activityId;
+    // 声音ID
+    private List<Long> subjectIdList;
+    // 老师编号
+    private Long id;
+    // 老师手机号
+    private String mobile;
+    // 老师姓名或昵称
+    private String name;
+    // 锁定状态
+    private Integer lockFlag;
+    // 删除状态
+    private Integer deleteFlag;
+    // 新增搜索
+    private Integer addType;
+
+    // 活动开始时间
+    private Long startTime;
+    // 活动结束时间
+    private Long endTime;
+    private String resourceType;
+    private String activityType;
+    private Integer activityState;
+
+
+    /**
+     * 构建对象
+     * @param recv 数据信息
+     * @return ActivityTeacherQuery
+     */
+    public static ActivityTeacherQuery from(String recv) {
+
+        return JSON.parseObject(recv, ActivityTeacherQuery.class);
+    }
+
+    public Integer getLockFlag() {
+        return Optional.ofNullable(lockFlag).orElse(EStatus.DISABLE.getValue());
+    }
+
+    public Integer getDeleteFlag() {
+        return Optional.ofNullable(deleteFlag).orElse(EStatus.DISABLE.getValue());
+    }
+
+    public Integer getAddType() {
+        return Optional.ofNullable(addType).orElse(EStatus.DISABLE.getValue());
+    }
+
+
+    public ActivityTeacherQuery startTime(Long startTime) {
+        this.startTime = startTime;
+        return this;
+    }
+
+    public ActivityTeacherQuery endTime(Long endTime) {
+        this.endTime = endTime;
+        return this;
+    }
+
+    public ActivityTeacherQuery activityId(Long activityId) {
+        this.activityId = activityId;
+        return this;
+    }
+
+    public ActivityTeacherQuery resourceType(String resourceType) {
+        this.resourceType = resourceType;
+        return this;
+    }
+
+    public ActivityTeacherQuery activityType(String activityType) {
+        this.activityType = activityType;
+        return this;
+    }
+
+    public ActivityTeacherQuery activityState(Integer activityState) {
+        this.activityState = activityState;
+        return this;
+    }
+}

+ 33 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/req/OrderReq.java

@@ -42,6 +42,12 @@ public class OrderReq {
     private Long couponId;
     @ApiModelProperty(value = "推荐用户id(有推荐人的情况)")
     private Long recomUserId;
+
+    @ApiModelProperty(value = "活动id")
+    private Long activityId;
+
+    @ApiModelProperty(value = "活动id",hidden = true)
+    private Long rewardId;
     @NotNull(message = "订单金额不能为空")
     @ApiModelProperty(value = "订单金额", required = true)
     private BigDecimal actualPrice;
@@ -72,6 +78,17 @@ public class OrderReq {
         @ApiModelProperty(value = "调用业务创建方法返回", hidden = true)
         private OrderCreateRes createRes;
 
+        @ApiModelProperty(value = "活动id")
+        private Long activityId;
+
+        public Long getActivityId() {
+            return activityId;
+        }
+
+        public void setActivityId(Long activityId) {
+            this.activityId = activityId;
+        }
+
         public Long getUserId() {
             return userId;
         }
@@ -145,6 +162,14 @@ public class OrderReq {
         }
     }
 
+    public Long getRewardId() {
+        return rewardId;
+    }
+
+    public void setRewardId(Long rewardId) {
+        this.rewardId = rewardId;
+    }
+
     public Long getUserId() {
         return userId;
     }
@@ -232,4 +257,12 @@ public class OrderReq {
     public void setRecomUserId(Long recomUserId) {
         this.recomUserId = recomUserId;
     }
+
+    public Long getActivityId() {
+        return activityId;
+    }
+
+    public void setActivityId(Long activityId) {
+        this.activityId = activityId;
+    }
 }

+ 0 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/req/TeacherApplyDetailReq.java

@@ -58,7 +58,6 @@ public class TeacherApplyDetailReq implements Serializable {
     private String teacherCertificate;
 
     @ApiModelProperty("老师风采视频json 格式:[{'videoUrl':'视频地址','cover':'视频封面地址'},{'videoUrl':'视频地址','cover':'视频封面地址'}] ,将单引号替换为双引号")
-    @NotBlank(message = "至少要有一个老师风采视频")
     private String styleVideoJson;
 
     public Long getUserId() {

+ 11 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/req/TeacherMusicSheetAuditReq.java

@@ -21,6 +21,9 @@ public class TeacherMusicSheetAuditReq {
     @NotNull(message = "曲目id不能为空 ")
     private Long musicSheetId;
 
+    @ApiModelProperty(value = "曲谱渲染图",required = true)
+    private String musicImg;
+
     @ApiModelProperty(value = "审批状态(PASS:通过,UNPASS:不通过)",required = true)
     @NotNull(message = "审批状态不为空 ")
     private AuthStatusEnum authStatus;
@@ -29,6 +32,14 @@ public class TeacherMusicSheetAuditReq {
     @NotBlank(message = "审核理由不能为空 ")
     private String remark;
 
+    public String getMusicImg() {
+        return musicImg;
+    }
+
+    public void setMusicImg(String musicImg) {
+        this.musicImg = musicImg;
+    }
+
     public Long getMusicSheetId() {
         return musicSheetId;
     }

+ 0 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/ActivityPlanSearch.java

@@ -1,6 +1,5 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 
-import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.common.enums.ActivityTypeEnum;
@@ -9,9 +8,6 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.springframework.format.annotation.DateTimeFormat;
 
-import javax.validation.constraints.NotNull;
-import java.time.LocalDateTime;
-import java.time.LocalTime;
 import java.util.Date;
 
 /**

+ 13 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/ActivityUserRewardSearch.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.yonge.cooleshow.common.enums.EStatus;
 import com.yonge.toolset.base.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -8,6 +9,7 @@ import org.springframework.format.annotation.DateTimeFormat;
 
 import javax.validation.constraints.NotNull;
 import java.util.Date;
+import java.util.Optional;
 
 /**
  * @Author: liweifan
@@ -39,6 +41,9 @@ public class ActivityUserRewardSearch extends QueryInfo{
 	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
 	private Date endTime;
 
+	@ApiModelProperty(hidden = true)
+	private Integer activityGroupBy;
+
 	public Long getActivityId() {
 		return activityId;
 	}
@@ -80,4 +85,12 @@ public class ActivityUserRewardSearch extends QueryInfo{
 	public void setEndTime(Date endTime) {
 		this.endTime = endTime;
 	}
+
+	public Integer getActivityGroupBy() {
+		return Optional.ofNullable(activityGroupBy).orElse(EStatus.ENABLE.getValue());
+	}
+
+	public void setActivityGroupBy(Integer activityGroupBy) {
+		this.activityGroupBy = activityGroupBy;
+	}
 }

+ 23 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/AuthEntryRecordSearch.java

@@ -1,7 +1,9 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
+import com.yonge.cooleshow.biz.dal.enums.AuthTypeEnum;
 import com.yonge.toolset.base.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -14,9 +16,11 @@ import java.util.Date;
  * @Data: 2022/3/21 15:26
  */
 @ApiModel(value = "AuthEntryRecordSearch", description = "审核列表查询")
-public class AuthEntryRecordSearch extends QueryInfo{
+public class AuthEntryRecordSearch extends QueryInfo {
     @ApiModelProperty(value = "老师编号/名称/电话")
     private String search;
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
     @ApiModelProperty(value = "审批人")
     private String verifyUser;
     @ApiModelProperty(value = "申请开始时间")
@@ -29,6 +33,8 @@ public class AuthEntryRecordSearch extends QueryInfo{
     private Date endTime;
     @ApiModelProperty(value = "审核状态  UNPAALY、未申请 DOING、审核中 PASS、通过 UNPASS、不通过")
     private AuthStatusEnum authStatus;
+    @ApiModelProperty("认证审核类型 ADD 新增 MODIFY 修改")
+    private AuthTypeEnum teacherAuthType;
 
     public String getSearch() {
         return search;
@@ -38,6 +44,14 @@ public class AuthEntryRecordSearch extends QueryInfo{
         this.search = search;
     }
 
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
     public String getVerifyUser() {
         return verifyUser;
     }
@@ -69,4 +83,12 @@ public class AuthEntryRecordSearch extends QueryInfo{
     public void setAuthStatus(AuthStatusEnum authStatus) {
         this.authStatus = authStatus;
     }
+
+    public AuthTypeEnum getTeacherAuthType() {
+        return teacherAuthType;
+    }
+
+    public void setTeacherAuthType(AuthTypeEnum teacherAuthType) {
+        this.teacherAuthType = teacherAuthType;
+    }
 }

+ 34 - 9
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/EmployeeSearch.java

@@ -1,15 +1,18 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.yonge.cooleshow.biz.dal.enums.GenderEnum;
-import com.yonge.cooleshow.common.enums.YesOrNoEnum;
-import com.yonge.toolset.base.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import org.springframework.format.annotation.DateTimeFormat;
 
 import java.util.Date;
 
+import org.springframework.format.annotation.DateTimeFormat;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.yonge.cooleshow.biz.dal.enums.GenderEnum;
+import com.yonge.cooleshow.common.enums.UserLockFlag;
+import com.yonge.cooleshow.common.enums.YesOrNoEnum;
+import com.yonge.toolset.base.page.QueryInfo;
+
 /**
  * @Author: liweifan
  * @Data: 2022/3/21 15:26
@@ -22,8 +25,8 @@ public class EmployeeSearch extends QueryInfo{
     private GenderEnum gender;
     @ApiModelProperty("学员声部 ")
     private String subjectIdList;
-    @ApiModelProperty(value = "0-正常,9-锁定")
-    private YesOrNoEnum lockFlag;
+    @ApiModelProperty(value = "0-正常, 1-锁定")
+    private UserLockFlag lockFlag;
     @ApiModelProperty(value = "创建开始时间")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@@ -33,6 +36,12 @@ public class EmployeeSearch extends QueryInfo{
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date endTime;
 
+    @ApiModelProperty(value = "是否注销 0否 1是")
+    private YesOrNoEnum delFlag;
+    
+    @ApiModelProperty("用户状态")
+    private String userStatus;
+
     public String getSearch() {
         return search;
     }
@@ -63,11 +72,11 @@ public class EmployeeSearch extends QueryInfo{
         this.subjectIdList = subjectIdList;
     }
 
-    public YesOrNoEnum getLockFlag() {
+    public UserLockFlag getLockFlag() {
         return lockFlag;
     }
 
-    public void setLockFlag(YesOrNoEnum lockFlag) {
+    public void setLockFlag(UserLockFlag lockFlag) {
         this.lockFlag = lockFlag;
     }
 
@@ -86,4 +95,20 @@ public class EmployeeSearch extends QueryInfo{
     public void setEndTime(Date endTime) {
         this.endTime = endTime;
     }
+
+	public YesOrNoEnum getDelFlag() {
+		return delFlag;
+	}
+
+	public void setDelFlag(YesOrNoEnum delFlag) {
+		this.delFlag = delFlag;
+	}
+
+	public String getUserStatus() {
+		return userStatus;
+	}
+
+	public void setUserStatus(String userStatus) {
+		this.userStatus = userStatus;
+	}
 }

+ 22 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/MemberPriceSettingsSearch.java

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.biz.dal.dto.search;
 
 import com.yonge.toolset.base.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 
 /**
  * @Author: liweifan
@@ -11,4 +12,25 @@ import io.swagger.annotations.ApiModel;
 public class MemberPriceSettingsSearch extends QueryInfo{
 	private static final long serialVersionUID = 1L;
 
+	@ApiModelProperty("分享老师id")
+	private Long userId;
+
+	@ApiModelProperty("活动id")
+	private Long  activityId;
+
+	public Long getActivityId() {
+		return activityId;
+	}
+
+	public void setActivityId(Long activityId) {
+		this.activityId = activityId;
+	}
+
+	public Long getUserId() {
+		return userId;
+	}
+
+	public void setUserId(Long userId) {
+		this.userId = userId;
+	}
 }

+ 31 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/StudentSearch.java

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.biz.dal.dto.search;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.yonge.cooleshow.biz.dal.enums.GenderEnum;
+import com.yonge.cooleshow.common.enums.UserLockFlag;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import com.yonge.toolset.base.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
@@ -22,6 +23,9 @@ public class StudentSearch extends QueryInfo{
     private GenderEnum gender;
     @ApiModelProperty("学员声部 ")
     private String subjectId;
+    @ApiModelProperty(value = "0-正常, 1-锁定")
+    private UserLockFlag lockFlag;
+    private YesOrNoEnum delFlag;
     @ApiModelProperty(value = "是否会员 0否 1是")
     private YesOrNoEnum isVip;
     @ApiModelProperty(value = "注册开始时间")
@@ -32,6 +36,9 @@ public class StudentSearch extends QueryInfo{
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date endTime;
+    
+    @ApiModelProperty("用户状态")
+    private String userStatus;
 
     public String getSearch() {
         return search;
@@ -61,6 +68,14 @@ public class StudentSearch extends QueryInfo{
         this.subjectId = subjectId;
     }
 
+    public UserLockFlag getLockFlag() {
+        return lockFlag;
+    }
+
+    public void setLockFlag(UserLockFlag lockFlag) {
+        this.lockFlag = lockFlag;
+    }
+
     public YesOrNoEnum getIsVip() {
         return isVip;
     }
@@ -84,4 +99,20 @@ public class StudentSearch extends QueryInfo{
     public void setEndTime(Date endTime) {
         this.endTime = endTime;
     }
+
+	public String getUserStatus() {
+		return userStatus;
+	}
+
+	public void setUserStatus(String userStatus) {
+		this.userStatus = userStatus;
+	}
+
+	public YesOrNoEnum getDelFlag() {
+		return delFlag;
+	}
+
+	public void setDelFlag(YesOrNoEnum delFlag) {
+		this.delFlag = delFlag;
+	}
 }

+ 11 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/TeacherMusicSheetAuditSearch.java

@@ -22,6 +22,9 @@ public class TeacherMusicSheetAuditSearch extends QueryInfo{
     @ApiModelProperty("老师编号/名称/电话")
     private String idAndName;
 
+    @ApiModelProperty("审核类型  0:新增 1:修改")
+    private Integer firstAuth;
+
 
     @ApiModelProperty("审批人")
     private String auditName;
@@ -45,6 +48,14 @@ public class TeacherMusicSheetAuditSearch extends QueryInfo{
     @ApiModelProperty(value = "假删除 0 : 未删除 1:已删除",hidden = true)
     private Boolean delFlag = false;
 
+    public Integer getFirstAuth() {
+        return firstAuth;
+    }
+
+    public void setFirstAuth(Integer firstAuth) {
+        this.firstAuth = firstAuth;
+    }
+
     public ChargeTypeEnum getChargeType() {
         return chargeType;
     }

+ 36 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/TeacherSearch.java

@@ -1,6 +1,9 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 
+import com.yonge.cooleshow.common.enums.UserLockFlag;
+import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import com.yonge.toolset.base.page.QueryInfo;
+
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -17,9 +20,17 @@ public class TeacherSearch extends QueryInfo{
     
     @ApiModelProperty(value = "徽章(STYLE-个人风采  LIVE-直播  VIDEO-视频课  MUSIC-曲谱)")
     private String tag;
+
+    @ApiModelProperty(value = "0-正常, 1-锁定")
+    private UserLockFlag lockFlag;
+    
+    private YesOrNoEnum delFlag;
     
     @ApiModelProperty(value = "是否会员(0-否 1-是)")
     private Integer isVip;
+    
+    @ApiModelProperty("用户状态")
+    private String userStatus;
 
     public String getSearch() {
         return search;
@@ -45,11 +56,35 @@ public class TeacherSearch extends QueryInfo{
 		this.tag = tag;
 	}
 
-	public Integer getIsVip() {
+    public UserLockFlag getLockFlag() {
+        return lockFlag;
+    }
+
+    public void setLockFlag(UserLockFlag lockFlag) {
+        this.lockFlag = lockFlag;
+    }
+
+    public Integer getIsVip() {
 		return isVip;
 	}
 
 	public void setIsVip(Integer isVip) {
 		this.isVip = isVip;
 	}
+
+	public String getUserStatus() {
+		return userStatus;
+	}
+
+	public void setUserStatus(String userStatus) {
+		this.userStatus = userStatus;
+	}
+
+	public YesOrNoEnum getDelFlag() {
+		return delFlag;
+	}
+
+	public void setDelFlag(YesOrNoEnum delFlag) {
+		this.delFlag = delFlag;
+	}
 }

+ 11 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/VideoGroupSearch.java

@@ -39,6 +39,9 @@ public class VideoGroupSearch extends QueryInfo {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date endTime;
 
+    @ApiModelProperty(value = "历史记录所属视频组id")
+    private Long groupId;
+
     public String getSearch() {
         return search;
     }
@@ -94,4 +97,12 @@ public class VideoGroupSearch extends QueryInfo {
     public void setEndTime(Date endTime) {
         this.endTime = endTime;
     }
+
+    public Long getGroupId() {
+        return groupId;
+    }
+
+    public void setGroupId(Long groupId) {
+        this.groupId = groupId;
+    }
 }

+ 97 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/VipRecordSearch.java

@@ -0,0 +1,97 @@
+package com.yonge.cooleshow.biz.dal.dto.search;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
+import com.yonge.cooleshow.biz.dal.enums.SourceTypeEnum;
+import com.yonge.toolset.base.page.QueryInfo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2022-08-23
+ */
+@ApiModel("会员记录查询")
+public class VipRecordSearch extends QueryInfo {
+
+    @ApiModelProperty("开始时间 yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
+    private Date startTime;
+
+    @ApiModelProperty("结束时间 yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    private Date endTime;
+
+    @ApiModelProperty("操作人")
+    private String search;
+
+    @ApiModelProperty("用户id")
+    @NotNull(message = "用户id不能为空")
+    private Long userId;
+
+    @ApiModelProperty("人员类型")
+    private ClientEnum client;
+
+
+    @ApiModelProperty("来源类型 : ACTIVITY :活动 ,ORDER:订单 PLATFORM:平台")
+    private SourceTypeEnum sourceType;
+
+    public SourceTypeEnum getSourceType() {
+        return sourceType;
+    }
+
+    public void setSourceType(SourceTypeEnum sourceType) {
+        this.sourceType = sourceType;
+    }
+
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
+    public ClientEnum getClient() {
+        return client;
+    }
+
+    public void setClient(ClientEnum client) {
+        this.client = client;
+    }
+
+    public Date getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Date startTime) {
+        this.startTime = startTime;
+    }
+
+    public Date getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Date endTime) {
+        this.endTime = endTime;
+    }
+
+    @Override
+    public String getSearch() {
+        return search;
+    }
+
+    @Override
+    public void setSearch(String search) {
+        this.search = search;
+    }
+}

+ 14 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ActivityEvaluation.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.yonge.cooleshow.common.enums.ActivityResourceEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -28,6 +29,11 @@ public class ActivityEvaluation implements Serializable {
     @ApiModelProperty("曲目id ")
     @TableField(value = "music_sheet_id_")
     private Long musicSheetId;
+
+    @ApiModelProperty("资源类型 ")
+    @TableField(value = "resource_type_")
+    private ActivityResourceEnum resourceType;
+
     @ApiModelProperty("创建时间 ")
     @TableField(value = "create_time_")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@@ -37,6 +43,14 @@ public class ActivityEvaluation implements Serializable {
     @TableField(value = "create_by_")
     private Long createBy;
 
+    public ActivityResourceEnum getResourceType() {
+        return resourceType;
+    }
+
+    public void setResourceType(ActivityResourceEnum resourceType) {
+        this.resourceType = resourceType;
+    }
+
     public Long getId() {
         return id;
     }

+ 27 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ActivityEvaluationRecord.java

@@ -31,15 +31,33 @@ public class ActivityEvaluationRecord implements Serializable {
     @ApiModelProperty("评测活动id ")
     @TableField(value = "evaluation_id_")
     private Long evaluationId;
+
+    @ApiModelProperty("活动内容资源ID ")
+    @TableField(value = "resource_id_")
+    private Long resourceId;
+
     @ApiModelProperty("分数 ")
     @TableField(value = "score_")
     private Double score;
+    
+    @ApiModelProperty("次数")
+    @TableField(value = "times_")
+    private int times;
+    
     @ApiModelProperty("创建时间 ")
     @TableField(value = "create_time_")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
     private Date createTime;
 
+    public Long getResourceId() {
+        return resourceId;
+    }
+
+    public void setResourceId(Long resourceId) {
+        this.resourceId = resourceId;
+    }
+
     public Long getId() {
         return id;
     }
@@ -80,7 +98,15 @@ public class ActivityEvaluationRecord implements Serializable {
         this.score = score;
     }
 
-    public Date getCreateTime() {
+    public int getTimes() {
+		return times;
+	}
+
+	public void setTimes(int times) {
+		this.times = times;
+	}
+
+	public Date getCreateTime() {
         return createTime;
     }
 

+ 15 - 7
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ActivityPlan.java

@@ -4,22 +4,19 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.common.enums.ActivityTypeEnum;
 import com.yonge.cooleshow.common.enums.RegistrationMethodEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-
-import java.io.Serializable;
-import java.util.Date;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
 import org.springframework.format.annotation.DateTimeFormat;
 
-import javax.validation.Valid;
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
+import java.io.Serializable;
 import java.math.BigDecimal;
+import java.util.Date;
 
 /**
  * 活动计划表
@@ -31,7 +28,7 @@ public class ActivityPlan implements Serializable {
     @ApiModelProperty("主键 ")
     @TableId(value = "id_", type = IdType.AUTO)
     private Long id;
-    @ApiModelProperty(value = "活动类型 EVALUATION 评测活动 STANDARD_GIFT 达标赠送", required = true)
+    @ApiModelProperty(value = "活动类型 EVALUATION 评测活动 STANDARD_GIFT 达标赠送 SHARE分享活动", required = true)
     @TableField(value = "activity_type_")
     @NotNull(message = "活动类型不能为空")
     private ActivityTypeEnum activityType;
@@ -92,6 +89,9 @@ public class ActivityPlan implements Serializable {
     @ApiModelProperty("发奖状态(完成状态) 0 未发奖 1 已发奖 ")
     @TableField(value = "reward_flag_")
     private Integer rewardFlag;
+    @ApiModelProperty(value = "活动分类类型, MUSIC_SHEET(曲谱) MUSIC(音乐) VIP(会员) VIDEO(视频) LIVE(直播) GOODS(商品)")
+    @TableField(value = "share_type_")
+    private String shareType;
     @ApiModelProperty("创建时间 ")
     @TableField(value = "create_time_")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@@ -213,6 +213,14 @@ public class ActivityPlan implements Serializable {
         this.activityState = activityState;
     }
 
+    public String getShareType() {
+        return this.shareType;
+    }
+
+    public void setShareType(String shareType) {
+        this.shareType = shareType;
+    }
+
     public Date getCreateTime() {
         return createTime;
     }

+ 17 - 6
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ActivityReward.java

@@ -4,21 +4,19 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.yonge.cooleshow.common.enums.RewardTypeEnum;
 import com.yonge.cooleshow.common.enums.UnitEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-
-import java.io.Serializable;
-import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Positive;
 import javax.validation.constraints.PositiveOrZero;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
 
 
 /**
@@ -85,6 +83,18 @@ public class ActivityReward implements Serializable {
     @TableField(value = "update_by_")
     private Long updateBy;
 
+    @ApiModelProperty("优惠金额")
+    @TableField(value = "discount_price_")
+    private BigDecimal discountPrice;
+
+    public BigDecimal getDiscountPrice() {
+        return discountPrice;
+    }
+
+    public void setDiscountPrice(BigDecimal discountPrice) {
+        this.discountPrice = discountPrice;
+    }
+
     public Long getId() {
         return id;
     }
@@ -204,4 +214,5 @@ public class ActivityReward implements Serializable {
     public void setUpdateBy(Long updateBy) {
         this.updateBy = updateBy;
     }
+
 }

+ 13 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ActivityUserReward.java

@@ -51,6 +51,19 @@ public class ActivityUserReward implements Serializable {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
     private Date updateTime;
 
+
+    @ApiModelProperty("奖品单位 同奖品表")
+    @TableField(value = "unit_")
+    private String unit;
+
+    public String getUnit() {
+        return unit;
+    }
+
+    public void setUnit(String unit) {
+        this.unit = unit;
+    }
+
     public Long getId() {
         return id;
     }

+ 12 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/Employee.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.yonge.cooleshow.common.enums.UserLockFlag;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -60,6 +61,9 @@ public class Employee implements Serializable {
 	@ApiModelProperty("联系地址 ")
 	@TableField(value = "contact_address_")
 	private String contactAddress;
+	@ApiModelProperty("锁定状态 0-正常, 1=锁定")
+	@TableField(value = "lock_flag_")
+	private UserLockFlag lockFlag;
 
 	public Long getUserId() {
 		return userId;
@@ -156,4 +160,12 @@ public class Employee implements Serializable {
 	public void setContactAddress(String contactAddress) {
 		this.contactAddress = contactAddress;
 	}
+
+	public UserLockFlag getLockFlag() {
+		return lockFlag;
+	}
+
+	public void setLockFlag(UserLockFlag lockFlag) {
+		this.lockFlag = lockFlag;
+	}
 }

+ 12 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/MusicSheet.java

@@ -48,6 +48,10 @@ public class MusicSheet implements Serializable {
 	@ApiModelProperty("是否可以转简谱(0:否,1:是)")
 	private YesOrNoEnum notation;
 
+	@TableField("music_img_")
+	@ApiModelProperty("曲目图片")
+	private String musicImg;
+
 	@TableField("source_type_")
 	@ApiModelProperty(value = "曲目来源类型 TEACHER 老师 PLATFORM 平台")
 	private SourceTypeEnum sourceType;
@@ -194,6 +198,14 @@ public class MusicSheet implements Serializable {
 	@ApiModelProperty(value = "假删除标识 0:未删除 1:已删除")
 	private Boolean delFlag;
 
+	public String getMusicImg() {
+		return musicImg;
+	}
+
+	public void setMusicImg(String musicImg) {
+		this.musicImg = musicImg;
+	}
+
 	public AccompanimentTypeEnum getAccompanimentType() {
 		return accompanimentType;
 	}

+ 28 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/MusicSheetAuthRecord.java

@@ -26,6 +26,17 @@ public class MusicSheetAuthRecord implements Serializable {
     @ApiModelProperty("曲目id ")
 	@TableField(value = "music_sheet_id_")
     private Long musicSheetId;
+
+
+    @ApiModelProperty("原本的曲目id ")
+    @TableField(value = "original_music_sheet_id_")
+    private Long originalMusicSheetId;
+
+
+    @ApiModelProperty("第一次提交审核 ")
+    @TableField(value = "first_auth_")
+    private Integer firstAuth;
+
     @ApiModelProperty("审核状态 DOING:审核中;PASS:通过;UNPASS:未通过 ")
 	@TableField(value = "audit_state_")
     private AuthStatusEnum auditState;
@@ -44,7 +55,23 @@ public class MusicSheetAuthRecord implements Serializable {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
     private Date updateTime;
 
-	public Long getId() {
+    public Integer getFirstAuth() {
+        return firstAuth;
+    }
+
+    public void setFirstAuth(Integer firstAuth) {
+        this.firstAuth = firstAuth;
+    }
+
+    public Long getOriginalMusicSheetId() {
+        return originalMusicSheetId;
+    }
+
+    public void setOriginalMusicSheetId(Long originalMusicSheetId) {
+        this.originalMusicSheetId = originalMusicSheetId;
+    }
+
+    public Long getId() {
         return id;
     }
 

+ 12 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/Student.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.biz.dal.entity;
 
 import com.baomidou.mybatisplus.annotation.*;
+import com.yonge.cooleshow.common.enums.UserLockFlag;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -60,6 +61,9 @@ public class Student implements Serializable {
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
     private Date cloudStudyUseLastDay;
+    @ApiModelProperty("锁定状态 0-正常, 1=锁定")
+    @TableField(value = "lock_flag_")
+    private UserLockFlag lockFlag;
 	@TableField(value = "create_time_")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
@@ -140,4 +144,12 @@ public class Student implements Serializable {
     public void setUpdateTime(Date updateTime) {
         this.updateTime = updateTime;
     }
+
+    public UserLockFlag getLockFlag() {
+        return lockFlag;
+    }
+
+    public void setLockFlag(UserLockFlag lockFlag) {
+        this.lockFlag = lockFlag;
+    }
 }

+ 68 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/Teacher.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 
+import com.yonge.cooleshow.common.enums.UserLockFlag;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -104,7 +105,7 @@ public class Teacher implements Serializable {
     private Date entryAuthDate;
 
 
-    @ApiModelProperty("老师点亮图标 STYLE:个人风采 VIDEO:视频课 LIVE:直播课,MUSIC:曲目 ")
+    @ApiModelProperty("老师点亮图标 STYLE:个人风采 VIDEO:视频课 LIVE:直播课,MUSIC:曲目 DEGREE:学历 TEACHER:教资")
     @TableField(value = "tag_")
     private String tag;
 
@@ -149,6 +150,29 @@ public class Teacher implements Serializable {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
     private Date styleDate;
 
+
+    @ApiModelProperty("学位认证 0:未认证 1:已认证 ")
+    @TableField(value = "degree_flag_")
+    private YesOrNoEnum degreeFlag;
+
+
+    @ApiModelProperty("教师资格认证 0:未认证 1:已认证 ")
+    @TableField(value = "teacher_flag_")
+    private YesOrNoEnum teacherFlag;
+
+    @ApiModelProperty("学位认证时间 ")
+    @TableField(value = "degree_date_")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    private Date degreeDate;
+
+
+    @ApiModelProperty("教师资格认证时间 ")
+    @TableField(value = "teacher_date_")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    private Date teacherDate;
+
     /**
      * 会员等级
      */
@@ -178,6 +202,9 @@ public class Teacher implements Serializable {
     @ApiModelProperty("备注 ")
 	@TableField(value = "memo_")
     private String memo;
+    @ApiModelProperty("锁定状态 0-正常, 1=锁定")
+    @TableField(value = "lock_flag_")
+    private UserLockFlag lockFlag;
 	@TableField(value = "create_time_")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
@@ -188,6 +215,38 @@ public class Teacher implements Serializable {
     private Date updateTime;
 
 
+    public YesOrNoEnum getDegreeFlag() {
+        return degreeFlag;
+    }
+
+    public void setDegreeFlag(YesOrNoEnum degreeFlag) {
+        this.degreeFlag = degreeFlag;
+    }
+
+    public YesOrNoEnum getTeacherFlag() {
+        return teacherFlag;
+    }
+
+    public void setTeacherFlag(YesOrNoEnum teacherFlag) {
+        this.teacherFlag = teacherFlag;
+    }
+
+    public Date getDegreeDate() {
+        return degreeDate;
+    }
+
+    public void setDegreeDate(Date degreeDate) {
+        this.degreeDate = degreeDate;
+    }
+
+    public Date getTeacherDate() {
+        return teacherDate;
+    }
+
+    public void setTeacherDate(Date teacherDate) {
+        this.teacherDate = teacherDate;
+    }
+
     public Date getMusicDate() {
         return musicDate;
     }
@@ -412,4 +471,12 @@ public class Teacher implements Serializable {
     public void setBrowse(Integer browse) {
         this.browse = browse;
     }
+
+    public UserLockFlag getLockFlag() {
+        return lockFlag;
+    }
+
+    public void setLockFlag(UserLockFlag lockFlag) {
+        this.lockFlag = lockFlag;
+    }
 }

+ 16 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/TeacherAuthEntryRecord.java

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
 
 
 import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
+import com.yonge.cooleshow.biz.dal.enums.AuthTypeEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -87,7 +88,13 @@ public class TeacherAuthEntryRecord implements Serializable {
     @ApiModelProperty("达人认证审核状态 UNPAALY、未申请 DOING、审核中 PASS、通过 UNPASS、不通过")
 	@TableField(value = "teacher_auth_status_")
     private AuthStatusEnum teacherAuthStatus;
-    /** 
+    /**
+     * 认证审核类型 ADD 新增 MODIFY 修改
+     */
+    @ApiModelProperty("认证审核类型 ADD 新增 MODIFY 修改")
+    @TableField(value = "teacher_auth_type_")
+    private AuthTypeEnum teacherAuthType;
+    /**
     * 审核人 
     */
     @ApiModelProperty("审核人 ")
@@ -198,6 +205,14 @@ public class TeacherAuthEntryRecord implements Serializable {
         this.teacherAuthStatus = teacherAuthStatus;
     }
 
+    public AuthTypeEnum getTeacherAuthType() {
+        return teacherAuthType;
+    }
+
+    public void setTeacherAuthType(AuthTypeEnum teacherAuthType) {
+        this.teacherAuthType = teacherAuthType;
+    }
+
     public Long getVerifyUserId() {
         return verifyUserId;
     }

+ 24 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/UserOrder.java

@@ -36,6 +36,15 @@ public class UserOrder implements Serializable {
     @ApiModelProperty(value = "推荐用户id(有推荐人的情况)")
     @TableField(value = "recom_user_id_")
     private Long recomUserId;
+
+    @ApiModelProperty(value = "活动id(有活动的情况)")
+    @TableField(value = "activity_id_")
+    private Long activityId;
+
+    @ApiModelProperty(value = "活动奖品id(有活动的情况)")
+    @TableField(value = "reward_id_")
+    private Long rewardId;
+
     @ApiModelProperty("订单名称 ")
     @TableField(value = "order_name_")
     private String orderName;
@@ -87,6 +96,21 @@ public class UserOrder implements Serializable {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date updateTime;
 
+    public Long getRewardId() {
+        return rewardId;
+    }
+
+    public void setRewardId(Long rewardId) {
+        this.rewardId = rewardId;
+    }
+
+    public Long getActivityId() {
+        return activityId;
+    }
+
+    public void setActivityId(Long activityId) {
+        this.activityId = activityId;
+    }
 
 
     public Long getId() {

+ 25 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/VideoLessonAuthRecord.java

@@ -3,6 +3,7 @@ package com.yonge.cooleshow.biz.dal.entity;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.yonge.cooleshow.biz.dal.enums.AuthTypeEnum;
 import com.yonge.cooleshow.common.entity.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -20,7 +21,7 @@ public class VideoLessonAuthRecord extends BaseEntity {
     private Long id;
 
     @TableField("video_group_id_")
-    @ApiModelProperty(value = "视频课组id")
+    @ApiModelProperty(value = "当前视频课组id")
     private Long videoGroupId;
 
     @TableField("audit_status_")
@@ -35,6 +36,10 @@ public class VideoLessonAuthRecord extends BaseEntity {
     @ApiModelProperty(value = "审批人id")
     private Long auditId;
 
+    @TableField("auth_type_")
+    @ApiModelProperty(value = "认证审核类型 ADD 新增 MODIFY 修改")
+    private AuthTypeEnum authType;
+
     @TableField("remarks")
     @ApiModelProperty(value = "备注")
     private String remarks;
@@ -46,6 +51,9 @@ public class VideoLessonAuthRecord extends BaseEntity {
     @TableField("update_time_")
     @ApiModelProperty(value = "修改时间")
     private Date updateTime;
+    
+    @TableField("version_")
+    private Long version;
 
     public Long getId() {
         return id;
@@ -110,4 +118,20 @@ public class VideoLessonAuthRecord extends BaseEntity {
     public void setUpdateTime(Date updateTime) {
         this.updateTime = updateTime;
     }
+
+    public AuthTypeEnum getAuthType() {
+        return authType;
+    }
+
+    public void setAuthType(AuthTypeEnum authType) {
+        this.authType = authType;
+    }
+
+	public Long getVersion() {
+		return version;
+	}
+
+	public void setVersion(Long version) {
+		this.version = version;
+	}
 }

+ 12 - 11
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/VideoLessonGroup.java

@@ -1,21 +1,23 @@
 package com.yonge.cooleshow.biz.dal.entity;
 
-import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
-import com.yonge.cooleshow.biz.dal.valid.AddGroup;
-import com.yonge.cooleshow.biz.dal.valid.UpdateGroup;
-import com.yonge.cooleshow.common.entity.BaseEntity;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
+import java.math.BigDecimal;
+import java.util.Date;
+
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.Size;
-import java.math.BigDecimal;
-import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
+import com.yonge.cooleshow.biz.dal.valid.AddGroup;
+import com.yonge.cooleshow.biz.dal.valid.UpdateGroup;
+import com.yonge.cooleshow.common.entity.BaseEntity;
+import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 
 /**
  * 视频课基本信息表
@@ -121,7 +123,6 @@ public class VideoLessonGroup extends BaseEntity {
     @ApiModelProperty(value = "审批人id")
     private Integer auditId;
 
-
     @TableField("audit_version_")
     @ApiModelProperty(value = "是否审核时可见 (0:否  1:是)")
     private YesOrNoEnum auditVersion = YesOrNoEnum.NO;

+ 311 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/VideoLessonGroupLog.java

@@ -0,0 +1,311 @@
+package com.yonge.cooleshow.biz.dal.entity;
+
+import java.util.List;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * 对应数据库表(video_lesson_group_log):
+ */
+public class VideoLessonGroupLog {
+
+	@ApiModelProperty(value = "主键",required = false)
+	private Long id;
+	
+	private Long videoLessonGroupId;
+	
+	@ApiModelProperty(value = "课程名称",required = false)
+	private String lessonName;
+	
+	@ApiModelProperty(value = "课程声部",required = false)
+	private String lessonSubject;
+	
+	@ApiModelProperty(value = "课程介绍",required = false)
+	private String lessonDesc;
+	
+	@ApiModelProperty(value = "课程价格",required = false)
+	private java.math.BigDecimal lessonPrice;
+	
+	@ApiModelProperty(value = "课程封面图片URL",required = false)
+	private String lessonCoverUrl;
+	
+	@ApiModelProperty(value = "老师ID",required = false)
+	private Long teacherId;
+	
+	@ApiModelProperty(value = "课程节数",required = false)
+	private Integer lessonCount;
+	
+	@ApiModelProperty(value = "排序号",required = false)
+	private Integer sortNumber;
+	
+	@ApiModelProperty(value = "课程标签",required = false)
+	private String lessonTag;
+	
+	@ApiModelProperty(value = "是否置顶",required = false)
+	private boolean topFlag;
+	
+	@ApiModelProperty(value = "是否热门课程",required = false)
+	private boolean hotFlag;
+	
+	@ApiModelProperty(value = "是否上架 (0:否  1:是)",required = false)
+	private Integer shelvesFlag;
+	
+	@ApiModelProperty(value = "上下架时间",required = false)
+	private java.util.Date shelvesTime;
+	
+	@ApiModelProperty(value = "上下架原因",required = false)
+	private String shelvesReason;
+	
+	@ApiModelProperty(value = "上下架人",required = false)
+	private Long shelvesId;
+	
+	@ApiModelProperty(value = "修改人id",required = false)
+	private Long modifierId;
+	
+	@ApiModelProperty(value = "备注",required = false)
+	private String remarks;
+	
+	@ApiModelProperty(value = "是否审核时可见 (0:否  1:是)",required = false)
+	private Integer auditVersion;
+	
+	@ApiModelProperty(value = "创建时间",required = false)
+	private java.util.Date createTime;
+	
+	@ApiModelProperty(value = "更新时间",required = false)
+	private java.util.Date updateTime;
+	
+	private Long version;
+	
+	@ApiModelProperty(value = "视频课明细json串",required = false)
+	private String videoDetailJson;
+	
+    private List<VideoLessonGroupDetail> videoList;
+	
+	public VideoLessonGroupLog setId(Long id){
+		this.id = id;
+		return this;
+	}
+	
+	public Long getVideoLessonGroupId() {
+		return videoLessonGroupId;
+	}
+
+	public void setVideoLessonGroupId(Long videoLessonGroupId) {
+		this.videoLessonGroupId = videoLessonGroupId;
+	}
+
+	public Long getId(){
+		return this.id;
+	}
+			
+	public VideoLessonGroupLog setLessonName(String lessonName){
+		this.lessonName = lessonName;
+		return this;
+	}
+	
+	public String getLessonName(){
+		return this.lessonName;
+	}
+			
+	public VideoLessonGroupLog setLessonSubject(String lessonSubject){
+		this.lessonSubject = lessonSubject;
+		return this;
+	}
+	
+	public String getLessonSubject(){
+		return this.lessonSubject;
+	}
+			
+	public VideoLessonGroupLog setLessonDesc(String lessonDesc){
+		this.lessonDesc = lessonDesc;
+		return this;
+	}
+	
+	public String getLessonDesc(){
+		return this.lessonDesc;
+	}
+			
+	public VideoLessonGroupLog setLessonPrice(java.math.BigDecimal lessonPrice){
+		this.lessonPrice = lessonPrice;
+		return this;
+	}
+	
+	public java.math.BigDecimal getLessonPrice(){
+		return this.lessonPrice;
+	}
+			
+	public VideoLessonGroupLog setLessonCoverUrl(String lessonCoverUrl){
+		this.lessonCoverUrl = lessonCoverUrl;
+		return this;
+	}
+	
+	public String getLessonCoverUrl(){
+		return this.lessonCoverUrl;
+	}
+			
+	public VideoLessonGroupLog setTeacherId(Long teacherId){
+		this.teacherId = teacherId;
+		return this;
+	}
+	
+	public Long getTeacherId(){
+		return this.teacherId;
+	}
+			
+	public VideoLessonGroupLog setLessonCount(Integer lessonCount){
+		this.lessonCount = lessonCount;
+		return this;
+	}
+	
+	public Integer getLessonCount(){
+		return this.lessonCount;
+	}
+			
+	public VideoLessonGroupLog setSortNumber(Integer sortNumber){
+		this.sortNumber = sortNumber;
+		return this;
+	}
+	
+	public Integer getSortNumber(){
+		return this.sortNumber;
+	}
+			
+	public VideoLessonGroupLog setLessonTag(String lessonTag){
+		this.lessonTag = lessonTag;
+		return this;
+	}
+	
+	public String getLessonTag(){
+		return this.lessonTag;
+	}
+			
+	public VideoLessonGroupLog setTopFlag(boolean topFlag){
+		this.topFlag = topFlag;
+		return this;
+	}
+	
+	public boolean isTopFlag(){
+		return this.topFlag;
+	}
+			
+	public VideoLessonGroupLog setHotFlag(boolean hotFlag){
+		this.hotFlag = hotFlag;
+		return this;
+	}
+	
+	public boolean isHotFlag(){
+		return this.hotFlag;
+	}
+			
+	public VideoLessonGroupLog setShelvesFlag(Integer shelvesFlag){
+		this.shelvesFlag = shelvesFlag;
+		return this;
+	}
+	
+	public Integer getShelvesFlag(){
+		return this.shelvesFlag;
+	}
+			
+	public VideoLessonGroupLog setShelvesTime(java.util.Date shelvesTime){
+		this.shelvesTime = shelvesTime;
+		return this;
+	}
+	
+	public java.util.Date getShelvesTime(){
+		return this.shelvesTime;
+	}
+			
+	public VideoLessonGroupLog setShelvesReason(String shelvesReason){
+		this.shelvesReason = shelvesReason;
+		return this;
+	}
+	
+	public String getShelvesReason(){
+		return this.shelvesReason;
+	}
+			
+	public VideoLessonGroupLog setShelvesId(Long shelvesId){
+		this.shelvesId = shelvesId;
+		return this;
+	}
+	
+	public Long getShelvesId(){
+		return this.shelvesId;
+	}
+			
+	public Long getModifierId() {
+		return modifierId;
+	}
+
+	public void setModifierId(Long modifierId) {
+		this.modifierId = modifierId;
+	}
+
+	public VideoLessonGroupLog setRemarks(String remarks){
+		this.remarks = remarks;
+		return this;
+	}
+	
+	public String getRemarks(){
+		return this.remarks;
+	}
+			
+	public VideoLessonGroupLog setAuditVersion(Integer auditVersion){
+		this.auditVersion = auditVersion;
+		return this;
+	}
+	
+	public Integer getAuditVersion(){
+		return this.auditVersion;
+	}
+			
+	public VideoLessonGroupLog setCreateTime(java.util.Date createTime){
+		this.createTime = createTime;
+		return this;
+	}
+	
+	public java.util.Date getCreateTime(){
+		return this.createTime;
+	}
+			
+	public VideoLessonGroupLog setUpdateTime(java.util.Date updateTime){
+		this.updateTime = updateTime;
+		return this;
+	}
+	
+	public java.util.Date getUpdateTime(){
+		return this.updateTime;
+	}
+			
+	public Long getVersion() {
+		return version;
+	}
+
+	public void setVersion(Long version) {
+		this.version = version;
+	}
+
+	public String getVideoDetailJson() {
+		return videoDetailJson;
+	}
+
+	public void setVideoDetailJson(String videoDetailJson) {
+		this.videoDetailJson = videoDetailJson;
+	}
+
+	public List<VideoLessonGroupDetail> getVideoList() {
+		return videoList;
+	}
+
+	public void setVideoList(List<VideoLessonGroupDetail> videoList) {
+		this.videoList = videoList;
+	}
+
+	@Override
+	public String toString() {
+		return ToStringBuilder.reflectionToString(this);
+	}
+
+}

+ 5 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/VideoLessonPurchaseRecord.java

@@ -1,15 +1,16 @@
 package com.yonge.cooleshow.biz.dal.entity;
 
-import com.yonge.cooleshow.common.entity.BaseEntity;
-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 java.math.BigDecimal;
 import java.util.Date;
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.yonge.cooleshow.common.entity.BaseEntity;
+
 /**
  * 视频课购买记录表
  * @author yzp

+ 49 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/VipCardRecord.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
+import com.yonge.cooleshow.biz.dal.enums.PeriodEnum;
 import com.yonge.cooleshow.biz.dal.enums.SourceTypeEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -37,6 +38,14 @@ public class VipCardRecord implements Serializable {
 	@TableField(value = "vip_card_id_")
     private Long vipCardId;
 
+    @TableField(value = "times_")
+    @ApiModelProperty("添加时间数量")
+    private Integer times;
+
+    @TableField(value = "type_")
+    @ApiModelProperty("时间类型 DAY:天 MONTH:月 ,QUARTERLY : 季度 YEAR_HALF : 半年 YEAR:年")
+    private PeriodEnum type;
+
     @TableField(value = "client_type_")
     @ApiModelProperty("用户类型 学生:STUDENT 老师 :TEACHER")
     private ClientEnum clientType;
@@ -73,6 +82,46 @@ public class VipCardRecord implements Serializable {
     @TableField(value = "msg_status_")
     private Integer msgStatus;
 
+    @ApiModelProperty("创建人")
+    @TableField(value = "create_by_")
+    private Long createBy;
+
+    @ApiModelProperty("备注")
+    @TableField(value = "reason_")
+    private String reason;
+
+    public Long getCreateBy() {
+        return createBy;
+    }
+
+    public void setCreateBy(Long createBy) {
+        this.createBy = createBy;
+    }
+
+    public String getReason() {
+        return reason;
+    }
+
+    public void setReason(String reason) {
+        this.reason = reason;
+    }
+
+    public Integer getTimes() {
+        return times;
+    }
+
+    public void setTimes(Integer times) {
+        this.times = times;
+    }
+
+    public PeriodEnum getType() {
+        return type;
+    }
+
+    public void setType(PeriodEnum type) {
+        this.type = type;
+    }
+
     public SourceTypeEnum getSourceType() {
         return sourceType;
     }

+ 34 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/AuthTypeEnum.java

@@ -0,0 +1,34 @@
+package com.yonge.cooleshow.biz.dal.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.yonge.toolset.base.enums.BaseEnum;
+
+/**
+ * 认证审核类型 ADD 新增 MODIFY 修改
+ *
+ * @Author: liweifan
+ * @Data: 2022/3/16 10:19
+ */
+public enum AuthTypeEnum implements BaseEnum<String, AuthTypeEnum> {
+    ADD("新增"),
+    MODIFY("修改"),
+
+    ;
+    @EnumValue
+    private String code;
+    private String name;
+
+    AuthTypeEnum(String name) {
+        this.code = this.name();
+        this.name = name;
+    }
+
+    @Override
+    public String getCode() {
+        return this.code;
+    }
+
+    public String getName() {
+        return name;
+    }
+}

+ 13 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/MK.java

@@ -0,0 +1,13 @@
+package com.yonge.cooleshow.biz.dal.enums;
+
+/**
+ * 常用数据类型正则
+ * Created by Eric.Shang on 2022/8/29.
+ */
+public interface MK {
+
+    // 手机号
+    String EXP_MOBILE_NUMBER = "^1(3\\d|4[5-9]|5[0-35-9]|6[2567]|7[0-8]|8\\d|9[0-35-9])\\d{8}$";
+    // 正型
+    String EXP_INT = "^\\d+$";
+}

+ 3 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/MessageTypeEnum.java

@@ -103,6 +103,9 @@ public enum MessageTypeEnum implements BaseEnum<String, MessageTypeEnum> {
     PIANO_ROOM_ADJUST("琴房课调整"),
     PRACTICE_ADJUST("陪练课调整"),
     ACTIVITY_WIN("获奖消息"),
+    PLATFORM_ADD_VIP("会员赠送"),
+    SMS_STUDENT_LIVE_COMPLETION_FAIL("直播课成课失败"),
+    STUDENT_LIVE_COMPLETION_FAIL("直播课成课失败"),
 
     ;
 

+ 32 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ActivityEvaluationRecordService.java

@@ -3,8 +3,10 @@ package com.yonge.cooleshow.biz.dal.service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.yonge.cooleshow.biz.dal.vo.ActivityEvaluationRecordVo;
+import com.yonge.cooleshow.biz.dal.vo.ActivityRankingVo;
 import com.yonge.cooleshow.biz.dal.dto.search.ActivityEvaluationRecordSearch;
 import com.yonge.cooleshow.biz.dal.entity.ActivityEvaluationRecord;
+import com.yonge.cooleshow.common.enums.ActivityResourceEnum;
 
 import java.math.BigDecimal;
 import java.util.List;
@@ -47,4 +49,34 @@ public interface ActivityEvaluationRecordService extends IService<ActivityEvalua
 	 * @param score 分数
 	 */
     void saveRecord(Long evaluationId, Long userId, BigDecimal score);
+
+
+
+	/**
+	 * 添加活动参与记录
+	 *
+	 * @param activityId 活动id
+	 * @param userId 用户id
+	 * @param resourceId 资源id
+	 * @param resourceType 资源类型
+	 */
+    void saveActivityRecord(Long activityId, Long userId, Long resourceId, ActivityResourceEnum resourceType);
+
+	/**
+	 * 查询指定活动指定曲目的排行榜
+	 * @param activityPlanId 指定活动
+	 * @param activityEvaluationId 指定曲目
+	 * @param limit 获奖人数
+	 * @return
+	 */
+	List<ActivityRankingVo> queryRankingList(Long activityPlanId, Long activityEvaluationId, int limit);
+	
+	/**
+	 * 查询指定用户的排名
+	 * @param activityPlanId
+	 * @param activityEvaluationId
+	 * @param userId
+	 * @return
+	 */
+	ActivityRankingVo queryUserRanking(Long activityPlanId, Long activityEvaluationId, Long userId);
 }

+ 17 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ActivityEvaluationService.java

@@ -4,12 +4,14 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.ActivityEvaluationDto;
+import com.yonge.cooleshow.biz.dal.dto.activity.ActivityTeacherQuery;
 import com.yonge.cooleshow.biz.dal.dto.search.MusicSheetSearch;
 import com.yonge.cooleshow.biz.dal.vo.ActivityEvaluationVo;
 import com.yonge.cooleshow.biz.dal.dto.search.ActivityEvaluationSearch;
 import com.yonge.cooleshow.biz.dal.entity.ActivityEvaluation;
 import com.yonge.cooleshow.biz.dal.vo.ActivityMusicVo;
 import com.yonge.cooleshow.biz.dal.vo.MusicSheetVo;
+import com.yonge.cooleshow.biz.dal.vo.activity.ActivityTeacherWrapper;
 
 import java.util.List;
 
@@ -60,4 +62,19 @@ public interface ActivityEvaluationService extends IService<ActivityEvaluation>
 	 */
 	IPage<MusicSheetVo> musicPage(IPage<MusicSheetVo> page, MusicSheetSearch query);
 
+	/**
+	 * 活动老师信息
+	 * @param page ActivityTeacherWrapper
+	 * @param query ActivityTeacherQuery
+	 * @return IPage<ActivityTeacherWrapper>
+	 */
+	IPage<ActivityTeacherWrapper> activityTeacherPageInfo(IPage<ActivityTeacherWrapper> page, ActivityTeacherQuery query);
+
+	/**
+	 * 按活动时间匹配老师信息
+	 * @param page IPage<ActivityTeacherWrapper>
+	 * @param query ActivityTeacherQuery
+	 * @return IPage<ActivityTeacherWrapper>
+	 */
+	IPage<ActivityTeacherWrapper> activityTeacherByTimePageInfo(IPage<ActivityTeacherWrapper> page, ActivityTeacherQuery query);
 }

+ 24 - 10
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ActivityPlanService.java

@@ -3,22 +3,18 @@ package com.yonge.cooleshow.biz.dal.service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
-
 import com.yonge.cooleshow.biz.dal.dto.ActivityPlanDto;
-
-import com.yonge.cooleshow.auth.api.entity.SysUser;
-import com.yonge.cooleshow.biz.dal.dto.ActivityPlanRewardDto;
+import com.yonge.cooleshow.biz.dal.dto.SaveOrUpdateRewardDto;
 import com.yonge.cooleshow.biz.dal.dto.req.OrderReq;
-
-import com.yonge.cooleshow.biz.dal.vo.ActivityPlanVo;
 import com.yonge.cooleshow.biz.dal.dto.search.ActivityPlanSearch;
 import com.yonge.cooleshow.biz.dal.entity.ActivityPlan;
+import com.yonge.cooleshow.biz.dal.vo.ActivityPlanVo;
 import com.yonge.cooleshow.biz.dal.vo.MusicActivityVo;
 import com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.res.OrderCreateRes;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
-
-import java.util.List;
+import com.yonge.cooleshow.common.enums.ActivityShareEnum;
+import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 
 /**
  * 活动计划表 服务类
@@ -103,8 +99,26 @@ public interface ActivityPlanService extends IService<ActivityPlan>  {
 
 	/**
 	 * 变更活动奖品
-	 * @param updateRewardDtoList
+	 *
+	 * @param saveOrUpdateRewardDto
+	 * @return
+	 */
+    Boolean saveOrUpdateReward(SaveOrUpdateRewardDto saveOrUpdateRewardDto);
+
+
+	/**
+	 * 活动分享
+	 * @param type 分享类型
+	 * @param userId 用户id
+	 * @return
+	 */
+	ActivityPlanVo activityShare(ActivityShareEnum type, Long userId);
+
+	/**
+	 * 检查活动是否进行中
+	 *
+	 * @param activityId 活动id
 	 * @return
 	 */
-    Boolean saveOrUpdateReward(List<ActivityPlanRewardDto> updateRewardDtoList);
+	YesOrNoEnum state(Long activityId);
 }

+ 9 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ActivityUserRewardService.java

@@ -27,4 +27,13 @@ public interface ActivityUserRewardService extends IService<ActivityUserReward>
  	 * @date 2022-08-04
      */
     IPage<UserRewardVo> selectPage(IPage<UserRewardVo> page, ActivityUserRewardSearch query);
+
+	/**
+	 * 订单购买的发奖记录
+	 *
+	 * @param activityId 活动id
+	 * @param rewardId 奖品id
+	 * @param userId 用户id
+	 */
+    void saveRewardRecord(Long activityId, Long rewardId, Long userId);
 }

+ 19 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MemberPriceSettingsService.java

@@ -3,12 +3,14 @@ package com.yonge.cooleshow.biz.dal.service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.dto.VipSubmitReq;
 import com.yonge.cooleshow.biz.dal.dto.req.OrderReq;
 import com.yonge.cooleshow.biz.dal.entity.ActivityReward;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.vo.MemberPriceSettingsVo;
 import com.yonge.cooleshow.biz.dal.dto.search.MemberPriceSettingsSearch;
 import com.yonge.cooleshow.biz.dal.entity.MemberPriceSettings;
+import com.yonge.cooleshow.biz.dal.vo.MemberPriceVo;
 import com.yonge.cooleshow.biz.dal.vo.ShareProfitVo;
 import com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.res.OrderCreateRes;
@@ -66,7 +68,7 @@ public interface MemberPriceSettingsService extends IService<MemberPriceSettings
      * @param activityId 活动id
      * @return
      */
-    void activityReward(Long userId, ClientEnum client, ActivityReward activityReward, Long activityId);
+    void activityReward(Long userId, ClientEnum client, ActivityReward activityReward, Long activityId,String activityName);
 
     /**
      * 老师分享VIP 分润
@@ -76,5 +78,21 @@ public interface MemberPriceSettingsService extends IService<MemberPriceSettings
      * @return
      */
     ShareProfitVo shareVipProfit(SysUser sysUser, Long vipId);
+    /**
+     * 添加会员
+     *
+     * @param vipSubmitReq 会员信息
+     * @param client 类型
+     * @param sysUser
+     * @return
+     */
+    Boolean addVip(VipSubmitReq vipSubmitReq, ClientEnum client, SysUser sysUser);
 
+    /**
+     * 会员信息
+     *
+     * @param query
+     * @return
+     */
+    MemberPriceVo getVipShare(MemberPriceSettingsSearch query);
 }

+ 4 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetAccompanimentService.java

@@ -4,6 +4,8 @@ import com.yonge.cooleshow.biz.dal.dao.MusicSheetAccompanimentDao;
 import com.yonge.cooleshow.biz.dal.entity.MusicSheetAccompaniment;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
+
 /**
  * MusicSheetAccompanimentService服务类
  * @author yzp
@@ -19,4 +21,6 @@ public interface MusicSheetAccompanimentService extends IService<MusicSheetAccom
      */
     void delByMusicSheetId(Long musicSheetId);
     MusicSheetAccompanimentDao getDao();
+
+    List<MusicSheetAccompaniment> getByMusicSheetId(Long musicSheetId);
 }

+ 5 - 5
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetAuthRecordService.java

@@ -3,7 +3,6 @@ package com.yonge.cooleshow.biz.dal.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.yonge.cooleshow.biz.dal.dto.req.TeacherMusicSheetAuditReq;
 import com.yonge.cooleshow.biz.dal.entity.MusicSheetAuthRecord;
-import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
 
 /**
  * 曲目审核表 服务类
@@ -19,14 +18,15 @@ public interface MusicSheetAuthRecordService extends IService<MusicSheetAuthReco
      * @param userId 用户id
      * @return boolean
      */
-    boolean audit(TeacherMusicSheetAuditReq param, Long userId);
+    Long audit(TeacherMusicSheetAuditReq param, Long userId);
 
     /**
      * 设置曲目审核中状态
-     *
-     * @param musicSheetId 曲目id
+     *  @param musicSheetId 曲目id
+     * @param originalMusicSheetId
+     * @param lastMusicSheetId
      */
-    void setAuditDoing(Long musicSheetId);
+    void setAuditDoing(Long musicSheetId, Long originalMusicSheetId, Long lastMusicSheetId);
 
     /**
      * 获取当前曲目审核理由

+ 26 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetService.java

@@ -41,9 +41,10 @@ public interface MusicSheetService extends IService<MusicSheet> {
      *
      * @param id 曲目id
      * @param reason
+     * @param client
      * @return boolean
      */
-    boolean state(Long id, String reason);
+    boolean state(Long id, String reason, ClientEnum client);
 
     /**
      * 获取专辑详情曲目信息
@@ -292,4 +293,28 @@ public interface MusicSheetService extends IService<MusicSheet> {
      * @return
      */
     Boolean stateList(ReasonDto reasonDto);
+
+    /**
+     * 渲染图
+     *
+     * @param musicImg
+     * @param musicSheetId
+     * @return
+     */
+    Boolean updateMusicImg(String musicImg, Long musicSheetId);
+
+    /**
+     *
+     * @param authMusicSheetId 曲目审核id
+     */
+    MusicSheetDetailVo auditDetail(Long authMusicSheetId);
+
+    /**
+     *
+     * 审核历史记录
+     *
+     * @param authMusicSheetId 曲目审核id
+     * @return
+     */
+    List<MusicSheetDetailVo> auditDetailList(Long authMusicSheetId);
 }

برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است