修复充值成功后用户充值记录查询不到的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
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;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import com.fastbee.rechargecard.domain.NgUserRechargeRecords;
import com.fastbee.rechargecard.domain.dto.NgUserRechargeRecordsDto;
import com.fastbee.rechargecard.domain.dto.RechargecardUser;
@ -15,6 +18,12 @@ import com.fastbee.rechargecard.mapper.NgUserRechargeRecordsMapper;
*/
public interface INgUserRechargeRecordsService
{
/**
* 统计总充值金额和总充值用户
* @return
*/
public Map<String, Object> getTotal(NgUserRechargeRecordsDto ngUserRechargeRecordsDto);
/**
* 查询用户充值记录列表
*

View File

@ -1,7 +1,11 @@
package com.fastbee.rechargecard.service.impl;
import java.math.BigDecimal;
import java.util.HashMap;
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.utils.DateUtils;
import com.fastbee.rechargecard.domain.UserRechargeCards;
@ -29,6 +33,39 @@ public class NgUserRechargeRecordsServiceImpl implements INgUserRechargeRecordsS
@Autowired
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
public List<NgUserRechargeRecords> selectNgUserRechargeRecordsListByTime(NgUserRechargeRecordsDto ngUserRechargeRecords) {
return ngUserRechargeRecordsMapper.selectNgUserRechargeRecordsListByTime(ngUserRechargeRecords);
@ -65,6 +102,7 @@ public class NgUserRechargeRecordsServiceImpl implements INgUserRechargeRecordsS
ngUserRechargeRecords.setCardNumber(String.valueOf(rechargecardUser.getCardnumber()));
ngUserRechargeRecords.setRechargeCode(rechargecardUser.getRechargeCode());
ngUserRechargeRecords.setSerialNumber(rechargecardUser.getDeviceNumber());
ngUserRechargeRecords.setDeptId(rechargecardUser.getDeptId());
return ngUserRechargeRecordsMapper.insertNgUserRechargeRecords(ngUserRechargeRecords);
}

View File

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