zhibing.pu
2024-08-28 1c700866489090952fb692c5c16be622131a8c3e
完善支付相关功能
3个文件已修改
2个文件已添加
107 ■■■■■ 已修改文件
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/SendMessageFallbackFactory.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/SendMessageClient.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/PlatformStartCharging.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/MyChargingOrderList.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/SendMessageFallbackFactory.java
New file
@@ -0,0 +1,34 @@
package com.ruoyi.integration.api.factory;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.integration.api.feignClient.ChargingHandshakeClient;
import com.ruoyi.integration.api.feignClient.SendMessageClient;
import com.ruoyi.integration.api.model.ChargingHandshake;
import com.ruoyi.integration.api.model.PlatformStartCharging;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
/**
 * 充电桩服务降级处理
 *
 * @author ruoyi
 */
@Component
public class SendMessageFallbackFactory implements FallbackFactory<SendMessageClient>
{
    private static final Logger log = LoggerFactory.getLogger(SendMessageFallbackFactory.class);
    @Override
    public SendMessageClient create(Throwable throwable) {
        log.error("发送充电桩消息失败:{}", throwable.getMessage());
        return new SendMessageClient() {
            @Override
            public void platformStartCharging(PlatformStartCharging platformStartCharging) {
            }
        };
    }
}
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/SendMessageClient.java
New file
@@ -0,0 +1,26 @@
package com.ruoyi.integration.api.feignClient;
import com.ruoyi.common.core.constant.ServiceNameConstants;
import com.ruoyi.integration.api.factory.SendMessageFallbackFactory;
import com.ruoyi.integration.api.model.EndCharge;
import com.ruoyi.integration.api.model.PlatformStartCharging;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
/**
 * @author zhibing.pu
 * @Date 2024/8/28 16:53
 */
@FeignClient(contextId = "SendMessageClient", value = ServiceNameConstants.INTEGRATION_SERVICE, fallbackFactory = SendMessageFallbackFactory.class)
public interface SendMessageClient {
    /**
     * 远程控制启动充电
     * @param platformStartCharging
     * @return
     */
    @PostMapping("/sendMessage/platformStartCharging")
    void platformStartCharging(@RequestBody PlatformStartCharging platformStartCharging);
}
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/PlatformStartCharging.java
@@ -2,6 +2,7 @@
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import java.math.BigDecimal;
@@ -15,6 +16,7 @@
@Accessors(chain = true)
public class PlatformStartCharging extends BaseModel {
    @Id
    private String transaction_serial_number; // 交易流水号
    private String charging_pile_code; // 桩编码
    private String charging_gun_code; // 抢号
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/MyChargingOrderList.java
@@ -31,4 +31,10 @@
    private BigDecimal payMoney;
    @ApiModelProperty("订单时间")
    private String createTime;
    @ApiModelProperty("评价状态(1=待评价,2=已评价)")
    private Integer evaluate;
    @ApiModelProperty("电费")
    private BigDecimal electricCharge;
    @ApiModelProperty("服务费")
    private BigDecimal serviceCharge;
}
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -23,8 +23,10 @@
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.integration.api.feignClient.ChargingHandshakeClient;
import com.ruoyi.integration.api.feignClient.SendMessageClient;
import com.ruoyi.integration.api.feignClient.UploadRealTimeMonitoringDataClient;
import com.ruoyi.integration.api.model.ChargingHandshake;
import com.ruoyi.integration.api.model.PlatformStartCharging;
import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData;
import com.ruoyi.order.api.model.TChargingOrder;
import com.ruoyi.order.api.model.TChargingOrderAccountingStrategy;
@@ -105,6 +107,9 @@
    @Resource
    private ChargingHandshakeClient chargingHandshakeClient;
    
    @Resource
    private SendMessageClient sendMessageClient;
    
    
@@ -137,7 +142,9 @@
            myChargingOrderList.setCreateTime(tChargingOrder.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
            orderLists.add(myChargingOrderList);
        }
        list = this.baseMapper.getMyChargingOrderList(appUserId, query.getType(), null, null);
        map.put("list", orderLists);
        map.put("totle", list.size());
        return map;
    }
    
@@ -414,10 +421,25 @@
        preChargeCheck.setSecureConnectionDetection(false);
        String key = "AQJC_" + chargingOrder.getChargingGunId();
        redisService.setCacheObject(key, preChargeCheck);
        //开始检测充电桩状,将检查状态写入缓存。检测完成后开始开启充电
        //充电结束后需要计算退款剩余金额
        // todo 需要完善
        
        //根据当前充值的金额和计费模板算出充电的金额
        BigDecimal rechargeAmount = chargingOrder.getRechargeAmount();
        //计算充电金额,会员需要将折扣金额加入到充电总金额中
//        TAppUser appUser = appUserClient.getUserById(chargingOrder.getAppUserId()).getData();
//        if(){
//            appUser.getVipId()
//        }
//
//
//        //调用远程启动充电消息
//        PlatformStartCharging platformStartCharging = new PlatformStartCharging();
//        platformStartCharging.setTransaction_serial_number(chargingOrder.getCode());
//        platformStartCharging.setCharging_pile_code();
//        platformStartCharging.setCharging_gun_code();
//        platformStartCharging.setCard_number();
//        platformStartCharging.setAccount_balance()
//        sendMessageClient.platformStartCharging(platformStartCharging);
        return AjaxResult.success();
    }
    
@@ -484,11 +506,22 @@
        chargingOrder.setEndMode(1);
        this.updateById(chargingOrder);
        //调用硬件停止充电,停止成功后开始计算费用退款
        // todo 待完善
        return AjaxResult.success();
    }
    public void endCharge(){
    }
    @Override
    public TCharingOrderVO chargingOrder(ChargingOrderQuery dto) {
        TCharingOrderVO tCharingOrderVO = new TCharingOrderVO();