From 12474b2b8e8aabaca12975152fbfee9e868c9239 Mon Sep 17 00:00:00 2001 From: wangshuai Date: Wed, 10 Jul 2024 10:55:16 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/MeituanController.java | 8 ++++ .../framework/config/SecurityConfig.java | 2 +- .../java/com/ruoyi/quartz/task/RyTask.java | 26 ++++++---- .../business/mapper/BusOrderInfoMapper.java | 2 + .../service/IBusOrderInfoService.java | 2 + .../business/service/impl/AiServiceImpl.java | 47 +++++++++++++------ .../service/impl/BusOrderInfoServiceImpl.java | 5 ++ .../service/impl/MeituanServiceImpl.java | 25 ++++++++-- .../mapper/business/BusOrderInfoMapper.xml | 8 ++++ ruoyi-ui/src/api/business/store.js | 2 +- ruoyi-ui/src/views/market/whole/index.vue | 1 + ruoyi-ui/src/views/point/transfer/index.vue | 13 +---- 12 files changed, 98 insertions(+), 43 deletions(-) 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 c50e852..871d782 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 @@ -34,6 +34,14 @@ public class MeituanController { return iMeituanService.cookieInfo(cookie); } + @GetMapping("/refresh") + public R refresh(){ + iMeituanService.getScore(); + iMeituanService.getComments(); + iMeituanService.getYestodayCount(); + iMeituanService.orderInfoList(); + return R.ok(); + } /** * 批量获取订单 * @return diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java index a693b5e..cc76e57 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java @@ -115,7 +115,7 @@ public class SecurityConfig // 静态资源,可匿名访问 .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll() .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll() -// .antMatchers("/mt/**","/ai/**").permitAll() + .antMatchers("/mt/cookies").permitAll() // 除上面外的所有请求全部需要鉴权认证 .anyRequest().authenticated(); diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java index 956b678..83e5947 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java @@ -9,7 +9,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.text.SimpleDateFormat; -import java.util.Date; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.List; /** @@ -59,25 +60,33 @@ public class RyTask { /** * 发送AI 1分钟 + * * @throws Exception */ public void sendToAi() throws Exception { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); - BusOrderInfo orderInfo = new BusOrderInfo(); - List list = orderInfoService.selectBusOrderInfoList(orderInfo); + LocalDateTime t30 = LocalDateTime.now().minusMinutes(30); + LocalDateTime t10 = LocalDateTime.now().minusMinutes(10); + String t1 = t30.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")); + String t2 = t10.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")); + List list = orderInfoService.selectBusOrderInfoListToAi(t1, t2); + + list.forEach(System.out::println); for (BusOrderInfo busOrderInfo : list) { BusStoreInfo storeInfo = new BusStoreInfo(); storeInfo.setStoreCode(busOrderInfo.getStoreCode()); List tempStore = storeInfoService.selectBusStoreInfoList(storeInfo); - if (tempStore.size() > 0){ + if (tempStore.size() > 0) { BusAgentInfo agentInfo = new BusAgentInfo(); agentInfo.setAgentAccount(tempStore.get(0).getBindUser()); List agentInfoL = agentInfoService.selectBusAgentInfoList(agentInfo); if (agentInfoL.size() > 0) { - if(agentInfoL.get(0).getIntegral()<=0){continue;} - }else continue; - }else continue; + if (agentInfoL.get(0).getIntegral() <= 0) { + continue; + } + } else continue; + } else continue; BusOrderInfo temp = new BusOrderInfo(); temp.setPrivcyPhone(busOrderInfo.getPrivcyPhone()); @@ -85,8 +94,7 @@ public class RyTask { BusFifteenInfo fifteenInfo = new BusFifteenInfo(); fifteenInfo.setCustomId(tempInfo.getCustomId()); List listInfo = fifteenInfoService.selectBusFifteenInfoList(fifteenInfo); - if (new Date().getTime() >= sdf.parse(busOrderInfo.getCompleteTime()).getTime() + (10 * 60 * 1000) - && listInfo.size() == 0) { + if (listInfo.size() == 0) { aiService.sendAiTask(busOrderInfo); } } 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 index 1c9790a..6640811 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/business/mapper/BusOrderInfoMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/business/mapper/BusOrderInfoMapper.java @@ -61,4 +61,6 @@ public interface BusOrderInfoMapper public int deleteBusOrderInfoByIds(Long[] ids); int batchInsertOrder(@Param("list") List list); int batchupdateBusOrderInfo(@Param("lcs") List lcs); + + List selectBusOrderInfoListToAi(@Param("t1") String t1,@Param("t2") String t2); } 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 index f4b16a8..d7ec421 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/business/service/IBusOrderInfoService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/business/service/IBusOrderInfoService.java @@ -58,4 +58,6 @@ public interface IBusOrderInfoService * @return 结果 */ public int deleteBusOrderInfoById(Long id); + + List selectBusOrderInfoListToAi(String t1, String t2); } 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 6feda8e..87aa126 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 @@ -8,11 +8,13 @@ import com.ruoyi.business.mapper.BusAgentInfoMapper; import com.ruoyi.business.mapper.BusFifteenInfoMapper; import com.ruoyi.business.service.*; import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.HttpClientUtilT; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -139,9 +141,11 @@ public class AiServiceImpl implements IAiService fifteenInfo.setLastVisitTime(LocalDateTime.now().toString()); fifteenInfoService.insertBusFifteenInfo(fifteenInfo); - } else { - System.out.println("追加任务接口返回错误: " + jo.toString()); + } else if("20005".equals(jo.getString("code"))||"20006".equals(jo.getString("code"))) { sendAiTask(busOrderInfo); + } else { + // TODO: 2024/7/10 失败原因判断 是否继续循环 + System.out.println("建立任务接口返回错误: " + jo.toString()); } } @@ -208,18 +212,29 @@ public class AiServiceImpl implements IAiService } @Override + @Transactional public synchronized void sendAiTask(BusOrderInfo busOrderInfo) { -// busOrderInfo.getPrivcyPhone().split(",")[0], busOrderInfo.getPrivcyPhone().split(",")[1] - String apiKey = Optional.ofNullable(redisTemplate.opsForValue().get("apiKey")).orElse(null); - if (apiKey == null){ - apiKey = login(); -// apiKey = redisTemplate.opsForValue().get("apiKey"); - } - String dialTaskMainSn = Optional.ofNullable(redisTemplate.opsForValue().get("dialTaskMainSn")).orElse(null); - if (dialTaskMainSn != null){ - appendAiTask(apiKey,dialTaskMainSn,busOrderInfo); - } else { - addAiTaskTest(apiKey,busOrderInfo); + try { + String apiKey = Optional.ofNullable(redisTemplate.opsForValue().get("apiKey")).orElse(null); + if (apiKey == null){ + apiKey = login(); + } + String dialTaskMainSn = Optional.ofNullable(redisTemplate.opsForValue().get("dialTaskMainSn")).orElse(null); + if (dialTaskMainSn != null){ + appendAiTask(apiKey,dialTaskMainSn,busOrderInfo); + } else { + addAiTaskTest(apiKey,busOrderInfo); + } + BusReturnVisitInfo returnVisitInfo = new BusReturnVisitInfo(); + returnVisitInfo.setPhoneNumber(busOrderInfo.getPrivcyPhone()); + List list = returnVisitInfoService.selectBusReturnVisitInfoList(returnVisitInfo); + if(list.size() == 1){ + returnVisitInfo.setId(list.get(0).getId()); + returnVisitInfo.setReturnVisitTime(new Date()); + returnVisitInfoService.updateBusReturnVisitInfo(returnVisitInfo); + } + }catch (Exception e){ + System.out.println("建立接口返回错误: " + e.getMessage()); } } @@ -250,9 +265,11 @@ public class AiServiceImpl implements IAiService fifteenInfo.setLastVisitTime(LocalDateTime.now().toString()); fifteenInfoService.insertBusFifteenInfo(fifteenInfo); - } else { - System.out.println("建立任务接口返回错误: " + jo.toString()); + } else if("20005".equals(jo.getString("code"))||"20006".equals(jo.getString("code"))) { sendAiTask(busOrderInfo); + } else { + // TODO: 2024/7/10 失败原因判断 是否继续循环 + System.out.println("建立任务接口返回错误: " + jo.toString()); } } 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 index 7b4c42a..da1c3b1 100644 --- 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 @@ -90,4 +90,9 @@ public class BusOrderInfoServiceImpl implements IBusOrderInfoService { return busOrderInfoMapper.deleteBusOrderInfoById(id); } + + @Override + public List selectBusOrderInfoListToAi(String t1, String t2) { + return busOrderInfoMapper.selectBusOrderInfoListToAi(t1,t2); + } } 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 a75ff42..d366c40 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 @@ -38,6 +38,7 @@ import org.apache.http.util.EntityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.io.IOException; import java.net.URLEncoder; @@ -70,6 +71,8 @@ public class MeituanServiceImpl implements IMeituanService { @Autowired private IBusStoreDayInfoService busStoreDayInfoService; @Autowired + private IBusAgentInfoService iBusAgentInfoService; + @Autowired private ProxyProperties proxyProperties; @Autowired @@ -82,13 +85,16 @@ public class MeituanServiceImpl implements IMeituanService { * @return */ @Override + @Transactional(rollbackFor = Exception.class) public R cookieInfo(SysCookie cookie) { - LoginUser loginUser = SecurityUtils.getLoginUser(); BusStoreInfo storeInfo = new BusStoreInfo(); storeInfo.setStoreCode(valueFromCookie("wmPoiId", cookie.getCookie())); List list = busStoreInfoService.selectBusStoreInfoList(storeInfo); + BusAgentInfo busAgentInfo = new BusAgentInfo(); + busAgentInfo.setAgentAccount(cookie.getUserName()); + List list1 = iBusAgentInfoService.selectBusAgentInfoList(busAgentInfo); if (list.size() == 0) { - storeInfo.setBindId(loginUser.getUserId()); + storeInfo.setBindId(list1.get(0).getId()); storeInfo.setBindUser(cookie.getUserName()); storeInfo.setStoreAccount(cookie.getAccount()); storeInfo.setStorePassword(cookie.getPassword()); @@ -116,8 +122,8 @@ public class MeituanServiceImpl implements IMeituanService { } storeInfo.setId(list.get(0).getId()); storeInfo.setUpdateTime(new Date()); - storeInfo.setUpdateId(loginUser.getUserId()); - storeInfo.setUpdateUser(loginUser.getUsername()); + storeInfo.setUpdateId(list1.get(0).getId()); + storeInfo.setUpdateUser(cookie.getUserName()); storeInfo.setStoreAccount(cookie.getAccount()); storeInfo.setStorePassword(cookie.getPassword()); storeInfo.setStoreName(cookie.getWmPoiName()); @@ -136,6 +142,7 @@ public class MeituanServiceImpl implements IMeituanService { * @return */ @Override + @Transactional(rollbackFor = Exception.class) public String getComments() { BusStoreInfo busStoreInfo = new BusStoreInfo(); List busStoreInfoList = busStoreInfoMapper.selectBusStoreInfoList(busStoreInfo); @@ -153,6 +160,7 @@ public class MeituanServiceImpl implements IMeituanService { } @Override + @Transactional(rollbackFor = Exception.class) public String getYestodayCount() { BusStoreInfo busStoreInfo = new BusStoreInfo(); List busStoreInfoList = busStoreInfoMapper.selectBusStoreInfoList(busStoreInfo); @@ -175,6 +183,7 @@ public class MeituanServiceImpl implements IMeituanService { * @return */ @Override + @Transactional(rollbackFor = Exception.class) public String getScore() { BusStoreInfo busStoreInfo = new BusStoreInfo(); List busStoreInfoList = busStoreInfoMapper.selectBusStoreInfoList(busStoreInfo); @@ -197,6 +206,7 @@ public class MeituanServiceImpl implements IMeituanService { * @return */ @Override + @Transactional(rollbackFor = Exception.class) public String orderInfoList() { LocalDateTime now = LocalDateTime.now(); BusStoreInfo busStoreInfo = new BusStoreInfo(); @@ -270,6 +280,7 @@ public class MeituanServiceImpl implements IMeituanService { * @return */ @Override + @Transactional(rollbackFor = Exception.class) public R orderInfo(String wmPoiId, String date, String cookie) { int pageNum = 1; @@ -394,6 +405,7 @@ public class MeituanServiceImpl implements IMeituanService { * @return */ @Override + @Transactional(rollbackFor = Exception.class) public void priPhoneInfo(List ls, String cookie) { for (BusOrderInfo orderInfo : ls) { String url = "https://e.waimai.meituan.com/v2/order/history/r/search/ajax"; @@ -464,7 +476,7 @@ public class MeituanServiceImpl implements IMeituanService { returnVisitInfo.setPhoneEndNumber(busOrderInfo.getRecipientPhone()); returnVisitInfo.setPhoneNumber(busOrderInfo.getPrivcyPhone()); //returnVisitInfo.setFinishTime(busOrderInfo.getCompleteTime()); todo - returnVisitInfo.setReturnVisitTime(new Date()); +// returnVisitInfo.setReturnVisitTime(new Date()); // busReturnVisitInfoMapper.insertBusReturnVisitInfo(returnVisitInfo); lss.add(returnVisitInfo); } @@ -488,6 +500,7 @@ public class MeituanServiceImpl implements IMeituanService { * @return */ @Override + @Transactional(rollbackFor = Exception.class) public String mtgsigInfo(String orderId, String regionId, String regionVersion) { CloseableHttpClient httpClient = proxyHttpClient(); String url = "http://43.140.224.18:12000/get_mtgsig"; @@ -527,6 +540,7 @@ public class MeituanServiceImpl implements IMeituanService { * * @return */ + @Transactional(rollbackFor = Exception.class) private Boolean getScoreOne(BusStoreInfo store) { CloseableHttpClient httpClient = proxyHttpClient(); String wmPoiId = valueFromCookie("wmPoiId", store.getStoreCookie()); @@ -579,6 +593,7 @@ public class MeituanServiceImpl implements IMeituanService { * * @return */ + @Transactional(rollbackFor = Exception.class) private Boolean getCommentsOne(BusStoreInfo store) { LocalDateTime now = LocalDateTime.now(); diff --git a/ruoyi-system/src/main/resources/mapper/business/BusOrderInfoMapper.xml b/ruoyi-system/src/main/resources/mapper/business/BusOrderInfoMapper.xml index da6a398..88b93a9 100644 --- a/ruoyi-system/src/main/resources/mapper/business/BusOrderInfoMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/business/BusOrderInfoMapper.xml @@ -45,6 +45,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} + + insert into bus_order_info (id,store_code,custom_id,order_no,order_status,complete_time,dayseq) values diff --git a/ruoyi-ui/src/api/business/store.js b/ruoyi-ui/src/api/business/store.js index ec03cf7..f370c5e 100644 --- a/ruoyi-ui/src/api/business/store.js +++ b/ruoyi-ui/src/api/business/store.js @@ -64,7 +64,7 @@ export function updateStoreConfig(data) { export function refresh(){ return request({ - url: '/business/store/saveOrUpdate', + url: '/mt/refresh', method: 'get' }) } \ No newline at end of file diff --git a/ruoyi-ui/src/views/market/whole/index.vue b/ruoyi-ui/src/views/market/whole/index.vue index 7b2581c..5b63aeb 100644 --- a/ruoyi-ui/src/views/market/whole/index.vue +++ b/ruoyi-ui/src/views/market/whole/index.vue @@ -568,6 +568,7 @@ export default { }, async handleRefresh(){ await refresh().then(response => { + this.$modal.msgSuccess("修改成功"); this.handleQuery(); }) }, diff --git a/ruoyi-ui/src/views/point/transfer/index.vue b/ruoyi-ui/src/views/point/transfer/index.vue index 6552ee5..7a451b8 100644 --- a/ruoyi-ui/src/views/point/transfer/index.vue +++ b/ruoyi-ui/src/views/point/transfer/index.vue @@ -164,18 +164,7 @@ export default { pageNum: 1, pageSize: 10, agentAccount: null, - agentName: null, - superiorAgentCode: null, - superiorAgentAccount: null, - grantStoreNum: null, - operateStoreNum: null, - lastUseIntegralNum: null, - lastPositiveReviewsNum: null, - aiDurationBalance: null, - lastLoginTime: null, - lastLoginIp: null, - loginNum: null, - delStatus: null + delStatus: "1" }, // 表单参数 form: {},