This commit is contained in:
777
2025-12-08 10:51:08 +08:00
parent a71249ed12
commit c5bd376851
5 changed files with 69 additions and 1 deletions

View File

@@ -32,3 +32,14 @@ CREATE TABLE `cai_ip_black`
COLLATE = utf8mb4_general_ci
ROW_FORMAT = DYNAMIC COMMENT ='ip黑名单';
ALTER TABLE `cai_recharge_order`
ADD INDEX `count_index`(`pay_status`, `pay_time`, `appid`, `price`);
insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible,
status, perms, icon, create_by, create_time, update_by, update_time, remark)
values (1997858377790652418, '支付渠道统计', '1738084052270563330', '1', 'orderTotal', 'cai/orderTotal/index',
1, 0, 'C', '0', '0', 'cai:rechargeOrder:list', 'date-range', 'admin', sysdate(), '', null, '支付渠道统计菜单');
insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values (1997858164917141506, '安全管理', 0, 9, 'safe', null, null, 1, 0, 'M', '0', '0', null, 'bug', 'admin', '2025-12-08 10:38:00', 'admin', '2025-12-08 10:38:00', '');

View File

@@ -2,11 +2,14 @@ package com.ruoyi.web.controller.cai.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.RechargeOrder;
import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.dto.admin.vo.RechargeOrderAdminVo;
import com.ruoyi.cai.dto.admin.vo.order.RechargeOrderCountAdminVo;
import com.ruoyi.cai.mapper.RechargeOrderMapper;
import com.ruoyi.cai.service.PayTrdConfigService;
import com.ruoyi.cai.service.RechargeOrderService;
import com.ruoyi.cai.service.UserService;
@@ -17,6 +20,7 @@ import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.utils.BeanConvertUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
@@ -25,6 +29,7 @@ import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.validation.constraints.NotNull;
/**
@@ -37,6 +42,7 @@ import javax.validation.constraints.NotNull;
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/rechargeOrder")
@Slf4j
public class RechargeOrderController extends BaseController {
private final RechargeOrderService rechargeOrderService;
@@ -45,6 +51,19 @@ public class RechargeOrderController extends BaseController {
private TrdPayManager trdPayManager;
@Autowired
private PayTrdConfigService payTrdConfigService;
@Resource
private RechargeOrderMapper rechargeOrderMapper;
@Autowired
private IdentifierGenerator identifierGenerator;
/**
* 查询充值订单列表
*/
@SaCheckPermission("cai:rechargeOrder:list")
@GetMapping("/totalPage")
public TableDataInfo<RechargeOrderCountAdminVo> totalPage(RechargeOrderCountAdminVo bo, PageQuery pageQuery) {
Page<RechargeOrderCountAdminVo> page = rechargeOrderMapper.totalPage(pageQuery.build(),bo);
return TableDataInfo.build(page);
}
/**
* 查询充值订单列表
@@ -52,6 +71,8 @@ public class RechargeOrderController extends BaseController {
@SaCheckPermission("cai:rechargeOrder:list")
@GetMapping("/list")
public TableDataInfo<RechargeOrderAdminVo> list(RechargeOrderAdminVo bo, PageQuery pageQuery) {
String string = identifierGenerator.nextId(null).toString();
log.info("ID============{}",string);
Page<RechargeOrderAdminVo> page = rechargeOrderService.pageAdmin(pageQuery,bo);
return TableDataInfo.build(page);
}

View File

@@ -0,0 +1,19 @@
package com.ruoyi.cai.dto.admin.vo.order;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.cai.domain.RechargeOrder;
import com.ruoyi.common.annotation.Sensitive;
import com.ruoyi.common.constant.DateConstant;
import com.ruoyi.common.enums.SensitiveStrategy;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDate;
@Data
public class RechargeOrderCountAdminVo extends RechargeOrder {
private Integer totalNum;
@DateTimeFormat(pattern = DateConstant.PATTERN_DATE)
@JsonFormat(pattern = DateConstant.PATTERN_DATE)
private LocalDate countDate;
}

View File

@@ -1,10 +1,12 @@
package com.ruoyi.cai.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.dto.admin.incomeStatis.RechargeOrderCountDTO;
import com.ruoyi.cai.domain.RechargeOrder;
import com.ruoyi.cai.dto.admin.vo.RechargeOrderAdminVo;
import com.ruoyi.cai.dto.admin.vo.order.RechargeOrderCountAdminVo;
import org.apache.ibatis.annotations.Param;
import java.time.LocalDateTime;
@@ -20,4 +22,7 @@ public interface RechargeOrderMapper extends BaseMapper<RechargeOrder> {
Page<RechargeOrderAdminVo> pageAdmin(@Param("build") Page<Object> build, @Param("bo") RechargeOrderAdminVo bo);
RechargeOrderCountDTO incomeStatistics(@Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime);
Page<RechargeOrderCountAdminVo> totalPage(@Param("page") IPage<Object> page, @Param("query") RechargeOrderCountAdminVo query);
}

View File

@@ -64,5 +64,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and pay_time between #{startTime} and #{endTime}
</select>
<select id="totalPage" resultType="com.ruoyi.cai.dto.admin.vo.order.RechargeOrderCountAdminVo">
select date(t1.pay_time) as countDate,t1.appid,t1.price,count(1) as totalNum
from cai_recharge_order t1
where t1.pay_status = 1
<if test="query.countDate != null">
and date(pay_time) = #{query.countDate}
</if>
<if test="query.appid != null">
and appid = #{query.appid}
</if>
group by date(t1.pay_time), t1.appid, t1.price
order by countDate desc, appid,price
</select>
</mapper>