Преглед изворни кода

[feat]
1.优化订单接口;2.增加返利合计查询接口

limeng пре 2 месеци
родитељ
комит
71135e8168

+ 7 - 5
application-webadmin/src/main/java/com/tourism/webadmin/app/website/controller/TourismOrderController.java

@@ -89,11 +89,13 @@ public class TourismOrderController {
 
         List<TourOrderVo> dataList = tourOderVoMyPageData.getDataList();
         dataList.stream().forEach(item -> {
-            if (item.getProjectId() != null) {
-                TourismProject tourismProject = tourismProjectService.getById(item.getProjectId());
-                TourismProjectVo tourismProjectVo = MyModelUtil.copyTo(tourismProject, TourismProjectVo.class);
-                item.setTourismProjectVo(tourismProjectVo);
-            }
+//            if (item.getProjectId() != null) {
+//                TourismProject tourismProject = tourismProjectService.getById(item.getProjectId());
+//                TourismProjectVo tourismProjectVo = MyModelUtil.copyTo(tourismProject, TourismProjectVo.class);
+//                item.setTourismProjectVo(tourismProjectVo);
+//            }
+            // TODO 权宜之计
+            item.setTourismProjectVo(MyModelUtil.copyTo(item.getTourismProject(), TourismProjectVo.class));
         });
         return ResponseResult.success(tourOderVoMyPageData);
     }

+ 50 - 0
application-webadmin/src/main/java/com/tourism/webadmin/app/website/controller/WebsiteProjectGroupPurchaseRebateController.java

@@ -0,0 +1,50 @@
+package com.tourism.webadmin.app.website.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.github.pagehelper.page.PageMethod;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.tourism.common.core.annotation.MyRequestBody;
+import com.tourism.common.core.constant.ErrorCodeEnum;
+import com.tourism.common.core.object.*;
+import com.tourism.common.core.util.MyCommonUtil;
+import com.tourism.common.core.util.MyModelUtil;
+import com.tourism.common.core.util.MyPageUtil;
+import com.tourism.common.log.annotation.OperationLog;
+import com.tourism.common.log.model.constant.SysOperationLogType;
+import com.tourism.webadmin.back.dto.TourProjectGroupPurchaseRebateDto;
+import com.tourism.webadmin.back.model.TourProjectGroupPurchaseRebate;
+import com.tourism.webadmin.back.service.TourProjectGroupPurchaseRebateService;
+import com.tourism.webadmin.back.vo.TourProjectGroupPurchaseRebateVo;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 拼团返利接口。
+ *
+ * @author 吃饭睡觉
+ * @date 2024-09-06
+ */
+@Tag(name = "拼团返利接口")
+@Slf4j
+@RestController
+@RequestMapping("/website/app/tourProjectGroupPurchaseRebate")
+public class WebsiteProjectGroupPurchaseRebateController {
+
+    @Autowired
+    private TourProjectGroupPurchaseRebateService tourProjectGroupPurchaseRebateService;
+
+    /**
+     * 计算当前用户返利总金额。
+     *
+     * @return 应答结果对象,包含对象详情。
+     */
+    @GetMapping("/getTotalRebateAmount")
+    public ResponseResult<Map<String, Object>> view() {
+        return ResponseResult.success(tourProjectGroupPurchaseRebateService.getTotalRebateAmount());
+    }
+}

+ 5 - 0
application-webadmin/src/main/java/com/tourism/webadmin/back/dao/TourProjectGroupPurchaseRebateMapper.java

@@ -3,7 +3,9 @@ package com.tourism.webadmin.back.dao;
 import com.tourism.common.core.base.dao.BaseDaoMapper;
 import com.tourism.webadmin.back.model.TourProjectGroupPurchaseRebate;
 import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
 
+import java.math.BigDecimal;
 import java.util.*;
 
 /**
@@ -30,4 +32,7 @@ public interface TourProjectGroupPurchaseRebateMapper extends BaseDaoMapper<Tour
      */
     List<TourProjectGroupPurchaseRebate> getTourProjectGroupPurchaseRebateList(
             @Param("tourProjectGroupPurchaseRebateFilter") TourProjectGroupPurchaseRebate tourProjectGroupPurchaseRebateFilter, @Param("orderBy") String orderBy);
+
+    @Select("select sum(price) as total_rebate_amount from tour_project_group_purchase_rebate where user_id = #{userId}")
+    BigDecimal getTotalRebateAmount(@Param("userId") Long userId);
 }

+ 2 - 0
application-webadmin/src/main/java/com/tourism/webadmin/back/service/TourProjectGroupPurchaseRebateService.java

@@ -65,4 +65,6 @@ public interface TourProjectGroupPurchaseRebateService extends IBaseService<Tour
      * @return 查询结果集。
      */
     List<TourProjectGroupPurchaseRebate> getTourProjectGroupPurchaseRebateListWithRelation(TourProjectGroupPurchaseRebate filter, String orderBy);
+
+    Map<String, Object> getTotalRebateAmount();
 }

+ 11 - 0
application-webadmin/src/main/java/com/tourism/webadmin/back/service/impl/TourProjectGroupPurchaseRebateServiceImpl.java

@@ -2,6 +2,7 @@ package com.tourism.webadmin.back.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.tourism.common.core.object.TokenData;
 import com.tourism.webadmin.back.service.*;
 import com.tourism.webadmin.back.dao.*;
 import com.tourism.webadmin.back.model.*;
@@ -19,6 +20,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
 import java.util.*;
 
 /**
@@ -92,6 +94,15 @@ public class TourProjectGroupPurchaseRebateServiceImpl extends BaseService<TourP
         return resultList;
     }
 
+    @Override
+    public Map<String, Object> getTotalRebateAmount() {
+        Map<String, Object> resMap = new HashMap<>();
+        TokenData tokenData = TokenData.takeFromRequest();
+        BigDecimal totalRebateAmount = tourProjectGroupPurchaseRebateMapper.getTotalRebateAmount(tokenData.getUserId());
+        resMap.put("rebateAmount", totalRebateAmount);
+        return resMap;
+    }
+
     private TourProjectGroupPurchaseRebate buildDefaultValue(TourProjectGroupPurchaseRebate tourProjectGroupPurchaseRebate) {
         if (tourProjectGroupPurchaseRebate.getId() == null) {
             tourProjectGroupPurchaseRebate.setId(idGenerator.nextLongId());

+ 8 - 3
application-webadmin/src/main/java/com/tourism/webadmin/back/vo/TourOrderVo.java

@@ -1,8 +1,6 @@
 package com.tourism.webadmin.back.vo;
 
-import com.baomidou.mybatisplus.annotation.TableField;
 import com.tourism.common.core.base.vo.BaseVo;
-import com.tourism.webadmin.back.model.TourProjectGroupPurchase;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -179,6 +177,13 @@ public class TourOrderVo extends BaseVo {
     @Schema(description = "orderStatus 全局字典关联数据")
     private List<TourOrderPassenageVo> detailList;
 
+
+    /**
+     * projectInfo 旅游项目信息。
+     */
+    @Schema(description = "projectInfo 旅游项目信息")
+    private TourismProjectVo tourismProject;
+
     /**
      * projectInfo 旅游项目信息。
      */
@@ -186,5 +191,5 @@ public class TourOrderVo extends BaseVo {
     private TourismProjectVo tourismProjectVo;
 
     @Schema(description = "团购信息")
-    private TourProjectGroupPurchase tourProjectGroupPurchase;
+    private TourProjectGroupPurchaseVo tourProjectGroupPurchase;
 }