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.service.IMemberBasicInfoService;
import com.jsowell.pile.service.IPileMerchantInfoService;
import com.jsowell.pile.service.orderlogic.AbstractOrderLogic;
import com.jsowell.pile.service.orderlogic.OrderLogicFactory;
import com.jsowell.pile.service.programlogic.AbstractProgramLogic;
import com.jsowell.pile.service.programlogic.ProgramLogicFactory;
import com.jsowell.pile.vo.uniapp.PayModeVO;
import com.jsowell.service.MemberService;
import com.jsowell.service.OrderService;
@@ -283,7 +283,7 @@ public class PayController extends BaseController {
String mode = pileMerchantInfoService.getDelayModeByWechatAppId(dto.getWechatAppId());
// 获取处理逻辑
AbstractOrderLogic orderLogic = OrderLogicFactory.getOrderLogic(mode);
AbstractProgramLogic orderLogic = ProgramLogicFactory.getProgramLogic(mode);
Map<String, Object> weixinMap = orderLogic.rechargeBalance(dto);
response = new RestApiResponse<>(ImmutableMap.of("weixinMap", weixinMap));
@@ -321,7 +321,7 @@ public class PayController extends BaseController {
String mode = pileMerchantInfoService.getDelayModeByWechatAppId(dto.getWechatAppId());
// 获取处理逻辑
AbstractOrderLogic orderLogic = OrderLogicFactory.getOrderLogic(mode);
AbstractProgramLogic orderLogic = ProgramLogicFactory.getProgramLogic(mode);
orderLogic.refundBalance(dto);
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.SettleOrderReportDTO;
import com.jsowell.pile.service.*;
import com.jsowell.pile.service.orderlogic.AbstractOrderLogic;
import com.jsowell.pile.service.orderlogic.OrderLogicFactory;
import com.jsowell.pile.service.programlogic.AbstractProgramLogic;
import com.jsowell.pile.service.programlogic.ProgramLogicFactory;
import com.jsowell.pile.vo.uniapp.MemberBalanceVO;
import com.jsowell.service.OrderService;
import com.jsowell.service.TempService;
@@ -324,7 +324,7 @@ public class TempController extends BaseController {
// 调用退款接口
String mode = pileMerchantInfoService.getDelayModeByWechatAppId(dto.getWechatAppId());
// 获取处理逻辑
AbstractOrderLogic orderLogic = OrderLogicFactory.getOrderLogic(mode);
AbstractProgramLogic orderLogic = ProgramLogicFactory.getProgramLogic(mode);
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.dto.*;
import com.jsowell.pile.service.*;
import com.jsowell.pile.service.orderlogic.AbstractOrderLogic;
import com.jsowell.pile.service.orderlogic.OrderLogicFactory;
import com.jsowell.pile.service.programlogic.AbstractProgramLogic;
import com.jsowell.pile.service.programlogic.ProgramLogicFactory;
import com.jsowell.pile.util.UserUtils;
import com.jsowell.pile.vo.base.OrderAmountDetailVO;
import com.jsowell.pile.vo.base.OrderPeriodAmountVO;
@@ -156,7 +156,7 @@ public class OrderService {
public String generateOrderV2(GenerateOrderDTO dto) throws ParseException {
// 新逻辑
String delayMode = pileMerchantInfoService.getDelayModeByWechatAppId(dto.getAppId());
AbstractOrderLogic orderLogic = OrderLogicFactory.getOrderLogic(delayMode);
AbstractProgramLogic orderLogic = ProgramLogicFactory.getProgramLogic(delayMode);
OrderBasicInfo orderBasicInfo = orderLogic.generateOrder(dto);
if (orderBasicInfo != null) {
return orderBasicInfo.getOrderCode();
@@ -182,7 +182,7 @@ public class OrderService {
public Map<String, Object> payOrderV2(PayOrderDTO dto) {
String mode = pileMerchantInfoService.getDelayModeByWechatAppId(dto.getWechatAppId());
// 获取处理逻辑
AbstractOrderLogic orderLogic = OrderLogicFactory.getOrderLogic(mode);
AbstractProgramLogic orderLogic = ProgramLogicFactory.getProgramLogic(mode);
Map<String, Object> map = orderLogic.payOrder(dto);
return map;
}
@@ -703,7 +703,7 @@ public class OrderService {
// orderBasicInfoService.settleOrder(data, orderBasicInfo);
// 新逻辑
String mode = pileMerchantInfoService.getDelayModeByMerchantId(orderBasicInfo.getMerchantId());
AbstractOrderLogic orderLogic = OrderLogicFactory.getOrderLogic(mode);
AbstractProgramLogic orderLogic = ProgramLogicFactory.getProgramLogic(mode);
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.mapper.OrderBasicInfoMapper;
import com.jsowell.pile.service.*;
import com.jsowell.pile.service.orderlogic.AbstractOrderLogic;
import com.jsowell.pile.service.orderlogic.DelayMerchantOrderLogic;
import com.jsowell.pile.service.programlogic.AbstractProgramLogic;
import com.jsowell.pile.service.programlogic.DelayMerchantProgramLogic;
import com.jsowell.pile.vo.web.ClearingBillVO;
import com.jsowell.pile.vo.web.OrderListVO;
import com.jsowell.pile.vo.web.OrderPayDetailVO;
@@ -428,7 +428,7 @@ public class TempService {
BigDecimal settleAmount = orderBasicInfo.getSettleAmount();
OrderPayRecord record = orderPayRecordList.get(0);
String deductionRecord = record.getDeductionRecord();
AbstractOrderLogic orderLogic = new DelayMerchantOrderLogic();
AbstractProgramLogic orderLogic = new DelayMerchantProgramLogic();
List<PaymentInfo> paymentInfos = orderLogic.parseDeductionRecord(deductionRecord);
// 通过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.PileBillingTemplateMapper;
import com.jsowell.pile.service.*;
import com.jsowell.pile.service.orderlogic.AbstractOrderLogic;
import com.jsowell.pile.service.orderlogic.OrderLogicFactory;
import com.jsowell.pile.service.programlogic.AbstractProgramLogic;
import com.jsowell.pile.service.programlogic.ProgramLogicFactory;
import com.jsowell.pile.transaction.dto.OrderTransactionDTO;
import com.jsowell.pile.transaction.service.TransactionService;
import com.jsowell.pile.util.SnUtils;
@@ -481,7 +481,7 @@ public class SpringBootTestController {
.build();
payRecordList.add(build);
AbstractOrderLogic orderLogic = OrderLogicFactory.getOrderLogic("1");
AbstractProgramLogic orderLogic = ProgramLogicFactory.getProgramLogic("1");
List<Map<String, Object>> maps = orderLogic.calculateUnfreezeAmount(orderAmount, payRecordList);
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.ruanjie.UseCouponDTO;
import com.jsowell.pile.service.*;
import com.jsowell.pile.service.orderlogic.AbstractOrderLogic;
import com.jsowell.pile.service.orderlogic.OrderLogicFactory;
import com.jsowell.pile.service.programlogic.AbstractProgramLogic;
import com.jsowell.pile.service.programlogic.ProgramLogicFactory;
import com.jsowell.pile.vo.base.ThirdPartyStationRelationVO;
import com.jsowell.pile.vo.web.PileStationVO;
import com.jsowell.thirdparty.lianlian.service.LianLianService;
@@ -658,7 +658,7 @@ public class TransactionRecordsRequestHandler extends AbstractHandler {
// orderBasicInfoService.settleOrder(data, orderBasicInfo);
// 新逻辑
String mode = pileMerchantInfoService.getDelayModeByMerchantId(orderBasicInfo.getMerchantId());
AbstractOrderLogic orderLogic = OrderLogicFactory.getOrderLogic(mode);
AbstractProgramLogic orderLogic = ProgramLogicFactory.getProgramLogic(mode);
orderLogic.settleOrder(data, orderBasicInfo);
} catch (Exception 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.nanrui.NRQueryOrderDTO;
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.OrderAmountDetailVO;
import com.jsowell.pile.vo.base.OrderPeriodAmountVO;
@@ -114,7 +114,7 @@ public interface IOrderBasicInfoService {
* 根据交易记录结算订单
* @param data 交易记录数据
* @param orderBasicInfo
* @deprecated 该方法废弃 {@link AbstractOrderLogic#settleOrder(TransactionRecordsData, OrderBasicInfo)} instead.
* @deprecated 该方法废弃 {@link AbstractProgramLogic#settleOrder(TransactionRecordsData, OrderBasicInfo)} instead.
*/
@Deprecated
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.mapper.OrderBasicInfoMapper;
import com.jsowell.pile.service.*;
import com.jsowell.pile.service.orderlogic.AbstractOrderLogic;
import com.jsowell.pile.service.orderlogic.DelayMerchantOrderLogic;
import com.jsowell.pile.service.orderlogic.OrderLogicFactory;
import com.jsowell.pile.service.programlogic.AbstractProgramLogic;
import com.jsowell.pile.service.programlogic.DelayMerchantProgramLogic;
import com.jsowell.pile.service.programlogic.ProgramLogicFactory;
import com.jsowell.pile.transaction.dto.ClearingBillTransactionDTO;
import com.jsowell.pile.transaction.dto.OrderTransactionDTO;
import com.jsowell.pile.transaction.service.TransactionService;
@@ -516,7 +516,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
// 新逻辑
String mode = pileMerchantInfoService.getDelayModeByMerchantId(orderInfo.getMerchantId());
AbstractOrderLogic orderLogic = OrderLogicFactory.getOrderLogic(mode);
AbstractProgramLogic orderLogic = ProgramLogicFactory.getProgramLogic(mode);
orderLogic.settleOrder(data, orderInfo);
}
@@ -1188,7 +1188,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
memberBasicInfoService.updateMemberBalance(updateMemberBalanceDTO);
// 更新order_pay_record, 解冻部分
AbstractOrderLogic orderLogic = new DelayMerchantOrderLogic();
AbstractProgramLogic orderLogic = new DelayMerchantProgramLogic();
List<Map<String, Object>> list = orderLogic.calculateUnfreezeAmount(orderAmount, payRecordList);
for (Map<String, Object> map : list) {
String paymentId = (String) map.get("paymentId");
@@ -2469,7 +2469,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
String mode = pileMerchantInfoService.getDelayModeByMerchantId(merchantId);
// 获取处理逻辑
AbstractOrderLogic orderLogic = OrderLogicFactory.getOrderLogic(mode);
AbstractProgramLogic orderLogic = ProgramLogicFactory.getProgramLogic(mode);
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.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());
@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.JSONObject;
@@ -50,12 +50,12 @@ import java.util.stream.Collectors;
* 设置延时分账的运营商订单逻辑
*/
@Service
public class DelayMerchantOrderLogic extends AbstractOrderLogic {
public class DelayMerchantProgramLogic extends AbstractProgramLogic {
@Override
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.JSONObject;
@@ -51,12 +51,12 @@ import java.util.stream.Collectors;
* 没有设置延时分账的运营商订单逻辑
*/
@Service
public class NotDelayMerchantOrderLogic extends AbstractOrderLogic{
public class NotDelayMerchantProgramLogic extends AbstractProgramLogic {
@Override
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);
}
}