From 2a764f1516bbf079c355cb108acb0337675f7aa8 Mon Sep 17 00:00:00 2001 From: Jack <46790855@qq.com> Date: Fri, 15 Aug 2025 08:21:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=93=E5=8C=85=E8=B4=B9=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/modules/order/ShopOrderData.java | 3 + .../modules/order/dto/MchOrderInfoDTO.java | 4 +- .../common/modules/store/ShopStoreBase.java | 14 +- .../common/modules/store/ShopStoreInfo.java | 6 + .../impl/ShopBaseConfigServiceImpl.java | 232 ++++++++++++++++-- .../impl/ShopOrderBaseServiceImpl.java | 54 ++-- .../service/ShopProductBaseService.java | 4 +- .../impl/ShopProductBaseServiceImpl.java | 1 - .../store/service/ShopStoreBaseService.java | 8 + .../impl/ShopStoreBaseServiceImpl.java | 53 +++- .../mapper/order/ShopOrderBaseMapper.xml | 5 +- .../mapper/order/ShopOrderDataMapper.xml | 2 +- .../mapper/store/ShopStoreBaseMapper.xml | 2 +- pom.xml | 2 +- 14 files changed, 339 insertions(+), 51 deletions(-) diff --git a/mall-common/src/main/java/com/suisung/mall/common/modules/order/ShopOrderData.java b/mall-common/src/main/java/com/suisung/mall/common/modules/order/ShopOrderData.java index 9121be53..d00071c8 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/modules/order/ShopOrderData.java +++ b/mall-common/src/main/java/com/suisung/mall/common/modules/order/ShopOrderData.java @@ -98,6 +98,9 @@ public class ShopOrderData implements Serializable { @ApiModelProperty(value = "平台费(分给平台或代理商的费用),根据不同的店铺分类,从商品原价中扣除相应的费用。") private BigDecimal platform_fee; + @ApiModelProperty(value = "店铺统一设置的打包费") + private BigDecimal packing_fee; + @ApiModelProperty(value = "代金券id/优惠券/返现:发放选择使用") private Integer voucher_id; diff --git a/mall-common/src/main/java/com/suisung/mall/common/modules/order/dto/MchOrderInfoDTO.java b/mall-common/src/main/java/com/suisung/mall/common/modules/order/dto/MchOrderInfoDTO.java index fa370c94..09dc7562 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/modules/order/dto/MchOrderInfoDTO.java +++ b/mall-common/src/main/java/com/suisung/mall/common/modules/order/dto/MchOrderInfoDTO.java @@ -62,7 +62,7 @@ public class MchOrderInfoDTO implements Serializable { private Long arrival_time; @ApiModelProperty(value = "订单原价") private BigDecimal order_product_amount; - @ApiModelProperty(value = "应付金额/应支付金额:order_goods_amount - order_discount_amount + order_shipping_fee - order_voucher_price - order_points_fee - order_adjust_fee") + @ApiModelProperty(value = "应付金额/应支付金额:order_goods_amount - order_discount_amount + order_shipping_fee + packing_fee - order_voucher_price - order_points_fee - order_adjust_fee") private BigDecimal order_payment_amount; @ApiModelProperty(value = "货币编号") private Integer currency_id; @@ -74,6 +74,8 @@ public class MchOrderInfoDTO implements Serializable { private BigDecimal order_shipping_fee; @ApiModelProperty(value = "平台费") private BigDecimal platform_fee; + @ApiModelProperty(value = "店铺统一设置的打包费") + private BigDecimal packing_fee; //总计优惠金额 order_discount_amount + order_voucher_price + order_points_fee + order_adjust_fee @ApiModelProperty(value = "总计优惠金额,优惠、折扣、活动费用") private BigDecimal total_discount_amount; diff --git a/mall-common/src/main/java/com/suisung/mall/common/modules/store/ShopStoreBase.java b/mall-common/src/main/java/com/suisung/mall/common/modules/store/ShopStoreBase.java index d4a9f3a0..0c195c77 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/modules/store/ShopStoreBase.java +++ b/mall-common/src/main/java/com/suisung/mall/common/modules/store/ShopStoreBase.java @@ -87,7 +87,7 @@ public class ShopStoreBase implements Serializable { @ApiModelProperty(value = "店铺分类编号") private Integer store_category_id; - @ApiModelProperty(value = "店铺资料信息状态(ENUM):3210-待完善资料; 3220-等待审核 ; 3230-资料审核没有通过; 3240-资料审核通过,待付款") + @ApiModelProperty(value = "店铺资料信息状态(ENUM):3210-待完善资料; 3220-等待审核; 3230-资料审核没有通过; 3240-资料审核通过,待付款") private Integer store_state_id; @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @@ -130,4 +130,16 @@ public class ShopStoreBase implements Serializable { @ApiModelProperty(value = "店铺分账比例数值 0.00-100.00 范围内,数值根据店铺分类计算得出,也可以超管指定一个数值。") private BigDecimal split_ratio; + @ApiModelProperty(value = "店铺统一的打包费, 0-10元范围") + private BigDecimal packing_fee; + + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @ApiModelProperty(value = "新增时间") + private Date created_at; + + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @ApiModelProperty(value = "修改时间") + private Date updated_at; } diff --git a/mall-common/src/main/java/com/suisung/mall/common/modules/store/ShopStoreInfo.java b/mall-common/src/main/java/com/suisung/mall/common/modules/store/ShopStoreInfo.java index 44ba0c91..7dd53f4c 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/modules/store/ShopStoreInfo.java +++ b/mall-common/src/main/java/com/suisung/mall/common/modules/store/ShopStoreInfo.java @@ -58,6 +58,12 @@ public class ShopStoreInfo implements Serializable { @ApiModelProperty(value = "卖家电话") private String store_tel; + @ApiModelProperty(value = "联系人") + private String contact_name; + + @ApiModelProperty(value = "联系人手机") + private String contact_mobile; + @ApiModelProperty(value = "qq") private String store_qq; diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/base/service/impl/ShopBaseConfigServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/base/service/impl/ShopBaseConfigServiceImpl.java index 93e964e6..e4282006 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/base/service/impl/ShopBaseConfigServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/base/service/impl/ShopBaseConfigServiceImpl.java @@ -1,7 +1,5 @@ package com.suisung.mall.shop.base.service.impl; -import cn.hutool.captcha.CaptchaUtil; -import cn.hutool.captcha.LineCaptcha; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; @@ -96,6 +94,7 @@ public class ShopBaseConfigServiceImpl extends BaseServiceImpl 0 ? quantity_frozen : 0); @@ -6164,9 +6169,11 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl kinds = Arrays.asList(StateCode.PRODUCT_KIND_FUWU, StateCode.PRODUCT_KIND_CARD); + // 是否为虚拟商品订单 + boolean isVirtualGoods = kinds.contains(kind_id); // 新增用于判断次卡、优惠券、券码在订单种的类型 ShopProductIndex shopProductIndex = null; - if (kinds.contains(kind_id)) { + if (isVirtualGoods) { if (item_items.size() > 1) { throw new ApiException(I18nUtil._("服务类商品每单只可以购买一种商品")); } @@ -6325,13 +6332,28 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl 0) { + packingFee = new BigDecimal("10"); + } + } + BigDecimal voucher_price = Convert.toBigDecimal(order_voucher_row.get("voucher_price")); - // 应付款金额计算 - BigDecimal order_payment_amount = NumberUtil.sub(NumberUtil.add(order_money_select_items, freight), voucher_price); + // 【重要】应付款金额计算 + BigDecimal order_payment_amount = NumberUtil.sub(NumberUtil.add(order_money_select_items, freight, packingFee), voucher_price); order_payment_amount = NumberUtil.sub(order_payment_amount, dedu_price); order_payment_amount = NumberUtil.max(order_payment_amount, BigDecimal.valueOf(0)); base_row.put("order_product_amount", Convert.toBigDecimal(store_item.get("productMoneyOriginGoods"))); + + // 【重要】应付款金额计算 base_row.put("order_payment_amount", order_payment_amount); // 增加汇率 @@ -6356,7 +6378,7 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl { /** * 加载商品 + * * @param store_id * @return */ - Map getProductBasicIdByStore(Integer store_id,List productNumberList); + Map getProductBasicIdByStore(Integer store_id, List productNumberList); + } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/product/service/impl/ShopProductBaseServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/product/service/impl/ShopProductBaseServiceImpl.java index 48e38401..5b17e53b 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/product/service/impl/ShopProductBaseServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/product/service/impl/ShopProductBaseServiceImpl.java @@ -4647,7 +4647,6 @@ public class ShopProductBaseServiceImpl extends BaseServiceImpl kindIds = Arrays.asList(StateCode.PRODUCT_KIND_ENTITY, StateCode.PRODUCT_KIND_O2O); - return !kindIds.contains(kind_id); } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreBaseService.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreBaseService.java index 5037c0cd..81d25447 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreBaseService.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreBaseService.java @@ -211,4 +211,12 @@ public interface ShopStoreBaseService extends IBaseService { String appendStoreIdToAccount(Integer userId, Integer storeId); + /** + * 获取店铺统一设定的打包费 + * + * @param storeId + * @return + */ + BigDecimal getStorePackingFee(Integer storeId); + } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreBaseServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreBaseServiceImpl.java index 62493a1f..14a1e19f 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreBaseServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreBaseServiceImpl.java @@ -2308,7 +2308,6 @@ public class ShopStoreBaseServiceImpl extends BaseServiceImpl 0) { + if (packingFee.compareTo(new BigDecimal("10")) > 0) { + return CommonResult.failed("打包费请控制在0到10元范围"); + } + base.setPacking_fee(packingFee); + } + + // 百度坐标系BD09经纬度 转出 火星坐标系GCJ02经纬度 (因为数据库保存的经纬度统一是GCJ02经纬度,所以需要转换 ) base = bd09ToGcj02Gps(base); @@ -2490,6 +2499,15 @@ public class ShopStoreBaseServiceImpl extends BaseServiceImpl 0) { + if (packingFee.compareTo(new BigDecimal("10")) > 0) { + return CommonResult.failed("打包费请控制在0到10元范围"); + } + base.setPacking_fee(packingFee); + } + // 百度坐标系BD09经纬度 转出 火星坐标系GCJ02经纬度 (因为数据库保存的经纬度统一是GCJ02经纬度,所以需要转换 ) base = bd09ToGcj02Gps(base); @@ -3091,6 +3109,7 @@ public class ShopStoreBaseServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("store_id", storeId).select("packing_fee"); + + ShopStoreBase shopStoreBase = shopStoreBaseService.findOne(queryWrapper); + if (shopStoreBase != null) { + return shopStoreBase.getPacking_fee(); + } + + return BigDecimal.ZERO; + } + } \ No newline at end of file diff --git a/mall-shop/src/main/resources/mapper/order/ShopOrderBaseMapper.xml b/mall-shop/src/main/resources/mapper/order/ShopOrderBaseMapper.xml index 4c22912c..acee7a92 100644 --- a/mall-shop/src/main/resources/mapper/order/ShopOrderBaseMapper.xml +++ b/mall-shop/src/main/resources/mapper/order/ShopOrderBaseMapper.xml @@ -570,6 +570,7 @@ + @@ -579,7 +580,6 @@ - @@ -625,7 +625,7 @@ - + @@ -782,6 +782,7 @@ (ob.order_product_amount-od.order_discount_amount-od.voucher_price-od.order_points_fee-od.order_adjust_fee-od.platform_fee-od.order_shipping_fee) as order_income_amount, od.platform_fee, + od.packing_fee, od.order_message, sb.store_id, sb.store_name, diff --git a/mall-shop/src/main/resources/mapper/order/ShopOrderDataMapper.xml b/mall-shop/src/main/resources/mapper/order/ShopOrderDataMapper.xml index ae9d73b0..e46db78d 100644 --- a/mall-shop/src/main/resources/mapper/order/ShopOrderDataMapper.xml +++ b/mall-shop/src/main/resources/mapper/order/ShopOrderDataMapper.xml @@ -7,7 +7,7 @@ , order_desc, order_delay_time, delivery_type_id, delivery_time_id, delivery_time, delivery_time_rang, delivery_time_h, delivery_time_i, delivery_istimer, invoice_type_id, invoice_company_code, order_invoice_title, order_message, order_item_amount, order_discount_amount, order_adjust_fee, order_points_fee, - order_shipping_fee_amount, order_shipping_fee, platform_fee, voucher_id, voucher_number, voucher_price, redpacket_id, + order_shipping_fee_amount, order_shipping_fee, platform_fee, packing_fee, voucher_id, voucher_number, voucher_price, redpacket_id, redpacket_number, redpacket_price, order_redpacket_price, order_resource_ext1, order_resource_ext2, order_resource_ext3, trade_payment_money, trade_payment_recharge_card, trade_payment_credit, order_refund_status, order_refund_amount, order_refund_agree_amount, order_return_status, order_return_num, diff --git a/mall-shop/src/main/resources/mapper/store/ShopStoreBaseMapper.xml b/mall-shop/src/main/resources/mapper/store/ShopStoreBaseMapper.xml index 2d2c7b77..1eadde13 100644 --- a/mall-shop/src/main/resources/mapper/store/ShopStoreBaseMapper.xml +++ b/mall-shop/src/main/resources/mapper/store/ShopStoreBaseMapper.xml @@ -8,7 +8,7 @@ store_address, store_latitude, store_longitude, store_is_selfsupport, store_type, store_is_open, store_biz_state, shop_parent_id, store_category_id, store_state_id, store_time, store_end_time, product_category_ids, store_o2o_tags, store_o2o_flag, store_o2o_merchant_id, store_circle, subsite_id, lkl_merchant_no, lkl_term_no, wx_qrcode, - split_ratio + split_ratio, packing_fee, created_at, updated_at