黑马程序员技术交流社区

标题: 【郑州校区】Java的新项目学成在线笔记-day19(十三) [打印本页]

作者: 谷粒姐姐    时间: 2019-7-17 15:58
标题: 【郑州校区】Java的新项目学成在线笔记-day19(十三)
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);     }









欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2