diff --git a/ruoyi-admin/src/main/java/com/ruoyi/business/controller/MeituanController.java b/ruoyi-admin/src/main/java/com/ruoyi/business/controller/MeituanController.java index 713534a..161cbe3 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/business/controller/MeituanController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/business/controller/MeituanController.java @@ -1,11 +1,17 @@ package com.ruoyi.business.controller; +import com.ruoyi.business.domain.BusOrderInfo; import com.ruoyi.business.domain.SysCookie; +import com.ruoyi.business.mapper.BusOrderInfoMapper; +import com.ruoyi.business.service.IBusOrderInfoService; import com.ruoyi.business.service.IMeituanService; import com.ruoyi.common.core.domain.R; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.ArrayList; +import java.util.List; + /** * 采集美团接口 @@ -16,6 +22,7 @@ public class MeituanController { @Autowired private IMeituanService iMeituanService; + /** * 获取cookies * @param cookie @@ -53,8 +60,9 @@ public class MeituanController { * @throws Exception */ @GetMapping("/getPriPhone") - public R priPhone(String orderId, String cookie) { - return iMeituanService.priPhoneInfo(0L,orderId, cookie); + public void priPhone(String orderId, String cookie) { + List list = new ArrayList<>(); + iMeituanService.priPhoneInfo(list, cookie); } /** @@ -82,4 +90,5 @@ public class MeituanController { return iMeituanService.mtgsigInfo(orderId,regionId,regionVersion); } + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/business/service/IMeituanService.java b/ruoyi-system/src/main/java/com/ruoyi/business/service/IMeituanService.java index 57ade0a..0f477fd 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/business/service/IMeituanService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/business/service/IMeituanService.java @@ -1,8 +1,11 @@ package com.ruoyi.business.service; +import com.ruoyi.business.domain.BusOrderInfo; import com.ruoyi.business.domain.SysCookie; import com.ruoyi.common.core.domain.R; +import java.util.List; + public interface IMeituanService { /** * 获取cookie @@ -40,11 +43,11 @@ public interface IMeituanService { /** * 获取号码 - * @param orderId + * @param * @param cookie * @return */ - R priPhoneInfo(Long id, String orderId, String cookie); + void priPhoneInfo(List list, String cookie); /** * 获取mtgsig diff --git a/ruoyi-system/src/main/java/com/ruoyi/business/service/impl/AiServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/business/service/impl/AiServiceImpl.java index 1a4e00b..7ae30a1 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/business/service/impl/AiServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/business/service/impl/AiServiceImpl.java @@ -164,8 +164,8 @@ public class AiServiceImpl implements IAiService aiInfo.setSource(source); try { aiInfoService.insertBusAiInfo(aiInfo); -// long saveId = aiInfo.getId(); -// reduceIntegral(saveId); + long saveId = aiInfo.getId(); + reduceIntegral(saveId); }catch (Exception e) { System.out.println(id+"duplicate"); } @@ -181,18 +181,23 @@ public class AiServiceImpl implements IAiService private void reduceIntegral(long aiId){ BusAiInfo aiInfo = aiInfoService.selectBusAiInfoById(aiId); BusOrderInfo orderInfo = new BusOrderInfo(); - orderInfo.setPrivcyPhone(aiInfo.getPhone()); + orderInfo.setPrivcyPhone(aiInfo.getPhone()+","+aiInfo.getVirtualExtensionNumber()); List temp = orderInfoService.selectBusOrderInfoList(orderInfo); if(temp.size() > 0){ BusStoreInfo storeInfo = new BusStoreInfo(); storeInfo.setStoreCode(temp.get(0).getStoreCode()); List tempStore = storeInfoService.selectBusStoreInfoList(storeInfo); if (tempStore.size() > 0){ - BusAgentInfo agentInfo = agentInfoService.selectBusAgentInfoById(tempStore.get(0).getBindId()); - int a = (Integer.valueOf(aiInfo.getTalktimes())/60)+1; - int reduce = Integer.valueOf(agentInfo.getIntegral()) - a; - agentInfo.setIntegral(String.valueOf(reduce)); - agentInfoService.updateBusAgentInfo(agentInfo); + BusAgentInfo agentInfo = new BusAgentInfo(); + agentInfo.setAgentAccount(tempStore.get(0).getBindUser()); + List agentInfoL = agentInfoService.selectBusAgentInfoList(agentInfo); + if (agentInfoL.size() > 0) { + BusAgentInfo busAgentInfo = agentInfoL.get(0); + int a = (Integer.valueOf(aiInfo.getTalktimes()) / 60) + 1; + int reduce = Integer.valueOf(busAgentInfo.getIntegral()) - a; + busAgentInfo.setIntegral(String.valueOf(reduce)); + agentInfoService.updateBusAgentInfo(busAgentInfo); + } } } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/business/service/impl/MeituanServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/business/service/impl/MeituanServiceImpl.java index 2800a14..f2d97c0 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/business/service/impl/MeituanServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/business/service/impl/MeituanServiceImpl.java @@ -240,6 +240,7 @@ public class MeituanServiceImpl implements IMeituanService { break; } } + orderInfo.setId(new Random().nextLong()); orderInfo.setDayseq(daySeq); orderInfo.setOrderNo(wmOrderViewId); orderInfo.setCompleteTime(expectTime); @@ -259,9 +260,7 @@ public class MeituanServiceImpl implements IMeituanService { // } busOrderInfoMapper.batchInsertOrder(list); - for (BusOrderInfo orderInfo : list) { - priPhoneInfo(orderInfo.getId(),orderInfo.getOrderNo(),cookie); - } + priPhoneInfo(list,cookie); } pageNum += 1; JSONObject jo = merchantOrders(pageNum, date, cookie); @@ -317,84 +316,83 @@ public class MeituanServiceImpl implements IMeituanService { /** * 获取号码 * - * @param orderId * @param cookie * @return */ @Override - public R priPhoneInfo(Long id, String orderId, String cookie) { - String url = "https://e.waimai.meituan.com/v2/order/history/r/search/ajax"; - String regionId = valueFromCookie("region_id", cookie); - String regionVersion = valueFromCookie("region_version", cookie); - Map params = new LinkedHashMap<>(); - params.put("searchItem", orderId); - params.put("region_id", regionId); - params.put("region_version", regionVersion); - params.put("yodaReady", "h5"); - params.put("csecplatform", 4); - params.put("csecversion", "2.4.0"); - String mtgsig = mtgsigInfo(orderId, regionId, regionVersion); - params.put("mtgsig", mtgsig); - url = appendParams(url, params); - MultipartEntityBuilder builder = MultipartEntityBuilder.create(); + public void priPhoneInfo(List ls, String cookie) { + for (BusOrderInfo orderInfo : ls) { + String url = "https://e.waimai.meituan.com/v2/order/history/r/search/ajax"; + String regionId = valueFromCookie("region_id", cookie); + String regionVersion = valueFromCookie("region_version", cookie); + Map params = new LinkedHashMap<>(); + params.put("searchItem", orderInfo.getOrderNo()); + params.put("region_id", regionId); + params.put("region_version", regionVersion); + params.put("yodaReady", "h5"); + params.put("csecplatform", 4); + params.put("csecversion", "2.4.0"); + String mtgsig = mtgsigInfo(orderInfo.getOrderNo(), regionId, regionVersion); + params.put("mtgsig", mtgsig); + url = appendParams(url, params); + MultipartEntityBuilder builder = MultipartEntityBuilder.create(); // builder.addTextBody("searchItem","3801144621770927987"); - HttpPost httpPost = new HttpPost(url); - HttpEntity entity = builder.build(); - httpPost.setEntity(entity); - httpPost.setHeader("Cookie", cookie); + HttpPost httpPost = new HttpPost(url); + HttpEntity entity = builder.build(); + httpPost.setEntity(entity); + httpPost.setHeader("Cookie", cookie); - HttpClient client = proxyHttpClient(); + HttpClient client = proxyHttpClient(); - String resp = null; - try { - HttpResponse response = client.execute(httpPost); - HttpEntity responseEntity = response.getEntity(); - resp = EntityUtils.toString(responseEntity); - } catch (Exception e) { - e.printStackTrace(); - } - JSONObject jsonObject = JSONObject.parseObject(resp); - String code = jsonObject.getString(("code")); - - if ("0".equals(code)) { - JSONArray array = jsonObject.getJSONArray("wmOrderList"); - List list = new ArrayList<>(); - for (Object o : array) { - PriPhoneInfo phoneInfo = new PriPhoneInfo(); - JSONObject oj = JSONObject.parseObject(JSON.toJSONString(o)); - String wmOrderViewId = oj.getString("wm_order_id_view"); - String privacyPhone = oj.getString("privacy_phone"); - String recipientPhone = oj.getString("recipient_phone"); - String recipientBindedPhone = oj.getString("recipient_bindedPhone"); - phoneInfo.setOrderId(wmOrderViewId); - phoneInfo.setPricyPhone(privacyPhone); - phoneInfo.setRecipientPhone(recipientPhone); - phoneInfo.setRecipientBindedPhone(recipientBindedPhone); - list.add(phoneInfo); + String resp = null; + try { + HttpResponse response = client.execute(httpPost); + HttpEntity responseEntity = response.getEntity(); + resp = EntityUtils.toString(responseEntity); + } catch (Exception e) { + e.printStackTrace(); } - if (list.size() > 0) { - List ls = new ArrayList<>(); - for (PriPhoneInfo phoneInfo : list) { - System.out.println(phoneInfo.getOrderId() + "," + phoneInfo.getPricyPhone() + "," + phoneInfo.getRecipientPhone() + "," + phoneInfo.getRecipientBindedPhone()); - BusOrderInfo busOrderInfo = new BusOrderInfo(phoneInfo); - busOrderInfo.setId(id); - busOrderInfoMapper.updateBusOrderInfo(busOrderInfo); - BusReturnVisitInfo returnVisitInfo = new BusReturnVisitInfo(); - returnVisitInfo.setStoreCode(busOrderInfo.getStoreCode()); - returnVisitInfo.setPhoneEndNumber(busOrderInfo.getRecipientPhone()); - returnVisitInfo.setPhoneNumber(busOrderInfo.getPrivcyPhone()); - //returnVisitInfo.setFinishTime(busOrderInfo.getCompleteTime()); todo - returnVisitInfo.setFinishTime(new Date()); + JSONObject jsonObject = JSONObject.parseObject(resp); + String code = jsonObject.getString(("code")); + + if ("0".equals(code)) { + JSONArray array = jsonObject.getJSONArray("wmOrderList"); + List list = new ArrayList<>(); + for (Object o : array) { + PriPhoneInfo phoneInfo = new PriPhoneInfo(); + JSONObject oj = JSONObject.parseObject(JSON.toJSONString(o)); + String wmOrderViewId = oj.getString("wm_order_id_view"); + String privacyPhone = oj.getString("privacy_phone"); + String recipientPhone = oj.getString("recipient_phone"); + String recipientBindedPhone = oj.getString("recipient_bindedPhone"); + phoneInfo.setOrderId(wmOrderViewId); + phoneInfo.setPricyPhone(privacyPhone); + phoneInfo.setRecipientPhone(recipientPhone); + phoneInfo.setRecipientBindedPhone(recipientBindedPhone); + list.add(phoneInfo); + } + if (list.size() > 0) { + List lss = new ArrayList<>(); + for (PriPhoneInfo phoneInfo : list) { + System.out.println(phoneInfo.getOrderId() + "," + phoneInfo.getPricyPhone() + "," + phoneInfo.getRecipientPhone() + "," + phoneInfo.getRecipientBindedPhone()); + BusOrderInfo busOrderInfo = new BusOrderInfo(phoneInfo); + busOrderInfo.setId(orderInfo.getId()); + busOrderInfoMapper.updateBusOrderInfo(busOrderInfo); + BusReturnVisitInfo returnVisitInfo = new BusReturnVisitInfo(); + returnVisitInfo.setStoreCode(busOrderInfo.getStoreCode()); + returnVisitInfo.setPhoneEndNumber(busOrderInfo.getRecipientPhone()); + returnVisitInfo.setPhoneNumber(busOrderInfo.getPrivcyPhone()); + //returnVisitInfo.setFinishTime(busOrderInfo.getCompleteTime()); todo + returnVisitInfo.setFinishTime(new Date()); // busReturnVisitInfoMapper.insertBusReturnVisitInfo(returnVisitInfo); - ls.add(returnVisitInfo); + lss.add(returnVisitInfo); + } + if (lss.size() > 0) { + busReturnVisitInfoMapper.batchInsertVisit(lss); + } } - if (ls.size() > 0){ - busReturnVisitInfoMapper.batchInsertVisit(ls); - } - return R.ok(JSON.toJSON(list)); } } - return R.fail("获取手机号码失败" + resp); } /** diff --git a/ruoyi-system/src/main/resources/mapper/business/BusOrderInfoMapper.xml b/ruoyi-system/src/main/resources/mapper/business/BusOrderInfoMapper.xml index bb1a9a1..07c2116 100644 --- a/ruoyi-system/src/main/resources/mapper/business/BusOrderInfoMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/business/BusOrderInfoMapper.xml @@ -46,9 +46,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - insert into bus_order_info (store_code,custom_id,order_no,order_status,complete_time,dayseq) values + insert into bus_order_info (id,store_code,custom_id,order_no,order_status,complete_time,dayseq) values - (#{item.storeCode},#{item.customId},#{item.orderNo},#{item.orderStatus},#{item.completeTime},#{item.dayseq}) + (#{item.id},#{item.storeCode},#{item.customId},#{item.orderNo},#{item.orderStatus},#{item.completeTime},#{item.dayseq})