增加顺丰同城的订单到订单详情页

This commit is contained in:
Jack 2024-12-16 16:26:29 +08:00
parent cfbaa09225
commit ea94c40b72
6 changed files with 51 additions and 5 deletions

View File

@ -19,6 +19,12 @@
<dependencies>
<dependency>
<groupId>org</groupId>
<artifactId>jaudiotagger</artifactId>
<version>2.0.1</version>
</dependency>
<!-- mp3文件支持(如语音时长)-->
<dependency>
<groupId>org</groupId>

View File

@ -283,6 +283,8 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
private ShopStoreSameCityTransportBaseService shopStoreSameCityTransportBaseService;
@Resource
private ShopMessageTemplateService shopMessageTemplateService;
@Resource
private ShopStoreSfOrderService shopStoreSfOrderService;
@Value("${sf-express.enable}")
@ -666,7 +668,8 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
Integer kind_id = Convert.toInt(base_row.get("kind_id"));
String chain_code = Convert.toStr(base_row.get("chain_code"));
if (shopProductBaseService.isVirtual(kind_id)) {
Boolean is_virtual = shopProductBaseService.isVirtual(kind_id);
if (is_virtual) {
base_row.put("is_virtual", true);
if (StrUtil.isNotBlank(chain_code)) {
base_row.put("virtual_qrcode", accountBaseConfigService.qrcode(chain_code, 450, 450));
@ -892,7 +895,7 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
}
// 如果是虚拟订单加入shop_product_valid_period表里的信息
Boolean is_virtual = Convert.toBool(base_row.get("is_virtual"));
// Boolean is_virtual = Convert.toBool(base_row.get("is_virtual"));
if (is_virtual) {
Map map = items.get(0);
Long product_id = Convert.toLong(map.get("product_id"));
@ -961,6 +964,18 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
int index = StrUtil.indexOfIgnoreCase(delivery_time_name, "0000");
base_row.put("delivery_time_name", delivery_time == null || index != -1 ? I18nUtil._("正常配送") : delivery_time_name);
// 顺丰同城的订单信息
if(!is_virtual && base_row.get("delivery_type_id")!=null && Convert.toInt(base_row.get("delivery_type_id")).equals(StateCode.DELIVERY_TYPE_SAME_CITY)){
// 非虚拟商品如果是顺丰同城配送的返回顺丰的订单Id
ShopStoreSfOrder shopStoreSfOrder = shopStoreSfOrderService.getByShopOrderId(order_id);
if(shopStoreSfOrder!=null){
base_row.put("sf_order_id", shopStoreSfOrder.getSf_order_id());
base_row.put("sf_bill_id", shopStoreSfOrder.getSf_bill_id());
base_row.put("sf_order_status", shopStoreSfOrder.getOrder_status());
base_row.put("sf_order_status_desc", shopStoreSfOrder.getStatus_desc());
}
}
return base_row;
}

View File

@ -3,6 +3,7 @@ package com.suisung.mall.shop.store.controller.admin;
import cn.hutool.core.collection.CollUtil;
import com.suisung.mall.common.api.CommonResult;
import com.suisung.mall.common.modules.store.ShopStorePrinter;
import com.suisung.mall.common.utils.PositionUtil;
import com.suisung.mall.shop.store.service.ShopStoreEmployeeService;
import com.suisung.mall.shop.store.service.ShopStorePrinterService;
import com.suisung.mall.shop.store.service.ShopStoreSameCityTransportBaseService;
@ -37,9 +38,10 @@ public class ShopStorePrinterController {
@RequestMapping(value = "/testcase", method = {RequestMethod.GET})
public CommonResult TestCase() {
// Object data = shopStoreSameCityTransportBaseService.computeSameCityTransportFee(3L, BigDecimal.valueOf(110.07123874241765), BigDecimal.valueOf(23.366250981849255), 100, BigDecimal.valueOf(0.5), BigDecimal.valueOf(5.5), BigDecimal.valueOf(5.5), true);
Double distanceD = PositionUtil.getDistance4(110.084376,23.394216,110.11752034714767,23.31704849881646);
List<Integer> list = shopStoreEmployeeService.selectEmployeeByStoreId(3,"店铺管理员");
return CommonResult.success(list);
// List<Integer> list = shopStoreEmployeeService.selectEmployeeByStoreId(3,"店铺管理员");
return CommonResult.success(distanceD);
}
@ApiOperation(value = "测试打印模版消息", notes = "测试打印模版消息")

View File

@ -14,6 +14,13 @@ public interface ShopStoreSfOrderService extends IBaseService<ShopStoreSfOrder>
*/
ShopStoreSfOrder getBySfOrderId(String sfOrderId);
/**
* 根据商家订单Id 获取一条记录
* @param shopOrderId
* @return
*/
ShopStoreSfOrder getByShopOrderId(String shopOrderId);
/**
* 根据商家订单号获取顺丰同城的订单号
*

View File

@ -10,6 +10,7 @@ package com.suisung.mall.shop.store.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -341,7 +342,7 @@ public class ShopStoreSameCityTransportBaseServiceImpl extends BaseServiceImpl<S
// 获取基础运费设置记录
ShopStoreSameCityTransportBase transportBase = getShopStoreSameCityTransportBaseById(storeId);
if (ObjectUtil.isNull(transportBase) || ObjectUtil.isNull(transportBase.getStore_longitude()) || ObjectUtil.isNull(transportBase.getStore_latitude()) || ObjectUtil.isNull(transportBase.getDistance_base()) || ObjectUtil.isNull(transportBase.getDelivery_base_fee())) {
if (transportBase==null || transportBase.getStore_longitude()==null || transportBase.getStore_latitude()==null || transportBase.getDistance_base()==null || transportBase.getDelivery_base_fee()==null ) {
logger.error("同城配送费计算:无法获取基础运费设置记录,或店铺经纬度为空");
if (canThrow) {
throw new ApiException(I18nUtil._("商家尚未配置同城配送相关设置。"));
@ -353,6 +354,7 @@ public class ShopStoreSameCityTransportBaseServiceImpl extends BaseServiceImpl<S
Double distanceD = PositionUtil.getDistance4(transportBase.getStore_longitude().doubleValue(), transportBase.getStore_latitude().doubleValue(), orderLongitude.doubleValue(), orderLatitude.doubleValue());
// 实际配送距离单位米
Integer distance = distanceD.intValue();
logger.debug("下单时,店铺与收货地址的距离:{} 米", distance);
// ### 基础配送费计算
BigDecimal deliveryBaseFee = transportBase.getDelivery_base_fee();
@ -390,6 +392,8 @@ public class ShopStoreSameCityTransportBaseServiceImpl extends BaseServiceImpl<S
deliveryBaseFee = deliveryBaseFee.add(transportBase.getWeight_increase_fee().multiply(BigDecimal.valueOf(times)));
}
logger.debug("下单时,店铺与收货地址超出基本距离:额外增加的 {}元 运费", deliveryBaseFee);
// #### 基础配送费计算完毕
@ -440,6 +444,8 @@ public class ShopStoreSameCityTransportBaseServiceImpl extends BaseServiceImpl<S
}
}
logger.debug("下单时,根据规则减免 {}元 运费", reduceDeliveryFee);
if (canDeliveryAreaCnt <= 0) {
if (canThrow) {
throw new ApiException(I18nUtil._(canNotDeliveryReason));

View File

@ -44,6 +44,16 @@ public class ShopStoreSfOrderServiceImpl extends BaseServiceImpl<ShopStoreSfOrde
return getOne(wrapper);
}
@Override
public ShopStoreSfOrder getByShopOrderId(String shopOrderId) {
if (StrUtil.isBlank(shopOrderId)) {
return null;
}
QueryWrapper<ShopStoreSfOrder> wrapper = new QueryWrapper<>();
wrapper.eq("shop_order_id", shopOrderId);
return getOne(wrapper);
}
/**
* 根据商家订单号获取顺丰同城的订单号
*