Commit ca4afc2909bbc7610a963b7964a6a21d89688c27
1 parent
2485a5eb
mall + pay:
1. 调整 cashier 的 channels 的读取实现方式
Showing
8 changed files
with
51 additions
and
44 deletions
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 | // 退款订单类别字典数据集合 |