送货地址bug修复
This commit is contained in:
parent
953319764f
commit
01af3bc673
@ -91,19 +91,22 @@ public class OrderPayedListener {
|
||||
// 订单状态处理成功之后,打印小票
|
||||
shopStorePrinterService.printShopStoreOrder(orderId);
|
||||
|
||||
// 发送顺丰同城快递
|
||||
Pair<Boolean, String> pairCreateSfOrder = sfExpressApiService.innerCreateSfExpressOrder(orderId, orderPickupNum);
|
||||
if(pairCreateSfOrder==null){
|
||||
logger.error("顺丰同城下单失败!pairCreateSfOrder 返回空值");
|
||||
return;
|
||||
}
|
||||
// 如果配送方式是 同城配送,直接同城顺丰下单
|
||||
if (orderInfoOld.getDelivery_type_id() != null && orderInfoOld.getDelivery_type_id().equals(StateCode.DELIVERY_TYPE_SAME_CITY)) {
|
||||
// 发送顺丰同城快递
|
||||
Pair<Boolean, String> pairCreateSfOrder = sfExpressApiService.innerCreateSfExpressOrder(orderId, orderPickupNum);
|
||||
if (pairCreateSfOrder == null) {
|
||||
logger.error("顺丰同城下单失败!pairCreateSfOrder 返回空值");
|
||||
return;
|
||||
}
|
||||
|
||||
if(!pairCreateSfOrder.getFirst()){
|
||||
logger.error("顺丰同城下单失败:{}",pairCreateSfOrder.getSecond());
|
||||
return;
|
||||
}
|
||||
if (!pairCreateSfOrder.getFirst()) {
|
||||
logger.error("顺丰同城下单失败:{}", pairCreateSfOrder.getSecond());
|
||||
return;
|
||||
}
|
||||
|
||||
logger.info("顺丰同城下单成功");
|
||||
logger.info("顺丰同城下单成功");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1264,7 +1264,7 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加订单详细信息 预处理 -》 addOrder 转移过来,所以直接读取request 不合规范, 兼容前后端下单逻辑
|
||||
* 添加订单详细信息 预处理 -> addOrder 转移过来,所以直接读取request 不合规范,兼容前后端下单逻辑
|
||||
*
|
||||
* @param user_id 用户编号
|
||||
* @param item_rows 订单数据
|
||||
@ -1487,7 +1487,7 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
|
||||
}
|
||||
}
|
||||
|
||||
// 添加订单
|
||||
// 添加订单(关键方法)
|
||||
List<String> order_id_row = addOrder(cart_data, true, false, null);
|
||||
|
||||
// 最终应付金额
|
||||
@ -5928,7 +5928,7 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
|
||||
|
||||
// 是否需要配送地址, 自提及虚拟到店服务,不需要配送地址。
|
||||
if (is_delivery) {
|
||||
// 计算运费
|
||||
// 计算运费 开始
|
||||
// 是否需要地址
|
||||
Map address_row = (Map) cart_data.get("address_row");
|
||||
if (address_row == null) {
|
||||
@ -5941,7 +5941,7 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
|
||||
// 如果没有配送地址,则忽略地址选择问题。
|
||||
if (deliveryAddress != null && deliveryAddress.getUd_city_id() != null) {
|
||||
Integer district_id = deliveryAddress.getUd_city_id();
|
||||
shopUserCartService.calTransportFreight(cart_data, district_id); // 配送检测
|
||||
shopUserCartService.calTransportFreight(cart_data, district_id); // 配送运费检测和计算
|
||||
} else {
|
||||
throw new ApiException(I18nUtil._("请选择正确的收货地址!"));
|
||||
}
|
||||
|
||||
@ -41,13 +41,13 @@ public class UserDeliveryAddressController extends BaseControllerImpl {
|
||||
}
|
||||
|
||||
@ApiOperation(value = "保存用户地址", notes = "保存用户地址")
|
||||
@RequestMapping(value = "/save", method = RequestMethod.POST)
|
||||
@RequestMapping(value = "/save", method = {RequestMethod.GET, RequestMethod.POST})
|
||||
public CommonResult save(ShopUserDeliveryAddress deliveryAddress) {
|
||||
return userDeliveryAddressService.saveAddress(deliveryAddress);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "删除用户地址", notes = "删除用户地址")
|
||||
@RequestMapping(value = "/remove", method = RequestMethod.POST)
|
||||
@RequestMapping(value = "/remove", method = {RequestMethod.GET, RequestMethod.POST})
|
||||
public CommonResult remove(@RequestParam(name = "ud_id") Integer ud_id) {
|
||||
|
||||
UserDto user = getCurrentUser();
|
||||
|
||||
@ -653,7 +653,7 @@ public class ShopUserCartServiceImpl extends BaseServiceImpl<ShopUserCartMapper,
|
||||
cart_row.put("pfgb_id", pfgb_id);
|
||||
}
|
||||
|
||||
// 生成订单数据,结算checkout预览及生成订单(关键函数)
|
||||
// 重要:生成订单数据,结算checkout预览及生成订单(关键函数)
|
||||
data = formatCartRows(cart_rows, activity_rows, null, null);
|
||||
}
|
||||
}
|
||||
@ -741,7 +741,7 @@ public class ShopUserCartServiceImpl extends BaseServiceImpl<ShopUserCartMapper,
|
||||
if (CollUtil.isNotEmpty(delivery_address_row) && CheckUtil.isNotEmpty(district_id)) {
|
||||
// 计算邮费情况
|
||||
if (Convert.toBool(is_delivery)) {
|
||||
// 配送运费校验和计算
|
||||
// 重要:配送运费校验和计算(涉及的东西比较多)
|
||||
calTransportFreight(data, district_id);
|
||||
data.put("has_stock", data.get("can_delivery")); // 是否有货
|
||||
} else {
|
||||
@ -751,11 +751,11 @@ public class ShopUserCartServiceImpl extends BaseServiceImpl<ShopUserCartMapper,
|
||||
|
||||
// 是否有货
|
||||
boolean has_stock = (boolean) data.get("has_stock");
|
||||
data.put("show_oos", !has_stock);
|
||||
data.put("show_oos", !has_stock); //无库存
|
||||
}
|
||||
|
||||
data.put("address_row", address_row);
|
||||
data.put("delivery_address_row", delivery_address_row);
|
||||
data.put("address_row", address_row); // 用户所有的收货地址
|
||||
data.put("delivery_address_row", delivery_address_row); //用户选择的收货地址
|
||||
|
||||
// todo validPeriod
|
||||
|
||||
@ -1332,7 +1332,7 @@ public class ShopUserCartServiceImpl extends BaseServiceImpl<ShopUserCartMapper,
|
||||
item_row_map.putAll(row);
|
||||
|
||||
|
||||
//允许发的快递类型id,普通快递,同城配送,自取。取交集
|
||||
//允许发的快递类型id:普通快递,同城配送,上门自取。取交集
|
||||
allowTransportIds = (List<Integer>) CollUtil.intersection(allowTransportIds, Convert.toList(Integer.class, item.get("product_transport_id")));
|
||||
|
||||
Map stand_item_row = fixCartItemRow(item_row_map, chain_item_row);
|
||||
@ -2467,10 +2467,12 @@ public class ShopUserCartServiceImpl extends BaseServiceImpl<ShopUserCartMapper,
|
||||
// 配送不到这个区域商品记录
|
||||
List delivery_item_none_row = new ArrayList();
|
||||
|
||||
// 配送不到这个区域商品id
|
||||
cart_data.put("transport_type_none_ids", transport_type_none_ids);
|
||||
// 配送不到这个区域商品记录
|
||||
cart_data.put("delivery_item_none_row", delivery_item_none_row);
|
||||
|
||||
//判断是否是礼包
|
||||
//判断是不是礼包
|
||||
boolean isgiftbag = false;
|
||||
Map activity_rule = new HashMap();
|
||||
|
||||
@ -2481,24 +2483,25 @@ public class ShopUserCartServiceImpl extends BaseServiceImpl<ShopUserCartMapper,
|
||||
BigDecimal freight = BigDecimal.ZERO;
|
||||
|
||||
if (isgiftbag) {
|
||||
// 以下是礼包的情况
|
||||
Integer cart_quantity = Convert.toInt(activity_rule.get("cart_quantity"));
|
||||
BigDecimal giftbag_fixed_amount = Convert.toBigDecimal(activity_rule.get("giftbag_fixed_amount"));
|
||||
BigDecimal giftbag_amount = Convert.toBigDecimal(activity_rule.get("giftbag_amount"));
|
||||
BigDecimal giftbag_fixed_discount = NumberUtil.div(Convert.toBigDecimal(activity_rule.get("giftbag_fixed_discount")), 10);
|
||||
|
||||
if (Convert.toInt(activity_rule.get("group_discount_type")).intValue() == StateCode.ACTIVITY_GROUPBOOKING_FIXED_AMOUNT) {
|
||||
//优惠金额购买
|
||||
//优惠固定金额购买
|
||||
store_row.put("order_money_select_items", NumberUtil.mul(giftbag_fixed_amount, cart_quantity));
|
||||
} else if (Convert.toInt(activity_rule.get("group_discount_type")).intValue() == StateCode.ACTIVITY_GROUPBOOKING_FIXED_DISCOUNT) {
|
||||
//优惠折扣
|
||||
//以固定折扣购买
|
||||
store_row.put("order_money_select_items", NumberUtil.mul(giftbag_amount, giftbag_fixed_discount, cart_quantity));
|
||||
} else {
|
||||
//固定金额购买
|
||||
//以固定价格购买
|
||||
store_row.put("order_money_select_items", NumberUtil.mul(giftbag_amount, cart_quantity));
|
||||
}
|
||||
}
|
||||
|
||||
// todo 此处免运费,传递的是transport_type中的设置, 则默认代表为订单了, 未来可以优化。
|
||||
// todo 此处免运费,传递的是transport_type设置中的值, 则默认代表为订单了, 未来可以优化。
|
||||
BigDecimal post_free_max = BigDecimal.ZERO;
|
||||
|
||||
// 按照店铺订单计算运费
|
||||
@ -2524,7 +2527,7 @@ public class ShopUserCartServiceImpl extends BaseServiceImpl<ShopUserCartMapper,
|
||||
} else {
|
||||
// 判断运费方式,如果发现同一个订单计费模式不一致,报错,禁止下单。
|
||||
Map tt_ids = (Map) store_row.get("tt_ids");
|
||||
Boolean isOnSale = (Boolean) store_row.get("is_on_sale");
|
||||
Boolean isOnSale = (Boolean) store_row.get("is_on_sale");//正活动中的商品?
|
||||
List<ShopStoreTransportType> transport_type_rows = new ArrayList<>();
|
||||
Integer transport_type_id;
|
||||
|
||||
@ -2558,6 +2561,7 @@ public class ShopUserCartServiceImpl extends BaseServiceImpl<ShopUserCartMapper,
|
||||
Integer transport_type_pricing_method = transportType.getTransport_type_pricing_method();
|
||||
BigDecimal order_money_select_items = Convert.toBigDecimal(store_row.get("order_money_select_items"));
|
||||
|
||||
//计费规则(ENUM):1-按件数;2-按重量;3-按体积;4-按配送区域计费(猜测不确定);
|
||||
if (transport_type_pricing_method != null && 4 == transport_type_pricing_method) {
|
||||
// 按照配送区域计费
|
||||
Map data = transportTypeService.calFreight(transport_type_id, district_id, 1, order_money_select_items, post_free_max);
|
||||
@ -2566,6 +2570,7 @@ public class ShopUserCartServiceImpl extends BaseServiceImpl<ShopUserCartMapper,
|
||||
freight = Convert.toBigDecimal(data.get("freight"));
|
||||
} else {
|
||||
if (isgiftbag) {
|
||||
// 以下是礼包的情况
|
||||
Map data = transportTypeService.calFreight(transport_type_id, district_id, Convert.toInt(activity_rule.get("giftbag_quantity")), Convert.toBigDecimal(store_row.get("order_money_select_items")), post_free_max);
|
||||
boolean type_freight = (boolean) data.get("type_freight");
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user