Przeglądaj źródła

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

Eric 2 lat temu
rodzic
commit
26eb2df035
40 zmienionych plików z 663 dodań i 228 usunięć
  1. 1 1
      cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/web/controller/TokenController.java
  2. 11 13
      cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/web/controller/UserController.java
  3. 39 0
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/UserStatusEnum.java
  4. 37 0
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/EmployeeController.java
  5. 1 1
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/MusicSheetController.java
  6. 85 17
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/StudentController.java
  7. 71 10
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/TeacherController.java
  8. 0 1
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/UserAccountRecordController.java
  9. 29 5
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/EmployeeSearch.java
  10. 20 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/StudentSearch.java
  11. 23 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/TeacherSearch.java
  12. 26 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/Teacher.java
  13. 2 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/MessageTypeEnum.java
  14. 0 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/TeacherTagEnum.java
  15. 2 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetService.java
  16. 48 7
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseGroupServiceImpl.java
  17. 0 12
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/HomeServiceImpl.java
  18. 14 6
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetServiceImpl.java
  19. 13 13
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherAuthEntryRecordServiceImpl.java
  20. 2 4
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherServiceImpl.java
  21. 2 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/VideoLessonGroupDetailServiceImpl.java
  22. 10 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/VideoLessonPurchaseRecordServiceImpl.java
  23. 30 15
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/EmployeeVo.java
  24. 18 6
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/LiveCourseInfoVo.java
  25. 19 5
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/StudentVo.java
  26. 5 5
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherMusicSheetVo.java
  27. 14 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherVo.java
  28. 20 6
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/VideoLessonStudentVo.java
  29. 0 25
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/res/HomeTotalTeacher.java
  30. 6 3
      cooleshow-user/user-biz/src/main/resources/config/mybatis/EmployeeMapper.xml
  31. 0 42
      cooleshow-user/user-biz/src/main/resources/config/mybatis/HomeMapper.xml
  32. 3 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetMapper.xml
  33. 4 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/StudentMapper.xml
  34. 1 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/TeacherAuthEntryRecordMapper.xml
  35. 12 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/TeacherMapper.xml
  36. 7 5
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/MusicSheetController.java
  37. 16 11
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherController.java
  38. 2 2
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/VideoLessonGroupController.java
  39. 8 2
      cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/controller/MusicSheetController.java
  40. 62 0
      cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/controller/VideoLessonGroupController.java

+ 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);
 

+ 11 - 13
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/web/controller/UserController.java

@@ -1,24 +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.cooleshow.common.enums.UserLockFlag;
-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;
@@ -48,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;
@@ -333,7 +329,7 @@ public class UserController extends BaseController {
     /**
      * 启用/冻结
      */
-    @GetMapping(value = "/changeLock/{userId}/{lockFlag}/{userType}")
+    @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),
@@ -341,8 +337,8 @@ public class UserController extends BaseController {
     })
     @ApiOperation(value = "启用/冻结", notes = "传入lockFlag")
     public HttpResponseResult<Boolean> changeLock(@PathVariable("userId") Long userId
-            , @PathVariable("lockFlag") Integer lockFlag, @PathVariable("userType") SysUserType sysUserType) {
-        if (userId == null || lockFlag == null || sysUserType == null) {
+            , @PathVariable("userStatus") String userStatus, @PathVariable("userType") SysUserType sysUserType) {
+        if (userId == null || StringUtils.isBlank(userStatus) || sysUserType == null) {
             return failed("参数校验异常");
         }
         SysUser sysUser = sysUserService.queryUserInfo(userId);
@@ -352,13 +348,15 @@ public class UserController extends BaseController {
         if (sysUser.getId() != userId.longValue()) {
             return failed("非法操作");
         }
+        UserStatusEnum userStatusEnum = UserStatusEnum.codeOf(userStatus);
         //退出对应用户
-        if (UserLockFlag.LOCKED.getCode().equals(lockFlag)) {
+        if (UserStatusEnum.NORMAL != userStatusEnum) {
             loginOut(sysUser, sysUserType);
         }
         //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();
     }

+ 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;
+	}
+}

+ 37 - 0
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;
@@ -60,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));
     }
 

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

@@ -203,7 +203,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));
     }
 
 

+ 85 - 17
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/StudentController.java

@@ -1,5 +1,10 @@
 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;
@@ -8,36 +13,39 @@ 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.cooleshow.biz.dal.service.TeacherService;
 import com.yonge.cooleshow.biz.dal.service.VipCardRecordService;
-import com.yonge.cooleshow.biz.dal.vo.VipCardRecordVo;
-import com.yonge.cooleshow.biz.dal.vo.VipRecordVo;
-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.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")
@@ -72,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));
 	}
 
@@ -82,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[]{
+                    "年龄", "专业", "手机号码", "是否是会员", "注册时间","用户状态"}, new String[]{
                     "userId","username" , "realName", "gender.msg", "birthdate", "age", "subjectName", "phone",
-                    "isVip.msg", "createTime"}, rows);
+                    "isVip.msg", "createTime", "userStatus.msg"}, rows);
             response.setContentType("application/octet-stream");
             response.setHeader("Content-Disposition", "attac:wq" +
                     "hment;filename=学生列表-" + DateUtil.getDate(new Date()) + ".xls");

+ 71 - 10
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/TeacherController.java

@@ -1,14 +1,5 @@
 package com.yonge.cooleshow.admin.controller;
 
-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.VipRecordSearch;
-import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
-import com.yonge.cooleshow.biz.dal.service.MemberPriceSettingsService;
-import com.yonge.cooleshow.biz.dal.service.UserAccountService;
-import com.yonge.cooleshow.biz.dal.service.VipCardRecordService;
-import com.yonge.cooleshow.biz.dal.vo.VipRecordVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -36,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;
@@ -93,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));
     }
 
@@ -113,10 +145,39 @@ 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", "教资"));
@@ -127,7 +188,7 @@ public class TeacherController extends BaseController {
             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");

+ 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));
     }

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

@@ -1,15 +1,17 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+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;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.util.Date;
 
 /**
  * @Author: liweifan
@@ -34,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;
     }
@@ -87,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;
+	}
 }

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

@@ -25,6 +25,7 @@ public class StudentSearch extends QueryInfo{
     private String subjectId;
     @ApiModelProperty(value = "0-正常, 1-锁定")
     private UserLockFlag lockFlag;
+    private YesOrNoEnum delFlag;
     @ApiModelProperty(value = "是否会员 0否 1是")
     private YesOrNoEnum isVip;
     @ApiModelProperty(value = "注册开始时间")
@@ -35,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;
@@ -95,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;
+	}
 }

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

@@ -1,7 +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;
 
@@ -22,8 +24,13 @@ public class TeacherSearch extends QueryInfo{
     @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;
@@ -64,4 +71,20 @@ public class TeacherSearch extends QueryInfo{
 	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;
+	}
 }

+ 26 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/Teacher.java

@@ -151,6 +151,15 @@ public class Teacher implements Serializable {
     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")
@@ -205,6 +214,23 @@ public class Teacher implements Serializable {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
     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;
     }

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

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

+ 0 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/TeacherTagEnum.java

@@ -15,8 +15,6 @@ public enum TeacherTagEnum implements BaseEnum<String, TeacherTagEnum> {
     STYLE("个人风采"),
     VIDEO("视频课"),
     MUSIC("曲目"),
-    DEGREE("学历"),
-    TEACHER("教资"),
     LIVE("直播课");
     @EnumValue
     private String code;

+ 2 - 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);
 
     /**
      * 获取专辑详情曲目信息

+ 48 - 7
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseGroupServiceImpl.java

@@ -154,7 +154,9 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
         Teacher teacher = teacherService.getById(teacherUser.getId());
 
         if (teacher != null) {
-            result.setTeacherTag(teacher.getTag());
+            result.setDegreeFlag(teacher.getDegreeFlag());
+            result.setTeacherFlag(teacher.getTeacherFlag());
+
         }
         result.setTeacherName(teacherUser.getRealName());
         result.setUserName(teacherUser.getUsername());
@@ -882,6 +884,14 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
         //查询学生信息
         SysUser studentInfo = getSysUser(studentPayment.getUserId());
         try {
+
+            String payType = "";
+            if (studentPayment.getActualPrice().compareTo(BigDecimal.ZERO) >0) {
+                payType = "购买";
+            } else {
+                payType = "领取";
+            }
+
             //极光-消息推送-学生端-通知学生购买成功-跳转到APP
             MessageTypeEnum liveBuy = MessageTypeEnum.LIVE_BUY;
             //查询推送跳转的url
@@ -889,7 +899,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
             Map<Long, String> studentReceivers = new HashMap<>();
             studentReceivers.put(studentInfo.getId(), studentInfo.getPhone());
             sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, liveBuy,
-                    studentReceivers, null, 0, liveBuyUrl, ClientEnum.STUDENT.getCode(),
+                    studentReceivers, null, 0, liveBuyUrl, ClientEnum.STUDENT.getCode(),payType,
                     teacherInfo.getUsername(), courseGroup.getName());
             log.info("buyLiveCourseSuccess buyLiveSendMessage LIVE_BUY ok");
 
@@ -900,7 +910,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
             Map<Long, String> smsStudentReceivers = new HashMap<>();
             smsStudentReceivers.put(studentInfo.getId(), studentInfo.getPhone());
             sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, smsLiveBuy,
-                    smsStudentReceivers, null, 0, null, null,
+                    smsStudentReceivers, null, 0, null, null,payType,
                     teacherInfo.getUsername(), courseGroup.getName(), smsLiveBuyUrl);
             log.info("buyLiveCourseSuccess buyLiveSendMessage SMS_BUY_LIVE ok");
 
@@ -1120,14 +1130,15 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
         }
         courseGroupList.forEach(courseGroup -> {
             try {
+                List<CourseScheduleStudentPayment> list = courseScheduleStudentPaymentService.list(Wrappers.<CourseScheduleStudentPayment>lambdaQuery()
+                                           .eq(CourseScheduleStudentPayment::getCourseGroupId, courseGroup.getId()));
+                Set<Long> userIds = list.stream().map(CourseScheduleStudentPayment::getUserId).collect(Collectors.toSet());
                 if (courseGroup.getPreStudentNum() >= courseGroup.getMixStudentNum() &&courseGroup.getStatus().equals(CourseGroupEnum.APPLY.getCode())) {
                     //人数达标则修改课程组为进行中状态
                     courseGroup.setStatus(CourseGroupEnum.ING.getCode());
                     //创建群聊 并添加人员到群中
                     String imGroupId = imGroupService.autoCreate(courseGroup.getId(), courseGroup.getType());
-                    List<CourseScheduleStudentPayment> list = courseScheduleStudentPaymentService.list(Wrappers.<CourseScheduleStudentPayment>lambdaQuery()
-                            .eq(CourseScheduleStudentPayment::getCourseGroupId, courseGroup.getId()));
-                    Set<Long> userIds = list.stream().map(CourseScheduleStudentPayment::getUserId).collect(Collectors.toSet());
+
                     imGroupMemberService.initGroupMembers(imGroupId, userIds, ImGroupMemberRoleType.STUDENT);
                     //添加老师进群
                     imGroupMemberService.initGroupMembers(imGroupId, Collections.singleton(courseGroup.getTeacherId()), ImGroupMemberRoleType.TEACHER);
@@ -1140,8 +1151,12 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
                             .eq(CourseSchedule::getCourseGroupId, courseGroup.getId())
                             .set(CourseSchedule::getStatus, CourseScheduleEnum.CANCEL.getCode())
                     );
-                    //直播课成课失败发送消息
+                    // 老师直播课成课失败发送消息
                     this.sendMessage(courseGroup);
+
+                    // 学生直播课成课失败发送消息
+                    this.sendStudentMessage(userIds,courseGroup);
+
                     //退款
                     this.refund(courseGroup);
                 }
@@ -1154,6 +1169,32 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
         });
     }
 
+    private void sendStudentMessage(Set<Long> userIds, CourseGroup courseGroup) {
+        for (Long userId : userIds) {
+
+                SysUser user = sysUserFeignService.queryUserById(userId);
+                // 发短信
+                try {
+                    Map<Long, String> receivers = new HashMap<>();
+                    receivers.put(user.getId(), user.getPhone());
+                    sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.SMS_STUDENT_LIVE_COMPLETION_FAIL,
+                                                       receivers, null, 0, null, null, courseGroup.getName());
+                } catch (Exception e) {
+                    log.warn("学生直播课成课失败短信发送失败,{}", e.getMessage());
+                }
+
+                // 发推送
+                try {
+                    Map<Long, String> receivers = new HashMap<>();
+                    receivers.put(user.getId(), user.getPhone());
+                    sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_LIVE_COMPLETION_FAIL,
+                                                       receivers, null, 0, null, ClientEnum.STUDENT.getCode(), courseGroup.getName());
+                } catch (Exception e) {
+                    log.warn("学生直播课成课失败推送发送失败,{}", e.getMessage());
+                }
+        }
+    }
+
     /**
      * 直播课成课失败退款
      *

+ 0 - 12
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/HomeServiceImpl.java

@@ -79,8 +79,6 @@ public class HomeServiceImpl implements HomeService {
         Integer videoTagNum = 0;
         Integer liveTagNum = 0;
         Integer musicTagNum = 0;
-        Integer degreeTagNum = 0;
-        Integer teacherTagNum = 0;
         for (HomeTotalTeacher totalTeacher : totalList) {
             totalTeacher.setRegisterNum(null == totalTeacher.getRegisterNum() ? 0 : totalTeacher.getRegisterNum());
             totalTeacher.setEntryNum(null == totalTeacher.getEntryNum() ? 0 : totalTeacher.getEntryNum());
@@ -93,21 +91,15 @@ public class HomeServiceImpl implements HomeService {
                 List<TagTotalTeacher> musicTagList = typeGroup.get(TeacherTagEnum.MUSIC.getCode());
                 List<TagTotalTeacher> styleTagList = typeGroup.get(TeacherTagEnum.STYLE.getCode());
                 List<TagTotalTeacher> videoTagList = typeGroup.get(TeacherTagEnum.VIDEO.getCode());
-                List<TagTotalTeacher> degreeTagList = typeGroup.get(TeacherTagEnum.DEGREE.getCode());
-                List<TagTotalTeacher> teacherTagList = typeGroup.get(TeacherTagEnum.TEACHER.getCode());
                 totalTeacher.setLiveTagNum(CollectionUtils.isEmpty(liveTagList) ? 0:liveTagList.size());
                 totalTeacher.setMusicTagNum(CollectionUtils.isEmpty(musicTagList) ? 0:musicTagList.size());
                 totalTeacher.setStyleTagNum(CollectionUtils.isEmpty(styleTagList) ? 0:styleTagList.size());
                 totalTeacher.setVideoTagNum(CollectionUtils.isEmpty(videoTagList) ? 0:videoTagList.size());
-                totalTeacher.setDegreeTagNum(CollectionUtils.isEmpty(degreeTagList) ? 0:degreeTagList.size());
-                totalTeacher.setTeacherTagNum(CollectionUtils.isEmpty(teacherTagList) ? 0:teacherTagList.size());
             } else {
                 totalTeacher.setLiveTagNum(0);
                 totalTeacher.setMusicTagNum(0);
                 totalTeacher.setStyleTagNum(0);
                 totalTeacher.setVideoTagNum(0);
-                totalTeacher.setDegreeTagNum(0);
-                totalTeacher.setTeacherTagNum(0);
             }
 
 
@@ -129,8 +121,6 @@ public class HomeServiceImpl implements HomeService {
             videoTagNum += totalTeacher.getVideoTagNum();
             liveTagNum += totalTeacher.getLiveTagNum();
             musicTagNum += totalTeacher.getMusicTagNum();
-            degreeTagNum += totalTeacher.getDegreeTagNum();
-            teacherTagNum += totalTeacher.getTeacherTagNum();
         }
         HomeTotalTeacher total = new HomeTotalTeacher();
         total.setRegisterNum(registerNum);
@@ -142,8 +132,6 @@ public class HomeServiceImpl implements HomeService {
         total.setVideoTagNum(videoTagNum);
         total.setLiveTagNum(liveTagNum);
         total.setMusicTagNum(musicTagNum);
-        total.setDegreeTagNum(degreeTagNum);
-        total.setTeacherTagNum(teacherTagNum);
         total.setInfoList(totalList);
         return HttpResponseResult.succeed(total);
     }

+ 14 - 6
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetServiceImpl.java

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.biz.dal.service.impl;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.additional.update.impl.LambdaUpdateChainWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
@@ -139,7 +140,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public boolean state(Long id, String reason) {
+    public boolean state(Long id, String reason, ClientEnum client) {
         MusicSheet musicSheet = this.getById(id);
         if (musicSheet == null) {
             throw new BizException("未找到曲目信息");
@@ -151,7 +152,9 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
             musicSheet.setTopFlag(YesOrNoEnum.NO);
 
             // 下架发送推送
-            sendOutSaleMessage(reason, musicSheet);
+            if (client.equals(ClientEnum.SYSTEM)) {
+                sendOutSaleMessage(reason, musicSheet);
+            }
 
         }
         musicSheet.setReason(reason);
@@ -1007,10 +1010,15 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
         if (CollectionUtils.isEmpty(musicSheetList)) {
             return true;
         }
-        this.lambdaUpdate()
-            .in(MusicSheet::getId,musicSheetList.stream().map(MusicSheet::getId).collect(Collectors.toList()))
-            .set(MusicSheet::getState,reasonDto.getState())
-            .update();
+        LambdaUpdateChainWrapper<MusicSheet> wrapper = this.lambdaUpdate()
+                                                       .in(MusicSheet::getId, musicSheetList.stream()
+                                                                .map(MusicSheet::getId)
+                                                                .collect(Collectors.toList()))
+                                                       .set(MusicSheet::getState, reasonDto.getState());
+        if (reasonDto.getState().equals(YesOrNoEnum.NO)) {
+            wrapper.set(MusicSheet::getTopFlag,0);
+        }
+        wrapper.update();
 
         // 发送推送
         if (reasonDto.getState().equals(YesOrNoEnum.YES)){

+ 13 - 13
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherAuthEntryRecordServiceImpl.java

@@ -94,9 +94,9 @@ public class TeacherAuthEntryRecordServiceImpl extends ServiceImpl<TeacherAuthEn
             if (null == teacher) {
                 continue;
             }
-            if (YesOrNoEnum.YES.equals(teacher.getEntryFlag())) {
+            /*if (YesOrNoEnum.YES.equals(teacher.getEntryFlag())) {
                 continue;
-            }
+            }*/
             if (authOperaReq.getPass()) {
                 teacher.setSubjectId(StringUtil.isEmpty(teacher.getSubjectId()) ? build.getSubjectId() : teacher.getSubjectId());
                 teacher.setIntroduction(StringUtil.isEmpty(teacher.getIntroduction()) ? build.getIntroduction() : teacher.getIntroduction());
@@ -110,10 +110,10 @@ public class TeacherAuthEntryRecordServiceImpl extends ServiceImpl<TeacherAuthEn
                 String styleVideoJson = build.getStyleVideoJson();
                 saveStyleVideo(styleVideoJson, build.getUserId(), sysUser.getId());
 
+                setTag(authOperaReq, build, teacher);
                 //记录达人认证时间
                 userFirstTimeService.recordTime(build.getUserId(), ClientEnum.TEACHER, UserFirstTimeTypeEnum.ENTRY);
 
-                setTag(authOperaReq, build, teacher);
             }
             if (null == teacher.getEntryFlag() || YesOrNoEnum.NO.equals(teacher.getEntryFlag())) {
                 teacher.setEntryFlag(authOperaReq.getPass() ? YesOrNoEnum.YES : YesOrNoEnum.NO);
@@ -135,20 +135,20 @@ public class TeacherAuthEntryRecordServiceImpl extends ServiceImpl<TeacherAuthEn
     private void setTag(AuthOperaReq authOperaReq, TeacherAuthEntryRecord build, TeacherVo teacher) {
         if (authOperaReq.getPass()) {
             if (!StringUtil.isEmpty(teacher.getTeacherCertificate())) {
-                teacherService.setTeacherTag(build.getUserId(), TeacherTagEnum.TEACHER);
-            } else if (!StringUtil.isEmpty(teacher.getTag())) {
-                teacher.setTag(Arrays.stream(teacher.getTag().split(","))
-                        .filter(s -> !s.equals("TEACHER"))
-                        .collect(Collectors.joining(",")));
+                teacher.setTeacherDate(new Date());
+                teacher.setTeacherFlag(YesOrNoEnum.YES);
+            } else {
+                teacher.setTeacherFlag(YesOrNoEnum.NO);
+                teacher.setTeacherDate(null);
             }
         }
         if (authOperaReq.getPass()) {
             if (!StringUtil.isEmpty(teacher.getDegreeCertificate()) && !StringUtil.isEmpty(teacher.getGradCertificate())) {
-                teacherService.setTeacherTag(build.getUserId(), TeacherTagEnum.DEGREE);
-            } else if (!StringUtil.isEmpty(teacher.getTag())) {
-                teacher.setTag(Arrays.stream(teacher.getTag().split(","))
-                        .filter(s -> !s.equals("DEGREE"))
-                        .collect(Collectors.joining(",")));
+                teacher.setDegreeFlag(YesOrNoEnum.YES);
+                teacher.setDegreeDate(new Date());
+            } else  {
+                teacher.setDegreeFlag(YesOrNoEnum.NO);
+                teacher.setDegreeDate(null);
             }
         }
     }

+ 2 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherServiceImpl.java

@@ -118,6 +118,8 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
         TeacherHomeVo teacherHomeVo = new TeacherHomeVo();
         BeanUtils.copyProperties(teacher, teacherHomeVo);
 
+        teacherHomeVo.setDegreeDate(teacher.getDegreeDate());
+        teacherHomeVo.setTeacherDate(teacher.getTeacherDate());
         //身份证号、手机号脱敏
         teacherHomeVo.setIdCardNo(ValueUtil.fuzzyIdCard(teacherHomeVo.getIdCardNo()));
         teacherHomeVo.setPhone(ValueUtil.fuzzyMobile(teacherHomeVo.getPhone()));
@@ -520,10 +522,6 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
             teacherVo.setLiveDate(new Date());
         } else if (teacherTagEnum.equals(TeacherTagEnum.VIDEO)) {
             teacherVo.setLiveDate(new Date());
-        } else if (teacherTagEnum.equals(TeacherTagEnum.TEACHER)) {
-            teacherVo.setTeacherDate(new Date());
-        } else if (teacherTagEnum.equals(TeacherTagEnum.DEGREE)) {
-            teacherVo.setDegreeDate(new Date());
         }
     }
 

+ 2 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/VideoLessonGroupDetailServiceImpl.java

@@ -177,7 +177,8 @@ public class VideoLessonGroupDetailServiceImpl extends ServiceImpl<VideoLessonGr
 
         Teacher teacher = teacherService.getById(videoLessonGroupVo.getTeacherId());
         if (teacher != null) {
-            lessonStudentVo.setTeacherTag(teacher.getTag());
+            lessonStudentVo.setTeacherFlag(teacher.getTeacherFlag());
+            lessonStudentVo.setDegreeFlag(teacher.getDegreeFlag());
         }
 
         lessonStudentVo.setLessonGroup(videoLessonGroupVo);

+ 10 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/VideoLessonPurchaseRecordServiceImpl.java

@@ -236,10 +236,18 @@ public class VideoLessonPurchaseRecordServiceImpl extends ServiceImpl<VideoLesso
         }
 
         //学生端-购买视频课
+        String payType = "";
+        if (lesson.getLessonPrice().compareTo(BigDecimal.ZERO) >0) {
+            payType = "购买";
+        } else {
+            payType = "领取";
+        }
         try {
+
+
             String url = sysMessageService.selectConfigUrl(MessageTypeEnum.VIDEO_BUY.getCode(), lesson.getId());
             sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.VIDEO_BUY,
-                    studentReceivers, null, 0, url, ClientEnum.STUDENT.getCode(),
+                    studentReceivers, null, 0, url, ClientEnum.STUDENT.getCode(),payType,
                     teacher.getUsername(), lesson.getLessonName());
             log.info("send success {}", MessageTypeEnum.VIDEO_BUY);
         } catch (Exception e) {
@@ -250,7 +258,7 @@ public class VideoLessonPurchaseRecordServiceImpl extends ServiceImpl<VideoLesso
         //学生端-购买视频课(短信)
         try {
             sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.SMS_VIDEO_BUY,
-                    studentSMS, null, 0, null, null,
+                    studentSMS, null, 0, null, null,payType,
                     teacher.getUsername(), lesson.getLessonName());
             log.info("sms send success {}", MessageTypeEnum.SMS_VIDEO_BUY);
         } catch (Exception e) {

+ 30 - 15
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/EmployeeVo.java

@@ -1,15 +1,18 @@
 package com.yonge.cooleshow.biz.dal.vo;
 
-import com.yonge.cooleshow.auth.api.entity.SysUser;
-import com.yonge.cooleshow.biz.dal.entity.Employee;
-import com.yonge.cooleshow.biz.dal.enums.GenderEnum;
-import com.yonge.cooleshow.common.enums.UserLockFlag;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import org.springframework.beans.BeanUtils;
 
 import java.util.List;
 
+import org.springframework.beans.BeanUtils;
+
+import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.entity.Employee;
+import com.yonge.cooleshow.biz.dal.enums.GenderEnum;
+import com.yonge.cooleshow.common.enums.UserStatusEnum;
+import com.yonge.cooleshow.common.enums.YesOrNoEnum;
+
 /**
  * @Author: liweifan
  * @Data: 2022-04-06 16:04:57
@@ -25,13 +28,17 @@ public class EmployeeVo extends Employee {
     private String phone;
     @ApiModelProperty(value = "头像")
     private String avatar;
-    @ApiModelProperty(value = "0-正常, 1-锁定")
-    private UserLockFlag lockFlag;
     @ApiModelProperty(value = "角色id列表")
     private List<Long> roleIds;
     @ApiModelProperty(value = "用户对象")
     private SysUser sysUser;
 
+    @ApiModelProperty(value = "是否注销 0否 1是")
+    private YesOrNoEnum delFlag;
+
+    @ApiModelProperty(value = "用户状态 NORMAL-正常   LOCKED-冻结  CLOSED-关闭")
+    private UserStatusEnum userStatus;
+
     public String getUsername() {
         return username;
     }
@@ -61,14 +68,6 @@ public class EmployeeVo extends Employee {
         this.phone = phone;
     }
 
-    public UserLockFlag getLockFlag() {
-        return lockFlag;
-    }
-
-    public void setLockFlag(UserLockFlag lockFlag) {
-        this.lockFlag = lockFlag;
-    }
-
     public List<Long> getRoleIds() {
         return roleIds;
     }
@@ -100,4 +99,20 @@ public class EmployeeVo extends Employee {
         BeanUtils.copyProperties(employee, this);
         return this;
     }
+
+	public YesOrNoEnum getDelFlag() {
+		return delFlag;
+	}
+
+	public void setDelFlag(YesOrNoEnum delFlag) {
+		this.delFlag = delFlag;
+	}
+
+	public UserStatusEnum getUserStatus() {
+		return userStatus;
+	}
+
+	public void setUserStatus(UserStatusEnum userStatus) {
+		this.userStatus = userStatus;
+	}
 }

+ 18 - 6
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/LiveCourseInfoVo.java

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.biz.dal.vo;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.yonge.cooleshow.biz.dal.entity.CourseTimeEntity;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
@@ -29,17 +30,28 @@ public class LiveCourseInfoVo extends CourseGroupVo implements Serializable {
     @ApiModelProperty(value = "是否审核时可见 (0:否  1:是)")
     private YesOrNoEnum auditVersion = YesOrNoEnum.NO;
 
-    @ApiModelProperty("老师标签")
-    private String teacherTag;
+    @ApiModelProperty("学位认证 0:未认证 1:已认证 ")
+    private YesOrNoEnum degreeFlag;
 
-    public String getTeacherTag() {
-        return teacherTag;
+
+    @ApiModelProperty("教师资格认证 0:未认证 1:已认证 ")
+    private YesOrNoEnum teacherFlag;
+
+    public YesOrNoEnum getDegreeFlag() {
+        return degreeFlag;
     }
 
-    public void setTeacherTag(String teacherTag) {
-        this.teacherTag = teacherTag;
+    public void setDegreeFlag(YesOrNoEnum degreeFlag) {
+        this.degreeFlag = degreeFlag;
     }
 
+    public YesOrNoEnum getTeacherFlag() {
+        return teacherFlag;
+    }
+
+    public void setTeacherFlag(YesOrNoEnum teacherFlag) {
+        this.teacherFlag = teacherFlag;
+    }
 
     public YesOrNoEnum getAuditVersion() {
         return auditVersion;

+ 19 - 5
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/StudentVo.java

@@ -1,15 +1,18 @@
 package com.yonge.cooleshow.biz.dal.vo;
 
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.yonge.cooleshow.biz.dal.entity.Student;
-import com.yonge.cooleshow.biz.dal.enums.GenderEnum;
-import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 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.entity.Student;
+import com.yonge.cooleshow.biz.dal.enums.GenderEnum;
+import com.yonge.cooleshow.common.enums.UserStatusEnum;
+import com.yonge.cooleshow.common.enums.YesOrNoEnum;
+
 /**
  * @Author: liweifan
  * @Data: 2022/3/24 17:22
@@ -48,6 +51,9 @@ public class StudentVo extends Student {
     @ApiModelProperty(value = "是否注销 0否 1是")
     private YesOrNoEnum delFlag;
 
+    @ApiModelProperty(value = "用户状态 NORMAL-正常   LOCKED-冻结  CLOSED-关闭")
+    private UserStatusEnum userStatus;
+
     public YesOrNoEnum getDelFlag() {
         return delFlag;
     }
@@ -165,4 +171,12 @@ public class StudentVo extends Student {
     public void setUserType(String userType) {
         this.userType = userType;
     }
+
+	public UserStatusEnum getUserStatus() {
+		return userStatus;
+	}
+
+	public void setUserStatus(UserStatusEnum userStatus) {
+		this.userStatus = userStatus;
+	}
 }

+ 5 - 5
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherMusicSheetVo.java

@@ -19,7 +19,7 @@ public class TeacherMusicSheetVo {
     private Long authMusicSheetId;
 
     @ApiModelProperty("0:新增,1:修改")
-    private Integer authType;
+    private Integer firstAuth;
 
     @ApiModelProperty("老师编号ID")
     private Long teacherId;
@@ -69,12 +69,12 @@ public class TeacherMusicSheetVo {
     @ApiModelProperty("审批人姓名")
     private String auditName;
 
-    public Integer getAuthType() {
-        return authType;
+    public Integer getFirstAuth() {
+        return firstAuth;
     }
 
-    public void setAuthType(Integer authType) {
-        this.authType = authType;
+    public void setFirstAuth(Integer firstAuth) {
+        this.firstAuth = firstAuth;
     }
 
     public Long getAuthMusicSheetId() {

+ 14 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherVo.java

@@ -4,11 +4,13 @@ import com.fasterxml.jackson.annotation.JsonFormat;
 import com.yonge.cooleshow.biz.dal.entity.Teacher;
 import com.yonge.cooleshow.biz.dal.entity.TeacherStyleVideo;
 import com.yonge.cooleshow.biz.dal.enums.GenderEnum;
-
 import com.yonge.cooleshow.common.enums.UserLockFlag;
+import com.yonge.cooleshow.common.enums.UserStatusEnum;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
+
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.util.Date;
@@ -63,6 +65,9 @@ public class TeacherVo extends Teacher {
     
     private String tag;
 
+    @ApiModelProperty(value = "用户状态 NORMAL-正常   LOCKED-冻结  CLOSED-关闭")
+    private UserStatusEnum userStatus;
+
     public YesOrNoEnum getDelFlag() {
         return delFlag;
     }
@@ -224,4 +229,12 @@ public class TeacherVo extends Teacher {
 	public void setTag(String tag) {
 		this.tag = tag;
 	}
+
+	public UserStatusEnum getUserStatus() {
+		return userStatus;
+	}
+
+	public void setUserStatus(UserStatusEnum userStatus) {
+		this.userStatus = userStatus;
+	}
 }

+ 20 - 6
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/VideoLessonStudentVo.java

@@ -1,7 +1,9 @@
 package com.yonge.cooleshow.biz.dal.vo;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.yonge.cooleshow.biz.dal.entity.VideoLessonGroupDetail;
 import com.yonge.cooleshow.common.entity.BaseEntity;
+import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -23,15 +25,27 @@ public class VideoLessonStudentVo extends BaseEntity {
     @ApiModelProperty(value = "true 自己的课,false 其他老师的课程")
     private Boolean myself;
 
-    @ApiModelProperty("老师标签")
-    private String teacherTag;
+    @ApiModelProperty("学位认证 0:未认证 1:已认证 ")
+    private YesOrNoEnum degreeFlag;
 
-    public String getTeacherTag() {
-        return teacherTag;
+
+    @ApiModelProperty("教师资格认证 0:未认证 1:已认证 ")
+    private YesOrNoEnum teacherFlag;
+
+    public YesOrNoEnum getDegreeFlag() {
+        return degreeFlag;
+    }
+
+    public void setDegreeFlag(YesOrNoEnum degreeFlag) {
+        this.degreeFlag = degreeFlag;
+    }
+
+    public YesOrNoEnum getTeacherFlag() {
+        return teacherFlag;
     }
 
-    public void setTeacherTag(String teacherTag) {
-        this.teacherTag = teacherTag;
+    public void setTeacherFlag(YesOrNoEnum teacherFlag) {
+        this.teacherFlag = teacherFlag;
     }
 
     public Boolean getMyself() {

+ 0 - 25
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/res/HomeTotalTeacher.java

@@ -39,31 +39,6 @@ public class HomeTotalTeacher {
     @ApiModelProperty("曲目人数")
     private Integer musicTagNum;
 
-
-    @ApiModelProperty("学历人数")
-    private Integer degreeTagNum;
-
-
-
-    @ApiModelProperty("教资人数")
-    private Integer teacherTagNum;
-
-    public Integer getDegreeTagNum() {
-        return degreeTagNum;
-    }
-
-    public void setDegreeTagNum(Integer degreeTagNum) {
-        this.degreeTagNum = degreeTagNum;
-    }
-
-    public Integer getTeacherTagNum() {
-        return teacherTagNum;
-    }
-
-    public void setTeacherTagNum(Integer teacherTagNum) {
-        this.teacherTagNum = teacherTagNum;
-    }
-
     public Integer getStyleTagNum() {
         return styleTagNum;
     }

+ 6 - 3
cooleshow-user/user-biz/src/main/resources/config/mybatis/EmployeeMapper.xml

@@ -94,15 +94,18 @@
             <if test="null != param.gender">
                 and u.gender_ = #{param.gender}
             </if>
-            <if test="null != param.lockFlag">
-                and (u.lock_flag_ = #{param.lockFlag} or t.lock_flag_ = #{param.lockFlag})
-            </if>
             <if test="param.startTime !=null">
                 <![CDATA[AND t.create_time_ >= #{param.startTime} ]]>
             </if>
             <if test="param.endTime !=null">
                 <![CDATA[AND t.create_time_ < #{param.endTime} ]]>
             </if>
+            <if test="null != param.lockFlag">
+                and t.lock_flag_ = #{param.lockFlag}
+            </if>
+            <if test="null != param.delFlag">
+                and u.del_flag_ = #{param.delFlag}
+            </if>
         </where>
     </select>
 

+ 0 - 42
cooleshow-user/user-biz/src/main/resources/config/mybatis/HomeMapper.xml

@@ -351,48 +351,6 @@
 				<![CDATA[AND video_date_ < #{param.endTime} ]]>
 			</if>
 		</where>
-		UNION all
-
-		SELECT
-		<if test="timeType != null and timeType == 'MONTH'">
-			DATE_FORMAT(degree_date_,'%Y-%m-%d') as timeStr,
-		</if>
-		<if test="timeType != null and timeType == 'YEAR'">
-			DATE_FORMAT(degree_date_,'%Y-%m') as timeStr,
-		</if>
-		user_id_ ,
-		'DEGREE' as tagType
-		FROM
-		teacher
-		<where>
-			<if test="param.startTime !=null">
-				<![CDATA[AND degree_date_ >= #{param.startTime} ]]>
-			</if>
-			<if test="param.endTime !=null">
-				<![CDATA[AND degree_date_ < #{param.endTime} ]]>
-			</if>
-		</where>
-		UNION all
-
-		SELECT
-		<if test="timeType != null and timeType == 'MONTH'">
-			DATE_FORMAT(teacher_date_,'%Y-%m-%d') as timeStr,
-		</if>
-		<if test="timeType != null and timeType == 'YEAR'">
-			DATE_FORMAT(teacher_date_,'%Y-%m') as timeStr,
-		</if>
-		user_id_ ,
-		'TEACHER' as tagType
-		FROM
-		teacher
-		<where>
-			<if test="param.startTime !=null">
-				<![CDATA[AND teacher_date_ >= #{param.startTime} ]]>
-			</if>
-			<if test="param.endTime !=null">
-				<![CDATA[AND teacher_date_ < #{param.endTime} ]]>
-			</if>
-		</where>
 	</select>
 
 	<select id="selectSubjectHome" resultType="com.yonge.cooleshow.biz.dal.vo.SubjectHomeVo">

+ 3 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetMapper.xml

@@ -216,6 +216,7 @@
             ) as musicTagNames
             ,s2.name_ as subjectNames
             ,s2.code_ as code
+        ,su.real_name_ as realName
             ,s2.ai_default_frequency_ as aiDefaultFrequency
         FROM music_sheet t
         left join music_sheet_accompaniment msa on msa.music_sheet_id_ = t.id_
@@ -508,6 +509,7 @@
         ,ms.update_time_ as createTime
         ,if(msar.audit_state_ is null,ms.audit_status_,msar.audit_state_) as auditStatus
         ,su2.username_ as auditName
+        ,msar.first_auth_ as firstAuth
         from music_sheet_auth_record  msar
         left join  music_sheet ms on ms.id_ = msar.music_sheet_id_
         left join sys_user su on su.id_ = ms.create_by_
@@ -685,7 +687,7 @@
                 and #{originalMusicSheetId} = msar.original_music_sheet_id_
             </if>
             <if test="authMusicSheetId != null">
-                and #{authMusicSheetId} != msar.id_
+                and #{authMusicSheetId} &gt; msar.id_
             </if>
         </where>
 

+ 4 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/StudentMapper.xml

@@ -124,7 +124,10 @@
                 <![CDATA[AND t.create_time_ < #{param.endTime} ]]>
             </if>
             <if test="null != param.lockFlag">
-                and (u.lock_flag_ = #{param.lockFlag} or t.lock_flag_ = #{param.lockFlag})
+                and t.lock_flag_ = #{param.lockFlag}
+            </if>
+            <if test="null != param.delFlag">
+                and u.del_flag_ = #{param.delFlag}
             </if>
         </where>
     </select>

+ 1 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/TeacherAuthEntryRecordMapper.xml

@@ -127,7 +127,7 @@
                 AND t.teacher_auth_type_ = #{param.teacherAuthType}
             </if>
         </where>
-        order by field(t.teacher_auth_status_,'DOING') desc, t.create_time_
+        order by field(t.teacher_auth_status_,'DOING') desc, t.create_time_ desc
     </select>
 
     <select id="historyPage" resultType="com.yonge.cooleshow.biz.dal.vo.TeacherAuthEntryRecordVo">

+ 12 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -25,6 +25,10 @@
         <result column="music_date_" property="musicDate" />
         <result column="video_date_" property="videoDate" />
         <result column="style_date_" property="styleDate" />
+        <result column="degree_date_" property="degreeDate" />
+        <result column="teacher_date_" property="teacherDate" />
+        <result column="degree_flag_" property="degreeFlag" />
+        <result column="teacher_flag_" property="teacherFlag" />
         <result column="browse_" property="browse" />
         <result column="memo_" property="memo" />
         <result column="lock_flag_" property="lockFlag" />
@@ -53,6 +57,10 @@
         , t.music_date_ as "musicDate"
         , t.video_date_ as "videoDate"
         , t.style_date_ as "styleDate"
+        , t.degree_date_ as "degreeDate"
+        , t.teacher_date_ as "teacherDate"
+        , t.degree_flag_ as "degreeFlag"
+        , t.teacher_flag_ as "teacherFlag"
         , t.member_rank_setting_id_ as "memberRankSettingId"
         , t.membership_start_time_ as "membershipStartTime"
         , t.membership_end_time_ as "membershipEndTime"
@@ -116,7 +124,10 @@
             	and find_in_set(#{param.tag},t.tag_)
             </if>
             <if test="null != param.lockFlag">
-                and (u.lock_flag_ = #{param.lockFlag} or t.lock_flag_ = #{param.lockFlag})
+                and t.lock_flag_ = #{param.lockFlag}
+            </if>
+            <if test="null != param.delFlag">
+                and u.del_flag_ = #{param.delFlag}
             </if>
         </where>
     </select>

+ 7 - 5
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/MusicSheetController.java

@@ -20,14 +20,12 @@ import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import com.yonge.toolset.base.page.PageInfo;
-import com.yonge.toolset.base.page.QueryInfo;
 import com.yonge.toolset.base.util.StringUtil;
 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.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
@@ -106,7 +104,7 @@ public class MusicSheetController extends BaseController {
         if (musicSheet.getNotation() == null) {
             musicSheet.setNotation(YesOrNoEnum.NO);
         }
-
+        musicSheet.setUserId(sysUser.getId());
         musicSheet.setSubmitAuditTime(new Date());
         musicSheet.setCreateTime(new Date());
         musicSheet.setCreateBy(sysUser.getId());
@@ -160,7 +158,7 @@ public class MusicSheetController extends BaseController {
      */
     @PostMapping("/state/{id}")
     @ApiOperation(value = "启用/停用", notes = "传入id")
-    public HttpResponseResult<Boolean> state(@ApiParam(value = "曲目编号", required = true)  @PathVariable Long id, @RequestBody ReasonDto reasonDto) {
+    public HttpResponseResult<Boolean> state(@ApiParam(value = "曲目编号", required = true)  @PathVariable Long id) {
         if (StringUtil.isEmpty(id)) {
             return failed("参数不能为空");
         }
@@ -168,7 +166,11 @@ public class MusicSheetController extends BaseController {
         if (musicSheet == null) {
             return failed("未找到曲目");
         }
-        return status(musicSheetService.state(id,reasonDto.getReason()));
+
+        if (musicSheet.getState().equals(YesOrNoEnum.NO)) {
+            return failed("曲目已被下架");
+        }
+        return status(musicSheetService.state(id, "", ClientEnum.TEACHER));
     }
 
     /**

+ 16 - 11
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherController.java

@@ -1,14 +1,26 @@
 package com.yonge.cooleshow.teacher.controller;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+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.TeacherDto;
 import com.yonge.cooleshow.biz.dal.entity.Subject;
-import com.yonge.cooleshow.biz.dal.enums.GoodTypeEnum;
-import com.yonge.cooleshow.biz.dal.service.SysUserService;
 import com.yonge.cooleshow.biz.dal.service.TeacherService;
-import com.yonge.toolset.mybatis.support.PageUtil;
 import com.yonge.cooleshow.biz.dal.vo.MyFens;
 import com.yonge.cooleshow.biz.dal.vo.TeacherHomeVo;
 import com.yonge.cooleshow.biz.dal.vo.TeacherVo;
@@ -17,14 +29,7 @@ import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.base.page.PageInfo;
 import com.yonge.toolset.base.page.QueryInfo;
 import com.yonge.toolset.base.util.StringUtil;
-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.web.bind.annotation.*;
-
-import java.util.List;
+import com.yonge.toolset.mybatis.support.PageUtil;
 
 @RestController
 @RequestMapping("/teacher")

+ 2 - 2
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/VideoLessonGroupController.java

@@ -184,9 +184,9 @@ public class VideoLessonGroupController extends BaseController {
         if (shelvesVo.getShelvesFlag() != 0) {
             return failed("只能做下架操作");
         }
-        if (shelvesVo.getShelvesFlag() == 0 && StringUtil.isEmpty(shelvesVo.getShelvesReason())) {
+        /*if (shelvesVo.getShelvesFlag() == 0 && StringUtil.isEmpty(shelvesVo.getShelvesReason())) {
             return failed("下架必须要有下架原因");
-        }
+        }*/
 
         shelvesVo.setShelvesId(user.getId());
         shelvesVo.setShelvesTime(new Date());

+ 8 - 2
cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/controller/MusicSheetController.java

@@ -10,6 +10,7 @@ import com.yonge.cooleshow.biz.dal.dto.search.StudentMusicSheetSearch;
 import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
 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.vo.TeacherAuditMusicSheetVo;
@@ -155,7 +156,7 @@ public class MusicSheetController extends BaseController {
      */
     @PostMapping("/state/{id}")
     @ApiOperation(value = "启用/停用", notes = "传入id")
-    public HttpResponseResult<Boolean> state(@ApiParam(value = "曲目编号", required = true)  @PathVariable Long id, @RequestBody ReasonDto reasonDto) {
+    public HttpResponseResult<Boolean> state(@ApiParam(value = "曲目编号", required = true)  @PathVariable Long id) {
         if (StringUtil.isEmpty(id)) {
             return failed("参数不能为空");
         }
@@ -163,7 +164,11 @@ public class MusicSheetController extends BaseController {
         if (musicSheet == null) {
             return failed("未找到曲目");
         }
-        return status(musicSheetService.state(id,reasonDto.getReason()));
+
+        if (musicSheet.getState().equals(YesOrNoEnum.NO)) {
+            return failed("曲目已被下架");
+        }
+        return status(musicSheetService.state(id,"", ClientEnum.TEACHER));
     }
 
 
@@ -178,6 +183,7 @@ public class MusicSheetController extends BaseController {
             return failed("缺少ID");
         }
 
+        musicSheet.setUserId(sysUser.getId());
         musicSheet.setSubmitAuditTime(new Date());
         musicSheet.setCreateTime(new Date());
         musicSheet.setCreateBy(sysUser.getId());

+ 62 - 0
cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/controller/VideoLessonGroupController.java

@@ -0,0 +1,62 @@
+package com.yonge.cooleshow.website.controller;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+import java.util.Date;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.validation.annotation.Validated;
+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.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.service.VideoLessonGroupService;
+import com.yonge.cooleshow.biz.dal.vo.VideoLessonShelvesVo;
+import com.yonge.cooleshow.common.controller.BaseController;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
+
+/**
+ * 视频课基本信息表 web 控制层
+ *
+ **/
+@RestController
+@RequestMapping("/videoLessonGroup")
+@Api(tags = "视频课组")
+public class VideoLessonGroupController extends BaseController {
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+
+    @Autowired
+    private VideoLessonGroupService videoLessonGroupService;
+
+    /**
+     * @Description: 更新上架状态
+     * @Author: cy
+     * @Date: 2022/4/25
+     */
+    @ApiOperation(value = "更新上架状态", httpMethod = "POST", consumes = "application/json", produces = "application/json")
+    @PostMapping(value = "/updateShelves", consumes = "application/json", produces = "application/json")
+    public HttpResponseResult<Object> updateShelves(@Validated @RequestBody VideoLessonShelvesVo shelvesVo) {
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (user == null || null == user.getId()) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        if (shelvesVo.getShelvesFlag() != 0) {
+            return failed("只能做下架操作");
+        }
+        /*if (shelvesVo.getShelvesFlag() == 0 && StringUtil.isEmpty(shelvesVo.getShelvesReason())) {
+            return failed("下架必须要有下架原因");
+        }*/
+
+        shelvesVo.setShelvesId(user.getId());
+        shelvesVo.setShelvesTime(new Date());
+        videoLessonGroupService.updateShelves(shelvesVo);
+        return succeed();
+    }
+
+	}