From bd014bc7bfbc43a071f682f25b473a1cf103027e Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 25 七月 2024 12:41:52 +0800
Subject: [PATCH] 代理新功能完善

---
 src/main/java/com/taoke/autopay/controller/admin/AdminOrderController.java |  162 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 157 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/taoke/autopay/controller/admin/AdminOrderController.java b/src/main/java/com/taoke/autopay/controller/admin/AdminOrderController.java
index 3186117..e6d2fb9 100644
--- a/src/main/java/com/taoke/autopay/controller/admin/AdminOrderController.java
+++ b/src/main/java/com/taoke/autopay/controller/admin/AdminOrderController.java
@@ -1,17 +1,22 @@
 package com.taoke.autopay.controller.admin;
 
+import com.alibaba.excel.EasyExcel;
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
 import com.google.gson.TypeAdapter;
 import com.google.gson.stream.JsonReader;
 import com.google.gson.stream.JsonWriter;
+import com.sun.org.apache.bcel.internal.generic.BREAKPOINT;
 import com.taoke.autopay.dao.KeyOrderMapper;
+import com.taoke.autopay.dto.admin.OrderExcelDataDto;
 import com.taoke.autopay.entity.*;
 import com.taoke.autopay.factory.OrderFactory;
 import com.taoke.autopay.service.ClientInfoService;
 import com.taoke.autopay.service.KeyOrderService;
+import com.taoke.autopay.utils.Constant;
 import com.taoke.autopay.utils.TimeUtil;
 import com.taoke.autopay.vo.admin.AdminOrderVO;
+import com.taoke.autopay.vo.admin.OrderSearchVO;
 import net.sf.json.JSONObject;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -21,7 +26,10 @@
 import org.yeshi.utils.StringUtil;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
+import java.math.BigDecimal;
+import java.net.URLEncoder;
 import java.util.*;
 
 @Controller
@@ -55,20 +63,27 @@
 
     @ResponseBody
     @RequestMapping("list")
-    public String listOrder(String key, int page, int limit) {
+    public String listOrder(OrderSearchVO search, int page, int limit) {
         //鍏堟煡璇㈡墍鏈夌殑鏁版嵁
         KeyOrderMapper.DaoQuery query = new KeyOrderMapper.DaoQuery();
         query.sortList=Arrays.asList(new String[]{"create_time desc"});
         query.start = (page - 1) * limit;
         query.count = limit;
-        if (!StringUtil.isNullOrEmpty(key)) {
-            if (key.length() > 10 || !NumberUtil.isNumeric(key.trim())) {
+        if (!StringUtil.isNullOrEmpty(search.getKey())) {
+            if (search.getKey().length() > 10 || !NumberUtil.isNumeric(search.getKey().trim())) {
                 // 璁㈠崟鍙�
-                query.orderNo = key.trim();
+                query.orderNo = search.getKey().trim();
             } else {
                 // 鐢ㄦ埛ID
-                query.uid = Long.parseLong(key.trim());
+                query.uid = Long.parseLong(search.getKey().trim());
             }
+        }
+
+        if (!StringUtil.isNullOrEmpty(search.getStartDate())) {
+            query.minCreateTime =new Date(TimeUtil.convertToTimeTemp(search.getStartDate(),"yyyy-MM-dd"));
+        }
+        if (!StringUtil.isNullOrEmpty(search.getEndDate())) {
+            query.maxCreateTime =TimeUtil.getNextDay(1,new Date(TimeUtil.convertToTimeTemp(search.getEndDate(),"yyyy-MM-dd")).getTime());
         }
 
         List<KeyOrder> orderList = keyOrderService.list(query);
@@ -98,4 +113,141 @@
         return JsonUtil.loadTrueResult(data);
     }
 
+
+
+    @RequestMapping("downLoadOrder")
+    public void downLoadOrder(OrderSearchVO search, HttpServletResponse response) throws IOException {
+        KeyOrderMapper.DaoQuery query = new KeyOrderMapper.DaoQuery();
+        if (!StringUtil.isNullOrEmpty(search.getKey())) {
+            if (search.getKey().length() > 10 || !NumberUtil.isNumeric(search.getKey().trim())) {
+                // 璁㈠崟鍙�
+                query.orderNo = search.getKey().trim();
+            } else {
+                // 鐢ㄦ埛ID
+                query.uid = Long.parseLong(search.getKey().trim());
+            }
+        }
+        if (!StringUtil.isNullOrEmpty(search.getStartDate())) {
+            query.minCreateTime =new Date(TimeUtil.convertToTimeTemp(search.getStartDate(),"yyyy-MM-dd"));
+        }
+        if (!StringUtil.isNullOrEmpty(search.getEndDate())) {
+            query.maxCreateTime =TimeUtil.getNextDay(1,new Date(TimeUtil.convertToTimeTemp(search.getEndDate(),"yyyy-MM-dd")).getTime());
+        }
+        query.sortList=Arrays.asList(new String[]{"create_time desc"});
+
+        long count = keyOrderService.count(query);
+
+        query.start=0;
+        query.count = (int)count;
+        List<KeyOrder> orderList = keyOrderService.list(query);
+        // 缁熻璁㈠崟涓庨噾棰�
+        Map<Long,Integer> userOrderCountMap=new HashMap<>();
+        Map<Long, BigDecimal> userOrderMoneyMap=new HashMap<>();
+        Map<Long, ClientInfo> payDeviceMap=new HashMap<>();
+
+        List<OrderExcelDataDto> dataList=new ArrayList<>();
+        for(KeyOrder order:orderList){
+            if(!userOrderCountMap.containsKey(order.getUid())){
+                userOrderCountMap.put(order.getUid(),1);
+            }else{
+                userOrderCountMap.put(order.getUid(),  userOrderCountMap.get(order.getUid())+1);
+            }
+            if(!userOrderMoneyMap.containsKey(order.getUid())){
+                userOrderMoneyMap.put(order.getUid(),new BigDecimal(0));
+            }
+            if(order.getOrderMoney()!=null) {
+                userOrderMoneyMap.put(order.getUid(), userOrderMoneyMap.get(order.getUid()).add(order.getOrderMoney()));
+            }
+            if(!payDeviceMap.containsKey(order.getDistributeClientUid())&&order.getDistributeClientUid()!=null) {
+                ClientInfo clientInfo = clientInfoService.selectByPrimaryKey(order.getDistributeClientUid());
+                if(clientInfo!=null) {
+                    payDeviceMap.put(clientInfo.getId(), clientInfo);
+                }
+            }
+
+        }
+        for(KeyOrder order:orderList){
+            OrderExcelDataDto dto=new OrderExcelDataDto();
+            dto.setId(order.getId());
+            dto.setCreateTime(TimeUtil.getGernalTime(order.getCreateTime()));
+            dto.setOrderMoney(order.getOrderMoney()==null?"":order.getOrderMoney().toString());
+            if(order.getOrderChannel()!=null) {
+                switch (order.getOrderChannel()) {
+                    case Constant
+                            .ORDER_CHANNEL_CYX:
+                        dto.setOrderChannel("瓒呬剑浜�");
+                        break;
+                    case Constant
+                            .ORDER_CHANNEL_BPS:
+                        dto.setOrderChannel("鐖嗗搧绀�");
+                        break;
+                    default:
+                        dto.setOrderChannel("");
+                }
+            }else{
+                dto.setOrderChannel("");
+            }
+            dto.setOrderNo(order.getOrderNo());
+            if(order.getOrderType()!=null) {
+                switch (order.getOrderType()) {
+                    case Constant.ORDER_TYPE_DY:
+                        dto.setPlatform("鎶栭煶");
+                        break;
+                    case Constant.ORDER_TYPE_KS:
+                        dto.setPlatform("蹇墜");
+                        break;
+                    default:
+                        dto.setPlatform("");
+                }
+            }else{
+                dto.setPlatform("");
+            }
+
+            if(order.getPayType()!=null) {
+                switch (order.getPayType()) {
+                    case Constant.PAY_TYPE_WITH_ORDER_NO:
+                        dto.setPayType("鎸夎鍗�");
+                        break;
+                    case Constant.PAY_TYPE_WITH_MONEY:
+                        dto.setPayType("鎸夐噾棰�");
+                        break;
+                    default:
+                        dto.setPayType("");
+                }
+            }else{
+                dto.setPayType("");
+            }
+
+            dto.setUid(order.getUid());
+            if(order.getState()==KeyOrder.STATE_PAY){
+                dto.setPaySuccess("鏄�");
+            }else {
+                dto.setPaySuccess("鍚�");
+            }
+            dto.setStateDesc(order.getStateDesc());
+            dto.setTotalCount(userOrderCountMap.get(order.getUid()));
+            dto.setTotalMoney(userOrderMoneyMap.get(order.getUid()).toString());
+            dto.setKey(order.getKey());
+            if(order.getPayTime()!=null){
+                dto.setPayTime(TimeUtil.getGernalTime(order.getPayTime().getTime(),"yyyy-MM-dd HH:mm:ss"));
+            }
+            ClientInfo device = payDeviceMap.get(order.getDistributeClientUid());
+            if(device!=null){
+                dto.setPayDevice(device.getAccount());
+            }else{
+                dto.setPayDevice("");
+            }
+            dataList.add(dto);
+        }
+
+        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+        response.setCharacterEncoding("utf-8");
+        // 杩欓噷URLEncoder.encode鍙互闃叉涓枃涔辩爜 褰撶劧鍜宔asyexcel娌℃湁鍏崇郴
+        String fileName= URLEncoder.encode(TimeUtil.getGernalTime(System.currentTimeMillis(),"yyyyMMdd_HHmmss"),"UTF-8");
+        response.setHeader("Content-disposition","attachment;filename*=utf-8''"+fileName+".xlsx");
+        EasyExcel.write(response.getOutputStream(),OrderExcelDataDto.class).sheet("璁㈠崟").doWrite(dataList);
+    }
+
+
+
 }

--
Gitblit v1.8.0