Browse Source

修正商户店铺id

Yangzw 11 months ago
parent
commit
96ee4920b3

+ 6 - 0
feifan-module-mall/feifan-module-product-biz/pom.xml

@@ -66,6 +66,12 @@
             <groupId>cn.newfeifan.zx</groupId>
             <artifactId>feifan-spring-boot-starter-excel</artifactId>
         </dependency>
+        <dependency>
+            <groupId>cn.newfeifan.zx</groupId>
+            <artifactId>feifan-module-system-biz</artifactId>
+            <version>2.0.0-jdk8-snapshot</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
 
 </project>

+ 18 - 0
feifan-module-mall/feifan-module-product-biz/src/main/java/cn/newfeifan/mall/module/product/controller/admin/spu/vo/ShopBO.java

@@ -0,0 +1,18 @@
+package cn.newfeifan.mall.module.product.controller.admin.spu.vo;
+
+import lombok.Data;
+
+/**
+ * 用户的商户店铺对象
+ */
+@Data
+public class ShopBO {
+    /**
+     * 店铺id
+     */
+    private Long shopId;
+    /**
+     * 商户id
+     */
+    private Long merId;
+}

+ 10 - 4
feifan-module-mall/feifan-module-product-biz/src/main/java/cn/newfeifan/mall/module/product/dal/mysql/spu/ProductSpuMapper.java

@@ -54,17 +54,23 @@ public interface ProductSpuMapper extends BaseMapperX<ProductSpuDO> {
     }
 
 
-    default Long selectCountByMerId(Long merId) {
+    default Long selectCountByMerId(Long shopId,Long merId) {
         LambdaQueryWrapperX<ProductSpuDO> queryWrapper = new LambdaQueryWrapperX<>();
         // 库存小于等于警戒库存
-        queryWrapper.eqIfPresent(ProductSpuDO::getMerchantId, merId).le(ProductSpuDO::getStock, ProductConstants.ALERT_STOCK)
+        queryWrapper
+                .eqIfPresent(ProductSpuDO::getMerchantId, merId)
+                .eqIfPresent(ProductSpuDO::getShopId, shopId)
+                .le(ProductSpuDO::getStock, ProductConstants.ALERT_STOCK)
                 // 如果库存触发警戒库存且状态为回收站的话则不计入触发警戒库存的个数
                 .notIn(ProductSpuDO::getStatus, ProductSpuStatusEnum.RECYCLE.getStatus());
         return selectCount(queryWrapper);
     }
 
-    default Long selectCountByMerId(Long merId, SFunction<ProductSpuDO, ?> field, Integer status) {
-        return selectCount(new LambdaQueryWrapperX<ProductSpuDO>().eqIfPresent(ProductSpuDO::getMerchantId, merId).eq(field, status));
+    default Long selectCountByMerId(Long shopId,Long merId, SFunction<ProductSpuDO, ?> field, Integer status) {
+        return selectCount(new LambdaQueryWrapperX<ProductSpuDO>()
+                .eqIfPresent(ProductSpuDO::getMerchantId, merId)
+                .eqIfPresent(ProductSpuDO::getShopId, shopId)
+                .eq(field, status));
     }
 
     /**

+ 40 - 9
feifan-module-mall/feifan-module-product-biz/src/main/java/cn/newfeifan/mall/module/product/service/spu/ProductSpuServiceImpl.java

@@ -7,10 +7,7 @@ import cn.newfeifan.mall.framework.common.pojo.PageResult;
 import cn.newfeifan.mall.framework.common.util.collection.CollectionUtils;
 import cn.newfeifan.mall.framework.common.util.object.BeanUtils;
 import cn.newfeifan.mall.module.product.controller.admin.category.vo.ProductCategoryListReqVO;
-import cn.newfeifan.mall.module.product.controller.admin.spu.vo.ProductSkuSaveReqVO;
-import cn.newfeifan.mall.module.product.controller.admin.spu.vo.ProductSpuPageReqVO;
-import cn.newfeifan.mall.module.product.controller.admin.spu.vo.ProductSpuSaveReqVO;
-import cn.newfeifan.mall.module.product.controller.admin.spu.vo.ProductSpuUpdateStatusReqVO;
+import cn.newfeifan.mall.module.product.controller.admin.spu.vo.*;
 import cn.newfeifan.mall.module.product.controller.app.spu.vo.AppProductSpuPageReqVO;
 import cn.newfeifan.mall.module.product.dal.dataobject.category.ProductCategoryDO;
 import cn.newfeifan.mall.module.product.dal.dataobject.spu.ProductSpuDO;
@@ -19,8 +16,14 @@ import cn.newfeifan.mall.module.product.enums.spu.ProductSpuStatusEnum;
 import cn.newfeifan.mall.module.product.service.brand.ProductBrandService;
 import cn.newfeifan.mall.module.product.service.category.ProductCategoryService;
 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 com.alibaba.fastjson.JSONObject;
 import com.google.common.collect.Maps;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.context.annotation.Lazy;
+import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
@@ -30,6 +33,7 @@ import java.util.*;
 
 import static cn.newfeifan.mall.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static cn.newfeifan.mall.framework.common.util.collection.CollectionUtils.*;
+import static cn.newfeifan.mall.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
 import static cn.newfeifan.mall.module.product.dal.dataobject.category.ProductCategoryDO.CATEGORY_LEVEL;
 import static cn.newfeifan.mall.module.product.enums.ErrorCodeConstants.*;
 
@@ -40,6 +44,7 @@ import static cn.newfeifan.mall.module.product.enums.ErrorCodeConstants.*;
  */
 @Service
 @Validated
+@Slf4j
 public class ProductSpuServiceImpl implements ProductSpuService {
 
     @Resource
@@ -53,6 +58,13 @@ public class ProductSpuServiceImpl implements ProductSpuService {
     @Resource
     private ProductCategoryService categoryService;
 
+
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+
+    @Resource
+    private AdminUserMapper userMapper;
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Long createSpu(ProductSpuSaveReqVO createReqVO) {
@@ -275,24 +287,43 @@ public class ProductSpuServiceImpl implements ProductSpuService {
     @Override
     public Map<Integer, Long> getTabsCount(Long merId) {
         Map<Integer, Long> counts = Maps.newLinkedHashMapWithExpectedSize(5);
+
+        ShopBO shop = getShop();
+
         // 查询销售中的商品数量
         counts.put(ProductSpuPageReqVO.FOR_SALE,
-                productSpuMapper.selectCountByMerId(merId,ProductSpuDO::getStatus, ProductSpuStatusEnum.ENABLE.getStatus()));
+                productSpuMapper.selectCountByMerId(shop.getShopId(),shop.getMerId(),ProductSpuDO::getStatus, ProductSpuStatusEnum.ENABLE.getStatus()));
         // 查询仓库中的商品数量
         counts.put(ProductSpuPageReqVO.IN_WAREHOUSE,
-                productSpuMapper.selectCountByMerId(merId,ProductSpuDO::getStatus, ProductSpuStatusEnum.DISABLE.getStatus()));
+                productSpuMapper.selectCountByMerId(shop.getShopId(),shop.getMerId(),ProductSpuDO::getStatus, ProductSpuStatusEnum.DISABLE.getStatus()));
         // 查询售空的商品数量
         counts.put(ProductSpuPageReqVO.SOLD_OUT,
-                productSpuMapper.selectCountByMerId(merId,ProductSpuDO::getStock, 0));
+                productSpuMapper.selectCountByMerId(shop.getShopId(),shop.getMerId(),ProductSpuDO::getStock, 0));
         // 查询触发警戒库存的商品数量
         counts.put(ProductSpuPageReqVO.ALERT_STOCK,
-                productSpuMapper.selectCountByMerId(merId));
+                productSpuMapper.selectCountByMerId(shop.getShopId(),shop.getMerId()));
         // 查询回收站中的商品数量
         counts.put(ProductSpuPageReqVO.RECYCLE_BIN,
-                productSpuMapper.selectCountByMerId(merId,ProductSpuDO::getStatus, ProductSpuStatusEnum.RECYCLE.getStatus()));
+                productSpuMapper.selectCountByMerId(shop.getShopId(),shop.getMerId(),ProductSpuDO::getStatus, ProductSpuStatusEnum.RECYCLE.getStatus()));
         return counts;
     }
 
+    private ShopBO getShop(){
+        Long loginUserId = getLoginUserId();
+        String s = stringRedisTemplate.opsForValue().get("shop:" + loginUserId);
+        if (StringUtils.isEmpty(s)) {
+            AdminUserDO adminUserDO = userMapper.selectById(loginUserId);
+            ShopBO shop = new ShopBO();
+            shop.setShopId(adminUserDO.getShopId());
+            shop.setMerId(adminUserDO.getMerchantId());
+            log.info("====shop:{}", shop);
+            return shop;
+        } else {
+            log.info("====shop:{}", s);
+            return JSONObject.parseObject(s, ShopBO.class);
+        }
+    }
+
 
     @Override
     public Long getSpuCountByCategoryId(Long categoryId) {

+ 14 - 9
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/controller/admin/order/TradeOrderController.java

@@ -13,6 +13,7 @@ import cn.newfeifan.mall.module.pay.dal.dataobject.app.PayAppDO;
 import cn.newfeifan.mall.module.pay.dal.dataobject.order.PayOrderDO;
 import cn.newfeifan.mall.module.pay.service.app.PayAppService;
 import cn.newfeifan.mall.module.pay.service.order.PayOrderService;
+import cn.newfeifan.mall.module.trade.controller.admin.delivery.vo.expresstemplate.ShopBO;
 import cn.newfeifan.mall.module.trade.controller.admin.order.vo.*;
 import cn.newfeifan.mall.module.trade.convert.order.TradeOrderConvert;
 import cn.newfeifan.mall.module.trade.dal.dataobject.order.TradeOrderDO;
@@ -195,16 +196,20 @@ public class TradeOrderController {
 
     @GetMapping("/get-count")
     @Operation(summary = "获得交易订单数量")
-    public CommonResult<Map<Integer, Long>> getOrderCount(@RequestParam(value = "shopId", required = false) Long shopId,
-                                                          @RequestParam(value = "merId", required = false) Long merId) {
+    public CommonResult<Map<Integer, Long>> getOrderCount(@RequestParam(value = "merId", required = false) Long merId) {
         Map<Integer, Long> orderCount = Maps.newLinkedHashMapWithExpectedSize(6);
-        orderCount.put(-1, tradeOrderQueryService.getOrderCount(null, shopId, merId));
-        orderCount.put(TradeOrderStatusEnum.AFTER_SALE.getStatus(), afterSaleService.getApplyingAfterSaleCount(null, shopId, merId));
-        orderCount.put(TradeOrderStatusEnum.UNPAID.getStatus(), tradeOrderQueryService.getOrderCount(TradeOrderStatusEnum.UNPAID.getStatus(), shopId, merId));
-        orderCount.put(TradeOrderStatusEnum.UNDELIVERED.getStatus(), tradeOrderQueryService.getOrderCount(TradeOrderStatusEnum.UNDELIVERED.getStatus(), shopId, merId));
-        orderCount.put(TradeOrderStatusEnum.DELIVERED.getStatus(), tradeOrderQueryService.getOrderCount(TradeOrderStatusEnum.DELIVERED.getStatus(), shopId, merId));
-        orderCount.put(TradeOrderStatusEnum.COMPLETED.getStatus(), tradeOrderQueryService.getOrderCount(TradeOrderStatusEnum.COMPLETED.getStatus(), shopId, merId));
-        orderCount.put(TradeOrderStatusEnum.CANCELED.getStatus(), tradeOrderQueryService.getOrderCount(TradeOrderStatusEnum.CANCELED.getStatus(), shopId, merId));
+        ShopBO shop = new ShopBO();
+        if (merId != null) {
+            shop = tradeOrderQueryService.getShop();
+        }
+
+        orderCount.put(-1, tradeOrderQueryService.getOrderCount(null, shop.getShopId(), shop.getMerId()));
+        orderCount.put(TradeOrderStatusEnum.AFTER_SALE.getStatus(), afterSaleService.getApplyingAfterSaleCount(null, shop.getShopId(), shop.getMerId()));
+        orderCount.put(TradeOrderStatusEnum.UNPAID.getStatus(), tradeOrderQueryService.getOrderCount(TradeOrderStatusEnum.UNPAID.getStatus(), shop.getShopId(), shop.getMerId()));
+        orderCount.put(TradeOrderStatusEnum.UNDELIVERED.getStatus(), tradeOrderQueryService.getOrderCount(TradeOrderStatusEnum.UNDELIVERED.getStatus(), shop.getShopId(), shop.getMerId()));
+        orderCount.put(TradeOrderStatusEnum.DELIVERED.getStatus(), tradeOrderQueryService.getOrderCount(TradeOrderStatusEnum.DELIVERED.getStatus(), shop.getShopId(), shop.getMerId()));
+        orderCount.put(TradeOrderStatusEnum.COMPLETED.getStatus(), tradeOrderQueryService.getOrderCount(TradeOrderStatusEnum.COMPLETED.getStatus(), shop.getShopId(), shop.getMerId()));
+        orderCount.put(TradeOrderStatusEnum.CANCELED.getStatus(), tradeOrderQueryService.getOrderCount(TradeOrderStatusEnum.CANCELED.getStatus(), shop.getShopId(), shop.getMerId()));
         return success(orderCount);
     }
 

+ 2 - 17
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/service/delivery/DeliveryExpressTemplateServiceImpl.java

@@ -3,11 +3,8 @@ package cn.newfeifan.mall.module.trade.service.delivery;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.lang.Assert;
 import cn.hutool.core.util.ObjectUtil;
-import cn.newfeifan.mall.module.system.dal.dataobject.user.AdminUserDO;
 import cn.newfeifan.mall.module.system.dal.mysql.user.AdminUserMapper;
-import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import cn.newfeifan.mall.framework.common.pojo.PageResult;
 import cn.newfeifan.mall.framework.common.util.collection.CollectionUtils;
@@ -29,10 +26,10 @@ import java.util.*;
 
 import static cn.newfeifan.mall.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static cn.newfeifan.mall.framework.common.util.collection.CollectionUtils.*;
-import static cn.newfeifan.mall.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
 import static cn.newfeifan.mall.module.trade.convert.delivery.DeliveryExpressTemplateConvert.INSTANCE;
 import static cn.newfeifan.mall.module.trade.enums.ErrorCodeConstants.EXPRESS_TEMPLATE_NAME_DUPLICATE;
 import static cn.newfeifan.mall.module.trade.enums.ErrorCodeConstants.EXPRESS_TEMPLATE_NOT_EXISTS;
+import static cn.newfeifan.mall.module.trade.service.order.TradeOrderQueryServiceImpl.getShopBO;
 
 /**
  * 快递运费模板 Service 实现类
@@ -238,19 +235,7 @@ public class DeliveryExpressTemplateServiceImpl implements DeliveryExpressTempla
     }
 
     private ShopBO getShop() {
-        Long loginUserId = getLoginUserId();
-        String s = stringRedisTemplate.opsForValue().get("shop:" + loginUserId);
-        if (StringUtils.isEmpty(s)) {
-            AdminUserDO adminUserDO = userMapper.selectById(loginUserId);
-            ShopBO shop = new ShopBO();
-            shop.setShopId(adminUserDO.getShopId());
-            shop.setMerId(adminUserDO.getMerchantId());
-            log.info("====shop:{}",shop);
-            return shop;
-        } else {
-            log.info("====shop:{}",s);
-            return JSONObject.parseObject(s, ShopBO.class);
-        }
+        return getShopBO(stringRedisTemplate, userMapper, log);
     }
 
 

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

@@ -3,6 +3,7 @@ package cn.newfeifan.mall.module.trade.service.order;
 import cn.newfeifan.mall.framework.common.mq.message.order.DistriOrderMessage;
 import cn.newfeifan.mall.framework.common.pojo.PageResult;
 import cn.newfeifan.mall.module.pay.controller.admin.order.vo.PayOrderPageItemRespVO;
+import cn.newfeifan.mall.module.trade.controller.admin.delivery.vo.expresstemplate.ShopBO;
 import cn.newfeifan.mall.module.trade.controller.admin.order.vo.TradeOrderPageReqVO;
 import cn.newfeifan.mall.module.trade.controller.admin.order.vo.TradeOrderSummaryRespVO;
 import cn.newfeifan.mall.module.trade.controller.app.order.vo.AppTradeOrderDetailRespVO;
@@ -205,5 +206,11 @@ public interface TradeOrderQueryService {
      */
     List<DistriOrderMessage> queryAllOrder();
 
+    /**
+     * 获取店铺信息
+     * @return 店铺商户
+     */
+    ShopBO getShop();
+
 
 }

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

@@ -7,12 +7,13 @@ import cn.hutool.core.util.StrUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import cn.newfeifan.mall.framework.common.mq.message.order.DistriOrderMessage;
 import cn.newfeifan.mall.framework.common.pojo.PageResult;
-import cn.newfeifan.mall.framework.common.util.collection.CollectionUtils;
 import cn.newfeifan.mall.module.member.api.user.MemberUserApi;
 import cn.newfeifan.mall.module.member.api.user.dto.MemberUserRespDTO;
 import cn.newfeifan.mall.module.pay.controller.admin.order.vo.PayOrderPageItemRespVO;
 import cn.newfeifan.mall.module.product.api.sku.ProductSkuApi;
-import cn.newfeifan.mall.module.product.api.sku.dto.ProductSkuRespDTO;
+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.trade.controller.admin.delivery.vo.expresstemplate.ShopBO;
 import cn.newfeifan.mall.module.trade.controller.admin.order.vo.TradeOrderPageReqVO;
 import cn.newfeifan.mall.module.trade.controller.admin.order.vo.TradeOrderSummaryRespVO;
 import cn.newfeifan.mall.module.trade.controller.app.order.vo.AppTradeOrderDetailRespVO;
@@ -31,8 +32,13 @@ import cn.newfeifan.mall.module.trade.framework.delivery.core.client.dto.Express
 import cn.newfeifan.mall.module.trade.framework.delivery.core.client.dto.ExpressTrackRespDTO;
 import cn.newfeifan.mall.module.trade.framework.order.config.TradeOrderProperties;
 import cn.newfeifan.mall.module.trade.service.delivery.DeliveryExpressService;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
 import org.springframework.cache.annotation.Cacheable;
+import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -42,7 +48,6 @@ import java.util.*;
 import java.util.stream.Collectors;
 
 import static cn.newfeifan.mall.framework.common.exception.util.ServiceExceptionUtil.exception;
-import static cn.newfeifan.mall.framework.common.pojo.CommonResult.success;
 import static cn.newfeifan.mall.framework.common.util.collection.CollectionUtils.convertSet;
 import static cn.newfeifan.mall.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
 import static cn.newfeifan.mall.module.trade.enums.ErrorCodeConstants.EXPRESS_NOT_EXISTS;
@@ -54,6 +59,7 @@ import static cn.newfeifan.mall.module.trade.enums.ErrorCodeConstants.ORDER_NOT_
  * @author 非繁源码
  */
 @Service
+@Slf4j
 public class TradeOrderQueryServiceImpl implements TradeOrderQueryService {
 
     @Resource
@@ -75,6 +81,13 @@ public class TradeOrderQueryServiceImpl implements TradeOrderQueryService {
     @Resource
     private TradeOrderProperties tradeOrderProperties;
 
+
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+
+    @Resource
+    private AdminUserMapper userMapper;
+
     // =================== Order ===================
 
     @Override
@@ -236,6 +249,28 @@ public class TradeOrderQueryServiceImpl implements TradeOrderQueryService {
 
     }
 
+
+    @Override
+    public ShopBO getShop() {
+        return getShopBO(stringRedisTemplate, userMapper, log);
+    }
+
+    public static ShopBO getShopBO(StringRedisTemplate stringRedisTemplate, AdminUserMapper userMapper, Logger log) {
+        Long loginUserId = getLoginUserId();
+        String s = stringRedisTemplate.opsForValue().get("shop:" + loginUserId);
+        if (StringUtils.isEmpty(s)) {
+            AdminUserDO adminUserDO = userMapper.selectById(loginUserId);
+            ShopBO shop = new ShopBO();
+            shop.setShopId(adminUserDO.getShopId());
+            shop.setMerId(adminUserDO.getMerchantId());
+            log.info("====shop:{}", shop);
+            return shop;
+        } else {
+            log.info("====shop:{}", s);
+            return JSONObject.parseObject(s, ShopBO.class);
+        }
+    }
+
     @Override
     public List<ExpressTrackRespDTO> getExpressTrackList(Long id, Long userId) {
         // 查询订单