mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-06-23 00:29:46 +08:00
支付占桩订单
This commit is contained in:
@@ -129,10 +129,10 @@ public class PayController extends BaseController {
|
|||||||
}
|
}
|
||||||
response = new RestApiResponse<>(map);
|
response = new RestApiResponse<>(map);
|
||||||
} catch (BusinessException e) {
|
} catch (BusinessException e) {
|
||||||
logger.warn("wechatpay支付订单 warn param:{}", dto.toString(), e);
|
logger.warn("wechatpay支付订单 warn param:{}", dto, e);
|
||||||
response = new RestApiResponse<>(e.getCode(), e.getMessage());
|
response = new RestApiResponse<>(e.getCode(), e.getMessage());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error("wechatpay支付订单 error param:{}", dto.toString(), e);
|
logger.error("wechatpay支付订单 error param:{}", dto, e);
|
||||||
response = new RestApiResponse<>(ReturnCodeEnum.CODE_ORDER_PAY_ERROR);
|
response = new RestApiResponse<>(ReturnCodeEnum.CODE_ORDER_PAY_ERROR);
|
||||||
} finally {
|
} finally {
|
||||||
// 支付订单解锁
|
// 支付订单解锁
|
||||||
@@ -328,15 +328,16 @@ public class PayController extends BaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 支付占桩订单
|
* 支付占桩订单/占桩订单支付
|
||||||
|
* https://api.jsowellcloud.com/uniapp/pay/payOccupyPileOrder
|
||||||
*/
|
*/
|
||||||
@PostMapping("/payOccupyPileOrder")
|
@PostMapping("/payOccupyPileOrder")
|
||||||
public RestApiResponse<?> payOccupyPileOrder(HttpServletRequest request, @RequestBody PayOrderDTO dto) {
|
public RestApiResponse<?> payOccupyPileOrder(HttpServletRequest request, @RequestBody PayOrderDTO dto) {
|
||||||
logger.info("wechatpay支付订单 param:{}", dto.toString());
|
logger.info("支付占桩订单 param:{}", dto.toString());
|
||||||
RestApiResponse<?> response;
|
RestApiResponse<?> response;
|
||||||
|
|
||||||
// 支付订单加锁
|
// 支付订单加锁
|
||||||
String lockKey = "pay_order_" + dto.getOrderCode();
|
String lockKey = "pay_occupy_order_" + dto.getOrderCode();
|
||||||
String lockValue = IdUtils.fastUUID();
|
String lockValue = IdUtils.fastUUID();
|
||||||
try {
|
try {
|
||||||
String memberId = getMemberIdByAuthorization(request);
|
String memberId = getMemberIdByAuthorization(request);
|
||||||
@@ -354,7 +355,7 @@ public class PayController extends BaseController {
|
|||||||
if (isLock) {
|
if (isLock) {
|
||||||
String appId = request.getHeader("appId");
|
String appId = request.getHeader("appId");
|
||||||
dto.setWechatAppId(appId);
|
dto.setWechatAppId(appId);
|
||||||
map = orderService.payOrder(dto);
|
map = orderService.payOccupyPileOrder(dto);
|
||||||
}
|
}
|
||||||
response = new RestApiResponse<>(map);
|
response = new RestApiResponse<>(map);
|
||||||
} catch (BusinessException e) {
|
} catch (BusinessException e) {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package com.jsowell.api.uniapp;
|
|||||||
import com.alibaba.fastjson2.JSON;
|
import com.alibaba.fastjson2.JSON;
|
||||||
import com.alibaba.fastjson2.JSONObject;
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
import com.jsowell.adapay.dto.BalancePaymentRequestDTO;
|
import com.jsowell.adapay.dto.BalancePaymentRequestDTO;
|
||||||
import com.jsowell.adapay.service.AdapayMemberService;
|
import com.jsowell.adapay.service.AdapayService;
|
||||||
import com.jsowell.common.annotation.Anonymous;
|
import com.jsowell.common.annotation.Anonymous;
|
||||||
import com.jsowell.common.core.controller.BaseController;
|
import com.jsowell.common.core.controller.BaseController;
|
||||||
import com.jsowell.common.enums.ykc.ReturnCodeEnum;
|
import com.jsowell.common.enums.ykc.ReturnCodeEnum;
|
||||||
@@ -48,7 +48,7 @@ public class TempController extends BaseController {
|
|||||||
private IAdapayMemberAccountService adapayMemberAccountService;
|
private IAdapayMemberAccountService adapayMemberAccountService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private AdapayMemberService adapayMemberService;
|
private AdapayService adapayMemberService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private IMemberBasicInfoService memberBasicInfoService;
|
private IMemberBasicInfoService memberBasicInfoService;
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ import org.slf4j.LoggerFactory;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
@@ -111,9 +112,11 @@ public class OrderService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private MemberAdapayRecordService memberAdapayRecordService;
|
private MemberAdapayRecordService memberAdapayRecordService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private OrderPileOccupyService orderPileOccupyService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 生成订单
|
* 生成订单
|
||||||
*
|
|
||||||
* @param dto
|
* @param dto
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@@ -125,18 +128,8 @@ public class OrderService {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取到vin 查询对应的用户,得到余额
|
|
||||||
*
|
|
||||||
* 生成订单
|
|
||||||
*
|
|
||||||
* 支付订单
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单支付
|
* 订单支付
|
||||||
*
|
|
||||||
* @param dto
|
* @param dto
|
||||||
*/
|
*/
|
||||||
public Map<String, Object> payOrder(PayOrderDTO dto) throws Exception {
|
public Map<String, Object> payOrder(PayOrderDTO dto) throws Exception {
|
||||||
@@ -154,7 +147,7 @@ public class OrderService {
|
|||||||
// 查询订单详情,验证订单中的桩编号是否正确
|
// 查询订单详情,验证订单中的桩编号是否正确
|
||||||
OrderBasicInfo orderBasicInfo = orderBasicInfoService.getOrderInfoByOrderCode(dto.getOrderCode());
|
OrderBasicInfo orderBasicInfo = orderBasicInfoService.getOrderInfoByOrderCode(dto.getOrderCode());
|
||||||
if (orderBasicInfo == null) {
|
if (orderBasicInfo == null) {
|
||||||
throw new BusinessException(ReturnCodeEnum.CODE_QUERY_ORDER_NULL_ERROR);
|
throw new BusinessException(ReturnCodeEnum.CODE_QUERY_ORDER_INFO_IS_NULL);
|
||||||
}
|
}
|
||||||
if (!(StringUtils.equals(orderBasicInfo.getPileSn(), dto.getPileSn())
|
if (!(StringUtils.equals(orderBasicInfo.getPileSn(), dto.getPileSn())
|
||||||
&& StringUtils.equals(orderBasicInfo.getConnectorCode(), dto.getConnectorCode()))) {
|
&& StringUtils.equals(orderBasicInfo.getConnectorCode(), dto.getConnectorCode()))) {
|
||||||
@@ -241,7 +234,7 @@ public class OrderService {
|
|||||||
// 查订单
|
// 查订单
|
||||||
OrderBasicInfo orderInfo = orderBasicInfoService.getOrderInfoByOrderCode(dto.getOrderCode());
|
OrderBasicInfo orderInfo = orderBasicInfoService.getOrderInfoByOrderCode(dto.getOrderCode());
|
||||||
if (orderInfo == null) {
|
if (orderInfo == null) {
|
||||||
throw new BusinessException(ReturnCodeEnum.CODE_QUERY_ORDER_NULL_ERROR);
|
throw new BusinessException(ReturnCodeEnum.CODE_QUERY_ORDER_INFO_IS_NULL);
|
||||||
}
|
}
|
||||||
// 判断订单状态是不是已经结算了
|
// 判断订单状态是不是已经结算了
|
||||||
if (StringUtils.equals(orderInfo.getOrderStatus(), OrderStatusEnum.ORDER_COMPLETE.getValue())) {
|
if (StringUtils.equals(orderInfo.getOrderStatus(), OrderStatusEnum.ORDER_COMPLETE.getValue())) {
|
||||||
@@ -540,7 +533,7 @@ public class OrderService {
|
|||||||
public UniAppOrderVO getUniAppOrderDetail(String orderCode) {
|
public UniAppOrderVO getUniAppOrderDetail(String orderCode) {
|
||||||
OrderBasicInfo orderBasicInfo = orderBasicInfoService.getOrderInfoByOrderCode(orderCode);
|
OrderBasicInfo orderBasicInfo = orderBasicInfoService.getOrderInfoByOrderCode(orderCode);
|
||||||
if (orderBasicInfo == null) {
|
if (orderBasicInfo == null) {
|
||||||
throw new BusinessException(ReturnCodeEnum.CODE_QUERY_ORDER_NULL_ERROR);
|
throw new BusinessException(ReturnCodeEnum.CODE_QUERY_ORDER_INFO_IS_NULL);
|
||||||
}
|
}
|
||||||
UniAppOrderVO vo = new UniAppOrderVO();
|
UniAppOrderVO vo = new UniAppOrderVO();
|
||||||
vo.setOrderCode(orderBasicInfo.getOrderCode());
|
vo.setOrderCode(orderBasicInfo.getOrderCode());
|
||||||
@@ -1148,5 +1141,7 @@ public class OrderService {
|
|||||||
log.info("支付撤销失败 data:{}", JSON.toJSONString(data));
|
log.info("支付撤销失败 data:{}", JSON.toJSONString(data));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Map<String, Object> payOccupyPileOrder(PayOrderDTO dto) {
|
||||||
|
return orderPileOccupyService.payOccupyPileOrder(dto);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import com.jsowell.adapay.dto.AdapayMemberInfoDTO;
|
|||||||
import com.jsowell.adapay.dto.SettleAccountDTO;
|
import com.jsowell.adapay.dto.SettleAccountDTO;
|
||||||
import com.jsowell.adapay.dto.UpdateAccountConfigDTO;
|
import com.jsowell.adapay.dto.UpdateAccountConfigDTO;
|
||||||
import com.jsowell.adapay.dto.WithdrawDTO;
|
import com.jsowell.adapay.dto.WithdrawDTO;
|
||||||
import com.jsowell.adapay.service.AdapayMemberService;
|
import com.jsowell.adapay.service.AdapayService;
|
||||||
import com.jsowell.adapay.vo.AdapayAccountBalanceVO;
|
import com.jsowell.adapay.vo.AdapayAccountBalanceVO;
|
||||||
import com.jsowell.common.core.controller.BaseController;
|
import com.jsowell.common.core.controller.BaseController;
|
||||||
import com.jsowell.common.core.domain.AjaxResult;
|
import com.jsowell.common.core.domain.AjaxResult;
|
||||||
@@ -26,7 +26,7 @@ import java.util.Map;
|
|||||||
public class AdapayMemberController extends BaseController {
|
public class AdapayMemberController extends BaseController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private AdapayMemberService adapayMemberService;
|
private AdapayService adapayMemberService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建结算账户
|
* 创建结算账户
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ import com.huifu.adapay.model.Refund;
|
|||||||
import com.jsowell.JsowellApplication;
|
import com.jsowell.JsowellApplication;
|
||||||
import com.jsowell.adapay.config.AbstractAdapayConfig;
|
import com.jsowell.adapay.config.AbstractAdapayConfig;
|
||||||
import com.jsowell.adapay.factory.AdapayConfigFactory;
|
import com.jsowell.adapay.factory.AdapayConfigFactory;
|
||||||
import com.jsowell.adapay.service.AdapayMemberService;
|
import com.jsowell.adapay.service.AdapayService;
|
||||||
import com.jsowell.common.constant.CacheConstants;
|
import com.jsowell.common.constant.CacheConstants;
|
||||||
import com.jsowell.common.constant.Constants;
|
import com.jsowell.common.constant.Constants;
|
||||||
import com.jsowell.common.core.domain.entity.SysDictData;
|
import com.jsowell.common.core.domain.entity.SysDictData;
|
||||||
@@ -175,7 +175,7 @@ public class SpringBootTestController {
|
|||||||
private IAdapayRefundRecordService adapayRefundRecordService;
|
private IAdapayRefundRecordService adapayRefundRecordService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private AdapayMemberService adapayMemberService;
|
private AdapayService adapayMemberService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private AMapService aMapService;
|
private AMapService aMapService;
|
||||||
@@ -366,7 +366,7 @@ public class SpringBootTestController {
|
|||||||
payOrderDTO.setMemberId(dto.getMemberId());
|
payOrderDTO.setMemberId(dto.getMemberId());
|
||||||
// payOrderDTO.setCode();
|
// payOrderDTO.setCode();
|
||||||
// payOrderDTO.setLockValue();
|
// payOrderDTO.setLockValue();
|
||||||
payOrderDTO.setOrderBasicInfo(basicInfo);
|
// payOrderDTO.setOrderBasicInfo(basicInfo);
|
||||||
|
|
||||||
Map<String, Object> map = orderBasicInfoService.payOrder(payOrderDTO);
|
Map<String, Object> map = orderBasicInfoService.payOrder(payOrderDTO);
|
||||||
|
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ public enum ReturnCodeEnum {
|
|||||||
|
|
||||||
CODE_ORDER_INFO_ERROR("00100019", "订单信息有误"),
|
CODE_ORDER_INFO_ERROR("00100019", "订单信息有误"),
|
||||||
|
|
||||||
CODE_QUERY_ORDER_NULL_ERROR("00100020", "查询订单为空"),
|
CODE_QUERY_ORDER_INFO_IS_NULL("00100020", "未查到相关订单信息"),
|
||||||
|
|
||||||
CODE_ORDER_PILE_MAPPING_ERROR("00100021", "订单与当前桩不匹配"),
|
CODE_ORDER_PILE_MAPPING_ERROR("00100021", "订单与当前桩不匹配"),
|
||||||
|
|
||||||
@@ -148,8 +148,6 @@ public enum ReturnCodeEnum {
|
|||||||
|
|
||||||
CODE_USER_UNBIND_CARNO_ERROR("00500003", "用户解绑车牌号异常"),
|
CODE_USER_UNBIND_CARNO_ERROR("00500003", "用户解绑车牌号异常"),
|
||||||
|
|
||||||
CODE_QUERY_ORDER_INFO_IS_NULL("00400011", "未查到相关订单信息!"),
|
|
||||||
|
|
||||||
CODE_PILE_NOT_INFO("00400012", "未查到该该桩的信息,请检查!"),
|
CODE_PILE_NOT_INFO("00400012", "未查到该该桩的信息,请检查!"),
|
||||||
|
|
||||||
CODE_SECRET_KEY_ERROR("00400013", "填写的桩密钥有误,请检查!"),
|
CODE_SECRET_KEY_ERROR("00400013", "填写的桩密钥有误,请检查!"),
|
||||||
|
|||||||
@@ -2,10 +2,13 @@ package com.jsowell.adapay.service;
|
|||||||
|
|
||||||
import com.alibaba.fastjson2.JSON;
|
import com.alibaba.fastjson2.JSON;
|
||||||
import com.alibaba.fastjson2.JSONObject;
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
|
import com.alibaba.fastjson2.TypeReference;
|
||||||
|
import com.google.common.collect.ImmutableMap;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
import com.huifu.adapay.core.exception.BaseAdaPayException;
|
import com.huifu.adapay.core.exception.BaseAdaPayException;
|
||||||
import com.huifu.adapay.model.*;
|
import com.huifu.adapay.model.*;
|
||||||
|
import com.jsowell.adapay.common.CreateAdaPaymentParam;
|
||||||
import com.jsowell.adapay.common.DivMember;
|
import com.jsowell.adapay.common.DivMember;
|
||||||
import com.jsowell.adapay.config.AbstractAdapayConfig;
|
import com.jsowell.adapay.config.AbstractAdapayConfig;
|
||||||
import com.jsowell.adapay.dto.SettleAccountDTO;
|
import com.jsowell.adapay.dto.SettleAccountDTO;
|
||||||
@@ -17,10 +20,13 @@ import com.jsowell.adapay.vo.AdapayAccountBalanceVO;
|
|||||||
import com.jsowell.adapay.vo.AdapayCorpMemberVO;
|
import com.jsowell.adapay.vo.AdapayCorpMemberVO;
|
||||||
import com.jsowell.adapay.vo.AdapayMemberInfoVO;
|
import com.jsowell.adapay.vo.AdapayMemberInfoVO;
|
||||||
import com.jsowell.adapay.vo.AdapaySettleAccountVO;
|
import com.jsowell.adapay.vo.AdapaySettleAccountVO;
|
||||||
|
import com.jsowell.common.constant.CacheConstants;
|
||||||
import com.jsowell.common.constant.Constants;
|
import com.jsowell.common.constant.Constants;
|
||||||
|
import com.jsowell.common.core.redis.RedisCache;
|
||||||
import com.jsowell.common.enums.DelFlagEnum;
|
import com.jsowell.common.enums.DelFlagEnum;
|
||||||
import com.jsowell.common.enums.adapay.AdapayStatusEnum;
|
import com.jsowell.common.enums.adapay.AdapayStatusEnum;
|
||||||
import com.jsowell.common.enums.ykc.ReturnCodeEnum;
|
import com.jsowell.common.enums.ykc.ReturnCodeEnum;
|
||||||
|
import com.jsowell.common.enums.ykc.ScenarioEnum;
|
||||||
import com.jsowell.common.exception.BusinessException;
|
import com.jsowell.common.exception.BusinessException;
|
||||||
import com.jsowell.common.util.AdapayUtil;
|
import com.jsowell.common.util.AdapayUtil;
|
||||||
import com.jsowell.common.util.StringUtils;
|
import com.jsowell.common.util.StringUtils;
|
||||||
@@ -29,14 +35,17 @@ import com.jsowell.common.util.id.IdUtils;
|
|||||||
import com.jsowell.pile.domain.AdapayMemberAccount;
|
import com.jsowell.pile.domain.AdapayMemberAccount;
|
||||||
import com.jsowell.pile.domain.ClearingBillInfo;
|
import com.jsowell.pile.domain.ClearingBillInfo;
|
||||||
import com.jsowell.pile.domain.ClearingWithdrawInfo;
|
import com.jsowell.pile.domain.ClearingWithdrawInfo;
|
||||||
|
import com.jsowell.pile.dto.PayOrderDTO;
|
||||||
import com.jsowell.pile.service.ClearingBillInfoService;
|
import com.jsowell.pile.service.ClearingBillInfoService;
|
||||||
import com.jsowell.pile.service.ClearingWithdrawInfoService;
|
import com.jsowell.pile.service.ClearingWithdrawInfoService;
|
||||||
import com.jsowell.pile.service.IAdapayMemberAccountService;
|
import com.jsowell.pile.service.IAdapayMemberAccountService;
|
||||||
import com.jsowell.pile.service.IPileMerchantInfoService;
|
import com.jsowell.pile.service.IPileMerchantInfoService;
|
||||||
|
import com.jsowell.wxpay.service.WxAppletRemoteService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.cglib.beans.BeanMap;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Propagation;
|
import org.springframework.transaction.annotation.Propagation;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
@@ -46,11 +55,15 @@ import java.math.BigDecimal;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
public class AdapayMemberService {
|
public class AdapayService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RedisCache redisCache;
|
||||||
|
|
||||||
@Value("${adapay.jsowell.appId}")
|
@Value("${adapay.jsowell.appId}")
|
||||||
private String ADAPAY_APP_ID;
|
private String ADAPAY_APP_ID;
|
||||||
@@ -70,6 +83,75 @@ public class AdapayMemberService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private IPileMerchantInfoService pileMerchantInfoService;
|
private IPileMerchantInfoService pileMerchantInfoService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private WxAppletRemoteService wxAppletRemoteService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取支付参数
|
||||||
|
*/
|
||||||
|
public Map<String, Object> createPayment(PayOrderDTO dto) {
|
||||||
|
log.info("===============使用汇付支付-获取支付参数");
|
||||||
|
// 相同参数重复请求,返回同一个支付对象
|
||||||
|
String redisKey = CacheConstants.ADAPAY_ORDER_PARAM + dto.getOrderCode();
|
||||||
|
Map<String, Object> cacheObject = redisCache.getCacheObject(redisKey);
|
||||||
|
if (cacheObject != null) {
|
||||||
|
// 表示已经获取到支付参数了,后续再有支付请求就拒绝
|
||||||
|
return cacheObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取支付配置
|
||||||
|
AbstractAdapayConfig config = AdapayConfigFactory.getConfig(dto.getWechatAppId());
|
||||||
|
if (config == null) {
|
||||||
|
throw new BusinessException(ReturnCodeEnum.CODE_ADAPAY_CONFIG_IS_NULL_ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取openId
|
||||||
|
String openId = wxAppletRemoteService.getOpenIdByCode(dto.getCode());
|
||||||
|
if (StringUtils.isBlank(openId)) {
|
||||||
|
throw new BusinessException(ReturnCodeEnum.CODE_GET_OPEN_ID_BY_CODE_ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 封装对象
|
||||||
|
String amount = AdapayUtil.formatAmount(dto.getPayAmount()); // 用户支付金额
|
||||||
|
String payMode = Constants.ADAPAY_PAY_MODE_DELAY; // 汇付延时分账
|
||||||
|
CreateAdaPaymentParam createAdaPaymentParam = new CreateAdaPaymentParam();
|
||||||
|
createAdaPaymentParam.setOrder_no(dto.getOrderCode());
|
||||||
|
createAdaPaymentParam.setPay_amt(amount);
|
||||||
|
createAdaPaymentParam.setApp_id(config.getAdapayAppId());
|
||||||
|
createAdaPaymentParam.setPay_channel("wx_lite"); // todo 如果以后有支付宝等别的渠道,这里需要做修改,判断是什么渠道的请求
|
||||||
|
createAdaPaymentParam.setGoods_title(dto.getGoodsTitle());
|
||||||
|
createAdaPaymentParam.setGoods_desc(dto.getGoodsDesc()); // 这个字段是微信支付凭证的商品名
|
||||||
|
Map<String, String> map = Maps.newHashMap();
|
||||||
|
map.put("type", ScenarioEnum.ORDER.getValue());
|
||||||
|
map.put("orderCode", dto.getOrderCode());
|
||||||
|
map.put("payMode", payMode);
|
||||||
|
map.put("memberId", dto.getMemberId());
|
||||||
|
createAdaPaymentParam.setDescription(JSON.toJSONString(map));
|
||||||
|
// 异步通知地址,url为http/https路径,服务器POST回调,URL 上请勿附带参数
|
||||||
|
createAdaPaymentParam.setNotify_url(ADAPAY_CALLBACK_URL);
|
||||||
|
createAdaPaymentParam.setExpend(JSONObject.toJSONString(ImmutableMap.of("open_id", openId)));
|
||||||
|
|
||||||
|
// 延时分账
|
||||||
|
createAdaPaymentParam.setPay_mode(payMode);
|
||||||
|
try {
|
||||||
|
log.info("创建汇付支付参数:{}", JSONObject.toJSONString(createAdaPaymentParam));
|
||||||
|
Map<String, Object> response = Payment.create(BeanMap.create(createAdaPaymentParam), config.getWechatAppId());
|
||||||
|
if (response != null && !response.isEmpty()) {
|
||||||
|
JSONObject expend = JSONObject.parseObject(response.get("expend").toString());
|
||||||
|
JSONObject pay_info = expend.getJSONObject("pay_info");
|
||||||
|
Map<String, Object> resultMap = JSONObject.parseObject(pay_info.toJSONString(), new TypeReference<Map<String, Object>>() {});
|
||||||
|
if (resultMap != null) {
|
||||||
|
// 请求参数放入缓存,15分钟以内返回同一个支付参数
|
||||||
|
redisCache.setCacheObject(redisKey, resultMap, 15, TimeUnit.MINUTES);
|
||||||
|
}
|
||||||
|
return resultMap;
|
||||||
|
}
|
||||||
|
} catch (BaseAdaPayException e) {
|
||||||
|
log.error("汇付-获取支付对象发生异常", e);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建结算账户
|
* 创建结算账户
|
||||||
*
|
*
|
||||||
@@ -1,9 +1,6 @@
|
|||||||
package com.jsowell.pile.dto;
|
package com.jsowell.pile.dto;
|
||||||
|
|
||||||
import com.jsowell.pile.domain.OrderBasicInfo;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
|
||||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
@@ -49,21 +46,21 @@ public class PayOrderDTO {
|
|||||||
*/
|
*/
|
||||||
private String lockValue;
|
private String lockValue;
|
||||||
|
|
||||||
private OrderBasicInfo orderBasicInfo;
|
// private OrderBasicInfo orderBasicInfo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 微信小程序appId
|
* 微信小程序appId
|
||||||
*/
|
*/
|
||||||
private String wechatAppId;
|
private String wechatAppId;
|
||||||
|
|
||||||
@Override
|
/**
|
||||||
public String toString() {
|
* 商品标题
|
||||||
return new ToStringBuilder(this, ToStringStyle.JSON_STYLE)
|
*/
|
||||||
.append("memberId", memberId)
|
private String goodsTitle;
|
||||||
.append("orderCode", orderCode)
|
|
||||||
.append("payMode", payMode)
|
/**
|
||||||
.append("payAmount", payAmount)
|
* 商品描述信息,微信小程序和微信公众号该字段最大长度42个字符
|
||||||
.append("code", code)
|
* 这个字段是微信支付凭证的商品名
|
||||||
.toString();
|
*/
|
||||||
}
|
private String goodsDesc;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
package com.jsowell.pile.service;
|
package com.jsowell.pile.service;
|
||||||
|
|
||||||
import com.jsowell.pile.domain.OrderPileOccupy;
|
import com.jsowell.pile.domain.OrderPileOccupy;
|
||||||
|
import com.jsowell.pile.dto.PayOrderDTO;
|
||||||
import com.jsowell.pile.dto.QueryOccupyOrderDTO;
|
import com.jsowell.pile.dto.QueryOccupyOrderDTO;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
public interface OrderPileOccupyService{
|
public interface OrderPileOccupyService{
|
||||||
int deleteByPrimaryKey(Integer id);
|
int deleteByPrimaryKey(Integer id);
|
||||||
|
|
||||||
@@ -49,4 +52,6 @@ public interface OrderPileOccupyService{
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<OrderPileOccupy> queryUnPayOrderByMemberId(String memberId);
|
List<OrderPileOccupy> queryUnPayOrderByMemberId(String memberId);
|
||||||
|
|
||||||
|
Map<String, Object> payOccupyPileOrder(PayOrderDTO dto);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,23 +2,17 @@ package com.jsowell.pile.service.impl;
|
|||||||
|
|
||||||
import com.alibaba.fastjson2.JSON;
|
import com.alibaba.fastjson2.JSON;
|
||||||
import com.alibaba.fastjson2.JSONObject;
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
import com.alibaba.fastjson2.TypeReference;
|
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import com.google.common.base.Joiner;
|
import com.google.common.base.Joiner;
|
||||||
import com.google.common.collect.ImmutableMap;
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
import com.huifu.adapay.core.exception.BaseAdaPayException;
|
import com.huifu.adapay.core.exception.BaseAdaPayException;
|
||||||
import com.huifu.adapay.model.Payment;
|
|
||||||
import com.huifu.adapay.model.PaymentConfirm;
|
import com.huifu.adapay.model.PaymentConfirm;
|
||||||
import com.jsowell.adapay.common.CreateAdaPaymentParam;
|
|
||||||
import com.jsowell.adapay.common.DivMember;
|
import com.jsowell.adapay.common.DivMember;
|
||||||
import com.jsowell.adapay.config.AbstractAdapayConfig;
|
|
||||||
import com.jsowell.adapay.factory.AdapayConfigFactory;
|
|
||||||
import com.jsowell.adapay.response.PaymentConfirmResponse;
|
import com.jsowell.adapay.response.PaymentConfirmResponse;
|
||||||
import com.jsowell.adapay.response.PaymentReverseResponse;
|
import com.jsowell.adapay.response.PaymentReverseResponse;
|
||||||
import com.jsowell.adapay.service.AdapayMemberService;
|
import com.jsowell.adapay.service.AdapayService;
|
||||||
import com.jsowell.adapay.vo.OrderSettleResult;
|
import com.jsowell.adapay.vo.OrderSettleResult;
|
||||||
import com.jsowell.common.constant.CacheConstants;
|
import com.jsowell.common.constant.CacheConstants;
|
||||||
import com.jsowell.common.constant.Constants;
|
import com.jsowell.common.constant.Constants;
|
||||||
@@ -58,7 +52,6 @@ import org.slf4j.Logger;
|
|||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.cglib.beans.BeanMap;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
@@ -168,7 +161,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
|||||||
private IPileStationWhitelistService pileStationWhitelistService;
|
private IPileStationWhitelistService pileStationWhitelistService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private AdapayMemberService adapayMemberService;
|
private AdapayService adapayService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private MemberAdapayRecordService memberAdapayRecordService;
|
private MemberAdapayRecordService memberAdapayRecordService;
|
||||||
@@ -1166,7 +1159,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
|||||||
String paymentId = vo.getPaymentId();
|
String paymentId = vo.getPaymentId();
|
||||||
BigDecimal deductionAmount = vo.getDeductionAmount();
|
BigDecimal deductionAmount = vo.getDeductionAmount();
|
||||||
// 调汇付的分账接口 确认交易
|
// 调汇付的分账接口 确认交易
|
||||||
PaymentConfirmResponse paymentConfirmResponse = adapayMemberService.createPaymentConfirmRequest(paymentId, adapayMemberAccount, deductionAmount, orderCode);
|
PaymentConfirmResponse paymentConfirmResponse = adapayService.createPaymentConfirmRequest(paymentId, adapayMemberAccount, deductionAmount, orderCode);
|
||||||
if (paymentConfirmResponse != null) {
|
if (paymentConfirmResponse != null) {
|
||||||
confirmAmt = confirmAmt.add(new BigDecimal(paymentConfirmResponse.getConfirmed_amt()));
|
confirmAmt = confirmAmt.add(new BigDecimal(paymentConfirmResponse.getConfirmed_amt()));
|
||||||
feeAmt = feeAmt.add(new BigDecimal(paymentConfirmResponse.getFee_amt()));
|
feeAmt = feeAmt.add(new BigDecimal(paymentConfirmResponse.getFee_amt()));
|
||||||
@@ -2145,7 +2138,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
|||||||
payOrderDTO.setStartMode(dto.getStartMode());
|
payOrderDTO.setStartMode(dto.getStartMode());
|
||||||
// payOrderDTO.setCode();
|
// payOrderDTO.setCode();
|
||||||
// payOrderDTO.setLockValue();
|
// payOrderDTO.setLockValue();
|
||||||
payOrderDTO.setOrderBasicInfo(basicInfo);
|
// payOrderDTO.setOrderBasicInfo(basicInfo);
|
||||||
|
|
||||||
payOrder(payOrderDTO);
|
payOrder(payOrderDTO);
|
||||||
|
|
||||||
@@ -2358,10 +2351,10 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
|||||||
String payMode = "delay";
|
String payMode = "delay";
|
||||||
if (StringUtils.equals("", payMode)) {
|
if (StringUtils.equals("", payMode)) {
|
||||||
// 延迟分账确认的调退款接口
|
// 延迟分账确认的调退款接口
|
||||||
adapayMemberService.createRefundRequest(paymentId, refundAmount);
|
adapayService.createRefundRequest(paymentId, refundAmount);
|
||||||
} else {
|
} else {
|
||||||
// 延迟分账未确认调撤销调撤销接口退款
|
// 延迟分账未确认调撤销调撤销接口退款
|
||||||
PaymentReverseResponse response = adapayMemberService.createPaymentReverseRequest(
|
PaymentReverseResponse response = adapayService.createPaymentReverseRequest(
|
||||||
paymentId, refundAmount, dto.getWechatAppId(), dto.getMemberId(), ScenarioEnum.ORDER.getValue(),
|
paymentId, refundAmount, dto.getWechatAppId(), dto.getMemberId(), ScenarioEnum.ORDER.getValue(),
|
||||||
dto.getOrderCode());
|
dto.getOrderCode());
|
||||||
if (response != null) {
|
if (response != null) {
|
||||||
@@ -2405,7 +2398,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
|||||||
BigDecimal deductionAmount = vo.getDeductionAmount();
|
BigDecimal deductionAmount = vo.getDeductionAmount();
|
||||||
|
|
||||||
// 调汇付的交易撤销接口
|
// 调汇付的交易撤销接口
|
||||||
adapayMemberService.createPaymentReverseRequest(paymentId, deductionAmount, dto.getWechatAppId(),
|
adapayService.createPaymentReverseRequest(paymentId, deductionAmount, dto.getWechatAppId(),
|
||||||
dto.getMemberId(), ScenarioEnum.BALANCE.getValue(), null);
|
dto.getMemberId(), ScenarioEnum.BALANCE.getValue(), null);
|
||||||
|
|
||||||
// 更新这笔交易的剩余金额
|
// 更新这笔交易的剩余金额
|
||||||
@@ -2623,7 +2616,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
|||||||
public Map<String, Object> payOrder(PayOrderDTO dto) {
|
public Map<String, Object> payOrder(PayOrderDTO dto) {
|
||||||
OrderBasicInfo orderInfo = this.getOrderInfoByOrderCode(dto.getOrderCode());
|
OrderBasicInfo orderInfo = this.getOrderInfoByOrderCode(dto.getOrderCode());
|
||||||
if (orderInfo == null) {
|
if (orderInfo == null) {
|
||||||
throw new BusinessException(ReturnCodeEnum.CODE_QUERY_ORDER_NULL_ERROR);
|
throw new BusinessException(ReturnCodeEnum.CODE_QUERY_ORDER_INFO_IS_NULL);
|
||||||
}
|
}
|
||||||
if (!StringUtils.equals(orderInfo.getPayStatus(), OrderPayStatusEnum.unpaid.getValue())) {
|
if (!StringUtils.equals(orderInfo.getPayStatus(), OrderPayStatusEnum.unpaid.getValue())) {
|
||||||
// 订单已支付
|
// 订单已支付
|
||||||
@@ -2635,10 +2628,12 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
|||||||
balancePayOrder(dto);
|
balancePayOrder(dto);
|
||||||
} else if (StringUtils.equals(dto.getPayMode(), OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getValue())) {
|
} else if (StringUtils.equals(dto.getPayMode(), OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getValue())) {
|
||||||
// 微信支付
|
// 微信支付
|
||||||
dto.setOrderBasicInfo(orderInfo);
|
// dto.setOrderBasicInfo(orderInfo);
|
||||||
|
|
||||||
// 2023-07-11 全部改为汇付支付
|
// 2023-07-11 全部改为汇付支付
|
||||||
Map<String, Object> weixinMap = adapayPayOrder(dto);
|
dto.setGoodsTitle("充电费用");
|
||||||
|
dto.setGoodsDesc("充电桩预付款金额");
|
||||||
|
Map<String, Object> weixinMap = adapayService.createPayment(dto);
|
||||||
|
|
||||||
// 返回微信支付参数
|
// 返回微信支付参数
|
||||||
resultMap.put("weixinMap", weixinMap);
|
resultMap.put("weixinMap", weixinMap);
|
||||||
@@ -2751,7 +2746,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
|||||||
// 通过支付id查询退款记录
|
// 通过支付id查询退款记录
|
||||||
String paymentId = adapayCallbackRecord.getPaymentId();
|
String paymentId = adapayCallbackRecord.getPaymentId();
|
||||||
try {
|
try {
|
||||||
resultList = adapayMemberService.queryPaymentReverse(paymentId, wechatAppId);
|
resultList = adapayService.queryPaymentReverse(paymentId, wechatAppId);
|
||||||
} catch (BaseAdaPayException e) {
|
} catch (BaseAdaPayException e) {
|
||||||
logger.error("查询支付撤销对象发生异常", e);
|
logger.error("查询支付撤销对象发生异常", e);
|
||||||
}
|
}
|
||||||
@@ -2798,7 +2793,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
|||||||
List<PaymentReverseResponse> paymentReverses = queryOrderAdapayRefund(orderBasicInfo);
|
List<PaymentReverseResponse> paymentReverses = queryOrderAdapayRefund(orderBasicInfo);
|
||||||
if (CollectionUtils.isEmpty(paymentReverses)) {
|
if (CollectionUtils.isEmpty(paymentReverses)) {
|
||||||
// 如果没有退款过,重新执行一遍退款
|
// 如果没有退款过,重新执行一遍退款
|
||||||
PaymentReverseResponse response = adapayMemberService.createPaymentReverseRequest(
|
PaymentReverseResponse response = adapayService.createPaymentReverseRequest(
|
||||||
paymentId, refundAmount, wechatAppId, memberId, ScenarioEnum.ORDER.getValue(),
|
paymentId, refundAmount, wechatAppId, memberId, ScenarioEnum.ORDER.getValue(),
|
||||||
orderCode);
|
orderCode);
|
||||||
logger.info("重试订单退款response:{}", JSON.toJSONString(response));
|
logger.info("重试订单退款response:{}", JSON.toJSONString(response));
|
||||||
@@ -2822,7 +2817,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
|||||||
* @param dto
|
* @param dto
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private Map<String, Object> adapayPayOrder(PayOrderDTO dto) {
|
/*private Map<String, Object> adapayPayOrder(PayOrderDTO dto) {
|
||||||
logger.info("===============使用汇付支付");
|
logger.info("===============使用汇付支付");
|
||||||
// 相同参数重复请求,返回同一个支付对象
|
// 相同参数重复请求,返回同一个支付对象
|
||||||
String redisKey = CacheConstants.ADAPAY_ORDER_PARAM + dto.getOrderCode();
|
String redisKey = CacheConstants.ADAPAY_ORDER_PARAM + dto.getOrderCode();
|
||||||
@@ -2837,11 +2832,12 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
|||||||
throw new BusinessException(ReturnCodeEnum.CODE_ADAPAY_CONFIG_IS_NULL_ERROR);
|
throw new BusinessException(ReturnCodeEnum.CODE_ADAPAY_CONFIG_IS_NULL_ERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
OrderBasicInfo orderInfo = dto.getOrderBasicInfo();
|
// OrderBasicInfo orderInfo = dto.getOrderBasicInfo();
|
||||||
if (orderInfo == null) {
|
// if (orderInfo == null) {
|
||||||
// 订单为空重新查询
|
// // 订单为空重新查询
|
||||||
orderInfo = this.getOrderInfoByOrderCode(dto.getOrderCode());
|
// orderInfo = this.getOrderInfoByOrderCode(dto.getOrderCode());
|
||||||
}
|
// }
|
||||||
|
|
||||||
// 获取openId
|
// 获取openId
|
||||||
String openId = wxAppletRemoteService.getOpenIdByCode(dto.getCode());
|
String openId = wxAppletRemoteService.getOpenIdByCode(dto.getCode());
|
||||||
if (StringUtils.isBlank(openId)) {
|
if (StringUtils.isBlank(openId)) {
|
||||||
@@ -2852,7 +2848,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
|||||||
String amount = AdapayUtil.formatAmount(dto.getPayAmount()); // 用户支付金额
|
String amount = AdapayUtil.formatAmount(dto.getPayAmount()); // 用户支付金额
|
||||||
String payMode = Constants.ADAPAY_PAY_MODE_DELAY; // 汇付延时分账
|
String payMode = Constants.ADAPAY_PAY_MODE_DELAY; // 汇付延时分账
|
||||||
CreateAdaPaymentParam createAdaPaymentParam = new CreateAdaPaymentParam();
|
CreateAdaPaymentParam createAdaPaymentParam = new CreateAdaPaymentParam();
|
||||||
createAdaPaymentParam.setOrder_no(orderInfo.getOrderCode());
|
createAdaPaymentParam.setOrder_no(dto.getOrderCode());
|
||||||
createAdaPaymentParam.setPay_amt(amount);
|
createAdaPaymentParam.setPay_amt(amount);
|
||||||
createAdaPaymentParam.setApp_id(config.getAdapayAppId());
|
createAdaPaymentParam.setApp_id(config.getAdapayAppId());
|
||||||
createAdaPaymentParam.setPay_channel("wx_lite"); // todo 如果以后有支付宝等别的渠道,这里需要做修改,判断是什么渠道的请求
|
createAdaPaymentParam.setPay_channel("wx_lite"); // todo 如果以后有支付宝等别的渠道,这里需要做修改,判断是什么渠道的请求
|
||||||
@@ -2890,7 +2886,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
|||||||
logger.error("汇付-获取支付对象发生异常", e);
|
logger.error("汇付-获取支付对象发生异常", e);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 余额支付订单逻辑
|
* 余额支付订单逻辑
|
||||||
|
|||||||
@@ -1,11 +1,17 @@
|
|||||||
package com.jsowell.pile.service.impl;
|
package com.jsowell.pile.service.impl;
|
||||||
|
|
||||||
|
import com.google.common.collect.Maps;
|
||||||
|
import com.jsowell.adapay.service.AdapayService;
|
||||||
import com.jsowell.common.constant.Constants;
|
import com.jsowell.common.constant.Constants;
|
||||||
import com.jsowell.common.enums.DelFlagEnum;
|
import com.jsowell.common.enums.DelFlagEnum;
|
||||||
|
import com.jsowell.common.enums.ykc.OrderPayModeEnum;
|
||||||
|
import com.jsowell.common.enums.ykc.ReturnCodeEnum;
|
||||||
|
import com.jsowell.common.exception.BusinessException;
|
||||||
import com.jsowell.common.util.DateUtils;
|
import com.jsowell.common.util.DateUtils;
|
||||||
import com.jsowell.common.util.StringUtils;
|
import com.jsowell.common.util.StringUtils;
|
||||||
import com.jsowell.common.util.id.IdUtils;
|
import com.jsowell.common.util.id.IdUtils;
|
||||||
import com.jsowell.pile.domain.OrderPileOccupy;
|
import com.jsowell.pile.domain.OrderPileOccupy;
|
||||||
|
import com.jsowell.pile.dto.PayOrderDTO;
|
||||||
import com.jsowell.pile.dto.QueryOccupyOrderDTO;
|
import com.jsowell.pile.dto.QueryOccupyOrderDTO;
|
||||||
import com.jsowell.pile.dto.QueryOrderDTO;
|
import com.jsowell.pile.dto.QueryOrderDTO;
|
||||||
import com.jsowell.pile.mapper.OrderPileOccupyMapper;
|
import com.jsowell.pile.mapper.OrderPileOccupyMapper;
|
||||||
@@ -23,6 +29,7 @@ import javax.annotation.Resource;
|
|||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
@@ -40,6 +47,9 @@ public class OrderPileOccupyServiceImpl implements OrderPileOccupyService{
|
|||||||
@Resource
|
@Resource
|
||||||
private IPileBillingTemplateService pileBillingTemplateService;
|
private IPileBillingTemplateService pileBillingTemplateService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private AdapayService adapayService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int deleteByPrimaryKey(Integer id) {
|
public int deleteByPrimaryKey(Integer id) {
|
||||||
return orderPileOccupyMapper.deleteByPrimaryKey(id);
|
return orderPileOccupyMapper.deleteByPrimaryKey(id);
|
||||||
@@ -260,5 +270,42 @@ public class OrderPileOccupyServiceImpl implements OrderPileOccupyService{
|
|||||||
return orderPileOccupyMapper.queryUnPayOrderByMemberId(memberId);
|
return orderPileOccupyMapper.queryUnPayOrderByMemberId(memberId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 支付占桩订单
|
||||||
|
* @param dto
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> payOccupyPileOrder(PayOrderDTO dto) {
|
||||||
|
// 查询占桩订单详情
|
||||||
|
OrderPileOccupy orderPileOccupy = queryByOccupyCode(dto.getOrderCode());
|
||||||
|
if (orderPileOccupy == null) {
|
||||||
|
throw new BusinessException(ReturnCodeEnum.CODE_QUERY_ORDER_INFO_IS_NULL);
|
||||||
|
}
|
||||||
|
// 校验订单状态
|
||||||
|
|
||||||
|
// 支付方式
|
||||||
|
Map<String, Object> resultMap = Maps.newHashMap();
|
||||||
|
if (StringUtils.equals(dto.getPayMode(), OrderPayModeEnum.PAYMENT_OF_BALANCE.getValue())) {
|
||||||
|
// 余额支付占桩订单
|
||||||
|
balancePayOccupyPileOrder(dto);
|
||||||
|
} else if (StringUtils.equals(dto.getPayMode(), OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getValue())) {
|
||||||
|
// 返回支付参数
|
||||||
|
dto.setGoodsTitle("占桩费用");
|
||||||
|
dto.setGoodsDesc("占桩订单金额");
|
||||||
|
Map<String, Object> weixinMap = adapayService.createPayment(dto);
|
||||||
|
resultMap.put("weixinMap", weixinMap);
|
||||||
|
} else if (StringUtils.equals(dto.getPayMode(), OrderPayModeEnum.PAYMENT_OF_WHITELIST.getValue())) { // 白名单支付
|
||||||
|
whiteListPayOccupyPileOrder(dto);
|
||||||
|
}
|
||||||
|
return resultMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void balancePayOccupyPileOrder(PayOrderDTO dto) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void whiteListPayOccupyPileOrder(PayOrderDTO dto) {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user