| | |
| | | import com.xinquan.course.api.feign.RemoteCourseService; |
| | | import com.xinquan.meditation.api.domain.Meditation; |
| | | import com.xinquan.meditation.api.feign.RemoteMeditationService; |
| | | import com.xinquan.system.api.domain.AppUser; |
| | | import com.xinquan.system.api.domain.AppUserTree; |
| | | import com.xinquan.system.api.domain.AppUserViewingHistory; |
| | | import com.xinquan.system.api.domain.*; |
| | | import com.xinquan.system.api.domain.vo.AppUserVO; |
| | | import com.xinquan.system.api.model.LoginUser; |
| | | import com.xinquan.user.api.feign.RemoteAppUserService; |
| | | import com.xinquan.user.service.AppUserEnergyRecordService; |
| | | import com.xinquan.user.service.AppUserService; |
| | | import com.xinquan.user.service.AppUserTreeService; |
| | | import com.xinquan.user.service.AppUserViewingHistoryService; |
| | |
| | | |
| | | /** |
| | | * 远程调用 根据章节id和用户id查询是否观看完毕 |
| | | * |
| | | * @param id |
| | | * @return |
| | | */ |
| | | @PostMapping("/getCourseChapterHistoryState/{id}/{chapterId}") |
| | | public R<Integer> getCourseChapterHistoryState(@PathVariable("id") Long id,@PathVariable("chapterId") Long chapterId) { |
| | | public R<Integer> getCourseChapterHistoryState(@PathVariable("id") Long id, @PathVariable("chapterId") Long chapterId) { |
| | | List<AppUserViewingHistory> list = appUserViewingHistoryService.lambdaQuery() |
| | | .eq(AppUserViewingHistory::getChapterId, chapterId) |
| | | .eq(AppUserViewingHistory::getAppUserId, id) |
| | | .eq(AppUserViewingHistory::getViewingType, 2) |
| | | .list(); |
| | | for (AppUserViewingHistory appUserViewingHistory : list) { |
| | | if (appUserViewingHistory.getIsOver()!=null && appUserViewingHistory.getIsOver()==1){ |
| | | if (appUserViewingHistory.getIsOver() != null && appUserViewingHistory.getIsOver() == 1) { |
| | | return R.ok(1); |
| | | } |
| | | } |
| | |
| | | |
| | | /** |
| | | * 远程调用查询用户观看了哪些课程 |
| | | * |
| | | * @return |
| | | */ |
| | | @PostMapping("/getCourseHistoryByUserId/{id}") |
| | |
| | | .collect(Collectors.toList()); |
| | | return R.ok(one); |
| | | } |
| | | |
| | | @PostMapping("/getMeditationHistoryCount/{id}") |
| | | public R<Long> getMeditationHistoryCount(@PathVariable("id") Long id) { |
| | | List<AppUserViewingHistory> list = appUserViewingHistoryService.lambdaQuery() |
| | |
| | | .list(); |
| | | return R.ok(Long.valueOf(list.size())); |
| | | } |
| | | |
| | | @PostMapping("/getCourseHistoryCount/{id}") |
| | | public R<Long> getCourseHistoryCount(@PathVariable("id") Long id) { |
| | | List<AppUserViewingHistory> list = appUserViewingHistoryService.lambdaQuery() |
| | |
| | | .list(); |
| | | return R.ok(Long.valueOf(list.size())); |
| | | } |
| | | |
| | | @PostMapping("/getCourseChapterHistoryCount/{id}") |
| | | public R<Long> getCourseChapterHistoryCount(@PathVariable("id") Long id) { |
| | | List<AppUserViewingHistory> list = appUserViewingHistoryService.lambdaQuery() |
| | |
| | | .list(); |
| | | return R.ok(Long.valueOf(list.size())); |
| | | } |
| | | |
| | | @PostMapping("/lookHistory") |
| | | @ApiOperation(value = "观看历史") |
| | | @ApiImplicitParams({ |
| | |
| | | }) |
| | | public R<List<OrderCourseVO>> lookHistory(Integer state, Integer pageCurr, Integer pageSize) { |
| | | LoginUser loginUser = tokenService.getLoginUser(); |
| | | if (loginUser==null){ |
| | | if (loginUser == null) { |
| | | return R.tokenError("登录失效"); |
| | | } |
| | | Long userId = loginUser.getUserid(); |
| | | List<OrderCourseVO> orderCourseVOS = new ArrayList<>(); |
| | | |
| | | switch (state){ |
| | | switch (state) { |
| | | case 1: |
| | | List<Long> collect1 = appUserViewingHistoryService.lambdaQuery() |
| | | .eq(AppUserViewingHistory::getAppUserId, userId) |
| | |
| | | .stream().map(AppUserViewingHistory::getBizId).collect(Collectors.toList()); |
| | | List<Long> collect2 = collect1.stream().distinct().collect(Collectors.toList()); |
| | | StringBuilder temp = new StringBuilder(); |
| | | if (collect1.isEmpty()){ |
| | | temp=temp.append("-1"); |
| | | }else{ |
| | | if (collect1.isEmpty()) { |
| | | temp = temp.append("-1"); |
| | | } else { |
| | | for (Long l : collect2) { |
| | | temp.append(l).append(","); |
| | | } |
| | | temp.deleteCharAt(temp.length() - 1); |
| | | } |
| | | Page<Meditation> data = remoteMeditationService.getMeditationByIds(pageCurr,pageSize,temp.toString()).getData(); |
| | | Page<Meditation> data = remoteMeditationService.getMeditationByIds(pageCurr, pageSize, temp.toString()).getData(); |
| | | |
| | | for (Meditation meditation : data.getRecords()) { |
| | | OrderCourseVO orderCourseVO = new OrderCourseVO(); |
| | |
| | | orderCourseVO.setGeneralPrice(meditation.getGeneralPrice()); |
| | | orderCourseVO.setIosPrice(meditation.getIosPrice()); |
| | | orderCourseVO.setCoverUrl(meditation.getCoverUrl()); |
| | | orderCourseVO.setCount(meditation.getRealLearnedNum()+meditation.getVirtualLearnedNum()); |
| | | orderCourseVO.setCount(meditation.getRealLearnedNum() + meditation.getVirtualLearnedNum()); |
| | | orderCourseVO.setCoverDescription(meditation.getCoverDescription()); |
| | | orderCourseVOS.add(orderCourseVO); |
| | | } |
| | |
| | | .stream().map(AppUserViewingHistory::getBizId).collect(Collectors.toList()); |
| | | List<Long> collect4 = collect3.stream().distinct().collect(Collectors.toList()); |
| | | StringBuilder temp1 = new StringBuilder(); |
| | | if (collect4.isEmpty()){ |
| | | temp1=temp1.append("-1"); |
| | | }else{ |
| | | if (collect4.isEmpty()) { |
| | | temp1 = temp1.append("-1"); |
| | | } else { |
| | | for (Long l : collect4) { |
| | | temp1.append(l).append(","); |
| | | } |
| | | temp1.deleteCharAt(temp1.length() - 1); |
| | | } |
| | | Page<Course> data2 = remoteCourseService.getCourseByIds(pageCurr,pageSize,temp1.toString()).getData(); |
| | | Page<Course> data2 = remoteCourseService.getCourseByIds(pageCurr, pageSize, temp1.toString()).getData(); |
| | | for (Course record : data2.getRecords()) { |
| | | OrderCourseVO orderCourseVO = new OrderCourseVO(); |
| | | orderCourseVO.setBusinessId(record.getId()); |
| | |
| | | orderCourseVO.setIosPrice(record.getIosPrice()); |
| | | orderCourseVO.setCoverUrl(record.getCoverUrl()); |
| | | List<CourseChapter> data1 = remoteCourseService.getChapterByCourseId(orderCourseVO.getBusinessId() + "").getData(); |
| | | int a = 0 ; |
| | | int b = 0 ; |
| | | int a = 0; |
| | | int b = 0; |
| | | for (CourseChapter courseChapter : data1) { |
| | | a+=courseChapter.getVirtualLearnedNum(); |
| | | a += courseChapter.getVirtualLearnedNum(); |
| | | Long data9 = remoteAppUserService.getCourseChapterHistoryCount(courseChapter.getId()).getData(); |
| | | b+=data9; |
| | | b += data9; |
| | | } |
| | | orderCourseVO.setCount(a+b); |
| | | orderCourseVO.setCount(a + b); |
| | | orderCourseVOS.add(orderCourseVO); |
| | | } |
| | | break; |
| | | } |
| | | return R.ok(orderCourseVOS); |
| | | } |
| | | |
| | | /** |
| | | * 记录用户观看记录 |
| | | * |
| | | */ |
| | | @PostMapping("/saveViewingHistory") |
| | | @ApiOperation(value = "记录用户观看冥想记录", tags = {"用户端-用户相关接口"}) |
| | |
| | | @ApiImplicitParam(name = "timeLook", value = "播放时长单位秒", dataType = "Integer", required = true) |
| | | }) |
| | | public R<?> saveViewingRecord(@RequestParam("id") Long id, |
| | | @RequestParam("timeLook") Integer timeLook |
| | | ) { |
| | | @RequestParam("timeLook") Integer timeLook |
| | | ) { |
| | | LoginUser loginUser = tokenService.getLoginUser(); |
| | | if (loginUser==null){ |
| | | if (loginUser == null) { |
| | | return R.tokenError("登录失效"); |
| | | } |
| | | Long userId = loginUser.getUserid(); |
| | |
| | | appUserViewingHistory.setTimeLook(timeLook); |
| | | appUserViewingHistory.setCreateTime(LocalDateTime.now()); |
| | | appUserViewingHistoryService.save(appUserViewingHistory); |
| | | return R.ok(); |
| | | AppUser byId = appUserService.getById(userId); |
| | | appUserService.updateById(byId); |
| | | // 查询用户今日观看疗愈多少秒 |
| | | LocalDateTime now = LocalDateTime.now(); |
| | | LocalDateTime startOfDay = now.toLocalDate().atStartOfDay(); |
| | | LocalDateTime endOfDay = now.toLocalDate().atTime(LocalTime.MAX); |
| | | List<AppUserViewingHistory> list = appUserViewingHistoryService |
| | | .lambdaQuery().eq(AppUserViewingHistory::getAppUserId, userId) |
| | | .eq(AppUserViewingHistory::getViewingType, 1) |
| | | .eq(BaseModel::getDelFlag, 0) |
| | | .between(AppUserViewingHistory::getCreateTime, startOfDay, endOfDay).list(); |
| | | int temp = 0; |
| | | for (AppUserViewingHistory appUserViewingHistory1 : list) { |
| | | if (appUserViewingHistory1.getTimeLook() != null) { |
| | | temp += appUserViewingHistory1.getTimeLook(); |
| | | |
| | | } |
| | | } |
| | | AppUserTree one = appUserTreeService.lambdaQuery().eq(AppUserTree::getAppUserId, userId) |
| | | .eq(AppUserTree::getSowAgain, 2).one(); |
| | | if (one == null) { |
| | | AppUserTree appUserTree = new AppUserTree(); |
| | | appUserTree.setTime(LocalDateTime.now()); |
| | | appUserTree.setAppUserId(userId); |
| | | appUserTree.setTreeLevelType(1); |
| | | appUserTree.setGrowthValue(0); |
| | | appUserTree.setSowAgain(2); |
| | | appUserTree.setCreateTime(LocalDateTime.now()); |
| | | // 如果用户的签到时间是今天 那么修改为已签到 |
| | | if (byId.getSignTime() != null && byId.getSignTime().toLocalDate().equals(LocalDateTime.now().toLocalDate())) { |
| | | appUserTree.setIsSign(1); |
| | | } else { |
| | | appUserTree.setIsSign(2); |
| | | } |
| | | if (temp >= 3600) { |
| | | if (appUserTree.getTaskOne() == 2) { |
| | | AppUserEnergyRecord appUserEnergyRecord = new AppUserEnergyRecord(); |
| | | appUserEnergyRecord.setAppUserId(userId); |
| | | appUserEnergyRecord.setChangeType(1); |
| | | appUserEnergyRecord.setEnergyValue(10); |
| | | appUserEnergyRecord.setReason("完成【每日疗愈30分钟】任务"); |
| | | appUserEnergyRecordService.save(appUserEnergyRecord); |
| | | byId.setTotalEnergyValue(byId.getTotalEnergyValue() + 10); |
| | | byId.setEnergyValue(byId.getEnergyValue() + 10); |
| | | |
| | | } |
| | | if (appUserTree.getTaskTwo() == 2) { |
| | | AppUserEnergyRecord appUserEnergyRecord = new AppUserEnergyRecord(); |
| | | appUserEnergyRecord.setAppUserId(userId); |
| | | appUserEnergyRecord.setChangeType(1); |
| | | appUserEnergyRecord.setEnergyValue(20); |
| | | appUserEnergyRecord.setReason("完成【每日疗愈60分钟】任务"); |
| | | appUserEnergyRecordService.save(appUserEnergyRecord); |
| | | byId.setTotalEnergyValue(byId.getTotalEnergyValue() + 20); |
| | | byId.setEnergyValue(byId.getEnergyValue() + 20); |
| | | |
| | | } |
| | | appUserTree.setTaskOne(1); |
| | | appUserTree.setTaskTwo(1); |
| | | } else if (temp >= 1800) { |
| | | if (appUserTree.getTaskOne() == 2) { |
| | | AppUserEnergyRecord appUserEnergyRecord = new AppUserEnergyRecord(); |
| | | appUserEnergyRecord.setAppUserId(userId); |
| | | appUserEnergyRecord.setChangeType(1); |
| | | appUserEnergyRecord.setEnergyValue(10); |
| | | appUserEnergyRecord.setReason("完成【每日疗愈30分钟】任务"); |
| | | appUserEnergyRecordService.save(appUserEnergyRecord); |
| | | byId.setTotalEnergyValue(byId.getTotalEnergyValue() + 10); |
| | | byId.setEnergyValue(byId.getEnergyValue() + 10); |
| | | } |
| | | appUserTree.setTaskOne(2); |
| | | appUserTree.setTaskTwo(1); |
| | | } else { |
| | | appUserTree.setTaskOne(2); |
| | | appUserTree.setTaskTwo(2); |
| | | } |
| | | appUserTree.setEnergyValue(byId.getEnergyValue()); |
| | | appUserTree.setNextLevel(1000); |
| | | appUserTreeService.save(appUserTree); |
| | | appUserTree.setTotalEnergyValue(byId.getTotalEnergyValue()); |
| | | return R.ok(appUserTree); |
| | | } else { |
| | | if (temp >= 3600) { |
| | | if (one.getTaskOne() == 2) { |
| | | AppUserEnergyRecord appUserEnergyRecord = new AppUserEnergyRecord(); |
| | | appUserEnergyRecord.setAppUserId(userId); |
| | | appUserEnergyRecord.setChangeType(1); |
| | | appUserEnergyRecord.setEnergyValue(10); |
| | | appUserEnergyRecord.setReason("完成【每日疗愈30分钟】任务"); |
| | | appUserEnergyRecordService.save(appUserEnergyRecord); |
| | | byId.setTotalEnergyValue(byId.getTotalEnergyValue() + 10); |
| | | one.setTaskOne(1); |
| | | byId.setEnergyValue(byId.getEnergyValue() + 10); |
| | | |
| | | } |
| | | if (one.getTaskTwo() == 2) { |
| | | AppUserEnergyRecord appUserEnergyRecord = new AppUserEnergyRecord(); |
| | | appUserEnergyRecord.setAppUserId(userId); |
| | | appUserEnergyRecord.setChangeType(1); |
| | | appUserEnergyRecord.setEnergyValue(20); |
| | | appUserEnergyRecord.setReason("完成【每日疗愈60分钟】任务"); |
| | | appUserEnergyRecordService.save(appUserEnergyRecord); |
| | | byId.setTotalEnergyValue(byId.getTotalEnergyValue() + 20); |
| | | one.setTaskTwo(1); |
| | | byId.setEnergyValue(byId.getEnergyValue() + 20); |
| | | |
| | | } |
| | | |
| | | } else if (temp >= 1800) { |
| | | if (one.getTaskOne() == 2) { |
| | | AppUserEnergyRecord appUserEnergyRecord = new AppUserEnergyRecord(); |
| | | appUserEnergyRecord.setAppUserId(userId); |
| | | appUserEnergyRecord.setChangeType(1); |
| | | appUserEnergyRecord.setEnergyValue(10); |
| | | appUserEnergyRecord.setReason("完成【每日疗愈30分钟】任务"); |
| | | appUserEnergyRecordService.save(appUserEnergyRecord); |
| | | byId.setTotalEnergyValue(byId.getTotalEnergyValue() + 10); |
| | | one.setTaskOne(1); |
| | | byId.setEnergyValue(byId.getEnergyValue() + 10); |
| | | } |
| | | } else { |
| | | one.setTaskOne(2); |
| | | one.setTaskTwo(2); |
| | | } |
| | | appUserTreeService.updateById(one); |
| | | appUserService.updateById(byId); |
| | | return R.ok(); |
| | | } |
| | | } |
| | | |
| | | @Resource |
| | | private AppUserEnergyRecordService appUserEnergyRecordService; |
| | | |
| | | @PostMapping("/saveCourseStudyHistory") |
| | | @ApiOperation(value = "记录用户观看课程记录", tags = {"用户端-用户相关接口"}) |
| | | @ApiImplicitParams({ |
| | |
| | | @RequestParam("isOver") Integer isOver |
| | | ) { |
| | | LoginUser loginUser = tokenService.getLoginUser(); |
| | | if (loginUser==null){ |
| | | if (loginUser == null) { |
| | | return R.tokenError("登录失效"); |
| | | } |
| | | Long userId = loginUser.getUserid(); |
| | |
| | | .eq(AppUserViewingHistory::getAppUserId, userId) |
| | | .eq(AppUserViewingHistory::getViewingType, 2) |
| | | .eq(AppUserViewingHistory::getChapterId, chapterId).one(); |
| | | if (one!=null){ |
| | | if (one.getIsOver() == 1){ |
| | | if (one != null) { |
| | | if (one.getIsOver() == 1) { |
| | | // 如果已经看完了 那么不更新状态 只更新观看时间 |
| | | one.setMinuteLook(minuteLook); |
| | | one.setSecondLook(secondLook); |
| | | one.setTimeLook(secondLook); |
| | | }else{ |
| | | } else { |
| | | one.setIsOver(isOver); |
| | | } |
| | | appUserViewingHistoryService.updateById(one); |
| | | }else{ |
| | | } else { |
| | | AppUserViewingHistory appUserViewingHistory = new AppUserViewingHistory(); |
| | | appUserViewingHistory.setAppUserId(userId); |
| | | appUserViewingHistory.setBizId(chapterId); |
| | |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | | @PostMapping("/getCourseStudyHistory") |
| | | public R<AppUserViewingHistory> getCourseStudyHistory(@RequestParam("chapterId") Long chapterId) { |
| | | LoginUser loginUser = tokenService.getLoginUser(); |
| | | if (loginUser==null){ |
| | | if (loginUser == null) { |
| | | return R.tokenError("登录失效"); |
| | | } |
| | | Long userId = loginUser.getUserid(); |
| | |
| | | .eq(AppUserViewingHistory::getAppUserId, userId) |
| | | .eq(AppUserViewingHistory::getViewingType, 2) |
| | | .eq(AppUserViewingHistory::getChapterId, chapterId).one(); |
| | | if (one==null){ |
| | | if (one == null) { |
| | | AppUserViewingHistory appUserViewingHistory = new AppUserViewingHistory(); |
| | | appUserViewingHistory.setAppUserId(userId); |
| | | appUserViewingHistory.setBizId(chapterId); |