diff --git a/mall-common/src/main/java/com/suisung/mall/common/constant/SFExpressConstant.java b/mall-common/src/main/java/com/suisung/mall/common/constant/SFExpressConstant.java index 5bfe5815..251e9f62 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/constant/SFExpressConstant.java +++ b/mall-common/src/main/java/com/suisung/mall/common/constant/SFExpressConstant.java @@ -16,17 +16,17 @@ import java.util.Map; @Component public class SFExpressConstant { - public int Cons_CreatedOrder = 1; - public int Cons_CanceledOrder = 2; - public int Cons_AcceptOrder = 10; - public int Cons_ArriveStore = 12; - public int Cons_Delivering = 15; - public int Cons_DeliverySuccess = 17; - public int Cons_WithDrawOrder = 22; - public int Cons_ReportException = 91; - public int Cons_CancelingOrder = 31; + public static int Cons_CreatedOrder = 1; + public static int Cons_CanceledOrder = 2; + public static int Cons_AcceptOrder = 10; + public static int Cons_ArriveStore = 12; + public static int Cons_Delivering = 15; + public static int Cons_DeliverySuccess = 17; + public static int Cons_WithDrawOrder = 22; + public static int Cons_ReportException = 91; + public static int Cons_CancelingOrder = 31; - public Map SF_Order_Status_Map = new HashMap(){{ + public static Map SF_Order_Status_Map = new HashMap(){{ put(Cons_CreatedOrder,"订单创建"); put(Cons_CanceledOrder,"订单取消"); put(Cons_AcceptOrder,"配送员接单/配送员改派"); 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 index 655dec2a..780c35bf 100644 --- 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 @@ -12,6 +12,7 @@ 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 com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import io.swagger.models.auth.In; @@ -20,6 +21,7 @@ import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import org.springframework.format.annotation.DateTimeFormat; +import java.math.BigDecimal; import java.util.Date; @Data @@ -32,105 +34,138 @@ public class ShopStoreSfOrder { @ApiModelProperty(value = "同城配送订单自增Id") @TableId(value = "id", type = IdType.INPUT) + @JsonProperty("id") private Long id; @ApiModelProperty(value = "同城开发者ID") + @JsonProperty("dev_id") private Integer dev_id; @ApiModelProperty(value = "顺丰订单号, 请注意:新版本V1.9及以后,该订单号升级为JS开头的15位订单号,类型为字符串(老版本仍为int类型)") + @JsonProperty("sf_order_id") private String sf_order_id; @ApiModelProperty(value = "顺丰运单号(需要在顺丰后台配置门店后返回此字段)") + @JsonProperty("sf_bill_id") private String sf_bill_id; @ApiModelProperty(value = "顺丰店铺id") + @JsonProperty("shop_id") private String shop_id; @ApiModelProperty(value = "商家订单号,唯一的") + @JsonProperty("shop_order_id") private String shop_order_id; @ApiModelProperty(value = "配送员姓名") + @JsonProperty("operator_name") private String operator_name; @ApiModelProperty(value = "配送员电话") + @JsonProperty("operator_phone") private String operator_phone; + @ApiModelProperty(value = "配送员位置经度") + @JsonProperty("rider_lng") + private String rider_lng; + + @ApiModelProperty(value = "配送员位置维度") + @JsonProperty("rider_lat") + private String rider_lat; + @ApiModelProperty(value = "sf_order_status` int DEFAULT 0 COMMENT '状态:1-订单创建;2-订单取消;10-配送员接单/配送员改派;12-配送员到店;15配送员配送中(已取货);17-配送员妥投完单;22-配送员撤单;31-取消中;91-骑士上报异常;") - private Integer sf_order_status; + @JsonProperty("order_status") + private Integer order_status; @ApiModelProperty(value = "状态说明") - private String sf_order_status_desc; + @JsonProperty("status_desc") + private String status_desc; @ApiModelProperty(value = "取消码") + @JsonProperty("cancel_code") private String cancel_code; @ApiModelProperty(value = "取消原因") + @JsonProperty("cancel_reason") private String cancel_reason; - @ApiModelProperty(value = "配送员位置经度") - private Long rider_lng; - - @ApiModelProperty(value = "配送员位置维度") - private Long rider_lat; - @ApiModelProperty(value = "推送时间") + @JsonProperty("push_time") private Long push_time; @ApiModelProperty(value = "状态流轨迹,JSON 格式") + @JsonProperty("feed") private String feed; @ApiModelProperty(value = "配送轨迹H5页面URL") + @JsonProperty("h5_url") private String h5_url; @ApiModelProperty(value = "配送费总额,当return_flag中包含1时返回,单位分(值为计算出来此单总价)") + @JsonProperty("total_price") private Integer total_price; @ApiModelProperty(value = "配送距离,当return_flag中包含2时返回,单位米(值为计算出来实际配送距离)") + @JsonProperty("delivery_distance_meter") private Integer delivery_distance_meter; @ApiModelProperty(value = "省心送费,单位分。在顺丰同城后台配置,配置后有此字段和费用。") + @JsonProperty("free_send_service_fee") private Integer free_send_service_fee; @ApiModelProperty(value = "商品重量,当return_flag中包含4时返回,单位克(值为下单传入参数回传)") + @JsonProperty("weight_gram") private Integer weight_gram; @ApiModelProperty(value = "起送时间,当return_flag中包含8时返回,时间格式为Unix时间戳,注意转换") + @JsonProperty("start_time") private Long start_time; @ApiModelProperty(value = "预计送达时间,当return_flag中包含16时返回,时间格式为Unix时间戳,注意转换") + @JsonProperty("expect_time") private Long expect_time; @ApiModelProperty(value = "总支付金额,当return_flag中包含32时返回,单位分") + @JsonProperty("total_pay_money") private Integer total_pay_money; @ApiModelProperty(value = "实际支付金额,当return_flag中包含64时返回,单位分(实际支付金额=总支付金额-优惠券总金额)") + @JsonProperty("real_pay_money") private Integer real_pay_money; @ApiModelProperty(value = "优惠券总金额,当return_flag中包含128时返回,单位分") + @JsonProperty("coupons_total_fee") private Integer coupons_total_fee; @ApiModelProperty(value = "结算方式,当return_flag中包含256时返回") + @JsonProperty("settlement_type") private Integer settlement_type; @ApiModelProperty(value = "取件码。在顺丰同城商户侧配置,配置后有此字段。") + @JsonProperty("pickup_code") private Integer pickup_code; @ApiModelProperty(value = "签收码。在顺丰同城商户侧配置,配置后有此字段。") + @JsonProperty("complete_code") private Integer complete_code; @ApiModelProperty(value = "爆单费,单位分") + @JsonProperty("overflow_fee") private Integer overflow_fee; @ApiModelProperty(value = "保价费,单位分") + @JsonProperty("insure_fee") private Integer insure_fee; @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @JsonProperty("created_at") @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 = "修改时间") + @JsonProperty("updated_at") private Date updated_at; } diff --git a/mall-common/src/main/java/com/suisung/mall/common/pojo/res/SFExpressApiRes.java b/mall-common/src/main/java/com/suisung/mall/common/pojo/res/SFExpressApiRes.java index 78dd600c..409b58f8 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/pojo/res/SFExpressApiRes.java +++ b/mall-common/src/main/java/com/suisung/mall/common/pojo/res/SFExpressApiRes.java @@ -14,6 +14,8 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import java.io.Serializable; + /** * 顺丰同城开放平台 api 返回的数据结构 */ @@ -21,7 +23,9 @@ import lombok.NoArgsConstructor; @NoArgsConstructor @AllArgsConstructor @JsonInclude(JsonInclude.Include.NON_NULL) -public class SFExpressApiRes { +public class SFExpressApiRes implements Serializable { + private static final long serialVersionUID = 1L; + @ApiModelProperty(value = "错误码") private Integer error_code; @ApiModelProperty(value = "错误信息") diff --git a/mall-common/src/main/java/com/suisung/mall/common/pojo/res/SFExpressFeedRes.java b/mall-common/src/main/java/com/suisung/mall/common/pojo/res/SFExpressFeedRes.java new file mode 100644 index 00000000..4d839f59 --- /dev/null +++ b/mall-common/src/main/java/com/suisung/mall/common/pojo/res/SFExpressFeedRes.java @@ -0,0 +1,48 @@ +/* + * 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.pojo.res; + +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.Date; + +/** + * 顺丰同城开放平台物流轨迹实体 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@JsonInclude(JsonInclude.Include.NON_NULL) +public class SFExpressFeedRes implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "顺丰订单号") + private String sf_order_id; + @ApiModelProperty(value = "商家订单号") + private String shop_order_id; + @ApiModelProperty(value = "顺丰订单状态") + public Integer order_status; + @ApiModelProperty(value = "操作记录日志") + private String operator; + @ApiModelProperty(value = "操作员") + private String operator_name; + @ApiModelProperty(value = "操作员电话") + private String operator_phone; + @ApiModelProperty(value = "顺丰订单状态说明") + private String status_desc; + @ApiModelProperty(value = "内容") + private String content; + @ApiModelProperty(value = "操作时间") + private Date create_time; +} diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java index e3bf25da..58186f87 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java @@ -102,6 +102,7 @@ import org.apache.ibatis.annotations.Param; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.data.util.Pair; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.stereotype.Service; @@ -352,8 +353,10 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl> statisticState() { @@ -6245,7 +6248,7 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl pairShopAddr = shopStoreBaseService.checkStoreAddress(shopStoreBase); - SFOrderShopReq sfOrderShopReq = new SFOrderShopReq(); - sfOrderShopReq.setShop_name(shopStoreBase.getStore_name()); - sfOrderShopReq.setShop_phone(shopStoreInfo.getStore_tel()); - sfOrderShopReq.setShop_address(pairShopAddr.getSecond().getFullAddress()); - sfOrderShopReq.setShop_lng(pairShopAddr.getSecond().getLongitude()); - sfOrderShopReq.setShop_lat(pairShopAddr.getSecond().getLatitude()); - - sfCreateOrderReq.setShop(sfOrderShopReq); - - // 收货人信息 - Pair pairReceiveAddr = shopOrderDeliveryAddressService.checkAddress(shopOrderDeliveryAddress); + SFOrderShopReq shop = new SFOrderShopReq(); SFOrderReceiveReq receive = new SFOrderReceiveReq(); - receive.setUser_name(shopOrderDeliveryAddress.getDa_name()); - receive.setUser_phone(shopOrderDeliveryAddress.getDa_mobile()); - receive.setUser_address(pairReceiveAddr.getSecond().getFullAddress()); - receive.setUser_lng(pairReceiveAddr.getSecond().getLongitude()); - receive.setUser_lat(pairReceiveAddr.getSecond().getLatitude()); + if(enable_sf_express.equals(CommonConstant.Enable)){ + // 店铺信息(发货人信息) + Pair pairShopAddr = shopStoreBaseService.checkStoreAddress(shopStoreBase); + shop.setShop_name(shopStoreBase.getStore_name()); + shop.setShop_phone(shopStoreInfo.getStore_tel()); + shop.setShop_address(pairShopAddr.getSecond().getFullAddress()); + shop.setShop_lng(pairShopAddr.getSecond().getLongitude()); + shop.setShop_lat(pairShopAddr.getSecond().getLatitude()); + // 收货人信息 + Pair pairReceiveAddr = shopOrderDeliveryAddressService.checkAddress(shopOrderDeliveryAddress); + receive.setUser_name(shopOrderDeliveryAddress.getDa_name()); + receive.setUser_phone(shopOrderDeliveryAddress.getDa_mobile()); + receive.setUser_address(pairReceiveAddr.getSecond().getFullAddress()); + receive.setUser_lng(pairReceiveAddr.getSecond().getLongitude()); + receive.setUser_lat(pairReceiveAddr.getSecond().getLatitude()); + }else{ + // 店铺信息(发货人信息) + shop.setShop_name("顺丰同城开放平台"); + shop.setShop_address("蜂巢工场西区"); + shop.setShop_phone("13203559287"); + shop.setShop_lng("116.327914"); + shop.setShop_lat("40.045488"); + // 收货人信息 + receive.setUser_name("顺丰同城"); + receive.setUser_phone("13881979410"); + receive.setUser_address("北京市海淀区学清嘉创大厦A座15层"); + receive.setUser_lng("116.352843"); + receive.setUser_lat("40.015028"); + } + sfCreateOrderReq.setShop(shop); sfCreateOrderReq.setReceive(receive); return sfCreateOrderReq; diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/sfexpress/controller/api/SFExpressApiController.java b/mall-shop/src/main/java/com/suisung/mall/shop/sfexpress/controller/api/SFExpressApiController.java index d4ff6209..f512c8f2 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/sfexpress/controller/api/SFExpressApiController.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/sfexpress/controller/api/SFExpressApiController.java @@ -25,19 +25,19 @@ public class SFExpressApiController { @ApiOperation(value = "顺丰原因订单取消回调", notes = "顺丰原因订单取消回调") @RequestMapping(value = "/cancel-order/notify", method = RequestMethod.POST) - public SFExpressApiRes cancelOrderNotify(@RequestBody String requestBody,@RequestParam(name = "sign") String sign) { + public SFExpressApiRes cancelOrderNotify(@RequestBody String requestBody, @RequestParam(name = "sign") String sign) { return sfExpressApiService.receiveCancelOrderNotify(requestBody, sign); } @ApiOperation(value = "接收顺丰配送状态更改回调", notes = "接收顺丰配送状态更改回调") @RequestMapping(value = "/rider-order-status/notify", method = RequestMethod.POST) - public SFExpressApiRes receiveRiderOrderStatusNotify(@RequestBody String requestBody,@RequestParam(name = "sign") String sign) { + public SFExpressApiRes receiveRiderOrderStatusNotify(@RequestBody String requestBody, @RequestParam(name = "sign") String sign) { return sfExpressApiService.receiveRiderOrderStatusNotify(requestBody, sign); } @ApiOperation(value = "接收顺丰订单完成回调", notes = "接收顺丰订单完成回调") @RequestMapping(value = "/order-complete/notify", method = RequestMethod.POST) - public SFExpressApiRes receiveOrderCompleteNotify(@RequestBody String requestBody,@RequestParam(name = "sign") String sign) { + public SFExpressApiRes receiveOrderCompleteNotify(@RequestBody String requestBody, @RequestParam(name = "sign") String sign) { return sfExpressApiService.receiveOrderCompleteNotify(requestBody, sign); } } 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 071b6032..f52dc5ff 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 @@ -10,14 +10,15 @@ package com.suisung.mall.shop.sfexpress.controller.mobile; import com.suisung.mall.common.pojo.res.SFExpressApiRes; import com.suisung.mall.shop.sfexpress.service.SFExpressApiService; +import com.suisung.mall.shop.store.service.ShopStoreSfOrderService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import javax.annotation.Resource; import java.util.HashMap; import java.util.Map; @@ -25,9 +26,12 @@ import java.util.Map; @RestController @RequestMapping("/mobile/shop/sf-express") public class SFExpressController { - @Autowired + @Resource private SFExpressApiService sfExpressApiService; + @Resource + private ShopStoreSfOrderService shopStoreSfOrderService; + @ApiOperation(value = "顺丰同城店铺发单", notes = "顺丰同城店铺发单") @RequestMapping(value = "/create-order", method = RequestMethod.POST) public SFExpressApiRes createOrder(@RequestParam(name = "shop_order_id", defaultValue = "") String shopOrderId) { @@ -38,7 +42,7 @@ public class SFExpressController { @RequestMapping(value = "/cancel-order", method = RequestMethod.POST) public SFExpressApiRes cancelOrder(@RequestParam(name = "order_id", defaultValue = "") String orderId) { Map params = new HashMap<>(); - params.put("order_id",orderId); + params.put("order_id", shopStoreSfOrderService.getSfOrderIdByShopOrderId(orderId)); return sfExpressApiService.cancelOrder(params); } @@ -47,8 +51,8 @@ public class SFExpressController { public SFExpressApiRes addOrderGratuityFee(@RequestParam(name = "order_id", defaultValue = "") String orderId, @RequestParam(name = "gratuity_fee", defaultValue = "DD-20241119-0001") Integer gratuityFee) { Map params = new HashMap<>(); - params.put("order_id",orderId); - params.put("gratuity_fee",gratuityFee); + params.put("order_id", shopStoreSfOrderService.getSfOrderIdByShopOrderId(orderId)); + params.put("gratuity_fee", gratuityFee); return sfExpressApiService.addOrderGratuityFee(params); } @@ -56,7 +60,7 @@ public class SFExpressController { @RequestMapping(value = "/reminder-order", method = RequestMethod.POST) public SFExpressApiRes reminderOrder(@RequestParam(name = "order_id", defaultValue = "") String orderId) { Map params = new HashMap<>(); - params.put("order_id",orderId); + params.put("order_id", shopStoreSfOrderService.getSfOrderIdByShopOrderId(orderId)); return sfExpressApiService.reminderOrder(params); } @@ -64,7 +68,7 @@ public class SFExpressController { @RequestMapping(value = "/list-order-feed", method = RequestMethod.POST) public SFExpressApiRes listOrderFeed(@RequestParam(name = "order_id", defaultValue = "") String orderId) { Map params = new HashMap<>(); - params.put("order_id",orderId); + params.put("order_id", shopStoreSfOrderService.getSfOrderIdByShopOrderId(orderId)); return sfExpressApiService.listOrderFeed(params); } @@ -72,7 +76,7 @@ public class SFExpressController { @RequestMapping(value = "/rider-latest-position", method = RequestMethod.POST) public SFExpressApiRes riderLatestPosition(@RequestParam(name = "order_id", defaultValue = "") String orderId) { Map params = new HashMap<>(); - params.put("order_id",orderId); + params.put("order_id", shopStoreSfOrderService.getSfOrderIdByShopOrderId(orderId)); return sfExpressApiService.riderLatestPosition(params); } @@ -80,10 +84,7 @@ public class SFExpressController { @RequestMapping(value = "/rider-view/v2", method = RequestMethod.POST) public SFExpressApiRes riderViewV2(@RequestParam(name = "order_id", defaultValue = "") String orderId) { Map params = new HashMap<>(); - params.put("order_id",orderId); + params.put("order_id", shopStoreSfOrderService.getSfOrderIdByShopOrderId(orderId)); return sfExpressApiService.riderViewV2(params); } - - - } 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 55b8fab5..7e371686 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,6 @@ 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; @@ -27,11 +26,12 @@ public interface SFExpressApiService { /** * 内部顺丰同城订单下单 + * * @param orderId * @param orderPickupNum * @return */ - Pair innerCreateSfExpressOrder(String orderId, Long orderPickupNum); + Pair innerCreateSfExpressOrder(String orderId, Long orderPickupNum); /** @@ -72,6 +72,7 @@ public interface SFExpressApiService { /** * 订单状态流查询,此接口可获取到指定订单操作记录;当接收顺丰状态回调失败时,可以主动查询此接口补齐订单操作与状态。 * 注:支持查6个月内的数据。 + * * @param params * @return */ @@ -106,6 +107,7 @@ public interface SFExpressApiService { /** * 接收顺丰原因订单取消回调 + * * @param jsonData * @param sign * @return @@ -114,6 +116,7 @@ public interface SFExpressApiService { /** * 接收顺丰配送状态更改回调 + * * @param jsonData * @param sign * @return @@ -122,6 +125,7 @@ public interface SFExpressApiService { /** * 接收顺丰订单完成回调 + * * @param jsonData * @param sign * @return 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 aeb0c9e1..4eec36d8 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 @@ -15,6 +15,7 @@ import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.suisung.mall.common.api.StateCode; +import com.suisung.mall.common.constant.SFExpressConstant; import com.suisung.mall.common.exception.ApiException; import com.suisung.mall.common.modules.store.ShopStoreSfOrder; import com.suisung.mall.common.pojo.req.*; @@ -179,10 +180,13 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { // 顺丰同城 result json 数据转实体实例 ShopStoreSfOrder shopStoreSfOrder = JSONUtil.toBean(sfExpressApiRes.get("result").toString(), ShopStoreSfOrder.class); shopStoreSfOrder.setDev_id(sfCreateOrderReq.getDev_id()); + shopStoreSfOrder.setOrder_status(SFExpressConstant.Cons_CreatedOrder); + shopStoreSfOrder.setStatus_desc("已创建顺丰同城订单"); // 下单成功,保存顺丰同城订单记录到 shop_store_sf_order 表里 Boolean success = shopStoreSfOrderService.insertShopStoreSfOrder(shopStoreSfOrder); if (!success) { + logger.error("顺丰下单返回的结果:{}", sfExpressApiRes.get("result").toString()); return Pair.of(false, "保存顺丰同城下单失败!"); } @@ -198,18 +202,18 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { /** * 取消订单 * - * @param sfOrderId 顺丰订单号 + * @param orderId 商家订单号 * @param cancelCode 取消码,参考:https://openic.sf-express.com/open/api/docs/index/#/apidoc * @param cancelReason 取消原因 * @return */ @Override - public SFExpressApiRes cancelOrder(String sfOrderId, Integer cancelCode, String cancelReason) { + public SFExpressApiRes cancelOrder(String orderId, Integer cancelCode, String cancelReason) { Map params = buildCommonParams(); - params.put("order_id", sfOrderId); - if (StrUtil.isNotEmpty(cancelReason) && cancelCode != null) { - params.put("cancel_code", sfOrderId); - params.put("cancel_reason", sfOrderId); + params.put("order_id", orderId); + if (StrUtil.isNotBlank(cancelReason) && cancelCode != null) { + params.put("cancel_code", orderId); + params.put("cancel_reason", orderId); } return cancelOrder(params); } @@ -221,43 +225,69 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { * @return */ @Override + @Transactional public SFExpressApiRes cancelOrder(Map params) { + // TODO 检验用户权限 + if (params == null || params.get("order_id") == null) { return new SFExpressApiRes().fail(1003, "请求参数有误!"); } // 转换 json 字符串参数 String orderId = params.get("order_id").toString(); + params.putAll(buildCommonParams()); + String paramJSON = JsonUtil.toJSONString(params); // 根据参数生成请求签名 String send_url = buildUrl("cancelorder", paramJSON); String retRespStr = HttpUtil.post(send_url, paramJSON); - if (StrUtil.isEmpty(retRespStr)) { + if (StrUtil.isBlank(retRespStr)) { logger.error("顺丰同城:取消订单异常,无返回值!"); - return new SFExpressApiRes().fail(-1, "顺丰同城:无返回值!"); + return new SFExpressApiRes().fail(2, "顺丰同城:无返回值!"); } SFExpressApiRes sfExpressApiRes = JsonUtil.json2object(retRespStr, SFExpressApiRes.class); if (sfExpressApiRes == null) { - logger.error("顺丰同城:取消订单,返回值异常!"); - return new SFExpressApiRes().fail(-1, "顺丰同城:无返回值!"); + logger.error("顺丰同城:取消订单,返回值异常!{}", retRespStr); + return new SFExpressApiRes().fail(2, "顺丰同城:无返回值!"); + } + + if (!sfExpressApiRes.getError_code().equals(0)) { + logger.error("顺丰同城:取消订单失败!{}", retRespStr); + return new SFExpressApiRes().fail(2, sfExpressApiRes.getError_msg()); } // 判断订单的状态,是否已经取消了?已取消,不再执行 ShopStoreSfOrder shopStoreSfOrderExist = shopStoreSfOrderService.getBySfOrderId(orderId); - if (shopStoreSfOrderExist != null && shopStoreSfOrderExist.getSf_order_status() != null - && (shopStoreSfOrderExist.getSf_order_status().equals(StateCode.SF_ORDER_STATUS_CANCELED) || - (shopStoreSfOrderExist.getSf_order_status().equals(StateCode.SF_ORDER_STATUS_CANCELING)))) { + if (shopStoreSfOrderExist == null) { + return new SFExpressApiRes().fail(2,"订单有误!"); + } + + if (shopStoreSfOrderExist.getOrder_status() != null + && (shopStoreSfOrderExist.getOrder_status().equals(StateCode.SF_ORDER_STATUS_CANCELED) || + (shopStoreSfOrderExist.getOrder_status().equals(StateCode.SF_ORDER_STATUS_CANCELING)))) { return new SFExpressApiRes().success("订单已取消过!"); } // 更改商城订单状态为:已取消,注意事务问题 List orderList = new ArrayList<>(); - orderList.add(orderId); + orderList.add(shopStoreSfOrderExist.getShop_order_id()); Boolean success = shopOrderBaseService.cancel(orderList, null, false); if (!success) { - return new SFExpressApiRes().fail(-1, "取消订单业务处理失败!"); +// return new SFExpressApiRes().fail(1, "取消商家订单失败!"); + throw new ApiException(I18nUtil._("取消商家订单失败!")); + } + + // 更改顺丰的订单状态 + ShopStoreSfOrder shopStoreSfOrder = new ShopStoreSfOrder(); + shopStoreSfOrder.setSf_order_id(shopStoreSfOrderExist.getSf_order_id()); + shopStoreSfOrder.setOrder_status(StateCode.SF_ORDER_STATUS_CANCELED); + shopStoreSfOrder.setStatus_desc("线上商城发起取消订单"); + success = shopStoreSfOrderService.updateShopStoreSfOrderStatus(shopStoreSfOrder); + if (!success) { +// return new SFExpressApiRes().fail(1, "取消顺丰订单失败!"); + throw new ApiException(I18nUtil._("取消顺丰订单失败!")); } return sfExpressApiRes; @@ -283,8 +313,8 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { // 根据参数生成请求签名 String send_url = buildUrl("addordergratuityfee", paramJSON); String retRespStr = HttpUtil.post(send_url, paramJSON); - if (StrUtil.isEmpty(retRespStr)) { - logger.error("顺丰同城:订单加小费,无返回值!"); + if (StrUtil.isBlank(retRespStr)) { + logger.error("顺丰同城:订单加小费,无返回值!{}", retRespStr); return new SFExpressApiRes().fail(-1, "顺丰同城:无返回值!"); } @@ -311,7 +341,7 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { // 根据参数生成请求签名 String send_url = buildUrl("reminderorder", paramJSON); String retRespStr = HttpUtil.post(send_url, paramJSON); - if (StrUtil.isEmpty(retRespStr)) { + if (StrUtil.isBlank(retRespStr)) { logger.error("顺丰同城:催单异常,无返回值!"); return new SFExpressApiRes().fail(-1, "顺丰同城:无返回值!"); } @@ -341,7 +371,7 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { // 根据参数生成请求签名 String send_url = buildUrl("listorderfeed", paramJSON); String retRespStr = HttpUtil.post(send_url, paramJSON); - if (StrUtil.isEmpty(retRespStr)) { + if (StrUtil.isBlank(retRespStr)) { logger.error("顺丰同城:订单状态流查询异常,无返回值!"); return new SFExpressApiRes().fail(-1, "顺丰同城:无返回值!"); } @@ -369,7 +399,7 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { // 根据参数生成请求签名 String send_url = buildUrl("riderlatestposition", paramJSON); String retRespStr = HttpUtil.post(send_url, paramJSON); - if (StrUtil.isEmpty(retRespStr)) { + if (StrUtil.isBlank(retRespStr)) { logger.error("顺丰同城:获取配送员实时坐标异常,无返回值!"); return new SFExpressApiRes().fail(-1, "顺丰同城:无返回值!"); } @@ -397,7 +427,7 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { // 根据参数生成请求签名 String send_url = buildUrl("riderviewv2", paramJSON); String retRespStr = HttpUtil.post(send_url, paramJSON); - if (StrUtil.isEmpty(retRespStr)) { + if (StrUtil.isBlank(retRespStr)) { logger.error("顺丰同城:获取配送员轨迹H5异常,无返回值!"); return new SFExpressApiRes().fail(-1, "顺丰同城:无返回值!"); } @@ -441,9 +471,9 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { // 判断订单的状态,是否已经取消了?已取消,不再执行 ShopStoreSfOrder shopStoreSfOrderExist = shopStoreSfOrderService.getBySfOrderId(shopStoreSfOrder.getShop_order_id()); - if (shopStoreSfOrderExist != null && shopStoreSfOrderExist.getSf_order_status() != null - && (shopStoreSfOrderExist.getSf_order_status().equals(StateCode.SF_ORDER_STATUS_CANCELED) || - (shopStoreSfOrderExist.getSf_order_status().equals(StateCode.SF_ORDER_STATUS_CANCELING)))) { + if (shopStoreSfOrderExist != null && shopStoreSfOrderExist.getOrder_status() != null + && (shopStoreSfOrderExist.getOrder_status().equals(StateCode.SF_ORDER_STATUS_CANCELED) || + (shopStoreSfOrderExist.getOrder_status().equals(StateCode.SF_ORDER_STATUS_CANCELING)))) { return new SFExpressApiRes().success("success"); } @@ -486,25 +516,47 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { // 更改顺丰同城订单状态 ShopStoreSfOrder shopStoreSfOrder = toShopStoreSfOrder(jsonData); + + // 获取顺丰同城的物流轨迹 + Map params = new HashMap<>(); + params.put("order_id", shopStoreSfOrder.getSf_order_id()); + SFExpressApiRes feedRes = listOrderFeed(params); + logger.info("获取配送员物流轨迹:{}", feedRes); + if (feedRes != null && feedRes.getError_code().equals(0)) { + JSONObject result = JSONUtil.parseObj(feedRes.getResult()); + if (result != null && result.get("feed") != null) { + shopStoreSfOrder.setFeed(JSONUtil.toJsonStr(result.get("feed"))); + } + } + Boolean success = shopStoreSfOrderService.updateShopStoreSfOrderStatus(shopStoreSfOrder); if (!success) { throw new ApiException(I18nUtil._("状态处理失败!")); -// return new SFExpressApiRes().fail(-1,"状态处理失败!"); } // 更改商城订单状态为:注意事务问题 - if (shopStoreSfOrder.getSf_order_status().equals(StateCode.SF_ORDER_STATUS_RECEIVED)) { - // 配送员已取单配送中 + Integer orderStatus = 0; + Integer orderIsOutStatus = 0; + Integer orderIsShippedStatus = 0; + if (shopStoreSfOrder.getOrder_status().equals(StateCode.SF_ORDER_STATUS_RECEIVING) + || shopStoreSfOrder.getOrder_status().equals(StateCode.SF_ORDER_STATUS_ARRIVED)) {// 配送员已取单配送中 + // 商城订单状态:从 2020-待配货 到 2030; //待发货 + orderStatus = StateCode.ORDER_STATE_WAIT_SHIPPING; + orderIsOutStatus = 0; + orderIsShippedStatus = 0; + } else if (shopStoreSfOrder.getOrder_status().equals(StateCode.SF_ORDER_STATUS_RECEIVED)) {// 配送员已取单配送中 // 商城订单状态:从 2030-待发货 到 2040-已发货/待收货确认 - success = shopOrderInfoService.changeOrderStatus(shopStoreSfOrder.getShop_order_id(), StateCode.ORDER_STATE_WAIT_SHIPPING, StateCode.ORDER_PICKING_STATE_YES, StateCode.ORDER_SHIPPED_STATE_YES); + orderStatus = StateCode.ORDER_STATE_SHIPPED; + orderIsOutStatus = StateCode.ORDER_PICKING_STATE_YES; + orderIsShippedStatus = StateCode.ORDER_SHIPPED_STATE_YES; } + success = shopOrderInfoService.changeOrderStatus(shopStoreSfOrder.getShop_order_id(), orderStatus, orderIsOutStatus, orderIsShippedStatus); + if (!success) { throw new ApiException(I18nUtil._("状态处理失败!")); - //return new SFExpressApiRes().fail(-1,"状态处理失败!"); } - return new SFExpressApiRes().success("success"); } @@ -541,15 +593,25 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { } // 订单状态已经更改过,无需更改 - if (order.getSf_order_status().equals(StateCode.SF_ORDER_STATUS_FINISH)) { + if (order.getOrder_status().equals(StateCode.SF_ORDER_STATUS_FINISH)) { return new SFExpressApiRes().success("success"); } + // 获取顺丰同城的物流轨迹 + Map params = new HashMap<>(); + params.put("order_id", shopStoreSfOrder.getSf_order_id()); + SFExpressApiRes feedRes = listOrderFeed(params); + logger.info("获取配送员物流轨迹:{}", feedRes); + if (feedRes != null && feedRes.getError_code().equals(0)) { + JSONObject result = JSONUtil.parseObj(feedRes.getResult()); + if (result != null && result.get("feed") != null) { + shopStoreSfOrder.setFeed(JSONUtil.toJsonStr(result.get("feed"))); + } + } Boolean success = shopStoreSfOrderService.updateShopStoreSfOrderStatus(shopStoreSfOrder); if (!success) { throw new ApiException(I18nUtil._("状态处理失败!")); -// return new SFExpressApiRes().fail(-1,"状态处理失败!"); } // 更改商城订单状态为:已完成,注意事务问题 diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopStoreMediaGalleryController.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopStoreMediaGalleryController.java index dd1e49b8..3b029578 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopStoreMediaGalleryController.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopStoreMediaGalleryController.java @@ -101,7 +101,7 @@ public class ShopStoreMediaGalleryController extends BaseControllerImpl { List galleries = shopPlantformMediaGalleryService.find(plantformMediaGalleryQueryWrapper); ShopPlantformMediaGallery mediaGallery = new ShopPlantformMediaGallery(); - mediaGallery.setGallery_id(0l); + mediaGallery.setGallery_id(0L); mediaGallery.setGallery_name(I18nUtil._("未分类")); galleries.add(0, mediaGallery); return CommonResult.success(galleries); @@ -122,7 +122,7 @@ public class ShopStoreMediaGalleryController extends BaseControllerImpl { List galleries = shopStoreMediaGalleryService.find(queryWrapper); ShopStoreMediaGallery mediaGallery = new ShopStoreMediaGallery(); - mediaGallery.setGallery_id(0l); + mediaGallery.setGallery_id(0L); mediaGallery.setGallery_name(I18nUtil._("未分类")); galleries.add(0, mediaGallery); return CommonResult.success(galleries); diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopStorePrinterController.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopStorePrinterController.java index bf76c649..e781a2ab 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopStorePrinterController.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopStorePrinterController.java @@ -2,14 +2,10 @@ package com.suisung.mall.shop.store.controller.admin; import com.suisung.mall.common.api.CommonResult; import com.suisung.mall.common.modules.store.ShopStorePrinter; -import com.suisung.mall.common.modules.store.ShopStoreSameCityTransportBase; -import com.suisung.mall.common.utils.CommonUtil; -import com.suisung.mall.shop.store.mapper.ShopStorePrinterMapper; import com.suisung.mall.shop.store.service.ShopStorePrinterService; import com.suisung.mall.shop.store.service.ShopStoreSameCityTransportBaseService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; @@ -33,34 +29,34 @@ public class ShopStorePrinterController { @ApiOperation(value = "内部测试案例", notes = "内部测试案例") @RequestMapping(value = "/testcase", method = {RequestMethod.GET}) public CommonResult TestCase() { - Object data = shopStoreSameCityTransportBaseService.computeSameCityTransportFee(3L, BigDecimal.valueOf(110.07123874241765), BigDecimal.valueOf(23.366250981849255), 100, BigDecimal.valueOf(0.5), BigDecimal.valueOf(5.5), BigDecimal.valueOf(5.5),true); + Object data = shopStoreSameCityTransportBaseService.computeSameCityTransportFee(3L, BigDecimal.valueOf(110.07123874241765), BigDecimal.valueOf(23.366250981849255), 100, BigDecimal.valueOf(0.5), BigDecimal.valueOf(5.5), BigDecimal.valueOf(5.5), true); return CommonResult.success(data); } @ApiOperation(value = "测试打印模版消息", notes = "测试打印模版消息") @RequestMapping(value = "/print/order", method = {RequestMethod.POST}) - public boolean printOrder(@RequestParam(name = "orderId" , required = true) String orderId) { + public boolean printOrder(@RequestParam(name = "orderId", required = true) String orderId) { return shopStorePrinterService.printShopStoreOrder(orderId); } @ApiOperation(value = "门店打票机分页列表查询", notes = "门店打票机分页列表查询") @RequestMapping(value = "/page", method = {RequestMethod.GET}) public CommonResult shopStorePrinterPageList(@RequestParam(name = "keyword", defaultValue = "") String keyword, - @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum, - @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { - return shopStorePrinterService.shopStorePrinterPageList(keyword,pageNum,pageSize); + @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { + return shopStorePrinterService.shopStorePrinterPageList(keyword, pageNum, pageSize); } @ApiOperation(value = "门店一个打票机详情", notes = "门店一个打票机详情") @RequestMapping(value = "/detail", method = {RequestMethod.GET}) - public CommonResult shopStorePrinterDetail(@RequestParam(name = "printer_id" , required = true) Long printer_id) { + public CommonResult shopStorePrinterDetail(@RequestParam(name = "printer_id", required = true) Long printer_id) { return shopStorePrinterService.shopStorePrinterDetail(printer_id); } @ApiOperation(value = "门店新增一个打票机", notes = "门店新增一个打票机") @RequestMapping(value = "/add/new", method = {RequestMethod.POST}) - public CommonResult addNewShopStorePrinter(@RequestParam(name = "model_id" , required = true) Long model_id, + public CommonResult addNewShopStorePrinter(@RequestParam(name = "model_id", required = true) Long model_id, @RequestParam(name = "printer_name", required = true) String printer_name, @RequestParam(name = "printer_sn", required = true) String printer_sn, @RequestParam(name = "printer_key", required = true) String printer_key, @@ -83,14 +79,14 @@ public class ShopStorePrinterController { @ApiOperation(value = "门店修改一个打票机", notes = "门店修改一个打票机") @RequestMapping(value = "/update", method = {RequestMethod.POST}) - public CommonResult updateShopStorePrinter(@RequestParam(name = "printer_id" , required = true) Long printer_id, - @RequestParam(name = "model_id" , required = true) Long model_id, - @RequestParam(name = "printer_name", required = true) String printer_name, - @RequestParam(name = "printer_sn", required = true) String printer_sn, - @RequestParam(name = "printer_key", required = true) String printer_key, - @RequestParam(name = "region_id", required = true) Integer region_id, - @RequestParam(name = "paper_with", defaultValue = "58") Integer paper_with, - @RequestParam(name = "website_url", defaultValue = "") String website_url) { + public CommonResult updateShopStorePrinter(@RequestParam(name = "printer_id", required = true) Long printer_id, + @RequestParam(name = "model_id", required = true) Long model_id, + @RequestParam(name = "printer_name", required = true) String printer_name, + @RequestParam(name = "printer_sn", required = true) String printer_sn, + @RequestParam(name = "printer_key", required = true) String printer_key, + @RequestParam(name = "region_id", required = true) Integer region_id, + @RequestParam(name = "paper_with", defaultValue = "58") Integer paper_with, + @RequestParam(name = "website_url", defaultValue = "") String website_url) { ShopStorePrinter shopStorePrinter = new ShopStorePrinter(); shopStorePrinter.setPrinter_id(printer_id); @@ -107,20 +103,20 @@ public class ShopStorePrinterController { @ApiOperation(value = "门店开启/关闭一个打票机", notes = "门店开启/关闭一个打票机") @RequestMapping(value = "/status/update", method = {RequestMethod.POST}) - public CommonResult updateShopStorePrinterStatus(@RequestParam(name = "printer_id" , required = true) Long printerId, - @RequestParam(name = "status" , required = true) Integer status) { + public CommonResult updateShopStorePrinterStatus(@RequestParam(name = "printer_id", required = true) Long printerId, + @RequestParam(name = "status", required = true) Integer status) { return shopStorePrinterService.updateShopStorePrinterStatus(printerId, status); } @ApiOperation(value = "门店删除一个打票机", notes = "门店删除一个打票机") @RequestMapping(value = "/delete", method = {RequestMethod.POST}) - public CommonResult deleteShopStorePrinter(@RequestParam(name = "printer_id" , required = true) Long printer_id) { + public CommonResult deleteShopStorePrinter(@RequestParam(name = "printer_id", required = true) Long printer_id) { return shopStorePrinterService.deleteShopStorePrinter(printer_id); } @ApiOperation(value = "清空打票机打印队列", notes = "清空打票机打印队列") @RequestMapping(value = "/clear/print/queue", method = {RequestMethod.POST}) - public CommonResult clearShopPrinterQueue(@RequestParam(name = "printer_sn" , required = true) String printer_sn) { + public CommonResult clearShopPrinterQueue(@RequestParam(name = "printer_sn", required = true) String printer_sn) { return shopStorePrinterService.clearPrinterQueue(printer_sn); } } \ No newline at end of file diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopStorePrinterModelController.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopStorePrinterModelController.java index 98696930..aeeec520 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopStorePrinterModelController.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopStorePrinterModelController.java @@ -22,9 +22,9 @@ public class ShopStorePrinterModelController { @ApiOperation(value = "门店打票机型号分页列表查询", notes = "门店打票机型号分页列表查询") @RequestMapping(value = "/page", method = {RequestMethod.GET}) public CommonResult shopStorePrinterModelPageList(@RequestParam(name = "keyword", defaultValue = "") String keyword, - @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum, - @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { - return CommonResult.success(shopStorePrinterModelService.shopStorePrinterModelPageList(keyword,pageNum,pageSize)); + @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { + return CommonResult.success(shopStorePrinterModelService.shopStorePrinterModelPageList(keyword, pageNum, pageSize)); } @ApiOperation(value = "门店打票机型号列表查询", notes = "门店打票机型号列表查询") @@ -35,18 +35,18 @@ public class ShopStorePrinterModelController { @ApiOperation(value = "门店一个打票机型号详情", notes = "门店一个打票机型号详情") @RequestMapping(value = "/detail", method = {RequestMethod.GET}) - public CommonResult shopStorePrinterModelDetail(@RequestParam(name = "model_id" , required = true) Long printer_id) { + public CommonResult shopStorePrinterModelDetail(@RequestParam(name = "model_id", required = true) Long printer_id) { return shopStorePrinterModelService.shopStorePrinterModelDetail(printer_id); } @ApiOperation(value = "门店新增一个打票机型号", notes = "门店新增一个打票机型号") @RequestMapping(value = "/add/new", method = {RequestMethod.POST}) public CommonResult addNewShopStorePrinterModel( - @RequestParam(name = "model_name", required = true) String model_name, - @RequestParam(name = "intro", defaultValue = "") String intro, - @RequestParam(name = "brand_name", required = true) String brand_name, - @RequestParam(name = "website_url", defaultValue = "") String website_url, - @RequestParam(name = "paper_with", defaultValue = "58") Integer paper_with) { + @RequestParam(name = "model_name", required = true) String model_name, + @RequestParam(name = "intro", defaultValue = "") String intro, + @RequestParam(name = "brand_name", required = true) String brand_name, + @RequestParam(name = "website_url", defaultValue = "") String website_url, + @RequestParam(name = "paper_with", defaultValue = "58") Integer paper_with) { ShopStorePrinterModel shopStorePrinterModel = new ShopStorePrinterModel(); shopStorePrinterModel.setModel_name(model_name); @@ -61,7 +61,7 @@ public class ShopStorePrinterModelController { @ApiOperation(value = "门店修改一个打票机型号", notes = "门店修改一个打票机型号") @RequestMapping(value = "/update", method = {RequestMethod.POST}) - public CommonResult updateShopStorePrinterModel(@RequestParam(name = "model_id" , required = true) Long model_id, + public CommonResult updateShopStorePrinterModel(@RequestParam(name = "model_id", required = true) Long model_id, @RequestParam(name = "model_name", required = true) String model_name, @RequestParam(name = "intro", defaultValue = "") String intro, @RequestParam(name = "brand_name", required = true) String brand_name, @@ -82,7 +82,7 @@ public class ShopStorePrinterModelController { @ApiOperation(value = "门店删除一个打票机型号", notes = "门店删除一个打票机型号") @RequestMapping(value = "/delete", method = {RequestMethod.POST}) - public CommonResult deleteShopStorePrinterModel(@RequestParam(name = "model_id" , required = true) Long model_id) { + public CommonResult deleteShopStorePrinterModel(@RequestParam(name = "model_id", required = true) Long model_id) { return shopStorePrinterModelService.deleteShopStorePrinterModel(model_id); } } \ No newline at end of file diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopStorePrinterRegionController.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopStorePrinterRegionController.java index 9cc2140a..7a57a6ca 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopStorePrinterRegionController.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopStorePrinterRegionController.java @@ -22,9 +22,9 @@ public class ShopStorePrinterRegionController { @ApiOperation(value = "门店打票机摆放区域分页列表查询", notes = "门店打票机摆放区域分页列表查询") @RequestMapping(value = "/page", method = {RequestMethod.GET}) public CommonResult shopStorePrinterRegionPageList(@RequestParam(name = "keyword", defaultValue = "") String keyword, - @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum, - @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { - return CommonResult.success(shopStorePrinterRegionService.shopStorePrinterRegionPageList(keyword,pageNum,pageSize)); + @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { + return CommonResult.success(shopStorePrinterRegionService.shopStorePrinterRegionPageList(keyword, pageNum, pageSize)); } @ApiOperation(value = "门店打票机摆放区域列表查询", notes = "门店打票机摆放区域分页列表查询") @@ -37,8 +37,8 @@ public class ShopStorePrinterRegionController { @ApiOperation(value = "门店新增一个打票机摆放区域", notes = "门店新增一个打票机摆放区域") @RequestMapping(value = "/add/new", method = {RequestMethod.POST}) public CommonResult addNewShopStorePrinterRegion( - @RequestParam(name = "region", required = true) String region, - @RequestParam(name = "intro", defaultValue = "") String intro) { + @RequestParam(name = "region", required = true) String region, + @RequestParam(name = "intro", defaultValue = "") String intro) { ShopStorePrinterRegion shopStorePrinterRegion = new ShopStorePrinterRegion(); shopStorePrinterRegion.setRegion(region); @@ -49,9 +49,9 @@ public class ShopStorePrinterRegionController { @ApiOperation(value = "门店修改一个打票机摆放区域", notes = "门店修改一个打票机摆放区域") @RequestMapping(value = "/update", method = {RequestMethod.POST}) - public CommonResult updateShopStorePrinterRegion(@RequestParam(name = "region_id" , required = true) Long region_id, - @RequestParam(name = "region", required = true) String region, - @RequestParam(name = "intro", defaultValue = "") String intro) { + public CommonResult updateShopStorePrinterRegion(@RequestParam(name = "region_id", required = true) Long region_id, + @RequestParam(name = "region", required = true) String region, + @RequestParam(name = "intro", defaultValue = "") String intro) { ShopStorePrinterRegion shopStorePrinterRegion = new ShopStorePrinterRegion(); shopStorePrinterRegion.setRegion_id(region_id); @@ -63,7 +63,7 @@ public class ShopStorePrinterRegionController { @ApiOperation(value = "门店删除一个打票机摆放区域", notes = "门店删除一个打票机摆放区域") @RequestMapping(value = "/delete", method = {RequestMethod.POST}) - public CommonResult deleteShopStorePrinterRegion(@RequestParam(name = "model_id" , required = true) Long model_id) { + public CommonResult deleteShopStorePrinterRegion(@RequestParam(name = "model_id", required = true) Long model_id) { return shopStorePrinterRegionService.deleteShopStorePrinterRegion(model_id); } } \ No newline at end of file diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopStorePrinterTemplateController.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopStorePrinterTemplateController.java index f500fb9e..f5b2a150 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopStorePrinterTemplateController.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopStorePrinterTemplateController.java @@ -21,8 +21,8 @@ public class ShopStorePrinterTemplateController { @ApiOperation(value = "获取门店打票机下单打印模版", notes = "获取门店打票机下单打印模版") @RequestMapping(value = "/order", method = {RequestMethod.GET}) public CommonResult shopStorePrinterRegionPageList( - @RequestParam(name = "store_id", defaultValue = "0") Integer storeId, - @RequestParam(name = "category", defaultValue = "1") Integer category) { + @RequestParam(name = "store_id", defaultValue = "0") Integer storeId, + @RequestParam(name = "category", defaultValue = "1") Integer category) { return shopStorePrinterTemplateService.getShopStorePrinterTemplate(storeId, category); } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopStoreSameCityTransportBaseController.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopStoreSameCityTransportBaseController.java index dcccb99a..a7793e8d 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopStoreSameCityTransportBaseController.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopStoreSameCityTransportBaseController.java @@ -1,17 +1,12 @@ package com.suisung.mall.shop.store.controller.admin; -import cn.hutool.json.JSONUtil; import com.suisung.mall.common.api.CommonResult; -import com.suisung.mall.common.modules.store.ShopStorePrinter; -import com.suisung.mall.common.modules.store.ShopStoreSameCityTransportBase; import com.suisung.mall.common.pojo.dto.ShopStoreSameCityTransportBaseDTO; import com.suisung.mall.common.utils.JsonUtil; -import com.suisung.mall.shop.store.service.ShopStorePrinterService; import com.suisung.mall.shop.store.service.ShopStoreSameCityTransportBaseService; import com.suisung.mall.shop.store.service.ShopStoreSameCityTransportService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -42,7 +37,7 @@ public class ShopStoreSameCityTransportBaseController { @ApiOperation(value = "删除同城配送的一个区域设置", notes = "删除同城配送的一个区域设置") @RequestMapping(value = "/delete/area", method = {RequestMethod.POST}) - public CommonResult deleteShopStoreSameCityTransport(@RequestParam(name = "transport_id" , required = true) Long transportId) { + public CommonResult deleteShopStoreSameCityTransport(@RequestParam(name = "transport_id", required = true) Long transportId) { return transportService.deleteShopStoreSameCityTransport(transportId); } } \ No newline at end of file diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStorePrinterLogMapper.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStorePrinterLogMapper.java index 5f98630f..7b7b6d8a 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStorePrinterLogMapper.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStorePrinterLogMapper.java @@ -14,5 +14,5 @@ import org.springframework.stereotype.Repository; */ @Repository -public interface ShopStorePrinterLogMapper extends BaseMapper{ +public interface ShopStorePrinterLogMapper extends BaseMapper { } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStorePrinterMapper.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStorePrinterMapper.java index 15c722be..1ae699c9 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStorePrinterMapper.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStorePrinterMapper.java @@ -20,9 +20,10 @@ import java.util.Map; */ @Repository -public interface ShopStorePrinterMapper extends BaseMapper{ +public interface ShopStorePrinterMapper extends BaseMapper { /** * 根据关键字获取打票机分页列表查询,自定义扩展实体类 + * * @param keyword * @return */ diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStorePrinterTemplateMapper.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStorePrinterTemplateMapper.java index 7bfbb964..adcc69da 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStorePrinterTemplateMapper.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStorePrinterTemplateMapper.java @@ -14,5 +14,5 @@ import org.springframework.stereotype.Repository; */ @Repository -public interface ShopStorePrinterTemplateMapper extends BaseMapper{ +public interface ShopStorePrinterTemplateMapper extends BaseMapper { } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStoreSameCityTransportBaseMapper.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStoreSameCityTransportBaseMapper.java index 87cd6143..d989620b 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStoreSameCityTransportBaseMapper.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStoreSameCityTransportBaseMapper.java @@ -13,5 +13,5 @@ import com.suisung.mall.common.modules.store.ShopStoreSameCityTransportBase; import org.springframework.stereotype.Repository; @Repository -public interface ShopStoreSameCityTransportBaseMapper extends BaseMapper { +public interface ShopStoreSameCityTransportBaseMapper extends BaseMapper { } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStoreSameCityTransportMapper.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStoreSameCityTransportMapper.java index 1d1ccffc..2f8f33f3 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStoreSameCityTransportMapper.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStoreSameCityTransportMapper.java @@ -10,7 +10,6 @@ package com.suisung.mall.shop.store.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.suisung.mall.common.modules.store.ShopStoreSameCityTransport; -import com.suisung.mall.common.modules.store.ShopStoreSameCityTransportBase; import org.springframework.stereotype.Repository; @Repository 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 index 2843899c..ca02f902 100644 --- 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 @@ -1,7 +1,6 @@ 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; @@ -15,6 +14,6 @@ import org.springframework.stereotype.Repository; */ @Repository -public interface ShopStoreSfOrderMapper extends BaseMapper{ +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 ca103963..1aade0d5 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 @@ -103,6 +103,7 @@ public interface ShopStoreBaseService extends IBaseService { /** * 检测店铺的地址是否有效,返回规范全地址 + * * @param shopStoreBase * @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 index 5e60ea9c..4454e2c4 100644 --- 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 @@ -14,6 +14,14 @@ public interface ShopStoreSfOrderService extends IBaseService */ ShopStoreSfOrder getBySfOrderId(String sfOrderId); + /** + * 根据商家订单号获取顺丰同城的订单号 + * + * @param shopOrderId + * @return + */ + String getSfOrderIdByShopOrderId(String shopOrderId); + /** * 新增一个顺丰同城订单记录 * 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 245742ba..c9949dbb 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 @@ -2839,16 +2839,16 @@ public class ShopStoreBaseServiceImpl extends BaseServiceImpl wrapper = new QueryWrapper<>(); + wrapper.eq("shop_order_id", shopOrderId); + wrapper.select("sf_order_id"); + ShopStoreSfOrder shopStoreSfOrder = getOne(wrapper); + if (shopStoreSfOrder == null || StrUtil.isBlank(shopStoreSfOrder.getSf_order_id())) { + return ""; + } + + return shopStoreSfOrder.getSf_order_id(); + } + /** * 新增一个顺丰同城订单记录 * @@ -56,8 +79,8 @@ public class ShopStoreSfOrderServiceImpl extends BaseServiceImpl updateWrapper = new UpdateWrapper<>(); updateWrapper.eq("sf_order_id", record.getSf_order_id()); - if (record.getSf_order_status() != null && record.getSf_order_status() > 0) { - updateWrapper.set("sf_order_status", record.getSf_order_status()); + if (record.getOrder_status() != null && record.getOrder_status() > 0) { + updateWrapper.set("order_status", record.getOrder_status()); cnt += 1; } - if (StrUtil.isNotEmpty(record.getSf_order_status_desc())) { - updateWrapper.set("sf_order_status_desc", record.getSf_order_status_desc()); + if (StrUtil.isNotBlank(record.getStatus_desc())) { + updateWrapper.set("status_desc", record.getStatus_desc()); cnt += 1; } - if (StrUtil.isNotEmpty(record.getOperator_name())) { + if (StrUtil.isNotBlank(record.getOperator_name())) { updateWrapper.set("operator_name", record.getOperator_name()); cnt += 1; } - if (StrUtil.isNotEmpty(record.getOperator_phone())) { + if (StrUtil.isNotBlank(record.getShop_id())) { + updateWrapper.set("shop_id", record.getShop_id()); + cnt += 1; + } + + if (record.getDev_id() != null) { + updateWrapper.set("dev_id", record.getDev_id()); + cnt += 1; + } + + if (StrUtil.isNotBlank(record.getOperator_phone())) { updateWrapper.set("operator_phone", record.getOperator_phone()); cnt += 1; } - if (StrUtil.isNotEmpty(record.getFeed())) { + if (StrUtil.isNotBlank(record.getFeed())) { updateWrapper.set("feed", record.getFeed()); cnt += 1; } - if (StrUtil.isNotEmpty(record.getCancel_code())) { + if (StrUtil.isNotBlank(record.getCancel_code())) { updateWrapper.set("cancel_code", record.getCancel_code()); cnt += 1; } - if (StrUtil.isNotEmpty(record.getCancel_reason())) { + if (StrUtil.isNotBlank(record.getCancel_reason())) { updateWrapper.set("cancel_reason", record.getCancel_reason()); cnt += 1; } @@ -122,7 +155,7 @@ public class ShopStoreSfOrderServiceImpl extends BaseServiceImpl addPrinter(String printerInfo) { + public Pair addPrinter(String printerInfo) { List nvps = new ArrayList(); nvps.add(new BasicNameValuePair("printerContent", printerInfo)); JSONObject reps = sendHttpPost2("Open_printerAddlist", nvps); @@ -163,16 +162,17 @@ public class FeieUtil { /** * 多个打印机打印同一个订单 + * * @param printerSnList 多个打印机编号 * @param printContent * @return */ - public List> printContentByList(List printerSnList, String printContent) { + public List> printContentByList(List printerSnList, String printContent) { if (CollectionUtil.isEmpty(printerSnList)) { return null; } - List> retList = new ArrayList<>(); + List> retList = new ArrayList<>(); for (String sn : printerSnList) { if (StrUtil.isBlank(sn)) { continue; @@ -334,13 +334,13 @@ public class FeieUtil { String resultStr = ""; resultStr += "商品名称 数量 金额
"; resultStr += "--------------------------------
"; - DecimalFormat df2 =new DecimalFormat("#.00"); + DecimalFormat df2 = new DecimalFormat("#.00"); for (int i = 0; i < productList.size(); i++) { String product_sn = productList.get(i).getProduct_sn(); String title = productList.get(i).getItem_name(); String num = productList.get(i).getOrder_item_quantity() > 1 ? "x" + productList.get(i).getOrder_item_quantity().toString() : productList.get(i).getOrder_item_quantity().toString(); - String amount = df2.format(productList.get(i).getOrder_item_amount()) ; + String amount = df2.format(productList.get(i).getOrder_item_amount()); num = addSpace(num, numLen); amount = addSpace(amount, amountLen); @@ -374,7 +374,7 @@ public class FeieUtil { resultStr += title; } - if(StrUtil.isNotBlank(product_sn)) { + if (StrUtil.isNotBlank(product_sn)) { resultStr += "" + product_sn + "
"; } } diff --git a/mall-shop/src/main/resources/bootstrap-dev.yml b/mall-shop/src/main/resources/bootstrap-dev.yml index 742f6435..8ce5a8c4 100644 --- a/mall-shop/src/main/resources/bootstrap-dev.yml +++ b/mall-shop/src/main/resources/bootstrap-dev.yml @@ -136,3 +136,4 @@ sf-express: appid: 1711573316 appkey: cd57608baa9c00fe1cda5f652b14240d dev_id: 1711573316 + enable: 2 diff --git a/mall-shop/src/main/resources/bootstrap-local.yml b/mall-shop/src/main/resources/bootstrap-local.yml index d6939298..14d46606 100644 --- a/mall-shop/src/main/resources/bootstrap-local.yml +++ b/mall-shop/src/main/resources/bootstrap-local.yml @@ -135,4 +135,5 @@ sf-express: # 顺丰同城 api 接口配置 appid: 1711573316 appkey: cd57608baa9c00fe1cda5f652b14240d - dev_id: 1711573316 \ No newline at end of file + dev_id: 1711573316 + enable: 2 \ No newline at end of file diff --git a/mall-shop/src/main/resources/bootstrap-prod.yml b/mall-shop/src/main/resources/bootstrap-prod.yml index 5a8954d6..8f366f78 100644 --- a/mall-shop/src/main/resources/bootstrap-prod.yml +++ b/mall-shop/src/main/resources/bootstrap-prod.yml @@ -139,4 +139,5 @@ sf-express: # 顺丰同城 api 接口配置 appid: 1711573316 appkey: cd57608baa9c00fe1cda5f652b14240d - dev_id: 1711573316 \ No newline at end of file + dev_id: 1711573316 + enable: 2 \ No newline at end of file diff --git a/mall-shop/src/main/resources/bootstrap-test.yml b/mall-shop/src/main/resources/bootstrap-test.yml index baed9d46..3409fbac 100644 --- a/mall-shop/src/main/resources/bootstrap-test.yml +++ b/mall-shop/src/main/resources/bootstrap-test.yml @@ -139,4 +139,5 @@ sf-express: # 顺丰同城 api 接口配置 appid: 1711573316 appkey: cd57608baa9c00fe1cda5f652b14240d - dev_id: 1711573316 \ No newline at end of file + dev_id: 1711573316 + enable: 2 \ No newline at end of file diff --git a/mall-shop/src/main/resources/bootstrap-uat.yml b/mall-shop/src/main/resources/bootstrap-uat.yml index baed9d46..3409fbac 100644 --- a/mall-shop/src/main/resources/bootstrap-uat.yml +++ b/mall-shop/src/main/resources/bootstrap-uat.yml @@ -139,4 +139,5 @@ sf-express: # 顺丰同城 api 接口配置 appid: 1711573316 appkey: cd57608baa9c00fe1cda5f652b14240d - dev_id: 1711573316 \ No newline at end of file + dev_id: 1711573316 + enable: 2 \ No newline at end of file