Commit ca4afc2909bbc7610a963b7964a6a21d89688c27

Authored by YunaiV
1 parent 2485a5eb

mall + pay:

1. 调整 cashier 的 channels 的读取实现方式
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/order/TradeOrderConvert.java
@@ -238,7 +238,7 @@ public interface TradeOrderConvert { @@ -238,7 +238,7 @@ public interface TradeOrderConvert {
238 AppTradeOrderDetailRespVO orderVO = convert3(order, orderItems); 238 AppTradeOrderDetailRespVO orderVO = convert3(order, orderItems);
239 orderVO.setPayExpireTime(addTime(tradeOrderProperties.getExpireTime())); 239 orderVO.setPayExpireTime(addTime(tradeOrderProperties.getExpireTime()));
240 if (StrUtil.isNotEmpty(order.getPayChannelCode())) { 240 if (StrUtil.isNotEmpty(order.getPayChannelCode())) {
241 - orderVO.setPayChannelName(DictFrameworkUtils.getDictDataLabel(DictTypeConstants.CHANNEL_CODE_TYPE, order.getPayChannelCode())); 241 + orderVO.setPayChannelName(DictFrameworkUtils.getDictDataLabel(DictTypeConstants.CHANNEL_CODE, order.getPayChannelCode()));
242 } 242 }
243 // 处理商品属性 243 // 处理商品属性
244 Map<Long, ProductPropertyValueDetailRespDTO> propertyValueDetailMap = convertMap(propertyValueDetails, ProductPropertyValueDetailRespDTO::getValueId); 244 Map<Long, ProductPropertyValueDetailRespDTO> propertyValueDetailMap = convertMap(propertyValueDetails, ProductPropertyValueDetailRespDTO::getValueId);
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/DictTypeConstants.java
@@ -7,7 +7,7 @@ package cn.iocoder.yudao.module.pay.enums; @@ -7,7 +7,7 @@ package cn.iocoder.yudao.module.pay.enums;
7 */ 7 */
8 public interface DictTypeConstants { 8 public interface DictTypeConstants {
9 9
10 - String CHANNEL_CODE_TYPE = "pay_channel_code_type"; // 支付-渠道名 10 + String CHANNEL_CODE = "pay_channel_code"; // 支付-渠道名
11 11
12 String ORDER_STATUS = "pay_order_status"; // 支付-订单-订单状态 12 String ORDER_STATUS = "pay_order_status"; // 支付-订单-订单状态
13 String ORDER_NOTIFY_STATUS = "pay_order_notify_status"; // 支付-订单-订单回调商户状态 13 String ORDER_NOTIFY_STATUS = "pay_order_notify_status"; // 支付-订单-订单回调商户状态
yudao-ui-admin/src/utils/dict.js
@@ -54,7 +54,7 @@ export const DICT_TYPE = { @@ -54,7 +54,7 @@ export const DICT_TYPE = {
54 PAY_CHANNEL_ALIPAY_SIGN_TYPE: 'pay_channel_alipay_sign_type', // 支付渠道支付宝算法类型 54 PAY_CHANNEL_ALIPAY_SIGN_TYPE: 'pay_channel_alipay_sign_type', // 支付渠道支付宝算法类型
55 PAY_CHANNEL_ALIPAY_MODE: 'pay_channel_alipay_mode', // 支付宝公钥类型 55 PAY_CHANNEL_ALIPAY_MODE: 'pay_channel_alipay_mode', // 支付宝公钥类型
56 PAY_CHANNEL_ALIPAY_SERVER_TYPE: 'pay_channel_alipay_server_type', // 支付宝网关地址 56 PAY_CHANNEL_ALIPAY_SERVER_TYPE: 'pay_channel_alipay_server_type', // 支付宝网关地址
57 - PAY_CHANNEL_CODE_TYPE: 'pay_channel_code_type', // 支付渠道编码类型 57 + PAY_CHANNEL_CODE: 'pay_channel_code', // 支付渠道编码类型
58 PAY_ORDER_NOTIFY_STATUS: 'pay_order_notify_status', // 商户支付订单回调状态 58 PAY_ORDER_NOTIFY_STATUS: 'pay_order_notify_status', // 商户支付订单回调状态
59 PAY_ORDER_STATUS: 'pay_order_status', // 商户支付订单状态 59 PAY_ORDER_STATUS: 'pay_order_status', // 商户支付订单状态
60 PAY_ORDER_REFUND_STATUS: 'pay_order_refund_status', // 商户支付订单退款状态 60 PAY_ORDER_REFUND_STATUS: 'pay_order_refund_status', // 商户支付订单退款状态
yudao-ui-admin/src/views/mall/trade/order/detail.vue
@@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
17 <el-descriptions-item label="商家备注">{{ order.remark }}</el-descriptions-item> 17 <el-descriptions-item label="商家备注">{{ order.remark }}</el-descriptions-item>
18 <el-descriptions-item label="支付单号">{{ order.payOrderId }}</el-descriptions-item> 18 <el-descriptions-item label="支付单号">{{ order.payOrderId }}</el-descriptions-item>
19 <el-descriptions-item label="付款方式"> 19 <el-descriptions-item label="付款方式">
20 - <dict-tag :type="DICT_TYPE.PAY_CHANNEL_CODE_TYPE" :value="order.payChannelCode" /> 20 + <dict-tag :type="DICT_TYPE.PAY_CHANNEL_CODE" :value="order.payChannelCode" />
21 </el-descriptions-item> 21 </el-descriptions-item>
22 <el-descriptions-item label="买家">{{ order.user.nickname }}</el-descriptions-item> <!-- TODO 芋艿:待实现:跳转会员 --> 22 <el-descriptions-item label="买家">{{ order.user.nickname }}</el-descriptions-item> <!-- TODO 芋艿:待实现:跳转会员 -->
23 <el-descriptions-item label="收货地址"> 23 <el-descriptions-item label="收货地址">
yudao-ui-admin/src/views/mall/trade/order/index.vue
@@ -42,7 +42,7 @@ @@ -42,7 +42,7 @@
42 <el-col :span="6" :xs="24"> 42 <el-col :span="6" :xs="24">
43 <el-form-item label="支付方式" prop="payChannelCode"> 43 <el-form-item label="支付方式" prop="payChannelCode">
44 <el-select v-model="queryParams.payChannelCode" clearable style="width: 240px"> 44 <el-select v-model="queryParams.payChannelCode" clearable style="width: 240px">
45 - <el-option v-for="dict in this.getDictDatas(DICT_TYPE.PAY_CHANNEL_CODE_TYPE)" 45 + <el-option v-for="dict in this.getDictDatas(DICT_TYPE.PAY_CHANNEL_CODE)"
46 :key="dict.value" :label="dict.label" :value="dict.value"/> 46 :key="dict.value" :label="dict.label" :value="dict.value"/>
47 </el-select> 47 </el-select>
48 </el-form-item> 48 </el-form-item>
@@ -86,7 +86,7 @@ @@ -86,7 +86,7 @@
86 <dict-tag :type="DICT_TYPE.TERMINAL" :value="row.terminal" /> 86 <dict-tag :type="DICT_TYPE.TERMINAL" :value="row.terminal" />
87 </el-col> 87 </el-col>
88 <el-col :span="4">支付方式: 88 <el-col :span="4">支付方式:
89 - <dict-tag v-if="row.payChannelCode" :type="DICT_TYPE.PAY_CHANNEL_CODE_TYPE" :value="row.payChannelCode" /> 89 + <dict-tag v-if="row.payChannelCode" :type="DICT_TYPE.PAY_CHANNEL_CODE" :value="row.payChannelCode" />
90 <span v-else>未支付</span> 90 <span v-else>未支付</span>
91 </el-col> 91 </el-col>
92 <el-col :span="6" align="right"> 92 <el-col :span="6" align="right">
yudao-ui-admin/src/views/pay/cashier/index.vue
@@ -18,15 +18,15 @@ @@ -18,15 +18,15 @@
18 <el-descriptions title="选择支付宝支付"> 18 <el-descriptions title="选择支付宝支付">
19 </el-descriptions> 19 </el-descriptions>
20 <div class="pay-channel-container"> 20 <div class="pay-channel-container">
21 - <div class="box" v-for="channel in aliPayChannels" :key="channel.code" @click="submit(channel.code)">  
22 - <img :src="icons[channel.code]"> 21 + <div class="box" v-for="channel in channels" v-if="channel.code.indexOf('alipay_') === 0" :key="channel.code" @click="submit(channel.code)">
  22 + <img :src="channel.icon">
23 <div class="title">{{ channel.name }}</div> 23 <div class="title">{{ channel.name }}</div>
24 </div> 24 </div>
25 </div> 25 </div>
26 <!-- 微信支付 --> 26 <!-- 微信支付 -->
27 <el-descriptions title="选择微信支付" style="margin-top: 20px;" /> 27 <el-descriptions title="选择微信支付" style="margin-top: 20px;" />
28 <div class="pay-channel-container"> 28 <div class="pay-channel-container">
29 - <div class="box" v-for="channel in wxPayChannels" :key="channel.code"> 29 + <div class="box" v-for="channel in channels" v-if="channel.code.indexOf('wx_') === 0" :key="channel.code">
30 <img :src="icons[channel.code]"> 30 <img :src="icons[channel.code]">
31 <div class="title">{{ channel.name }}</div> 31 <div class="title">{{ channel.name }}</div>
32 </div> 32 </div>
@@ -34,7 +34,8 @@ @@ -34,7 +34,8 @@
34 <!-- 其它支付 --> 34 <!-- 其它支付 -->
35 <el-descriptions title="选择其它支付" style="margin-top: 20px;" /> 35 <el-descriptions title="选择其它支付" style="margin-top: 20px;" />
36 <div class="pay-channel-container"> 36 <div class="pay-channel-container">
37 - <div class="box" v-for="channel in otherPayChannels" :key="channel.code"> 37 + <div class="box" v-for="channel in channels" :key="channel.code"
  38 + v-if="channel.code.indexOf('alipay_') === -1 && channel.code.indexOf('wx_') === -1">
38 <img :src="icons[channel.code]"> 39 <img :src="icons[channel.code]">
39 <div class="title">{{ channel.name }}</div> 40 <div class="title">{{ channel.name }}</div>
40 </div> 41 </div>
@@ -101,20 +102,43 @@ export default { @@ -101,20 +102,43 @@ export default {
101 returnUrl: undefined, // 支付完的回调地址 102 returnUrl: undefined, // 支付完的回调地址
102 loading: false, // 支付信息的 loading 103 loading: false, // 支付信息的 loading
103 payOrder: {}, // 支付信息 104 payOrder: {}, // 支付信息
104 - aliPayChannels: [], // 阿里支付的渠道  
105 - wxPayChannels: [], // 微信支付的渠道  
106 - otherPayChannels: [], // 其它的支付渠道  
107 - icons: {  
108 - alipay_qr: require("@/assets/images/pay/icon/alipay_qr.svg"),  
109 - alipay_app: require("@/assets/images/pay/icon/alipay_app.svg"),  
110 - alipay_wap: require("@/assets/images/pay/icon/alipay_wap.svg"),  
111 - alipay_pc: require("@/assets/images/pay/icon/alipay_pc.svg"),  
112 - alipay_bar: require("@/assets/images/pay/icon/alipay_bar.svg"),  
113 - wx_app: require("@/assets/images/pay/icon/wx_app.svg"),  
114 - wx_lite: require("@/assets/images/pay/icon/wx_lite.svg"),  
115 - wx_pub: require("@/assets/images/pay/icon/wx_pub.svg"),  
116 - mock: require("@/assets/images/pay/icon/mock.svg"),  
117 - }, 105 + channels: [{
  106 + name: '支付宝 PC 网站支付',
  107 + icon: require("@/assets/images/pay/icon/alipay_pc.svg"),
  108 + code: "alipay_pc"
  109 + }, {
  110 + name: '支付宝 Wap 网站支付',
  111 + icon: require("@/assets/images/pay/icon/alipay_wap.svg"),
  112 + code: "alipay_wap"
  113 + }, {
  114 + name: '支付宝 App 网站支付',
  115 + icon: require("@/assets/images/pay/icon/alipay_app.svg"),
  116 + code: "alipay_app"
  117 + }, {
  118 + name: '支付宝扫码支付',
  119 + icon: require("@/assets/images/pay/icon/alipay_app.svg"),
  120 + code: "alipay_qr"
  121 + }, {
  122 + name: '支付宝条码支付',
  123 + icon: require("@/assets/images/pay/icon/alipay_bar.svg"),
  124 + code: "alipay_bar"
  125 + }, {
  126 + name: '微信公众号支付',
  127 + icon: require("@/assets/images/pay/icon/wx_pub.svg"),
  128 + code: "wx_pub"
  129 + }, {
  130 + name: '微信小程序支付',
  131 + icon: require("@/assets/images/pay/icon/wx_lite.svg"),
  132 + code: "wx_lite"
  133 + }, {
  134 + name: '微信 App 支付',
  135 + icon: require("@/assets/images/pay/icon/wx_lite.svg"),
  136 + code: "wx_app"
  137 + }, {
  138 + name: '模拟支付',
  139 + icon: require("@/assets/images/pay/icon/mock.svg"),
  140 + code: "mock"
  141 + }],
118 submitLoading: false, // 提交支付的 loading 142 submitLoading: false, // 提交支付的 loading
119 interval: undefined, // 定时任务,轮询是否完成支付 143 interval: undefined, // 定时任务,轮询是否完成支付
120 qrCode: { // 展示形式:二维码 144 qrCode: { // 展示形式:二维码
@@ -144,26 +168,8 @@ export default { @@ -144,26 +168,8 @@ export default {
144 this.returnUrl = decodeURIComponent(this.$route.query.returnUrl) 168 this.returnUrl = decodeURIComponent(this.$route.query.returnUrl)
145 } 169 }
146 this.getDetail(); 170 this.getDetail();
147 - this.initPayChannels();  
148 }, 171 },
149 methods: { 172 methods: {
150 - /** 初始化支付渠道 */  
151 - initPayChannels() {  
152 - // 微信支付  
153 - for (const dict of getDictDatas(DICT_TYPE.PAY_CHANNEL_CODE_TYPE)) {  
154 - const payChannel = {  
155 - name: dict.label,  
156 - code: dict.value  
157 - }  
158 - if (dict.value.indexOf('wx_') === 0) {  
159 - this.wxPayChannels.push(payChannel);  
160 - } else if (dict.value.indexOf('alipay_') === 0) {  
161 - this.aliPayChannels.push(payChannel);  
162 - } else {  
163 - this.otherPayChannels.push(payChannel);  
164 - }  
165 - }  
166 - },  
167 /** 获得支付信息 */ 173 /** 获得支付信息 */
168 getDetail() { 174 getDetail() {
169 // 1.1 未传递订单编号 175 // 1.1 未传递订单编号
@@ -180,6 +186,7 @@ export default { @@ -180,6 +186,7 @@ export default {
180 return; 186 return;
181 } 187 }
182 // 1.3 订单已支付 188 // 1.3 订单已支付
  189 + // TODO 芋艿:已支付
183 if (response.data.status !== PayOrderStatusEnum.WAITING.status) { 190 if (response.data.status !== PayOrderStatusEnum.WAITING.status) {
184 this.$message.error('支付订单不处于待支付状态,请检查!'); 191 this.$message.error('支付订单不处于待支付状态,请检查!');
185 this.goBackToList(); 192 this.goBackToList();
yudao-ui-admin/src/views/pay/order/index.vue
@@ -285,7 +285,7 @@ export default { @@ -285,7 +285,7 @@ export default {
285 // 支付应用列表集合 285 // 支付应用列表集合
286 appList: null, 286 appList: null,
287 // 支付渠道编码字典数据集合 287 // 支付渠道编码字典数据集合
288 - payChannelCodeDictDatum: getDictDatas(DICT_TYPE.PAY_CHANNEL_CODE_TYPE), 288 + payChannelCodeDictDatum: getDictDatas(DICT_TYPE.PAY_CHANNEL_CODE),
289 // 订单回调商户状态字典数据集合 289 // 订单回调商户状态字典数据集合
290 payOrderNotifyDictDatum: getDictDatas(DICT_TYPE.PAY_ORDER_NOTIFY_STATUS), 290 payOrderNotifyDictDatum: getDictDatas(DICT_TYPE.PAY_ORDER_NOTIFY_STATUS),
291 // 订单状态字典数据集合 291 // 订单状态字典数据集合
yudao-ui-admin/src/views/pay/refund/index.vue
@@ -298,7 +298,7 @@ export default { @@ -298,7 +298,7 @@ export default {
298 // 支付应用列表集合 298 // 支付应用列表集合
299 appList: null, 299 appList: null,
300 // 支付渠道编码字典数据集合 300 // 支付渠道编码字典数据集合
301 - payChannelCodeDictDatum: getDictDatas(DICT_TYPE.PAY_CHANNEL_CODE_TYPE), 301 + payChannelCodeDictDatum: getDictDatas(DICT_TYPE.PAY_CHANNEL_CODE),
302 // 订单退款状态字典数据集合 302 // 订单退款状态字典数据集合
303 payRefundOrderDictDatum: getDictDatas(DICT_TYPE.PAY_REFUND_ORDER_STATUS), 303 payRefundOrderDictDatum: getDictDatas(DICT_TYPE.PAY_REFUND_ORDER_STATUS),
304 // 退款订单类别字典数据集合 304 // 退款订单类别字典数据集合