From 88dece40d9823d9b1da301b2d361cfdc73e2a201 Mon Sep 17 00:00:00 2001 From: 19173159168 Date: Fri, 5 Sep 2025 00:17:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A8=E9=80=81=E8=BD=A6=E5=9E=8B=E5=A5=97?= =?UTF-8?q?=E9=A4=90=E4=B8=BA=E5=95=86=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ruoyi/api/DataPushApi.java | 52 ++++++++++++++++++- .../mapper/ZcCarModelPackageMapper.java | 7 ++- .../service/IZcCarModelPackageService.java | 5 ++ .../impl/ZcCarModelPackageServiceImpl.java | 21 +++++++- .../com/ruoyi/orders/dto/PushItemRequest.java | 50 ++++++++++++++++++ .../com/ruoyi/task/CarModelCommodityTask.java | 26 ++++++++++ .../src/main/resources/application-dev.yml | 6 +-- .../operation/ZcCarModelPackageMapper.xml | 16 +++++- .../com/ruoyi/common/constant/Constants.java | 2 +- 9 files changed, 177 insertions(+), 8 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/orders/dto/PushItemRequest.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/task/CarModelCommodityTask.java diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/DataPushApi.java b/ruoyi-admin/src/main/java/com/ruoyi/api/DataPushApi.java index 0377610..396b515 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/DataPushApi.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/DataPushApi.java @@ -2,6 +2,7 @@ package com.ruoyi.api; import com.fasterxml.jackson.databind.ObjectMapper; import com.ruoyi.orders.domain.ZcOrderSub; +import com.ruoyi.orders.dto.PushItemRequest; import com.ruoyi.orders.dto.RefundRequest; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -21,8 +22,10 @@ public class DataPushApi { @Autowired private ObjectMapper objectMapper; - @Value(value = "${pay.refundUrl}") + @Value(value = "${dataPush.refundUrl}") private String refundUrl; + @Value(value = "${dataPush.pushItemUrl}") + private String pushItemUrl; @Value(value = "${dataPush.sendAddCompanyUrl}") private String sendAddCompanyUrl; @@ -158,4 +161,51 @@ public class DataPushApi { } } + + public boolean sendPushItem(PushItemRequest pushItemRequest) { + try { + + // 打印请求参数便于调试 + String jsonParams = objectMapper.writeValueAsString(pushItemRequest); + logger.info("推送车型、套餐为商品请求参数: {}", jsonParams); + + // 发送HTTP请求调用添加接口 + RestTemplate restTemplate = new RestTemplate(); + ResponseEntity response = restTemplate.getForEntity(pushItemUrl + "?brandId="+pushItemRequest.getBrandId()+"&carModelId="+pushItemRequest.getCarModelId()+"&carRuleId="+pushItemRequest.getCarRuleId()+"&batteryRuleId="+pushItemRequest.getBatteryRuleId(), String.class); + + + // 处理退款接口响应 + if (response.getStatusCode() == HttpStatus.OK) { + // 解析响应内容,检查return_code是否为SUCCESS + String responseBody = response.getBody(); + if (responseBody != null) { + try { + // 使用ObjectMapper解析JSON响应 + Map responseMap = objectMapper.readValue(responseBody, Map.class); + Object returnCode = responseMap.get("code"); + if ("10000".equals(returnCode)) { + logger.info("推送车型、套餐为商品成功"); + return true; + } else { + logger.error("推送车型、套餐为商品失败,响应: {}", responseBody); + return false; + } + } catch (Exception jsonEx) { + logger.error("推送车型、套餐为商品解析响应异常,响应: {}", responseBody, jsonEx); + return false; + } + } else { + logger.error("推送车型、套餐为商品返回空响应"); + return false; + } + } else { + logger.error("推送车型、套餐为商品失败,响应: {}",response.getBody()); + return false; + } + } catch (Exception e) { + logger.error("推送车型、套餐为商品异常", e); + return false; + } + } + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/operation/mapper/ZcCarModelPackageMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/operation/mapper/ZcCarModelPackageMapper.java index 85ca542..7ecac82 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/operation/mapper/ZcCarModelPackageMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/operation/mapper/ZcCarModelPackageMapper.java @@ -1,7 +1,10 @@ package com.ruoyi.operation.mapper; import java.util.List; +import java.util.Map; + import com.ruoyi.operation.domain.ZcCarModelPackage; +import com.ruoyi.orders.dto.PushItemRequest; import org.apache.ibatis.annotations.Param; /** @@ -45,7 +48,7 @@ public interface ZcCarModelPackageMapper * @return 结果 */ public int updateZcCarModelPackage(ZcCarModelPackage zcCarModelPackage); - + public int updateZcCarModelPackageStatus(Long id); /** * 删除车型与租车规则关联 * @@ -65,4 +68,6 @@ public interface ZcCarModelPackageMapper * @return 结果 */ public int deleteZcCarModelPackageByIds(String[] ids); + + public List selectZcCarModelPackageNotPush(); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/operation/service/IZcCarModelPackageService.java b/ruoyi-admin/src/main/java/com/ruoyi/operation/service/IZcCarModelPackageService.java index b325c90..c69d25f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/operation/service/IZcCarModelPackageService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/operation/service/IZcCarModelPackageService.java @@ -62,4 +62,9 @@ public interface IZcCarModelPackageService * @return 结果 */ public int deleteZcCarModelPackageById(Long id); + + /** + * 推送车型绑定的套餐关系为商品至支付宝 + */ + public void carModelCommodityToAlipay(); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/operation/service/impl/ZcCarModelPackageServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/operation/service/impl/ZcCarModelPackageServiceImpl.java index b352bbb..7999afc 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/operation/service/impl/ZcCarModelPackageServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/operation/service/impl/ZcCarModelPackageServiceImpl.java @@ -1,7 +1,10 @@ package com.ruoyi.operation.service.impl; import java.util.List; + +import com.ruoyi.api.DataPushApi; import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.orders.dto.PushItemRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.operation.mapper.ZcCarModelPackageMapper; @@ -16,10 +19,12 @@ import com.ruoyi.common.core.text.Convert; * @date 2025-07-10 */ @Service -public class ZcCarModelPackageServiceImpl implements IZcCarModelPackageService +public class ZcCarModelPackageServiceImpl implements IZcCarModelPackageService { @Autowired private ZcCarModelPackageMapper zcCarModelPackageMapper; + @Autowired + private DataPushApi dataPushApi; /** * 查询车型与租车规则关联 @@ -111,4 +116,18 @@ public class ZcCarModelPackageServiceImpl implements IZcCarModelPackageService { return zcCarModelPackageMapper.deleteZcCarModelPackageById(id); } + + /** + * 批量推送车型组装后变为商品 + */ + @Override + public void carModelCommodityToAlipay() { + List list = zcCarModelPackageMapper.selectZcCarModelPackageNotPush(); + for (PushItemRequest pushItemRequest : list) { + boolean bool = dataPushApi.sendPushItem(pushItemRequest); + if(bool) { + zcCarModelPackageMapper.updateZcCarModelPackageStatus(pushItemRequest.getId()); + } + } + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/orders/dto/PushItemRequest.java b/ruoyi-admin/src/main/java/com/ruoyi/orders/dto/PushItemRequest.java new file mode 100644 index 0000000..4022264 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/orders/dto/PushItemRequest.java @@ -0,0 +1,50 @@ +package com.ruoyi.orders.dto; + +public class PushItemRequest { + + private Long id; + private Long carModelId; + private Long carRuleId; + private Long brandId; + private Long batteryRuleId; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getCarModelId() { + return carModelId; + } + + public void setCarModelId(Long carModelId) { + this.carModelId = carModelId; + } + + public Long getCarRuleId() { + return carRuleId; + } + + public void setCarRuleId(Long carRuleId) { + this.carRuleId = carRuleId; + } + + public Long getBrandId() { + return brandId; + } + + public void setBrandId(Long brandId) { + this.brandId = brandId; + } + + public Long getBatteryRuleId() { + return batteryRuleId; + } + + public void setBatteryRuleId(Long batteryRuleId) { + this.batteryRuleId = batteryRuleId; + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/task/CarModelCommodityTask.java b/ruoyi-admin/src/main/java/com/ruoyi/task/CarModelCommodityTask.java new file mode 100644 index 0000000..c58a7f1 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/task/CarModelCommodityTask.java @@ -0,0 +1,26 @@ +package com.ruoyi.task; + +import com.ruoyi.operation.service.IZcCarModelPackageService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +@EnableScheduling +@Component +public class CarModelCommodityTask { + private static final Logger logger = LoggerFactory.getLogger(CarModelCommodityTask.class); + + @Autowired + private IZcCarModelPackageService zcCarModelPackageService; + + @Scheduled(cron = "0 30 * * * ?") + public void carModelCommodityTask() { + logger.info("执行推送车型+套餐变商品任务--开始"); + zcCarModelPackageService.carModelCommodityToAlipay(); + logger.info("执行推送车型+套餐变商品任务--结束"); + + } +} diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml index be35b3d..438a582 100644 --- a/ruoyi-admin/src/main/resources/application-dev.yml +++ b/ruoyi-admin/src/main/resources/application-dev.yml @@ -83,10 +83,10 @@ renren: expire: 604800 header: token -pay: - refundUrl: http://115.190.8.52:8019/api/payment/refund - dataPush: + refundUrl: http://115.190.8.52:8019/api/payment/refund + pushItemUrl: http://115.190.8.52:8019/item/sync/item + sendAddCompanyUrl: http://115.190.8.52:8016/send/companyinfo/ sendAddStoreUrl: http://115.190.8.52:8016/send/storeinfo/ sendAddUserUrl: http://115.190.8.52:8016/send/userinfo/ diff --git a/ruoyi-admin/src/main/resources/mapper/operation/ZcCarModelPackageMapper.xml b/ruoyi-admin/src/main/resources/mapper/operation/ZcCarModelPackageMapper.xml index e5f597d..36f6818 100644 --- a/ruoyi-admin/src/main/resources/mapper/operation/ZcCarModelPackageMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/operation/ZcCarModelPackageMapper.xml @@ -34,7 +34,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + + insert into zc_car_model_package @@ -82,6 +93,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} + + update zc_car_model_package set status = '1' where id = #{id} + delete from zc_car_model_package where id = #{id} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java index 71a7532..d4aecf7 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java @@ -115,7 +115,7 @@ public class Constants /** * 定时任务白名单配置(仅允许访问的包名,如其他需要可以自行添加) */ - public static final String[] JOB_WHITELIST_STR = { "com.ruoyi" }; + public static final String[] JOB_WHITELIST_STR = { "com.ruoyi.task" }; /** * 定时任务违规的字符