feat: 商户订单/退款页面增加商户名称筛选功能
前端: - 商户订单页面(index.vue)和退款页面(refund/index.vue)增加merchant-name组件 - 搜索表单新增"商户名称"下拉选择,支持远程搜索和分页加载 - 订单列表表格新增"商户名称"列(merName) - 重置按钮同时清除商户筛选条件 后端: - MerchantOrderPageResponse增加merId和merName字段 - OrderMapper.xml的getMerchantAdminPage查询JOIN eb_merchant表获取商户名称 - OrderServiceImpl: 平台管理员支持按request.merId筛选指定商户订单 - RefundOrderServiceImpl: 同样支持按request.merId筛选退款订单 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -31,6 +31,12 @@ public class MerchantOrderPageResponse implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty(value = "商户ID")
|
||||
private Integer merId;
|
||||
|
||||
@ApiModelProperty(value = "商户名称")
|
||||
private String merName;
|
||||
|
||||
@ApiModelProperty(value = "订单号")
|
||||
private String orderNo;
|
||||
|
||||
|
||||
@@ -288,9 +288,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderDao, Order> implements Or
|
||||
map.put("endTime", dateLimit.getEndTime());
|
||||
}
|
||||
}
|
||||
// 平台管理员(mer_id=0)查看全部商户订单,商户管理员只查看自己的订单
|
||||
// 平台管理员(mer_id=0)可按商户筛选或查看全部,商户管理员只查看自己的订单
|
||||
if (systemAdmin.getMerId() > 0) {
|
||||
map.put("merId", systemAdmin.getMerId());
|
||||
} else if (ObjectUtil.isNotNull(request.getMerId()) && request.getMerId() > 0) {
|
||||
map.put("merId", request.getMerId());
|
||||
}
|
||||
if (StrUtil.isNotBlank(request.getOrderNo())) {
|
||||
map.put("orderNo", URLUtil.decode(request.getOrderNo()));
|
||||
|
||||
@@ -151,9 +151,11 @@ public class RefundOrderServiceImpl extends ServiceImpl<RefundOrderDao, RefundOr
|
||||
map.put("endTime", dateLimit.getEndTime());
|
||||
}
|
||||
}
|
||||
// 平台管理员(mer_id=0)查看全部商户退款订单
|
||||
// 平台管理员(mer_id=0)可按商户筛选或查看全部,商户管理员只查看自己的
|
||||
if (systemAdmin.getMerId() > 0) {
|
||||
map.put("merId", systemAdmin.getMerId());
|
||||
} else if (ObjectUtil.isNotNull(request.getMerId()) && request.getMerId() > 0) {
|
||||
map.put("merId", request.getMerId());
|
||||
}
|
||||
if (StrUtil.isNotBlank(request.getRefundOrderNo())) {
|
||||
map.put("refundOrderNo", request.getRefundOrderNo());
|
||||
|
||||
@@ -128,10 +128,12 @@
|
||||
o.cancel_status as cancelStatus, o.level, o.type, o.create_time as createTime,o.second_type as secondType, o.group_buy_record_status as groupBuyRecordStatus,
|
||||
o.cancel_status as cancelStatus, o.level, o.type, o.create_time as createTime,o.second_type as secondType,
|
||||
mo.merchant_remark as merchantRemark, mo.verify_code as verifyCode, mo.shipping_type as shippingType,
|
||||
u.nickname,u.is_logoff
|
||||
u.nickname,u.is_logoff,
|
||||
m.name as merName
|
||||
from eb_order o
|
||||
left join eb_merchant_order as mo on o.order_no = mo.order_no
|
||||
left join eb_user as u on o.uid = u.id
|
||||
left join eb_merchant as m on o.mer_id = m.id
|
||||
where o.is_del = 0 and o.is_merchant_del = 0 and o.level = 1
|
||||
<if test="merId != null">
|
||||
and o.mer_id = #{merId}
|
||||
|
||||
@@ -48,6 +48,9 @@
|
||||
<el-form-item label="用户搜索:" label-for="nickname">
|
||||
<UserSearchInput v-model="tableFrom" />
|
||||
</el-form-item>
|
||||
<el-form-item label="商户名称:">
|
||||
<merchant-name @getMerId="getMerId" :merIdChecked="tableFrom.merId"></merchant-name>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" size="small" @click="handleSearchList">查询</el-button>
|
||||
<el-button size="small" @click="handleReset">重置</el-button>
|
||||
@@ -108,6 +111,7 @@
|
||||
<span v-show="scope.row.isUserDel" class="colorPrompt" style="display: block">用户已删除</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="merName" label="商户名称" min-width="150" v-if="checkedCities.includes('商户名称')" />
|
||||
<el-table-column label="用户昵称" min-width="150" v-if="checkedCities.includes('用户昵称')">
|
||||
<template slot-scope="scope">
|
||||
<span :class="scope.row.isLogoff == true ? 'colorPrompt' : ''">{{ scope.row.nickName }}</span>
|
||||
@@ -334,6 +338,7 @@ import {
|
||||
import detailsFrom from './components/orderDetail';
|
||||
import writeOffDialog from './components/writeOffDialog';
|
||||
import orderSend from './orderSend';
|
||||
import merchantName from '@/components/merchantName';
|
||||
import Cookies from 'js-cookie';
|
||||
import { isWriteOff } from '@/utils';
|
||||
import { checkPermi } from '@/utils/permission';
|
||||
@@ -350,6 +355,7 @@ let tableFroms = {
|
||||
type: '',
|
||||
searchType: 'all',
|
||||
content: '',
|
||||
merId: null,
|
||||
};
|
||||
export default {
|
||||
name: 'orderlistDetails',
|
||||
@@ -358,6 +364,7 @@ export default {
|
||||
detailsFrom,
|
||||
orderSend,
|
||||
writeOffDialog,
|
||||
merchantName,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@@ -404,8 +411,8 @@ export default {
|
||||
active: false,
|
||||
card_select_show: false,
|
||||
checkAll: true,
|
||||
checkedCities: ['订单号', '用户昵称', '实际支付', '支付方式', '订单状态', '下单时间'],
|
||||
columnData: ['订单号', '用户昵称', '实际支付', '支付方式', '订单状态', '下单时间'],
|
||||
checkedCities: ['订单号', '商户名称', '用户昵称', '实际支付', '支付方式', '订单状态', '下单时间'],
|
||||
columnData: ['订单号', '商户名称', '用户昵称', '实际支付', '支付方式', '订单状态', '下单时间'],
|
||||
isIndeterminate: false,
|
||||
orderDatalist: null,
|
||||
merPrintStatus: Cookies.get('merPrint'), // 商家小票打印开关状态
|
||||
@@ -422,6 +429,10 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
checkPermi,
|
||||
getMerId(id) {
|
||||
this.tableFrom.merId = id;
|
||||
this.handleSearchList();
|
||||
},
|
||||
//直接退款
|
||||
onDirectRefund(row) {
|
||||
this.secondType = row.secondType;
|
||||
@@ -454,6 +465,8 @@ export default {
|
||||
this.tableFrom.page = 1;
|
||||
this.tableFrom.content = '';
|
||||
this.tableFrom.searchType = 'all';
|
||||
this.tableFrom.merId = null;
|
||||
this.timeVal = [];
|
||||
this.selectChange();
|
||||
},
|
||||
resetFormRefundhandler() {
|
||||
|
||||
@@ -58,6 +58,9 @@
|
||||
@keyup.enter.native="handleSearchList"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="商户名称:">
|
||||
<merchant-name @getMerId="getMerId" :merIdChecked="tableFrom.merId"></merchant-name>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" size="small" @click="handleSearchList">查询</el-button>
|
||||
<el-button size="small" @click="handleReset">重置</el-button>
|
||||
@@ -282,6 +285,7 @@ import RefundOrderDetail from '../components/refundOrderDetail.vue';
|
||||
import { refundStatusFilter } from '@/filters';
|
||||
import useRefundOrder from '@/libs/useRefundOrder';
|
||||
import AgreeToReturn from '@/views/merchantOrder/components/agreeToReturn.vue';
|
||||
import merchantName from '@/components/merchantName';
|
||||
import * as $constants from '@/utils/constants';
|
||||
const { onConfirmReceipt, onApprovedReview } = useRefundOrder();
|
||||
const tableFroms = {
|
||||
@@ -294,6 +298,7 @@ const tableFroms = {
|
||||
searchType: 'all',
|
||||
content: '',
|
||||
trackingNumber: '',
|
||||
merId: null,
|
||||
};
|
||||
// 权限判断函数
|
||||
export default {
|
||||
@@ -301,6 +306,7 @@ export default {
|
||||
components: {
|
||||
AgreeToReturn,
|
||||
RefundOrderDetail,
|
||||
merchantName,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@@ -369,6 +375,10 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
checkPermi,
|
||||
getMerId(id) {
|
||||
this.tableFrom.merId = id;
|
||||
this.handleSearchList();
|
||||
},
|
||||
//商家确认收货
|
||||
handleConfirmReceipt(refundOrderNo) {
|
||||
onConfirmReceipt(refundOrderNo).then(() => {
|
||||
@@ -425,6 +435,8 @@ export default {
|
||||
this.tableFrom.content = '';
|
||||
this.tableFrom.searchType = 'all';
|
||||
this.tableFrom.trackingNumber = '';
|
||||
this.tableFrom.merId = null;
|
||||
this.timeVal = [];
|
||||
this.selectChange();
|
||||
},
|
||||
//搜索
|
||||
|
||||
Reference in New Issue
Block a user