A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

4 自动添加选课开发
  4.1 学习服务添加选课
4.1.1需求分析
学习服务接收MQ发送添加选课消息,执行添加 选 课操作。 添加选课成功向学生选课表插入记录、向历史任务表插入记录、并向MQ发送“完成选课”消息。
  4.1.2 RabbitMQ配置
学习服务监听MQ的添加选课队列,并且声明完成选课队列,配置代码同订单服务中RabbitMQ配置   4.1.3 Dao
学生选课Dao:
[AppleScript] 纯文本查看 复制代码
public interface XcLearningCourseRepository extends JpaRepository<XcLearningCourse, String> {     //根据用户和课程查询选课记录,用于判断是否添加选课     XcLearningCourse findXcLearningCourseByUserIdAndCourseId(String userId, String courseId); }

历史任务Dao:

[AppleScript] 纯文本查看 复制代码
public interface XcTaskHisRepository extends JpaRepository<XcTaskHis,String> {   }

4.1.4 Service
1、添加选课方法 向xc_learning_course添加记录,为保证不重复添加选课,先查询历史任务表,如果从历史任务表查询不到任务说 明此任务还没有处理,此时则添加选课并添加历史任务。
在学习服务中编码如下代码:

[AppleScript] 纯文本查看 复制代码
//完成选课   
  @Transactional   
  public ResponseResult addcourse(String userId, String courseId,String valid,Date  startTime,Date endTime,XcTask xcTask){         if (StringUtils.isEmpty(courseId)) {    
         ExceptionCast.cast(LearningCode.LEARNING_GETMEDIA_ERROR);    
     }        
 if (StringUtils.isEmpty(userId)) {   
          ExceptionCast.cast(LearningCode.CHOOSECOURSE_USERISNULL);   
      }    
     if(xcTask == null || StringUtils.isEmpty(xcTask.getId())){   
          ExceptionCast.cast(LearningCode.CHOOSECOURSE_TASKISNULL);    
     }          //查询历史任务       
  Optional<XcTaskHis> optional = xcTaskHisRepository.findById(xcTask.getId());   
      if(optional.isPresent()){         
    return new ResponseResult(CommonCode.SUCCESS);     
    }      
   XcLearningCourse xcLearningCourse =  xcLearningCourseRepository.findXcLearningCourseByUserIdAndCourseId(userId, courseId);         if (xcLearningCourse == null) {//没有选课记录则添加      
       xcLearningCourse = new XcLearningCourse();       
      xcLearningCourse.setUserId(userId);      
       xcLearningCourse.setCourseId(courseId);       
      xcLearningCourse.setValid(valid);        
     xcLearningCourse.setStartTime(startTime);     
        xcLearningCourse.setEndTime(endTime);    
         xcLearningCourse.setStatus("501001");    
         xcLearningCourseRepository.save(xcLearningCourse);   
      } else {//有选课记录则更新日期      
       xcLearningCourse.setValid(valid);     
        xcLearningCourse.setStartTime(startTime);     
        xcLearningCourse.setEndTime(endTime);      
       xcLearningCourse.setStatus("501001");      
       xcLearningCourseRepository.save(xcLearningCourse);      
   }   
     //向历史任务表播入记录 
        Optional<XcTaskHis> optional = xcTaskHisRepository.findById(xcTask.getId());    
     if(!optional.isPresent()){       
     //添加历史任务     
        XcTaskHis xcTaskHis = new XcTaskHis();      
       BeanUtils.copyProperties(xcTask,xcTaskHis);     
        xcTaskHisRepository.save(xcTaskHis);
        }

[AppleScript] 纯文本查看 复制代码
return new ResponseResult(CommonCode.SUCCESS);     }




0 个回复

您需要登录后才可以回帖 登录 | 加入黑马