1;店铺信息登录后完整性(单量)

2;授权成功后无提示
This commit is contained in:
wangshuai 2024-07-19 10:33:55 +08:00
parent c00b1d5803
commit 53b18f956e
6 changed files with 129 additions and 131 deletions

View File

@ -74,9 +74,9 @@ document.addEventListener("mouseup", function(e) {
xhr.send(JSON.stringify(sendData)) xhr.send(JSON.stringify(sendData))
xhr.onreadystatechange = function () { xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) { if (xhr.readyState === 4 && xhr.status === 200) {
// if (xhr.responseText === 'true') { if (xhr.responseText === 'true') {
alert('当前授权完成,请直接关闭当前浏览器!') alert('当前授权完成,请直接关闭当前浏览器!')
// } }
} }
} }
}else if(phone !== null && phone !== 'null' ){ }else if(phone !== null && phone !== 'null' ){
@ -91,9 +91,9 @@ document.addEventListener("mouseup", function(e) {
xhr.send(JSON.stringify(sendData)) xhr.send(JSON.stringify(sendData))
xhr.onreadystatechange = function () { xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) { if (xhr.readyState === 4 && xhr.status === 200) {
// if (xhr.responseText === 'true') { if (xhr.responseText === 'true') {
alert('当前授权完成,请直接关闭当前浏览器!') alert('当前授权完成,请直接关闭当前浏览器!')
// } }
} }
} }
} }

View File

@ -5,7 +5,9 @@ import com.ruoyi.business.domain.SysCookie;
import com.ruoyi.business.mapper.BusOrderInfoMapper; import com.ruoyi.business.mapper.BusOrderInfoMapper;
import com.ruoyi.business.service.IBusOrderInfoService; import com.ruoyi.business.service.IBusOrderInfoService;
import com.ruoyi.business.service.IMeituanService; import com.ruoyi.business.service.IMeituanService;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.utils.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -29,20 +31,29 @@ public class MeituanController {
* @return * @return
*/ */
@PostMapping(value = "/cookies") @PostMapping(value = "/cookies")
public R cookie(@RequestBody SysCookie cookie) public String cookie(@RequestBody SysCookie cookie)
{ {
R r = iMeituanService.cookieInfo(cookie); return iMeituanService.cookieInfo(cookie);
iMeituanService.getYestodayCount();
return r;
} }
@GetMapping("/refresh") @GetMapping("/refresh")
public R refresh(){ public R refresh(){
iMeituanService.getScore(); iMeituanService.getComments(SecurityUtils.getUsername());
iMeituanService.getComments();
iMeituanService.getYestodayCount();
return R.ok(); return R.ok();
} }
@GetMapping("/getComment")
public R getComment(Long id){
iMeituanService.getComment(id);
return R.ok();
}
@GetMapping("/getReturnInfo")
public R getReturnInfo(){
iMeituanService.getReturnInfo();
return R.ok();
}
/** /**
* 批量获取订单 * 批量获取订单
* @return * @return
@ -77,26 +88,6 @@ public class MeituanController {
iMeituanService.priPhoneInfo(list, cookie); iMeituanService.priPhoneInfo(list, cookie);
} }
/**
* 获取订单数和好评45星
* @return
*/
@GetMapping("/getComments")
public R comments() {
String result = iMeituanService.getComments();
return R.ok(result);
}
/**
* 获取评分
* @return
*/
@GetMapping("/getScore")
public R score() {
String result = iMeituanService.getScore();
return R.ok(result);
}
@GetMapping("/getMtgsig") @GetMapping("/getMtgsig")
public String mtgsig(String orderId,String regionId,String regionVersion) { public String mtgsig(String orderId,String regionId,String regionVersion) {
return iMeituanService.mtgsigInfo(orderId,regionId,regionVersion); return iMeituanService.mtgsigInfo(orderId,regionId,regionVersion);

View File

@ -134,8 +134,9 @@ public class SecurityConfig
// 静态资源可匿名访问 // 静态资源可匿名访问
.antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll() .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
.antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll() .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()
.antMatchers("/mt/cookies").permitAll() .antMatchers(HttpMethod.POST,"/mt/cookies").permitAll()
.antMatchers("/test/**").permitAll() .antMatchers("/test/**").permitAll()
// .antMatchers("/mt/**").permitAll()
// 除上面外的所有请求全部需要鉴权认证 // 除上面外的所有请求全部需要鉴权认证
.anyRequest().authenticated(); .anyRequest().authenticated();

View File

@ -2,6 +2,7 @@ package com.ruoyi.business.service;
import com.ruoyi.business.domain.BusOrderInfo; import com.ruoyi.business.domain.BusOrderInfo;
import com.ruoyi.business.domain.SysCookie; import com.ruoyi.business.domain.SysCookie;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.R;
import java.util.List; import java.util.List;
@ -12,7 +13,7 @@ public interface IMeituanService {
* @param cookie * @param cookie
* @return * @return
*/ */
R cookieInfo(SysCookie cookie); String cookieInfo(SysCookie cookie);
/** /**
* 获取好评及五星 * 获取好评及五星
@ -21,17 +22,10 @@ public interface IMeituanService {
String orderInfoList(); String orderInfoList();
/** /**
* 获取好评及五星 * 获取好评及五星 /评分 /昨日单量
* @return * @return
*/ */
String getComments(); String getComments(String accountName);
String getYestodayCount();
/**
* 获取评分
* @return
*/
String getScore();
/** /**
* 获取订单 * 获取订单
@ -61,4 +55,6 @@ public interface IMeituanService {
String getStoreName(String cookie); String getStoreName(String cookie);
void getReturnInfo(); void getReturnInfo();
String getComment(Long id);
} }

View File

@ -7,11 +7,13 @@ import com.ruoyi.business.domain.*;
import com.ruoyi.business.mapper.*; import com.ruoyi.business.mapper.*;
import com.ruoyi.business.service.*; import com.ruoyi.business.service.*;
import com.ruoyi.common.config.ProxyProperties; import com.ruoyi.common.config.ProxyProperties;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
import jdk.nashorn.internal.runtime.logging.Logger;
import org.apache.http.HttpEntity; import org.apache.http.HttpEntity;
import org.apache.http.HttpHost; import org.apache.http.HttpHost;
import org.apache.http.HttpResponse; import org.apache.http.HttpResponse;
@ -41,6 +43,7 @@ import java.io.IOException;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
@ -90,8 +93,11 @@ public class MeituanServiceImpl implements IMeituanService {
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public R cookieInfo(SysCookie cookie) { public String cookieInfo(SysCookie cookie) {
BusStoreInfo storeInfo = new BusStoreInfo(); BusStoreInfo storeInfo = new BusStoreInfo();
if("".equals(valueFromCookie("wmPoiId", cookie.getCookie()))){
return "false";
}
storeInfo.setStoreCode(valueFromCookie("wmPoiId", cookie.getCookie())); storeInfo.setStoreCode(valueFromCookie("wmPoiId", cookie.getCookie()));
List<BusStoreInfo> list = busStoreInfoService.selectBusStoreInfoList(storeInfo); List<BusStoreInfo> list = busStoreInfoService.selectBusStoreInfoList(storeInfo);
BusAgentInfo busAgentInfo = new BusAgentInfo(); BusAgentInfo busAgentInfo = new BusAgentInfo();
@ -119,16 +125,6 @@ public class MeituanServiceImpl implements IMeituanService {
busStoreConfigInfo.setStoreCode(valueFromCookie("wmPoiId", cookie.getCookie())); busStoreConfigInfo.setStoreCode(valueFromCookie("wmPoiId", cookie.getCookie()));
busStoreConfigInfoMapper.insertBusStoreConfigInfo(busStoreConfigInfo); busStoreConfigInfoMapper.insertBusStoreConfigInfo(busStoreConfigInfo);
// try {
// Thread.sleep(3000);
// } catch (InterruptedException e) {
// throw new RuntimeException(e);
// }
// getCommentsOne(storeInfo);
// getScoreOne(storeInfo);
// yesterdayCountOne(storeInfo);
return R.ok();
} else if (list.size() == 1) { } else if (list.size() == 1) {
// 不同代理人绑定 // 不同代理人绑定
if (!cookie.getUserName().equals(list.get(0).getBindUser())) { if (!cookie.getUserName().equals(list.get(0).getBindUser())) {
@ -164,44 +160,42 @@ public class MeituanServiceImpl implements IMeituanService {
storeInfo.setStoreCookie(cookie.getCookie()); storeInfo.setStoreCookie(cookie.getCookie());
storeInfo.setGrantStatus("1");//授权登录状态 storeInfo.setGrantStatus("1");//授权登录状态
} }
return R.ok(busStoreInfoService.updateBusStoreInfo(storeInfo)); busStoreInfoService.updateBusStoreInfo(storeInfo);
} else { } else {
throw new ServiceException("授权失败,请重试!"); throw new ServiceException("授权失败,请重试!");
} }
// 触发爬取店铺信息 // 触发爬取店铺信息
getCommentsOne(storeInfo);
getScoreOne(storeInfo);
yesterdayCountOne(storeInfo);
return "true";
} }
/** /**
* 获取好评批量 * 批量 获取昨日评分好评有效单
* *
* @return * @return
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public String getComments() { public String getComments(String accountName) {
BusStoreInfo busStoreInfo = new BusStoreInfo(); BusStoreInfo busStoreInfo = new BusStoreInfo();
busStoreInfo.setReturnVisitStatus("1"); busStoreInfo.setGrantStatus("1");
if(accountName != null){
busStoreInfo.setBindUser(SecurityUtils.getUsername()); busStoreInfo.setBindUser(SecurityUtils.getUsername());
}
List<BusStoreInfo> busStoreInfoList = busStoreInfoMapper.selectBusStoreInfoList(busStoreInfo); List<BusStoreInfo> busStoreInfoList = busStoreInfoMapper.selectBusStoreInfoList(busStoreInfo);
for (BusStoreInfo store : busStoreInfoList) { for (BusStoreInfo store : busStoreInfoList) {
Boolean flag = getCommentsOne(store); Boolean flag1 = getScoreOne(store);
if (!flag) { if (!flag1) {
System.out.println("获取评分信息返回错误...");
}
Boolean flag2 = getCommentsOne(store);
if (!flag2) {
System.out.println("获取好评信息返回错误..."); System.out.println("获取好评信息返回错误...");
} }
} Boolean flag3 = yesterdayCountOne(store);
return "ok"; if (!flag3) {
}
@Override
@Transactional(rollbackFor = Exception.class)
public String getYestodayCount() {
BusStoreInfo busStoreInfo = new BusStoreInfo();
busStoreInfo.setReturnVisitStatus("1");
busStoreInfo.setBindUser(SecurityUtils.getUsername());
List<BusStoreInfo> busStoreInfoList = busStoreInfoMapper.selectBusStoreInfoList(busStoreInfo);
for (BusStoreInfo store : busStoreInfoList) {
Boolean flag = yesterdayCountOne(store);
if (!flag) {
System.out.println("获取昨日统计信息返回错误..."); System.out.println("获取昨日统计信息返回错误...");
} }
} }
@ -209,26 +203,28 @@ public class MeituanServiceImpl implements IMeituanService {
} }
/** /**
* 获取评分批 * 获取昨日评分好评有效单
* *
* @return * @return
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public String getScore() { public String getComment(Long id) {
BusStoreInfo busStoreInfo = new BusStoreInfo(); BusStoreInfo store = busStoreInfoMapper.selectBusStoreInfoById(id);
busStoreInfo.setReturnVisitStatus("1"); Boolean flag1 = getScoreOne(store);
busStoreInfo.setBindUser(SecurityUtils.getUsername()); if (!flag1) {
List<BusStoreInfo> busStoreInfoList = busStoreInfoMapper.selectBusStoreInfoList(busStoreInfo);
for (BusStoreInfo store : busStoreInfoList) {
Boolean flag = getScoreOne(store);
if (!flag) {
System.out.println("获取评分信息返回错误..."); System.out.println("获取评分信息返回错误...");
} }
Boolean flag2 = getCommentsOne(store);
if (!flag2) {
System.out.println("获取好评信息返回错误...");
}
Boolean flag3 = yesterdayCountOne(store);
if (!flag3) {
System.out.println("获取昨日统计信息返回错误...");
} }
return "ok"; return "ok";
} }
/** /**
* 获取订单批量 * 获取订单批量
* *
@ -256,30 +252,37 @@ public class MeituanServiceImpl implements IMeituanService {
* @return * @return
*/ */
public boolean yesterdayCountOne(BusStoreInfo storeInfo){ public boolean yesterdayCountOne(BusStoreInfo storeInfo){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
CloseableHttpClient httpClient = proxyHttpClient();
String wmPoiId = valueFromCookie("wmPoiId", storeInfo.getStoreCookie()); String wmPoiId = valueFromCookie("wmPoiId", storeInfo.getStoreCookie());
Calendar calendar = Calendar.getInstance(); String url = "https://waimaieapp.meituan.com/gw/bizdata/marketing/single/analysis";
calendar.add(Calendar.DAY_OF_MONTH,-1); Map<String, Object> params = new HashMap<>();
Date minusDay = calendar.getTime(); // params.put("ignoreSetRouterProxy", true);
String date = sdf.format(minusDay); // params.put("acctId", valueFromCookie("acctId", storeInfo.getStoreCookie()));
JSONObject jsonObject = merchantOrders(1, date, storeInfo.getStoreCookie()); params.put("wmPoiId", wmPoiId);
params.put("token", valueFromCookie("token", storeInfo.getStoreCookie()));
params.put("appType", 3);
String date = LocalDate.now().minusDays(1).format(DateTimeFormatter.ofPattern("yyyyMMdd"));
params.put("beginDate", date);
params.put("endDate", date);
url = appendParams(url, params);
HttpGet request = new HttpGet(url);
request.setHeader("Cookie",storeInfo.getStoreCookie());
String result = null;
try {
result = EntityUtils.toString(httpClient.execute(request).getEntity());
} catch (Exception e) {
System.out.println(e.getMessage());
return false;
}
if (result != null) {
JSONObject jsonObject = JSONObject.parseObject(result);
String code = jsonObject.getString("code"); String code = jsonObject.getString("code");
if ("0".equals(code)) { if ("0".equals(code)) {
JSONObject data = jsonObject.getJSONObject("data"); JSONArray array = jsonObject.getJSONArray("data");
String total = data.getString("totalCount"); JSONObject one = array.getJSONObject(0);
String total = one.getString("base");
// JSONArray array = jsonObject.getJSONObject("data").getJSONArray("wmOrderList"); System.out.println(total);
// Object o = array.get(0);
// JSONObject oj = JSONObject.parseObject(JSON.toJSONString(o));
// JSONObject order0 = oj.getJSONObject("orderInfo");
// JSONObject order1 = order0.getJSONObject("orderInfo");
//// JSONObject tipInfoVo = order1.getJSONObject("tipInfoVo");
// String poiName = order1.getString("poiName");
// if (storeInfo.getStoreName() == null) {
// storeInfo.setStoreName(poiName);
// busStoreInfoService.updateBusStoreInfo(storeInfo);
// }
BusStoreInfo store = new BusStoreInfo(); BusStoreInfo store = new BusStoreInfo();
store.setStoreCode(wmPoiId); store.setStoreCode(wmPoiId);
List<BusStoreInfo> list = busStoreInfoService.selectBusStoreInfoList(store); List<BusStoreInfo> list = busStoreInfoService.selectBusStoreInfoList(store);
@ -300,6 +303,7 @@ public class MeituanServiceImpl implements IMeituanService {
storeInfo.setGrantStatus("2"); storeInfo.setGrantStatus("2");
busStoreInfoService.updateBusStoreInfo(storeInfo); busStoreInfoService.updateBusStoreInfo(storeInfo);
} }
}
// System.out.println(jsonObject); // System.out.println(jsonObject);
return true; return true;
} }
@ -646,9 +650,7 @@ public class MeituanServiceImpl implements IMeituanService {
@Override @Override
public void getReturnInfo() { public void getReturnInfo() {
getScore(); getComments(null);
getComments();
getYestodayCount();
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDateTime date = LocalDateTime.now().minusDays(1); LocalDateTime date = LocalDateTime.now().minusDays(1);
BusStoreInfo storeInfo = new BusStoreInfo(); BusStoreInfo storeInfo = new BusStoreInfo();

View File

@ -74,13 +74,21 @@ export function updateStoreConfig(data) {
data: data data: data
}) })
} }
// 一键更新 - 当前人 在线的店铺
export function refresh() { export function refresh() {
return request({ return request({
url: '/mt/refresh', url: '/mt/refresh',
method: 'get' method: 'get'
}) })
} }
// 更新一个店铺
export function refresh(id) {
return request({
url: '/mt/getComment/'+id,
method: 'get'
})
}
export function getStoreStatistics() { export function getStoreStatistics() {
return request({ return request({
url: '/business/store/getStoreStatistics', url: '/business/store/getStoreStatistics',