Sfoglia il codice sorgente

订单以及预约信息优化

liude 1 anno fa
parent
commit
023076280c

+ 4 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/FavoriteDTO.java

@@ -49,4 +49,8 @@ public class FavoriteDTO implements Serializable {
      * 商家信息
      */
     private MerchantDTO merchant;
+    /**
+     * 商品信息
+     */
+    private GoodsDTO goods;
 }

+ 2 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/FavoritePagingParam.java

@@ -35,4 +35,6 @@ public class FavoritePagingParam extends LocationQueryParam {
      */
     @NotNull(message = "收藏类型不能为空")
     private FavoriteType type;
+
+
 }

+ 4 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/GoodsQueryParam.java

@@ -24,6 +24,10 @@ public class GoodsQueryParam implements Serializable {
      * 商品分类类型
      */
     private CategoryType type;
+    /**
+     * 分类ID
+     */
+    private Long categoryId;
 
     /**
      * 偏移商品ID

+ 6 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/FavoriteService.java

@@ -45,4 +45,10 @@ public interface FavoriteService {
      * @return 用户收藏店铺列表
      */
     List<FavoriteDTO> listFavoriteMerchants(FavoriteQueryParam param);
+
+    /**
+     * 查询用户收藏商品列表
+     * @return 用户收藏商品列表
+     */
+    List<FavoriteDTO> listFavoriteGoods();
 }

+ 1 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/dao/FavoriteMapper.java

@@ -34,6 +34,7 @@ public interface FavoriteMapper extends BaseMapper<Favorite> {
      */
     List<Favorite> listFavoriteMerchants(@Param("userId") Long userId, @Param("param") FavoriteQueryParam param);
 
+
     /**
      * 取消收藏
      * @param id 商品或者商家ID

+ 21 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/FavoriteServiceImpl.java

@@ -7,15 +7,19 @@ import com.chelvc.cloud.vehicle.api.dto.MerchantDTO;
 import com.chelvc.cloud.vehicle.api.param.FavoritePagingParam;
 import com.chelvc.cloud.vehicle.api.param.FavoriteQueryParam;
 import com.chelvc.cloud.vehicle.server.copier.FavoriteCopier;
+import com.chelvc.cloud.vehicle.server.copier.GoodsCopier;
 import com.chelvc.cloud.vehicle.server.dao.FavoriteMapper;
 import com.chelvc.cloud.vehicle.server.entity.Favorite;
 import com.chelvc.cloud.vehicle.server.service.FavoriteService;
+import com.chelvc.cloud.vehicle.server.service.GoodsService;
 import com.chelvc.framework.base.context.SessionContextHolder;
 import com.chelvc.framework.base.exception.ResourceUnavailableException;
 import com.chelvc.framework.base.util.ResourceUtils;
 import com.chelvc.framework.common.model.Pagination;
 import lombok.NonNull;
+import lombok.RequiredArgsConstructor;
 import org.apache.dubbo.config.annotation.DubboService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.CollectionUtils;
 
 import java.util.Collections;
@@ -30,9 +34,13 @@ import java.util.stream.Collectors;
  * @author liude
  * @date 2023/7/20
  */
+@RequiredArgsConstructor(onConstructor = @__(@Autowired))
 @DubboService(interfaceClass = com.chelvc.cloud.vehicle.api.service.FavoriteService.class)
 public class FavoriteServiceImpl extends ServiceImpl<FavoriteMapper, Favorite> implements FavoriteService,
         com.chelvc.cloud.vehicle.api.service.FavoriteService {
+
+    private final GoodsService goodsService;
+
     @Override
     public Long addMerchantFavorite(@NonNull Long merchantId,String type) {
         Long userId = SessionContextHolder.getId();
@@ -94,4 +102,17 @@ public class FavoriteServiceImpl extends ServiceImpl<FavoriteMapper, Favorite> i
                 }).collect(Collectors.toList());
 
     }
+
+    @Override
+    public List<FavoriteDTO> listFavoriteGoods() {
+        Long userId = SessionContextHolder.getId();
+        List<Favorite> favorites = this.lambdaQuery().eq(Favorite::getUserId,userId)
+                .eq(Favorite::getType,FavoriteType.GOODS).list();
+
+        List<FavoriteDTO> favoriteList = FavoriteCopier.INSTANCE.copying(favorites);
+        favoriteList.forEach(item ->{
+            item.setGoods(GoodsCopier.INSTANCE.copying(this.goodsService.getById(item.getContentId())));
+        });
+        return favoriteList;
+    }
 }

+ 26 - 4
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/OmsOrderServiceImpl.java

@@ -351,7 +351,11 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper, OmsOrder> i
                 .eq(OmsOrder :: getStatus,param.getStatus())
                 .orderByDesc(OmsOrder :: getCreateTime)
                 .page(PagingUtils.convert(param.getPaging()));
-       return PagingUtils.convert(page, OrderCopier.INSTANCE::copying);
+        Pagination<OmsOrderDTO> pagination = PagingUtils.convert(page, OrderCopier.INSTANCE::copying);
+        pagination.getRecords().forEach(item ->{
+            item.setGoodsInfo(this.omsOrderItemService.getOrderItemByOrderId(item.getId()));
+        });
+       return pagination;
     }
 
     @Override
@@ -362,7 +366,11 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper, OmsOrder> i
                     .eq(StringUtils.nonEmpty(param.getStatus()),OmsOrder :: getStatus,param.getStatus())
                     .orderByDesc(OmsOrder :: getCreateTime)
                     .page(PagingUtils.convert(param.getPaging()));
-            return PagingUtils.convert(page, OrderCopier.INSTANCE::copying);
+            Pagination<OmsOrderDTO> pagination = PagingUtils.convert(page, OrderCopier.INSTANCE::copying);
+            pagination.getRecords().forEach(item ->{
+                item.setGoodsInfo(this.omsOrderItemService.getOrderItemByOrderId(item.getId()));
+            });
+            return pagination;
         }else{
             List<Long> merchants = this.merchantService.getMerchantIdsByUserId(userId);
             if (!StringUtils.nonEmpty(merchants)){
@@ -373,7 +381,11 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper, OmsOrder> i
                     .in(OmsOrder :: getMerchantId,merchants)
                     .orderByDesc(OmsOrder :: getCreateTime)
                     .page(PagingUtils.convert(param.getPaging()));
-            return PagingUtils.convert(page, OrderCopier.INSTANCE::copying);
+            Pagination<OmsOrderDTO> pagination = PagingUtils.convert(page, OrderCopier.INSTANCE::copying);
+            pagination.getRecords().forEach(item ->{
+                item.setGoodsInfo(this.omsOrderItemService.getOrderItemByOrderId(item.getId()));
+            });
+            return pagination;
         }
     }
 
@@ -735,11 +747,21 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper, OmsOrder> i
     }
     @Override
     public Pagination<OmsOrderDTO> getMerchantOrderPaging(OrderPagingParam param){
+        Long userId = SessionContextHolder.getId();
+        List<Long> merchants = this.merchantService.getMerchantIdsByUserId(userId);
+        if (!StringUtils.nonEmpty(merchants)){
+            return null;
+        }
         Page<OmsOrder> page = this.lambdaQuery()
                 .eq(StringUtils.nonEmpty(param.getStatus()),OmsOrder :: getStatus,param.getStatus())
+                .in(OmsOrder::getMerchantId,merchants)
                 .orderByDesc(OmsOrder :: getCreateTime)
                 .page(PagingUtils.convert(param.getPaging()));
-        return PagingUtils.convert(page, OrderCopier.INSTANCE::copying);
+        Pagination<OmsOrderDTO> pagination = PagingUtils.convert(page, OrderCopier.INSTANCE::copying);
+        pagination.getRecords().forEach(item ->{
+           item.setGoodsInfo(this.omsOrderItemService.getOrderItemByOrderId(item.getId()));
+        });
+        return pagination;
     }
 
     @Override

+ 1 - 1
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/ProfitRatioConfigServiceImpl.java

@@ -28,7 +28,7 @@ import java.util.List;
 public class ProfitRatioConfigServiceImpl extends ServiceImpl<ProfitRatioConfigMapper, ProfitRatioConfig> implements
         ProfitRatioConfigService, com.chelvc.cloud.vehicle.api.service.ProfitRatioConfigService {
 
-    private final ProfitRatioConfigMapper baseMapper;
+//    private final ProfitRatioConfigMapper baseMapper;
 
     @Override
     public void add(AddProfitRatioConfigParams params) {

+ 22 - 2
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/ReservationServiceImpl.java

@@ -2,8 +2,10 @@ package com.chelvc.cloud.vehicle.server.service.impl;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.chelvc.cloud.uc.api.dto.EmployeeDTO;
 import com.chelvc.cloud.uc.api.service.EmployeeService;
 import com.chelvc.cloud.vehicle.api.constant.ReserveStatus;
+import com.chelvc.cloud.vehicle.api.dto.MerchantDTO;
 import com.chelvc.cloud.vehicle.api.dto.ReservationDTO;
 import com.chelvc.cloud.vehicle.api.param.ReservationModifyParam;
 import com.chelvc.cloud.vehicle.api.param.ReservationPagingParam;
@@ -79,7 +81,16 @@ public class ReservationServiceImpl extends ServiceImpl<ReservationMapper, Reser
                     .eq(StringUtils.nonEmpty(param.getStatus()),Reservation :: getStatus,param.getStatus())
                     .orderByDesc(Reservation :: getAppointTime)
                     .page(PagingUtils.convert(param.getPaging()));
-            return PagingUtils.convert(page, ReservationCopier.INSTANCE::copying);
+            Pagination<ReservationDTO> pagination = PagingUtils.convert(page, ReservationCopier.INSTANCE::copying);
+            pagination.getRecords().forEach(item ->{
+                EmployeeDTO employeeDTO = this.employeeService.getEmployee(item.getUserId());
+                if (employeeDTO != null){
+                    item.setUsername(employeeDTO.getUsername());
+                }
+                MerchantDTO merchantDTO = this.merchantService.getMerchantById(item.getMerchantId());
+                item.setMerchant(merchantDTO);
+            });
+            return pagination;
         }else{
             List<Long> merchants = this.merchantService.getMerchantIdsByUserId(userId);
             if (!StringUtils.nonEmpty(merchants)){
@@ -90,7 +101,16 @@ public class ReservationServiceImpl extends ServiceImpl<ReservationMapper, Reser
                     .in(Reservation :: getMerchantId,merchants)
                     .orderByDesc(Reservation :: getAppointTime)
                     .page(PagingUtils.convert(param.getPaging()));
-            return PagingUtils.convert(page, ReservationCopier.INSTANCE::copying);
+            Pagination<ReservationDTO> pagination = PagingUtils.convert(page, ReservationCopier.INSTANCE::copying);
+            pagination.getRecords().forEach(item ->{
+                EmployeeDTO employeeDTO = this.employeeService.getEmployee(item.getUserId());
+                if (employeeDTO != null){
+                    item.setUsername(employeeDTO.getUsername());
+                }
+                MerchantDTO merchantDTO = this.merchantService.getMerchantById(item.getMerchantId());
+                item.setMerchant(merchantDTO);
+            });
+            return pagination;
         }
     }
 }

+ 1 - 1
vehicle-server/src/main/resources/mapper/FavoriteMapper.xml

@@ -31,7 +31,7 @@
         )) distance from favorite fe
         inner join merchant mt on fe.content_id = mt.id and mt.status = 'ONLINE'
         and mt.region = #{param.region}
-        where fe.user_id = #{userId} and fe.type = 'MERCHANT'
+        where fe.user_id = #{userId} and fe.type = #{param.type}
         <if test="param.offset != null">
             and fe.id > #{param.offset}
         </if>

+ 2 - 2
vehicle-server/src/main/resources/mapper/GoodsMapper.xml

@@ -9,8 +9,8 @@
             <if test="param.offset != null">
                 and id > #{param.offset}
             </if>
-            <if test="param.type != null">
-                and type = #{param.type}
+            <if test="param.categoryId != null">
+                and category_id = #{param.categoryId}
             </if>
             and status = 'ONLINE'
         </where>