igl 1 жил өмнө
parent
commit
0cab0d2d89

+ 6 - 17
vehicle-client/src/main/java/com/chelvc/cloud/vehicle/client/dto/MerchantAssetDTO.java

@@ -6,7 +6,6 @@ import lombok.NoArgsConstructor;
 import lombok.experimental.SuperBuilder;
 
 import java.io.Serializable;
-import java.math.BigDecimal;
 
 /**
  * 商户资产
@@ -20,27 +19,17 @@ public class MerchantAssetDTO implements Serializable {
     private static final long serialVersionUID = 9032680117461829078L;
 
     /**
-     * 我的资产
+     * 钱包
      */
-    private BigDecimal asset = BigDecimal.ZERO;
+    private WalletDTO walletDTO;
 
     /**
-     * 总收益
+     * 订单管理
      */
-    private BigDecimal totalEarnings;
+    private OrderDTO orderDTO;
 
     /**
-     * 今日收益
+     * 我的团队
      */
-    private BigDecimal todayEarnings;
-
-    /**
-     * 昨日收益
-     */
-    private BigDecimal yesterdayEarnings;
-
-    /**
-     * 可提现金额
-     */
-    private BigDecimal withdraw = BigDecimal.ZERO;
+    private MerchantTeamDTO merchantTeamDTO;
 }

+ 38 - 0
vehicle-client/src/main/java/com/chelvc/cloud/vehicle/client/dto/MerchantTeamDTO.java

@@ -0,0 +1,38 @@
+package com.chelvc.cloud.vehicle.client.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class MerchantTeamDTO implements Serializable {
+
+    private static final long serialVersionUID = 7510089764088466061L;
+
+    /**
+     * 已推广订单数
+     */
+    private int popularizeNum = 0;
+
+    /**
+     * 已确认收益
+     */
+    private BigDecimal popularizeAmount = BigDecimal.ZERO;
+
+    /**
+     * 待确认订单数
+     */
+    private int awaitNum = 0;
+
+    /**
+     * 待确认收益
+     */
+    private BigDecimal awaitAmount = BigDecimal.ZERO;
+}

+ 38 - 0
vehicle-client/src/main/java/com/chelvc/cloud/vehicle/client/dto/OrderDTO.java

@@ -0,0 +1,38 @@
+package com.chelvc.cloud.vehicle.client.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class OrderDTO implements Serializable {
+
+    private static final long serialVersionUID = 9204587253700894436L;
+
+    /**
+     * 已确认订单数
+     */
+    private int verifyNum = 0;
+
+    /**
+     * 已确认收益
+     */
+    private BigDecimal verifyAmount = BigDecimal.ZERO;
+
+    /**
+     * 待确认订单数
+     */
+    private int awaitNum = 0;
+
+    /**
+     * 待确认收益
+     */
+    private BigDecimal awaitAmount = BigDecimal.ZERO;
+}

+ 43 - 0
vehicle-client/src/main/java/com/chelvc/cloud/vehicle/client/dto/WalletDTO.java

@@ -0,0 +1,43 @@
+package com.chelvc.cloud.vehicle.client.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class WalletDTO implements Serializable {
+
+    private static final long serialVersionUID = 5181120385581570988L;
+
+    /**
+     * 我的资产
+     */
+    private BigDecimal asset = BigDecimal.ZERO;
+
+    /**
+     * 总收益
+     */
+    private BigDecimal totalEarnings;
+
+    /**
+     * 今日收益
+     */
+    private BigDecimal todayEarnings;
+
+    /**
+     * 昨日收益
+     */
+    private BigDecimal yesterdayEarnings;
+
+    /**
+     * 可提现金额
+     */
+    private BigDecimal withdraw = BigDecimal.ZERO;
+}

+ 0 - 1
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/controller/AssetController.java

@@ -5,7 +5,6 @@ import com.chelvc.cloud.vehicle.server.service.AssetService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 

+ 3 - 3
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/dao/BalanceDetailMapper.java

@@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.chelvc.cloud.vehicle.client.dto.BalanceDetailDTO;
-import com.chelvc.cloud.vehicle.client.dto.MerchantAssetDTO;
+import com.chelvc.cloud.vehicle.client.dto.WalletDTO;
 import com.chelvc.cloud.vehicle.server.entity.BalanceDetail;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -20,6 +20,6 @@ public interface BalanceDetailMapper extends BaseMapper<BalanceDetail> {
 
     IPage<BalanceDetailDTO> queryByUserId(@Param("page") Page<BalanceDetailDTO> page, @Param(Constants.WRAPPER) QueryWrapper<BalanceDetail> queryWrapper);
 
-    MerchantAssetDTO getMerchantAsset(@Param("merchantId") Long merchantId, @Param("midnight") LocalDateTime midnight,
-                                      @Param("yesterdayMidnight") LocalDateTime yesterdayMidnight);
+    WalletDTO getMerchantAsset(@Param("merchantId") Long merchantId, @Param("midnight") LocalDateTime midnight,
+                               @Param("yesterdayMidnight") LocalDateTime yesterdayMidnight);
 }

+ 12 - 10
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/dao/OmsOrderMapper.java

@@ -1,9 +1,7 @@
 package com.chelvc.cloud.vehicle.server.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.chelvc.cloud.vehicle.client.dto.OmsOrderDetailDTO;
-import com.chelvc.cloud.vehicle.client.dto.OmsOrderExampleDTO;
-import com.chelvc.cloud.vehicle.client.dto.OmsOrderItemDTO;
+import com.chelvc.cloud.vehicle.client.dto.*;
 import com.chelvc.cloud.vehicle.server.entity.OmsOrder;
 import com.chelvc.cloud.vehicle.server.entity.OmsOrderItem;
 import org.apache.ibatis.annotations.Mapper;
@@ -16,7 +14,7 @@ import java.util.Map;
 
 /**
  * 订单Mapper接口
- * 
+ *
  * @author liude
  * @date 2023-11-08
  */
@@ -25,7 +23,7 @@ public interface OmsOrderMapper extends BaseMapper<OmsOrder>
 {
     /**
      * 查询订单
-     * 
+     *
      * @param id 订单主键
      * @return 订单
      */
@@ -33,7 +31,7 @@ public interface OmsOrderMapper extends BaseMapper<OmsOrder>
 
     /**
      * 查询订单列表
-     * 
+     *
      * @param omsOrder 订单
      * @return 订单集合
      */
@@ -41,7 +39,7 @@ public interface OmsOrderMapper extends BaseMapper<OmsOrder>
 
     /**
      * 新增订单
-     * 
+     *
      * @param omsOrder 订单
      * @return 结果
      */
@@ -49,7 +47,7 @@ public interface OmsOrderMapper extends BaseMapper<OmsOrder>
 
     /**
      * 修改订单
-     * 
+     *
      * @param omsOrder 订单
      * @return 结果
      */
@@ -57,7 +55,7 @@ public interface OmsOrderMapper extends BaseMapper<OmsOrder>
 
     /**
      * 删除订单
-     * 
+     *
      * @param id 订单主键
      * @return 结果
      */
@@ -65,7 +63,7 @@ public interface OmsOrderMapper extends BaseMapper<OmsOrder>
 
     /**
      * 批量删除订单
-     * 
+     *
      * @param ids 需要删除的数据主键集合
      * @return 结果
      */
@@ -120,4 +118,8 @@ public interface OmsOrderMapper extends BaseMapper<OmsOrder>
 
     BigDecimal queryAmountByLastMonth(@Param("merchantId")Long merchantId,
                                       @Param("startLocalTime")LocalDateTime startLocalTime, @Param("endLocalTime")LocalDateTime endLocalTime);
+
+    OrderDTO queryOrderManage(@Param("merchantId")Long merchantId);
+
+    MerchantTeamDTO queryTeamOrder(@Param("merchantId")Long merchantId);
 }

+ 2 - 2
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/BalanceDetailService.java

@@ -1,7 +1,7 @@
 package com.chelvc.cloud.vehicle.server.service;
 
 import com.chelvc.cloud.vehicle.client.dto.BalanceDetailDTO;
-import com.chelvc.cloud.vehicle.client.dto.MerchantAssetDTO;
+import com.chelvc.cloud.vehicle.client.dto.WalletDTO;
 import com.chelvc.cloud.vehicle.client.param.QueryMerchantBalanceParam;
 import com.chelvc.framework.common.model.Pagination;
 import org.apache.ibatis.annotations.Param;
@@ -26,5 +26,5 @@ public interface BalanceDetailService {
     Pagination<BalanceDetailDTO> queryByMerchantId(QueryMerchantBalanceParam param, Integer pageNum,
                                                    Integer pageSize, Integer type);
 
-    MerchantAssetDTO getMerchantAsset(@Param("merchantId") Long merchantId);
+    WalletDTO getMerchantAsset(@Param("merchantId") Long merchantId);
 }

+ 15 - 3
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/OmsOrderService.java

@@ -1,9 +1,7 @@
 package com.chelvc.cloud.vehicle.server.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.chelvc.cloud.vehicle.client.dto.ConfirmOrderResultDTO;
-import com.chelvc.cloud.vehicle.client.dto.OmsOrderDTO;
-import com.chelvc.cloud.vehicle.client.dto.OmsOrderDetailDTO;
+import com.chelvc.cloud.vehicle.client.dto.*;
 import com.chelvc.cloud.vehicle.client.param.OmsOrderModifyParam;
 import com.chelvc.cloud.vehicle.client.param.OrderPagingParam;
 import com.chelvc.cloud.vehicle.server.entity.OmsOrder;
@@ -109,4 +107,18 @@ public interface OmsOrderService extends IService<OmsOrder>
      * @param merchantId
      */
     void orderVerification(Long orderId, Long merchantId);
+
+    /**
+     * 查询商家端订单管理
+     * @param merchantId
+     * @return
+     */
+    OrderDTO queryOrderManage(Long merchantId);
+
+    /**
+     * 商家端我的团队
+     * @param merchantId
+     * @return
+     */
+    MerchantTeamDTO queryTeamOrder(Long merchantId);
 }

+ 15 - 5
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/AssetServiceImpl.java

@@ -5,10 +5,14 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.chelvc.cloud.vehicle.client.constant.PlatformConstant;
 import com.chelvc.cloud.vehicle.client.dto.MerchantAssetDTO;
+import com.chelvc.cloud.vehicle.client.dto.MerchantTeamDTO;
+import com.chelvc.cloud.vehicle.client.dto.OrderDTO;
+import com.chelvc.cloud.vehicle.client.dto.WalletDTO;
 import com.chelvc.cloud.vehicle.server.dao.AssetMapper;
 import com.chelvc.cloud.vehicle.server.entity.Asset;
 import com.chelvc.cloud.vehicle.server.service.AssetService;
 import com.chelvc.cloud.vehicle.server.service.BalanceDetailService;
+import com.chelvc.cloud.vehicle.server.service.OmsOrderService;
 import com.chelvc.framework.common.exception.ResourceUnavailableException;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -20,8 +24,8 @@ import java.time.LocalDateTime;
 @Service
 @RequiredArgsConstructor(onConstructor = @__(@Autowired))
 public class AssetServiceImpl extends ServiceImpl<AssetMapper, Asset> implements AssetService {
-
     private final BalanceDetailService balanceDetailService;
+    private final OmsOrderService orderService;
 
     @Override
     public Asset queryAsset(Long userId, Integer type) {
@@ -89,7 +93,8 @@ public class AssetServiceImpl extends ServiceImpl<AssetMapper, Asset> implements
         if(merchantId == null){
             return null;
         }
-        MerchantAssetDTO merchantAsset = balanceDetailService.getMerchantAsset(merchantId);
+        MerchantAssetDTO dto = new MerchantAssetDTO();
+        WalletDTO walletDTO = balanceDetailService.getMerchantAsset(merchantId);
         LambdaQueryWrapper<Asset> wrapper = Wrappers.lambdaQuery();
         wrapper.eq(Asset::getUserId, merchantId);
         wrapper.eq(Asset::getType, 2);
@@ -97,9 +102,14 @@ public class AssetServiceImpl extends ServiceImpl<AssetMapper, Asset> implements
         if(asset != null){
             BigDecimal total = asset.getTotal();
             BigDecimal frozen = asset.getFrozen();
-            merchantAsset.setAsset(total);
-            merchantAsset.setWithdraw(total.subtract(frozen));
+            walletDTO.setAsset(total);
+            walletDTO.setWithdraw(total.subtract(frozen));
         }
-        return merchantAsset;
+        dto.setWalletDTO(walletDTO);
+        OrderDTO orderDTO = orderService.queryOrderManage(merchantId);
+        dto.setOrderDTO(orderDTO);
+        MerchantTeamDTO merchantTeamDTO = orderService.queryTeamOrder(merchantId);
+        dto.setMerchantTeamDTO(merchantTeamDTO);
+        return dto;
     }
 }

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

@@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.chelvc.cloud.vehicle.client.dto.BalanceDetailDTO;
-import com.chelvc.cloud.vehicle.client.dto.MerchantAssetDTO;
+import com.chelvc.cloud.vehicle.client.dto.WalletDTO;
 import com.chelvc.cloud.vehicle.client.param.QueryMerchantBalanceParam;
 import com.chelvc.cloud.vehicle.server.dao.BalanceDetailMapper;
 import com.chelvc.cloud.vehicle.server.entity.BalanceDetail;
@@ -58,7 +58,7 @@ public class BalanceDetailServiceImpl extends ServiceImpl<BalanceDetailMapper, B
     }
 
     @Override
-    public MerchantAssetDTO getMerchantAsset(Long merchantId) {
+    public WalletDTO getMerchantAsset(Long merchantId) {
         LocalDate today = LocalDate.now(); // 获取今天的日期
         LocalDateTime midnight = LocalDateTime.of(today, LocalTime.MIDNIGHT); // 获取今天凌晨的时间
         LocalDate yesterday = today.minusDays(1);

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

@@ -886,6 +886,16 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper, OmsOrder> i
         });
     }
 
+    @Override
+    public OrderDTO queryOrderManage(Long merchantId) {
+        return omsOrderMapper.queryOrderManage(merchantId);
+    }
+
+    @Override
+    public MerchantTeamDTO queryTeamOrder(Long merchantId) {
+        return omsOrderMapper.queryTeamOrder(merchantId);
+    }
+
 
     @Override
     public BigDecimal queryAmountByLastMonth(Long merchantId) {

+ 1 - 1
vehicle-server/src/main/resources/mapper/BalanceDetailMapper.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.BalanceDetailMapper">
 
-    <select id="getMerchantAsset" resultType="com.chelvc.cloud.vehicle.client.dto.MerchantAssetDTO">
+    <select id="getMerchantAsset" resultType="com.chelvc.cloud.vehicle.client.dto.WalletDTO">
         SELECT
             SUM(operate_amount) as totalEarnings,
             SUM(CASE WHEN create_time >= #{midnight} THEN operate_amount ELSE 0 END) as todayEarnings,

+ 31 - 6
vehicle-server/src/main/resources/mapper/OmsOrderMapper.xml

@@ -3,7 +3,7 @@
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.chelvc.cloud.vehicle.server.dao.OmsOrderMapper">
-    
+
     <resultMap type="com.chelvc.cloud.vehicle.server.entity.OmsOrder" id="OmsOrderResult">
         <result property="id"    column="id"    />
         <result property="userId"    column="user_id"    />
@@ -56,7 +56,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="selectOmsOrderList" parameterType="com.chelvc.cloud.vehicle.server.entity.OmsOrder" resultMap="OmsOrderResult">
         <include refid="selectOmsOrderVo"/>
-        <where>  
+        <where>
             <if test="userId != null "> and user_id = #{userId}</if>
             <if test="couponId != null "> and coupon_id = #{couponId}</if>
             <if test="orderSn != null  and orderSn != ''"> and order_sn = #{orderSn}</if>
@@ -101,12 +101,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="modifyTime != null "> and modify_time = #{modifyTime}</if>
         </where>
     </select>
-    
+
     <select id="selectOmsOrderById" parameterType="Long" resultMap="OmsOrderResult">
         <include refid="selectOmsOrderVo"/>
         where id = #{id}
     </select>
-        
+
     <insert id="insertOmsOrder" parameterType="com.chelvc.cloud.vehicle.server.entity.OmsOrder" useGeneratedKeys="true" keyProperty="id">
         insert into oms_order
         <trim prefix="(" suffix=")" suffixOverrides=",">
@@ -256,7 +256,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </delete>
 
     <delete id="deleteOmsOrderByIds" parameterType="String">
-        delete from oms_order where id in 
+        delete from oms_order where id in
         <foreach item="id" collection="array" open="(" separator="," close=")">
             #{id}
         </foreach>
@@ -951,4 +951,29 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             payment_time between #{startLocalTime} and #{endLocalTime}
     </select>
 
-</mapper>
+    <select id="queryOrderManage" resultType="com.chelvc.cloud.vehicle.client.dto.OrderDTO">
+        SELECT
+            count(if(status = 4,true,null)) as verifyNum,
+            SUM(CASE WHEN status = 4 THEN pay_amount ELSE 0 END) as verifyAmount,
+            count(if(status in (1,2,3),true,null)) as awaitNum,
+            SUM(CASE WHEN status in (1,2,3) THEN pay_amount ELSE 0 END) as awaitAmount
+        FROM
+            oms_order
+        WHERE
+            merchant_id = #{merchantId}
+    </select>
+
+    <select id="queryTeamOrder" resultType="com.chelvc.cloud.vehicle.client.dto.MerchantTeamDTO">
+        SELECT
+            count(if(o.status = 4,true,null)) as verifyNum,
+            SUM(CASE WHEN o.status = 4 THEN o.pay_amount ELSE 0 END) as verifyAmount,
+            count(if(o.status in (1,2,3),true,null)) as awaitNum,
+            SUM(CASE WHEN o.status in (1,2,3) THEN o.pay_amount ELSE 0 END) as awaitAmount
+        FROM
+            oms_order o
+        WHERE
+            o.merchant_id = #{merchantId}
+            and
+            o.user_id in (select i.target_id FROM user_invite i where i.user_id = #{merchantId})
+    </select>
+</mapper>