Browse Source

修改商户分页

gaohp 11 months ago
parent
commit
08cd716de3

+ 6 - 0
feifan-module-mall/feifan-module-product-biz/src/main/java/cn/newfeifan/mall/module/product/dal/mysql/sku/ProductSkuMapper.java

@@ -4,6 +4,7 @@ import cn.hutool.core.lang.Assert;
 import cn.newfeifan.mall.framework.mybatis.core.mapper.BaseMapperX;
 import cn.newfeifan.mall.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.newfeifan.mall.module.product.dal.dataobject.sku.ProductSkuDO;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import org.apache.ibatis.annotations.Mapper;
 
@@ -55,4 +56,9 @@ public interface ProductSkuMapper extends BaseMapperX<ProductSkuDO> {
         return update(null, updateWrapper);
     }
 
+    default Integer getSkuCount(Long key) {
+        return Integer.parseInt(String.valueOf(selectCount(new LambdaQueryWrapperX<ProductSkuDO>().eqIfPresent(ProductSkuDO::getMerchantId, key))));
+    }
+
+    ;
 }

+ 1 - 0
feifan-module-mall/feifan-module-product-biz/src/main/java/cn/newfeifan/mall/module/product/service/sku/ProductSkuService.java

@@ -110,4 +110,5 @@ public interface ProductSkuService {
      */
     int updateSkuPropertyValue(Long propertyValueId, String propertyValueName);
 
+    Integer getSkuCount(Long key);
 }

+ 7 - 0
feifan-module-mall/feifan-module-product-biz/src/main/java/cn/newfeifan/mall/module/product/service/sku/ProductSkuServiceImpl.java

@@ -207,6 +207,13 @@ public class ProductSkuServiceImpl implements ProductSkuService {
         return updateSkus.size();
     }
 
+    @Override
+    public Integer getSkuCount(Long key) {
+
+        return   productSkuMapper.getSkuCount(key);
+
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void updateSkuList(Long spuId, List<ProductSkuSaveReqVO> skus) {

+ 6 - 0
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/dal/mysql/order/TradeOrderMapper.java

@@ -141,4 +141,10 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
     }
 
 
+    default Integer selectByMerId(Long key) {
+        return Integer.parseInt(String.valueOf(selectCount(new LambdaQueryWrapperX<TradeOrderDO>()
+                .eqIfPresent(TradeOrderDO::getMerchantId, key))));
+    }
+
+    ;
 }

+ 8 - 0
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/service/order/TradeOrderQueryService.java

@@ -181,4 +181,12 @@ public interface TradeOrderQueryService {
      */
     List<PayOrderPageItemRespVO> getOrderNoAndPicUrl(List<PayOrderPageItemRespVO> list);
 
+
+    /**
+     * 获取商户订单总数
+     * @param key
+     * @return
+     */
+    Integer getShopSalesVolume(Long key);
+
 }

+ 7 - 0
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/service/order/TradeOrderQueryServiceImpl.java

@@ -182,6 +182,13 @@ public class TradeOrderQueryServiceImpl implements TradeOrderQueryService {
         return list;
     }
 
+    @Override
+    public Integer getShopSalesVolume(Long key) {
+
+        return  tradeOrderMapper.selectByMerId(key);
+
+    }
+
     @Override
     public List<ExpressTrackRespDTO> getExpressTrackList(Long id, Long userId) {
         // 查询订单

+ 7 - 1
feifan-module-sale/feifan-module-sale-biz/pom.xml

@@ -45,7 +45,13 @@
 
         <dependency>
             <groupId>cn.newfeifan.zx</groupId>
-            <artifactId>feifan-module-system-biz</artifactId>
+            <artifactId>feifan-module-product-biz</artifactId>
+            <version>${revision}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>cn.newfeifan.zx</groupId>
+            <artifactId>feifan-module-trade-biz</artifactId>
             <version>${revision}</version>
         </dependency>
 

+ 12 - 1
feifan-module-sale/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/sale/controller/admin/merchant/MerchantController.java

@@ -1,6 +1,7 @@
 package cn.newfeifan.mall.sale.controller.admin.merchant;
 
 import cn.newfeifan.mall.module.system.service.user.AdminUserService;
+import cn.newfeifan.mall.module.trade.service.order.TradeOrderQueryService;
 import cn.newfeifan.mall.sale.controller.admin.merchant.vo.MerchantPageReqVO;
 import cn.newfeifan.mall.sale.controller.admin.merchant.vo.MerchantRespVO;
 import cn.newfeifan.mall.sale.controller.admin.merchant.vo.MerchantSaveReqByMobileVO;
@@ -21,6 +22,7 @@ import javax.validation.*;
 import javax.servlet.http.*;
 import java.util.*;
 import java.io.IOException;
+import java.util.stream.Collectors;
 
 import cn.newfeifan.mall.framework.common.pojo.PageParam;
 import cn.newfeifan.mall.framework.common.pojo.PageResult;
@@ -48,6 +50,10 @@ public class MerchantController {
     @Resource
     private MerchantService merchantService;
 
+    @Resource
+    private TradeOrderQueryService tradeOrderQueryService;
+
+
     @PostMapping("/create")
     @Operation(summary = "创建商户")
     @PreAuthorize("@ss.hasPermission('sale:merchant:create')")
@@ -104,7 +110,12 @@ public class MerchantController {
     @PreAuthorize("@ss.hasPermission('sale:merchant:query')")
     public CommonResult<PageResult<MerchantRespVO>> getMerchantPage(@Valid MerchantPageReqVO pageReqVO) {
         PageResult<MerchantDO> pageResult = merchantService.getMerchantPage(pageReqVO);
-        return success(BeanUtils.toBean(pageResult, MerchantRespVO.class));
+        PageResult<MerchantRespVO> merchantRespVOPageResult = BeanUtils.toBean(pageResult, MerchantRespVO.class);
+
+        Map<Long, MerchantRespVO> map = merchantRespVOPageResult.getList().stream().collect(Collectors.toMap(MerchantRespVO::getId, k -> k));
+        List<MerchantRespVO> merchantRespVOS = merchantService.salesVolume(map);
+        merchantRespVOPageResult.setList(merchantRespVOS);
+        return success(merchantRespVOPageResult);
     }
 
     @GetMapping("/export-excel")

+ 7 - 0
feifan-module-sale/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/sale/controller/admin/merchant/vo/MerchantRespVO.java

@@ -98,5 +98,12 @@ public class MerchantRespVO {
     @ExcelProperty("区域id,对应文件系统 src/main/resources/area.csv 中的id一列")
     private Long areaId;
 
+    @Schema(description = "商户总销量", example = "8463")
+    @ExcelProperty("商户总销量")
+    private Integer salesVolume ;
+
+    @Schema(description = "商品总数", example = "8463")
+    @ExcelProperty("商品总数")
+    private Integer skuCount;
 
 }

+ 5 - 0
feifan-module-sale/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/sale/service/merchant/MerchantService.java

@@ -2,11 +2,14 @@ package cn.newfeifan.mall.sale.service.merchant;
 
 import cn.newfeifan.mall.framework.common.pojo.PageResult;
 import cn.newfeifan.mall.sale.controller.admin.merchant.vo.MerchantPageReqVO;
+import cn.newfeifan.mall.sale.controller.admin.merchant.vo.MerchantRespVO;
 import cn.newfeifan.mall.sale.controller.admin.merchant.vo.MerchantSaveReqVO;
 import cn.newfeifan.mall.sale.dal.dataobject.merchant.MerchantDO;
 
 import javax.validation.*;
 import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * 商户 Service 接口
@@ -53,4 +56,6 @@ public interface MerchantService {
      */
     PageResult<MerchantDO> getMerchantPage(MerchantPageReqVO pageReqVO);
 
+    List<MerchantRespVO> salesVolume(Map<Long, MerchantRespVO> map);
+
 }

+ 29 - 1
feifan-module-sale/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/sale/service/merchant/MerchantServiceImpl.java

@@ -1,10 +1,13 @@
 package cn.newfeifan.mall.sale.service.merchant;
 
 import cn.newfeifan.mall.framework.common.pojo.PageResult;
+import cn.newfeifan.mall.module.product.service.sku.ProductSkuService;
 import cn.newfeifan.mall.module.system.dal.dataobject.user.AdminUserDO;
 import cn.newfeifan.mall.module.system.dal.mysql.user.AdminUserMapper;
 import cn.newfeifan.mall.module.system.service.user.AdminUserService;
+import cn.newfeifan.mall.module.trade.service.order.TradeOrderQueryService;
 import cn.newfeifan.mall.sale.controller.admin.merchant.vo.MerchantPageReqVO;
+import cn.newfeifan.mall.sale.controller.admin.merchant.vo.MerchantRespVO;
 import cn.newfeifan.mall.sale.controller.admin.merchant.vo.MerchantSaveReqVO;
 import cn.newfeifan.mall.sale.controller.admin.shop.vo.ShopSaveReqVO;
 import cn.newfeifan.mall.sale.dal.dataobject.merchant.MerchantDO;
@@ -20,7 +23,11 @@ import org.springframework.validation.annotation.Validated;
 import cn.newfeifan.mall.framework.common.util.object.BeanUtils;
 
 
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 import static cn.newfeifan.mall.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static cn.newfeifan.mall.module.enums.ErrorCodeConstants.MERCHANT_NOT_EXISTS;
@@ -61,7 +68,7 @@ public class MerchantServiceImpl implements MerchantService {
         if (adminUserDO != null) {
             throw exception(USER_MOBILE_EXISTS);
         }
-        adminUserService.createUserByMobile(merchant.getId(),shopId, merchant.getContactNumber(), merchant.getContact());
+        adminUserService.createUserByMobile(merchant.getId(), shopId, merchant.getContactNumber(), merchant.getContact());
         // todo 设置直推人关联关系
         HashMap<String, Long> stringLongHashMap = new HashMap<>();
         stringLongHashMap.put("shopId", shopId);
@@ -102,4 +109,25 @@ public class MerchantServiceImpl implements MerchantService {
         return merchantMapper.selectPage(pageReqVO);
     }
 
+    @Resource
+    private TradeOrderQueryService tradeOrderQueryService;
+
+    @Resource
+    private ProductSkuService productSkuService;
+
+    @Override
+    public List<MerchantRespVO> salesVolume(Map<Long, MerchantRespVO> map) {
+
+        for (Long key : map.keySet()) {
+            System.out.println("Key = " + key);
+            MerchantRespVO value = map.get(key);
+            Integer saleVolume = tradeOrderQueryService.getShopSalesVolume(key);
+            Integer skuCount = productSkuService.getSkuCount(key);
+            value.setSalesVolume(saleVolume);
+            value.setSkuCount(skuCount);
+            map.put(key, value);
+        }
+        return new ArrayList<>(map.values());
+    }
+
 }