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