Sfoglia il codice sorgente

设计优化,修改BUG

liude 1 anno fa
parent
commit
2691cb8ca8

+ 4 - 0
vehicle-client/src/main/java/com/chelvc/cloud/vehicle/client/param/OrderPagingParam.java

@@ -38,4 +38,8 @@ public class OrderPagingParam implements Serializable {
      */
 //    @Size(min = 4, message = "订单号长度不能小于4")
     private String orderSn;
+    /**
+     * 订单ID
+     */
+    private Long orderId;
 }

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

@@ -110,4 +110,17 @@ public interface CategoryService extends IService<Category> {
      * @return 分类信息
      */
     List<CategoryDTO> getParentCategories(CategoryListParam param);
+
+    /**
+     * 获取商家目前已有的分类
+     * @param merchantId 商家id
+     * @return
+     */
+    List<CategoryDTO> getCategoriesByMerchant(Long merchantId);
+
+    /**
+     * 根据源id删除分类
+     * @param ids
+     */
+    void deleteBySourceId(List<Long> ids);
 }

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

@@ -247,4 +247,22 @@ public class CategoryServiceImpl extends ServiceImpl<CategoryMapper, Category> i
     public void deleteByMerchantId(Long merchant){
         this.baseMapper.deleteByMerchantId(merchant);
     }
+
+
+    public List<CategoryDTO> getCategoriesByMerchant(Long merchantId){
+        List<Category> categories = this.lambdaQuery()
+                .eq(Category::getMerchantId,merchantId)
+                .list();
+        return CategoryCopier.INSTANCE.copying(categories);
+    }
+    @Override
+    public void deleteBySourceId(List<Long> ids){
+        List<Long> categoryIds = this.lambdaQuery()
+                .in(Category::getSourceId,ids)
+                .list()
+                .stream()
+                .map(Category::getSourceId)
+                .collect(Collectors.toList());
+        this.baseMapper.deleteBatchIds(categoryIds);
+    }
 }

+ 20 - 13
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/MerchantServiceImpl.java

@@ -203,20 +203,27 @@ public class MerchantServiceImpl extends ServiceImpl<MerchantMapper, Merchant> i
         if (StringUtils.notEmpty(param.getMainBusiness())){
             business.add(param.getMainBusiness());
         }
-//        this.categoryService.removeByIds(business);
         if (!CollectionUtils.isEmpty(business)){
-            this.categoryService.deleteByMerchantId(merchant.getId());
-            List<Category> categories = this.categoryService.getCategories(business);
-            if (!CollectionUtils.isEmpty(categories)){
-                categories.forEach(item ->{
-                    item.setSourceId(item.getId());
-                    item.setId(null);
-                    item.setMerchantId(merchant.getId());
-                    item.setType("1");
-                    item.setParentId(0L);
-//                this.categoryService.save(item);
-                });
-                this.categoryService.saveBatchCategories(categories);
+//            this.categoryService.deleteByMerchantId(merchant.getId());
+            List<CategoryDTO> lists = this.categoryService.getCategoriesByMerchant(id);
+            List<Long> sources = lists.stream().map(CategoryDTO::getSourceId).collect(Collectors.toList());
+            List<Long> deletes = sources.stream().filter(item -> !business.contains(item)).collect(Collectors.toList());
+            List<Long> adds = business.stream().filter(item ->!sources.contains(item)).collect(Collectors.toList());
+            if (!CollectionUtils.isEmpty(adds)){
+                List<Category> categories = this.categoryService.getCategories(adds);
+                if (!CollectionUtils.isEmpty(categories)){
+                    categories.forEach(item ->{
+                        item.setSourceId(item.getId());
+                        item.setId(null);
+                        item.setMerchantId(merchant.getId());
+                        item.setType("1");
+                        item.setParentId(0L);
+                    });
+                    this.categoryService.saveBatchCategories(categories);
+                }
+            }
+            if (!CollectionUtils.isEmpty(deletes)){
+                this.categoryService.deleteBySourceId(deletes);
             }
         }
     }

+ 2 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/OmsOrderServiceImpl.java

@@ -854,6 +854,8 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper, OmsOrder> i
         Page<OmsOrder> page = this.lambdaQuery()
                 .in(StringUtils.notEmpty(param.getStatus()), OmsOrder::getStatus, statuses)
                 .in(OmsOrder::getMerchantId, merchants)
+                .eq(StringUtils.notEmpty(param.getOrderId()),OmsOrder::getId,param.getOrderId())
+                .eq(StringUtils.notEmpty(param.getOrderSn()),OmsOrder::getOrderSn,param.getOrderSn())
                 .orderByDesc(OmsOrder::getCreateTime)
                 .page(DatabaseContextHolder.page(param.getPaging()));
         Pagination<OmsOrderDTO> pagination = DatabaseContextHolder.pagination(page, OrderCopier.INSTANCE::copying);

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

@@ -30,7 +30,7 @@
         point(mt.longitude, mt.latitude), point(#{param.longitude}, #{param.latitude})
         )) distance from favorite fe
         inner join merchant mt on fe.content_id = mt.id and mt.status = 'ONLINE'
-        and mt.region between #{param.code} and #{param.boundary}
+--         and mt.region between #{param.code} and #{param.boundary}
         where fe.user_id = #{userId} and fe.type = #{param.type}
         <if test="param.offset != null">
             and fe.id > #{param.offset}

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

@@ -92,7 +92,8 @@
         point(mt.longitude, mt.latitude), point(#{param.longitude}, #{param.latitude})
         )) distance
         from `merchant` mt
-        where mt.id = #{id} and mt.region between #{param.code} and #{param.boundary}
+        where mt.id = #{id}
+--           and mt.region between #{param.code} and #{param.boundary}
     </select>
 
     <select id="merchantFavorite" resultType="java.lang.Integer">