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 238 AppTradeOrderDetailRespVO orderVO = convert3(order, orderItems);
239 239 orderVO.setPayExpireTime(addTime(tradeOrderProperties.getExpireTime()));
240 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 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 */
8 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 12 String ORDER_STATUS = "pay_order_status"; // 支付-订单-订单状态
13 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 54 PAY_CHANNEL_ALIPAY_SIGN_TYPE: 'pay_channel_alipay_sign_type', // 支付渠道支付宝算法类型
55 55 PAY_CHANNEL_ALIPAY_MODE: 'pay_channel_alipay_mode', // 支付宝公钥类型
56 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 58 PAY_ORDER_NOTIFY_STATUS: 'pay_order_notify_status', // 商户支付订单回调状态
59 59 PAY_ORDER_STATUS: 'pay_order_status', // 商户支付订单状态
60 60 PAY_ORDER_REFUND_STATUS: 'pay_order_refund_status', // 商户支付订单退款状态
... ...
yudao-ui-admin/src/views/mall/trade/order/detail.vue
... ... @@ -17,7 +17,7 @@
17 17 <el-descriptions-item label="商家备注">{{ order.remark }}</el-descriptions-item>
18 18 <el-descriptions-item label="支付单号">{{ order.payOrderId }}</el-descriptions-item>
19 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 21 </el-descriptions-item>
22 22 <el-descriptions-item label="买家">{{ order.user.nickname }}</el-descriptions-item> <!-- TODO 芋艿:待实现:跳转会员 -->
23 23 <el-descriptions-item label="收货地址">
... ...
yudao-ui-admin/src/views/mall/trade/order/index.vue
... ... @@ -42,7 +42,7 @@
42 42 <el-col :span="6" :xs="24">
43 43 <el-form-item label="支付方式" prop="payChannelCode">
44 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 46 :key="dict.value" :label="dict.label" :value="dict.value"/>
47 47 </el-select>
48 48 </el-form-item>
... ... @@ -86,7 +86,7 @@
86 86 <dict-tag :type="DICT_TYPE.TERMINAL" :value="row.terminal" />
87 87 </el-col>
88 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 90 <span v-else>未支付</span>
91 91 </el-col>
92 92 <el-col :span="6" align="right">
... ...
yudao-ui-admin/src/views/pay/cashier/index.vue
... ... @@ -18,15 +18,15 @@
18 18 <el-descriptions title="选择支付宝支付">
19 19 </el-descriptions>
20 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 23 <div class="title">{{ channel.name }}</div>
24 24 </div>
25 25 </div>
26 26 <!-- 微信支付 -->
27 27 <el-descriptions title="选择微信支付" style="margin-top: 20px;" />
28 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 30 <img :src="icons[channel.code]">
31 31 <div class="title">{{ channel.name }}</div>
32 32 </div>
... ... @@ -34,7 +34,8 @@
34 34 <!-- 其它支付 -->
35 35 <el-descriptions title="选择其它支付" style="margin-top: 20px;" />
36 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 39 <img :src="icons[channel.code]">
39 40 <div class="title">{{ channel.name }}</div>
40 41 </div>
... ... @@ -101,20 +102,43 @@ export default {
101 102 returnUrl: undefined, // 支付完的回调地址
102 103 loading: false, // 支付信息的 loading
103 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 142 submitLoading: false, // 提交支付的 loading
119 143 interval: undefined, // 定时任务,轮询是否完成支付
120 144 qrCode: { // 展示形式:二维码
... ... @@ -144,26 +168,8 @@ export default {
144 168 this.returnUrl = decodeURIComponent(this.$route.query.returnUrl)
145 169 }
146 170 this.getDetail();
147   - this.initPayChannels();
148 171 },
149 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 174 getDetail() {
169 175 // 1.1 未传递订单编号
... ... @@ -180,6 +186,7 @@ export default {
180 186 return;
181 187 }
182 188 // 1.3 订单已支付
  189 + // TODO 芋艿:已支付
183 190 if (response.data.status !== PayOrderStatusEnum.WAITING.status) {
184 191 this.$message.error('支付订单不处于待支付状态,请检查!');
185 192 this.goBackToList();
... ...
yudao-ui-admin/src/views/pay/order/index.vue
... ... @@ -285,7 +285,7 @@ export default {
285 285 // 支付应用列表集合
286 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 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 298 // 支付应用列表集合
299 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 303 payRefundOrderDictDatum: getDictDatas(DICT_TYPE.PAY_REFUND_ORDER_STATUS),
304 304 // 退款订单类别字典数据集合
... ...