定时任务优化
This commit is contained in:
parent
f7f3da25ac
commit
12474b2b8e
|
@ -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
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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,12 +60,18 @@ 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<BusOrderInfo> 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<BusOrderInfo> list = orderInfoService.selectBusOrderInfoListToAi(t1, t2);
|
||||
|
||||
list.forEach(System.out::println);
|
||||
for (BusOrderInfo busOrderInfo : list) {
|
||||
|
||||
BusStoreInfo storeInfo = new BusStoreInfo();
|
||||
|
@ -75,7 +82,9 @@ public class RyTask {
|
|||
agentInfo.setAgentAccount(tempStore.get(0).getBindUser());
|
||||
List<BusAgentInfo> agentInfoL = agentInfoService.selectBusAgentInfoList(agentInfo);
|
||||
if (agentInfoL.size() > 0) {
|
||||
if(agentInfoL.get(0).getIntegral()<=0){continue;}
|
||||
if (agentInfoL.get(0).getIntegral() <= 0) {
|
||||
continue;
|
||||
}
|
||||
} else continue;
|
||||
} else continue;
|
||||
|
||||
|
@ -85,8 +94,7 @@ public class RyTask {
|
|||
BusFifteenInfo fifteenInfo = new BusFifteenInfo();
|
||||
fifteenInfo.setCustomId(tempInfo.getCustomId());
|
||||
List<BusFifteenInfo> 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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -61,4 +61,6 @@ public interface BusOrderInfoMapper
|
|||
public int deleteBusOrderInfoByIds(Long[] ids);
|
||||
int batchInsertOrder(@Param("list") List<BusOrderInfo> list);
|
||||
int batchupdateBusOrderInfo(@Param("lcs") List<BusOrderInfo> lcs);
|
||||
|
||||
List<BusOrderInfo> selectBusOrderInfoListToAi(@Param("t1") String t1,@Param("t2") String t2);
|
||||
}
|
||||
|
|
|
@ -58,4 +58,6 @@ public interface IBusOrderInfoService
|
|||
* @return 结果
|
||||
*/
|
||||
public int deleteBusOrderInfoById(Long id);
|
||||
|
||||
List<BusOrderInfo> selectBusOrderInfoListToAi(String t1, String t2);
|
||||
}
|
||||
|
|
|
@ -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,12 +212,12 @@ public class AiServiceImpl implements IAiService
|
|||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public synchronized void sendAiTask(BusOrderInfo busOrderInfo) {
|
||||
// busOrderInfo.getPrivcyPhone().split(",")[0], busOrderInfo.getPrivcyPhone().split(",")[1]
|
||||
try {
|
||||
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){
|
||||
|
@ -221,6 +225,17 @@ public class AiServiceImpl implements IAiService
|
|||
} else {
|
||||
addAiTaskTest(apiKey,busOrderInfo);
|
||||
}
|
||||
BusReturnVisitInfo returnVisitInfo = new BusReturnVisitInfo();
|
||||
returnVisitInfo.setPhoneNumber(busOrderInfo.getPrivcyPhone());
|
||||
List<BusReturnVisitInfo> 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());
|
||||
}
|
||||
}
|
||||
|
||||
private void addAiTaskTest(String apiKey, BusOrderInfo busOrderInfo) {
|
||||
|
@ -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());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -90,4 +90,9 @@ public class BusOrderInfoServiceImpl implements IBusOrderInfoService
|
|||
{
|
||||
return busOrderInfoMapper.deleteBusOrderInfoById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BusOrderInfo> selectBusOrderInfoListToAi(String t1, String t2) {
|
||||
return busOrderInfoMapper.selectBusOrderInfoListToAi(t1,t2);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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<BusStoreInfo> list = busStoreInfoService.selectBusStoreInfoList(storeInfo);
|
||||
BusAgentInfo busAgentInfo = new BusAgentInfo();
|
||||
busAgentInfo.setAgentAccount(cookie.getUserName());
|
||||
List<BusAgentInfo> 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<BusStoreInfo> 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<BusStoreInfo> 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<BusStoreInfo> 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<BusOrderInfo> 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();
|
||||
|
||||
|
|
|
@ -45,6 +45,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
where id = #{id}
|
||||
</select>
|
||||
|
||||
<select id="selectBusOrderInfoListToAi" resultMap="BusOrderInfoResult">
|
||||
select a.* from bus_order_info a
|
||||
LEFT JOIN bus_return_visit_info b on b.phone_number=a.privcy_phone
|
||||
where b.return_visit_time is null
|
||||
<if test="t1 != null and t1 != ''"> and a.complete_time > #{t1}</if>
|
||||
<if test="t2 != null and t2 != ''"> and a.complete_time < #{t2}</if>
|
||||
</select>
|
||||
|
||||
<insert id="batchInsertOrder">
|
||||
insert into bus_order_info (id,store_code,custom_id,order_no,order_status,complete_time,dayseq) values
|
||||
<foreach collection="list" separator="," item="item">
|
||||
|
|
|
@ -64,7 +64,7 @@ export function updateStoreConfig(data) {
|
|||
|
||||
export function refresh(){
|
||||
return request({
|
||||
url: '/business/store/saveOrUpdate',
|
||||
url: '/mt/refresh',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
|
@ -568,6 +568,7 @@ export default {
|
|||
},
|
||||
async handleRefresh(){
|
||||
await refresh().then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.handleQuery();
|
||||
})
|
||||
},
|
||||
|
|
|
@ -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: {},
|
||||
|
|
Loading…
Reference in New Issue