This commit is contained in:
2023-12-07 11:01:45 +08:00
parent f249184cfe
commit 0e9e112885
13 changed files with 74 additions and 74 deletions

View File

@@ -15,8 +15,8 @@ import com.jsowell.pile.domain.MemberBasicInfo;
import com.jsowell.pile.dto.*; import com.jsowell.pile.dto.*;
import com.jsowell.pile.service.IMemberBasicInfoService; import com.jsowell.pile.service.IMemberBasicInfoService;
import com.jsowell.pile.service.IPileMerchantInfoService; import com.jsowell.pile.service.IPileMerchantInfoService;
import com.jsowell.pile.service.orderlogic.AbstractOrderLogic; import com.jsowell.pile.service.programlogic.AbstractProgramLogic;
import com.jsowell.pile.service.orderlogic.OrderLogicFactory; import com.jsowell.pile.service.programlogic.ProgramLogicFactory;
import com.jsowell.pile.vo.uniapp.PayModeVO; import com.jsowell.pile.vo.uniapp.PayModeVO;
import com.jsowell.service.MemberService; import com.jsowell.service.MemberService;
import com.jsowell.service.OrderService; import com.jsowell.service.OrderService;
@@ -283,7 +283,7 @@ public class PayController extends BaseController {
String mode = pileMerchantInfoService.getDelayModeByWechatAppId(dto.getWechatAppId()); String mode = pileMerchantInfoService.getDelayModeByWechatAppId(dto.getWechatAppId());
// 获取处理逻辑 // 获取处理逻辑
AbstractOrderLogic orderLogic = OrderLogicFactory.getOrderLogic(mode); AbstractProgramLogic orderLogic = ProgramLogicFactory.getProgramLogic(mode);
Map<String, Object> weixinMap = orderLogic.rechargeBalance(dto); Map<String, Object> weixinMap = orderLogic.rechargeBalance(dto);
response = new RestApiResponse<>(ImmutableMap.of("weixinMap", weixinMap)); response = new RestApiResponse<>(ImmutableMap.of("weixinMap", weixinMap));
@@ -321,7 +321,7 @@ public class PayController extends BaseController {
String mode = pileMerchantInfoService.getDelayModeByWechatAppId(dto.getWechatAppId()); String mode = pileMerchantInfoService.getDelayModeByWechatAppId(dto.getWechatAppId());
// 获取处理逻辑 // 获取处理逻辑
AbstractOrderLogic orderLogic = OrderLogicFactory.getOrderLogic(mode); AbstractProgramLogic orderLogic = ProgramLogicFactory.getProgramLogic(mode);
orderLogic.refundBalance(dto); orderLogic.refundBalance(dto);
response = new RestApiResponse<>(); response = new RestApiResponse<>();

View File

@@ -18,8 +18,8 @@ import com.jsowell.pile.dto.CarVinDTO;
import com.jsowell.pile.dto.QueryOrderDTO; import com.jsowell.pile.dto.QueryOrderDTO;
import com.jsowell.pile.dto.SettleOrderReportDTO; import com.jsowell.pile.dto.SettleOrderReportDTO;
import com.jsowell.pile.service.*; import com.jsowell.pile.service.*;
import com.jsowell.pile.service.orderlogic.AbstractOrderLogic; import com.jsowell.pile.service.programlogic.AbstractProgramLogic;
import com.jsowell.pile.service.orderlogic.OrderLogicFactory; import com.jsowell.pile.service.programlogic.ProgramLogicFactory;
import com.jsowell.pile.vo.uniapp.MemberBalanceVO; import com.jsowell.pile.vo.uniapp.MemberBalanceVO;
import com.jsowell.service.OrderService; import com.jsowell.service.OrderService;
import com.jsowell.service.TempService; import com.jsowell.service.TempService;
@@ -324,7 +324,7 @@ public class TempController extends BaseController {
// 调用退款接口 // 调用退款接口
String mode = pileMerchantInfoService.getDelayModeByWechatAppId(dto.getWechatAppId()); String mode = pileMerchantInfoService.getDelayModeByWechatAppId(dto.getWechatAppId());
// 获取处理逻辑 // 获取处理逻辑
AbstractOrderLogic orderLogic = OrderLogicFactory.getOrderLogic(mode); AbstractProgramLogic orderLogic = ProgramLogicFactory.getProgramLogic(mode);
orderLogic.refundBalance(refundDTO); orderLogic.refundBalance(refundDTO);
}); });
} }

View File

@@ -37,8 +37,8 @@ import com.jsowell.common.util.bean.BeanUtils;
import com.jsowell.pile.domain.*; import com.jsowell.pile.domain.*;
import com.jsowell.pile.dto.*; import com.jsowell.pile.dto.*;
import com.jsowell.pile.service.*; import com.jsowell.pile.service.*;
import com.jsowell.pile.service.orderlogic.AbstractOrderLogic; import com.jsowell.pile.service.programlogic.AbstractProgramLogic;
import com.jsowell.pile.service.orderlogic.OrderLogicFactory; import com.jsowell.pile.service.programlogic.ProgramLogicFactory;
import com.jsowell.pile.util.UserUtils; import com.jsowell.pile.util.UserUtils;
import com.jsowell.pile.vo.base.OrderAmountDetailVO; import com.jsowell.pile.vo.base.OrderAmountDetailVO;
import com.jsowell.pile.vo.base.OrderPeriodAmountVO; import com.jsowell.pile.vo.base.OrderPeriodAmountVO;
@@ -156,7 +156,7 @@ public class OrderService {
public String generateOrderV2(GenerateOrderDTO dto) throws ParseException { public String generateOrderV2(GenerateOrderDTO dto) throws ParseException {
// 新逻辑 // 新逻辑
String delayMode = pileMerchantInfoService.getDelayModeByWechatAppId(dto.getAppId()); String delayMode = pileMerchantInfoService.getDelayModeByWechatAppId(dto.getAppId());
AbstractOrderLogic orderLogic = OrderLogicFactory.getOrderLogic(delayMode); AbstractProgramLogic orderLogic = ProgramLogicFactory.getProgramLogic(delayMode);
OrderBasicInfo orderBasicInfo = orderLogic.generateOrder(dto); OrderBasicInfo orderBasicInfo = orderLogic.generateOrder(dto);
if (orderBasicInfo != null) { if (orderBasicInfo != null) {
return orderBasicInfo.getOrderCode(); return orderBasicInfo.getOrderCode();
@@ -182,7 +182,7 @@ public class OrderService {
public Map<String, Object> payOrderV2(PayOrderDTO dto) { public Map<String, Object> payOrderV2(PayOrderDTO dto) {
String mode = pileMerchantInfoService.getDelayModeByWechatAppId(dto.getWechatAppId()); String mode = pileMerchantInfoService.getDelayModeByWechatAppId(dto.getWechatAppId());
// 获取处理逻辑 // 获取处理逻辑
AbstractOrderLogic orderLogic = OrderLogicFactory.getOrderLogic(mode); AbstractProgramLogic orderLogic = ProgramLogicFactory.getProgramLogic(mode);
Map<String, Object> map = orderLogic.payOrder(dto); Map<String, Object> map = orderLogic.payOrder(dto);
return map; return map;
} }
@@ -703,7 +703,7 @@ public class OrderService {
// orderBasicInfoService.settleOrder(data, orderBasicInfo); // orderBasicInfoService.settleOrder(data, orderBasicInfo);
// 新逻辑 // 新逻辑
String mode = pileMerchantInfoService.getDelayModeByMerchantId(orderBasicInfo.getMerchantId()); String mode = pileMerchantInfoService.getDelayModeByMerchantId(orderBasicInfo.getMerchantId());
AbstractOrderLogic orderLogic = OrderLogicFactory.getOrderLogic(mode); AbstractProgramLogic orderLogic = ProgramLogicFactory.getProgramLogic(mode);
orderLogic.settleOrder(data, orderBasicInfo); orderLogic.settleOrder(data, orderBasicInfo);
// 发送停止充电指令 // 发送停止充电指令

View File

@@ -23,8 +23,8 @@ import com.jsowell.pile.dto.QueryOrderDTO;
import com.jsowell.pile.dto.SettleOrderReportDTO; import com.jsowell.pile.dto.SettleOrderReportDTO;
import com.jsowell.pile.mapper.OrderBasicInfoMapper; import com.jsowell.pile.mapper.OrderBasicInfoMapper;
import com.jsowell.pile.service.*; import com.jsowell.pile.service.*;
import com.jsowell.pile.service.orderlogic.AbstractOrderLogic; import com.jsowell.pile.service.programlogic.AbstractProgramLogic;
import com.jsowell.pile.service.orderlogic.DelayMerchantOrderLogic; import com.jsowell.pile.service.programlogic.DelayMerchantProgramLogic;
import com.jsowell.pile.vo.web.ClearingBillVO; import com.jsowell.pile.vo.web.ClearingBillVO;
import com.jsowell.pile.vo.web.OrderListVO; import com.jsowell.pile.vo.web.OrderListVO;
import com.jsowell.pile.vo.web.OrderPayDetailVO; import com.jsowell.pile.vo.web.OrderPayDetailVO;
@@ -428,7 +428,7 @@ public class TempService {
BigDecimal settleAmount = orderBasicInfo.getSettleAmount(); BigDecimal settleAmount = orderBasicInfo.getSettleAmount();
OrderPayRecord record = orderPayRecordList.get(0); OrderPayRecord record = orderPayRecordList.get(0);
String deductionRecord = record.getDeductionRecord(); String deductionRecord = record.getDeductionRecord();
AbstractOrderLogic orderLogic = new DelayMerchantOrderLogic(); AbstractProgramLogic orderLogic = new DelayMerchantProgramLogic();
List<PaymentInfo> paymentInfos = orderLogic.parseDeductionRecord(deductionRecord); List<PaymentInfo> paymentInfos = orderLogic.parseDeductionRecord(deductionRecord);
// 通过paymentId查询 分账记录 // 通过paymentId查询 分账记录

View File

@@ -57,8 +57,8 @@ import com.jsowell.pile.dto.lutongyunting.BindCouponDTO;
import com.jsowell.pile.mapper.MemberBasicInfoMapper; import com.jsowell.pile.mapper.MemberBasicInfoMapper;
import com.jsowell.pile.mapper.PileBillingTemplateMapper; import com.jsowell.pile.mapper.PileBillingTemplateMapper;
import com.jsowell.pile.service.*; import com.jsowell.pile.service.*;
import com.jsowell.pile.service.orderlogic.AbstractOrderLogic; import com.jsowell.pile.service.programlogic.AbstractProgramLogic;
import com.jsowell.pile.service.orderlogic.OrderLogicFactory; import com.jsowell.pile.service.programlogic.ProgramLogicFactory;
import com.jsowell.pile.transaction.dto.OrderTransactionDTO; import com.jsowell.pile.transaction.dto.OrderTransactionDTO;
import com.jsowell.pile.transaction.service.TransactionService; import com.jsowell.pile.transaction.service.TransactionService;
import com.jsowell.pile.util.SnUtils; import com.jsowell.pile.util.SnUtils;
@@ -481,7 +481,7 @@ public class SpringBootTestController {
.build(); .build();
payRecordList.add(build); payRecordList.add(build);
AbstractOrderLogic orderLogic = OrderLogicFactory.getOrderLogic("1"); AbstractProgramLogic orderLogic = ProgramLogicFactory.getProgramLogic("1");
List<Map<String, Object>> maps = orderLogic.calculateUnfreezeAmount(orderAmount, payRecordList); List<Map<String, Object>> maps = orderLogic.calculateUnfreezeAmount(orderAmount, payRecordList);
System.out.println(maps); System.out.println(maps);
} }

View File

@@ -27,8 +27,8 @@ import com.jsowell.pile.domain.ThirdpartyParkingConfig;
import com.jsowell.pile.dto.lutongyunting.BindCouponDTO; import com.jsowell.pile.dto.lutongyunting.BindCouponDTO;
import com.jsowell.pile.dto.ruanjie.UseCouponDTO; import com.jsowell.pile.dto.ruanjie.UseCouponDTO;
import com.jsowell.pile.service.*; import com.jsowell.pile.service.*;
import com.jsowell.pile.service.orderlogic.AbstractOrderLogic; import com.jsowell.pile.service.programlogic.AbstractProgramLogic;
import com.jsowell.pile.service.orderlogic.OrderLogicFactory; import com.jsowell.pile.service.programlogic.ProgramLogicFactory;
import com.jsowell.pile.vo.base.ThirdPartyStationRelationVO; import com.jsowell.pile.vo.base.ThirdPartyStationRelationVO;
import com.jsowell.pile.vo.web.PileStationVO; import com.jsowell.pile.vo.web.PileStationVO;
import com.jsowell.thirdparty.lianlian.service.LianLianService; import com.jsowell.thirdparty.lianlian.service.LianLianService;
@@ -658,7 +658,7 @@ public class TransactionRecordsRequestHandler extends AbstractHandler {
// orderBasicInfoService.settleOrder(data, orderBasicInfo); // orderBasicInfoService.settleOrder(data, orderBasicInfo);
// 新逻辑 // 新逻辑
String mode = pileMerchantInfoService.getDelayModeByMerchantId(orderBasicInfo.getMerchantId()); String mode = pileMerchantInfoService.getDelayModeByMerchantId(orderBasicInfo.getMerchantId());
AbstractOrderLogic orderLogic = OrderLogicFactory.getOrderLogic(mode); AbstractProgramLogic orderLogic = ProgramLogicFactory.getProgramLogic(mode);
orderLogic.settleOrder(data, orderBasicInfo); orderLogic.settleOrder(data, orderBasicInfo);
} catch (Exception e) { } catch (Exception e) {
log.error("结算订单发生异常", e); log.error("结算订单发生异常", e);

View File

@@ -12,7 +12,7 @@ import com.jsowell.pile.domain.SettleOrderReport;
import com.jsowell.pile.dto.*; import com.jsowell.pile.dto.*;
import com.jsowell.pile.dto.nanrui.NRQueryOrderDTO; import com.jsowell.pile.dto.nanrui.NRQueryOrderDTO;
import com.jsowell.pile.dto.ningxiajiaotou.NXJTQueryOrdersInfoDTO; import com.jsowell.pile.dto.ningxiajiaotou.NXJTQueryOrdersInfoDTO;
import com.jsowell.pile.service.orderlogic.AbstractOrderLogic; import com.jsowell.pile.service.programlogic.AbstractProgramLogic;
import com.jsowell.pile.vo.base.MerchantOrderInfoVO; import com.jsowell.pile.vo.base.MerchantOrderInfoVO;
import com.jsowell.pile.vo.base.OrderAmountDetailVO; import com.jsowell.pile.vo.base.OrderAmountDetailVO;
import com.jsowell.pile.vo.base.OrderPeriodAmountVO; import com.jsowell.pile.vo.base.OrderPeriodAmountVO;
@@ -114,7 +114,7 @@ public interface IOrderBasicInfoService {
* 根据交易记录结算订单 * 根据交易记录结算订单
* @param data 交易记录数据 * @param data 交易记录数据
* @param orderBasicInfo * @param orderBasicInfo
* @deprecated 该方法废弃 {@link AbstractOrderLogic#settleOrder(TransactionRecordsData, OrderBasicInfo)} instead. * @deprecated 该方法废弃 {@link AbstractProgramLogic#settleOrder(TransactionRecordsData, OrderBasicInfo)} instead.
*/ */
@Deprecated @Deprecated
void settleOrder(TransactionRecordsData data, OrderBasicInfo orderBasicInfo); void settleOrder(TransactionRecordsData data, OrderBasicInfo orderBasicInfo);

View File

@@ -41,9 +41,9 @@ import com.jsowell.pile.dto.nanrui.NRQueryOrderDTO;
import com.jsowell.pile.dto.ningxiajiaotou.NXJTQueryOrdersInfoDTO; import com.jsowell.pile.dto.ningxiajiaotou.NXJTQueryOrdersInfoDTO;
import com.jsowell.pile.mapper.OrderBasicInfoMapper; import com.jsowell.pile.mapper.OrderBasicInfoMapper;
import com.jsowell.pile.service.*; import com.jsowell.pile.service.*;
import com.jsowell.pile.service.orderlogic.AbstractOrderLogic; import com.jsowell.pile.service.programlogic.AbstractProgramLogic;
import com.jsowell.pile.service.orderlogic.DelayMerchantOrderLogic; import com.jsowell.pile.service.programlogic.DelayMerchantProgramLogic;
import com.jsowell.pile.service.orderlogic.OrderLogicFactory; import com.jsowell.pile.service.programlogic.ProgramLogicFactory;
import com.jsowell.pile.transaction.dto.ClearingBillTransactionDTO; import com.jsowell.pile.transaction.dto.ClearingBillTransactionDTO;
import com.jsowell.pile.transaction.dto.OrderTransactionDTO; import com.jsowell.pile.transaction.dto.OrderTransactionDTO;
import com.jsowell.pile.transaction.service.TransactionService; import com.jsowell.pile.transaction.service.TransactionService;
@@ -516,7 +516,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
// 新逻辑 // 新逻辑
String mode = pileMerchantInfoService.getDelayModeByMerchantId(orderInfo.getMerchantId()); String mode = pileMerchantInfoService.getDelayModeByMerchantId(orderInfo.getMerchantId());
AbstractOrderLogic orderLogic = OrderLogicFactory.getOrderLogic(mode); AbstractProgramLogic orderLogic = ProgramLogicFactory.getProgramLogic(mode);
orderLogic.settleOrder(data, orderInfo); orderLogic.settleOrder(data, orderInfo);
} }
@@ -1188,7 +1188,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
memberBasicInfoService.updateMemberBalance(updateMemberBalanceDTO); memberBasicInfoService.updateMemberBalance(updateMemberBalanceDTO);
// 更新order_pay_record, 解冻部分 // 更新order_pay_record, 解冻部分
AbstractOrderLogic orderLogic = new DelayMerchantOrderLogic(); AbstractProgramLogic orderLogic = new DelayMerchantProgramLogic();
List<Map<String, Object>> list = orderLogic.calculateUnfreezeAmount(orderAmount, payRecordList); List<Map<String, Object>> list = orderLogic.calculateUnfreezeAmount(orderAmount, payRecordList);
for (Map<String, Object> map : list) { for (Map<String, Object> map : list) {
String paymentId = (String) map.get("paymentId"); String paymentId = (String) map.get("paymentId");
@@ -2469,7 +2469,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
String mode = pileMerchantInfoService.getDelayModeByMerchantId(merchantId); String mode = pileMerchantInfoService.getDelayModeByMerchantId(merchantId);
// 获取处理逻辑 // 获取处理逻辑
AbstractOrderLogic orderLogic = OrderLogicFactory.getOrderLogic(mode); AbstractProgramLogic orderLogic = ProgramLogicFactory.getProgramLogic(mode);
orderLogic.payOrder(payOrderDTO); orderLogic.payOrder(payOrderDTO);
// 推送小程序启动充电消息 // 推送小程序启动充电消息

View File

@@ -1,37 +0,0 @@
package com.jsowell.pile.service.orderlogic;
import com.google.common.collect.Maps;
import com.jsowell.common.util.StringUtils;
import java.util.Map;
import java.util.Objects;
/**
* 工厂设计模式
* 云快充操作
*/
public class OrderLogicFactory {
private static Map<String, AbstractOrderLogic> orderLogicMap = Maps.newHashMap();
/**
* 注册
* @param str
* @param handler
*/
public static void register(String str, AbstractOrderLogic handler) {
if (StringUtils.isBlank(str) || Objects.isNull(handler)) {
return;
}
orderLogicMap.put(str, handler);
}
/**
* 获取
* @param name
* @return
*/
public static AbstractOrderLogic getOrderLogic(String name) {
return orderLogicMap.get(name);
}
}

View File

@@ -1,4 +1,4 @@
package com.jsowell.pile.service.orderlogic; package com.jsowell.pile.service.programlogic;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONArray;
@@ -42,7 +42,7 @@ import java.util.Map;
/** /**
* 描述订单逻辑 * 描述订单逻辑
*/ */
public abstract class AbstractOrderLogic implements InitializingBean { public abstract class AbstractProgramLogic implements InitializingBean {
protected Logger logger = LoggerFactory.getLogger(this.getClass()); protected Logger logger = LoggerFactory.getLogger(this.getClass());
@Value("${adapay.callback}") @Value("${adapay.callback}")

View File

@@ -1,4 +1,4 @@
package com.jsowell.pile.service.orderlogic; package com.jsowell.pile.service.programlogic;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
@@ -50,12 +50,12 @@ import java.util.stream.Collectors;
* 设置延时分账的运营商订单逻辑 * 设置延时分账的运营商订单逻辑
*/ */
@Service @Service
public class DelayMerchantOrderLogic extends AbstractOrderLogic { public class DelayMerchantProgramLogic extends AbstractProgramLogic {
@Override @Override
public void afterPropertiesSet() throws Exception { public void afterPropertiesSet() throws Exception {
// 注册为 延时分账 // 注册为 延时分账
OrderLogicFactory.register(MerchantDelayModeEnum.DELAY.getValue(), this); ProgramLogicFactory.register(MerchantDelayModeEnum.DELAY.getValue(), this);
} }
/** /**

View File

@@ -1,4 +1,4 @@
package com.jsowell.pile.service.orderlogic; package com.jsowell.pile.service.programlogic;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
@@ -51,12 +51,12 @@ import java.util.stream.Collectors;
* 没有设置延时分账的运营商订单逻辑 * 没有设置延时分账的运营商订单逻辑
*/ */
@Service @Service
public class NotDelayMerchantOrderLogic extends AbstractOrderLogic{ public class NotDelayMerchantProgramLogic extends AbstractProgramLogic {
@Override @Override
public void afterPropertiesSet() throws Exception { public void afterPropertiesSet() throws Exception {
// 注册为 非延时分账 // 注册为 非延时分账
OrderLogicFactory.register(MerchantDelayModeEnum.NOT_DELAY.getValue(), this); ProgramLogicFactory.register(MerchantDelayModeEnum.NOT_DELAY.getValue(), this);
} }
/** /**

View File

@@ -0,0 +1,37 @@
package com.jsowell.pile.service.programlogic;
import com.google.common.collect.Maps;
import com.jsowell.common.util.StringUtils;
import java.util.Map;
import java.util.Objects;
/**
* 工厂设计模式
* 云快充操作
*/
public class ProgramLogicFactory {
private static Map<String, AbstractProgramLogic> programLogicMap = Maps.newHashMap();
/**
* 注册
* @param str
* @param handler
*/
public static void register(String str, AbstractProgramLogic handler) {
if (StringUtils.isBlank(str) || Objects.isNull(handler)) {
return;
}
programLogicMap.put(str, handler);
}
/**
* 获取
* @param name
* @return
*/
public static AbstractProgramLogic getProgramLogic(String name) {
return programLogicMap.get(name);
}
}