From 770952af825160e733d02ddf939b8981a7c5210b Mon Sep 17 00:00:00 2001 From: wangshuai Date: Sun, 7 Jul 2024 11:25:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9A=E6=97=B6=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/MeituanController.java | 12 +- .../ruoyi/business/domain/BusOrderInfo.java | 223 ++++++++++++++++++ .../business/mapper/BusOrderInfoMapper.java | 61 +++++ .../service/IBusOrderInfoService.java | 61 +++++ .../business/service/IMeituanService.java | 8 +- .../service/impl/BusOrderInfoServiceImpl.java | 93 ++++++++ .../business/service/impl/JobServiceImpl.java | 45 ++++ .../service/impl/MeituanServiceImpl.java | 48 +++- .../mapper/business/BusOrderInfoMapper.xml | 106 +++++++++ 9 files changed, 653 insertions(+), 4 deletions(-) create mode 100644 ruoyi-system/src/main/java/com/ruoyi/business/domain/BusOrderInfo.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/business/mapper/BusOrderInfoMapper.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/business/service/IBusOrderInfoService.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/business/service/impl/BusOrderInfoServiceImpl.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/business/service/impl/JobServiceImpl.java create mode 100644 ruoyi-system/src/main/resources/mapper/business/BusOrderInfoMapper.xml 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 61f1253..713534a 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 @@ -27,6 +27,16 @@ public class MeituanController { return iMeituanService.cookieInfo(cookie); } + /** + * 批量获取订单 + * @return + */ + @GetMapping("/orderInfoList") + public R orderInfoList() { + String result = iMeituanService.orderInfoList(); + return R.ok(result); + } + /** * 获取订单 * @return @@ -44,7 +54,7 @@ public class MeituanController { */ @GetMapping("/getPriPhone") public R priPhone(String orderId, String cookie) { - return iMeituanService.priPhoneInfo(orderId, cookie); + return iMeituanService.priPhoneInfo(0L,orderId, cookie); } /** diff --git a/ruoyi-system/src/main/java/com/ruoyi/business/domain/BusOrderInfo.java b/ruoyi-system/src/main/java/com/ruoyi/business/domain/BusOrderInfo.java new file mode 100644 index 0000000..fad5cca --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/business/domain/BusOrderInfo.java @@ -0,0 +1,223 @@ +package com.ruoyi.business.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 订单信息对象 bus_order_info + * + * @author ruoyi + * @date 2024-07-07 + */ +public class BusOrderInfo extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** $column.columnComment */ + private Long id; + + /** 平台类型 */ + @Excel(name = "平台类型") + private String platformType; + + /** 店铺编码 */ + @Excel(name = "店铺编码") + private String storeCode; + + /** 店铺名称 */ + @Excel(name = "店铺名称") + private String storeName; + + /** 顾客ID */ + @Excel(name = "顾客ID") + private String customId; + + /** 订单号 */ + @Excel(name = "订单号") + private String orderNo; + + /** 订单状态 */ + @Excel(name = "订单状态") + private String orderStatus; + + /** 订单完成时间 */ + @Excel(name = "订单完成时间") + private String completeTime; + + /** 订单完成时间 */ + @Excel(name = "订单完成时间") + private String dayseq; + + /** 隐私号码 */ + @Excel(name = "隐私号码") + private String privcyPhone; + + /** 收件号码 */ + @Excel(name = "收件号码") + private String recipientPhone; + + /** 收件绑定号码 */ + @Excel(name = "收件绑定号码") + private String recipientBindedPhone; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + public void setPlatformType(String platformType) + { + this.platformType = platformType; + } + + public String getPlatformType() + { + return platformType; + } + public void setStoreCode(String storeCode) + { + this.storeCode = storeCode; + } + + public String getStoreCode() + { + return storeCode; + } + public void setStoreName(String storeName) + { + this.storeName = storeName; + } + + public String getStoreName() + { + return storeName; + } + public void setCustomId(String customId) + { + this.customId = customId; + } + + public String getCustomId() + { + return customId; + } + public void setOrderNo(String orderNo) + { + this.orderNo = orderNo; + } + + public String getOrderNo() + { + return orderNo; + } + public void setOrderStatus(String orderStatus) + { + this.orderStatus = orderStatus; + } + + public String getOrderStatus() + { + return orderStatus; + } + public void setCompleteTime(String completeTime) + { + this.completeTime = completeTime; + } + + public String getCompleteTime() + { + return completeTime; + } + public void setDayseq(String dayseq) + { + this.dayseq = dayseq; + } + + public String getDayseq() + { + return dayseq; + } + public void setPrivcyPhone(String privcyPhone) + { + this.privcyPhone = privcyPhone; + } + + public String getPrivcyPhone() + { + return privcyPhone; + } + public void setRecipientPhone(String recipientPhone) + { + this.recipientPhone = recipientPhone; + } + + public String getRecipientPhone() + { + return recipientPhone; + } + public void setRecipientBindedPhone(String recipientBindedPhone) + { + this.recipientBindedPhone = recipientBindedPhone; + } + + public String getRecipientBindedPhone() + { + return recipientBindedPhone; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("platformType", getPlatformType()) + .append("storeCode", getStoreCode()) + .append("storeName", getStoreName()) + .append("customId", getCustomId()) + .append("orderNo", getOrderNo()) + .append("orderStatus", getOrderStatus()) + .append("completeTime", getCompleteTime()) + .append("dayseq", getDayseq()) + .append("privcyPhone", getPrivcyPhone()) + .append("recipientPhone", getRecipientPhone()) + .append("recipientBindedPhone", getRecipientBindedPhone()) + .toString(); + } + + public BusOrderInfo() { + + } + + public BusOrderInfo(OrderInfo orderInfo) { +// this.platformType = orderInfo.; +// this.storeCode = orderInfo.get; +// this.storeName = storeName; +// this.customId = orderInfo; + this.orderNo = orderInfo.getWmOrderViewId(); + this.orderStatus = orderInfo.getStatusDesc(); + this.completeTime = orderInfo.getExpectTimeFmt(); + this.dayseq = orderInfo.getDaySeq(); +// this.privcyPhone = orderInfo.; +// this.recipientPhone = recipientPhone; +// this.recipientBindedPhone = recipientBindedPhone; + } + + public BusOrderInfo(PriPhoneInfo priPhoneInfo) { +// this.platformType = orderInfo.; +// this.storeCode = orderInfo.get; +// this.storeName = storeName; +// this.customId = orderInfo; +// this.orderNo = orderInfo.getWmOrderViewId(); +// this.orderStatus = orderInfo.getStatusDesc(); +// this.completeTime = orderInfo.getExpectTimeFmt(); +// this.dayseq = orderInfo.getDaySeq(); + this.privcyPhone = priPhoneInfo.getPricyPhone(); + this.recipientPhone = priPhoneInfo.getRecipientPhone(); + this.recipientBindedPhone = priPhoneInfo.getRecipientBindedPhone(); + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/business/mapper/BusOrderInfoMapper.java b/ruoyi-system/src/main/java/com/ruoyi/business/mapper/BusOrderInfoMapper.java new file mode 100644 index 0000000..91035f9 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/business/mapper/BusOrderInfoMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.business.mapper; + +import java.util.List; +import com.ruoyi.business.domain.BusOrderInfo; + +/** + * 订单信息Mapper接口 + * + * @author ruoyi + * @date 2024-07-07 + */ +public interface BusOrderInfoMapper +{ + /** + * 查询订单信息 + * + * @param id 订单信息主键 + * @return 订单信息 + */ + public BusOrderInfo selectBusOrderInfoById(Long id); + + /** + * 查询订单信息列表 + * + * @param busOrderInfo 订单信息 + * @return 订单信息集合 + */ + public List selectBusOrderInfoList(BusOrderInfo busOrderInfo); + + /** + * 新增订单信息 + * + * @param busOrderInfo 订单信息 + * @return 结果 + */ + public int insertBusOrderInfo(BusOrderInfo busOrderInfo); + + /** + * 修改订单信息 + * + * @param busOrderInfo 订单信息 + * @return 结果 + */ + public int updateBusOrderInfo(BusOrderInfo busOrderInfo); + + /** + * 删除订单信息 + * + * @param id 订单信息主键 + * @return 结果 + */ + public int deleteBusOrderInfoById(Long id); + + /** + * 批量删除订单信息 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteBusOrderInfoByIds(Long[] ids); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/business/service/IBusOrderInfoService.java b/ruoyi-system/src/main/java/com/ruoyi/business/service/IBusOrderInfoService.java new file mode 100644 index 0000000..f4b16a8 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/business/service/IBusOrderInfoService.java @@ -0,0 +1,61 @@ +package com.ruoyi.business.service; + +import java.util.List; +import com.ruoyi.business.domain.BusOrderInfo; + +/** + * 订单信息Service接口 + * + * @author ruoyi + * @date 2024-07-07 + */ +public interface IBusOrderInfoService +{ + /** + * 查询订单信息 + * + * @param id 订单信息主键 + * @return 订单信息 + */ + public BusOrderInfo selectBusOrderInfoById(Long id); + + /** + * 查询订单信息列表 + * + * @param busOrderInfo 订单信息 + * @return 订单信息集合 + */ + public List selectBusOrderInfoList(BusOrderInfo busOrderInfo); + + /** + * 新增订单信息 + * + * @param busOrderInfo 订单信息 + * @return 结果 + */ + public int insertBusOrderInfo(BusOrderInfo busOrderInfo); + + /** + * 修改订单信息 + * + * @param busOrderInfo 订单信息 + * @return 结果 + */ + public int updateBusOrderInfo(BusOrderInfo busOrderInfo); + + /** + * 批量删除订单信息 + * + * @param ids 需要删除的订单信息主键集合 + * @return 结果 + */ + public int deleteBusOrderInfoByIds(Long[] ids); + + /** + * 删除订单信息信息 + * + * @param id 订单信息主键 + * @return 结果 + */ + public int deleteBusOrderInfoById(Long id); +} 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 eee5baf..57ade0a 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 @@ -11,6 +11,12 @@ public interface IMeituanService { */ R cookieInfo(SysCookie cookie); + /** + * 获取好评及五星 + * @return + */ + String orderInfoList(); + /** * 获取好评及五星 * @return @@ -38,7 +44,7 @@ public interface IMeituanService { * @param cookie * @return */ - R priPhoneInfo(String orderId, String cookie); + R priPhoneInfo(Long id, String orderId, String cookie); /** * 获取mtgsig diff --git a/ruoyi-system/src/main/java/com/ruoyi/business/service/impl/BusOrderInfoServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/business/service/impl/BusOrderInfoServiceImpl.java new file mode 100644 index 0000000..7b4c42a --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/business/service/impl/BusOrderInfoServiceImpl.java @@ -0,0 +1,93 @@ +package com.ruoyi.business.service.impl; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.business.mapper.BusOrderInfoMapper; +import com.ruoyi.business.domain.BusOrderInfo; +import com.ruoyi.business.service.IBusOrderInfoService; + +/** + * 订单信息Service业务层处理 + * + * @author ruoyi + * @date 2024-07-07 + */ +@Service +public class BusOrderInfoServiceImpl implements IBusOrderInfoService +{ + @Autowired + private BusOrderInfoMapper busOrderInfoMapper; + + /** + * 查询订单信息 + * + * @param id 订单信息主键 + * @return 订单信息 + */ + @Override + public BusOrderInfo selectBusOrderInfoById(Long id) + { + return busOrderInfoMapper.selectBusOrderInfoById(id); + } + + /** + * 查询订单信息列表 + * + * @param busOrderInfo 订单信息 + * @return 订单信息 + */ + @Override + public List selectBusOrderInfoList(BusOrderInfo busOrderInfo) + { + return busOrderInfoMapper.selectBusOrderInfoList(busOrderInfo); + } + + /** + * 新增订单信息 + * + * @param busOrderInfo 订单信息 + * @return 结果 + */ + @Override + public int insertBusOrderInfo(BusOrderInfo busOrderInfo) + { + return busOrderInfoMapper.insertBusOrderInfo(busOrderInfo); + } + + /** + * 修改订单信息 + * + * @param busOrderInfo 订单信息 + * @return 结果 + */ + @Override + public int updateBusOrderInfo(BusOrderInfo busOrderInfo) + { + return busOrderInfoMapper.updateBusOrderInfo(busOrderInfo); + } + + /** + * 批量删除订单信息 + * + * @param ids 需要删除的订单信息主键 + * @return 结果 + */ + @Override + public int deleteBusOrderInfoByIds(Long[] ids) + { + return busOrderInfoMapper.deleteBusOrderInfoByIds(ids); + } + + /** + * 删除订单信息信息 + * + * @param id 订单信息主键 + * @return 结果 + */ + @Override + public int deleteBusOrderInfoById(Long id) + { + return busOrderInfoMapper.deleteBusOrderInfoById(id); + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/business/service/impl/JobServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/business/service/impl/JobServiceImpl.java new file mode 100644 index 0000000..43f5728 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/business/service/impl/JobServiceImpl.java @@ -0,0 +1,45 @@ +package com.ruoyi.business.service.impl; + +import com.ruoyi.business.service.IMeituanService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Service; + +import java.text.SimpleDateFormat; +import java.util.Date; + +@Service +@EnableScheduling +public class JobServiceImpl { + + private static final SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss"); + + @Autowired + private IMeituanService iMeituanService; + +// //初始延迟1秒,每隔2秒 +// @Scheduled(fixedRateString = "2000",initialDelay = 1000) +// public void testFixedRate(){ +// System.out.println("fixedRateString,当前时间:" +format.format(new Date())); +// } +// +// //每次执行完延迟2秒 +// @Scheduled(fixedDelayString= "2000") +// public void testFixedDelay(){ +// System.out.println("fixedDelayString,当前时间:" +format.format(new Date())); +// } +// +// //每隔3秒执行一次 +// @Scheduled(cron="0/3 * * * * ?") +// public void testCron(){ +// System.out.println("cron,当前时间:" +format.format(new Date())); +// } + + @Scheduled(fixedDelayString= "10000")//600000 + public void testFixedDelay(){ + System.out.println("fixedDelayString,当前时间:" +format.format(new Date())); + + iMeituanService.orderInfoList(); + } +} 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 0f9f0db..75dc72d 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 @@ -4,6 +4,7 @@ import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.ruoyi.business.domain.*; +import com.ruoyi.business.mapper.BusOrderInfoMapper; import com.ruoyi.business.mapper.BusStoreDayInfoMapper; import com.ruoyi.business.mapper.BusStoreInfoMapper; import com.ruoyi.business.service.IBusStoreDayInfoService; @@ -12,6 +13,7 @@ import com.ruoyi.business.service.IMeituanService; import com.ruoyi.common.config.ProxyProperties; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.StringUtils; import org.apache.http.HttpEntity; import org.apache.http.HttpHost; import org.apache.http.HttpResponse; @@ -48,6 +50,9 @@ public class MeituanServiceImpl implements IMeituanService { @Autowired private BusStoreDayInfoMapper busStoreDayInfoMapper; + @Autowired + private BusOrderInfoMapper busOrderInfoMapper; + @Autowired private StringRedisTemplate redisTemplate; @@ -149,11 +154,35 @@ public class MeituanServiceImpl implements IMeituanService { return "ok"; } + /** + * 获取订单批量 + * + * @return + */ + @Override + public String orderInfoList() { + LocalDateTime now = LocalDateTime.now().minusDays(1); + BusStoreInfo busStoreInfo = new BusStoreInfo(); + busStoreInfo.setGrantStatus("1"); + List busStoreInfoList = busStoreInfoMapper.selectBusStoreInfoList(busStoreInfo); + for (BusStoreInfo store : busStoreInfoList) { + R flag = orderInfo(store.getStoreCode(),now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")),store.getStoreCookie()); + if (flag.getCode() != 200) { + //掉线 + BusStoreInfo busStoreInfo1 = new BusStoreInfo(); + busStoreInfo1.setId(store.getId()); + busStoreInfo1.setGrantStatus("2"); + busStoreInfoMapper.updateBusStoreInfo(busStoreInfo1); + } + } + return "ok"; + } + /** * 获取订单 * * @param wmPoiId - * @param date + * @param date 2024-06-07 * @param cookie * @return */ @@ -207,6 +236,10 @@ public class MeituanServiceImpl implements IMeituanService { list.stream().sorted(Comparator.comparing(OrderInfo::getDaySeq)).collect(Collectors.toList()); for (OrderInfo orderInfo : list) { System.out.println(orderInfo.getDaySeq() + "," + orderInfo.getWmOrderViewId() + "," + orderInfo.getExpectTimeFmt() + "," + orderInfo.getStatusDesc()); + BusOrderInfo busOrderInfo = new BusOrderInfo(orderInfo); + busOrderInfo.setStoreCode(wmPoiId); + busOrderInfoMapper.insertBusOrderInfo(busOrderInfo); + priPhoneInfo(busOrderInfo.getId(),orderInfo.getWmOrderViewId(),cookie); } } pageNum += 1; @@ -268,7 +301,7 @@ public class MeituanServiceImpl implements IMeituanService { * @return */ @Override - public R priPhoneInfo(String orderId, String cookie) { + 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); @@ -321,6 +354,9 @@ public class MeituanServiceImpl implements IMeituanService { if (list.size() > 0) { 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); } return R.ok(JSON.toJSON(list)); } @@ -440,12 +476,20 @@ public class MeituanServiceImpl implements IMeituanService { params.put("appType", "3"); params.put("durationType", "2"); params.put("dt", now.format(DateTimeFormatter.ofPattern("yyyyMMdd"))); +// params.put("optimus_uuid", ""); +// params.put("optimus_risk_level", 71); +// params.put("optimus_code", 10); +// params.put("optimus_partner", 19); url = appendParams(url, params); HttpGet request = new HttpGet(url); String result = null; try { CloseableHttpClient httpClient = proxyHttpClient(); result = EntityUtils.toString(httpClient.execute(request).getEntity()); + if (StringUtils.isNotEmpty(result)) { + System.out.println(result); + return false; + } JSONObject jsonObject = JSONObject.parseObject(result); int code = jsonObject.getInteger(("code")); if (code != 0) { diff --git a/ruoyi-system/src/main/resources/mapper/business/BusOrderInfoMapper.xml b/ruoyi-system/src/main/resources/mapper/business/BusOrderInfoMapper.xml new file mode 100644 index 0000000..fe52360 --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/business/BusOrderInfoMapper.xml @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + select id, platform_type, store_code, store_name, custom_id, order_no, order_status, complete_time, dayseq, privcy_phone, recipient_phone, recipient_binded_phone from bus_order_info + + + + + + + + insert into bus_order_info + + platform_type, + store_code, + store_name, + custom_id, + order_no, + order_status, + complete_time, + dayseq, + privcy_phone, + recipient_phone, + recipient_binded_phone, + + + #{platformType}, + #{storeCode}, + #{storeName}, + #{customId}, + #{orderNo}, + #{orderStatus}, + #{completeTime}, + #{dayseq}, + #{privcyPhone}, + #{recipientPhone}, + #{recipientBindedPhone}, + + + + + update bus_order_info + + platform_type = #{platformType}, + store_code = #{storeCode}, + store_name = #{storeName}, + custom_id = #{customId}, + order_no = #{orderNo}, + order_status = #{orderStatus}, + complete_time = #{completeTime}, + dayseq = #{dayseq}, + privcy_phone = #{privcyPhone}, + recipient_phone = #{recipientPhone}, + recipient_binded_phone = #{recipientBindedPhone}, + + where id = #{id} + + + + delete from bus_order_info where id = #{id} + + + + delete from bus_order_info where id in + + #{id} + + + \ No newline at end of file