Browse Source

Merge branch 'feature/1106_ref' into test

刘俊驰 9 months ago
parent
commit
1db31e1afe

+ 27 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/TenantAlbumSheetController.java

@@ -12,6 +12,7 @@ import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
 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.MusicSheetService;
 import com.yonge.cooleshow.biz.dal.service.StudentService;
@@ -37,6 +38,7 @@ import javax.validation.Valid;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.stream.Collectors;
 
 /**
@@ -144,4 +146,29 @@ public class TenantAlbumSheetController extends BaseController {
 
     }
 
+
+
+    @ApiOperation(value = "关联课程类型")
+    @PostMapping("/refLevel")
+    public HttpResponseResult<List<LessonCoursewareDetailWrapper.RefLevelDetailInfo>> refLevel(@RequestBody LessonCoursewareDetailWrapper.RefLevelQuery query) {
+
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (user == null || null == user.getId()) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+
+        Student student = studentService.getById(user.getId());
+
+        query.setClientType(ClientEnum.STUDENT);
+        query.setUserId(user.getId());
+        if (!StringUtil.isEmpty(student.getSubjectId())) {
+            query.setSubejctId(Integer.parseInt(student.getSubjectId()));
+        }
+        query.setTenantId(Optional.ofNullable(student.getTenantId()).orElse(-1L));
+        List<LessonCoursewareDetailWrapper.RefLevelDetailInfo> result = tenantAlbumMusicService.refLevel(query);
+
+        return HttpResponseResult.succeed(result);
+    }
+
+
 }

+ 2 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/TenantAlbumSheetController.java

@@ -140,6 +140,8 @@ public class TenantAlbumSheetController extends BaseController {
         }
 
         Teacher teacher = teacherService.getById(user.getId());
+        query.setClientType(ClientEnum.TEACHER);
+        query.setUserId(user.getId());
         query.setTenantId(Optional.ofNullable(teacher.getTenantId()).orElse(-1L));
         List<LessonCoursewareDetailWrapper.RefLevelDetailInfo> result = tenantAlbumMusicService.refLevel(query);
 

+ 1 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/EmployeeDao.java

@@ -133,4 +133,5 @@ public interface EmployeeDao extends BaseDAO<Long, Employee> {
      */
     int insertSysRole(SysRole sysRole);
 
+    void updateSysUserIdCard(@Param("userId") Long userId, @Param("idCardNo") String idCardNo);
 }

+ 3 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/req/TeacherSubmitReq.java

@@ -7,6 +7,7 @@ import lombok.Data;
 
 import javax.validation.constraints.NotBlank;
 import java.io.Serializable;
+import java.util.Optional;
 
 /**
  * @Author: liweifan
@@ -26,11 +27,11 @@ public class TeacherSubmitReq implements Serializable {
     @ApiModelProperty(value = "手机号",required = true)
     private String phone;
 
-    @NotBlank(message = "用户真实姓名不能为空")
+//    @NotBlank(message = "用户真实姓名不能为空")
     @ApiModelProperty(value = "用户真实姓名", required = true)
     private String realName;
 
-    @NotBlank(message = "用户身份证号不能为空")
+//    @NotBlank(message = "用户身份证号不能为空")
     @ApiModelProperty(value = "用户身份证号", required = true)
     private String idCardNo;
 

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

@@ -622,6 +622,8 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
         sysUser = getUserDetil(sysUser, teacherSubmitReq);
         sysUser.setUpdateTime(new Date());
         employeeDao.updateSysUser(sysUser);
+        employeeDao.updateSysUserIdCard(sysUser.getId(),teacherSubmitReq.getIdCardNo());
+
         return sysUser;
     }
 
@@ -906,8 +908,10 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
      * @updateTime 2022/3/23 17:23
      */
     private SysUser getUserDetil(SysUser sysUser, TeacherSubmitReq teacherSubmitReq) throws BizException {
-        if (!teacherSubmitReq.getIdCardNo().equals(sysUser.getIdCardNo())
-                || !teacherSubmitReq.getRealName().equals(sysUser.getRealName())) {
+
+        sysUser.setRealName(teacherSubmitReq.getRealName());
+        sysUser.setIdCardNo(teacherSubmitReq.getIdCardNo());
+        if (!StringUtil.isEmpty(sysUser.getIdCardNo())) {
 
             //实名信息
             RealnameAuthReq realNameAuthDto = new RealnameAuthReq();
@@ -915,17 +919,20 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
             realNameAuthDto.setRealName(teacherSubmitReq.getRealName());
             realNameAuthDto.setSave(false);
 
-            if (!realnameAuthenticationPlugin.verify(realNameAuthDto.getRealName(),realNameAuthDto.getIdCardNo())) {
+            if (!StringUtil.isEmpty(teacherSubmitReq.getIdCardNo()) &&
+                !realnameAuthenticationPlugin.verify(realNameAuthDto.getRealName(),realNameAuthDto.getIdCardNo())) {
                 throw new BizException("实名认证未通过");
             }
 
-            //通过身份证号获取身份信息
-            IdcardInfoExtractor idcardInfo = new IdcardInfoExtractor(realNameAuthDto.getIdCardNo(), false);
-            //身份证解析信息
-            sysUser.setGender(idcardInfo.getGender());
-            sysUser.setBirthdate(idcardInfo.getBirthday());
-            sysUser.setRealName(teacherSubmitReq.getRealName());
-            sysUser.setIdCardNo(teacherSubmitReq.getIdCardNo());
+            if (!StringUtil.isEmpty(teacherSubmitReq.getIdCardNo()) ) {
+                //通过身份证号获取身份信息
+                IdcardInfoExtractor idcardInfo = new IdcardInfoExtractor(realNameAuthDto.getIdCardNo(), false);
+                //身份证解析信息
+                sysUser.setGender(idcardInfo.getGender());
+                sysUser.setBirthdate(idcardInfo.getBirthday());
+                sysUser.setRealName(teacherSubmitReq.getRealName());
+                sysUser.setIdCardNo(teacherSubmitReq.getIdCardNo());
+            }
         }
         if (StringUtil.isEmpty(sysUser.getUserType())) {
             sysUser.setUserType("TEACHER");

+ 27 - 9
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantAlbumMusicServiceImpl.java

@@ -529,19 +529,36 @@ public class TenantAlbumMusicServiceImpl extends ServiceImpl<TenantAlbumMusicMap
         if (query.getTenantId() == null) {
             return new ArrayList<>();
         }
-
+        List<Long> courseIds = new ArrayList<>();
         List<LessonCoursewareDetailWrapper.RefLevelDetailInfo> result = new ArrayList<>();
-        // 查询出机构下的所有可用教材
-        List<TenantAlbumMusic> detail = tenantAlbumMusicService.lambdaQuery()
-            .eq(TenantAlbumMusic::getTenantId, query.getTenantId())
-            .eq(TenantAlbumMusic::getSubjectType, SubjectTypeEnum.COURSEWARE)
-            .eq(TenantAlbumMusic::getDelFlag, false)
-            .list();
-        if (CollectionUtils.isEmpty(detail)) {
+        List<ECourseType> courseTypeList = new ArrayList<>();
+        if (query.getClientType() == ClientEnum.TEACHER) {
+            // 查询出机构下的所有可用教材
+            List<TenantAlbumMusic> detail = tenantAlbumMusicService.lambdaQuery()
+                .eq(TenantAlbumMusic::getTenantId, query.getTenantId())
+                .eq(TenantAlbumMusic::getSubjectType, SubjectTypeEnum.COURSEWARE)
+                .eq(TenantAlbumMusic::getDelFlag, false)
+                .list();
+            if (CollectionUtils.isEmpty(detail)) {
+                return new ArrayList<>();
+            }
+            courseIds = detail.stream().map(TenantAlbumMusic::getMusicSheetId).distinct().collect(Collectors.toList());
+        } else {
+            List<Long> useAlbumIdsByUserId = userTenantAlbumRecordService.getUseAlbumIdsByUserId(query.getUserId(), query.getClientType());
+            if (CollectionUtils.isNotEmpty(useAlbumIdsByUserId)) {
+                courseIds = tenantAlbumMusicService.getTenantAlbumMusicIdsByIds(useAlbumIdsByUserId, Collections.singletonList(SubjectTypeEnum.COURSEWARE));
+            }
+            if (query.getSubejctId() != null) {
+            courseTypeList = courseTypeBySubject(query.getSubejctId().longValue());
+            }
+        }
+        if (CollectionUtils.isEmpty(courseIds)) {
             return new ArrayList<>();
         }
 
 
+
+
         // 根据机构,查询机构可以查看的所有课件,然后根据课件查询对应的课程类型
         List<CbsLessonCoursewareDetailWrapper.Entity> entities = coursewareFeignService.lessonCoursewareDetailLambdaQuery(CbsLessonCoursewareDetailWrapper.LambdaQuery.builder()
             .id(query.getLessonCoursewareDetailId())
@@ -562,7 +579,8 @@ public class TenantAlbumMusicServiceImpl extends ServiceImpl<TenantAlbumMusicMap
         CbsLessonCoursewareWrapper.LessonCoursewareQuery cbsQuery = new CbsLessonCoursewareWrapper.LessonCoursewareQuery();
         cbsQuery.setEnableFlag(true);
 //        cbsQuery.setOrchestraType(lessonCourseware.getOrchestraType());
-        cbsQuery.setLessonCoursewareIds(detail.stream().map(TenantAlbumMusic::getMusicSheetId).distinct().collect(Collectors.toList()));
+        cbsQuery.setLessonCoursewareIds(courseIds);
+        cbsQuery.setCourseTypes(courseTypeList);
         cbsQuery.setPage(1);
         cbsQuery.setRows(9999);
         cbsQuery.setLevel(lessonCourseware.getLevel());

+ 9 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/LessonCoursewareDetailWrapper.java

@@ -4,6 +4,7 @@ import com.dayaedu.cbs.common.enums.school.EKnowledgeType;
 import com.dayaedu.cbs.common.enums.school.EMaterialRefType;
 import com.dayaedu.cbs.common.enums.school.EMaterialType;
 import com.dayaedu.cbs.openfeign.wrapper.courseware.CbsMaterialRefWrapper;
+import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -161,5 +162,13 @@ public class LessonCoursewareDetailWrapper {
 
         @ApiModelProperty(value = "机构ID",hidden = true)
         private Long tenantId;
+
+        @ApiModelProperty("用户类型")
+        private ClientEnum clientType;
+
+        private Integer subejctId;
+
+        @ApiModelProperty("用户ID")
+        private Long userId;
     }
 }

+ 4 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/EmployeeMapper.xml

@@ -329,4 +329,8 @@
             #{userId}
         </foreach>
     </select>
+
+    <update id="updateSysUserIdCard">
+        UPDATE sys_user SET id_card_no_ = #{idCardNo} WHERE id_ = #{userId}
+    </update>
 </mapper>

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

@@ -148,7 +148,8 @@
         <foreach collection="tenantAlbumIds" item="item" index="index" open="(" close=")" separator=",">
             #{item}
         </foreach>
-        and ( t.subject_type_ in  ('ENSEMBLE', 'MUSIC', 'SUBJECT') and t1.tenant_del_flag_ =0 and t1.tenant_state_ = 1)
+        and ((t1.tenant_state_ = 1 and t1.tenant_del_flag_ = 0 and t.subject_type_ in ('ENSEMBLE', 'MUSIC', 'SUBJECT'))
+        or t.subject_type_ not in ('ENSEMBLE', 'MUSIC', 'SUBJECT'))
         and t.subject_type_ in
         <foreach collection="subjectTypes" item="item" index="index" open="(" close=")" separator=",">
             #{item.code}