配送费删除问题修正
This commit is contained in:
parent
d4038dac85
commit
fa7c4b8c4c
@ -17,6 +17,7 @@ import lombok.Data;
|
|||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@ -25,29 +26,39 @@ import java.util.List;
|
|||||||
@ApiModel(value = "同城配送基础设置DTO", description = "同城配送基础设置DTO")
|
@ApiModel(value = "同城配送基础设置DTO", description = "同城配送基础设置DTO")
|
||||||
public class ShopStoreSameCityTransportBaseDTO implements Serializable {
|
public class ShopStoreSameCityTransportBaseDTO implements Serializable {
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
@ApiModelProperty(value = "店铺同城快递运费设置(起送条件+优惠条件)")
|
@ApiModelProperty(value = "店铺同城快递运费设置(起送条件+优惠条件)")
|
||||||
public List<ShopStoreSameCityTransport> transportList;
|
private List<ShopStoreSameCityTransport> transportList;
|
||||||
|
|
||||||
@ApiModelProperty(value = "店铺同城快递基础运费设置")
|
@ApiModelProperty(value = "店铺同城快递基础运费设置")
|
||||||
ShopStoreSameCityTransportBase transportBase;
|
private ShopStoreSameCityTransportBase transportBase;
|
||||||
|
|
||||||
public void rebuildTransportList() {
|
public void rebuildTransportList() {
|
||||||
if (this.transportBase == null || this.transportList.isEmpty()) {
|
if (this.transportBase == null || this.transportList == null || this.transportList.isEmpty()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (ShopStoreSameCityTransport transport : this.transportList) {
|
// 缓存基础设置的属性值,避免在循环中重复调用getter方法
|
||||||
transport.setTransport_base_id(this.transportBase.getTransport_base_id());
|
Long transportBaseId = this.transportBase.getTransport_base_id();
|
||||||
transport.setUpdated_by(this.transportBase.getUpdated_by());
|
Long storeId = this.transportBase.getStore_id();
|
||||||
transport.setUpdated_at(this.transportBase.getUpdated_at());
|
Integer updatedBy = this.transportBase.getUpdated_by();
|
||||||
transport.setStore_id(this.transportBase.getStore_id());
|
Date updatedAt = this.transportBase.getUpdated_at();
|
||||||
|
|
||||||
if (transport.getCreated_by() == null && transport.getUpdated_by() != null) {
|
for (ShopStoreSameCityTransport transport : this.transportList) {
|
||||||
transport.setCreated_by(transport.getUpdated_by());
|
transport.setTransport_base_id(transportBaseId);
|
||||||
|
transport.setStore_id(storeId);
|
||||||
|
transport.setUpdated_by(updatedBy);
|
||||||
|
transport.setUpdated_at(updatedAt);
|
||||||
|
|
||||||
|
// 设置创建时间相关字段
|
||||||
|
if (transport.getCreated_by() == null && updatedBy != null) {
|
||||||
|
transport.setCreated_by(updatedBy);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (transport.getCreated_at() == null && transport.getUpdated_at() != null) {
|
if (transport.getCreated_at() == null && updatedAt != null) {
|
||||||
transport.setCreated_at(transport.getUpdated_at());
|
transport.setCreated_at(updatedAt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -28,6 +28,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static com.suisung.mall.common.utils.ContextUtil.getCurrentUser;
|
import static com.suisung.mall.common.utils.ContextUtil.getCurrentUser;
|
||||||
|
|
||||||
@ -113,7 +114,7 @@ public class ShopStoreSameCityTransportServiceImpl extends BaseServiceImpl<ShopS
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 保存同城配送扩展设置列表(存在就更新,不存在就新增)
|
* 保存同城配送扩展设置列表(存在就更新,不存在就新增,不在列表中的记录会被删除)
|
||||||
*
|
*
|
||||||
* @param transportList
|
* @param transportList
|
||||||
* @return 成功的记录数
|
* @return 成功的记录数
|
||||||
@ -125,6 +126,36 @@ public class ShopStoreSameCityTransportServiceImpl extends BaseServiceImpl<ShopS
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 获取第一个记录的transport_base_id和store_id作为标识
|
||||||
|
ShopStoreSameCityTransport firstTransport = transportList.get(0);
|
||||||
|
if (firstTransport == null || CheckUtil.isEmpty(firstTransport.getTransport_base_id()) ||
|
||||||
|
CheckUtil.isEmpty(firstTransport.getStore_id())) {
|
||||||
|
logger.error("缺少 transport_base_id 或 store_id 必要参数!");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
Long transportBaseId = firstTransport.getTransport_base_id();
|
||||||
|
Long storeId = firstTransport.getStore_id();
|
||||||
|
|
||||||
|
// 查询数据库中现有的相关记录
|
||||||
|
LambdaQueryWrapper<ShopStoreSameCityTransport> existingRecordsWrapper = new LambdaQueryWrapper<>();
|
||||||
|
existingRecordsWrapper.eq(ShopStoreSameCityTransport::getTransport_base_id, transportBaseId)
|
||||||
|
.eq(ShopStoreSameCityTransport::getStore_id, storeId);
|
||||||
|
List<ShopStoreSameCityTransport> existingRecords = list(existingRecordsWrapper);
|
||||||
|
|
||||||
|
// 提取transportList中记录的transport_id,用于判断哪些记录需要删除
|
||||||
|
List<Long> transportIdsInList = transportList.stream()
|
||||||
|
.filter(t -> t.getTransport_id() != null && t.getTransport_id() > 0)
|
||||||
|
.map(ShopStoreSameCityTransport::getTransport_id)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
// 删除不在transportList中的现有记录
|
||||||
|
for (ShopStoreSameCityTransport existingRecord : existingRecords) {
|
||||||
|
if (!transportIdsInList.contains(existingRecord.getTransport_id())) {
|
||||||
|
removeById(existingRecord.getTransport_id());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int count = 0;
|
int count = 0;
|
||||||
for (ShopStoreSameCityTransport transport : transportList) {
|
for (ShopStoreSameCityTransport transport : transportList) {
|
||||||
try {
|
try {
|
||||||
@ -169,6 +200,7 @@ public class ShopStoreSameCityTransportServiceImpl extends BaseServiceImpl<ShopS
|
|||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据区域设置自增id和店铺id,修改一条区域配送设置
|
* 根据区域设置自增id和店铺id,修改一条区域配送设置
|
||||||
*
|
*
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user