From 1fbd523ca71a6b9763a5f92f7f61eb01edc8a3f7 Mon Sep 17 00:00:00 2001 From: Jack <46790855@qq.com> Date: Thu, 28 Nov 2024 17:41:22 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=BA=E4=B8=B0=E5=90=8C=E5=9F=8E=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E6=8E=A5=E5=8F=A3=E6=96=B9=E6=B3=95=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/store/ShopStoreSfOrder.java | 124 ++++++++++++++++++ .../modules/user/ShopUserDeliveryAddress.java | 9 ++ .../mobile/SFExpressController.java | 8 +- .../service/SFExpressApiService.java | 10 ++ .../service/impl/SFExpressApiServiceImpl.java | 86 +++++++++--- .../store/mapper/ShopStoreSfOrderMapper.java | 20 +++ .../store/service/ShopStoreBaseService.java | 1 + .../service/ShopStorePrinterLogService.java | 1 + .../service/ShopStorePrinterService.java | 6 +- .../ShopStoreSameCityTransportService.java | 4 +- .../service/ShopStoreSfOrderService.java | 18 +++ ...StoreSameCityTransportBaseServiceImpl.java | 15 +-- ...ShopStoreSameCityTransportServiceImpl.java | 1 - .../impl/ShopStoreSfOrderServiceImpl.java | 46 +++++++ .../service/impl/ShopUserCartServiceImpl.java | 9 +- .../user/ShopUserDeliveryAddressMapper.xml | 2 +- 16 files changed, 323 insertions(+), 37 deletions(-) create mode 100644 mall-common/src/main/java/com/suisung/mall/common/modules/store/ShopStoreSfOrder.java create mode 100644 mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStoreSfOrderMapper.java create mode 100644 mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreSfOrderService.java create mode 100644 mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreSfOrderServiceImpl.java diff --git a/mall-common/src/main/java/com/suisung/mall/common/modules/store/ShopStoreSfOrder.java b/mall-common/src/main/java/com/suisung/mall/common/modules/store/ShopStoreSfOrder.java new file mode 100644 index 00000000..639229f5 --- /dev/null +++ b/mall-common/src/main/java/com/suisung/mall/common/modules/store/ShopStoreSfOrder.java @@ -0,0 +1,124 @@ +/* + * Copyright (c) 2024. Lorem ipsum dolor sit amet, consectetur adipiscing elit. + * Morbi non lorem porttitor neque feugiat blandit. Ut vitae ipsum eget quam lacinia accumsan. + * Etiam sed turpis ac ipsum condimentum fringilla. Maecenas magna. + * Proin dapibus sapien vel ante. Aliquam erat volutpat. Pellentesque sagittis ligula eget metus. + * Vestibulum commodo. Ut rhoncus gravida arcu. + */ + +package com.suisung.mall.common.modules.store; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import io.swagger.models.auth.In; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("shop_store_sf_order") +@ApiModel(value = "顺丰同城配送订单表实体", description = "顺丰同城配送订单表") +public class ShopStoreSfOrder { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "同城配送订单自增Id") + @TableId(value = "id", type = IdType.INPUT) + private Long id; + + @ApiModelProperty(value = "同城开发者ID") + private Integer dev_id; + + @ApiModelProperty(value = "顺丰订单号, 请注意:新版本V1.9及以后,该订单号升级为JS开头的15位订单号,类型为字符串(老版本仍为int类型)") + private String sf_order_id; + + @ApiModelProperty(value = "顺丰运单号(需要在顺丰后台配置门店后返回此字段)") + private String sf_bill_id; + + @ApiModelProperty(value = "顺丰店铺id") + private String sf_shop_id; + + @ApiModelProperty(value = "商家订单号,唯一的") + private String shop_order_id; + + @ApiModelProperty(value = "配送员姓名") + private String operator_name; + + @ApiModelProperty(value = "配送员电话") + private String operator_phone; + + @ApiModelProperty(value = "sf_order_status` int DEFAULT 0 COMMENT '状态:1-订单创建;2-订单取消;10-配送员接单/配送员改派;12-配送员到店;15配送员配送中(已取货);17-配送员妥投完单;22-配送员撤单;31-取消中;91-骑士上报异常;") + private Integer sf_order_status; + + @ApiModelProperty(value = "状态说明") + private String sf_order_status_desc; + + @ApiModelProperty(value = "推送时间") + private Long push_time; + + @ApiModelProperty(value = "状态流轨迹,JSON 格式") + private String feed; + + @ApiModelProperty(value = "配送轨迹H5页面URL") + private String h5_url; + + @ApiModelProperty(value = "配送费总额,当return_flag中包含1时返回,单位分(值为计算出来此单总价)") + private Integer total_price; + + @ApiModelProperty(value = "配送距离,当return_flag中包含2时返回,单位米(值为计算出来实际配送距离)") + private Integer delivery_distance_meter; + + @ApiModelProperty(value = "省心送费,单位分。在顺丰同城后台配置,配置后有此字段和费用。") + private Integer free_send_service_fee; + + @ApiModelProperty(value = "商品重量,当return_flag中包含4时返回,单位克(值为下单传入参数回传)") + private Integer weight_gram; + + @ApiModelProperty(value = "起送时间,当return_flag中包含8时返回,时间格式为Unix时间戳,注意转换") + private Long start_time; + + @ApiModelProperty(value = "预计送达时间,当return_flag中包含16时返回,时间格式为Unix时间戳,注意转换") + private Long expect_time; + + @ApiModelProperty(value = "总支付金额,当return_flag中包含32时返回,单位分") + private Integer total_pay_money; + + @ApiModelProperty(value = "实际支付金额,当return_flag中包含64时返回,单位分(实际支付金额=总支付金额-优惠券总金额)") + private Integer real_pay_money; + + @ApiModelProperty(value = "优惠券总金额,当return_flag中包含128时返回,单位分") + private Integer coupons_total_fee; + + @ApiModelProperty(value = "结算方式,当return_flag中包含256时返回") + private Integer settlement_type; + + @ApiModelProperty(value = "取件码。在顺丰同城商户侧配置,配置后有此字段。") + private Integer pickup_code; + + @ApiModelProperty(value = "签收码。在顺丰同城商户侧配置,配置后有此字段。") + private Integer complete_code; + + @ApiModelProperty(value = "爆单费,单位分") + private Integer overflow_fee; + + @ApiModelProperty(value = "保价费,单位分") + private Integer insure_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/user/ShopUserDeliveryAddress.java b/mall-common/src/main/java/com/suisung/mall/common/modules/user/ShopUserDeliveryAddress.java index 43f74821..b12a0963 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/modules/user/ShopUserDeliveryAddress.java +++ b/mall-common/src/main/java/com/suisung/mall/common/modules/user/ShopUserDeliveryAddress.java @@ -99,5 +99,14 @@ public class ShopUserDeliveryAddress implements Serializable { @ApiModelProperty(value = "标签:1:-家;2-公司;3-学校;9-其他;") private Integer ud_label; + @ApiModelProperty(value = "街道标记") + private String ud_marker; + + @ApiModelProperty(value = "街道地址") + private String ud_street_addr; + + @ApiModelProperty(value = "门牌号") + private String ud_street_no; + } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/sfexpress/controller/mobile/SFExpressController.java b/mall-shop/src/main/java/com/suisung/mall/shop/sfexpress/controller/mobile/SFExpressController.java index 3ccbd4d1..071b6032 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/sfexpress/controller/mobile/SFExpressController.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/sfexpress/controller/mobile/SFExpressController.java @@ -34,7 +34,7 @@ public class SFExpressController { return sfExpressApiService.createOrder(shopOrderId); } - @ApiOperation(value = "顺丰同城店铺取消订单", notes = "顺丰同城店铺取消订单") + @ApiOperation(value = "用户或店铺取消顺丰同城订单", notes = "用户或店铺取消顺丰同城订单") @RequestMapping(value = "/cancel-order", method = RequestMethod.POST) public SFExpressApiRes cancelOrder(@RequestParam(name = "order_id", defaultValue = "") String orderId) { Map params = new HashMap<>(); @@ -42,7 +42,7 @@ public class SFExpressController { return sfExpressApiService.cancelOrder(params); } - @ApiOperation(value = "顺丰同城店铺订单加小费", notes = "顺丰同城店铺订单加小费") + @ApiOperation(value = "给顺丰同城配送员加小费", notes = "给顺丰同城配送员加小费") @RequestMapping(value = "/add-order-gratuity-fee", method = RequestMethod.POST) public SFExpressApiRes addOrderGratuityFee(@RequestParam(name = "order_id", defaultValue = "") String orderId, @RequestParam(name = "gratuity_fee", defaultValue = "DD-20241119-0001") Integer gratuityFee) { @@ -52,7 +52,7 @@ public class SFExpressController { return sfExpressApiService.addOrderGratuityFee(params); } - @ApiOperation(value = "顺丰同城店铺催单", notes = "顺丰同城店铺催单") + @ApiOperation(value = "向配送员或顺丰同城平台催单", notes = "向配送员或顺丰同城平台催单") @RequestMapping(value = "/reminder-order", method = RequestMethod.POST) public SFExpressApiRes reminderOrder(@RequestParam(name = "order_id", defaultValue = "") String orderId) { Map params = new HashMap<>(); @@ -60,7 +60,7 @@ public class SFExpressController { return sfExpressApiService.reminderOrder(params); } - @ApiOperation(value = "订单状态流查询", notes = "订单状态流查询") + @ApiOperation(value = "查询顺丰同城订单状态流", notes = "查询顺丰同城订单状态流") @RequestMapping(value = "/list-order-feed", method = RequestMethod.POST) public SFExpressApiRes listOrderFeed(@RequestParam(name = "order_id", defaultValue = "") String orderId) { Map params = new HashMap<>(); diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/sfexpress/service/SFExpressApiService.java b/mall-shop/src/main/java/com/suisung/mall/shop/sfexpress/service/SFExpressApiService.java index 6bb77f12..8fd97300 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/sfexpress/service/SFExpressApiService.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/sfexpress/service/SFExpressApiService.java @@ -8,7 +8,9 @@ package com.suisung.mall.shop.sfexpress.service; +import com.suisung.mall.common.pojo.req.SFCreateOrderReq; import com.suisung.mall.common.pojo.res.SFExpressApiRes; +import org.springframework.data.util.Pair; import java.util.Map; @@ -23,6 +25,14 @@ public interface SFExpressApiService { SFExpressApiRes createOrder(String shopOrderId); + /** + * 内部顺丰同城订单下单 + * @param sfCreateOrderReq + * @return + */ + Pair innerCreateSfExpressOrder(SFCreateOrderReq sfCreateOrderReq); + + /** * 取消订单,当商家处发生异常需要取消配送时,可调用此接口对订单进行取消操作,同步返回结果。 * diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/sfexpress/service/impl/SFExpressApiServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/sfexpress/service/impl/SFExpressApiServiceImpl.java index ed356c24..1af4fbd1 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/sfexpress/service/impl/SFExpressApiServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/sfexpress/service/impl/SFExpressApiServiceImpl.java @@ -8,19 +8,26 @@ package com.suisung.mall.shop.sfexpress.service.impl; +import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpUtil; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import com.suisung.mall.common.modules.store.ShopStoreSfOrder; import com.suisung.mall.common.pojo.req.*; import com.suisung.mall.common.pojo.res.SFExpressApiRes; import com.suisung.mall.common.utils.JsonUtil; import com.suisung.mall.shop.sfexpress.service.SFExpressApiService; +import com.suisung.mall.shop.store.service.ShopStoreSfOrderService; import org.apache.commons.codec.binary.Base64; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.util.Pair; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import java.util.ArrayList; @@ -40,7 +47,8 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { @Value("${sf-express.dev_id}") private String devId; - + @Resource + private ShopStoreSfOrderService shopStoreSfOrderService; @Override public SFExpressApiRes createOrder(String shopOrderId) { @@ -66,7 +74,7 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { SFOrderDetailReq orderDetail = new SFOrderDetailReq(); orderDetail.setTotal_price(2000); orderDetail.setProduct_type(6); - orderDetail.setWeight_gram(0); // 重量一律传 0kg 先,谢总本地协商好的 + orderDetail.setWeight_gram(0); // 重量一律传 0kg 先,谢总本地运营商协商好的 orderDetail.setProduct_num(2); orderDetail.setProduct_type_num(1); @@ -83,22 +91,22 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { param.setOrder_detail(orderDetail); - SFOrderShopReq shop = new SFOrderShopReq(); - shop.setShop_name("顺丰同城开放平台"); - shop.setShop_address("蜂巢工场西区"); - shop.setShop_phone("13203559287"); - shop.setShop_lng("116.327914"); - shop.setShop_lat("40.045488"); - param.setShop(shop); + SFOrderShopReq sender = new SFOrderShopReq(); + sender.setShop_name("顺丰同城开放平台"); + sender.setShop_address("蜂巢工场西区"); + sender.setShop_phone("13203559287"); + sender.setShop_lng("116.327914"); + sender.setShop_lat("40.045488"); + param.setShop(sender); - SFOrderReceiveReq receive = new SFOrderReceiveReq(); - receive.setUser_name("顺丰同城"); - receive.setUser_phone("13881979410"); - receive.setUser_address("北京市海淀区学清嘉创大厦A座15层"); - receive.setUser_lng("116.352843"); - receive.setUser_lat("40.015028"); - param.setReceive(receive); + SFOrderReceiveReq receiver = new SFOrderReceiveReq(); + receiver.setUser_name("顺丰同城"); + receiver.setUser_phone("13881979410"); + receiver.setUser_address("北京市海淀区学清嘉创大厦A座15层"); + receiver.setUser_lng("116.352843"); + receiver.setUser_lat("40.015028"); + param.setReceive(receiver); // 转换 json 字符串参数 @@ -115,6 +123,52 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { return JsonUtil.json2object(retRespStr, SFExpressApiRes.class); } + /** + * 内部顺丰同城订单下单 + * + * @param sfCreateOrderReq + * @return + */ + @Override + public Pair innerCreateSfExpressOrder(SFCreateOrderReq sfCreateOrderReq) { + // 请求参数转换 json 字符串参数 + String paramJSON = JsonUtil.toJSONString(sfCreateOrderReq); + + // 根据参数生成请求签名 + String send_url = buildUrl("createorder", paramJSON); + + String retRespStr = HttpUtil.post(send_url, paramJSON); + if (StrUtil.isEmpty(retRespStr)) { + logger.error("顺丰同城:创建订单异常,无返回值!"); + return Pair.of(false, "创建订单异常,无返回值!"); + } + + JSONObject sfExpressApiRes = JSONUtil.parseObj(retRespStr); //JsonUtil.json2object(retRespStr, SFExpressApiRes.class); + if (sfExpressApiRes == null) { + logger.error("顺丰同城:创建订单后异常,无返回值!"); + return Pair.of(false, "创建订单后异常,无返回值!"); + } + + if (!sfExpressApiRes.get("error_code").equals(0) || sfExpressApiRes.get("result") == null) { + logger.error("顺丰同城:创建订单后,发生错误 {}", sfExpressApiRes.get("error_msg")); + return Pair.of(false, Convert.toStr(sfExpressApiRes.get("error_msg"))); + } + + // 顺丰同城 result json 数据转实体实例 + ShopStoreSfOrder shopStoreSfOrder = JSONUtil.toBean(sfExpressApiRes.get("result").toString(),ShopStoreSfOrder.class); + shopStoreSfOrder.setDev_id(sfCreateOrderReq.getDev_id()); + + // 下单成功,保存顺丰同城订单记录到 shop_store_sf_order 表里 + Boolean success = shopStoreSfOrderService.insertShopStoreSfOrder(shopStoreSfOrder); + if (!success) { + return Pair.of(false, "顺丰同城订单保存失败!"); + } + + // 取件码。在顺丰同城商户侧配置,配置后有此字段。 + String pickupCode = shopStoreSfOrder.getPickup_code() != null ? shopStoreSfOrder.getPickup_code().toString() : ""; + return Pair.of(true, pickupCode); + } + /** * 取消订单 * diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStoreSfOrderMapper.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStoreSfOrderMapper.java new file mode 100644 index 00000000..2843899c --- /dev/null +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStoreSfOrderMapper.java @@ -0,0 +1,20 @@ +package com.suisung.mall.shop.store.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.suisung.mall.common.modules.store.ShopStorePrinterLog; +import com.suisung.mall.common.modules.store.ShopStoreSfOrder; +import org.springframework.stereotype.Repository; + +/** + *

+ * 顺丰同城订单 mapper 接口 + *

+ * + * @author panjunjie + * @since 2024-10-28 + */ + +@Repository +public interface ShopStoreSfOrderMapper extends BaseMapper{ + +} 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 7920da31..2665b573 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 @@ -93,6 +93,7 @@ public interface ShopStoreBaseService extends IBaseService { /** * 根据店铺Id获取一条基本店铺信息 + * * @param store_id * @return */ diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStorePrinterLogService.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStorePrinterLogService.java index 2d26c8ac..b7ffe5be 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStorePrinterLogService.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStorePrinterLogService.java @@ -18,6 +18,7 @@ public interface ShopStorePrinterLogService extends IBaseService records); diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStorePrinterService.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStorePrinterService.java index 86168291..1b2ab204 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStorePrinterService.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStorePrinterService.java @@ -7,7 +7,6 @@ import com.suisung.mall.common.pojo.vo.ShopStorePrinterVO; import com.suisung.mall.core.web.service.IBaseService; import java.util.List; -import java.util.Map; public interface ShopStorePrinterService extends IBaseService { @@ -25,6 +24,7 @@ public interface ShopStorePrinterService extends IBaseService /** * 获取一个打印机详情信息 + * * @param printer_id * @return */ @@ -48,6 +48,7 @@ public interface ShopStorePrinterService extends IBaseService /** * 门店开启/关闭一个打票机 + * * @param printer_id * @param status * @return @@ -64,6 +65,7 @@ public interface ShopStorePrinterService extends IBaseService /** * 请空打印机打印队列 + * * @param printer_sn * @return */ @@ -71,6 +73,7 @@ public interface ShopStorePrinterService extends IBaseService /** * 支付成功后,立即打印门店的订单信息 + * * @param orderId * @return */ @@ -78,6 +81,7 @@ public interface ShopStorePrinterService extends IBaseService /** * 获取店铺所有有效打印机 + * * @param storeId * @return */ diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreSameCityTransportService.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreSameCityTransportService.java index a3c6865d..cc42dcbb 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreSameCityTransportService.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreSameCityTransportService.java @@ -8,9 +8,7 @@ package com.suisung.mall.shop.store.service; -import com.suisung.mall.common.api.CommonResult; import com.suisung.mall.common.modules.store.ShopStoreSameCityTransport; -import com.suisung.mall.common.pojo.dto.ShopStoreSameCityTransportBaseDTO; import java.util.List; @@ -19,6 +17,7 @@ public interface ShopStoreSameCityTransportService { /** * 根据同城配送基础配置自增 Id 获取同城配送扩展设置列表 + * * @param transportBaseId * @return */ @@ -26,6 +25,7 @@ public interface ShopStoreSameCityTransportService { /** * 保存同城配送扩展设置列表(存在就更新,不存在就新增) + * * @param transportList * @return 成功的记录数 */ diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreSfOrderService.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreSfOrderService.java new file mode 100644 index 00000000..c2ced356 --- /dev/null +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreSfOrderService.java @@ -0,0 +1,18 @@ +package com.suisung.mall.shop.store.service; + +import com.suisung.mall.common.modules.store.ShopStoreSfOrder; +import com.suisung.mall.core.web.service.IBaseService; + +public interface ShopStoreSfOrderService extends IBaseService { + + /** + * 新增一个顺丰同城订单记录 + * + * @param record + * @return + */ + Boolean insertShopStoreSfOrder(ShopStoreSfOrder record); + + +} + diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreSameCityTransportBaseServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreSameCityTransportBaseServiceImpl.java index 2faaf510..c0ea7630 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreSameCityTransportBaseServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreSameCityTransportBaseServiceImpl.java @@ -12,7 +12,6 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.mchange.lang.DoubleUtils; import com.suisung.mall.common.api.CommonResult; import com.suisung.mall.common.constant.CommonConstant; import com.suisung.mall.common.domain.UserDto; @@ -283,11 +282,11 @@ public class ShopStoreSameCityTransportBaseServiceImpl extends BaseServiceImpltransportBase.getDistance_increase_km()){ + if (diffDistanceM.intValue() > transportBase.getDistance_increase_km()) { times = diffDistanceM.intValue() / transportBase.getDistance_increase_km(); // 求余,如果有余数,增加一次倍数 - if(diffDistanceM.intValue() % transportBase.getDistance_increase_km()>0){ - times+=1; + if (diffDistanceM.intValue() % transportBase.getDistance_increase_km() > 0) { + times += 1; } } @@ -301,15 +300,15 @@ public class ShopStoreSameCityTransportBaseServiceImpl extends BaseServiceImpltransportBase.getWeight_increase_kg()){ + if (diffWeightKg.intValue() > transportBase.getWeight_increase_kg()) { times = diffWeightKg.intValue() / transportBase.getWeight_increase_kg(); // 求余,如果有余数,增加一次倍数 - if(diffWeightKg.intValue() % transportBase.getWeight_increase_kg()>0){ - times+=1; + if (diffWeightKg.intValue() % transportBase.getWeight_increase_kg() > 0) { + times += 1; } } - deliveryBaseFee = deliveryBaseFee.add(transportBase.getWeight_increase_fee().multiply(BigDecimal.valueOf(times))); + deliveryBaseFee = deliveryBaseFee.add(transportBase.getWeight_increase_fee().multiply(BigDecimal.valueOf(times))); } // #### 基础配送费计算完毕 diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreSameCityTransportServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreSameCityTransportServiceImpl.java index 83ebde38..6fdb47ec 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreSameCityTransportServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreSameCityTransportServiceImpl.java @@ -131,5 +131,4 @@ public class ShopStoreSameCityTransportServiceImpl extends BaseServiceImpl implements ShopStoreSfOrderService { + + private static final Logger logger = LoggerFactory.getLogger(ShopStoreSfOrderServiceImpl.class); + + + /** + * 新增一个顺丰同城订单记录 + * + * @param record + * @return + */ + @Override + public Boolean insertShopStoreSfOrder(ShopStoreSfOrder record) { + if (record == null) { + logger.error("ShopStoreSfOrder 实体空值,保存失败!"); + return false; + } + + if (StrUtil.isEmpty(record.getSf_shop_id()) || StrUtil.isEmpty(record.getSf_order_id()) || StrUtil.isEmpty(record.getShop_order_id())) { + logger.error("ShopStoreSfOrder 保存,缺少必要参数,保存失败!"); + return false; + } + + return save(record); + } +} diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/user/service/impl/ShopUserCartServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/user/service/impl/ShopUserCartServiceImpl.java index 1b29074e..554be06f 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/user/service/impl/ShopUserCartServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/user/service/impl/ShopUserCartServiceImpl.java @@ -560,6 +560,7 @@ public class ShopUserCartServiceImpl extends BaseServiceImpl) CollUtil.intersection(allowTransportIds, Convert.toList(Integer.class, item.get("product_transport_id"))); Map stand_item_row = fixCartItemRow(item_row_map, chain_item_row); @@ -1577,7 +1579,6 @@ public class ShopUserCartServiceImpl extends BaseServiceImpl ud_id, user_id, ud_name, ud_intl, ud_mobile, ud_telephone, ud_contacter, ud_im, ud_province_id, ud_province, ud_city_id, ud_city, ud_county_id, ud_county, ud_address, ud_postalcode, ud_tag_name, ud_longitude, ud_latitude, - ud_time, ud_is_default, ud_gender, ud_label + ud_time, ud_is_default, ud_gender, ud_label, ud_marker, ud_street_addr, ud_street_no