From 6fcaa6520a77601c3bf8bb9d712e8809b3a14033 Mon Sep 17 00:00:00 2001 From: taozi <552920369@qq.com> Date: Thu, 17 Dec 2020 21:44:34 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=BA=E4=B8=B0=E8=BD=A8=E8=BF=B9=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/resources/config/application-prod.yml | 4 ---- .../src/main/resources/config/application.yml | 6 +++--- .../order/rest/StoreOrderController.java | 16 +++++++++++++++- .../java/co/yixiang/enums/ShipperCodeEnum.java | 18 ++++++++++++++++++ .../impl/YxStoreProductServiceImpl.java | 3 ++- .../order/rest/StoreOrderController.java | 15 ++++++++++++++- .../yixiang/tools/express/ExpressService.java | 15 +++++++++++---- .../modules/mp/listener/TemplateListener.java | 8 +------- 8 files changed, 64 insertions(+), 21 deletions(-) create mode 100644 yshop-common/src/main/java/co/yixiang/enums/ShipperCodeEnum.java diff --git a/yshop-admin/src/main/resources/config/application-prod.yml b/yshop-admin/src/main/resources/config/application-prod.yml index 5fd3bfed..ecd484f9 100644 --- a/yshop-admin/src/main/resources/config/application-prod.yml +++ b/yshop-admin/src/main/resources/config/application-prod.yml @@ -93,7 +93,3 @@ file: maxSize: 100 avatarMaxSize: 5 -yshop: - hApi: https://127.0.0.1:8000 - wechatCode: http://127.0.0.1:8000/upload/qrcode_for_gh_2ac8f422a79f_258.jpg - miniAppID: diff --git a/yshop-admin/src/main/resources/config/application.yml b/yshop-admin/src/main/resources/config/application.yml index 0342e3e2..ed45b869 100644 --- a/yshop-admin/src/main/resources/config/application.yml +++ b/yshop-admin/src/main/resources/config/application.yml @@ -52,9 +52,9 @@ yshop: logging: level: - co.yixiang: DEBUG - org.springframework.web: DEBUG - me.chanjar.weixin: DEBUG + co.yixiang: ERROR + org.springframework.web: ERROR + me.chanjar.weixin: ERROR mybatis-plus: check-config-location: true diff --git a/yshop-app/src/main/java/co/yixiang/modules/order/rest/StoreOrderController.java b/yshop-app/src/main/java/co/yixiang/modules/order/rest/StoreOrderController.java index 9884b9d7..cca40639 100644 --- a/yshop-app/src/main/java/co/yixiang/modules/order/rest/StoreOrderController.java +++ b/yshop-app/src/main/java/co/yixiang/modules/order/rest/StoreOrderController.java @@ -13,6 +13,7 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import co.yixiang.api.ApiResult; import co.yixiang.api.YshopException; +import co.yixiang.enums.ShipperCodeEnum; import co.yixiang.logging.aop.log.AppLog; import co.yixiang.common.aop.NoRepeatSubmit; import co.yixiang.common.bean.LocalUser; @@ -33,6 +34,7 @@ import co.yixiang.modules.order.param.ProductOrderParam; import co.yixiang.modules.order.param.ProductReplyParam; import co.yixiang.modules.order.param.RefundParam; import co.yixiang.modules.order.service.YxStoreOrderService; +import co.yixiang.modules.order.service.dto.YxStoreOrderDto; import co.yixiang.modules.order.vo.ComputeVo; import co.yixiang.modules.order.vo.ConfirmOrderVo; import co.yixiang.modules.order.vo.OrderCartInfoVo; @@ -384,9 +386,21 @@ public class StoreOrderController { @PostMapping("/order/express") @ApiOperation(value = "获取物流信息",notes = "获取物流信息") public ApiResult express( @RequestBody ExpressParam expressInfoDo){ + + //顺丰轨迹查询处理 + String lastFourNumber = ""; + if (expressInfoDo.getShipperCode().equals(ShipperCodeEnum.SF.getValue())) { + YxStoreOrderDto yxStoreOrderDto; + yxStoreOrderDto = storeOrderService.getOrderDetail(Long.valueOf(expressInfoDo.getOrderCode())); + lastFourNumber = yxStoreOrderDto.getUserPhone(); + if (lastFourNumber.length()==11) { + lastFourNumber = StrUtil.sub(lastFourNumber,lastFourNumber.length(),-4); + } + } + ExpressService expressService = ExpressAutoConfiguration.expressService(); ExpressInfo expressInfo = expressService.getExpressInfo(expressInfoDo.getOrderCode(), - expressInfoDo.getShipperCode(), expressInfoDo.getLogisticCode()); + expressInfoDo.getShipperCode(), expressInfoDo.getLogisticCode(),lastFourNumber); if(!expressInfo.isSuccess()) { throw new YshopException(expressInfo.getReason()); } diff --git a/yshop-common/src/main/java/co/yixiang/enums/ShipperCodeEnum.java b/yshop-common/src/main/java/co/yixiang/enums/ShipperCodeEnum.java new file mode 100644 index 00000000..3ad3631f --- /dev/null +++ b/yshop-common/src/main/java/co/yixiang/enums/ShipperCodeEnum.java @@ -0,0 +1,18 @@ +package co.yixiang.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @author hupeng + * 快递公司编码相关枚举 + */ +@Getter +@AllArgsConstructor +public enum ShipperCodeEnum { + + SF("SF","顺丰速运"); + + private String value; + private String desc; +} diff --git a/yshop-mall/src/main/java/co/yixiang/modules/product/service/impl/YxStoreProductServiceImpl.java b/yshop-mall/src/main/java/co/yixiang/modules/product/service/impl/YxStoreProductServiceImpl.java index 8a0acdd2..db1d60e6 100644 --- a/yshop-mall/src/main/java/co/yixiang/modules/product/service/impl/YxStoreProductServiceImpl.java +++ b/yshop-mall/src/main/java/co/yixiang/modules/product/service/impl/YxStoreProductServiceImpl.java @@ -232,8 +232,9 @@ public class YxStoreProductServiceImpl extends BaseServiceImpl getGoodsList(YxStoreProductQueryParam productQueryParam) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(YxStoreProduct::getIsShow, CommonEnum.SHOW_STATUS_1.getValue()); + wrapper.eq(YxStoreProduct::getIsDel, CommonEnum.DEL_STATUS_0.getValue()); //多字段模糊查询分类搜索 if (StrUtil.isNotBlank(productQueryParam.getSid()) && diff --git a/yshop-shop/src/main/java/co/yixiang/modules/order/rest/StoreOrderController.java b/yshop-shop/src/main/java/co/yixiang/modules/order/rest/StoreOrderController.java index d4de0df1..bdf00b29 100644 --- a/yshop-shop/src/main/java/co/yixiang/modules/order/rest/StoreOrderController.java +++ b/yshop-shop/src/main/java/co/yixiang/modules/order/rest/StoreOrderController.java @@ -16,6 +16,7 @@ import co.yixiang.annotation.AnonymousAccess; import co.yixiang.dozer.service.IGenerator; import co.yixiang.enums.OrderInfoEnum; import co.yixiang.enums.OrderLogEnum; +import co.yixiang.enums.ShipperCodeEnum; import co.yixiang.enums.ShopCommonEnum; import co.yixiang.exception.BadRequestException; import co.yixiang.logging.aop.log.Log; @@ -317,9 +318,21 @@ public class StoreOrderController { @PostMapping("/yxStoreOrder/express") @ApiOperation(value = "获取物流信息",notes = "获取物流信息",response = ExpressParam.class) public ResponseEntity express( @RequestBody ExpressParam expressInfoDo){ + + //顺丰轨迹查询处理 + String lastFourNumber = ""; + if (expressInfoDo.getShipperCode().equals(ShipperCodeEnum.SF.getValue())) { + YxStoreOrderDto yxStoreOrderDto; + yxStoreOrderDto = yxStoreOrderService.getOrderDetail(Long.valueOf(expressInfoDo.getOrderCode())); + lastFourNumber = yxStoreOrderDto.getUserPhone(); + if (lastFourNumber.length()==11) { + lastFourNumber = StrUtil.sub(lastFourNumber,lastFourNumber.length(),-4); + } + } + ExpressService expressService = ExpressAutoConfiguration.expressService(); ExpressInfo expressInfo = expressService.getExpressInfo(expressInfoDo.getOrderCode(), - expressInfoDo.getShipperCode(), expressInfoDo.getLogisticCode()); + expressInfoDo.getShipperCode(), expressInfoDo.getLogisticCode(),lastFourNumber); if(!expressInfo.isSuccess()) { throw new BadRequestException(expressInfo.getReason()); } diff --git a/yshop-tools/src/main/java/co/yixiang/tools/express/ExpressService.java b/yshop-tools/src/main/java/co/yixiang/tools/express/ExpressService.java index 3c84a1da..0b126352 100644 --- a/yshop-tools/src/main/java/co/yixiang/tools/express/ExpressService.java +++ b/yshop-tools/src/main/java/co/yixiang/tools/express/ExpressService.java @@ -6,6 +6,7 @@ package co.yixiang.tools.express; import cn.hutool.http.HttpUtil; +import co.yixiang.enums.ShipperCodeEnum; import co.yixiang.tools.express.config.ExpressProperties; import co.yixiang.tools.express.dao.ExpressInfo; import com.fasterxml.jackson.databind.ObjectMapper; @@ -62,9 +63,9 @@ public class ExpressService implements Serializable { * @param ShipperCode * @return */ - public ExpressInfo getExpressInfo(String OrderCode,String ShipperCode, String LogisticCode) { + public ExpressInfo getExpressInfo(String OrderCode,String ShipperCode, String LogisticCode,String lastFourNumber) { try { - String result = getOrderTracesByJson(OrderCode,ShipperCode, LogisticCode); + String result = getOrderTracesByJson(OrderCode,ShipperCode, LogisticCode,lastFourNumber); ObjectMapper objMap = new ObjectMapper(); ExpressInfo ei = objMap.readValue(result, ExpressInfo.class); ei.setShipperName(getVendorName(ShipperCode)); @@ -81,12 +82,18 @@ public class ExpressService implements Serializable { * * @throws Exception */ - private String getOrderTracesByJson(String OrderCode,String ShipperCode, String LogisticCode) throws Exception { + private String getOrderTracesByJson(String OrderCode,String ShipperCode, String LogisticCode,String lastFourNumber) throws Exception { if (!properties.isEnable()) { return null; } - String requestData = "{'OrderCode':'"+OrderCode+"','ShipperCode':'" + ShipperCode + "','LogisticCode':'" + LogisticCode + "'}"; + //处理顺丰查询轨迹需手机号码后4位 + String requestData; + if (ShipperCode.equals(ShipperCodeEnum.SF.getValue())) { + requestData = "{'OrderCode':'" + OrderCode + "','ShipperCode':'" + ShipperCode + "','LogisticCode':'" + LogisticCode + "','CustomerName':'" + lastFourNumber + "'}"; + } else { + requestData = "{'OrderCode':'" + OrderCode + "','ShipperCode':'" + ShipperCode + "','LogisticCode':'" + LogisticCode + "'}"; + } Map params = new HashMap<>(); params.put("RequestData", URLEncoder.encode(requestData, "UTF-8")); diff --git a/yshop-weixin/src/main/java/co/yixiang/modules/mp/listener/TemplateListener.java b/yshop-weixin/src/main/java/co/yixiang/modules/mp/listener/TemplateListener.java index bfe34431..cffbca74 100644 --- a/yshop-weixin/src/main/java/co/yixiang/modules/mp/listener/TemplateListener.java +++ b/yshop-weixin/src/main/java/co/yixiang/modules/mp/listener/TemplateListener.java @@ -18,8 +18,6 @@ import co.yixiang.enums.PayTypeEnum; import co.yixiang.event.TemplateBean; import co.yixiang.event.TemplateEvent; import co.yixiang.event.TemplateListenEnum; -import co.yixiang.exception.BadRequestException; -import co.yixiang.message.rocketmq.MqProducer; import co.yixiang.modules.activity.domain.YxUserExtract; import co.yixiang.modules.activity.service.YxUserExtractService; import co.yixiang.modules.customer.domain.YxStoreCustomer; @@ -27,13 +25,10 @@ import co.yixiang.modules.customer.service.YxStoreCustomerService; import co.yixiang.modules.mp.service.WeiXinSubscribeService; import co.yixiang.modules.mp.service.WeixinPayService; import co.yixiang.modules.mp.service.WeixinTemplateService; -import co.yixiang.modules.order.vo.YxStoreOrderQueryVo; import co.yixiang.modules.user.domain.YxUser; import co.yixiang.modules.user.service.YxUserBillService; import co.yixiang.modules.user.service.YxUserService; import co.yixiang.modules.user.service.dto.WechatUserDto; -import co.yixiang.utils.DateUtils; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.github.binarywang.wxpay.exception.WxPayException; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -43,7 +38,6 @@ import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; import java.math.BigDecimal; -import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.UUID; @@ -168,7 +162,7 @@ public class TemplateListener implements SmartApplicationListener { templateBean.getUid(), templateBean.getTime()); /**************给客服发送消息**************/ try { - List yxStoreCustomers = yxStoreCustomerService.list(new LambdaQueryWrapper().eq(YxStoreCustomer::getIsEnable, ShopConstants.YSHOP_ONE_NUM)); + List yxStoreCustomers = yxStoreCustomerService.lambdaQuery().eq(YxStoreCustomer::getIsEnable, ShopConstants.YSHOP_ONE_NUM).list(); yxStoreCustomers.forEach(msg -> { if (StrUtil.isNotBlank(msg.getOpenId())) { weixinTemplateService.refundSuccessNoticeToKefu("尊敬的客服,您有新的退款申请待处理!",templateBean.getOrderId()