Browse Source

首页统计

LuoDLeo 7 months ago
parent
commit
d2c0f18cd1

+ 31 - 7
src/main/java/org/springblade/modules/api/controller/ApiMerchantUserController.java

@@ -1,5 +1,6 @@
 package org.springblade.modules.api.controller;
 
+import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.DesensitizedUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -10,6 +11,7 @@ import io.swagger.annotations.ApiParam;
 import lombok.AllArgsConstructor;
 import org.springblade.common.constant.CommonConstant;
 import org.springblade.common.enums.AuditStatusEnum;
+import org.springblade.common.enums.FacilityStatusEnum;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.utils.AuthUtil;
@@ -26,6 +28,10 @@ import org.springblade.modules.api.vo.MerchantIncomeVO;
 import org.springblade.modules.api.vo.PageMemberVO;
 import org.springblade.modules.auth.enums.UserEnum;
 import org.springblade.modules.auth.utils.TokenUtil;
+import org.springblade.modules.business.entity.Facility;
+import org.springblade.modules.business.service.IFacilityService;
+import org.springblade.modules.business.service.IShopService;
+import org.springblade.modules.finance.service.IOrderGoodsService;
 import org.springblade.modules.system.entity.User;
 import org.springblade.modules.system.entity.UserMerchant;
 import org.springblade.modules.system.service.IUserMerchantService;
@@ -40,6 +46,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * Author pangqijun
@@ -54,6 +61,9 @@ public class ApiMerchantUserController {
 
     private final IUserMerchantService iUserMerchantService;
     private final IUserService iUserService;
+    private final IOrderGoodsService orderGoodsService;
+    private final IFacilityService facilityService;
+    private final IShopService shopService;
 
     @GetMapping("/merchant/get")
     @ApiOperationSupport(order = 1)
@@ -157,7 +167,7 @@ public class ApiMerchantUserController {
     @ApiOperationSupport(order = 7)
     @ApiOperation(value = "可提现金额", notes = "可提现金额")
     public R cash() {
-      return R.data( iUserMerchantService.getCash());
+        return R.data(iUserMerchantService.getCash());
     }
 
     /**
@@ -235,14 +245,28 @@ public class ApiMerchantUserController {
     @ApiOperationSupport(order = 9)
     @ApiOperation(value = "商家端-首页-设备状态", notes = "商家端-首页-设备状态")
     public R<Map<String, String>> survey() {
+
+        Long userId = AuthUtil.getUserId();
+
         //key为名称,value为数量
         Map<String, String> result = new HashMap<>();
-        result.put("设备数量", "60");
-        result.put("门店数量", "6");
-        result.put("故障设备", "10");
-        result.put("在线设备", "40");
-        result.put("子账号", "6");
-        result.put("订单量", "600");
+
+        result.put("门店数量", shopService.getShopNum(userId));
+
+        List<Facility> facilityNum = facilityService.getFacilityNum(userId);
+        if (CollectionUtil.isNotEmpty(facilityNum)) {
+            result.put("设备数量", facilityNum.size() + "");
+            //按状态分组
+            Map<Integer, List<Facility>> collect = facilityNum.stream().collect(Collectors.groupingBy(Facility::getFacilityStatus));
+            result.put("故障设备", CollectionUtil.isNotEmpty(collect.get(FacilityStatusEnum.FAULT.getValue())) ? collect.get(FacilityStatusEnum.FAULT.getValue()).size() + "" : "0");
+            result.put("在线设备", CollectionUtil.isNotEmpty(collect.get(FacilityStatusEnum.ON_LINE.getValue())) ? collect.get(FacilityStatusEnum.ON_LINE.getValue()).size() + "" : "0");
+        } else {
+            result.put("设备数量", "0");
+            result.put("故障设备", "0");
+            result.put("在线设备", "0");
+        }
+        result.put("子账号", iUserMerchantService.getChildNum(userId));
+        result.put("订单量", orderGoodsService.getMerchantOrderNum(userId));
         return R.data(result);
     }
 

+ 3 - 0
src/main/java/org/springblade/modules/business/mapper/ShopMapper.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.modules.business.mapper;
 
+import org.apache.ibatis.annotations.Param;
 import org.springblade.modules.business.entity.Shop;
 import org.springblade.modules.business.vo.ShopVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -39,4 +40,6 @@ public interface ShopMapper extends BaseMapper<Shop> {
 	 */
 	List<ShopVO> selectShopPage(IPage page, ShopVO shop);
 
+    String getShopNum(@Param("merchantId") Long merchantId);
+
 }

+ 7 - 0
src/main/java/org/springblade/modules/business/mapper/ShopMapper.xml

@@ -29,4 +29,11 @@
         select * from t_shop where is_delete = 0
     </select>
 
+    <select id="getShopNum" resultType="java.lang.String">
+        select count(1)
+        from t_shop
+        where is_delete = 0
+          and merchant_id = #{merchantId}
+    </select>
+
 </mapper>

+ 10 - 3
src/main/java/org/springblade/modules/business/service/IFacilityService.java

@@ -16,11 +16,10 @@
  */
 package org.springblade.modules.business.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
 import org.springblade.modules.business.entity.Facility;
 import org.springblade.modules.business.vo.FacilityVO;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import org.springblade.modules.mall.entity.GoodsInfo;
 import org.springblade.modules.mall.vo.GoodsInfoVO;
 
 import java.util.List;
@@ -55,4 +54,12 @@ public interface IFacilityService extends IService<Facility> {
 	 * @return
 	 */
 	Boolean add(Facility facility);
+
+	/**
+	 * 商家设备数量
+	 * @param userId
+	 * @return
+	 */
+	List<Facility> getFacilityNum(Long userId);
+
 }

+ 2 - 0
src/main/java/org/springblade/modules/business/service/IShopService.java

@@ -45,4 +45,6 @@ public interface IShopService extends IService<Shop> {
 	 */
 	List<Long> getMerchantShopIds(Long userId);
 
+	String getShopNum(Long userId);
+
 }

+ 12 - 7
src/main/java/org/springblade/modules/business/service/impl/FacilityServiceImpl.java

@@ -16,20 +16,17 @@
  */
 package org.springblade.modules.business.service.impl;
 
-import lombok.AllArgsConstructor;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springblade.common.enums.StatusEnum;
 import org.springblade.modules.business.entity.Facility;
 import org.springblade.modules.business.entity.FacilityCargoWay;
-import org.springblade.modules.business.mapper.FacilityCargoWayMapper;
-import org.springblade.modules.business.service.IFacilityCargoWayService;
-import org.springblade.modules.business.vo.FacilityVO;
 import org.springblade.modules.business.mapper.FacilityMapper;
+import org.springblade.modules.business.service.IFacilityCargoWayService;
 import org.springblade.modules.business.service.IFacilityService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springblade.modules.mall.entity.GoodsInfo;
+import org.springblade.modules.business.vo.FacilityVO;
 import org.springblade.modules.mall.vo.GoodsInfoVO;
 import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
@@ -79,6 +76,14 @@ public class FacilityServiceImpl extends ServiceImpl<FacilityMapper, Facility> i
 		return iFacilityCargoWayService.saveBatch(list);
 	}
 
+	@Override
+	public List<Facility> getFacilityNum(Long userId) {
+		return this.lambdaQuery()
+				.eq(Facility::getMerchantId, userId)
+				.eq(Facility::getIsDelete,0)
+				.list();
+	}
+
 	/**
 	 * 获取货道数量
 	 */

+ 5 - 0
src/main/java/org/springblade/modules/business/service/impl/ShopServiceImpl.java

@@ -53,4 +53,9 @@ public class ShopServiceImpl extends ServiceImpl<ShopMapper, Shop> implements IS
 		return null;
 	}
 
+	@Override
+	public String getShopNum(Long userId){
+      return   baseMapper.getShopNum(userId);
+	}
+
 }

+ 2 - 0
src/main/java/org/springblade/modules/finance/mapper/OrderGoodsMapper.java

@@ -51,4 +51,6 @@ public interface OrderGoodsMapper extends BaseMapper<OrderGoods> {
 
     List<MerchantPageOrderVO> getMerchantOrder(IPage<MerchantPageOrderVO> page, @Param("param") MerchantPageOrderVO merchantPageOrderVO);
 
+    String getMerchantOrderNum(@Param("merchantId") Long merchantId);
+
 }

+ 9 - 0
src/main/java/org/springblade/modules/finance/mapper/OrderGoodsMapper.xml

@@ -108,4 +108,13 @@
         WHERE o.is_delete = 0 and o.user_id = #{param.userId}
     </select>
 
+    <select id="getMerchantOrderNum" resultType="java.lang.String">
+        SELECT
+           count(o.id)
+        FROM
+            t_order o
+                JOIN t_order_goods og ON o.id = og.order_id
+        WHERE o.is_delete = 0 and o.user_id = #{merchantId}
+    </select>
+
 </mapper>

+ 2 - 0
src/main/java/org/springblade/modules/finance/service/IOrderGoodsService.java

@@ -49,4 +49,6 @@ public interface IOrderGoodsService extends IService<OrderGoods> {
 
     IPage<MerchantPageOrderVO> getMerchantOrder(IPage<MerchantPageOrderVO> page, MerchantPageOrderVO merchantPageOrderVO);
 
+  String getMerchantOrderNum(Long merchantId);
+
 }

+ 9 - 8
src/main/java/org/springblade/modules/finance/service/impl/OrderGoodsServiceImpl.java

@@ -2,7 +2,9 @@ package org.springblade.modules.finance.service.impl;
 
 import cn.hutool.core.lang.Assert;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.AllArgsConstructor;
 import org.springblade.common.enums.YesOrNoEnum;
 import org.springblade.modules.api.request.SubmitOrderRequest;
@@ -12,27 +14,21 @@ import org.springblade.modules.business.entity.Shop;
 import org.springblade.modules.business.service.IFacilityCargoWayService;
 import org.springblade.modules.business.service.IShopService;
 import org.springblade.modules.finance.entity.AfterSales;
-import org.springblade.modules.finance.entity.AfterSalesGoods;
 import org.springblade.modules.finance.entity.Order;
 import org.springblade.modules.finance.entity.OrderGoods;
-import org.springblade.modules.finance.service.IAfterSalesGoodsService;
+import org.springblade.modules.finance.mapper.OrderGoodsMapper;
 import org.springblade.modules.finance.service.IAfterSalesService;
+import org.springblade.modules.finance.service.IOrderGoodsService;
 import org.springblade.modules.finance.service.IOrderService;
 import org.springblade.modules.finance.vo.MerchantPageOrderVO;
 import org.springblade.modules.finance.vo.OrderGoodsVO;
-import org.springblade.modules.finance.mapper.OrderGoodsMapper;
-import org.springblade.modules.finance.service.IOrderGoodsService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springblade.modules.mall.entity.GoodsInfo;
 import org.springblade.modules.mall.service.IGoodsInfoService;
 import org.springblade.modules.system.entity.User;
 import org.springblade.modules.system.service.IUserService;
-import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springframework.transaction.annotation.Transactional;
 
-import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.util.List;
 
@@ -77,6 +73,11 @@ public class OrderGoodsServiceImpl extends ServiceImpl<OrderGoodsMapper, OrderGo
 		return page.setRecords(baseMapper.getMerchantOrder(page, merchantPageOrderVO));
 	}
 
+	@Override
+	public String getMerchantOrderNum(Long merchantId){
+		return baseMapper.getMerchantOrderNum(merchantId);
+	}
+
 	@Transactional
 	@Override
 	public String submitOrder(SubmitOrderRequest request) {

+ 2 - 0
src/main/java/org/springblade/modules/system/mapper/UserMerchantMapper.java

@@ -46,4 +46,6 @@ public interface UserMerchantMapper extends BaseMapper<UserMerchant> {
 
 	List<PageMemberVO> pageMember(IPage<PageMemberVO> page, @Param("merchantId") Long userId);
 
+    String getChildNum(Long merchantId);
+
 }

+ 6 - 0
src/main/java/org/springblade/modules/system/mapper/UserMerchantMapper.xml

@@ -80,4 +80,10 @@
           and a.merchant_id = #{merchantId}
     </select>
 
+    <select id="getChildNum" resultType="java.lang.String">
+        select count(1)
+        from blade_user_merchant
+        where parent_id = #{merchantId}
+    </select>
+
 </mapper>

+ 7 - 0
src/main/java/org/springblade/modules/system/service/IUserMerchantService.java

@@ -78,4 +78,11 @@ public interface IUserMerchantService extends IService<UserMerchant> {
 	 */
     IPage<PageMemberVO> pageMember(IPage<PageMemberVO> page,Long userId);
 
+	/**
+	 * 会员
+	 * @param merchantId
+	 * @return
+	 */
+	String getChildNum(Long merchantId);
+
 }

+ 5 - 0
src/main/java/org/springblade/modules/system/service/impl/UserMerchantServiceImpl.java

@@ -85,4 +85,9 @@ public class UserMerchantServiceImpl extends ServiceImpl<UserMerchantMapper, Use
 		return page.setRecords(baseMapper.pageMember(page,userId));
 	}
 
+	@Override
+	public String getChildNum(Long merchantId){
+        return baseMapper.getChildNum(merchantId);
+	}
+
 }