From 64f7ccb9ef8b5a0618e65cddc14b981c1f108ba3 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期一, 04 十一月 2024 09:01:59 +0800
Subject: [PATCH] 代码提交

---
 xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/controller/management/MgtOrderController.java |  908 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 888 insertions(+), 20 deletions(-)

diff --git a/xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/controller/management/MgtOrderController.java b/xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/controller/management/MgtOrderController.java
index c5b775e..e5cf4b2 100644
--- a/xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/controller/management/MgtOrderController.java
+++ b/xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/controller/management/MgtOrderController.java
@@ -1,18 +1,27 @@
 package com.xinquan.order.controller.management;
 
 
+import cn.afterturn.easypoi.excel.ExcelExportUtil;
+import cn.afterturn.easypoi.excel.entity.ExportParams;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xinquan.common.core.domain.R;
+import com.xinquan.common.core.utils.WebUtils;
 import com.xinquan.common.core.utils.page.CollUtils;
 import com.xinquan.common.core.utils.page.PageDTO;
-import com.xinquan.common.security.utils.SecurityUtils;
+import com.xinquan.common.core.web.page.PageInfo;
+import com.xinquan.common.security.service.TokenService;
 import com.xinquan.course.api.domain.Course;
 import com.xinquan.course.api.feign.RemoteCourseService;
 import com.xinquan.meditation.api.domain.Meditation;
 import com.xinquan.meditation.api.feign.RemoteMeditationService;
 import com.xinquan.order.api.domain.Order;
-import com.xinquan.order.api.domain.dto.OrderListDTO;
+import com.xinquan.order.domain.export.OrderExport;
+import com.xinquan.order.domain.export.WaterExport;
+import com.xinquan.system.api.domain.AppUserWithdraw;
+import com.xinquan.system.api.domain.PrizeRedemptionRecord;
+import com.xinquan.system.api.model.LoginUser;
+import com.xinquan.user.api.domain.dto.OrderListDTO;
 import com.xinquan.order.api.domain.vo.OrderCountVO;
 import com.xinquan.order.domain.OrderPaymentRecord;
 import com.xinquan.order.service.OrderPaymentRecordService;
@@ -22,14 +31,24 @@
 import com.xinquan.system.api.domain.SysUser;
 import com.xinquan.user.api.feign.RemoteAppUserService;
 import io.swagger.annotations.ApiOperation;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.aspectj.weaver.ast.Or;
+import org.omg.CORBA.PRIVATE_MEMBER;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.math.BigDecimal;
+import java.net.URLEncoder;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
+import java.time.format.DateTimeFormatter;
+import java.time.temporal.TemporalAdjusters;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -56,6 +75,807 @@
     @Resource
     private RemoteUserService remoteUserService;
 
+    public static void main(String[] args) {
+    }
+    @PostMapping("/getOrderList")
+    public R<List<Order>> getOrderList(@RequestParam("status") Integer status,
+                                       @RequestParam("timeType") Integer timeType,
+                                       @RequestParam("time") String time)
+    {
+        LocalDate today = LocalDate.now();
+        // 定义日期时间格式
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        // 获取当前年份
+        int currentYear = LocalDate.now().getYear();
+        List<Long> longs = new ArrayList<>();
+        longs.add(1L);
+        longs.add(2L);
+        longs.add(3L);
+        LambdaQueryWrapper<Order> orderLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        String startTime =null;
+        String endTime =null;
+        switch (timeType){
+            case 1:
+                // 获取今年第一天和今年最后一天
+                // 获取今年的第一天
+                LocalDate firstDayOfYear = LocalDate.of(currentYear, 1, 1);
+                LocalDateTime firstDayOfYearDateTime = firstDayOfYear.atStartOfDay();
+                // 获取今年的最后一天
+                LocalDate lastDayOfYear = LocalDate.of(currentYear, 12, 31);
+                LocalDateTime lastDayOfYearDateTime = lastDayOfYear.atTime(23, 59, 59);
+                // 格式化日期时间
+                String firstDayOfYearString = firstDayOfYearDateTime.format(formatter);
+                String lastDayOfYearString = lastDayOfYearDateTime.format(formatter);
+                startTime = firstDayOfYearString;
+                endTime = lastDayOfYearString;
+                break;
+            case 2:
+                // 获取今日的最开始时间(00:00:00)
+                LocalDateTime startOfDay = today.atStartOfDay();
+                // 获取今日的最晚时间(23:59:59)
+                LocalDateTime endOfDay = today.atTime(23, 59, 59);
+                // 格式化日期时间
+                String startOfDayString = startOfDay.format(formatter);
+                String endOfDayString = endOfDay.format(formatter);
+                startTime = startOfDayString;
+                endTime = endOfDayString;
+                break;
+            case 3:
+                // 获取本周的第一天(周一)
+                LocalDate firstDayOfWeek = today.with(TemporalAdjusters.previousOrSame(java.time.DayOfWeek.MONDAY));
+                LocalDateTime firstDayOfWeekDateTime = firstDayOfWeek.atStartOfDay();
+                // 获取本周的最后一天(周日)
+                LocalDate lastDayOfWeek = today.with(TemporalAdjusters.nextOrSame(java.time.DayOfWeek.SUNDAY));
+                LocalDateTime lastDayOfWeekDateTime = lastDayOfWeek.atTime(23, 59, 59);
+                // 格式化日期时间
+                String firstDayOfWeekString = firstDayOfWeekDateTime.format(formatter);
+                String lastDayOfWeekString = lastDayOfWeekDateTime.format(formatter);
+                startTime = firstDayOfWeekString;
+                endTime = lastDayOfWeekString;
+                break;
+            case 4:
+                // 获取当前日期
+                // 获取本月的第一天
+                LocalDate firstDayOfMonth = today.with(TemporalAdjusters.firstDayOfMonth());
+                LocalDateTime firstDayOfMonthDateTime = firstDayOfMonth.atStartOfDay();
+                // 获取本月的最后一天
+                LocalDate lastDayOfMonth = today.with(TemporalAdjusters.lastDayOfMonth());
+                LocalDateTime lastDayOfMonthDateTime = lastDayOfMonth.atTime(23, 59, 59);
+                // 格式化日期时间
+                String firstDayOfMonthString = firstDayOfMonthDateTime.format(formatter);
+                String lastDayOfMonthString = lastDayOfMonthDateTime.format(formatter);
+                startTime = firstDayOfMonthString;
+                endTime = lastDayOfMonthString;
+                break;
+        }
+        if (!time.equals("1")){
+            String[] split = time.split(" - ");
+            startTime = split[0]+"00:00:00";
+            endTime = split[1]+"23:59:59";
+        }
+        if (startTime!=null){
+            orderLambdaQueryWrapper.between(Order::getCreateTime,startTime,endTime);
+        }
+        if (status!=0){
+            orderLambdaQueryWrapper.eq(Order::getPaymentStatus, status);
+        }
+        orderLambdaQueryWrapper.eq(Order::getPaymentStatus, 2);
+        orderLambdaQueryWrapper.in(Order::getOrderFrom,longs);
+        orderLambdaQueryWrapper.ne(Order::getRefundStatus, 3);
+        List<Order> list = orderService.list(orderLambdaQueryWrapper);
+        return R.ok(list);
+    }
+    @PutMapping("/export")
+    @ApiOperation(value = "收支流水-导出", tags = {"管理后台-财务管理"})
+    public void export(@RequestBody OrderListDTO courseDTO) {
+        String startTime = null;
+        String endTime = null;
+        if (org.springframework.util.StringUtils.hasLength(courseDTO.getTime())){
+            String[] split = courseDTO.getTime().split(" - ");
+            startTime = split[0]+"00:00:00";
+            endTime = split[1]+"23:59:59";
+        }
+        List<Integer> payType1 = new ArrayList<>();
+        payType1.add(1);
+        payType1.add(5);
+        List<Integer> payType2 = new ArrayList<>();
+        payType2.add(2);
+        payType2.add(6);
+        List<Integer> payType3 = new ArrayList<>();
+        payType3.add(3);
+        payType3.add(7);
+        List<Integer> payType4 = new ArrayList<>();
+        payType3.add(4);
+        payType3.add(5);
+        payType3.add(6);
+        payType3.add(7);
+        LambdaQueryWrapper<Order> courseLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        if (StringUtils.hasLength(courseDTO.getIds())){
+            courseLambdaQueryWrapper.in(Order::getId, Arrays.asList(courseDTO.getIds().split(",")));
+        }
+        courseLambdaQueryWrapper.between(Order::getCreateTime, startTime, endTime);
+        if (courseDTO.getPayType()!=null){
+            switch (courseDTO.getPayType()){
+                case 1:
+                    courseLambdaQueryWrapper.in(Order::getPayType,payType1);
+                    break;
+                case 2:
+                    courseLambdaQueryWrapper.in(Order::getPayType,payType2);
+                    break;
+                case 3:
+                    courseLambdaQueryWrapper.in(Order::getPayType,payType3);
+                    break;
+                case 4:
+                    courseLambdaQueryWrapper.in(Order::getPayType,payType4);
+                    break;
+            }
+        }
+        courseLambdaQueryWrapper.eq(courseDTO.getPaymentStatus()!=null,Order::getPaymentStatus, courseDTO.getPaymentStatus());
+        courseLambdaQueryWrapper.eq(courseDTO.getOrderFrom()!=null,Order::getOrderFrom, courseDTO.getOrderFrom());
+        courseLambdaQueryWrapper.eq(courseDTO.getUid()!=null&&(!courseDTO.getUid().isEmpty()),Order::getAppUserId, courseDTO.getUid());
+        if (org.springframework.util.StringUtils.hasLength(courseDTO.getBuyContent())){
+            // 查询购买内容
+            List<Long> collect1 = orderService.lambdaQuery().like(Order::getVipType, courseDTO.getBuyContent()).list().stream()
+                    .map(Order::getId).collect(Collectors.toList());
+            List<Long> collect2 = orderService.lambdaQuery().like(Order::getBizOrderNo, courseDTO.getBuyContent()).list().stream()
+                    .map(Order::getId).collect(Collectors.toList());
+            List<Long> data = remoteCourseService.getCourseIdsByName(courseDTO.getBuyContent()).getData();
+            if (!data.isEmpty()){
+                List<Long> collect3 = orderService.lambdaQuery().in(Order::getBusinessId, data)
+                        .eq(Order::getOrderFrom, 2)
+                        .list().stream()
+                        .map(Order::getId).collect(Collectors.toList());
+                if (!collect3.isEmpty()){
+                    collect1.addAll(collect3);
+                }
+            }
+            List<Long> data1 = remoteMeditationService.getMeditationIdsByName(courseDTO.getBuyContent()).getData();
+            if (!data1.isEmpty()){
+                List<Long> collect3 = orderService.lambdaQuery().in(Order::getBusinessId, data1)
+                        .eq(Order::getOrderFrom, 1)
+                        .list().stream()
+                        .map(Order::getId).collect(Collectors.toList());
+                if (!collect3.isEmpty()){
+                    collect1.addAll(collect3);
+                }
+            }
+
+            collect1.addAll(collect2);
+            List<Long> collect = collect1.stream().distinct().collect(Collectors.toList());
+            if (collect.isEmpty()){
+                collect.add(-1L);
+            }
+            courseLambdaQueryWrapper.in(Order::getId,collect);
+        }
+
+        courseLambdaQueryWrapper.orderByDesc(Order::getCreateTime);
+        if (org.springframework.util.StringUtils.hasLength(courseDTO.getUserNameOrPhone())){
+            List<Long> collect = remoteAppUserService.getAppUserByNameOrPhone(courseDTO.getUserNameOrPhone()).getData();
+            if (collect.isEmpty()){
+                collect.add(-1L);
+            }
+            courseLambdaQueryWrapper.in(Order::getAppUserId, collect);
+        }
+
+        List<Order> page = orderService.list(courseLambdaQueryWrapper);
+        List<AppUserWithdraw> data2 = remoteAppUserService.getWithdraw(courseDTO).getData();
+        List<WaterExport> waterExports = new ArrayList<>();
+        for (AppUserWithdraw appUserWithdraw : data2) {
+            Order order = new Order();
+            order.setId(appUserWithdraw.getId());
+            order.setBizOrderNo(appUserWithdraw.getCode());
+            order.setUid(appUserWithdraw.getId()+"");
+            order.setBuyContent("提现");
+            order.setAppUserId(appUserWithdraw.getAppUserId());
+            order.setOrderFrom(5);
+            order.setPaymentStatus(appUserWithdraw.getWithdrawStatus()+1);
+            order.setPayType(4);
+            order.setTotalAmount(appUserWithdraw.getAmount());
+            order.setRealPayAmount(appUserWithdraw.getAmount());
+            order.setPlatformMoney(appUserWithdraw.getAmount().multiply(new BigDecimal("-1")));
+            order.setPaymentTime(appUserWithdraw.getWithdrawTime());
+            order.setCreateTime(appUserWithdraw.getCreateTime());
+            page.add(order);
+        }
+        for (Order record : page) {
+            record.setUid(record.getId().toString());
+            record.setPlatformMoney(record.getRealPayAmount().subtract(record.getCommissionAmount()==null?BigDecimal.ZERO:record.getCommissionAmount()));
+            AppUser byId1 = remoteAppUserService.getAppUserById(record.getAppUserId()+"").getData();
+            if (Objects.nonNull(byId1)){
+                record.setUserName(byId1.getNickname());
+                record.setCellPhone(byId1.getCellPhone());
+            }
+            if (record.getOrderFrom()!=null){
+                switch (record.getOrderFrom()){
+                    case 1:
+                        Meditation data = remoteMeditationService.getMeditationById(record.getBusinessId()).getData();
+                        if (data!=null){
+                            record.setCategoryMeditationName(data.getCategoryName());
+                            record.setMeditationTitle(data.getMeditationTitle());
+                            record.setIconUrl(data.getIconUrl());
+                            record.setDetailDescription(data.getDetailDescription());
+                            record.setGeneralPriceMeditation(data.getGeneralPrice());
+                            record.setListingStatusMeditation(data.getListingStatus());
+                            record.setMeditationUid(data.getId()+"");
+                        }
+                        break;
+                    case 2:
+                        Course data1 = remoteCourseService.getCourseById(record.getBusinessId()).getData();
+                        if (data1!=null){
+                            record.setCategoryCourseName(data1.getCategoryName());
+                            record.setCourseTitle(data1.getCourseTitle());
+                            record.setCoverUrl(data1.getCoverUrl());
+                            record.setTutor(data1.getTutor());
+                            record.setCourseChapterCount(data1.getCourseChapterCount());
+                            record.setGeneralPriceCourse(data1.getGeneralPrice());
+                            record.setListingStatusCourse(data1.getListingStatus());
+                            record.setCourseUid(data1.getId()+"");
+                        }
+                        break;
+                    case 3:
+                        record.setBuyContent(record.getVipType());
+                        record.setGeneralPriceVip(record.getRealPayAmount());
+                        break;
+                    case 4:
+                        record.setBuyContent("余额充值");
+                        record.setPlatformMoney(record.getRealPayAmount()!=null?record.getRealPayAmount()
+                                .subtract(record.getCommissionAmount()!=null?record.getCommissionAmount():BigDecimal.ZERO):BigDecimal.ZERO);
+                        break;
+                }
+            }
+            WaterExport waterExport = new WaterExport();
+            waterExport.setCode(record.getBizOrderNo());
+            if (Objects.nonNull(byId1)){
+                record.setUserName(byId1.getNickname());
+                record.setCellPhone(byId1.getCellPhone());
+                waterExport.setUserName(byId1.getNickname());
+                waterExport.setCellphone(byId1.getCellPhone());
+            }
+            waterExport.setRealPayAmount("¥"+record.getRealPayAmount());
+            waterExport.setCommissionAmount("¥"+record.getCommissionAmount());
+            waterExport.setPlatformMoney("¥"+record.getPlatformMoney());
+            waterExport.setBuyContent(record.getBuyContent());
+            waterExport.setOrderFrom(record.getOrderFrom()+"");
+            waterExport.setPayType(record.getPayType());
+            DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+            String format = df.format(record.getCreateTime());
+            waterExport.setCreateTime(format);
+            waterExport.setPaymentStatus(record.getPaymentStatus()+"");
+        }
+
+        Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), WaterExport.class, waterExports);
+        HttpServletResponse response = WebUtils.response();
+        response.setContentType("application/vnd.ms-excel");
+        response.setCharacterEncoding("utf-8");
+        ServletOutputStream outputStream = null;
+        try {
+            String fileName = URLEncoder.encode("收支流水导出.xls", "utf-8");
+            response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
+            response.setContentType("application/vnd.ms-excel;charset=UTF-8");
+            response.setHeader("Pragma", "no-cache");
+            response.setHeader("Cache-Control", "no-cache");
+            outputStream = response.getOutputStream();
+            workbook.write(outputStream);
+        } catch (IOException e) {
+            e.printStackTrace();
+        } finally {
+            try {
+                outputStream.close();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+    @PostMapping("/waterList")
+    @ApiOperation(value = "收支流水-分页", tags = {"管理后台-财务管理"})
+    public R<Page<Order>> waterList(@RequestBody OrderListDTO courseDTO) {
+        String startTime = null;
+        String endTime = null;
+        if (org.springframework.util.StringUtils.hasLength(courseDTO.getTime())){
+            String[] split = courseDTO.getTime().split(" - ");
+            startTime = split[0]+"00:00:00";
+            endTime = split[1]+"23:59:59";
+        }
+        List<Integer> payType1 = new ArrayList<>();
+        payType1.add(1);
+        payType1.add(5);
+        List<Integer> payType2 = new ArrayList<>();
+        payType2.add(2);
+        payType2.add(6);
+        List<Integer> payType3 = new ArrayList<>();
+        payType3.add(3);
+        payType3.add(7);
+        List<Integer> payType4 = new ArrayList<>();
+        payType3.add(4);
+        payType3.add(5);
+        payType3.add(6);
+        payType3.add(7);
+        LambdaQueryWrapper<Order> courseLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        if (startTime!=null){
+            courseLambdaQueryWrapper.between(Order::getCreateTime, startTime, endTime);
+        }
+        if (courseDTO.getPayType()!=null){
+            switch (courseDTO.getPayType()){
+                case 1:
+                    courseLambdaQueryWrapper.in(Order::getPayType,payType1);
+                    break;
+                case 2:
+                    courseLambdaQueryWrapper.in(Order::getPayType,payType2);
+                    break;
+                case 3:
+                    courseLambdaQueryWrapper.in(Order::getPayType,payType3);
+                    break;
+                case 4:
+                    courseLambdaQueryWrapper.in(Order::getPayType,payType4);
+                    break;
+            }
+        }
+        if (courseDTO.getPaymentStatus()!=null){
+            courseLambdaQueryWrapper.eq(Order::getPaymentStatus, courseDTO.getPaymentStatus());
+        }
+        if (courseDTO.getOrderFrom()!=null){
+            courseLambdaQueryWrapper.eq(Order::getOrderFrom, courseDTO.getOrderFrom());
+        }
+        if (org.springframework.util.StringUtils.hasLength(courseDTO.getBuyContent())){
+            // 查询购买内容
+            List<Long> collect1 = orderService.lambdaQuery().like(Order::getVipType, courseDTO.getBuyContent()).list().stream()
+                    .map(Order::getId).collect(Collectors.toList());
+            List<Long> collect2 = orderService.lambdaQuery().like(Order::getBizOrderNo, courseDTO.getBuyContent()).list().stream()
+                    .map(Order::getId).collect(Collectors.toList());
+            List<Long> data = remoteCourseService.getCourseIdsByName(courseDTO.getBuyContent()).getData();
+            if (!data.isEmpty()){
+                List<Long> collect3 = orderService.lambdaQuery().in(Order::getBusinessId, data)
+                        .eq(Order::getOrderFrom, 2)
+                        .list().stream()
+                        .map(Order::getId).collect(Collectors.toList());
+                if (!collect3.isEmpty()){
+                    collect1.addAll(collect3);
+                }
+            }
+            List<Long> data1 = remoteMeditationService.getMeditationIdsByName(courseDTO.getBuyContent()).getData();
+            if (!data1.isEmpty()){
+                List<Long> collect3 = orderService.lambdaQuery().in(Order::getBusinessId, data1)
+                        .eq(Order::getOrderFrom, 1)
+                        .list().stream()
+                        .map(Order::getId).collect(Collectors.toList());
+                if (!collect3.isEmpty()){
+                    collect1.addAll(collect3);
+                }
+            }
+
+            collect1.addAll(collect2);
+            List<Long> collect = collect1.stream().distinct().collect(Collectors.toList());
+            if (collect.isEmpty()){
+                collect.add(-1L);
+            }
+            courseLambdaQueryWrapper.in(Order::getId,collect);
+        }
+
+        courseLambdaQueryWrapper.orderByDesc(Order::getCreateTime);
+        if (org.springframework.util.StringUtils.hasLength(courseDTO.getUserNameOrPhone())){
+            List<Long> collect = remoteAppUserService.getAppUserByNameOrPhone(courseDTO.getUserNameOrPhone()).getData();
+            if (collect.isEmpty()){
+                collect.add(-1L);
+            }
+            courseLambdaQueryWrapper.in(Order::getAppUserId, collect);
+        }
+
+        List<Order> page = orderService.list(courseLambdaQueryWrapper);
+        Page<Order> objectPage = new Page<>();
+        objectPage.setTotal(page.size());
+        objectPage.setCurrent(courseDTO.getPageCurr());
+        objectPage.setSize(courseDTO.getPageSize());
+        List<AppUserWithdraw> data2 = remoteAppUserService.getWithdraw(courseDTO).getData();
+        for (AppUserWithdraw appUserWithdraw : data2) {
+            Order order = new Order();
+            order.setId(appUserWithdraw.getId());
+            order.setBizOrderNo(appUserWithdraw.getCode());
+            order.setUid(appUserWithdraw.getId()+"");
+            order.setBuyContent("提现");
+            order.setAppUserId(appUserWithdraw.getAppUserId());
+            order.setOrderFrom(5);
+            order.setPaymentStatus(appUserWithdraw.getWithdrawStatus()+1);
+            order.setPayType(4);
+            order.setTotalAmount(appUserWithdraw.getAmount());
+            order.setRealPayAmount(appUserWithdraw.getAmount());
+            order.setPlatformMoney(appUserWithdraw.getAmount().multiply(new BigDecimal("-1")));
+            order.setPaymentTime(appUserWithdraw.getWithdrawTime());
+            order.setCreateTime(appUserWithdraw.getCreateTime());
+            page.add(order);
+        }
+        for (Order record : page) {
+            record.setUid(record.getId().toString());
+            record.setPlatformMoney(record.getRealPayAmount().subtract(record.getCommissionAmount()==null?BigDecimal.ZERO:record.getCommissionAmount()));
+            AppUser byId1 = remoteAppUserService.getAppUserById(record.getAppUserId()+"").getData();
+            if (Objects.nonNull(byId1)){
+                record.setUserName(byId1.getNickname());
+                record.setCellPhone(byId1.getCellPhone());
+            }
+            if (record.getOrderFrom()!=null){
+                switch (record.getOrderFrom()){
+                    case 1:
+                        Meditation data = remoteMeditationService.getMeditationById(record.getBusinessId()).getData();
+                        if (data!=null){
+                            record.setCategoryMeditationName(data.getCategoryName());
+                            record.setMeditationTitle(data.getMeditationTitle());
+                            record.setIconUrl(data.getIconUrl());
+                            record.setDetailDescription(data.getDetailDescription());
+                            record.setGeneralPriceMeditation(data.getGeneralPrice());
+                            record.setListingStatusMeditation(data.getListingStatus());
+                            record.setMeditationUid(data.getId()+"");
+                        }
+                        break;
+                    case 2:
+                        Course data1 = remoteCourseService.getCourseById(record.getBusinessId()).getData();
+                        if (data1!=null){
+                            record.setCategoryCourseName(data1.getCategoryName());
+                            record.setCourseTitle(data1.getCourseTitle());
+                            record.setCoverUrl(data1.getCoverUrl());
+                            record.setTutor(data1.getTutor());
+                            record.setCourseChapterCount(data1.getCourseChapterCount());
+                            record.setGeneralPriceCourse(data1.getGeneralPrice());
+                            record.setListingStatusCourse(data1.getListingStatus());
+                            record.setCourseUid(data1.getId()+"");
+                        }
+                        break;
+                    case 3:
+                        record.setBuyContent(record.getVipType());
+                        record.setGeneralPriceVip(record.getRealPayAmount());
+                        break;
+                    case 4:
+                        record.setBuyContent("充值");
+                        record.setPlatformMoney(record.getRealPayAmount()!=null?record.getRealPayAmount()
+                                .subtract(record.getCommissionAmount()!=null?record.getCommissionAmount():BigDecimal.ZERO):BigDecimal.ZERO);
+                        break;
+                }
+            }
+        }
+        // 手动分页
+        List<Order> testing = testing(page.size(), courseDTO.getPageCurr(), courseDTO.getPageSize(), page);
+        objectPage.setRecords(testing);
+        return R.ok(objectPage);
+    }
+    @PostMapping("/waterListTest")
+    @ApiOperation(value = "测试手动分页-分页", tags = {"管理后台-测试接口"})
+    public R<List<Order>> waterListTest(@RequestBody OrderListDTO courseDTO) {
+        List<Order> list = orderService.list(null);
+        return R.ok(testing(list.size(), courseDTO.getPageCurr(), courseDTO.getPageSize(), list));
+    }
+    public static List<Order> testing(long total, long current, long size, List<Order> str){
+        List<Order> result = new ArrayList<>();
+        //获取初始化分页结构
+        Page<Order> page = new Page<>(current - 1, size, total);
+        //获取集合下标初始值
+        long startIndex = (current - 1) * size;
+        //获取集合下标结束值
+        long endInddex = 0;
+        if(startIndex + page.getCurrent() >= total || size > total){
+            endInddex = total;
+        }else {
+            endInddex = Math.min(startIndex + page.getSize(), total);
+        }
+        //如果输入的开始查询下标大于集合大小,则查询为空值
+        if(startIndex > total){
+            result = Collections.emptyList();
+        }else{
+            result = str.subList((int)startIndex,(int)endInddex);
+        }
+        return result;
+    }
+    @PostMapping("/waterCount")
+    @ApiOperation(value = "收支流水列表上方合计数据", tags = {"管理后台-财务管理"})
+    public R<OrderCountVO> waterCount(@RequestBody OrderListDTO courseDTO) {
+        OrderCountVO orderCountVO = new OrderCountVO();
+        String startTime = null;
+        String endTime = null;
+        if (org.springframework.util.StringUtils.hasLength(courseDTO.getTime())){
+            String[] split = courseDTO.getTime().split(" - ");
+            startTime = split[0]+"00:00:00";
+            endTime = split[1]+"23:59:59";
+        }
+        List<Integer> payType1 = new ArrayList<>();
+        payType1.add(1);
+        payType1.add(5);
+        List<Integer> payType2 = new ArrayList<>();
+        payType2.add(2);
+        payType2.add(6);
+        List<Integer> payType3 = new ArrayList<>();
+        payType3.add(3);
+        payType3.add(7);
+        List<Integer> payType4 = new ArrayList<>();
+        payType3.add(4);
+        payType3.add(5);
+        payType3.add(6);
+        payType3.add(7);
+        LambdaQueryWrapper<Order> courseLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        courseLambdaQueryWrapper.between(Order::getCreateTime, startTime, endTime);
+        if (courseDTO.getPayType()!=null){
+            switch (courseDTO.getPayType()){
+                case 1:
+                    courseLambdaQueryWrapper.in(Order::getPayType,payType1);
+                    break;
+                case 2:
+                    courseLambdaQueryWrapper.in(Order::getPayType,payType2);
+                    break;
+                case 3:
+                    courseLambdaQueryWrapper.in(Order::getPayType,payType3);
+                    break;
+                case 4:
+                    courseLambdaQueryWrapper.in(Order::getPayType,payType4);
+                    break;
+            }
+
+        }
+        courseLambdaQueryWrapper.eq(courseDTO.getPaymentStatus()!=null,Order::getPaymentStatus, courseDTO.getPaymentStatus());
+        courseLambdaQueryWrapper.eq(courseDTO.getOrderFrom()!=null,Order::getOrderFrom, courseDTO.getOrderFrom());
+        if (org.springframework.util.StringUtils.hasLength(courseDTO.getBuyContent())){
+            // 查询购买内容
+            List<Long> collect1 = orderService.lambdaQuery().like(Order::getVipType, courseDTO.getBuyContent()).list().stream()
+                    .map(Order::getId).collect(Collectors.toList());
+            List<Long> collect2 = orderService.lambdaQuery().like(Order::getBizOrderNo, courseDTO.getBuyContent()).list().stream()
+                    .map(Order::getId).collect(Collectors.toList());
+            List<Long> data = remoteCourseService.getCourseIdsByName(courseDTO.getBuyContent()).getData();
+            if (!data.isEmpty()){
+                List<Long> collect3 = orderService.lambdaQuery().in(Order::getBusinessId, data)
+                        .eq(Order::getOrderFrom, 2)
+                        .list().stream()
+                        .map(Order::getId).collect(Collectors.toList());
+                if (!collect3.isEmpty()){
+                    collect1.addAll(collect3);
+                }
+            }
+            List<Long> data1 = remoteMeditationService.getMeditationIdsByName(courseDTO.getBuyContent()).getData();
+            if (!data1.isEmpty()){
+                List<Long> collect3 = orderService.lambdaQuery().in(Order::getBusinessId, data1)
+                        .eq(Order::getOrderFrom, 1)
+                        .list().stream()
+                        .map(Order::getId).collect(Collectors.toList());
+                if (!collect3.isEmpty()){
+                    collect1.addAll(collect3);
+                }
+            }
+
+            collect1.addAll(collect2);
+            List<Long> collect = collect1.stream().distinct().collect(Collectors.toList());
+            if (collect.isEmpty()){
+                collect.add(-1L);
+            }
+            courseLambdaQueryWrapper.in(Order::getId,collect);
+        }
+        courseLambdaQueryWrapper.orderByDesc(Order::getCreateTime);
+        if (org.springframework.util.StringUtils.hasLength(courseDTO.getUserNameOrPhone())){
+            List<Long> collect = remoteAppUserService.getAppUserByNameOrPhone(courseDTO.getUserNameOrPhone()).getData();
+            if (collect.isEmpty()){
+                collect.add(-1L);
+            }
+            courseLambdaQueryWrapper.in(Order::getAppUserId, collect);
+        }
+        List<Order> page = orderService.list(courseLambdaQueryWrapper);
+        List<AppUserWithdraw> data2 = remoteAppUserService.getWithdraw(courseDTO).getData();
+        for (AppUserWithdraw appUserWithdraw : data2) {
+            Order order = new Order();
+            order.setId(appUserWithdraw.getId());
+            order.setBizOrderNo(appUserWithdraw.getCode());
+            order.setUid(appUserWithdraw.getId()+"");
+            order.setBuyContent("提现");
+            order.setAppUserId(appUserWithdraw.getAppUserId());
+            order.setOrderFrom(5);
+            order.setPaymentStatus(appUserWithdraw.getWithdrawStatus()+1);
+            order.setPayType(4);
+            order.setTotalAmount(appUserWithdraw.getAmount());
+            order.setRealPayAmount(appUserWithdraw.getAmount());
+            order.setPlatformMoney(appUserWithdraw.getAmount().multiply(new BigDecimal("-1")));
+            order.setPaymentTime(appUserWithdraw.getWithdrawTime());
+            order.setCreateTime(appUserWithdraw.getCreateTime());
+            page.add(order);
+        }
+        Integer payCount = 0;
+        Integer completeCount = 0;
+        Integer cancelCount = 0;
+        BigDecimal totalMoney = new BigDecimal("0");
+        for (Order record : page) {
+            if (record.getPaymentStatus()!=null){
+                switch (record.getPaymentStatus()){
+                    case 1:
+                        payCount++;
+                        break;
+                    case 2:
+                        completeCount++;
+                        break;
+                    case 3:
+                        cancelCount++;
+                        break;
+                }
+            }
+            if (record.getRealPayAmount()!=null&& record.getRefundStatus()!=null && record.getRefundStatus()!=3){
+                totalMoney = totalMoney.add(record.getRealPayAmount());
+            }
+        }
+        orderCountVO.setTotalCount(page.size());
+        orderCountVO.setPayCount(payCount);
+        orderCountVO.setCompleteCount(completeCount);
+        orderCountVO.setCancelCount(cancelCount);
+        orderCountVO.setTotalMoney(totalMoney);
+        return R.ok(orderCountVO);
+    }
+
+
+    @PutMapping("/exportOrder")
+    @ApiOperation(value = "订单列表-导出", tags = {"管理后台-订单列表管理"})
+    public void exportOrder(@RequestBody OrderListDTO courseDTO) {
+        String startTime = null;
+        String endTime = null;
+        if (org.springframework.util.StringUtils.hasLength(courseDTO.getTime())){
+            String[] split = courseDTO.getTime().split(" - ");
+            startTime = split[0]+"00:00:00";
+            endTime = split[1]+"23:59:59";
+        }
+        List<Integer> payType1 = new ArrayList<>();
+        payType1.add(1);
+        payType1.add(5);
+        List<Integer> payType2 = new ArrayList<>();
+        payType2.add(2);
+        payType2.add(6);
+        List<Integer> payType3 = new ArrayList<>();
+        payType3.add(3);
+        payType3.add(7);
+        List<Integer> payType4 = new ArrayList<>();
+        payType3.add(4);
+        payType3.add(5);
+        payType3.add(6);
+        payType3.add(7);
+        LambdaQueryWrapper<Order> courseLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        if (StringUtils.hasLength(courseDTO.getIds())){
+            courseLambdaQueryWrapper.in(Order::getId, Arrays.asList(courseDTO.getIds().split(",")));
+        }
+        if (startTime!=null){
+            courseLambdaQueryWrapper.between(Order::getCreateTime, startTime, endTime);
+        }
+        if (courseDTO.getPayType()!=null){
+            switch (courseDTO.getPayType()){
+                case 1:
+                    courseLambdaQueryWrapper.in(Order::getPayType,payType1);
+                    break;
+                case 2:
+                    courseLambdaQueryWrapper.in(Order::getPayType,payType2);
+                    break;
+                case 3:
+                    courseLambdaQueryWrapper.in(Order::getPayType,payType3);
+                    break;
+                case 4:
+                    courseLambdaQueryWrapper.in(Order::getPayType,payType4);
+                    break;
+            }
+        }
+        courseLambdaQueryWrapper.ne(Order::getOrderFrom, 4);
+        courseLambdaQueryWrapper.ne(Order::getOrderFrom, 5);
+        courseLambdaQueryWrapper.eq(courseDTO.getPaymentStatus()!=null,Order::getPaymentStatus, courseDTO.getPaymentStatus());
+        courseLambdaQueryWrapper.eq(courseDTO.getOrderFrom()!=null,Order::getOrderFrom, courseDTO.getOrderFrom());
+        courseLambdaQueryWrapper.eq(courseDTO.getUid()!=null&&(!courseDTO.getUid().isEmpty()),Order::getAppUserId, courseDTO.getUid());
+        if (org.springframework.util.StringUtils.hasLength(courseDTO.getBuyContent())){
+            // 查询购买内容
+            List<Long> collect1 = orderService.lambdaQuery().like(Order::getVipType, courseDTO.getBuyContent()).list().stream()
+                    .map(Order::getId).collect(Collectors.toList());
+            List<Long> collect2 = orderService.lambdaQuery().like(Order::getBizOrderNo, courseDTO.getBuyContent()).list().stream()
+                    .map(Order::getId).collect(Collectors.toList());
+            List<Long> data = remoteCourseService.getCourseIdsByName(courseDTO.getBuyContent()).getData();
+            if (!data.isEmpty()){
+                List<Long> collect3 = orderService.lambdaQuery().in(Order::getBusinessId, data)
+                        .eq(Order::getOrderFrom, 2)
+                        .list().stream()
+                        .map(Order::getId).collect(Collectors.toList());
+                if (!collect3.isEmpty()){
+                    collect1.addAll(collect3);
+                }
+            }
+            List<Long> data1 = remoteMeditationService.getMeditationIdsByName(courseDTO.getBuyContent()).getData();
+            if (!data1.isEmpty()){
+                List<Long> collect3 = orderService.lambdaQuery().in(Order::getBusinessId, data1)
+                        .eq(Order::getOrderFrom, 1)
+                        .list().stream()
+                        .map(Order::getId).collect(Collectors.toList());
+                if (!collect3.isEmpty()){
+                    collect1.addAll(collect3);
+                }
+            }
+
+            collect1.addAll(collect2);
+            List<Long> collect = collect1.stream().distinct().collect(Collectors.toList());
+            if (collect.isEmpty()){
+                collect.add(-1L);
+            }
+            courseLambdaQueryWrapper.in(Order::getId,collect);
+        }
+
+        courseLambdaQueryWrapper.orderByDesc(Order::getCreateTime);
+        if (org.springframework.util.StringUtils.hasLength(courseDTO.getUserNameOrPhone())){
+            List<Long> collect = remoteAppUserService.getAppUserByNameOrPhone(courseDTO.getUserNameOrPhone()).getData();
+            if (collect.isEmpty()){
+                collect.add(-1L);
+            }
+            courseLambdaQueryWrapper.in(Order::getAppUserId, collect);
+        }
+
+        List<Order> page = orderService.list(courseLambdaQueryWrapper);
+        List<OrderExport> orderExports = new ArrayList<>();
+        for (Order record : page) {
+            record.setUid(record.getId().toString());
+            AppUser byId1 = remoteAppUserService.getAppUserById(record.getAppUserId()+"").getData();
+
+            if (record.getOrderFrom()!=null){
+                switch (record.getOrderFrom()){
+                    case 1:
+                        Meditation data = remoteMeditationService.getMeditationById(record.getBusinessId()).getData();
+                        if (data!=null){
+                            record.setCategoryMeditationName(data.getCategoryName());
+                            record.setMeditationTitle(data.getMeditationTitle());
+                            record.setIconUrl(data.getIconUrl());
+                            record.setDetailDescription(data.getDetailDescription());
+                            record.setGeneralPriceMeditation(data.getGeneralPrice());
+                            record.setListingStatusMeditation(data.getListingStatus());
+                            record.setMeditationUid(data.getId()+"");
+                        }
+                        break;
+                    case 2:
+                        Course data1 = remoteCourseService.getCourseById(record.getBusinessId()).getData();
+                        if (data1!=null){
+                            record.setCategoryCourseName(data1.getCategoryName());
+                            record.setCourseTitle(data1.getCourseTitle());
+                            record.setCoverUrl(data1.getCoverUrl());
+                            record.setTutor(data1.getTutor());
+                            record.setCourseChapterCount(data1.getCourseChapterCount());
+                            record.setGeneralPriceCourse(data1.getGeneralPrice());
+                            record.setListingStatusCourse(data1.getListingStatus());
+                            record.setCourseUid(data1.getId()+"");
+                        }
+                        break;
+                    case 3:
+                        record.setBuyContent(record.getVipType());
+                        record.setGeneralPriceVip(record.getRealPayAmount());
+                        break;
+                }
+            }
+            OrderExport orderExport = new OrderExport();
+            orderExport.setCode(record.getBizOrderNo());
+            if (Objects.nonNull(byId1)){
+                record.setUserName(byId1.getNickname());
+                record.setCellPhone(byId1.getCellPhone());
+                orderExport.setUserName(byId1.getNickname());
+                orderExport.setCellphone(byId1.getCellPhone());
+            }
+            orderExport.setRealPayAmount("¥"+record.getRealPayAmount());
+            orderExport.setBuyContent(record.getBuyContent());
+            orderExport.setOrderFrom(record.getOrderFrom()+"");
+            orderExport.setPayType(record.getPayType());
+            DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+            String format = df.format(record.getCreateTime());
+            orderExport.setCreateTime(format);
+            orderExport.setPaymentStatus(record.getPaymentStatus()+"");
+            orderExports.add(orderExport);
+        }
+        Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), OrderExport.class, orderExports);
+        HttpServletResponse response = WebUtils.response();
+        response.setContentType("application/vnd.ms-excel");
+        response.setCharacterEncoding("utf-8");
+        ServletOutputStream outputStream = null;
+        try {
+            String fileName = URLEncoder.encode("订单管理导出.xls", "utf-8");
+            response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
+            response.setContentType("application/vnd.ms-excel;charset=UTF-8");
+            response.setHeader("Pragma", "no-cache");
+            response.setHeader("Cache-Control", "no-cache");
+            outputStream = response.getOutputStream();
+            workbook.write(outputStream);
+        } catch (IOException e) {
+            e.printStackTrace();
+        } finally {
+            try {
+                outputStream.close();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+    }
     @PostMapping("/orderList")
     @ApiOperation(value = "订单列表管理列表-分页", tags = {"管理后台-订单列表管理"})
     public R<PageDTO<Order>> orderList(@RequestBody OrderListDTO courseDTO) {
@@ -73,10 +893,17 @@
         payType2.add(2);
         payType2.add(6);
         List<Integer> payType3 = new ArrayList<>();
+        payType3.add(3);
+        payType3.add(7);
+        List<Integer> payType4 = new ArrayList<>();
         payType3.add(4);
+        payType3.add(5);
+        payType3.add(6);
         payType3.add(7);
         LambdaQueryWrapper<Order> courseLambdaQueryWrapper = new LambdaQueryWrapper<>();
-        courseLambdaQueryWrapper.between(Order::getCreateTime, startTime, endTime);
+        if (startTime!=null){
+            courseLambdaQueryWrapper.between(Order::getCreateTime, startTime, endTime);
+        }
         if (courseDTO.getPayType()!=null){
             switch (courseDTO.getPayType()){
                 case 1:
@@ -86,14 +913,15 @@
                     courseLambdaQueryWrapper.in(Order::getPayType,payType2);
                     break;
                 case 3:
-                    courseLambdaQueryWrapper.eq(Order::getPayType,courseDTO.getPayType());
-                    break;
-                case 4:
                     courseLambdaQueryWrapper.in(Order::getPayType,payType3);
                     break;
+                case 4:
+                    courseLambdaQueryWrapper.in(Order::getPayType,payType4);
+                    break;
             }
-
         }
+        courseLambdaQueryWrapper.ne(Order::getOrderFrom, 4);
+        courseLambdaQueryWrapper.ne(Order::getOrderFrom, 5);
         courseLambdaQueryWrapper.eq(courseDTO.getPaymentStatus()!=null,Order::getPaymentStatus, courseDTO.getPaymentStatus());
         courseLambdaQueryWrapper.eq(courseDTO.getOrderFrom()!=null,Order::getOrderFrom, courseDTO.getOrderFrom());
         courseLambdaQueryWrapper.eq(courseDTO.getUid()!=null&&(!courseDTO.getUid().isEmpty()),Order::getAppUserId, courseDTO.getUid());
@@ -151,6 +979,7 @@
             if (Objects.nonNull(byId1)){
                 record.setUserName(byId1.getNickname());
                 record.setCellPhone(byId1.getCellPhone());
+                record.setAvatar(byId1.getAvatar());
             }
             if (record.getOrderFrom()!=null){
                 switch (record.getOrderFrom()){
@@ -167,7 +996,7 @@
                         }
                         break;
                     case 2:
-                        Course data1 = remoteCourseService.getCourseById(record.getBusinessId(),"").getData();
+                        Course data1 = remoteCourseService.getCourseById(record.getBusinessId()).getData();
                         if (data1!=null){
                             record.setCategoryCourseName(data1.getCategoryName());
                             record.setCourseTitle(data1.getCourseTitle());
@@ -207,7 +1036,12 @@
         payType2.add(2);
         payType2.add(6);
         List<Integer> payType3 = new ArrayList<>();
+        payType3.add(3);
+        payType3.add(7);
+        List<Integer> payType4 = new ArrayList<>();
         payType3.add(4);
+        payType3.add(5);
+        payType3.add(6);
         payType3.add(7);
         LambdaQueryWrapper<Order> courseLambdaQueryWrapper = new LambdaQueryWrapper<>();
         courseLambdaQueryWrapper.between(Order::getCreateTime, startTime, endTime);
@@ -220,14 +1054,15 @@
                     courseLambdaQueryWrapper.in(Order::getPayType,payType2);
                     break;
                 case 3:
-                    courseLambdaQueryWrapper.eq(Order::getPayType,courseDTO.getPayType());
-                    break;
-                case 4:
                     courseLambdaQueryWrapper.in(Order::getPayType,payType3);
                     break;
+                case 4:
+                    courseLambdaQueryWrapper.in(Order::getPayType,payType4);
+                    break;
             }
-
         }
+        courseLambdaQueryWrapper.ne(Order::getOrderFrom, 4);
+        courseLambdaQueryWrapper.ne(Order::getOrderFrom, 5);
         courseLambdaQueryWrapper.eq(courseDTO.getPaymentStatus()!=null,Order::getPaymentStatus, courseDTO.getPaymentStatus());
         courseLambdaQueryWrapper.eq(courseDTO.getOrderFrom()!=null,Order::getOrderFrom, courseDTO.getOrderFrom());
         if (org.springframework.util.StringUtils.hasLength(courseDTO.getBuyContent())){
@@ -304,7 +1139,7 @@
     }
 
     @GetMapping("/detailOrder")
-    @ApiOperation(value = "查看详情订单列表管理", notes = "管理后台-订单列表管理")
+    @ApiOperation(value = "查看详情订单列表管理", tags = "管理后台-订单列表管理")
     public R<Order> detailOrder(String uid) {
         Order record = orderService.getById(uid);
         if (record.getOrderFrom()!=null){
@@ -319,10 +1154,12 @@
                         record.setGeneralPriceMeditation(data.getGeneralPrice());
                         record.setListingStatusMeditation(data.getListingStatus());
                         record.setMeditationUid(data.getId()+"");
+                        record.setUuid(data.getId()+"");
+
                     }
                     break;
                 case 2:
-                    Course data1 = remoteCourseService.getCourseById(record.getBusinessId(),"").getData();
+                    Course data1 = remoteCourseService.getCourseById(record.getBusinessId()).getData();
                     if (data1!=null){
                         record.setCategoryCourseName(data1.getCategoryName());
                         record.setCourseTitle(data1.getCourseTitle());
@@ -332,6 +1169,8 @@
                         record.setGeneralPriceCourse(data1.getGeneralPrice());
                         record.setListingStatusCourse(data1.getListingStatus());
                         record.setCourseUid(data1.getId()+"");
+                        record.setType(data1.getCourseType()+"");
+                        record.setUuid(data1.getId()+"");
                     }
                     break;
                 case 3:
@@ -403,10 +1242,10 @@
                         case 2:
                             record.setPaymentType("支付宝(¥"+record.getRealPayAmount()+")");
                             break;
-                        case 3:
+                        case 4:
                             record.setPaymentType("余额(¥"+record.getRealPayAmount()+")");
                             break;
-                        case 4:
+                        case 3:
                             record.setPaymentType("内购(¥"+record.getRealPayAmount()+")");
                             break;
                     }
@@ -416,12 +1255,41 @@
         return R.ok(record);
     }
     @GetMapping("/cancel")
-    @ApiOperation(value = "取消订单", notes = "管理后台-订单列表管理")
+    @ApiOperation(value = "取消订单", tags = "管理后台-订单列表管理")
     public R updateState(String uid) {
         Order byId = orderService.getById(uid);
         byId.setPaymentStatus(3);
         orderService.updateById(byId);
         return R.ok();
     }
+    @GetMapping("/getChangeMoney")
+    @ApiOperation(value = "获取改价页面数据", tags = "管理后台-订单列表管理")
+    public R<Order> getChangeMoney(String uid) {
+        Order byId = orderService.getById(uid);
+        AppUser data = remoteAppUserService.getAppUserById(byId.getAppUserId() + "").getData();
+        if (data!=null){
+            byId.setCellPhone(data.getCellPhone());
+            byId.setUserName(data.getNickname());
+            byId.setAvatar(data.getAvatar());
+        }
+        return R.ok(byId);
+    }
+    @Autowired
+    private TokenService tokenService;
+    @GetMapping("/ChangeMoney")
+    @ApiOperation(value = "改价", tags = "管理后台-订单列表管理")
+    public R ChangeMoney(String uid,String amount) {
+        Order byId = orderService.getById(uid);
+        byId.setChangePrice(new BigDecimal(amount));
+        byId.setChangePriceTime(LocalDateTime.now());
+        byId.setRealPayAmount(byId.getTotalAmount().add(byId.getChangePrice()));
+        LoginUser loginUser = tokenService.getLoginUser();
+        if (loginUser==null){
+            return R.tokenError("登录失效");
+        }
+        byId.setChangePriceOperator(loginUser.getUserid());
+        orderService.updateById(byId);
+        return R.ok();
+    }
 }
 

--
Gitblit v1.7.1