|
|
@@ -43,8 +43,6 @@ public class PaySupplyServiceImpl implements PaySupplyService {
|
|
|
|
|
|
@Autowired
|
|
|
private SupplyTokenService supplyTokenService;
|
|
|
-
|
|
|
-
|
|
|
/**
|
|
|
* 芸信供应的中台订单
|
|
|
*/
|
|
|
@@ -60,6 +58,13 @@ public class PaySupplyServiceImpl implements PaySupplyService {
|
|
|
@Autowired
|
|
|
private AfterSalesLogService afterSalesLogService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private KafkaProducer kafkaProducer;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private zs.payment.mapper.primary.ImsEweiShopOrderMapper imsEweiShopOrderMapper;
|
|
|
+
|
|
|
+
|
|
|
|
|
|
@Override
|
|
|
public Result orderPayOnly(OrderPayReq req) {
|
|
|
@@ -156,6 +161,18 @@ public class PaySupplyServiceImpl implements PaySupplyService {
|
|
|
salesLog.setCreateTime(System.currentTimeMillis());
|
|
|
afterSalesLogService.save(salesLog);
|
|
|
|
|
|
+// if (1==req.getRefundType()){
|
|
|
+// Map<String,Object> map =new HashMap<>();
|
|
|
+// //售后id
|
|
|
+// map.put("afterSalesId",salesLog.getAfterSalesId());
|
|
|
+// //订单编号
|
|
|
+// map.put("orderSn",salesLog.getOrderSn());
|
|
|
+// //若是退货退款,则需要补充物流信息
|
|
|
+// kafkaProducer.sendMessage("aftersales.express",JSONObject.toJSONString(map));
|
|
|
+// }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
//保存order
|
|
|
ordersService.saveOrders(orders);
|
|
|
@@ -224,4 +241,131 @@ public class PaySupplyServiceImpl implements PaySupplyService {
|
|
|
Boolean b = imsEweiShopOrderService.updateExpressByOrdersn(dto);
|
|
|
return Result.success(b);
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Result executeAfterSalesExpress( String orderSn) {
|
|
|
+
|
|
|
+ Map<String, String> headers = supplyTokenService.buildAuthHeaders();
|
|
|
+ if (headers == null) {
|
|
|
+ return Result.fail("获取token失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ Map<String, Object> expressInfo = imsEweiShopOrderMapper.findExpressByOrdersn(orderSn);
|
|
|
+
|
|
|
+ if (expressInfo.isEmpty()) {
|
|
|
+ throw new ApiException("买家尚未上传物流单号");
|
|
|
+ }
|
|
|
+
|
|
|
+ //查询售后记录
|
|
|
+ List<AfterSalesLog> logs = afterSalesLogService.listByOrderSn(orderSn);
|
|
|
+ if (logs == null || logs.isEmpty()) {
|
|
|
+ return Result.fail("未找到售后记录");
|
|
|
+ }
|
|
|
+ String afterSalesId = String.valueOf(logs.get(0).getAfterSalesId());
|
|
|
+
|
|
|
+ String resp = HttpUtil.restTemplateGet(prefixUrl + "/supplyapi/app/order/cloud/company/list", null, headers);
|
|
|
+
|
|
|
+ JSONObject companyResp = JSONObject.parseObject(resp);
|
|
|
+ if (companyResp.getIntValue("code") != 0) {
|
|
|
+ return Result.fail("获取物流公司列表失败:" + companyResp.getString("msg"));
|
|
|
+ }
|
|
|
+ String expresscom = String.valueOf(expressInfo.get("expresscom"));
|
|
|
+ String companyCode = null;
|
|
|
+
|
|
|
+ for (Object item : companyResp.getJSONObject("data").getJSONArray("list")) {
|
|
|
+ JSONObject company = (JSONObject) item;
|
|
|
+ if (company.getString("name").equals(expresscom)) {
|
|
|
+ companyCode = company.getString("code");
|
|
|
+
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (companyCode == null) {
|
|
|
+ return Result.fail("未匹配到物流公司:" + expresscom);
|
|
|
+ }
|
|
|
+
|
|
|
+ Map<String, String> result2 = getShopAddress(headers, afterSalesId);
|
|
|
+ if (result2.isEmpty()) {
|
|
|
+
|
|
|
+ return Result.fail("未查询到商户收货地址:" + expresscom);
|
|
|
+ }
|
|
|
+
|
|
|
+ Map<String, Object> sendParams = new HashMap<>();
|
|
|
+ sendParams.put("after_sales_id", Integer.valueOf(afterSalesId));
|
|
|
+ sendParams.put("company_name", expresscom);
|
|
|
+ sendParams.put("company_code", companyCode);
|
|
|
+ sendParams.put("express_no", expressInfo.get("expresssn"));
|
|
|
+ sendParams.put("shipping_address_id", Integer.valueOf(result2.get("shipping_address_id")));
|
|
|
+
|
|
|
+ String sendResp = HttpUtil.restTemplatePost(prefixUrl + "/supplyapi/app/afterSales/send", sendParams, headers);
|
|
|
+ JSONObject sendRespJson = JSONObject.parseObject(sendResp);
|
|
|
+ if (sendRespJson.getIntValue("code") != 0) {
|
|
|
+ return Result.fail("售后发货失败:" + sendRespJson.getString("msg"));
|
|
|
+ }
|
|
|
+
|
|
|
+ return Result.success();
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Result findShopAddressByOrderSn(String orderSn) {
|
|
|
+
|
|
|
+ Map<String, String> headers = supplyTokenService.buildAuthHeaders();
|
|
|
+ if (headers == null) {
|
|
|
+ return Result.fail("获取token失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ //查询售后记录
|
|
|
+ List<AfterSalesLog> logs = afterSalesLogService.listByOrderSn(orderSn);
|
|
|
+ if (logs == null || logs.isEmpty()) {
|
|
|
+ return Result.fail("未找到售后记录");
|
|
|
+ }
|
|
|
+ String afterSalesId = String.valueOf(logs.get(0).getAfterSalesId());
|
|
|
+
|
|
|
+ Map<String, String> result = getShopAddress(headers,afterSalesId);
|
|
|
+
|
|
|
+ return Result.success(result);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取到商家地址+商家电话+收货人
|
|
|
+ * @param afterSalesId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public Map<String,String> getShopAddress( Map<String, String> headers,String afterSalesId){
|
|
|
+ Map<String, String> result = new HashMap<>();
|
|
|
+ Map<String, Object> params = new HashMap<>();
|
|
|
+ //第三方的订单编号
|
|
|
+ params.put("after_sales_id", afterSalesId);
|
|
|
+
|
|
|
+ String resp = HttpUtil.restTemplatePost(prefixUrl + "/supplier/findShopAddressByOrderId", params, headers);
|
|
|
+
|
|
|
+ JSONObject respJson = JSONObject.parseObject(resp);
|
|
|
+ if (respJson.getIntValue("code") != 0) {
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ JSONObject data = respJson.getJSONObject("data");
|
|
|
+ String fullAddress = data.getJSONObject("province_name").getString("name")
|
|
|
+ + data.getJSONObject("city_name").getString("name")
|
|
|
+ + data.getJSONObject("district_name").getString("name")
|
|
|
+ + data.getString("address");
|
|
|
+ String tel = data.getString("tel");
|
|
|
+ String contacts = data.getString("contacts");
|
|
|
+
|
|
|
+ //收货地址
|
|
|
+ result.put("address", fullAddress);
|
|
|
+ //收货电话
|
|
|
+ result.put("tel", tel);
|
|
|
+ //收货人
|
|
|
+ result.put("contacts",contacts);
|
|
|
+ //id 用于售后发货中的shipping_address_id
|
|
|
+ result.put("shipping_address_id",data.getString("id"));
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
}
|