fix: 美团核销相关
This commit is contained in:
parent
b618db850a
commit
7e413ad469
|
|
@ -2,10 +2,7 @@ package cn.ysk.cashier.controller;
|
||||||
|
|
||||||
import cn.ysk.cashier.service.ThirdPartyCouponService;
|
import cn.ysk.cashier.service.ThirdPartyCouponService;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.RequestHeader;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 三方团购券
|
* 三方团购券
|
||||||
|
|
@ -25,7 +22,7 @@ public class ThirdPartyCouponController {
|
||||||
* @return 美团绑定链接
|
* @return 美团绑定链接
|
||||||
*/
|
*/
|
||||||
@GetMapping
|
@GetMapping
|
||||||
public ResponseEntity<String> getBindUrl() {
|
public ResponseEntity<String> getBindUrl(@RequestParam Integer shopId) {
|
||||||
return ResponseEntity.ok(thirdPartyCouponService.getBindUrl());
|
return ResponseEntity.ok(thirdPartyCouponService.getBindUrl(shopId));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,5 +5,5 @@ import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
public interface ThirdPartyCouponService {
|
public interface ThirdPartyCouponService {
|
||||||
|
|
||||||
String getBindUrl();
|
String getBindUrl(Integer shopId);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,38 +1,82 @@
|
||||||
package cn.ysk.cashier.service.impl;
|
package cn.ysk.cashier.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.ysk.cashier.exception.BadRequestException;
|
import cn.ysk.cashier.exception.BadRequestException;
|
||||||
|
import cn.ysk.cashier.mybatis.mapper.MpShopInfoMapper;
|
||||||
|
import cn.ysk.cashier.pojo.shop.TbShopInfo;
|
||||||
import cn.ysk.cashier.resp.PhpCommonResp;
|
import cn.ysk.cashier.resp.PhpCommonResp;
|
||||||
import cn.ysk.cashier.service.ThirdPartyCouponService;
|
import cn.ysk.cashier.service.ThirdPartyCouponService;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.http.HttpEntity;
|
||||||
|
import org.springframework.http.HttpHeaders;
|
||||||
|
import org.springframework.http.HttpMethod;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.web.client.RestTemplate;
|
import org.springframework.web.client.RestTemplate;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class ThirdPartyCouponServiceImpl implements ThirdPartyCouponService {
|
public class ThirdPartyCouponServiceImpl implements ThirdPartyCouponService {
|
||||||
|
|
||||||
|
private final MpShopInfoMapper mpShopInfoMapper;
|
||||||
@Value("${phpServer}")
|
@Value("${phpServer}")
|
||||||
private String phpServerUrl;
|
private String phpServerUrl;
|
||||||
|
|
||||||
public ThirdPartyCouponServiceImpl(RestTemplate restTemplate) {
|
public ThirdPartyCouponServiceImpl(RestTemplate restTemplate, MpShopInfoMapper mpShopInfoMapper) {
|
||||||
this.restTemplate = restTemplate;
|
this.restTemplate = restTemplate;
|
||||||
|
this.mpShopInfoMapper = mpShopInfoMapper;
|
||||||
}
|
}
|
||||||
private final RestTemplate restTemplate;
|
private final RestTemplate restTemplate;
|
||||||
|
|
||||||
private <T> T getData(String url, Object data) {
|
private <T> T getData(String url, Integer shopId, Object data) {
|
||||||
PhpCommonResp<?> resp = restTemplate.getForEntity(phpServerUrl + url, PhpCommonResp.class).getBody();
|
// 获取店铺信息
|
||||||
|
TbShopInfo shopInfo = mpShopInfoMapper.selectById(shopId);
|
||||||
|
if (shopInfo == null) {
|
||||||
|
throw new BadRequestException("店铺信息不存在");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 设置请求头
|
||||||
|
HttpHeaders headers = new HttpHeaders();
|
||||||
|
headers.set("account", shopId.toString());
|
||||||
|
|
||||||
|
// 构造请求实体,根据 data 是否为空设置请求体
|
||||||
|
HttpEntity<Object> entity;
|
||||||
|
if (data != null) {
|
||||||
|
Map<String, Object> map = BeanUtil.beanToMap(data);
|
||||||
|
map.put("title", shopInfo.getShopName());
|
||||||
|
entity = new HttpEntity<>(map, headers);
|
||||||
|
} else {
|
||||||
|
entity = new HttpEntity<>(new HashMap<String, Object>(){{
|
||||||
|
put("title", shopInfo.getShopName());
|
||||||
|
}},headers);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 发起请求
|
||||||
|
ResponseEntity<PhpCommonResp> response = restTemplate.exchange(
|
||||||
|
phpServerUrl + url,
|
||||||
|
HttpMethod.POST, // 使用 POST 请求发送 body 数据
|
||||||
|
entity,
|
||||||
|
PhpCommonResp.class
|
||||||
|
);
|
||||||
|
|
||||||
|
// 处理响应
|
||||||
|
PhpCommonResp<?> resp = response.getBody();
|
||||||
if (resp == null) {
|
if (resp == null) {
|
||||||
throw new BadRequestException("请求php服务器失败");
|
throw new BadRequestException("请求php服务器失败");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!"1".equals(resp.getCode())) {
|
if (!"1".equals(resp.getCode())) {
|
||||||
throw new BadRequestException(resp.getMsg());
|
throw new BadRequestException(resp.getMsg());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 返回数据
|
||||||
return (T) resp.getData();
|
return (T) resp.getData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getBindUrl() {
|
public String getBindUrl(Integer shopId) {
|
||||||
return getData("/meituan/getuisdkurl", null);
|
return getData("/meituan/getuisdkurl", shopId, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue