顺丰同城相关接口方法完善
This commit is contained in:
parent
1fbd523ca7
commit
298049c052
@ -44,7 +44,7 @@ public class ShopStoreSfOrder {
|
||||
private String sf_bill_id;
|
||||
|
||||
@ApiModelProperty(value = "顺丰店铺id")
|
||||
private String sf_shop_id;
|
||||
private String shop_id;
|
||||
|
||||
@ApiModelProperty(value = "商家订单号,唯一的")
|
||||
private String shop_order_id;
|
||||
@ -61,6 +61,18 @@ public class ShopStoreSfOrder {
|
||||
@ApiModelProperty(value = "状态说明")
|
||||
private String sf_order_status_desc;
|
||||
|
||||
@ApiModelProperty(value = "取消码")
|
||||
private String cancel_code;
|
||||
|
||||
@ApiModelProperty(value = "取消原因")
|
||||
private String cancel_reason;
|
||||
|
||||
@ApiModelProperty(value = "配送员位置经度")
|
||||
private Long rider_lng;
|
||||
|
||||
@ApiModelProperty(value = "配送员位置维度")
|
||||
private Long rider_lat;
|
||||
|
||||
@ApiModelProperty(value = "推送时间")
|
||||
private Long push_time;
|
||||
|
||||
|
||||
@ -166,6 +166,9 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
|
||||
|
||||
// 取件码。在顺丰同城商户侧配置,配置后有此字段。
|
||||
String pickupCode = shopStoreSfOrder.getPickup_code() != null ? shopStoreSfOrder.getPickup_code().toString() : "";
|
||||
|
||||
// TODO 商城订单状态:从 待发货 更改为 待收货
|
||||
|
||||
return Pair.of(true, pickupCode);
|
||||
}
|
||||
|
||||
@ -180,6 +183,11 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
|
||||
@Override
|
||||
public SFExpressApiRes cancelOrder(String sfOrderId, Integer cancelCode, String cancelReason) {
|
||||
Map<String, Object> params = buildCommonParams();
|
||||
params.put("order_id", sfOrderId);
|
||||
if (StrUtil.isNotEmpty(cancelReason) && cancelCode != null) {
|
||||
params.put("cancel_code", sfOrderId);
|
||||
params.put("cancel_reason", sfOrderId);
|
||||
}
|
||||
return cancelOrder(params);
|
||||
}
|
||||
|
||||
@ -206,7 +214,15 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
|
||||
return new SFExpressApiRes().fail(-1,"顺丰同城:无返回值!");
|
||||
}
|
||||
|
||||
return JsonUtil.json2object(retRespStr, SFExpressApiRes.class);
|
||||
SFExpressApiRes sfExpressApiRes = JsonUtil.json2object(retRespStr, SFExpressApiRes.class);
|
||||
if (sfExpressApiRes == null) {
|
||||
logger.error("顺丰同城:取消订单,返回值异常!");
|
||||
return new SFExpressApiRes().fail(-1,"顺丰同城:无返回值!");
|
||||
}
|
||||
|
||||
// TODO 更改商品订单状态:
|
||||
|
||||
return sfExpressApiRes;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -382,6 +398,16 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
|
||||
|
||||
logger.info("接收顺丰原因订单取消回调返回的 JSON 数据:{}", jsonData);
|
||||
|
||||
// 更改顺丰同城订单状态
|
||||
ShopStoreSfOrder shopStoreSfOrder = toShopStoreSfOrder(jsonData);
|
||||
Boolean success = shopStoreSfOrderService.updateShopStoreSfOrderStatus(shopStoreSfOrder);
|
||||
if (!success) {
|
||||
return new SFExpressApiRes().fail(-1,"状态处理失败!");
|
||||
}
|
||||
|
||||
// TODO 更改商城订单状态为:已取消,注意事务问题
|
||||
|
||||
|
||||
return new SFExpressApiRes().success("success");
|
||||
}
|
||||
|
||||
@ -404,6 +430,13 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
|
||||
|
||||
logger.info("接收顺丰配送状态更改回调返回的 JSON 数据:{}", jsonData);
|
||||
|
||||
// 更改顺丰同城订单状态
|
||||
ShopStoreSfOrder shopStoreSfOrder = toShopStoreSfOrder(jsonData);
|
||||
Boolean success = shopStoreSfOrderService.updateShopStoreSfOrderStatus(shopStoreSfOrder);
|
||||
if (!success) {
|
||||
return new SFExpressApiRes().fail(-1,"状态处理失败!");
|
||||
}
|
||||
|
||||
return new SFExpressApiRes().success("success");
|
||||
}
|
||||
|
||||
@ -426,6 +459,33 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
|
||||
|
||||
logger.info("接收顺丰订单完成回调返回的 JSON 数据:{}", jsonData);
|
||||
|
||||
|
||||
|
||||
// 更改顺丰同城订单状态
|
||||
ShopStoreSfOrder shopStoreSfOrder = toShopStoreSfOrder(jsonData);
|
||||
if ( shopStoreSfOrder == null) {
|
||||
return new SFExpressApiRes().fail(-1,"返回数据转换失败!");
|
||||
}
|
||||
|
||||
ShopStoreSfOrder order = shopStoreSfOrderService.getBySfOrderId(shopStoreSfOrder.getSf_order_id());
|
||||
if (order == null) {
|
||||
return new SFExpressApiRes().fail(-1,"订单不存在!");
|
||||
}
|
||||
|
||||
// 订单状态已经更改过,无需更改
|
||||
if (order.getSf_order_status().equals(17)){
|
||||
return new SFExpressApiRes().success("success");
|
||||
}
|
||||
|
||||
|
||||
Boolean success = shopStoreSfOrderService.updateShopStoreSfOrderStatus(shopStoreSfOrder);
|
||||
if (!success) {
|
||||
return new SFExpressApiRes().fail(-1,"状态处理失败!");
|
||||
}
|
||||
|
||||
// TODO 更改商城订单状态为:已完成,注意事务问题
|
||||
|
||||
|
||||
return new SFExpressApiRes().success("success");
|
||||
}
|
||||
|
||||
@ -500,4 +560,17 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
|
||||
generateOpenSign(postData);
|
||||
return sb;
|
||||
}
|
||||
|
||||
/**
|
||||
* 回调结果数据填充顺丰同城订单实例
|
||||
* @param resultJSON
|
||||
* @return
|
||||
*/
|
||||
private ShopStoreSfOrder toShopStoreSfOrder(String resultJSON){
|
||||
if(StrUtil.isBlank(resultJSON)){
|
||||
return null;
|
||||
}
|
||||
|
||||
return JSONUtil.toBean(resultJSON, ShopStoreSfOrder.class);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,9 +2,18 @@ package com.suisung.mall.shop.store.service;
|
||||
|
||||
import com.suisung.mall.common.modules.store.ShopStoreSfOrder;
|
||||
import com.suisung.mall.core.web.service.IBaseService;
|
||||
import io.swagger.models.auth.In;
|
||||
|
||||
public interface ShopStoreSfOrderService extends IBaseService<ShopStoreSfOrder> {
|
||||
|
||||
|
||||
/**
|
||||
* 根据顺丰同城订单id获取一条记录
|
||||
* @param sfOrderId
|
||||
* @return
|
||||
*/
|
||||
ShopStoreSfOrder getBySfOrderId(String sfOrderId);
|
||||
|
||||
/**
|
||||
* 新增一个顺丰同城订单记录
|
||||
*
|
||||
@ -14,5 +23,11 @@ public interface ShopStoreSfOrderService extends IBaseService<ShopStoreSfOrder>
|
||||
Boolean insertShopStoreSfOrder(ShopStoreSfOrder record);
|
||||
|
||||
|
||||
/**
|
||||
* 更新顺丰同城订单的状态等关键字段
|
||||
* @param record
|
||||
* @return
|
||||
*/
|
||||
Boolean updateShopStoreSfOrderStatus(ShopStoreSfOrder record);
|
||||
}
|
||||
|
||||
|
||||
@ -9,6 +9,8 @@
|
||||
package com.suisung.mall.shop.store.service.impl;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.suisung.mall.common.modules.store.ShopStoreSfOrder;
|
||||
import com.suisung.mall.core.web.service.impl.BaseServiceImpl;
|
||||
import com.suisung.mall.shop.store.mapper.ShopStoreSfOrderMapper;
|
||||
@ -17,12 +19,30 @@ import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Service
|
||||
public class ShopStoreSfOrderServiceImpl extends BaseServiceImpl<ShopStoreSfOrderMapper, ShopStoreSfOrder> implements ShopStoreSfOrderService {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(ShopStoreSfOrderServiceImpl.class);
|
||||
|
||||
|
||||
/**
|
||||
* 根据顺丰同城订单id获取一条记录
|
||||
*
|
||||
* @param sfOrderId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public ShopStoreSfOrder getBySfOrderId(String sfOrderId) {
|
||||
if (StrUtil.isBlank(sfOrderId)) {
|
||||
return null;
|
||||
}
|
||||
QueryWrapper<ShopStoreSfOrder> wrapper = new QueryWrapper<>();
|
||||
wrapper.eq("sf_order_id", sfOrderId);
|
||||
return getOne(wrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增一个顺丰同城订单记录
|
||||
*
|
||||
@ -32,15 +52,90 @@ public class ShopStoreSfOrderServiceImpl extends BaseServiceImpl<ShopStoreSfOrde
|
||||
@Override
|
||||
public Boolean insertShopStoreSfOrder(ShopStoreSfOrder record) {
|
||||
if (record == null) {
|
||||
logger.error("ShopStoreSfOrder 实体空值,保存失败!");
|
||||
logger.info("参数空值,保存失败!");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (StrUtil.isEmpty(record.getSf_shop_id()) || StrUtil.isEmpty(record.getSf_order_id()) || StrUtil.isEmpty(record.getShop_order_id())) {
|
||||
logger.error("ShopStoreSfOrder 保存,缺少必要参数,保存失败!");
|
||||
if (StrUtil.isEmpty(record.getShop_id()) || StrUtil.isEmpty(record.getSf_order_id()) || StrUtil.isEmpty(record.getShop_order_id())) {
|
||||
logger.info("缺少必要参数,保存失败!");
|
||||
return false;
|
||||
}
|
||||
|
||||
return save(record);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新顺丰同城订单的状态等关键字段
|
||||
*
|
||||
* @param record
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateShopStoreSfOrderStatus(ShopStoreSfOrder record) {
|
||||
if (record==null|| StrUtil.isEmpty(record.getSf_order_id()) && record.getSf_order_status() == null || StrUtil.isEmpty(record.getFeed()) || StrUtil.isEmpty(record.getSf_order_status_desc())) {
|
||||
logger.info("缺少必要参数!");
|
||||
return false;
|
||||
}
|
||||
|
||||
int cnt = 0;
|
||||
UpdateWrapper<ShopStoreSfOrder> updateWrapper = new UpdateWrapper<>();
|
||||
updateWrapper.eq("sf_order_id", record.getSf_order_id());
|
||||
|
||||
if (record.getSf_order_status() != null && record.getSf_order_status() > 0) {
|
||||
updateWrapper.set("sf_order_status", record.getSf_order_status() );
|
||||
cnt+=1;
|
||||
}
|
||||
|
||||
if (StrUtil.isNotEmpty(record.getSf_order_status_desc())) {
|
||||
updateWrapper.set("sf_order_status_desc", record.getSf_order_status_desc());
|
||||
cnt+=1;
|
||||
}
|
||||
|
||||
if (StrUtil.isNotEmpty(record.getOperator_name())) {
|
||||
updateWrapper.set("operator_name", record.getOperator_name());
|
||||
cnt+=1;
|
||||
}
|
||||
|
||||
if (StrUtil.isNotEmpty(record.getOperator_phone())) {
|
||||
updateWrapper.set("operator_phone", record.getOperator_phone());
|
||||
cnt+=1;
|
||||
}
|
||||
|
||||
if (StrUtil.isNotEmpty(record.getFeed())) {
|
||||
updateWrapper.set("feed", record.getFeed());
|
||||
cnt+=1;
|
||||
}
|
||||
|
||||
if (StrUtil.isNotEmpty(record.getCancel_code())) {
|
||||
updateWrapper.set("cancel_code", record.getCancel_code());
|
||||
cnt+=1;
|
||||
}
|
||||
|
||||
if (StrUtil.isNotEmpty(record.getCancel_reason())) {
|
||||
updateWrapper.set("cancel_reason", record.getCancel_reason());
|
||||
cnt+=1;
|
||||
}
|
||||
|
||||
if (record.getRider_lng()!=null) {
|
||||
updateWrapper.set("rider_lng", record.getRider_lng());
|
||||
cnt+=1;
|
||||
}
|
||||
|
||||
if (record.getRider_lat()!=null) {
|
||||
updateWrapper.set("rider_lat", record.getPush_time());
|
||||
cnt+=1;
|
||||
}
|
||||
|
||||
if (record.getPush_time()!=null && record.getPush_time()>0) {
|
||||
updateWrapper.set("push_time", record.getPush_time());
|
||||
cnt+=1;
|
||||
}
|
||||
|
||||
updateWrapper.set("updated_at", new Date());
|
||||
if (cnt <= 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return update(updateWrapper);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user