From 075ca1b2dc3714d112327c66fdce959bb39984e2 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期四, 15 一月 2026 10:08:07 +0800
Subject: [PATCH] 经销商管理

---
 server/dmmall_service/src/main/java/com/doumee/dao/business/model/MemberCoupon.java               |    8 ++++++++
 server/dmmall_service/src/main/java/com/doumee/dao/system/dto/PlatformConfigDTO.java              |    1 -
 admin/src/views/business/memberCoupon.vue                                                         |   20 ++++++++++----------
 server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java |   28 +++++++++++++++++++++++-----
 4 files changed, 41 insertions(+), 16 deletions(-)

diff --git a/admin/src/views/business/memberCoupon.vue b/admin/src/views/business/memberCoupon.vue
index a9347d8..59ab4d1 100644
--- a/admin/src/views/business/memberCoupon.vue
+++ b/admin/src/views/business/memberCoupon.vue
@@ -2,34 +2,34 @@
   <TableLayout :permissions="['business:membercoupon:query']">
     <!-- 鎼滅储琛ㄥ崟 -->
     <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
-      <el-form-item label="鐢ㄦ埛" prop="memberName">
-        <el-input v-model="searchForm.memberName" placeholder="璇疯緭鍏ョ敤鎴锋樀绉�/鎵嬫満鍙�" @keypress.enter.native="search"></el-input>
+      <el-form-item label="鐢ㄦ埛" prop="nikeName">
+        <el-input v-model="searchForm.nikeName" placeholder="璇疯緭鍏ョ敤鎴锋樀绉�/鎵嬫満鍙� " clearable @keypress.enter.native="search"></el-input>
       </el-form-item>
       <el-form-item label="浼樻儬鍒稿悕绉�" prop="name">
-        <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ヤ紭鎯犲埜鍚嶇О" @keypress.enter.native="search"></el-input>
+        <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ヤ紭鎯犲埜鍚嶇О" clearable @keypress.enter.native="search"></el-input>
       </el-form-item>
       <el-form-item label="绫诲瀷" prop="couponType">
-          <el-select  v-model="searchForm.couponType"  placeholder="璇烽�夋嫨绫诲瀷"   >
+          <el-select  v-model="searchForm.couponType"  placeholder="璇烽�夋嫨绫诲瀷"  clearable @change="search" >
             <el-option :key="0" :value="0" label="婊″噺鍒�"></el-option>
             <el-option :key="1" :value="1" label="鎶樻墸鍒�"></el-option>
           </el-select>
       </el-form-item>
       <el-form-item label="鐘舵��" prop="status">
-        <el-select  v-model="searchForm.status"  placeholder="鐘舵��"   >
+        <el-select  v-model="searchForm.status"  placeholder="鐘舵��"  clearable @change="search" >
           <el-option  :value="0" label="鏈娇鐢�"></el-option>
           <el-option  :value="1" label="宸蹭娇鐢�"></el-option>
           <el-option  :value="2" label="宸茶繃鏈�"></el-option>
         </el-select>
       </el-form-item>
       <el-form-item label="鍙戞斁绫诲瀷" prop="getMethod">
-        <el-select  v-model="searchForm.getMethod"  placeholder="鍙戞斁绫诲瀷"   >
+        <el-select  v-model="searchForm.getMethod"  placeholder="鍙戞斁绫诲瀷"  clearable @change="search" >
           <el-option  :value="0" label="棣栨娉ㄥ唽"></el-option>
           <el-option  :value="1" label="閭�璇峰ソ鍙�"></el-option>
           <el-option  :value="2" label="瀹氬悜鍙戞斁"></el-option>
         </el-select>
       </el-form-item>
       <el-form-item label="璁㈠崟鍙�" prop="orderCode">
-        <el-input v-model="searchForm.orderCode" placeholder="璇疯緭鍏ヤ娇鐢ㄨ鍗曞彿" @keypress.enter.native="search"></el-input>
+        <el-input v-model="searchForm.orderCode" placeholder="璇疯緭鍏ヤ娇鐢ㄨ鍗曞彿" clearable @keypress.enter.native="search"></el-input>
       </el-form-item>
       <section>
         <el-button type="primary" @click="search">鎼滅储</el-button>
@@ -43,7 +43,7 @@
         :data="tableData.list"
         stripe
       >
-        <el-table-column prop="memberName" label="鐢ㄦ埛" min-width="100px"></el-table-column>
+        <el-table-column prop="nikeName" label="鐢ㄦ埛" min-width="100px"></el-table-column>
         <el-table-column prop="name" label="浼樻儬鍒稿悕绉�" min-width="100px"></el-table-column>
         <el-table-column prop="couponType" label="浼樻儬鍒哥被鍨�" min-width="100px">
           <template slot-scope="{row}">
@@ -63,7 +63,7 @@
             <li> 璧凤細{{ row.startDate}}</li> <li>姝細{{row.endDate }}</li>
           </template>
         </el-table-column>
-        <el-table-column prop="price" label="浼樻儬閲戦锛堝厓锛�" min-width="100px"></el-table-column>
+        <el-table-column prop="price" label="浼樻儬閲戦(鍏�)" min-width="120px"></el-table-column>
         <el-table-column prop="status" label="鐘舵��" min-width="100px">
           <template slot-scope="{row}">
             <span v-if="row.status ===0" class="green"> 鏈娇鐢�</span>
@@ -98,7 +98,7 @@
     return {
       // 鎼滅储
       searchForm: {
-        memberName: '',
+        nikeName: '',
         name: '',
         couponType: '',
         status: '',
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/MemberCoupon.java b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/MemberCoupon.java
index 6727cf6..3dd6851 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/MemberCoupon.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/MemberCoupon.java
@@ -130,6 +130,14 @@
     @ApiModelProperty(value = "鏄电О")
     @TableField(exist = false)
     private String nikeName;
+    @ApiModelProperty(value = "鍏宠仈璁㈠崟鍙峰彿")
+    @TableField(exist = false)
+    private String orderCode;
+    @ApiModelProperty(value = "鍒涘缓浜�")
+    @TableField(exist = false)
+    private String creatorName;
+    @ApiModelProperty(value = "鍏宠仈璁㈠崟鍙�")
+    private String orderId;
 
     @ApiModelProperty(value = "瀹為檯閫傜敤鏃堕噾棰�")
     @TableField(exist = false)
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/system/dto/PlatformConfigDTO.java b/server/dmmall_service/src/main/java/com/doumee/dao/system/dto/PlatformConfigDTO.java
index 0c40494..59a3cdb 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/system/dto/PlatformConfigDTO.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/system/dto/PlatformConfigDTO.java
@@ -61,5 +61,4 @@
     @ApiModelProperty(value = "瀛楀吀code")
     private String dictCode;
 
-
 }
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java
index ad565c4..c05162a 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java
@@ -11,6 +11,7 @@
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.*;
 import com.doumee.dao.business.model.*;
+import com.doumee.dao.system.model.SystemUser;
 import com.doumee.dao.web.dto.CouponDTO;
 import com.doumee.dao.web.dto.MemberCouponDTO;
 import com.doumee.dao.web.request.PayDetailRequest;
@@ -173,20 +174,38 @@
         IPage<MemberCoupon> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
         MPJLambdaWrapper<MemberCoupon> queryWrapper = new MPJLambdaWrapper<>();
         Utils.MP.blankToNull(pageWrap.getModel());
-
         queryWrapper.selectAll(MemberCoupon.class);
         queryWrapper.selectAs(Member::getNickname,MemberCoupon::getNikeName);
-
+        queryWrapper.selectAs(Goodsorder::getCode,MemberCoupon::getOrderCode);
+        queryWrapper.selectAs(SystemUser::getUsername,MemberCoupon::getCreatorName);
         queryWrapper.leftJoin(Member.class,Member::getId,MemberCoupon::getMemberId);
-
+        queryWrapper.leftJoin(Goodsorder.class,Goodsorder::getId,MemberCoupon::getOrderId);
+        queryWrapper.leftJoin(SystemUser.class,SystemUser::getId,MemberCoupon::getCreator);
         queryWrapper.eq(MemberCoupon::getIsdeleted, Constants.ZERO);
-        queryWrapper.eq(pageWrap.getModel().getStatus()!=null,MemberCoupon::getStatus, pageWrap.getModel().getStatus());
+        if(pageWrap.getModel().getStatus()!=null && pageWrap.getModel().getStatus()!=2){
+            queryWrapper.eq(pageWrap.getModel().getStatus()!=null,MemberCoupon::getStatus, pageWrap.getModel().getStatus());
+        } else if (pageWrap.getModel().getStatus()!=null && pageWrap.getModel().getStatus()==2) {
+            //鏌ヨ宸茶繃鏈�(鏈娇鐢紝鍒囧凡杩囦簡浣跨敤鏈熼檺锛�
+            queryWrapper.eq( MemberCoupon::getStatus, Constants.ZERO);
+            queryWrapper.lt( MemberCoupon::getEndDate, new Date());
+        }
+        queryWrapper.eq(pageWrap.getModel().getOrderCode()!=null,Goodsorder::getCode, pageWrap.getModel().getOrderCode());
         queryWrapper.eq(pageWrap.getModel().getGetMethod()!=null,MemberCoupon::getGetMethod, pageWrap.getModel().getGetMethod());
         queryWrapper.and(StringUtils.isNotBlank(pageWrap.getModel().getNikeName()),ms -> ms.like( Member::getNickname,  pageWrap.getModel().getNikeName()).
                 or().eq( Member::getName, pageWrap.getModel().getNikeName()).
                 or().eq( Member::getPhone, pageWrap.getModel().getNikeName()));
         queryWrapper.orderByDesc(MemberCoupon::getCreateDate);
         IPage<MemberCoupon> result = memberCouponJoinMapper.selectJoinPage(page, MemberCoupon.class, queryWrapper);
+        if(result!=null && result.getRecords()!=null){
+            for(MemberCoupon model :result.getRecords()){
+                if(Constants.equalsInteger(model.getStatus(),Constants.ZERO)
+                        && model.getEndDate()!=null
+                        && model.getEndDate().before(new Date())){
+                    //宸茶繃鏈�
+                    model.setStatus(Constants.TWO);
+                }
+            }
+        }
         return PageData.from(result);
     }
 
@@ -252,7 +271,6 @@
                 }
             }
         }
-
         return memberCouponResponse;
     }
 

--
Gitblit v1.9.3