From 0e3064b8722b33ee2cf67f8fac581a8b0e04832b Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Fri, 22 Dec 2023 18:15:58 +0800
Subject: [PATCH] 富文本框输入版本变化
---
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallAppServiceImpl.java | 9 ++
src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java | 2
src/main/java/cc/mrbird/febs/pay/service/impl/xcxCodePayServiceImpl.java | 136 +++++++++++++++++++++++++--------------------
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 4
src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java | 14 ++--
src/main/java/cc/mrbird/febs/pay/service/impl/PayServiceImpl.java | 2
src/main/java/cc/mrbird/febs/mall/entity/MallOrderInfo.java | 2
7 files changed, 94 insertions(+), 75 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallOrderInfo.java b/src/main/java/cc/mrbird/febs/mall/entity/MallOrderInfo.java
index 6074666..a3ec9a6 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/MallOrderInfo.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/MallOrderInfo.java
@@ -32,7 +32,7 @@
private String payOrderNo;
- private String payResult;
+ private Integer payResult;
/**
* 状态 1-待支付2-待发货3-待收货4-已完成5-退款中6-已退款7-已取消
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallAppServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallAppServiceImpl.java
index 1e55041..eab70aa 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallAppServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallAppServiceImpl.java
@@ -123,6 +123,7 @@
orderInfo.setIsApp(AppContants.IS_APP_ORDER);
orderInfo.setOrderTime(new Date());
orderInfo.setMemberId(addOrderDto.getMemberId());
+ orderInfo.setPayResult(2);
//会员结算
orderInfo.setStatus(OrderStatusEnum.WAIT_PAY.getValue());
mallOrderInfoMapper.insert(orderInfo);
@@ -212,6 +213,7 @@
orderInfo.setIsApp(AppContants.IS_APP_ORDER);
orderInfo.setOrderTime(new Date());
orderInfo.setStatus(OrderStatusEnum.WAIT_PAY.getValue());
+ orderInfo.setPayResult(2);
if (CollUtil.isEmpty(addOrderDto.getItems())) {
throw new FebsException("商品明细不能为空。");
}
@@ -256,6 +258,7 @@
orderInfo.setIsApp(AppContants.IS_APP_ORDER);
orderInfo.setOrderTime(new Date());
orderInfo.setStatus(OrderStatusEnum.WAIT_PAY.getValue());
+ orderInfo.setPayResult(2);
if (CollUtil.isEmpty(addOrderDto.getItems())) {
throw new FebsException("商品明细不能为空。");
}
@@ -333,8 +336,10 @@
if(!flag){
throw new FebsException("请打开微信付款码!");
}
-
MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(orderId);
+ if(OrderStatusEnum.FINISH.getValue() == (mallOrderInfo.getStatus())){
+ throw new FebsException("已支付");
+ }
mallOrderInfo.setTakeCode(wxPayCode);
List<ApiGetOrderOrderItemVo> appOrderItemByOrderId = mallOrderItemMapper.getAppOrderItemByOrderId(orderId);
if(CollUtil.isEmpty(appOrderItemByOrderId)){
@@ -342,7 +347,7 @@
}else{
mallOrderInfo.setName(appOrderItemByOrderId.get(0).getGoodsName());
}
- mallOrderInfo.setPayResult("2");
+// mallOrderInfo.setPayResult(2);
mallOrderInfoMapper.updateById(mallOrderInfo);
// 发起付款码支付请求
String payResult = xcxCodePayService.pay(mallOrderInfo);
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
index 4516640..e8d3ee8 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -379,7 +379,7 @@
orderInfo.setPayMethod("余额支付");
orderInfo.setStatus(OrderStatusEnum.WAIT_SHIPPING.getValue());
orderInfo.setPayTime(new Date());
- orderInfo.setPayResult("1");
+ orderInfo.setPayResult(1);
orderInfo.setDeliveryState(OrderDeliveryStateEnum.DELIVERY_WAIT.getValue());
// boolean hasTc = false;
@@ -430,7 +430,7 @@
orderInfo.setPayMethod("积分支付");
orderInfo.setStatus(OrderStatusEnum.WAIT_SHIPPING.getValue());
orderInfo.setPayTime(new Date());
- orderInfo.setPayResult("1");
+ orderInfo.setPayResult(1);
mallMoneyFlowService.addMoneyFlow(member.getId(), orderInfo.getAmount().negate(), MoneyFlowTypeEnum.PAY.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.PRIZE_SCORE.getValue());
break;
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java
index 4e0702e..a2612c3 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java
@@ -480,19 +480,17 @@
@Override
public void syAppOrderPayDoneQueue(String orderNo) {
- LambdaQueryWrapper<MallOrderInfo> query = new LambdaQueryWrapper<>();
- query.eq(MallOrderInfo::getOrderNo, orderNo);
- MallOrderInfo orderInfo = mallOrderInfoMapper.selectOne(query);
+ MallOrderInfo orderInfo = mallOrderInfoMapper.selectByOrderNo(orderNo);
if(ObjectUtil.isEmpty(orderInfo)){
return;
}
- if ("1".equals(orderInfo.getPayResult())) {
+ if (OrderStatusEnum.FINISH.getValue() == orderInfo.getStatus()) {
return;
}
- orderInfo.setStatus(OrderStatusEnum.FINISH.getValue());
- orderInfo.setPayResult("1");
- orderInfo.setPayTime(DateUtil.date());
- mallOrderInfoMapper.updateById(orderInfo);
+// orderInfo.setStatus(OrderStatusEnum.FINISH.getValue());
+// orderInfo.setPayResult(1);
+// orderInfo.setPayTime(DateUtil.date());
+// mallOrderInfoMapper.updateById(orderInfo);
if(ObjectUtil.isEmpty(orderInfo.getMemberId())){
return;
diff --git a/src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java b/src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java
index de14692..c0d2b1d 100644
--- a/src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java
+++ b/src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java
@@ -254,7 +254,7 @@
if (order != null && OrderStatusEnum.WAIT_PAY.getValue() == order.getStatus()) {
log.debug("检查支付金额payMoney={},order.getPayMoney()={}", payMoney, order.getAmount());
order.setStatus(OrderStatusEnum.WAIT_SHIPPING.getValue());
- order.setPayResult("1");
+ order.setPayResult(1);
order.setPayTime(new Date());
order.setDeliveryState(OrderDeliveryStateEnum.DELIVERY_WAIT.getValue());
mallOrderInfoMapper.updateById(order);
diff --git a/src/main/java/cc/mrbird/febs/pay/service/impl/PayServiceImpl.java b/src/main/java/cc/mrbird/febs/pay/service/impl/PayServiceImpl.java
index 71ad72c..6a403c6 100644
--- a/src/main/java/cc/mrbird/febs/pay/service/impl/PayServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/pay/service/impl/PayServiceImpl.java
@@ -100,7 +100,7 @@
}
orderInfo.setStatus(OrderStatusEnum.WAIT_SHIPPING.getValue());
- orderInfo.setPayResult("1");
+ orderInfo.setPayResult(1);
orderInfo.setPayTime(new Date());
orderInfo.setPayTradeNo(params.get("trade_no"));
orderInfoMapper.updateById(orderInfo);
diff --git a/src/main/java/cc/mrbird/febs/pay/service/impl/xcxCodePayServiceImpl.java b/src/main/java/cc/mrbird/febs/pay/service/impl/xcxCodePayServiceImpl.java
index 950130a..f5980d6 100644
--- a/src/main/java/cc/mrbird/febs/pay/service/impl/xcxCodePayServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/pay/service/impl/xcxCodePayServiceImpl.java
@@ -13,6 +13,7 @@
import cc.mrbird.febs.pay.util.WeixinServiceUtil;
import cc.mrbird.febs.rabbit.producter.AgentProducer;
import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -46,43 +47,45 @@
private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
private final WeixinServiceUtil weixinServiceUtil;
private final AgentProducer agentProducer;
+ private final WxPayService wxPayService;
private static final String PAY_SUCCESS = "SUCCESS";
private static final String PAY_USERPAYING = "USERPAYING";
+ private static final String PAY_FAIL = "FAIL";
@Override
public String pay(MallOrderInfo mallOrderInfo) {
- String appId = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
- DataDictionaryEnum.XCX_APP_ID.getType(),
- DataDictionaryEnum.XCX_APP_ID.getCode()
- ).getValue();
- String mchId = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
- DataDictionaryEnum.XCX_MCH_ID.getType(),
- DataDictionaryEnum.XCX_MCH_ID.getCode()
- ).getValue();
- String paySecret = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
- DataDictionaryEnum.XCX_MCH_KEY.getType(),
- DataDictionaryEnum.XCX_MCH_KEY.getCode()
- ).getValue();
- String keyPath = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
- DataDictionaryEnum.XCX_MCH_KEY_PATH_P12.getType(),
- DataDictionaryEnum.XCX_MCH_KEY_PATH_P12.getCode()
- ).getValue();
- String notifyUrl = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
- DataDictionaryEnum.XCX_NOTICE_URL.getType(),
- DataDictionaryEnum.XCX_NOTICE_URL.getCode()
- ).getValue();
- WxPayConfig payConfig = new WxPayConfig();
- payConfig.setAppId(StrUtil.trim(appId));
- payConfig.setMchId(StrUtil.trim(mchId));
- payConfig.setMchKey(StrUtil.trim(paySecret));
- payConfig.setKeyPath(StrUtil.trim(keyPath));
- payConfig.setNotifyUrl(StrUtil.trim(notifyUrl));
+// String appId = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+// DataDictionaryEnum.XCX_APP_ID.getType(),
+// DataDictionaryEnum.XCX_APP_ID.getCode()
+// ).getValue();
+// String mchId = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+// DataDictionaryEnum.XCX_MCH_ID.getType(),
+// DataDictionaryEnum.XCX_MCH_ID.getCode()
+// ).getValue();
+// String paySecret = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+// DataDictionaryEnum.XCX_MCH_KEY.getType(),
+// DataDictionaryEnum.XCX_MCH_KEY.getCode()
+// ).getValue();
+// String keyPath = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+// DataDictionaryEnum.XCX_MCH_KEY_PATH_P12.getType(),
+// DataDictionaryEnum.XCX_MCH_KEY_PATH_P12.getCode()
+// ).getValue();
+// String notifyUrl = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+// DataDictionaryEnum.XCX_NOTICE_URL.getType(),
+// DataDictionaryEnum.XCX_NOTICE_URL.getCode()
+// ).getValue();
+// WxPayConfig payConfig = new WxPayConfig();
+// payConfig.setAppId(StrUtil.trim(appId));
+// payConfig.setMchId(StrUtil.trim(mchId));
+// payConfig.setMchKey(StrUtil.trim(paySecret));
+// payConfig.setKeyPath(StrUtil.trim(keyPath));
+// payConfig.setNotifyUrl(StrUtil.trim(notifyUrl));
// 可以指定是否使用沙箱环境
- payConfig.setUseSandboxEnv(false);
-
- WxPayService wxPayService = new WxPayServiceImpl();
- wxPayService.setConfig(payConfig);
+// payConfig.setUseSandboxEnv(false);
+//
+// WxPayService wxPayService = new WxPayServiceImpl();
+// wxPayService.setConfig(payConfig);
WxPayMicropayRequest request = new WxPayMicropayRequest();
/**
*
@@ -99,8 +102,8 @@
String sign = WXPayUtil.generateSignature(map, config.getKey());
map.put("sign", sign);
*/
- request.setAppid(appId);
- request.setMchId(mchId);
+// request.setAppid(appId);
+// request.setMchId(mchId);
request.setNonceStr(RandomStringGenerator.getRandomStringByLength(32));
request.setBody(mallOrderInfo.getName());
request.setOutTradeNo(mallOrderInfo.getOrderNo());
@@ -110,7 +113,7 @@
request.setAuthCode(mallOrderInfo.getTakeCode());
try {
- request.setSign(Signature.getSign(request,paySecret));
+ request.setSign(Signature.getSign(request,wxPayService.getConfig().getMchKey()));
} catch (IllegalAccessException e) {
e.printStackTrace();
throw new FebsException("签名异常");
@@ -128,38 +131,51 @@
if(PAY_SUCCESS.equals(returnCode) && PAY_SUCCESS.equals(resultCode)){
log.info("微信免密支付成功");
+ MallOrderInfo orderInfo = mallOrderInfoMapper.selectByOrderNo(mallOrderInfo.getOrderNo());
+ if(ObjectUtil.isNotEmpty(orderInfo)){
+ if (OrderStatusEnum.FINISH.getValue() != orderInfo.getStatus()) {
+ orderInfo.setStatus(OrderStatusEnum.FINISH.getValue());
+ orderInfo.setPayResult(1);
+ orderInfo.setPayTime(DateUtil.date());
+ mallOrderInfoMapper.updateById(orderInfo);
+ }
+ }
agentProducer.sendSyAppOrderPayDoneQueue(outTradeNo);
return PAY_SUCCESS;
- } else if (PAY_USERPAYING.equals(errCode)){//等待用户输入密码
- for(int i = 0; i < 4; i++){
- try {
- Thread.sleep(5000);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- //调用微信的查询接口
- /**
- * 交易成功判断条件: return_code、result_code和trade_state都为SUCCESS
- */
- WxPayOrderQueryRequest wxPayOrderQueryRequest = new WxPayOrderQueryRequest();
- wxPayOrderQueryRequest.setOutTradeNo(outTradeNo);
- WxPayOrderQueryResult wxPayOrderQueryResult = wxPayService.queryOrder(wxPayOrderQueryRequest);
- String returnCodePaying = wxPayOrderQueryResult.getReturnCode();
- String resultCodePaying = wxPayOrderQueryResult.getResultCode();
- String tradeTypePaying = wxPayOrderQueryResult.getTradeType();
- if(PAY_SUCCESS.equals(tradeTypePaying)&& PAY_SUCCESS.equals(returnCodePaying)&& PAY_SUCCESS.equals(resultCodePaying)){
- log.info("微信加密支付成功!");
- agentProducer.sendSyAppOrderPayDoneQueue(outTradeNo);
- return PAY_SUCCESS;
- }
- log.info("正在支付" + wxPayOrderQueryResult.getDetail());
- }
}
- log.error("微信支付失败!");
+// else if (PAY_USERPAYING.equals(errCode)){//等待用户输入密码
+// for(int i = 0; i < 4; i++){
+// try {
+// Thread.sleep(5000);
+// } catch (InterruptedException e) {
+// e.printStackTrace();
+// }
+// //调用微信的查询接口
+// /**
+// * 交易成功判断条件: return_code、result_code和trade_state都为SUCCESS
+// */
+// WxPayOrderQueryRequest wxPayOrderQueryRequest = new WxPayOrderQueryRequest();
+// wxPayOrderQueryRequest.setOutTradeNo(outTradeNo);
+// log.info("付款码支付订单查询");
+// WxPayOrderQueryResult wxPayOrderQueryResult = wxPayService.queryOrder(wxPayOrderQueryRequest);
+// String returnCodePaying = wxPayOrderQueryResult.getReturnCode();
+// String resultCodePaying = wxPayOrderQueryResult.getResultCode();
+// String tradeTypePaying = wxPayOrderQueryResult.getTradeType();
+// if(PAY_SUCCESS.equals(tradeTypePaying)&& PAY_SUCCESS.equals(returnCodePaying)&& PAY_SUCCESS.equals(tradeTypePaying)){
+// log.info("微信加密支付成功!");
+// agentProducer.sendSyAppOrderPayDoneQueue(outTradeNo);
+// return PAY_SUCCESS;
+// }
+// log.info("正在支付" + wxPayOrderQueryResult.getDetail());
+// }
+// }
+ else if(PAY_FAIL.equals(resultCode)){
+ return errCodeDes;
+ }
return errCodeDes;
} catch (WxPayException e) {
e.printStackTrace();
- throw new FebsException("支付异常");
+ throw new FebsException(e.getErrCodeDes());
}
}
@@ -174,7 +190,7 @@
return;
}
orderInfo.setStatus(OrderStatusEnum.FINISH.getValue());
- orderInfo.setPayResult("1");
+ orderInfo.setPayResult(1);
orderInfo.setPayTime(DateUtil.date());
orderInfo.setPayTradeNo(params.get("transaction_id"));
mallOrderInfoMapper.updateById(orderInfo);
--
Gitblit v1.9.1