更改内部配送费计算方法

This commit is contained in:
Jack 2025-12-22 22:31:51 +08:00
parent 9136af8a52
commit 52ff9dabe0
6 changed files with 188 additions and 166 deletions

View File

@ -258,6 +258,9 @@ public class ShopMchEntry implements Serializable {
@ApiModelProperty(value = "是否绑定分账接收方1-是2-否;") @ApiModelProperty(value = "是否绑定分账接收方1-是2-否;")
private Integer has_bind_receiver; private Integer has_bind_receiver;
@ApiModelProperty(value = "父入驻id总店入驻id")
private Integer parent_id;
@ApiModelProperty(value = "该商家入驻记录是否有效0:无效1:有效") @ApiModelProperty(value = "该商家入驻记录是否有效0:无效1:有效")
private Integer status; private Integer status;

View File

@ -99,7 +99,7 @@ public class LakalaController extends BaseControllerImpl {
// return lakalaApiService.tradeQuery(paramsJSON.getInt("storeId"), paramsJSON.getStr("orderId")); // return lakalaApiService.tradeQuery(paramsJSON.getInt("storeId"), paramsJSON.getStr("orderId"));
return lklTkService.getLklShopId("8226330541100J8", ""); return lklTkService.openMerchantAddTerm("8226330541100J8");
} }

View File

@ -827,18 +827,18 @@ public class LklTkServiceImpl {
String reviewPass = dataJSON.getStr("reviewPass"); String reviewPass = dataJSON.getStr("reviewPass");
String merCupNo = dataJSON.getStr("externalCustomerNo"); //拉卡拉外部商户号 String merCupNo = dataJSON.getStr("externalCustomerNo"); //拉卡拉外部商户号
String merInnerNo = dataJSON.getStr("customerNo"); //拉卡拉内部商户号 String merInnerNo = dataJSON.getStr("customerNo"); //拉卡拉内部商户号
String termNos = dataJSON.getStr("termNos"); //拉卡拉分配的业务终端号 String termNo = dataJSON.getStr("termNo"); //拉卡拉分配的业务终端号
logger.debug("解析通知数据完成 - 审核状态: {},外部商户号: {},内部商户号: {},终端号: {}", logger.debug("解析通知数据完成 - 审核状态: {},外部商户号: {},内部商户号: {},终端号: {}",
reviewPass, merCupNo, merInnerNo, termNos); reviewPass, merCupNo, merInnerNo, termNo);
// 合并参数校验 // 合并参数校验
if (dataJSON.isEmpty() || if (dataJSON.isEmpty() ||
StrUtil.isBlank(reviewPass) || StrUtil.isBlank(reviewPass) ||
StrUtil.isBlank(merCupNo) || StrUtil.isBlank(merCupNo) ||
StrUtil.isBlank(merInnerNo) || StrUtil.isBlank(merInnerNo) ||
StrUtil.isBlank(termNos)) { StrUtil.isBlank(termNo)) {
logger.warn("拉卡拉异步通知参数解析出错,数据: {}", data); logger.warn("拉卡拉进异步通知参数解析出错,数据: {}", data);
return new JSONObject().set("code", "500").set("message", "参数解析出错"); return new JSONObject().set("code", "500").set("message", "参数解析出错");
} }
@ -869,7 +869,7 @@ public class LklTkServiceImpl {
// 更新已进件成功的商户号和设备号 // 更新已进件成功的商户号和设备号
logger.debug("开始更新商户拉卡拉审核状态"); logger.debug("开始更新商户拉卡拉审核状态");
Boolean success = shopMchEntryService.updateMerchEntryLklAuditStatusByLklMerCupNo( Boolean success = shopMchEntryService.updateMerchEntryLklAuditStatusByLklMerCupNo(
merInnerNo, merCupNo, termNos, CommonConstant.Enable, null, data); merInnerNo, merCupNo, termNo, CommonConstant.Enable, null, data);
if (!Boolean.TRUE.equals(success)) { if (!Boolean.TRUE.equals(success)) {
logger.error("拉卡拉进件审核通过但更新商户号失败商户ID: {}", mchId); logger.error("拉卡拉进件审核通过但更新商户号失败商户ID: {}", mchId);

View File

@ -1422,14 +1422,17 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
if (!shopOrderBase.getOperate_flag().equals("0")) { if (!shopOrderBase.getOperate_flag().equals("0")) {
return CommonResult.failed("该状态不允许发货操作"); return CommonResult.failed("该状态不允许发货操作");
} }
Pair<Boolean, String> pair = wxOrderShippingService.uploadShippingInfoToWx(2, shopOrderBase.getOrder_id()); Pair<Boolean, String> pair = wxOrderShippingService.uploadShippingInfoToWx(2, shopOrderBase.getOrder_id());
if (pair.getFirst()) { if (pair.getFirst()) {
Integer orderStatus = StateCode.ORDER_STATE_SHIPPED;//已发货 Integer orderStatus = StateCode.ORDER_STATE_SHIPPED;//已发货
Integer orderIsOutStatus = StateCode.ORDER_PICKING_STATE_YES; // 已出库 Integer orderIsOutStatus = StateCode.ORDER_PICKING_STATE_YES; // 已出库
shopOrderInfoService.changeOrderStatus(orderId, orderStatus, orderIsOutStatus, 0); shopOrderInfoService.changeOrderStatus(orderId, orderStatus, orderIsOutStatus, 0);
//完成订单后修改订单异常操作流程进入完成订单环节 //完成订单后修改订单异常操作流程进入完成订单环节
shopOrderBase.setOperate_flag("1"); shopOrderBase.setOperate_flag("1");
shopOrderBaseService.updateById(shopOrderBase); shopOrderBaseService.updateById(shopOrderBase);
//出库扣减思迅库存star //出库扣减思迅库存star
// RMK 第三方数据同步相关redis 给这个商品减去对应的库存 // RMK 第三方数据同步相关redis 给这个商品减去对应的库存
QueryWrapper<ShopOrderItem> itemQueryWrapper = new QueryWrapper<>(); QueryWrapper<ShopOrderItem> itemQueryWrapper = new QueryWrapper<>();
@ -1438,6 +1441,7 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
if (picking(order_item_rows)) { if (picking(order_item_rows)) {
logger.info("自行发货商品扣减库存成功"); logger.info("自行发货商品扣减库存成功");
} }
if (!order_item_rows.isEmpty()) { if (!order_item_rows.isEmpty()) {
for (ShopOrderItem shopOrderItem : order_item_rows) { for (ShopOrderItem shopOrderItem : order_item_rows) {
Map<String, Integer> stockDeltaMap = new HashMap<>(); Map<String, Integer> stockDeltaMap = new HashMap<>();

View File

@ -889,162 +889,171 @@ public class ShopStoreSameCityTransportBaseServiceImpl extends BaseServiceImpl<S
*/ */
@Override @Override
public Integer computeSameCityInnerDeliveryFee(Integer storeId, String orderLongitude, String orderLatitude, Integer orderWeightGram, BigDecimal orderProductAmount, BigDecimal orderDiscountAmount, BigDecimal orderPayAmount) { public Integer computeSameCityInnerDeliveryFee(Integer storeId, String orderLongitude, String orderLatitude, Integer orderWeightGram, BigDecimal orderProductAmount, BigDecimal orderDiscountAmount, BigDecimal orderPayAmount) {
SameCityDeliveryFeeRespDTO sameCityDeliveryFeeRespDTO = computeSameCityTransportFee(Convert.toLong(storeId), orderLongitude, orderLatitude, orderWeightGram, orderProductAmount, orderDiscountAmount, orderPayAmount, false);
if (sameCityDeliveryFeeRespDTO == null
|| sameCityDeliveryFeeRespDTO.getDeliveryFee() == null
|| sameCityDeliveryFeeRespDTO.getDeliveryFee().compareTo(BigDecimal.ZERO) <= 0) {
return 0;
}
return sameCityDeliveryFeeRespDTO.getDeliveryFee().multiply(new BigDecimal(100)).intValue();
// 参数校验 // 参数校验
if (storeId == null || orderLongitude == null || orderLatitude == null || storeId <= 0) { // if (storeId == null || orderLongitude == null || orderLatitude == null || storeId <= 0) {
logger.warn("同城配送缺少必要参数,无法计算配送费。"); // logger.warn("同城配送缺少必要参数,无法计算配送费。");
return 0; // return 0;
} // }
//
// 获取店铺基本信息 // // 获取店铺基本信息
ShopStoreBase storeBase = shopStoreBaseService.get(storeId); // ShopStoreBase storeBase = shopStoreBaseService.get(storeId);
if (storeBase == null) { // if (storeBase == null) {
logger.warn("同城配送缺少店铺基本信息,无法计算配送费。"); // logger.warn("同城配送缺少店铺基本信息,无法计算配送费。");
return 0; // return 0;
} // }
//
String storeName = storeBase.getStore_name(); // String storeName = storeBase.getStore_name();
String storeLng = storeBase.getStore_longitude(); // String storeLng = storeBase.getStore_longitude();
String storeLat = storeBase.getStore_latitude(); // String storeLat = storeBase.getStore_latitude();
if (StrUtil.isBlank(storeLng) || StrUtil.isBlank(storeLat)) { // if (StrUtil.isBlank(storeLng) || StrUtil.isBlank(storeLat)) {
logger.warn("无法获取{}的具体位置,请联系商家。", storeName); // logger.warn("无法获取{}的具体位置,请联系商家。", storeName);
return 0; // return 0;
} // }
//
// 获取平台的基础运费设置记录 // // 获取平台的基础运费设置记录
ShopStoreSameCityTransportBase transportBase = getShopStoreSameCityTransportBaseById(Convert.toLong(storeId), CommonConstant.Enable); // ShopStoreSameCityTransportBase transportBase = getShopStoreSameCityTransportBaseById(Convert.toLong(storeId), CommonConstant.Enable);
if (transportBase == null) { // if (transportBase == null) {
logger.warn("商家{}尚未完成同城配送设置,无法计算配送费。", storeName); // logger.warn("商家{}尚未完成同城配送设置,无法计算配送费。", storeName);
return 0; // return 0;
} // }
//
// 设置默认值 // // 设置默认值
if (transportBase.getDistance_base() == null) { // if (transportBase.getDistance_base() == null) {
transportBase.setDistance_base(0); // transportBase.setDistance_base(0);
} // }
if (transportBase.getWeight_base() == null) { // if (transportBase.getWeight_base() == null) {
transportBase.setWeight_base(0); // transportBase.setWeight_base(0);
} // }
if (transportBase.getDelivery_base_fee() == null) { // if (transportBase.getDelivery_base_fee() == null) {
transportBase.setDelivery_base_fee(BigDecimal.ZERO); // transportBase.setDelivery_base_fee(BigDecimal.ZERO);
} // }
//
// 计算两点的距离(单位米) // // 计算两点的距离(单位米)
Double distanceD = PositionUtil.getDistance1(Convert.toDouble(storeLng), Convert.toDouble(storeLat), Convert.toDouble(orderLongitude), Convert.toDouble(orderLatitude)); // Double distanceD = PositionUtil.getDistance1(Convert.toDouble(storeLng), Convert.toDouble(storeLat), Convert.toDouble(orderLongitude), Convert.toDouble(orderLatitude));
Integer distance = (distanceD != null) ? distanceD.intValue() : 0; // Integer distance = (distanceD != null) ? distanceD.intValue() : 0;
//
// 基础配送费计算 // // 基础配送费计算
BigDecimal deliveryBaseFee = Convert.toBigDecimal(transportBase.getDelivery_base_fee(), BigDecimal.ZERO); // BigDecimal deliveryBaseFee = Convert.toBigDecimal(transportBase.getDelivery_base_fee(), BigDecimal.ZERO);
//
// 获取运费配送范围信息 // // 获取运费配送范围信息
List<ShopStoreSameCityTransport> transportList = shopStoreSameCityTransportService.selectShopStoreSameCityTransportList(Convert.toLong(storeId)); // List<ShopStoreSameCityTransport> transportList = shopStoreSameCityTransportService.selectShopStoreSameCityTransportList(Convert.toLong(storeId));
//
if (CollUtil.isEmpty(transportList)) { // if (CollUtil.isEmpty(transportList)) {
// 没有配送范围规则的时候直接以基础配送费来配送 // // 没有配送范围规则的时候直接以基础配送费来配送
return deliveryBaseFee.multiply(BigDecimal.valueOf(100)).intValue(); // return deliveryBaseFee.multiply(BigDecimal.valueOf(100)).intValue();
} // }
//
// 判断配送范围和起送金额条件 // // 判断配送范围和起送金额条件
String canNotDeliveryReason = ""; // String canNotDeliveryReason = "";
boolean canDelivery = false; // boolean canDelivery = false;
//
// 优先处理距离和金额都满足的规则 // // 优先处理距离和金额都满足的规则
for (ShopStoreSameCityTransport transport : transportList) { // for (ShopStoreSameCityTransport transport : transportList) {
// 判断订单距离是否在配送范围内 // // 判断订单距离是否在配送范围内
if (transport.getMax_delivery_radius() >= distance) { // if (transport.getMax_delivery_radius() >= distance) {
// 距离在配送范围内判断金额是否符合起配金额额度 // // 距离在配送范围内判断金额是否符合起配金额额度
boolean moneyPassed = false; // boolean moneyPassed = false;
if (CommonConstant.Delivery_Amount_Comput_Type_Original.equals(transport.getMin_delivery_amount_type())) { // if (CommonConstant.Delivery_Amount_Comput_Type_Original.equals(transport.getMin_delivery_amount_type())) {
moneyPassed = orderProductAmount != null && transport.getMin_delivery_amount().compareTo(orderProductAmount) <= 0; // moneyPassed = orderProductAmount != null && transport.getMin_delivery_amount().compareTo(orderProductAmount) <= 0;
} else if (CommonConstant.Delivery_Amount_Comput_Type_Discounted.equals(transport.getMin_delivery_amount_type())) { // } else if (CommonConstant.Delivery_Amount_Comput_Type_Discounted.equals(transport.getMin_delivery_amount_type())) {
moneyPassed = orderDiscountAmount != null && transport.getMin_delivery_amount().compareTo(orderDiscountAmount) <= 0; // moneyPassed = orderDiscountAmount != null && transport.getMin_delivery_amount().compareTo(orderDiscountAmount) <= 0;
} else if (CommonConstant.Delivery_Amount_Comput_Type_Payment.equals(transport.getMin_delivery_amount_type())) { // } else if (CommonConstant.Delivery_Amount_Comput_Type_Payment.equals(transport.getMin_delivery_amount_type())) {
moneyPassed = orderPayAmount != null && transport.getMin_delivery_amount().compareTo(orderPayAmount) <= 0; // moneyPassed = orderPayAmount != null && transport.getMin_delivery_amount().compareTo(orderPayAmount) <= 0;
} // }
//
// 距离和金额都满足条件 // // 距离和金额都满足条件
if (moneyPassed) { // if (moneyPassed) {
canDelivery = true; // canDelivery = true;
break; // break;
} // }
} // }
} // }
//
// 如果没有找到完全满足条件的规则再详细检查找出失败原因 // // 如果没有找到完全满足条件的规则再详细检查找出失败原因
if (!canDelivery) { // if (!canDelivery) {
for (ShopStoreSameCityTransport transport : transportList) { // for (ShopStoreSameCityTransport transport : transportList) {
// 判断订单距离是否在配送范围内 // // 判断订单距离是否在配送范围内
if (transport.getMax_delivery_radius() < distance) { // if (transport.getMax_delivery_radius() < distance) {
// 记录距离不满足的原因 // // 记录距离不满足的原因
canNotDeliveryReason = storeName + "的订单不在配送范围内,订单无法配送。"; // canNotDeliveryReason = storeName + "的订单不在配送范围内,订单无法配送。";
} else { // } else {
// 距离在配送范围内判断金额是否符合起配金额额度 // // 距离在配送范围内判断金额是否符合起配金额额度
if (CommonConstant.Delivery_Amount_Comput_Type_Original.equals(transport.getMin_delivery_amount_type())) { // if (CommonConstant.Delivery_Amount_Comput_Type_Original.equals(transport.getMin_delivery_amount_type())) {
if (orderProductAmount != null && transport.getMin_delivery_amount().compareTo(orderProductAmount) > 0) { // if (orderProductAmount != null && transport.getMin_delivery_amount().compareTo(orderProductAmount) > 0) {
BigDecimal diffMoney = transport.getMin_delivery_amount().subtract(orderProductAmount); // BigDecimal diffMoney = transport.getMin_delivery_amount().subtract(orderProductAmount);
canNotDeliveryReason = String.format("%s商品原价金额还差%.2f元,才满足配送条件,请检查订单。", storeName, diffMoney); // canNotDeliveryReason = String.format("%s商品原价金额还差%.2f元,才满足配送条件,请检查订单。", storeName, diffMoney);
} else { // } else {
canDelivery = true; // canDelivery = true;
break; // break;
} // }
} else if (CommonConstant.Delivery_Amount_Comput_Type_Discounted.equals(transport.getMin_delivery_amount_type())) { // } else if (CommonConstant.Delivery_Amount_Comput_Type_Discounted.equals(transport.getMin_delivery_amount_type())) {
if (orderDiscountAmount != null && transport.getMin_delivery_amount().compareTo(orderDiscountAmount) > 0) { // if (orderDiscountAmount != null && transport.getMin_delivery_amount().compareTo(orderDiscountAmount) > 0) {
BigDecimal diffMoney = transport.getMin_delivery_amount().subtract(orderDiscountAmount); // BigDecimal diffMoney = transport.getMin_delivery_amount().subtract(orderDiscountAmount);
canNotDeliveryReason = String.format("%s订单折后金额还差%.2f元,才满足配送条件,请检查订单。", storeName, diffMoney); // canNotDeliveryReason = String.format("%s订单折后金额还差%.2f元,才满足配送条件,请检查订单。", storeName, diffMoney);
} else { // } else {
canDelivery = true; // canDelivery = true;
break; // break;
} // }
} else if (CommonConstant.Delivery_Amount_Comput_Type_Payment.equals(transport.getMin_delivery_amount_type())) { // } else if (CommonConstant.Delivery_Amount_Comput_Type_Payment.equals(transport.getMin_delivery_amount_type())) {
if (orderPayAmount != null && transport.getMin_delivery_amount().compareTo(orderPayAmount) > 0) { // if (orderPayAmount != null && transport.getMin_delivery_amount().compareTo(orderPayAmount) > 0) {
BigDecimal diffMoney = transport.getMin_delivery_amount().subtract(orderPayAmount); // BigDecimal diffMoney = transport.getMin_delivery_amount().subtract(orderPayAmount);
canNotDeliveryReason = String.format("%s订单应支付金额还差%.2f元,才满足配送条件,请检查订单。", storeName, diffMoney); // canNotDeliveryReason = String.format("%s订单应支付金额还差%.2f元,才满足配送条件,请检查订单。", storeName, diffMoney);
} else { // } else {
canDelivery = true; // canDelivery = true;
break; // break;
} // }
} // }
} // }
} // }
} // }
//
// 如果仍然不能配送记录日志并返回0 // // 如果仍然不能配送记录日志并返回0
if (!canDelivery) { // if (!canDelivery) {
logger.warn(canNotDeliveryReason.isEmpty() ? (storeName + "订单不在配送范围内或未达起送金额,请检查!") : canNotDeliveryReason); // logger.warn(canNotDeliveryReason.isEmpty() ? (storeName + "订单不在配送范围内或未达起送金额,请检查!") : canNotDeliveryReason);
return 0; // return 0;
} // }
//
// 额外配送费计算 // // 额外配送费计算
// 每增加一个距离累加运费 // // 每增加一个距离累加运费
if (transportBase.getDistance_increase_km() != null && transportBase.getDistance_increase_fee() != null && distance > transportBase.getDistance_base() * 1000) { // if (transportBase.getDistance_increase_km() != null && transportBase.getDistance_increase_fee() != null && distance > transportBase.getDistance_base() * 1000) {
// 实际配送距离超出基础距离单位km // // 实际配送距离超出基础距离单位km
BigDecimal diffDistanceM = CommonUtil.DecimalRoundHalfUp(BigDecimal.valueOf(distance - transportBase.getDistance_base() * 1000).divide(BigDecimal.valueOf(1000))); // BigDecimal diffDistanceM = CommonUtil.DecimalRoundHalfUp(BigDecimal.valueOf(distance - transportBase.getDistance_base() * 1000).divide(BigDecimal.valueOf(1000)));
// 倍数 // // 倍数
BigDecimal times = BigDecimal.ZERO; // BigDecimal times = BigDecimal.ZERO;
if (transportBase.getDistance_increase_km() > 0 && diffDistanceM.intValue() > transportBase.getDistance_increase_km()) { // if (transportBase.getDistance_increase_km() > 0 && diffDistanceM.intValue() > transportBase.getDistance_increase_km()) {
// 末尾非零进位比如2.1将是3 2.0将是22.001将是3 // // 末尾非零进位比如2.1将是3 2.0将是22.001将是3
times = NumberUtil.div(diffDistanceM, transportBase.getDistance_increase_km()).setScale(0, RoundingMode.UP); // times = NumberUtil.div(diffDistanceM, transportBase.getDistance_increase_km()).setScale(0, RoundingMode.UP);
} // }
//
// 超过基础运费距离后累加上运费 // // 超过基础运费距离后累加上运费
deliveryBaseFee = deliveryBaseFee.add(transportBase.getDistance_increase_fee().multiply(times)); // deliveryBaseFee = deliveryBaseFee.add(transportBase.getDistance_increase_fee().multiply(times));
} // }
//
// 每增加一个重量累加运费重量暂时忽略,配置的时候设置0 // // 每增加一个重量累加运费重量暂时忽略,配置的时候设置0
if (transportBase.getWeight_increase_kg() != null && transportBase.getWeight_increase_fee() != null && orderWeightGram != null && orderWeightGram > transportBase.getWeight_base() * 1000) { // if (transportBase.getWeight_increase_kg() != null && transportBase.getWeight_increase_fee() != null && orderWeightGram != null && orderWeightGram > transportBase.getWeight_base() * 1000) {
// 实际配送重量超出基础重量单位kg // // 实际配送重量超出基础重量单位kg
BigDecimal diffWeightKg = CommonUtil.DecimalRoundHalfUp(BigDecimal.valueOf(orderWeightGram - transportBase.getWeight_base() * 1000).divide(BigDecimal.valueOf(1000))); // BigDecimal diffWeightKg = CommonUtil.DecimalRoundHalfUp(BigDecimal.valueOf(orderWeightGram - transportBase.getWeight_base() * 1000).divide(BigDecimal.valueOf(1000)));
// 倍数 // // 倍数
BigDecimal times = BigDecimal.ZERO; // BigDecimal times = BigDecimal.ZERO;
if (transportBase.getWeight_increase_kg() > 0 && diffWeightKg.intValue() > transportBase.getWeight_increase_kg()) { // if (transportBase.getWeight_increase_kg() > 0 && diffWeightKg.intValue() > transportBase.getWeight_increase_kg()) {
// 末尾非零进位比如2.1将是3 2.0将是22.001将是3 // // 末尾非零进位比如2.1将是3 2.0将是22.001将是3
times = NumberUtil.div(diffWeightKg, transportBase.getWeight_increase_kg()).setScale(0, RoundingMode.UP); // 修正应该除以weight_increase_kg而不是distance_increase_km // times = NumberUtil.div(diffWeightKg, transportBase.getWeight_increase_kg()).setScale(0, RoundingMode.UP);
} // }
//
deliveryBaseFee = deliveryBaseFee.add(transportBase.getWeight_increase_fee().multiply(times)); // deliveryBaseFee = deliveryBaseFee.add(transportBase.getWeight_increase_fee().multiply(times));
} // }
//
// 返回单位为分的配送费 // // 返回单位为分的配送费
return deliveryBaseFee.multiply(BigDecimal.valueOf(100)).intValue(); // return deliveryBaseFee.multiply(BigDecimal.valueOf(100)).intValue();
} }

View File

@ -10,6 +10,7 @@ package com.suisung.mall.shop.store.service.impl;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.suisung.mall.common.api.CommonResult; import com.suisung.mall.common.api.CommonResult;
@ -45,13 +46,16 @@ public class ShopStoreSameCityTransportServiceImpl extends BaseServiceImpl<ShopS
public CommonResult deleteShopStoreSameCityTransport(Long transportId) { public CommonResult deleteShopStoreSameCityTransport(Long transportId) {
// 判断有没有权限 // 判断有没有权限
UserDto user = getCurrentUser(); UserDto user = getCurrentUser();
if (user == null || !user.isStore()) { if (user == null || !user.isStore() || !user.isPlatform()) {
return CommonResult.failed("无权限操作!"); return CommonResult.failed("无权限操作!");
} }
Long storeId = Convert.toLong(user.getStore_id()); Long storeId = 0L;
if (user.isPlatform()) {
storeId = Convert.toLong(user.getStore_id());
}
if (transportId == null || transportId <= 0 || storeId == null || storeId <= 0) { if (transportId == null || transportId <= 0) {
return CommonResult.failed("缺少必要参数"); return CommonResult.failed("缺少必要参数");
} }
@ -208,14 +212,16 @@ public class ShopStoreSameCityTransportServiceImpl extends BaseServiceImpl<ShopS
*/ */
@Override @Override
public Boolean deleteShopStoreSameCityTransport(Long transportId, Long storeId) { public Boolean deleteShopStoreSameCityTransport(Long transportId, Long storeId) {
if (transportId == null || transportId == null || transportId <= 0 || storeId == null || storeId <= 0) { if (transportId == null || transportId == null || transportId <= 0) {
logger.error("缺少 transportId 或 storeId 必要参数!"); logger.error("缺少 transportId 必要参数!");
return false; return false;
} }
QueryWrapper<ShopStoreSameCityTransport> queryWrapper = new QueryWrapper<>(); LambdaQueryWrapper<ShopStoreSameCityTransport> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq("transport_id", transportId); queryWrapper.eq(ShopStoreSameCityTransport::getTransport_id, transportId);
queryWrapper.eq("store_id", storeId); if (storeId != null && storeId > 0) {
queryWrapper.eq(ShopStoreSameCityTransport::getStore_id, storeId);
}
ShopStoreSameCityTransport record = getOne(queryWrapper); ShopStoreSameCityTransport record = getOne(queryWrapper);
if (record == null) { if (record == null) {