修复充值成功后用户充值记录查询不到的bug;添加充值记录统计接口

This commit is contained in:
童丽然 2025-01-02 09:20:36 +08:00
parent 3f6c1a3f35
commit b5df093067
4 changed files with 60 additions and 0 deletions

View File

@ -43,6 +43,17 @@ public class NgUserRechargeRecordsController extends BaseController
@Autowired @Autowired
private INgUserRechargeRecordsService ngUserRechargeRecordsService; private INgUserRechargeRecordsService ngUserRechargeRecordsService;
/**
* 统计充值记录中的充值总金额和充值用户数量
* @return
*/
@GetMapping("/total")
@ApiOperation("统计充值记录中的充值总金额和充值用户数量")
public AjaxResult total(NgUserRechargeRecordsDto ngUserRechargeRecordsDto)
{
return success(ngUserRechargeRecordsService.getTotal(ngUserRechargeRecordsDto));
}
/** /**
* 查询用户充值记录列表 * 查询用户充值记录列表
*/ */

View File

@ -1,6 +1,9 @@
package com.fastbee.rechargecard.service; package com.fastbee.rechargecard.service;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Objects;
import com.fastbee.rechargecard.domain.NgUserRechargeRecords; import com.fastbee.rechargecard.domain.NgUserRechargeRecords;
import com.fastbee.rechargecard.domain.dto.NgUserRechargeRecordsDto; import com.fastbee.rechargecard.domain.dto.NgUserRechargeRecordsDto;
import com.fastbee.rechargecard.domain.dto.RechargecardUser; import com.fastbee.rechargecard.domain.dto.RechargecardUser;
@ -15,6 +18,12 @@ import com.fastbee.rechargecard.mapper.NgUserRechargeRecordsMapper;
*/ */
public interface INgUserRechargeRecordsService public interface INgUserRechargeRecordsService
{ {
/**
* 统计总充值金额和总充值用户
* @return
*/
public Map<String, Object> getTotal(NgUserRechargeRecordsDto ngUserRechargeRecordsDto);
/** /**
* 查询用户充值记录列表 * 查询用户充值记录列表
* *

View File

@ -1,7 +1,11 @@
package com.fastbee.rechargecard.service.impl; package com.fastbee.rechargecard.service.impl;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.fastbee.common.exception.ServiceException; import com.fastbee.common.exception.ServiceException;
import com.fastbee.common.utils.DateUtils; import com.fastbee.common.utils.DateUtils;
import com.fastbee.rechargecard.domain.UserRechargeCards; import com.fastbee.rechargecard.domain.UserRechargeCards;
@ -29,6 +33,39 @@ public class NgUserRechargeRecordsServiceImpl implements INgUserRechargeRecordsS
@Autowired @Autowired
private UserRechargeCardsMapper userRechargeCardsMapper; private UserRechargeCardsMapper userRechargeCardsMapper;
/**
* 统计总充值金额和总充值用户
* @param ngUserRechargeRecordsDto
* @return
*/
@Override
public Map<String, Object> getTotal(NgUserRechargeRecordsDto ngUserRechargeRecordsDto) {
// 统计amount字段的总和
QueryWrapper<NgUserRechargeRecords> sumQueryWrapper = new QueryWrapper<>();
sumQueryWrapper.select("SUM(amount) as sumAmount");
if (ngUserRechargeRecordsDto.getStartTime() != null && ngUserRechargeRecordsDto.getEndTime() != null) {
sumQueryWrapper.between("time", ngUserRechargeRecordsDto.getStartTime(), ngUserRechargeRecordsDto.getEndTime());
}
Map<String, Object> sumResult = ngUserRechargeRecordsMapper.selectMaps(sumQueryWrapper).get(0);
//double totalAmount = ((Number) sumResult.get("sumAmount")).doubleValue();
BigDecimal totalAmount= (BigDecimal) sumResult.get("sumAmount");
// 对cardNumber字段进行去重并统计总和
QueryWrapper<NgUserRechargeRecords> distinctQueryWrapper = new QueryWrapper<>();
distinctQueryWrapper.select("COUNT(DISTINCT card_number) as distinctCount");
if (ngUserRechargeRecordsDto.getStartTime() != null && ngUserRechargeRecordsDto.getEndTime() != null) {
distinctQueryWrapper.between("time", ngUserRechargeRecordsDto.getStartTime(), ngUserRechargeRecordsDto.getEndTime());
}
Map<String, Object> distinctResult = ngUserRechargeRecordsMapper.selectMaps(distinctQueryWrapper).get(0);
long distinctCardNumberCount = ((Number) distinctResult.get("distinctCount")).longValue();
Map<String,Object> result=new HashMap<>();
result.put("totalAmount",totalAmount);//总充值金额
result.put("totalUserNumber",distinctCardNumberCount);//总充值人数
return result;
}
@Override @Override
public List<NgUserRechargeRecords> selectNgUserRechargeRecordsListByTime(NgUserRechargeRecordsDto ngUserRechargeRecords) { public List<NgUserRechargeRecords> selectNgUserRechargeRecordsListByTime(NgUserRechargeRecordsDto ngUserRechargeRecords) {
return ngUserRechargeRecordsMapper.selectNgUserRechargeRecordsListByTime(ngUserRechargeRecords); return ngUserRechargeRecordsMapper.selectNgUserRechargeRecordsListByTime(ngUserRechargeRecords);
@ -65,6 +102,7 @@ public class NgUserRechargeRecordsServiceImpl implements INgUserRechargeRecordsS
ngUserRechargeRecords.setCardNumber(String.valueOf(rechargecardUser.getCardnumber())); ngUserRechargeRecords.setCardNumber(String.valueOf(rechargecardUser.getCardnumber()));
ngUserRechargeRecords.setRechargeCode(rechargecardUser.getRechargeCode()); ngUserRechargeRecords.setRechargeCode(rechargecardUser.getRechargeCode());
ngUserRechargeRecords.setSerialNumber(rechargecardUser.getDeviceNumber()); ngUserRechargeRecords.setSerialNumber(rechargecardUser.getDeviceNumber());
ngUserRechargeRecords.setDeptId(rechargecardUser.getDeptId());
return ngUserRechargeRecordsMapper.insertNgUserRechargeRecords(ngUserRechargeRecords); return ngUserRechargeRecordsMapper.insertNgUserRechargeRecords(ngUserRechargeRecords);
} }

View File

@ -236,6 +236,7 @@ public class UserRechargeCardsServiceImpl implements IUserRechargeCardsService
userConsumptionDetails.setStatus(0); userConsumptionDetails.setStatus(0);
userConsumptionDetails.setAreaCode(String.valueOf(rechargecardUser.getAreacode())); userConsumptionDetails.setAreaCode(String.valueOf(rechargecardUser.getAreacode()));
userConsumptionDetails.setCreateTime(DateUtils.getNowDate()); userConsumptionDetails.setCreateTime(DateUtils.getNowDate());
userConsumptionDetails.setDeptId(info.getDeptId());
/*UserConsumptionDetails userConsumptionDetails = UserConsumptionDetails.builder() /*UserConsumptionDetails userConsumptionDetails = UserConsumptionDetails.builder()
.userId(info.getUserId()) .userId(info.getUserId())
.cardNumber(info.getCardNumber()) .cardNumber(info.getCardNumber())
@ -262,6 +263,7 @@ public class UserRechargeCardsServiceImpl implements IUserRechargeCardsService
ngUserRechargeRecords.setStatus(0); ngUserRechargeRecords.setStatus(0);
ngUserRechargeRecords.setAreaCode(String.valueOf(rechargecardUser.getAreacode())); ngUserRechargeRecords.setAreaCode(String.valueOf(rechargecardUser.getAreacode()));
ngUserRechargeRecords.setSerialNumber(rechargecardUser.getDeviceNumber()); ngUserRechargeRecords.setSerialNumber(rechargecardUser.getDeviceNumber());
ngUserRechargeRecords.setDeptId(info.getDeptId());
// 计算新的余额 // 计算新的余额
BigDecimal newBalance = rechargecardUser.getAmount().add(info.getBalance()); BigDecimal newBalance = rechargecardUser.getAmount().add(info.getBalance());