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 d3b57b2..b8780ef 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 @@ -28,15 +28,12 @@ import java.net.URLEncoder; import java.util.*; /** - * 调用美团接口 + * 采集美团接口 */ @RestController @RequestMapping("/mt") public class MeituanController { - @Autowired - private IBusStoreInfoService busStoreInfoService; - @Autowired private IMeituanService iMeituanService; /** @@ -47,35 +44,7 @@ public class MeituanController { @PostMapping(value = "/cookies") public R cookie(@RequestBody SysCookie cookie) { - BusStoreInfo storeInfo = new BusStoreInfo(); - storeInfo.setStoreCode(valueFromCookie("wmPoiId",cookie.getCookie())); - List list = busStoreInfoService.selectBusStoreInfoList(storeInfo); - if(list.size()==0){ - storeInfo.setBindUser(cookie.getUserName()); - storeInfo.setStoreAccount(cookie.getAccount()); - storeInfo.setStorePassword(cookie.getPassword()); - storeInfo.setStoreName(cookie.getWmPoiName()); - storeInfo.setStoreCookie(cookie.getCookie()); - storeInfo.setPlatformType(String.valueOf(cookie.getBingType())); - storeInfo.setBindTime(new Date()); - storeInfo.setGrantStatus("1");//授权登录状态 - storeInfo.setReturnVisitStatus("2");// 营销状态 - storeInfo.setSelfDeliveryStatus("1");// 1 正常, 2 自配送, 3 删除 - return R.ok(busStoreInfoService.insertBusStoreInfo(storeInfo)); - }else if(list.size()==1){ - if(!cookie.getUserName().equals(storeInfo.getBindUser())){ - throw new ServiceException("授权失败,已绑定其他代理账号!"); - } - storeInfo.setStoreAccount(cookie.getAccount()); - storeInfo.setStorePassword(cookie.getPassword()); - storeInfo.setStoreName(cookie.getWmPoiName()); - storeInfo.setStoreCookie(cookie.getCookie()); - storeInfo.setPlatformType(String.valueOf(cookie.getBingType())); - return R.ok(busStoreInfoService.updateBusStoreInfo(storeInfo)); - }else{ - throw new ServiceException("授权失败,请重试!"); - } - // 触发爬取店铺信息 + return iMeituanService.cookieInfo(cookie); } /** @@ -123,12 +92,4 @@ public class MeituanController { return iMeituanService.mtgsigInfo(orderId,regionId,regionVersion); } - - - private String valueFromCookie(String key,String text) { - String s = text.substring(text.indexOf(key), text.length()); - String value = s.substring(s.indexOf("=")+1,s.indexOf(";")); - return value; - } - } 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 8209cc8..8470f8e 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,14 +1,54 @@ package com.ruoyi.business.service; +import com.ruoyi.business.domain.SysCookie; import com.ruoyi.common.core.domain.R; public interface IMeituanService { + /** + * 获取cookie + * @param cookie + * @return + */ + R cookieInfo(SysCookie cookie); + + /** + * 获取好评及五星 + * @return + */ String getComments(); + /** + * 获取评分 + * @return + */ String getScore(); + /** + * 获取订单 + * @param wmPoiId + * @param date + * @param cookie + * @return + */ R orderInfo(String wmPoiId, String date, String cookie); + + /** + * 获取号码 + * @param orderId + * @param regionId + * @param regionVersion + * @param cookie + * @return + */ R priPhoneInfo(String orderId,String regionId,String regionVersion,String cookie); + + /** + * 获取mtgsig + * @param orderId + * @param regionId + * @param regionVersion + * @return + */ String mtgsigInfo(String orderId,String regionId,String regionVersion); } 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 ddb5403..fed0f22 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 @@ -6,9 +6,12 @@ import com.alibaba.fastjson2.JSONObject; import com.ruoyi.business.domain.BusStoreInfo; import com.ruoyi.business.domain.OrderInfo; import com.ruoyi.business.domain.PriPhoneInfo; +import com.ruoyi.business.domain.SysCookie; import com.ruoyi.business.mapper.BusStoreInfoMapper; +import com.ruoyi.business.service.IBusStoreInfoService; import com.ruoyi.business.service.IMeituanService; import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.HttpClientUtilT; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; @@ -29,6 +32,9 @@ import java.net.URLEncoder; import java.util.*; import java.util.stream.Collectors; +/** + * 采集美团数据service + */ @Service public class MeituanServiceImpl implements IMeituanService { @@ -38,6 +44,51 @@ public class MeituanServiceImpl implements IMeituanService { @Autowired private StringRedisTemplate redisTemplate; + @Autowired + private IBusStoreInfoService busStoreInfoService; + + /** + * 获取cookie + * @param cookie + * @return + */ + @Override + public R cookieInfo(SysCookie cookie) { + BusStoreInfo storeInfo = new BusStoreInfo(); + storeInfo.setStoreCode(valueFromCookie("wmPoiId",cookie.getCookie())); + List list = busStoreInfoService.selectBusStoreInfoList(storeInfo); + if(list.size()==0){ + storeInfo.setBindUser(cookie.getUserName()); + storeInfo.setStoreAccount(cookie.getAccount()); + storeInfo.setStorePassword(cookie.getPassword()); + storeInfo.setStoreName(cookie.getWmPoiName()); + storeInfo.setStoreCookie(cookie.getCookie()); + storeInfo.setPlatformType(String.valueOf(cookie.getBingType())); + storeInfo.setBindTime(new Date()); + storeInfo.setGrantStatus("1");//授权登录状态 + storeInfo.setReturnVisitStatus("2");// 营销状态 + storeInfo.setSelfDeliveryStatus("1");// 1 正常, 2 自配送, 3 删除 + return R.ok(busStoreInfoService.insertBusStoreInfo(storeInfo)); + }else if(list.size()==1){ + if(!cookie.getUserName().equals(storeInfo.getBindUser())){ + throw new ServiceException("授权失败,已绑定其他代理账号!"); + } + storeInfo.setStoreAccount(cookie.getAccount()); + storeInfo.setStorePassword(cookie.getPassword()); + storeInfo.setStoreName(cookie.getWmPoiName()); + storeInfo.setStoreCookie(cookie.getCookie()); + storeInfo.setPlatformType(String.valueOf(cookie.getBingType())); + return R.ok(busStoreInfoService.updateBusStoreInfo(storeInfo)); + }else{ + throw new ServiceException("授权失败,请重试!"); + } + // 触发爬取店铺信息 + } + + /** + * 获取好评批量 + * @return + */ @Override public String getComments() { BusStoreInfo busStoreInfo = new BusStoreInfo(); @@ -49,6 +100,10 @@ public class MeituanServiceImpl implements IMeituanService { return "ok"; } + /** + * 获取评分批量 + * @return + */ @Override public String getScore() { BusStoreInfo busStoreInfo = new BusStoreInfo(); @@ -60,6 +115,13 @@ public class MeituanServiceImpl implements IMeituanService { return "ok"; } + /** + * 获取订单 + * @param wmPoiId + * @param date + * @param cookie + * @return + */ @Override public R orderInfo(String wmPoiId, String date, String cookie) { int pageNum = 1; @@ -164,6 +226,14 @@ public class MeituanServiceImpl implements IMeituanService { return jsonObject; } + /** + * 获取号码 + * @param orderId + * @param regionId + * @param regionVersion + * @param cookie + * @return + */ @Override public R priPhoneInfo(String orderId,String regionId,String regionVersion,String cookie) { String url = "https://e.waimai.meituan.com/v2/order/history/r/search/ajax"; @@ -225,6 +295,13 @@ public class MeituanServiceImpl implements IMeituanService { return R.fail("获取手机号码失败"+resp); } + /** + * 获取mtgsig + * @param orderId + * @param regionId + * @param regionVersion + * @return + */ @Override public String mtgsigInfo(String orderId,String regionId,String regionVersion) { CloseableHttpClient httpClient = HttpClientBuilder.create().build(); @@ -261,7 +338,7 @@ public class MeituanServiceImpl implements IMeituanService { } /** - * 获取评分 + * 获取评分单条 * @return */ private Boolean getScoreOne(BusStoreInfo store) { @@ -279,7 +356,7 @@ public class MeituanServiceImpl implements IMeituanService { } /** - * 获取订单数和好评(4,5星)数 + * 获取订单数和好评单条 * @return */ private Boolean getCommentsOne(BusStoreInfo store){