From bc56870059cca013649077af0e53891cba8dbfd1 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期日, 04 八月 2024 09:43:41 +0800
Subject: [PATCH] 代理新功能完善

---
 src/main/java/com/taoke/autopay/controller/admin/AdminOrderController.java |  394 ++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 227 insertions(+), 167 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 dbe864d..bf09273 100644
--- a/src/main/java/com/taoke/autopay/controller/admin/AdminOrderController.java
+++ b/src/main/java/com/taoke/autopay/controller/admin/AdminOrderController.java
@@ -10,9 +10,12 @@
 import com.taoke.autopay.dto.admin.OrderExcelDataDto;
 import com.taoke.autopay.entity.ClientInfo;
 import com.taoke.autopay.entity.KeyOrder;
+import com.taoke.autopay.entity.OrderChannelEnum;
+import com.taoke.autopay.entity.agent.ChannelAgent;
 import com.taoke.autopay.factory.OrderFactory;
 import com.taoke.autopay.service.ClientInfoService;
 import com.taoke.autopay.service.KeyOrderService;
+import com.taoke.autopay.service.agent.ChannelAgentService;
 import com.taoke.autopay.utils.Constant;
 import com.taoke.autopay.utils.TimeUtil;
 import com.taoke.autopay.vo.admin.AdminOrderVO;
@@ -59,195 +62,252 @@
     private KeyOrderService keyOrderService;
     @Resource
     private ClientInfoService clientInfoService;
+    @Resource
+    private ChannelAgentService channelAgentService;
+
+    private KeyOrderMapper.DaoQuery createOrderQuery(OrderSearchVO vo) throws Exception {
+//           <option value="0">鎸夎�侀搧ID</option>
+//						       <option value="1">鎸変唬鐞咺D</option>
+//						       <option value="2">鎸夎鍗曞彿</option>
+        KeyOrderMapper.DaoQuery query = new KeyOrderMapper.DaoQuery();
+        if (!StringUtil.isNullOrEmpty(vo.getKey())) {
+            switch (vo.getKeyType()) {
+                case 0:
+                    // 鑰侀搧ID
+                    if (!NumberUtil.isNumeric(vo.getKey().trim())) {
+                        throw new Exception("鑰侀搧ID蹇呴』涓烘暟瀛�");
+                    }
+                    query.uid = Long.parseLong(vo.getKey());
+                    break;
+                case 1:
+                    // 浠g悊ID
+                    if (!NumberUtil.isNumeric(vo.getKey().trim())) {
+                        throw new Exception("浠g悊ID蹇呴』涓烘暟瀛�");
+                    }
+                    query.agentId = Long.parseLong(vo.getKey().trim());
+                    break;
+                case 2:
+                    // 璁㈠崟鍙�
+                    query.orderNo = vo.getKey().trim();
+                case 3:
+                    // 鏀粯璁惧ID
+                    if (!NumberUtil.isNumeric(vo.getKey().trim())) {
+                        throw new Exception("鏀粯璁惧ID蹇呴』涓烘暟瀛�");
+                    }
+                    query.distributeClientUid = Long.parseLong(vo.getKey().trim());
+            }
+
+        }
+
+        if (!StringUtil.isNullOrEmpty(vo.getState())) {
+            query.state = Integer.parseInt(vo.getState());
+        }
+
+        if (!StringUtil.isNullOrEmpty(vo.getOrderChannel())) {
+
+            query.orderChannel = OrderChannelEnum.valueOf(vo.getOrderChannel()).getKey();
+
+        }
+
+        if (!StringUtil.isNullOrEmpty(vo.getStartDate())) {
+            query.minCreateTime = new Date(TimeUtil.convertToTimeTemp(vo.getStartDate(), "yyyy-MM-dd"));
+        }
+        if (!StringUtil.isNullOrEmpty(vo.getEndDate())) {
+            query.maxCreateTime = TimeUtil.getNextDay(1, new Date(TimeUtil.convertToTimeTemp(vo.getEndDate(), "yyyy-MM-dd")).getTime());
+        }
+
+        return query;
+
+    }
 
 
     @ResponseBody
     @RequestMapping("list")
     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(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());
-        }
-
-        List<KeyOrder> orderList = keyOrderService.list(query);
-        long count = keyOrderService.count(query);
-        Map<Long, ClientInfo> clientMap = new HashMap<>();
-        if (orderList.size() > 0) {
-            List<Long> cids = new ArrayList<>();
-            for (KeyOrder u : orderList) {
-                if (u.getDistributeClientUid() != null) {
-                    cids.add(u.getDistributeClientUid());
+        try {
+            KeyOrderMapper.DaoQuery query = createOrderQuery(search);
+            query.sortList = Arrays.asList(new String[]{"create_time desc"});
+            query.start = (page - 1) * limit;
+            query.count = limit;
+            List<KeyOrder> orderList = keyOrderService.list(query);
+            long count = keyOrderService.count(query);
+            // 缁熻璁惧
+            Map<Long, ClientInfo> clientMap = new HashMap<>();
+            if (orderList.size() > 0) {
+                List<Long> cids = new ArrayList<>();
+                for (KeyOrder u : orderList) {
+                    if (u.getDistributeClientUid() != null) {
+                        cids.add(u.getDistributeClientUid());
+                    }
+                }
+                List<ClientInfo> clients = clientInfoService.listByIds(cids);
+                for (ClientInfo client : clients) {
+                    clientMap.put(client.getId(), client);
                 }
             }
-            List<ClientInfo> clients = clientInfoService.listByIds(cids);
-            for (ClientInfo client : clients) {
-                clientMap.put(client.getId(), client);
+            // 缁熻浠g悊淇℃伅
+            Map<Long, ChannelAgent> agentMap = new HashMap<>();
+            List<Long> agengIds = new ArrayList<>();
+            for (KeyOrder u : orderList) {
+                if (u.getAgentId() != null) {
+                    agengIds.add(u.getAgentId());
+                }
             }
-        }
+            List<ChannelAgent> agents = channelAgentService.listByIds(agengIds);
+            for (ChannelAgent agent : agents) {
+                agentMap.put(agent.getId(), agent);
+            }
 
-        // 杞瑅o
-        List<AdminOrderVO> voList = new ArrayList<>();
-        for (KeyOrder order : orderList) {
-            voList.add(OrderFactory.createAdminVO(order, clientMap.get(order.getDistributeClientUid())));
+
+            // 杞瑅o
+            List<AdminOrderVO> voList = new ArrayList<>();
+            for (KeyOrder order : orderList) {
+                voList.add(OrderFactory.createAdminVO(order, clientMap.get(order.getDistributeClientUid()), agentMap.get(order.getAgentId())));
+            }
+            JSONObject data = new JSONObject();
+            data.put("count", count);
+            data.put("list", gson.toJson(voList));
+            return JsonUtil.loadTrueResult(data);
+        }catch(Exception e){
+            return JsonUtil.loadFalseResult(e.getMessage());
         }
-        JSONObject data = new JSONObject();
-        data.put("count", count);
-        data.put("list", gson.toJson(voList));
-        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"});
+        try {
+            KeyOrderMapper.DaoQuery query = createOrderQuery(search);
+            query.sortList = Arrays.asList(new String[]{"create_time desc"});
+            long count = keyOrderService.count(query);
 
-        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);
+            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<>();
+            // 缁熻浠g悊淇℃伅
+            Map<Long, ChannelAgent> agentMap = new HashMap<>();
+            List<Long> agengIds = new ArrayList<>();
+            for (KeyOrder u : orderList) {
+                if (u.getAgentId() != null) {
+                    agengIds.add(u.getAgentId());
                 }
             }
+            List<ChannelAgent> agents = channelAgentService.listByIds(agengIds);
+            for (ChannelAgent agent : agents) {
+                agentMap.put(agent.getId(), agent);
+            }
 
+            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.setAgent(agentMap.get(order.getAgentId()) == null ? "" : agentMap.get(order.getAgentId()).getName());
+                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);
+        }catch(Exception e){
+           response.sendError(402,e.getMessage());
         }
-        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