lubo месяцев назад: 3
Родитель
Сommit
294d5fdc4a

+ 25 - 0
ruoyi-line/src/main/java/com/ruoyi/subsidy/domain/bo/SubsidyAmountCountByBo.java

@@ -0,0 +1,25 @@
+package com.ruoyi.subsidy.domain.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Data
+@EqualsAndHashCode
+@ApiModel("补贴统计条件业务对象")
+public class SubsidyAmountCountByBo implements java.io.Serializable{
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "商家ID", required = true)
+    private Long businessId;
+    @ApiModelProperty(value = "商家ID列表", required = true)
+    private List<Long> businessIds;
+    @ApiModelProperty(value = "统计类型", required = true)
+    private Integer countType;
+    @ApiModelProperty(value = "统计条件", required = true)
+    private SubsidyQueueBo bo;
+}

+ 4 - 4
ruoyi-line/src/main/java/com/ruoyi/subsidy/mapper/SubsidyQueueMapper.java

@@ -1,6 +1,7 @@
 package com.ruoyi.subsidy.mapper;
 
 import com.ruoyi.subsidy.domain.SubsidyQueue;
+import com.ruoyi.subsidy.domain.bo.SubsidyAmountCountByBo;
 import com.ruoyi.subsidy.domain.bo.SubsidyQueueBo;
 import com.ruoyi.subsidy.domain.vo.SubsidyQueueVo;
 import com.ruoyi.common.core.mapper.BaseMapperPlus;
@@ -19,11 +20,10 @@ public interface SubsidyQueueMapper extends BaseMapperPlus<SubsidyQueueMapper, S
 
     List<Long> validQueueIds(@Param("businessId") Long businessId);
 
-    BigDecimal getSubsidyAmount(@Param("businessId")Long businessId, @Param("countType") Integer countType, @Param("bo") SubsidyQueueBo bo);
+    BigDecimal getSubsidyAmount(@Param("query") SubsidyAmountCountByBo query);
 
 
+    void validQueueOrderRearrange(@Param("businessId") Long businessId, @Param("excludeQueueId") Long excludeQueueId, @Param("currentQueueOrder") Integer currentQueueOrder);
+}
 
-    void validQueueOrderRearrange(@Param("businessId")Long businessId, @Param("excludeQueueId") Long excludeQueueId, @Param("currentQueueOrder") Integer currentQueueOrder);
 
-    BigDecimal getSubsidyAmountByBusinessIds(@Param("businessIds") List<Long> businessIds, @Param("countType") Integer countType, @Param("bo") SubsidyQueueBo bo);
-}

+ 26 - 10
ruoyi-line/src/main/java/com/ruoyi/subsidy/service/impl/SubsidyQueueServiceImpl.java

@@ -35,10 +35,7 @@ import com.ruoyi.shop.business.service.IUserBusinessRoleService;
 import com.ruoyi.subsidy.domain.SubsidyCutIn;
 import com.ruoyi.subsidy.domain.SubsidyMode;
 import com.ruoyi.subsidy.domain.SubsidyQueue;
-import com.ruoyi.subsidy.domain.bo.SubsidyExchangePointBo;
-import com.ruoyi.subsidy.domain.bo.SubsidyQueueBo;
-import com.ruoyi.subsidy.domain.bo.SubsidyQueueImportBo;
-import com.ruoyi.subsidy.domain.bo.SubsidyQueueMoveBo;
+import com.ruoyi.subsidy.domain.bo.*;
 import com.ruoyi.subsidy.domain.vo.SubsidyQueueVo;
 import com.ruoyi.subsidy.enums.PurchaseSource;
 import com.ruoyi.subsidy.enums.SubsidyCancelType;
@@ -48,6 +45,7 @@ import com.ruoyi.subsidy.exception.SubsidyQueueExceptionEnum;
 import com.ruoyi.subsidy.mapper.SubsidyQueueMapper;
 import com.ruoyi.subsidy.service.*;
 import com.ruoyi.user.domain.User;
+import com.ruoyi.user.domain.bo.QueryBalanceByBo;
 import com.ruoyi.user.domain.bo.UserChangeBalanceBo;
 import com.ruoyi.user.enums.BalanceSourceType;
 import com.ruoyi.user.enums.IntegralSourceType;
@@ -732,9 +730,18 @@ public class SubsidyQueueServiceImpl implements ISubsidyQueueService {
             DateTime startTime = DateUtil.beginOfDay(new Date());
             DateTime endTime = DateUtil.endOfDay(new Date());
             List<Integer> balanceSourceTypes = Arrays.asList(BalanceSourceType.SUBSIDY.getCode(), BalanceSourceType.SHARED_SUBSIDY.getCode(), BalanceSourceType.SUBSIDY_OVERFLOW_RETURN.getCode());
-            return userBalanceRecordService.getBalanceByBusinessAndTimeRange(businessId, startTime, endTime,balanceSourceTypes);
-        }
-        return this.baseMapper.getSubsidyAmount(businessId,countType.getCode(),bo);
+            QueryBalanceByBo queryBalanceByBo = new QueryBalanceByBo();
+            queryBalanceByBo.setBalanceSourceTypes(balanceSourceTypes);
+            queryBalanceByBo.setBusinessId(businessId);
+            queryBalanceByBo.setStartTime(startTime);
+            queryBalanceByBo.setEndTime(endTime);
+            return userBalanceRecordService.getBalanceByBusinessAndTimeRange(queryBalanceByBo);
+        }
+        SubsidyAmountCountByBo countByBo = new SubsidyAmountCountByBo();
+        countByBo.setBusinessId(businessId);
+        countByBo.setCountType(countType.getCode());
+        countByBo.setBo(bo);
+        return this.baseMapper.getSubsidyAmount(countByBo);
     }
 
     @Override
@@ -744,9 +751,18 @@ public class SubsidyQueueServiceImpl implements ISubsidyQueueService {
             DateTime startTime = DateUtil.beginOfDay(new Date());
             DateTime endTime = DateUtil.endOfDay(new Date());
             List<Integer> balanceSourceTypes = Arrays.asList(BalanceSourceType.SUBSIDY.getCode(), BalanceSourceType.SHARED_SUBSIDY.getCode(), BalanceSourceType.SUBSIDY_OVERFLOW_RETURN.getCode());
-            return userBalanceRecordService.getBalanceByBusinessAndTimeRange(businessIds, startTime, endTime,balanceSourceTypes);
-        }
-        return this.baseMapper.getSubsidyAmountByBusinessIds(businessIds,countType.getCode(),bo);
+            QueryBalanceByBo queryBalanceByBo = new QueryBalanceByBo();
+            queryBalanceByBo.setBalanceSourceTypes(balanceSourceTypes);
+            queryBalanceByBo.setBusinessIds(businessIds);
+            queryBalanceByBo.setStartTime(startTime);
+            queryBalanceByBo.setEndTime(endTime);
+            return userBalanceRecordService.getBalanceByBusinessAndTimeRange(queryBalanceByBo);
+        }
+        SubsidyAmountCountByBo countByBo = new SubsidyAmountCountByBo();
+        countByBo.setBusinessIds(businessIds);
+        countByBo.setCountType(countType.getCode());
+        countByBo.setBo(bo);
+        return this.baseMapper.getSubsidyAmount(countByBo);
     }
 
     @Transactional(rollbackFor = Exception.class)

+ 31 - 52
ruoyi-line/src/main/resources/mapper/subsidy/SubsidyQueueMapper.xml

@@ -49,55 +49,62 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
 
     <sql id="boWhere">
-        <if test="bo!=null and bo.currentBusinessName!=null and bo.currentBusinessName!=''">
-            and current_business_name like concat('%',#{bo.currentBusinessName},'%')
+
+        <if test="query.bo!=null and query.bo.currentBusinessName!=null and query.bo.currentBusinessName!=''">
+            and current_business_name like concat('%',#{query.bo.currentBusinessName},'%')
         </if>
-        <if test="bo!=null and bo.orderNo!=null and bo.orderNo!=''">
-            and order_no like concat('%',#{bo.orderNo},'%')
+        <if test="query.bo!=null and query.bo.orderNo!=null and query.bo.orderNo!=''">
+            and order_no like concat('%',#{query.bo.orderNo},'%')
         </if>
-        <if test="bo!=null and bo.userMobile!=null and bo.userMobile!=''">
-            and user_mobile like concat('%',#{bo.userMobile},'%')
+        <if test="query.bo!=null and bo.userMobile!=null and query.bo.userMobile!=''">
+            and user_mobile like concat('%',#{query.bo.userMobile},'%')
         </if>
-        <if test="bo!=null and bo.userName!=null and bo.userName!=''">
-            and user_name like concat('%',#{bo.userName},'%')
+        <if test="query.bo!=null and query.bo.userName!=null and query.bo.userName!=''">
+            and user_name like concat('%',#{query.bo.userName},'%')
         </if>
-        <if test="bo!=null and bo.subsidyStatus!=null">
-            and subsidy_status = #{bo.subsidyStatus}
+        <if test="query.bo!=null and query.bo.subsidyStatus!=null">
+            and subsidy_status = #{query.bo.subsidyStatus}
         </if>
-        <if test="bo!=null and bo.consumeStartTime!=null">
-            and consume_time &gt;= #{bo.consumeStartTime}
+        <if test="query.bo!=null and query.bo.consumeStartTime!=null">
+            and consume_time &gt;= #{query.bo.consumeStartTime}
         </if>
-        <if test="bo!=null and bo.consumeEndTime!=null">
-            and consume_time &lt;= #{bo.consumeEndTime}
+        <if test="query.bo!=null and query.bo.consumeEndTime!=null">
+            and consume_time &lt;= #{query.bo.consumeEndTime}
         </if>
-        <if test="bo!=null and bo.queueStartTime!=null">
-            and queue_time &gt;= #{bo.queueStartTime}
+        <if test="query.bo!=null and query.bo.queueStartTime!=null">
+            and queue_time &gt;= #{query.bo.queueStartTime}
         </if>
-        <if test="bo!=null and bo.queueEndTime!=null">
-            and queue_time &lt;= #{bo.queueEndTime}
+        <if test="query.bo!=null and query.bo.queueEndTime!=null">
+            and queue_time &lt;= #{query.bo.queueEndTime}
         </if>
     </sql>
 
     <select id="getSubsidyAmount" resultType="java.math.BigDecimal">
         select
-        <if test="countType == 1">
+        <if test="query.countType == 1">
             IFNULL(sum(actual_subsidy_amount),0)
         </if>
-        <if test="countType == 2">
+        <if test="query.countType == 2">
             IFNULL(sum(subsidy_points),0)
         </if>
-        <if test="countType == 3">
+        <if test="query.countType == 3">
             IFNULL(sum(should_subsidy_amount-actual_subsidy_amount),0)
         </if>
         from tb_subsidy_queue
         <where>
-            <if test="businessId != null">
+            <if test="query.businessId != null">
                 and current_business_id = #{businessId}
             </if>
-            <if test="countType == 3">
+            <if test="query.businessIds != null and query.businessIds.size>0">
+                and current_business_id in
+                <foreach item="item" collection="query.businessIds" separator="," open="(" close=")" index="">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="query.countType == 3">
                 and subsidy_status = 0
             </if>
-            <if test="countType == 1">
+            <if test="query.countType == 1">
                 and subsidy_status = 1
             </if>
             <include refid="boWhere" />
@@ -113,32 +120,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         and queue_order &gt; #{currentQueueOrder}
     </update>
 
-    <select id="getSubsidyAmountByBusinessIds" resultType="java.math.BigDecimal">
-        select
-        <if test="countType == 1">
-            IFNULL(sum(actual_subsidy_amount),0)
-        </if>
-        <if test="countType == 2">
-            IFNULL(sum(subsidy_points),0)
-        </if>
-        <if test="countType == 3">
-            IFNULL(sum(should_subsidy_amount-actual_subsidy_amount),0)
-        </if>
-        from tb_subsidy_queue
-        <where>
-            <if test="businessIds != null">
-                and current_business_id in
-                <foreach item="item" collection="businessIds" separator="," open="(" close=")" index="">
-                    #{item}
-                </foreach>
-            </if>
-            <if test="countType == 3">
-                and subsidy_status = 0
-            </if>
-            <if test="countType == 1">
-                and subsidy_status = 1
-            </if>
-            <include refid="boWhere" />
-        </where>
-    </select>
 </mapper>

+ 32 - 0
ruoyi-user/src/main/java/com/ruoyi/user/domain/bo/QueryBalanceByBo.java

@@ -0,0 +1,32 @@
+package com.ruoyi.user.domain.bo;
+
+
+import cn.hutool.core.date.DateTime;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Data
+@ApiModel("API用户余额统计管理业务对象")
+public class QueryBalanceByBo implements  java.io.Serializable{
+    private static final long serialVersionUID = 1L;
+
+
+
+
+    @ApiModelProperty(value = "商家ID")
+    private Long businessId;
+    @ApiModelProperty(value = "开始时间")
+    private DateTime startTime;
+    @ApiModelProperty(value = "结束时间")
+    private DateTime endTime;
+    @ApiModelProperty(value = "余额来源类型")
+    private List<Integer> balanceSourceTypes;
+    @ApiModelProperty(value = "商家IDs")
+    private List<Long> businessIds;
+}
+
+

+ 2 - 3
ruoyi-user/src/main/java/com/ruoyi/user/mapper/UserBalanceRecordMapper.java

@@ -3,6 +3,7 @@ package com.ruoyi.user.mapper;
 import cn.hutool.core.date.DateTime;
 import com.ruoyi.common.core.mapper.BaseMapperPlus;
 import com.ruoyi.user.domain.UserBalanceRecord;
+import com.ruoyi.user.domain.bo.QueryBalanceByBo;
 import com.ruoyi.user.domain.vo.UserBalanceRecordVo;
 import org.apache.ibatis.annotations.Param;
 
@@ -17,7 +18,5 @@ import java.util.List;
  */
 public interface UserBalanceRecordMapper extends BaseMapperPlus<UserBalanceRecordMapper, UserBalanceRecord, UserBalanceRecordVo> {
 
-    BigDecimal getBalanceByBusinessAndTimeRange(@Param("businessId") Long businessId, @Param("startTime") DateTime startTime,@Param("endTime") DateTime endTime, @Param( "balanceSourceTypes")List<Integer> balanceSourceTypes);
-
-    BigDecimal getBalanceByBusinessesAndTimeRange(@Param("businessIds")List<Long> businessIds, @Param("startTime")DateTime startTime,@Param("endTime") DateTime endTime,  @Param( "balanceSourceTypes") List<Integer> balanceSourceTypes);
+    BigDecimal getBalanceByBusinessAndTimeRange(@Param("bo") QueryBalanceByBo bo);
 }

+ 2 - 8
ruoyi-user/src/main/java/com/ruoyi/user/service/IUserBalanceRecordService.java

@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateTime;
 import com.ruoyi.common.core.domain.PageQuery;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.user.domain.UserBalanceRecord;
+import com.ruoyi.user.domain.bo.QueryBalanceByBo;
 import com.ruoyi.user.domain.bo.UserBalanceRecordBo;
 import com.ruoyi.user.domain.vo.UserBalanceRecordVo;
 
@@ -80,15 +81,8 @@ public interface IUserBalanceRecordService {
     /**
      * 获取用户在消费商家的余额统计
      *
-     * @param businessId 商家id
-     * @param startTime 开始时间
-     * @param endTime 结束时间
-     * @param balanceSourceTypes 获取余额的来源类型
      * @return
      */
-    BigDecimal getBalanceByBusinessAndTimeRange(Long businessId, DateTime startTime, DateTime endTime, List<Integer> balanceSourceTypes);
-
-    BigDecimal getBalanceByBusinessAndTimeRange(List<Long> businessIds, DateTime startTime, DateTime endTime, List<Integer> balanceSourceTypes);
-
+    BigDecimal getBalanceByBusinessAndTimeRange(QueryBalanceByBo bo);
 
 }

+ 3 - 6
ruoyi-user/src/main/java/com/ruoyi/user/service/impl/UserBalanceRecordServiceImpl.java

@@ -13,6 +13,7 @@ import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.BeanCopyUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.user.domain.UserBalanceRecord;
+import com.ruoyi.user.domain.bo.QueryBalanceByBo;
 import com.ruoyi.user.domain.bo.UserBalanceRecordBo;
 import com.ruoyi.user.domain.vo.UserBalanceRecordVo;
 import com.ruoyi.user.exception.UserBalanceRecordExceptionEnum;
@@ -161,14 +162,10 @@ public class UserBalanceRecordServiceImpl implements IUserBalanceRecordService {
     }
 
     @Override
-    public BigDecimal getBalanceByBusinessAndTimeRange(Long businessId, DateTime startTime, DateTime endTime, List<Integer> balanceSourceTypes) {
-        return this.baseMapper.getBalanceByBusinessAndTimeRange(businessId, startTime, endTime, balanceSourceTypes);
+    public BigDecimal getBalanceByBusinessAndTimeRange(QueryBalanceByBo bo) {
+        return this.baseMapper.getBalanceByBusinessAndTimeRange(bo);
     }
 
-    @Override
-    public BigDecimal getBalanceByBusinessAndTimeRange(List<Long> businessIds, DateTime startTime, DateTime endTime, List<Integer> balanceSourceTypes) {
-        return this.baseMapper.getBalanceByBusinessesAndTimeRange(businessIds, startTime, endTime, balanceSourceTypes);
-    }
 
 
 }

+ 10 - 31
ruoyi-user/src/main/resources/mapper/user/UserBalanceRecordMapper.xml

@@ -28,45 +28,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         FROM
         tb_user_balance_record
         <where>
-            <if test="businessId != null">
-                AND business_id =  #{businessId}
+            <if test="bo.businessId != null">
+                AND business_id =  #{bo.businessId}
             </if>
-            <if test="startTime != null">
-                AND create_time &gt;= #{startTime}
+            <if test="bo.startTime != null">
+                AND create_time &gt;= #{bo.startTime}
             </if>
-            <if test="endTime != null">
-                AND create_time &lt;= #{endTime}
+            <if test="bo.endTime != null">
+                AND create_time &lt;= #{bo.endTime}
             </if>
-            <if test="balanceSourceTypes != null and balanceSourceTypes.size>0">
+            <if test="bo.balanceSourceTypes != null and bo.balanceSourceTypes.size>0">
                 AND source_type IN
-                <foreach item="item" collection="balanceSourceTypes" separator="," open="(" close=")" index="">
+                <foreach item="item" collection="bo.balanceSourceTypes" separator="," open="(" close=")" index="">
                     #{item}
                 </foreach>
             </if>
-        </where>
-    </select>
-
-    <select id="getBalanceByBusinessesAndTimeRange" resultType="java.math.BigDecimal">
-        SELECT
-        IFNULL(SUM(entry_value),0)
-        FROM
-        tb_user_balance_record
-        <where>
-            <if test="businessIds != null and businessIds.size>0">
+            <if test="bo.businessIds != null and bo.businessIds.size>0">
                 AND business_id IN
-                <foreach item="item" collection="businessIds" separator="," open="(" close=")" index="">
-                    #{item}
-                </foreach>
-            </if>
-            <if test="startTime != null">
-                AND create_time &gt;= #{startTime}
-            </if>
-            <if test="endTime != null">
-                AND create_time &lt;= #{endTime}
-            </if>
-            <if test="balanceSourceTypes != null and balanceSourceTypes.size>0">
-                AND source_type IN
-                <foreach item="item" collection="balanceSourceTypes" separator="," open="(" close=")" index="">
+                <foreach item="item" collection="bo.businessIds" separator="," open="(" close=")" index="">
                     #{item}
                 </foreach>
             </if>