소스 검색

代码优化以及业务功能调整

liude 1 년 전
부모
커밋
49410f4317
16개의 변경된 파일150개의 추가작업 그리고 45개의 파일을 삭제
  1. 5 1
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/MerchantAuthDTO.java
  2. 1 1
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/MerchantDetailDTO.java
  3. 1 2
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/GoodsModifyParam.java
  4. 21 8
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/OmsOrderModifyParam.java
  5. 1 1
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/FavoriteService.java
  6. 7 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/dao/FavoriteMapper.java
  7. 1 1
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/entity/Goods.java
  8. 1 1
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/entity/MerchantAuth.java
  9. 9 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/CategoryService.java
  10. 7 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/CategoryServiceImpl.java
  11. 29 12
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/FavoriteServiceImpl.java
  12. 1 1
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/MerchantAuthServiceImpl.java
  13. 18 4
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/MerchantServiceImpl.java
  14. 42 12
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/OmsOrderServiceImpl.java
  15. 5 0
      vehicle-server/src/main/resources/mapper/FavoriteMapper.xml
  16. 1 1
      vehicle-server/src/main/resources/mapper/GoodsMapper.xml

+ 5 - 1
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/MerchantAuthDTO.java

@@ -101,7 +101,7 @@ public class MerchantAuthDTO implements Serializable {
     /**
      * 审核人
      */
-    private Long reviewer; // 审核人
+    private String reviewer; // 审核人
     /**
      * 推荐人
      */
@@ -110,4 +110,8 @@ public class MerchantAuthDTO implements Serializable {
      * 审核时间
      */
     private Date reviewTime; // 审核时间
+    /**
+     * 申请时间
+     */
+    private Date applicationTime; //
 }

+ 1 - 1
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/MerchantDetailDTO.java

@@ -33,5 +33,5 @@ public class MerchantDetailDTO implements Serializable {
     /**
      * 分类类型列表
      */
-    private List<CategoryType> categories;
+    private List<CategoryDTO> categories;
 }

+ 1 - 2
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/GoodsModifyParam.java

@@ -26,8 +26,7 @@ public class GoodsModifyParam {
     /**
      * 分类类型
      */
-    @NotNull(message = "分类类型不能为空")
-    private CategoryType type;
+//    private CategoryType type;
 
     /**
      * 分类ID

+ 21 - 8
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/OmsOrderModifyParam.java

@@ -20,19 +20,32 @@ import java.util.List;
 @SuperBuilder
 @NoArgsConstructor
 @AllArgsConstructor
-@ToString(callSuper = true)
 public class OmsOrderModifyParam implements Serializable
-{
-    private static final long serialVersionUID = 1L;
+{ private static final long serialVersionUID = 1L;
 
-    //@ApiModelProperty("收货地址ID")
+    /**
+     * 收货地址ID
+     */
     private Long userReceiveAddressId;
-    //@ApiModelProperty("优惠券ID")
+    /**
+     * 优惠券ID
+     */
     private Long couponId;
-    //@ApiModelProperty("使用的积分数")
+    /**
+     * 使用的积分数
+     */
     private Integer useIntegration;
-    //@ApiModelProperty("支付方式")
+    /**
+     * 支付方式
+     * 支付方式:0->未支付;1->支付宝;2->微信
+     */
     private Integer payType;
-    //@ApiModelProperty("被选中的购物车商品ID")
+    /**
+     * 被选中的购物车商品ID
+     */
     private List<Long> cartIds;
+    /**
+     * 商品id
+     */
+    private Long goodsId;
 }

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

@@ -21,7 +21,7 @@ public interface FavoriteService {
      * @param merchantId 商家ID
      * @return 收藏ID
      */
-    Long addMerchantFavorite(Long merchantId);
+    Long addMerchantFavorite(Long merchantId,String type);
 
     /**
      * 取消我的收藏

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

@@ -33,4 +33,11 @@ public interface FavoriteMapper extends BaseMapper<Favorite> {
      * @return 用户收藏店铺列表
      */
     List<Favorite> listFavoriteMerchants(@Param("userId") Long userId, @Param("param") FavoriteQueryParam param);
+
+    /**
+     * 取消收藏
+     * @param id 商品或者商家ID
+     * @param userId 用户id
+     */
+    void deleteFavorite(@Param("id") Long id,@Param("userId") Long userId);
 }

+ 1 - 1
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/entity/Goods.java

@@ -42,7 +42,7 @@ public class Goods extends ModifyEntity<Long> {
     /**
      * 分类类型
      */
-    private CategoryType type;
+//    private CategoryType type;
 
     /**
      * 分类ID

+ 1 - 1
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/entity/MerchantAuth.java

@@ -47,7 +47,7 @@ public class MerchantAuth implements Entity<Long> {
     private Date businessLicenseExpirationDateValid; // 经营许可证有效期
     private Date applicationTime; // 申请时间
     private String reviewStatus; // 审核状态
-    private Long reviewer; // 审核人
+    private String reviewer; // 审核人
     private String recommendationUser; // 推荐人
     private Date reviewTime; // 审核时间
 }

+ 9 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/CategoryService.java

@@ -1,8 +1,11 @@
 package com.chelvc.cloud.vehicle.server.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.chelvc.cloud.vehicle.api.dto.CategoryDTO;
 import com.chelvc.cloud.vehicle.server.entity.Category;
 
+import java.util.List;
+
 /**
  * 分类业务操作接口
  *
@@ -10,4 +13,10 @@ import com.chelvc.cloud.vehicle.server.entity.Category;
  * @date 2023/5/2
  */
 public interface CategoryService extends IService<Category> {
+    /**
+     * 查询分类列表
+     * @param categories
+     * @return
+     */
+    List<CategoryDTO> listCategories(List<Long> categories);
 }

+ 7 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/CategoryServiceImpl.java

@@ -99,4 +99,11 @@ public class CategoryServiceImpl extends ServiceImpl<CategoryMapper, Category> i
         categories.sort(Comparator.comparing(Category::getType).thenComparing(Category::getSort));
         return CategoryCopier.INSTANCE.copying(categories);
     }
+    @Override
+    public List<CategoryDTO> listCategories(List<Long> ids){
+        List<Category> categories = this.lambdaQuery().in(Category::getId,ids).eq(Category::getEnabled, true)
+                .orderByAsc(Category::getSort).list();
+        categories.sort(Comparator.comparing(Category::getType).thenComparing(Category::getSort));
+        return CategoryCopier.INSTANCE.copying(categories);
+    }
 }

+ 29 - 12
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/FavoriteServiceImpl.java

@@ -17,6 +17,7 @@ import lombok.NonNull;
 import org.apache.dubbo.config.annotation.DubboService;
 import org.springframework.util.CollectionUtils;
 
+import java.sql.Wrapper;
 import java.util.Collections;
 import java.util.Date;
 import java.util.List;
@@ -33,24 +34,40 @@ import java.util.stream.Collectors;
 public class FavoriteServiceImpl extends ServiceImpl<FavoriteMapper, Favorite> implements FavoriteService,
         com.chelvc.cloud.vehicle.api.service.FavoriteService {
     @Override
-    public Long addMerchantFavorite(@NonNull Long merchantId) {
+    public Long addMerchantFavorite(@NonNull Long merchantId,String type) {
         Long userId = SessionContextHolder.getId();
-        Integer count = this.lambdaQuery()
-                .eq(Favorite::getUserId, userId)
-                .eq(Favorite::getType, FavoriteType.MERCHANT)
-                .eq(Favorite::getContentId, merchantId).count();
-        ResourceUtils.available(count <= 0, "收藏信息已存在");
-        Favorite favorite = Favorite.builder().userId(userId).type(FavoriteType.MERCHANT)
-                .contentId(merchantId).createTime(new Date()).build();
-        this.baseMapper.saveFavorite(favorite);
-        return favorite.getId();
+        if ("GOODS".equals(type)){
+            Integer count = this.lambdaQuery()
+                    .eq(Favorite::getUserId, userId)
+                    .eq(Favorite::getType, FavoriteType.GOODS)
+                    .eq(Favorite::getContentId, merchantId).count();
+            ResourceUtils.available(count <= 0, "收藏信息已存在");
+            Favorite favorite = Favorite.builder().userId(userId).type(FavoriteType.GOODS)
+                    .contentId(merchantId).createTime(new Date()).build();
+            this.baseMapper.saveFavorite(favorite);
+            return favorite.getId();
+        }else{
+            Integer count = this.lambdaQuery()
+                    .eq(Favorite::getUserId, userId)
+                    .eq(Favorite::getType, FavoriteType.MERCHANT)
+                    .eq(Favorite::getContentId, merchantId).count();
+            ResourceUtils.available(count <= 0, "收藏信息已存在");
+            Favorite favorite = Favorite.builder().userId(userId).type(FavoriteType.MERCHANT)
+                    .contentId(merchantId).createTime(new Date()).build();
+            this.baseMapper.saveFavorite(favorite);
+            return favorite.getId();
+        }
     }
 
     @Override
     public void deleteMineFavorite(@NonNull Long id) {
-        Favorite favorite = ResourceUtils.required(this.getById(id), "收藏信息不存在");
+        Long userId = SessionContextHolder.getId();
+        Favorite favorite = this.lambdaQuery()
+                .eq(Favorite::getUserId, userId)
+                .eq(Favorite::getContentId, id).one();
+        ResourceUtils.available(favorite != null, "收藏信息不存在");
         ResourceUtils.available(Objects.equals(favorite.getUserId(), SessionContextHolder.getId()), "非法操作");
-        this.removeById(id);
+        this.baseMapper.deleteFavorite(id,userId);
     }
 
     @Override

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

@@ -76,7 +76,7 @@ public class MerchantAuthServiceImpl extends ServiceImpl<MerchantAuthMapper, Mer
         MerchantAuth merchantAuth = ResourceUtils.required(this.getById(id), "商家认证不存在");
         merchantAuth.setReviewStatus(state);
         merchantAuth.setReviewTime(new Date());
-        merchantAuth.setReviewer(userId);
+        merchantAuth.setReviewer(userId.toString());
         this.updateById(merchantAuth);
     }
 }

+ 18 - 4
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/MerchantServiceImpl.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.chelvc.cloud.vehicle.api.constant.CategoryType;
 import com.chelvc.cloud.vehicle.api.constant.MerchantStatus;
+import com.chelvc.cloud.vehicle.api.dto.CategoryDTO;
 import com.chelvc.cloud.vehicle.api.dto.GoodsDTO;
 import com.chelvc.cloud.vehicle.api.dto.MerchantDTO;
 import com.chelvc.cloud.vehicle.api.dto.MerchantDetailDTO;
@@ -11,6 +12,7 @@ import com.chelvc.cloud.vehicle.api.param.*;
 import com.chelvc.cloud.vehicle.server.copier.MerchantCopier;
 import com.chelvc.cloud.vehicle.server.dao.MerchantMapper;
 import com.chelvc.cloud.vehicle.server.entity.Merchant;
+import com.chelvc.cloud.vehicle.server.service.CategoryService;
 import com.chelvc.cloud.vehicle.server.service.GoodsService;
 import com.chelvc.cloud.vehicle.server.service.MerchantService;
 import com.chelvc.framework.base.util.ResourceUtils;
@@ -24,6 +26,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 
 import java.util.List;
 import java.util.Objects;
+import java.util.Set;
+import java.util.stream.Collectors;
 
 /**
  * 商家业务操作实现
@@ -37,6 +41,8 @@ public class MerchantServiceImpl extends ServiceImpl<MerchantMapper, Merchant> i
         com.chelvc.cloud.vehicle.api.service.MerchantService {
     private final GoodsService goodsService;
 
+    private final CategoryService categoryService;
+
     @Override
     public List<MerchantDTO> listNearbyMerchants(@NonNull LocationQueryParam param, int size) {
         return this.baseMapper.listNearbyMerchants(param, size);
@@ -65,8 +71,12 @@ public class MerchantServiceImpl extends ServiceImpl<MerchantMapper, Merchant> i
         );
 
         // 获取商家商品分类类型列表
-        List<CategoryType> types = this.goodsService.listMerchantGoodsCategoryTypes(id);
-        return MerchantDetailDTO.builder().merchant(merchant).goods(goods).categories(types).build();
+//        List<CategoryType> types = this.goodsService.listMerchantGoodsCategoryTypes(id);
+        List<Long> idSet = goods.stream()
+                .map(GoodsDTO::getCategoryId) // 将每个Person对象映射到其id
+                .collect(Collectors.toList());
+        List<CategoryDTO> categories = this.categoryService.listCategories(idSet);
+        return MerchantDetailDTO.builder().merchant(merchant).goods(goods).categories(categories).build();
     }
 
     @Override
@@ -82,8 +92,12 @@ public class MerchantServiceImpl extends ServiceImpl<MerchantMapper, Merchant> i
         );
 
         // 获取商家商品分类类型列表
-        List<CategoryType> types = this.goodsService.listMerchantGoodsCategoryTypes(id);
-        return MerchantDetailDTO.builder().merchant(merchant).goods(goods).categories(types).build();
+//        List<CategoryType> types = this.goodsService.listMerchantGoodsCategoryTypes(id);
+        List<Long> idSet = goods.stream()
+                .map(GoodsDTO::getCategoryId) // 将每个Person对象映射到其id
+                .collect(Collectors.toList());
+        List<CategoryDTO> categories = this.categoryService.listCategories(idSet);
+        return MerchantDetailDTO.builder().merchant(merchant).goods(goods).categories(categories).build();
     }
 
     @Override

+ 42 - 12
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/OmsOrderServiceImpl.java

@@ -26,10 +26,12 @@ import com.chelvc.cloud.vehicle.api.param.OrderPagingParam;
 import com.chelvc.cloud.vehicle.server.copier.OrderCopier;
 import com.chelvc.cloud.vehicle.server.dao.OmsOrderMapper;
 import com.chelvc.cloud.vehicle.server.dao.OmsOrderSettingMapper;
+import com.chelvc.cloud.vehicle.server.entity.Goods;
 import com.chelvc.cloud.vehicle.server.entity.OmsOrder;
 import com.chelvc.cloud.vehicle.server.entity.OmsOrderItem;
 import com.chelvc.cloud.vehicle.server.entity.OmsOrderSetting;
 import com.chelvc.cloud.vehicle.server.entity.UserCoupon;
+import com.chelvc.cloud.vehicle.server.service.GoodsService;
 import com.chelvc.cloud.vehicle.server.service.IOmsOrderItemService;
 import com.chelvc.cloud.vehicle.server.service.IOmsOrderService;
 import com.chelvc.cloud.vehicle.server.service.OmsCartItemService;
@@ -66,6 +68,8 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper, OmsOrder> i
 
     private final UserCouponService userCouponService;
 
+    private final GoodsService goodsService;
+
     @Override
     public ConfirmOrderResultDTO generateConfirmOrder(OmsOrderModifyParam orderParam) {
         ConfirmOrderResultDTO result = new ConfirmOrderResultDTO();
@@ -98,26 +102,52 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper, OmsOrder> i
         //获取购物车及优惠信息
         Long userId = SessionContextHolder.getId();
         List<OmsCartItemDTO> cartPromotionItemList = omsCartItemService.listPromotion(orderParam.getCartIds());
-        for (OmsCartItemDTO cartPromotionItem : cartPromotionItemList) {
+        if (!StringUtils.isEmpty(orderParam.getGoodsId())){
+            Goods goods = this.goodsService.getById(orderParam.getGoodsId());
+            if (goods == null){
+                return null;
+            }
             //生成下单商品信息
             OmsOrderItem orderItem = new OmsOrderItem();
-            orderItem.setGoodsId(cartPromotionItem.getGoodsId());
-            orderItem.setGoodsName(cartPromotionItem.getGoodsName());
-            orderItem.setGoodsPic(cartPromotionItem.getGoodsPic());
-            orderItem.setGoodsAttr(cartPromotionItem.getGoodsAttr());
-            orderItem.setGoodsBrand(cartPromotionItem.getGoodsBrand());
-            orderItem.setGoodsSn(cartPromotionItem.getGoodsSn());
-            orderItem.setGoodsPrice(cartPromotionItem.getPrice());
-            orderItem.setGoodsQuantity(cartPromotionItem.getQuantity());
-            orderItem.setGoodsSkuId(cartPromotionItem.getGoodsSkuId());
-            orderItem.setGoodsSkuCode(cartPromotionItem.getGoodsSkuCode());
-            orderItem.setGoodsCategoryId(cartPromotionItem.getGoodsCategoryId());
+            orderItem.setGoodsId(goods.getId());
+            orderItem.setGoodsName(goods.getName());
+            orderItem.setGoodsPic(goods.getLogo());
+            orderItem.setGoodsAttr(null);
+            orderItem.setGoodsBrand(null);
+            orderItem.setGoodsSn(null);
+            orderItem.setGoodsPrice(new BigDecimal(goods.getOriginalPrice()));
+            orderItem.setGoodsQuantity(1);
+            orderItem.setGoodsSkuId(null);
+            orderItem.setGoodsSkuCode(null);
+            orderItem.setGoodsCategoryId(goods.getCategoryId());
 //            orderItem.setPromotionAmount(cartPromotionItem.getReduceAmount());
 //            orderItem.setPromotionName(cartPromotionItem.getPromotionMessage());
             orderItem.setGiftIntegration(0L);
             orderItem.setGiftGrowth(0);
             orderItemList.add(orderItem);
+        }else{
+            for (OmsCartItemDTO cartPromotionItem : cartPromotionItemList) {
+                //生成下单商品信息
+                OmsOrderItem orderItem = new OmsOrderItem();
+                orderItem.setGoodsId(cartPromotionItem.getGoodsId());
+                orderItem.setGoodsName(cartPromotionItem.getGoodsName());
+                orderItem.setGoodsPic(cartPromotionItem.getGoodsPic());
+                orderItem.setGoodsAttr(cartPromotionItem.getGoodsAttr());
+                orderItem.setGoodsBrand(cartPromotionItem.getGoodsBrand());
+                orderItem.setGoodsSn(cartPromotionItem.getGoodsSn());
+                orderItem.setGoodsPrice(cartPromotionItem.getPrice());
+                orderItem.setGoodsQuantity(cartPromotionItem.getQuantity());
+                orderItem.setGoodsSkuId(cartPromotionItem.getGoodsSkuId());
+                orderItem.setGoodsSkuCode(cartPromotionItem.getGoodsSkuCode());
+                orderItem.setGoodsCategoryId(cartPromotionItem.getGoodsCategoryId());
+//            orderItem.setPromotionAmount(cartPromotionItem.getReduceAmount());
+//            orderItem.setPromotionName(cartPromotionItem.getPromotionMessage());
+                orderItem.setGiftIntegration(0L);
+                orderItem.setGiftGrowth(0);
+                orderItemList.add(orderItem);
+            }
         }
+
         //判断购物车中商品是否都有库存
 //        if (!hasStock(cartPromotionItemList)) {
 //            Asserts.fail("库存不足,无法下单");

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

@@ -38,4 +38,9 @@
         order by fe.create_time desc
         limit #{param.size}
     </select>
+
+
+    <delete id="deleteFavorite">
+        delete from favorite where user_id = #{userId} and content_id = #{id}
+    </delete>
 </mapper>

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

@@ -2,7 +2,7 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.chelvc.cloud.vehicle.server.dao.GoodsMapper">
     <select id="listMerchantSimpleGoods" resultType="com.chelvc.cloud.vehicle.api.dto.GoodsDTO">
-        select id, name, logo, original_price, special_price, score, sale
+        select id, name, logo, original_price, special_price, score, sale,category_id categoryId
         from `goods`
         <where>
             merchant_id = #{merchantId}