From ca070436770f715572405880cfe548c02f639c73 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期三, 01 一月 2025 10:08:31 +0800
Subject: [PATCH] 代码修改

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCourseController.java |  110 ++++++++++++++++++++++++++++--------------------------
 1 files changed, 57 insertions(+), 53 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCourseController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCourseController.java
index bc564dc..4e37a05 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCourseController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCourseController.java
@@ -34,9 +34,11 @@
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -86,13 +88,13 @@
     @PostMapping(value = "/delete")
     public R delete(String ids) {
         String[] split = ids.split(",");
+        List<Integer> courseIds = new ArrayList<>();
         for (String id : split) {
-
-        courseService.removeById(id);
-        coursePartService.remove(Wrappers.lambdaQuery(TCoursePart.class).eq(TCoursePart::getCourseId,id));
-            courseCommentService.remove(Wrappers.lambdaQuery(TCourseComment.class).eq(TCourseComment::getCourseId,id));
-
+            courseIds.add(Integer.parseInt(id));
         }
+        courseService.removeBatchByIds(courseIds);
+        coursePartService.remove(Wrappers.lambdaQuery(TCoursePart.class).in(TCoursePart::getCourseId,courseIds));
+        courseCommentService.remove(Wrappers.lambdaQuery(TCourseComment.class).in(TCourseComment::getCourseId,courseIds));
         return R.ok();
     }
     //编辑
@@ -129,13 +131,18 @@
         }
 
         Set<Long> cacheSet = redisCache.getCacheSet("COURSE:" + userId);
-
+        List<TTechnicalTitle> tTechnicalTitles = tTechnicalTitleService.lambdaQuery().list();
+        List<TTitleMajor> tTitleMajors = majorService.lambdaQuery().list();
+        List<TRegion> regions = regionService.lambdaQuery().list();
+        List<TOrder> orders = orderService.lambdaQuery()
+                .eq(TOrder::getGoodType, 1)
+                .eq(TOrder::getPaymentStatus, 2).list();
         for (TCourse record : page.getRecords()) {
-            TRegion byId = regionService.getById(record.getRegionId());
-            record.setRegionName(byId.getProvinceName()+"-"+byId.getName());
-            TTechnicalTitle byId1 = tTechnicalTitleService.getById(record.getTechnicalId() );
-            TTitleMajor byId2 = majorService.getById(record.getMajorId());
-            record.setTechnicalName(byId1.getTitileName()+"-"+byId2.getMajorName());
+            TTechnicalTitle tTechnicalTitle = tTechnicalTitles.stream().filter(e -> e.getId().equals(record.getTechnicalId())).findFirst().orElse(null);
+            TTitleMajor tTitleMajor = tTitleMajors.stream().filter(e -> e.getId().equals(record.getMajorId())).findFirst().orElse(null);
+            TRegion region = regions.stream().filter(e -> e.getId().equals(record.getRegionId())).findFirst().orElse(null);
+            record.setRegionName(region.getProvinceName()+"-"+region.getName());
+            record.setTechnicalName(tTechnicalTitle.getTitileName()+"-"+tTitleMajor.getMajorName());
             if (cacheSet!=null){
                 if (cacheSet.contains(record.getId())){
                     record.setIsCollect(1);
@@ -152,13 +159,8 @@
             }else {
                 record.setStudyNum(cacheSet1.size());
             }
-
-            Long count = orderService.lambdaQuery()
-                    .eq(TOrder::getGoodId, record.getId())
-                    .eq(TOrder::getGoodType, 1)
-                    .eq(TOrder::getPaymentStatus, 2).count();
-            record.setBuyNum(Integer.parseInt(String.valueOf(count)));
-
+            int count = orders.stream().filter(e -> e.getGoodId().equals(record.getId())).collect(Collectors.toList()).size();
+            record.setBuyNum(count);
         }
         return R.ok(page);
     }
@@ -168,13 +170,15 @@
     @PostMapping(value = "/other")
     public R<List<TCourse>> other(@RequestParam Long id) {
         List<TCourse> list = courseService.lambdaQuery().ne(TCourse::getId, id).last("limit 3").list();
-
+        List<TRegion> regions = regionService.lambdaQuery().list();
+        List<TTechnicalTitle> tTechnicalTitles = tTechnicalTitleService.lambdaQuery().list();
+        List<TTitleMajor> tTitleMajors = majorService.lambdaQuery().list();
         for (TCourse record : list) {
-            TRegion byId = regionService.getById(record.getRegionId());
-            record.setRegionName(byId.getProvinceName()+"-"+byId.getName());
-            TTechnicalTitle byId1 = tTechnicalTitleService.getById(record.getTechnicalId() );
-            TTitleMajor byId2 = majorService.getById(record.getMajorId());
-            record.setTechnicalName(byId1.getTitileName()+"-"+byId2.getMajorName());
+            TRegion region = regions.stream().filter(e -> e.getId().equals(record.getRegionId())).findFirst().orElse(null);
+            TTechnicalTitle tTechnicalTitle = tTechnicalTitles.stream().filter(e -> e.getId().equals(record.getTechnicalId())).findFirst().orElse(null);
+            TTitleMajor tTitleMajor = tTitleMajors.stream().filter(e -> e.getId().equals(record.getMajorId())).findFirst().orElse(null);
+            record.setRegionName(region.getProvinceName()+"-"+region.getName());
+            record.setTechnicalName(tTechnicalTitle.getTitileName()+"-"+tTitleMajor.getMajorName());
         }
         return R.ok(list);
     }
@@ -217,11 +221,11 @@
 
         TCourse record = courseService.getById(courseId);
 
-        TRegion byId = regionService.getById(record.getRegionId());
-        record.setRegionName(byId.getProvinceName()+"-"+byId.getName());
-        TTechnicalTitle byId1 = tTechnicalTitleService.getById(record.getTechnicalId() );
-        TTitleMajor byId2 = majorService.getById(record.getMajorId());
-        record.setTechnicalName(byId1.getTitileName()+"-"+byId2.getMajorName());
+        TRegion region = regionService.getById(record.getRegionId());
+        record.setRegionName(region.getProvinceName()+"-"+region.getName());
+        TTechnicalTitle technicalTitle = tTechnicalTitleService.getById(record.getTechnicalId() );
+        TTitleMajor tTitleMajor = majorService.getById(record.getMajorId());
+        record.setTechnicalName(technicalTitle.getTitileName()+"-"+tTitleMajor.getMajorName());
 
 
         Long userId = tokenService.getLoginUser().getUserId();
@@ -242,18 +246,18 @@
             record.setIsPay(0);
         }
 
-        Set<Object> cacheSet1 = redisCache.getCacheSet("STUDY:" + courseId);
-        if (cacheSet1==null){
+        Set<Object> studySet = redisCache.getCacheSet("STUDY:" + courseId);
+        if (studySet==null){
             record.setStudyNum(0);
         }else {
-            record.setStudyNum(cacheSet1.size());
+            record.setStudyNum(studySet.size());
         }
 
-        Set<Object> cacheSet2 = redisCache.getCacheSet("COLLECT:" + courseId);
-        if (cacheSet2==null){
+        Set<Object> collectSet = redisCache.getCacheSet("COLLECT:" + courseId);
+        if (collectSet==null){
             record.setCollectNum(0);
         }else {
-            record.setCollectNum(cacheSet2.size());
+            record.setCollectNum(collectSet.size());
         }
 
         return R.ok(record);
@@ -264,9 +268,9 @@
     @PostMapping(value = "/view")
     public R view(Long courseId) {
 
-        TCourse byId = courseService.getById(courseId);
-        byId.setVisitNum(byId.getVisitNum()+1);
-        courseService.updateById(byId);
+        TCourse course = courseService.getById(courseId);
+        course.setVisitNum(course.getVisitNum()+1);
+        courseService.updateById(course);
         return R.ok();
 
     }
@@ -287,7 +291,7 @@
     @PostMapping(value = "/create")
     public R buy( @RequestParam Long id) throws AlipayApiException {
         Long userId = tokenService.getLoginUser().getUserId();
-        TCourse byId = courseService.getById(id);
+        TCourse course = courseService.getById(id);
 
         String code = "KC" + WeChatUtil.generateTradeNumber();
         TOrder order = new TOrder();
@@ -295,9 +299,9 @@
         order.setUserId(userId);
         order.setGoodType(1);
         order.setGoodId(id);
-        order.setOrderAmount(byId.getCoursePrice());
-        order.setPaymentAmount(byId.getCoursePrice());
-        if (byId.getCoursePrice().compareTo(new BigDecimal(0))==0){
+        order.setOrderAmount(course.getCoursePrice());
+        order.setPaymentAmount(course.getCoursePrice());
+        if (course.getCoursePrice().compareTo(new BigDecimal(0))==0){
             order.setPaymentStatus(2);
 
         }
@@ -312,16 +316,16 @@
     @ApiOperation(value = "购买",tags = {"web教学视频查询"})
     @PostMapping(value = "/buy")
     public R<PayDto> buy(@RequestParam Integer type, @RequestParam Long orderId) throws AlipayApiException {
-        TOrder byId = orderService.getById(orderId);
+        TOrder order = orderService.getById(orderId);
         if (type == 1) {
             com.wechat.pay.java.service.payments.nativepay.model.PrepayRequest prepayRequest = new com.wechat.pay.java.service.payments.nativepay.model.PrepayRequest();
             prepayRequest.setAppid(weChatConfig.appId);
             prepayRequest.setMchid(weChatConfig.merchantId);
-            prepayRequest.setOutTradeNo(byId.getCode());
+            prepayRequest.setOutTradeNo(order.getCode());
             prepayRequest.setDescription("购买课程");
             prepayRequest.setNotifyUrl("https://0ifzoxq2516g.guyubao.com/call-back/buy");
             com.wechat.pay.java.service.payments.nativepay.model.Amount amount = new com.wechat.pay.java.service.payments.nativepay.model.Amount();
-            amount.setTotal(byId.getPaymentAmount().multiply(new BigDecimal(100)).intValue());
+            amount.setTotal(order.getPaymentAmount().multiply(new BigDecimal(100)).intValue());
             prepayRequest.setAmount(amount);
             // 调用下单方法,得到应答
             PrepayResponse response;
@@ -343,7 +347,7 @@
             }
             return null;
         } else {
-            String qrCode = AlipayTradePagePay.pay("购买课程",byId.getCode(),byId.getPaymentAmount().toString());
+            String qrCode = AlipayTradePagePay.pay("购买课程",order.getCode(),order.getPaymentAmount().toString());
             PayDto payDto = new PayDto();
             payDto.setOrderId(orderId);
             payDto.setQrCode(qrCode);
@@ -356,16 +360,16 @@
                         while (num <= 30) {
                             int min = 2000;
                             Thread.sleep(min);
-                            Boolean check = AlipayTradeQuery.check(byId.getCode());
+                            Boolean check = AlipayTradeQuery.check(order.getCode());
                             if (check){
-                                byId.setPaymentStatus(2);
-                                byId.setPaymentType(2);
-                                byId.setPayTime(LocalDateTime.now());
-                                orderService.updateById(byId);
+                                order.setPaymentStatus(2);
+                                order.setPaymentType(2);
+                                order.setPayTime(LocalDateTime.now());
+                                orderService.updateById(order);
 
-                                if (byId.getGoodType()==1){
+                                if (order.getGoodType()==1){
                                     try {
-                                        TCourse byId1 = courseService.getById(byId.getGoodId());
+                                        TCourse byId1 = courseService.getById(order.getGoodId());
                                         byId1.setBuyNum(byId1.getBuyNum()+1);
                                         courseService.updateById(byId1);
                                     }catch (Exception e){

--
Gitblit v1.7.1