充值国家明细

This commit is contained in:
2025-08-19 16:22:11 +08:00
parent 440a2cc46b
commit 70887963fa
5 changed files with 58 additions and 4 deletions

View File

@@ -0,0 +1,16 @@
package com.accompany.admin.vo;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class ChargeRecordPartitionRegionVo {
private String channel;
public String regionName;
public BigDecimal usd = BigDecimal.ZERO;
}

View File

@@ -2,6 +2,7 @@ package com.accompany.admin.mapper;
import com.accompany.admin.vo.ChargeRecordAdminVo;
import com.accompany.admin.vo.ChargeRecordCountryVo;
import com.accompany.admin.vo.ChargeRecordPartitionRegionVo;
import com.accompany.admin.vo.ChargeRecordPartitionVo;
import com.accompany.payment.model.ChargeRecord;
import com.accompany.payment.vo.ChargeRecordRefundVo;
@@ -27,6 +28,9 @@ public interface ChargeRecordAdminMapper extends BaseMapper<ChargeRecord> {
List<ChargeRecordPartitionVo> getPartitionGoldDetail(@Param("partitionId") Integer partitionId, @Param("startTime") Date startTime, @Param("endTime") Date endTime);
List<ChargeRecordPartitionRegionVo> getPartitionRegionGoldDetail(@Param("partitionId") Integer partitionId, @Param("startTime") Date startTime,
@Param("endTime") Date endTime, @Param("channel") String channel);
/**
* 充值统计
* @param uidList

View File

@@ -2,10 +2,7 @@ package com.accompany.admin.service.user;
import com.accompany.admin.mapper.ChargeRecordAdminMapper;
import com.accompany.admin.service.base.BaseService;
import com.accompany.admin.vo.ChargeRecordAdminVo;
import com.accompany.admin.vo.ChargeRecordCountryVo;
import com.accompany.admin.vo.ChargeRecordPartitionVo;
import com.accompany.admin.vo.ChargeRecordPersonAdminVo;
import com.accompany.admin.vo.*;
import com.accompany.business.constant.ChargeChannelEnum;
import com.accompany.business.constant.GenderEnum;
import com.accompany.common.constant.Constant;
@@ -394,6 +391,21 @@ public class ChargeRecordAdminService extends BaseService {
}).collect(Collectors.toList());
}
public List<ChargeRecordPartitionRegionVo> partitionRegionGoldDetail(Integer partitionId, String startDate, String channel) {
if (!StringUtils.hasText(startDate)) {
throw new AdminServiceException(BusiStatus.PARAMERROR);
}
PartitionInfo partitionInfo = partitionInfoService.getById(partitionId);
if (null == partitionInfo){
throw new AdminServiceException(BusiStatus.PARAMERROR);
}
Date startTime = DateTimeUtil.getBeginTimeOfDay(DateTimeUtil.convertStrToDate(startDate, DateTimeUtil.DEFAULT_DATE_PATTERN));
Date endTime = DateTimeUtil.getEndTimeOfDay(DateTimeUtil.convertStrToDate(startDate, DateTimeUtil.DEFAULT_DATE_PATTERN));
return chargeRecordAdminMapper.getPartitionRegionGoldDetail(partitionId, startTime, endTime, channel);
}
public void exportPartitionDetail(ServletOutputStream outputStream, Integer partitionId, String startTime, String endTime) {
PartitionInfo partitionInfo = partitionInfoService.getById(partitionId);
if (null == partitionInfo){

View File

@@ -142,6 +142,22 @@
group by `date`
</select>
<select id="getPartitionRegionGoldDetail" resultType="com.accompany.admin.vo.ChargeRecordPartitionRegionVo">
/* SHARDINGSPHERE_HINT: WRITE_ROUTE_ONLY=true */
select cr.channel as channel,
r.`name` as regionName,
ifnull(sum(amount)/100,0) `usd`
from charge_record cr
inner join users u on cr.uid = u.uid
left join region_info r on u.region_id = r.id
where cr.create_time &gt;= #{startTime}
and cr.create_time &lt;= #{endTime}
and cr.charge_status in (2,6)
and cr.channel = #{channel}
and u.partition_id = #{partitionId}
GROUP BY r.id
</select>
<select id="getChargeCount" resultType="com.accompany.payment.model.ChargeRecord">
/* SHARDINGSPHERE_HINT: WRITE_ROUTE_ONLY=true */
select

View File

@@ -4,6 +4,7 @@ import com.accompany.admin.controller.BaseController;
import com.accompany.admin.service.user.ChargeRecordAdminService;
import com.accompany.admin.vo.ChargeRecordAdminVo;
import com.accompany.admin.vo.ChargeRecordCountryVo;
import com.accompany.admin.vo.ChargeRecordPartitionRegionVo;
import com.accompany.admin.vo.ChargeRecordPartitionVo;
import com.accompany.business.service.user.UsersService;
import com.accompany.common.constant.Constant;
@@ -336,6 +337,11 @@ public class ChargeRecordAdminController extends BaseController {
return chargeRecordAdminService.getPartitionGoldDetail(partitionId, beginDate, endDate);
}
@RequestMapping(value = "/partitionRegionDetail")
public List<ChargeRecordPartitionRegionVo> partitionRegionDetail(Integer partitionId, String beginDate, String channel) {
return chargeRecordAdminService.partitionRegionGoldDetail(partitionId, beginDate, channel);
}
@RequestMapping(value = "/exportPartitionDetail")
public void exportPartitionDetail(HttpServletResponse response, Integer partitionId, String beginDate, String endDate) throws IOException {
response.setContentType("application/vnd.ms-excel");