资金管理查询界面参数修正

This commit is contained in:
gaoqr
2025-10-20 15:26:39 +08:00
parent be88f91e89
commit de2bdb09c4
12 changed files with 68 additions and 4 deletions
@@ -15,6 +15,7 @@ import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import static com.cf.imes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;
@@ -46,6 +47,9 @@ public class BalanceDetailsPageReqVO extends PageParam {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
private LocalDate[] createTime;
@Schema(hidden = true)
private LocalDateTime[] operateTime;
@Schema(description = "充值金额")
@DecimalMin(value = "0.01", message = "充值金额必须大于零")
@DecimalMax(value = "100000", message = "充值金额不能超过十万")
@@ -3,10 +3,15 @@ package com.cf.imes.module.system.controller.admin.funds.products.vo.product;
import com.cf.imes.framework.common.pojo.PageParam;
import com.cf.imes.module.system.validation.products.ProductStatus;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.DecimalMax;
import jakarta.validation.constraints.DecimalMin;
import jakarta.validation.constraints.Digits;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import java.math.BigDecimal;
@Schema(description = "管理后台 - 产品表 products Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@@ -22,4 +27,10 @@ public class ProductPageReqVO extends PageParam {
@Schema(description = "产品状态", example = "0")
@ProductStatus
private Integer status;
@Schema(description = "单价")
@DecimalMin(value = "0.01", message = "单价必须大于零")
@DecimalMax(value = "100000", message = "单价不能超过十万")
@Digits(integer = 6, fraction = 2, message = "单价格式不正确")
private BigDecimal price;
}
@@ -54,6 +54,9 @@ public class PurchaseRecordPageReqVO extends PageParam {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
private LocalDate[] endTime;
@Schema(hidden = true)
private LocalDateTime[] endTimeSection;
@Schema(description = "产品金额")
@DecimalMin(value = "0.01", message = "产品购买金额必须大于零")
@DecimalMax(value = "100000", message = "产品购买金额不能超过十万")
@@ -44,6 +44,10 @@ public class RechargePageReqVO extends PageParam {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] startTime;
@Schema(description = "投放结束时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] endTime;
@Schema(description = "备注")
private String remark;
@@ -20,6 +20,7 @@ public interface ProductsMapper extends BaseMapperX<ProductsDO> {
.eqIfPresent(ProductsDO::getId, reqVO.getId())
.likeIfPresent(ProductsDO::getProductName, reqVO.getProductName())
.eqIfPresent(ProductsDO::getStatus, reqVO.getStatus())
.eqIfPresent(ProductsDO::getPrice, reqVO.getPrice())
.eq(ProductsDO::getDeleted, deleted));
}
@@ -20,6 +20,7 @@ import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
/**
@@ -42,6 +43,7 @@ public interface PurchaseRecordMapper extends BaseMapperX<PurchaseRecordDO> {
* @return
*/
default PageResult<PurchaseRecordDO> selectPage(PurchaseRecordPageReqVO pageReqVO) {
LocalDateTime[] endTimeSection = pageReqVO.getEndTimeSection();
return selectPage(pageReqVO, new LambdaQueryWrapperX<PurchaseRecordDO>()
.eq(PurchaseRecordDO::getDeleted, false)
.eqIfPresent(PurchaseRecordDO::getOrganId, pageReqVO.getOrganId())
@@ -51,7 +53,8 @@ public interface PurchaseRecordMapper extends BaseMapperX<PurchaseRecordDO> {
.betweenIfPresent(PurchaseRecordDO::getCreateTime, pageReqVO.getCreateTime())
.likeIfPresent(PurchaseRecordDO::getCreator, pageReqVO.getCreator())
.eqIfPresent(PurchaseRecordDO::getTotalAmount, pageReqVO.getProductPrice())
.betweenIfPresent(PurchaseRecordDO::getEndTime, pageReqVO.getEndTime())
.geIfPresent(PurchaseRecordDO::getEndTime, ObjectUtil.isNotNull(endTimeSection) ? endTimeSection[0] : null)
.ltIfPresent(PurchaseRecordDO::getEndTime, ObjectUtil.isNotNull(endTimeSection) ? endTimeSection[1] : null)
.ne(PurchaseRecordDO::getInitial, true)
.orderByDesc(PurchaseRecordDO::getCreateTime));
}
@@ -25,6 +25,7 @@ public interface GiftMoneyDetailsMapper extends BaseMapperX<GiftMoneyDetailsDO>
.eqIfPresent(GiftMoneyDetailsDO::getGiftAmount, reqVO.getGiftAmount())
.eqIfPresent(GiftMoneyDetailsDO::getRechargeAmount, reqVO.getRechargeAmount())
.betweenIfPresent(GiftMoneyDetailsDO::getStartTime, reqVO.getStartTime())
.betweenIfPresent(GiftMoneyDetailsDO::getEndTime, reqVO.getEndTime())
.eqIfPresent(GiftMoneyDetailsDO::getDeleted, reqVO.getDeleted());
Integer rechargeType = reqVO.getRechargeType();
@@ -1,6 +1,7 @@
package com.cf.imes.module.system.service.funds.incomeandexpense;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
@@ -17,6 +18,9 @@ import com.cf.imes.module.system.service.organ.OrganService;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.ArrayList;
import java.util.List;
@@ -42,6 +46,17 @@ public class IncomeExpenseServiceImpl implements IncomeExpenseService {
@Override
public PageResult<BalanceDetailsRespVO> getBalanceDetailsPage(BalanceDetailsPageReqVO pageReqVO) {
// 时间类型规范为开始0点,结束12点
LocalDate[] createTime = pageReqVO.getCreateTime();
if (ArrayUtil.isNotEmpty(createTime) && createTime.length == 2) {
pageReqVO.setOperateTime(new LocalDateTime[]{
pageReqVO.getCreateTime()[0].atStartOfDay(),
pageReqVO.getCreateTime()[1].atTime(LocalTime.MAX)
});
} else {
pageReqVO.setOperateTime(null);
}
PageDTO<AccountDetailsDO> page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
IPage<AccountDetailsDO> pageResult = incomeExpenseDetailsMapper.getAccountDetailsPage(page, pageReqVO);
List<AccountDetailsDO> pageResultList = pageResult.getRecords();
@@ -194,6 +194,9 @@ public class InvoiceServiceImpl implements InvoiceService {
@Override
public PageResult<InvoiceAvailablePageRespVO> getAvailablePage(InvoiceAmountAndAvailablePageReqVO invoiceAmountAndAvailablePageReqVO) {
// 生成起时间0点和止时间12点的区间
invoiceAmountAndAvailablePageReqVO.setCreateTime(LocalDateTimeUtils.generateTimeSection(invoiceAmountAndAvailablePageReqVO.getCreateTime()));
PageResult<PurchaseRecordDO> availablePage = purchaseRecordMapper.selectPage(invoiceAmountAndAvailablePageReqVO);
if (CollUtil.isEmpty(availablePage.getList())) {
return new PageResult<>(availablePage.getTotal());
@@ -2,6 +2,7 @@ package com.cf.imes.module.system.service.funds.purchase;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -45,8 +46,8 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -101,6 +102,16 @@ public class PurchaseServiceImpl implements PurchaseService {
public PageResult<PurchaseRecordRespVO> getPurchaseRecord(PurchaseRecordPageReqVO pageReqVO) {
// 生成起时间0点和止时间12点的区间
pageReqVO.setCreateTime(LocalDateTimeUtils.generateTimeSection(pageReqVO.getCreateTime()));
// 生成产品有效时间0点和止时间12点的区间
LocalDate[] endTime = pageReqVO.getEndTime();
if (ArrayUtil.isNotEmpty(endTime) && endTime.length == 2) {
pageReqVO.setEndTimeSection(new LocalDateTime[]{
pageReqVO.getEndTime()[0].atStartOfDay(),
pageReqVO.getEndTime()[1].plusDays(1).atStartOfDay()
});
} else {
pageReqVO.setEndTimeSection(null);
}
PageResult<PurchaseRecordDO> pageResult = purchaseRecordMapper.selectPage(pageReqVO);
List<PurchaseRecordDO> resultList = pageResult.getList();
@@ -292,6 +303,9 @@ public class PurchaseServiceImpl implements PurchaseService {
@Override
public PageResult<SalesDetailRespVO> getManageSalesDetailsPage(SalesDetailsPageReqVO reqVO) {
// 时间类型规范为开始0点,结束12点
reqVO.setCreateTime(LocalDateTimeUtils.generateTimeSection(reqVO.getCreateTime()));
// 分页查询
PageResult<PurchaseRecordDO> salesDetailPage = purchaseRecordMapper.getSaleDetailsPage(reqVO);
@@ -5,6 +5,7 @@ import cn.hutool.core.util.IdUtil;
import com.cf.imes.framework.common.pojo.PageParam;
import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.framework.common.util.Assert.AssertUtils;
import com.cf.imes.framework.common.util.date.LocalDateTimeUtils;
import com.cf.imes.framework.common.util.object.BeanUtils;
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.cf.imes.module.system.controller.admin.funds.recharge.vo.RechargePageReqVO;
@@ -91,6 +92,10 @@ public class RechargeActiveServiceImpl implements RechargeActiveService{
@Override
public PageResult<GiftMoneyDetailsDO> getPage(RechargePageReqVO pageReqVO) {
// 生成时间0点和止时间12点的区间
pageReqVO.setStartTime(LocalDateTimeUtils.generateTimeSection(pageReqVO.getStartTime()));
pageReqVO.setEndTime(LocalDateTimeUtils.generateTimeSection(pageReqVO.getEndTime()));
return giftMoneyDetailsMapper.selectPage(pageReqVO);
}
@@ -33,8 +33,8 @@
<if test="reqVO.incomeExpenseType != null">
AND i.income_expense_type = #{reqVO.incomeExpenseType}
</if>
<if test="reqVO.createTime != null and reqVO.createTime.length == 2">
AND i.create_time between #{reqVO.createTime[0]} and #{reqVO.createTime[1]}
<if test="reqVO.operateTime != null and reqVO.operateTime.length == 2">
AND i.create_time between #{reqVO.operateTime[0]} and #{reqVO.operateTime[1]}
</if>
<if test="reqVO.productPrice != null">
AND p.total_amount = #{reqVO.productPrice}