Browse Source

[feat]
1.修改参团接口;2.修改订单列表接口;3.修改订单金额计算接口

limeng 2 tháng trước cách đây
mục cha
commit
783a7f0bb1

+ 21 - 13
application-webadmin/src/main/java/com/tourism/webadmin/app/website/controller/TourismOrderController.java

@@ -18,8 +18,10 @@ import com.tourism.webadmin.back.model.*;
 import com.tourism.webadmin.back.model.constant.GroupPurchaseRebate;
 import com.tourism.webadmin.back.model.constant.TourOrderState;
 import com.tourism.webadmin.back.service.*;
+import com.tourism.webadmin.back.service.impl.TourUserServiceImpl;
 import com.tourism.webadmin.back.vo.TourOrderPassenageVo;
 import com.tourism.webadmin.back.vo.TourOrderVo;
+import com.tourism.webadmin.back.vo.TourProjectGroupPurchaseVo;
 import com.tourism.webadmin.back.vo.TourismProjectVo;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import jakarta.validation.groups.Default;
@@ -59,6 +61,8 @@ public class TourismOrderController {
     private TourProjectGroupPurchaseService tourProjectGroupPurchaseService;
     @Autowired
     private TourProjectGroupPurchaseRebateService tourProjectGroupPurchaseRebateService;
+    @Autowired
+    private TourUserServiceImpl tourUserService;
 
     /**
      * 列出符合过滤条件个人订单列表。
@@ -133,7 +137,7 @@ public class TourismOrderController {
      * @return 应答结果对象,包含查询结果集。
      */
     @PostMapping("/add")
-    public ResponseResult<TourProjectGroupPurchase> add(@RequestBody TourismBookProjectDto tourBookInfoDto) {
+    public ResponseResult<TourProjectGroupPurchaseVo> add(@RequestBody TourismBookProjectDto tourBookInfoDto) {
         // 如果有拼团,需要查询当前人数阶段价格、下阶段价格和距离到下个阶段的人数
         TourOrderDto tourOrderDto = new TourOrderDto();
 
@@ -195,19 +199,23 @@ public class TourismOrderController {
         tourOrder.setOrderStatus(0);
         tourOrderService.saveNew(tourOrder);
 
-        if(tourProjectGroupPurchase != null){
-            // 为分享用户增加返利
-            TourProjectGroupPurchaseRebate rebate = new TourProjectGroupPurchaseRebate();
-            rebate.setUserId(tourBookInfoDto.getShareId());
-            rebate.setGroupPurchaseProgressId(tourProjectGroupPurchase.getId());
-            rebate.setOrderId(tourOrder.getId());
-            rebate.setReasonRelationUserid(TokenData.takeFromRequest().getUserId());
-            rebate.setPrice(new BigDecimal(100).multiply(BigDecimal.valueOf(tourBookInfoDto.getAdultNumber() + tourBookInfoDto.getChildrenNumber())));
-            rebate.setReason(GroupPurchaseRebate.INVITE_USER);
-            rebate.setPriceUnit(tourProjectGroupPurchase.getPriceUnit());
-            tourProjectGroupPurchaseRebateService.saveNew(rebate);
+        if(tourProjectGroupPurchase != null && tourBookInfoDto.getShareId() != null){
+            TourUser byId = tourUserService.getById(tourBookInfoDto.getShareId());
+            if(byId != null) {
+                // 为分享用户增加返利
+                TourProjectGroupPurchaseRebate rebate = new TourProjectGroupPurchaseRebate();
+                rebate.setUserId(tourBookInfoDto.getShareId());
+                rebate.setGroupPurchaseProgressId(Long.valueOf(tourProjectGroupPurchase.getId()));
+                rebate.setOrderId(tourOrder.getId());
+                rebate.setReasonRelationUserid(TokenData.takeFromRequest().getUserId());
+                rebate.setPrice(new BigDecimal(100).multiply(BigDecimal.valueOf(tourBookInfoDto.getAdultNumber() + tourBookInfoDto.getChildrenNumber())));
+                rebate.setReason(GroupPurchaseRebate.INVITE_USER);
+                rebate.setPriceUnit(tourProjectGroupPurchase.getPriceUnit());
+                tourProjectGroupPurchaseRebateService.saveNew(rebate);
+            }
         }
-        return ResponseResult.success(tourProjectGroupPurchase);
+        TourProjectGroupPurchaseVo tourProjectGroupPurchaseVo = MyModelUtil.copyTo(tourProjectGroupPurchase, TourProjectGroupPurchaseVo.class);
+        return ResponseResult.success(tourProjectGroupPurchaseVo);
     }
 
     /**

+ 6 - 3
application-webadmin/src/main/java/com/tourism/webadmin/app/website/controller/WebsiteProjectGroupPurchaseController.java

@@ -8,6 +8,7 @@ import com.tourism.common.core.constant.ErrorCodeEnum;
 import com.tourism.common.core.object.*;
 import com.tourism.common.core.util.*;
 import com.tourism.webadmin.app.website.dto.TourCalcTotalAmountParam;
+import com.tourism.webadmin.app.website.dto.TourGroupUserToWebDto;
 import com.tourism.webadmin.app.website.dto.TourProjectGroupPurchaseDtoToWebDto;
 import com.tourism.webadmin.app.website.vo.TourGroupPurchaseUserVo;
 import com.tourism.webadmin.back.model.TourProjectGroupPurchase;
@@ -128,17 +129,18 @@ public class WebsiteProjectGroupPurchaseController {
 
     /**
      * 查询拼团成功的用户信息,并展示头像、用户昵称和拼团成功的时间
-     * @param projectId
+     * @param dto
      * @return
      */
     @SaIgnore
     @GetMapping("/queryGroupPurchaseUser")
-    public ResponseResult<List<TourGroupPurchaseUserVo>> queryGroupPurchaseUser(@RequestParam Long projectId) {
-        List<TourUser> tourUserList = tourOrderService.getTourUserListByProjectId(projectId);
+    public ResponseResult<List<TourGroupPurchaseUserVo>> queryGroupPurchaseUser(TourGroupUserToWebDto dto) {
+        List<TourUser> tourUserList = tourOrderService.getTourUserListByProjectId(dto);
         // 把List<TourUser>转为List<TourProjectGroupPurchaseUserVo>
         List<TourGroupPurchaseUserVo> tourGroupPurchaseUserVoList = MyModelUtil.copyCollectionTo(tourUserList, TourGroupPurchaseUserVo.class);
         return ResponseResult.success(tourGroupPurchaseUserVoList);
     }
+
     /**
      * 根据projectId和出发开始截止时间,查询有拼团活动的日期
      */
@@ -149,6 +151,7 @@ public class WebsiteProjectGroupPurchaseController {
         return ResponseResult.success(dateList);
     }
 
+    @SaIgnore
     @GetMapping("/calcTotalAmount")
     public ResponseResult<Map<String, Object>> calcTotalAmount(TourCalcTotalAmountParam param) {
         return ResponseResult.success(tourProjectGroupPurchaseService.calcTotalAmount(param));

+ 37 - 0
application-webadmin/src/main/java/com/tourism/webadmin/app/website/dto/TourGroupUserToWebDto.java

@@ -0,0 +1,37 @@
+package com.tourism.webadmin.app.website.dto;
+
+import com.tourism.common.core.object.MyOrderParam;
+import com.tourism.common.core.validator.ConstDictRef;
+import com.tourism.common.core.validator.UpdateGroup;
+import com.tourism.webadmin.back.model.constant.Enable;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 拼团设置主表Dto对象。
+ *
+ * @author 吃饭睡觉
+ * @date 2024-09-06
+ */
+@Schema(description = "拼团设置主表Dto对象")
+@Data
+public class TourGroupUserToWebDto {
+
+    /**
+     * 项目id。
+     * NOTE: 可支持等于操作符的列表数据过滤。
+     */
+    @Schema(description = "项目id。")
+    private Long projectId;
+
+    /**
+     * 团购id。
+     * NOTE: 可支持等于操作符的列表数据过滤。
+     */
+    @Schema(description = "团购id。")
+    private Long groupPurchaseProgressId;
+}

+ 7 - 4
application-webadmin/src/main/java/com/tourism/webadmin/back/dao/TourOrderMapper.java

@@ -1,6 +1,7 @@
 package com.tourism.webadmin.back.dao;
 
 import com.tourism.common.core.base.dao.BaseDaoMapper;
+import com.tourism.webadmin.app.website.dto.TourGroupUserToWebDto;
 import com.tourism.webadmin.back.model.TourOrder;
 import com.tourism.webadmin.back.model.TourUser;
 import org.apache.ibatis.annotations.Param;
@@ -33,8 +34,10 @@ public interface TourOrderMapper extends BaseDaoMapper<TourOrder> {
     List<TourOrder> getTourOrderList(
             @Param("tourOrderFilter") TourOrder tourOrderFilter, @Param("orderBy") String orderBy);
 
-    @Select("select tu.show_name,tu.head_image_url,to1.create_time, to1.adult_number + to1.children_number as people_number from tour_user tu " +
-            "inner join tour_order to1 on tu.user_id = to1.create_user_id " +
-            "where to1.group_purchase_progress_id = #{projectId} and to1.type = 1 and to1.order_status != 3")
-    List<TourUser> getTourUserList(@Param("projectId") Long projectId);
+    /**
+     * 根据条件查询对应的参团用户信息
+     * @param dto
+     * @return
+     */
+    List<TourUser> getTourUserList(@Param("groupUserFilter") TourGroupUserToWebDto dto);
 }

+ 16 - 0
application-webadmin/src/main/java/com/tourism/webadmin/back/dao/mapper/TourOrderMapper.xml

@@ -161,4 +161,20 @@
             ORDER BY ${orderBy}
         </if>
     </select>
+
+    <select id="getTourUserList" resultMap="BaseResultMap" parameterType="com.tourism.webadmin.back.model.TourUser">
+        select tu.show_name,tu.head_image_url,to1.create_time, to1.adult_number + to1.children_number as people_number from tour_user tu
+        inner join tour_order to1 on tu.user_id = to1.create_user_id
+        <where>
+            to1.type = 1 and to1.order_status != 3
+            <if test="groupUserFilter != null">
+                <if test="groupUserFilter.projectId != null">
+                    AND to1.project_id = #{groupUserFilter.projectId}
+                </if>
+                <if test="groupUserFilter.groupPurchaseProgressId != null">
+                    AND to1.group_purchase_progress_id = #{groupUserFilter.groupPurchaseProgressId}
+                </if>
+            </if>
+        </where>
+    </select>
 </mapper>

+ 2 - 1
application-webadmin/src/main/java/com/tourism/webadmin/back/service/TourOrderService.java

@@ -1,6 +1,7 @@
 package com.tourism.webadmin.back.service;
 
 import com.tourism.common.core.base.service.IBaseService;
+import com.tourism.webadmin.app.website.dto.TourGroupUserToWebDto;
 import com.tourism.webadmin.back.dto.TourOrderDto;
 import com.tourism.webadmin.back.model.TourOrder;
 import com.tourism.webadmin.back.model.TourUser;
@@ -73,7 +74,7 @@ public interface TourOrderService extends IBaseService<TourOrder, Long> {
      * @param projectId
      * @return
      */
-    List<TourUser> getTourUserListByProjectId(Long projectId);
+    List<TourUser> getTourUserListByProjectId(TourGroupUserToWebDto dto);
 
     /**
      * 更新参与拼团的其他订单价格

+ 3 - 2
application-webadmin/src/main/java/com/tourism/webadmin/back/service/impl/TourOrderServiceImpl.java

@@ -12,6 +12,7 @@ import com.tourism.common.core.object.MyRelationParam;
 import com.tourism.common.core.util.MyModelUtil;
 import com.tourism.common.dict.service.GlobalDictService;
 import com.tourism.common.sequence.wrapper.IdGeneratorWrapper;
+import com.tourism.webadmin.app.website.dto.TourGroupUserToWebDto;
 import com.tourism.webadmin.back.dao.TourOrderMapper;
 import com.tourism.webadmin.back.dto.TourOrderDto;
 import com.tourism.webadmin.back.model.TourOrder;
@@ -129,8 +130,8 @@ public class TourOrderServiceImpl extends BaseService<TourOrder, Long> implement
     }
 
     @Override
-    public List<TourUser> getTourUserListByProjectId(Long projectId) {
-        return tourOrderMapper.getTourUserList(projectId);
+    public List<TourUser> getTourUserListByProjectId(TourGroupUserToWebDto dto) {
+        return tourOrderMapper.getTourUserList(dto);
     }
 
     @Override

+ 6 - 4
application-webadmin/src/main/java/com/tourism/webadmin/back/service/impl/TourProjectGroupPurchaseServiceImpl.java

@@ -85,7 +85,7 @@ public class TourProjectGroupPurchaseServiceImpl extends BaseService<TourProject
     public boolean update(TourProjectGroupPurchase tourProjectGroupPurchase, TourProjectGroupPurchase originalTourProjectGroupPurchase) {
         MyModelUtil.fillCommonsForUpdate(tourProjectGroupPurchase, originalTourProjectGroupPurchase);
         // 这里重点提示,在执行主表数据更新之前,如果有哪些字段不支持修改操作,请用原有数据对象字段替换当前数据字段。
-        UpdateWrapper<TourProjectGroupPurchase> uw = this.createUpdateQueryForNullValue(tourProjectGroupPurchase, tourProjectGroupPurchase.getId());
+        UpdateWrapper<TourProjectGroupPurchase> uw = this.createUpdateQueryForNullValue(tourProjectGroupPurchase, Long.valueOf(tourProjectGroupPurchase.getId()));
         return tourProjectGroupPurchaseMapper.update(tourProjectGroupPurchase, uw) == 1;
     }
 
@@ -219,7 +219,7 @@ public class TourProjectGroupPurchaseServiceImpl extends BaseService<TourProject
         tourOrder.setCurrency(groupPurchase.getPriceUnit());
         tourOrder.setAdultPrice(groupPurchase.getNowPrice());
         tourOrder.setChildrenPrice(groupPurchase.getNowChildPrice());
-        tourOrder.setGroupPurchaseProgressId(groupPurchase.getId());
+        tourOrder.setGroupPurchaseProgressId(Long.valueOf(groupPurchase.getId()));
         return groupPurchase;
     }
 
@@ -235,10 +235,12 @@ public class TourProjectGroupPurchaseServiceImpl extends BaseService<TourProject
         TourProjectGroupPurchase nowPriceAndNextStagePrice = tourProjectGroupPurchaseDetailService.getNowPriceAndNextStagePrice(groupPurchase);
 
         BigDecimal adultTotalPrice = nowPriceAndNextStagePrice.getNowPrice().multiply(BigDecimal.valueOf(param.getAdultCount()));
-        BigDecimal childrenTotalPrice = nowPriceAndNextStagePrice.getNowChildPrice().multiply(BigDecimal.valueOf(param.getChildrenCount()));
-        BigDecimal totalPrice = adultTotalPrice.add(childrenTotalPrice);
+        BigDecimal childTotalPrice = nowPriceAndNextStagePrice.getNowChildPrice().multiply(BigDecimal.valueOf(param.getChildrenCount()));
+        BigDecimal totalPrice = adultTotalPrice.add(childTotalPrice);
         Map<String, Object> resultMap = new HashMap<>();
         resultMap.put("totalPrice", totalPrice);
+        resultMap.put("adultTotalPrice", adultTotalPrice);
+        resultMap.put("childTotalPrice", childTotalPrice);
         return resultMap;
     }
 

+ 2 - 2
application-webadmin/src/main/java/com/tourism/webadmin/back/vo/TourUserVo.java

@@ -22,8 +22,8 @@ public class TourUserVo extends BaseVo {
     /**
      * 主键Id。
      */
-//    @Schema(description = "主键Id")
-//    private String userId;
+    @Schema(description = "主键Id")
+    private String userId;
 
     /**
      * 用户登录名称。