From 116a83c60384f716cb8c988a4e8f2b30bf5d6718 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期三, 21 一月 2026 10:20:05 +0800
Subject: [PATCH] 经销商管理

---
 server/dmmall_service/src/main/java/com/doumee/dao/business/model/InviteRecord.java               |   28 +++++++++
 server/dmmall_service/src/main/java/com/doumee/service/business/impl/InviteRecordServiceImpl.java |   77 +++++++++++++++++--------
 admin/src/views/business/inviteRecord.vue                                                         |   50 +++++-----------
 3 files changed, 94 insertions(+), 61 deletions(-)

diff --git a/admin/src/views/business/inviteRecord.vue b/admin/src/views/business/inviteRecord.vue
index 0174d60..008fa4a 100644
--- a/admin/src/views/business/inviteRecord.vue
+++ b/admin/src/views/business/inviteRecord.vue
@@ -1,20 +1,19 @@
 <template>
-  <TableLayout :permissions="['business:membercoupon:query']">
+  <TableLayout :permissions="['business:inviterecord:query']">
     <!-- 鎼滅储琛ㄥ崟 -->
     <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
       <el-form-item label="閭�璇蜂汉淇℃伅" prop="recName" >
         <el-input v-model="searchForm.recName" placeholder="璇烽個璇蜂汉鏄电О/濮撳悕/鎵嬫満鍙� " clearable @keypress.enter.native="search"></el-input>
       </el-form-item>
-      <el-form-item label="琚個璇蜂汉淇℃伅" prop="name" >
-        <el-input v-model="searchForm.name" placeholder="琚個璇蜂汉鏄电О/濮撳悕/鎵嬫満鍙� " clearable @keypress.enter.native="search"></el-input>
+      <el-form-item label="琚個璇蜂汉淇℃伅" prop="memberName" >
+        <el-input v-model="searchForm.memberName" placeholder="琚個璇蜂汉鏄电О/濮撳悕/鎵嬫満鍙� " clearable @keypress.enter.native="search"></el-input>
       </el-form-item>
-      <el-form-item label="瀹屾垚闃舵" prop="getMethod">
+      <el-form-item label="瀹屾垚闃舵" prop="firstOrderStatus">
         <el-select  v-model="searchForm.firstOrderStatus"  placeholder="璇烽�夋嫨瀹屾垚闃舵"   clearable @change="search" >
           <el-option  :value="0" label="宸叉敞鍐�"></el-option>
-          <el-option  :value="1" label="宸插畬鎴愰鍗�"></el-option>
+          <el-option  :value="1" label="瀹屾垚棣栧崟"></el-option>
         </el-select>
       </el-form-item>
-
       <section>
         <el-button type="primary" @click="search">鎼滅储</el-button>
         <el-button @click="reset">閲嶇疆</el-button>
@@ -22,45 +21,31 @@
     </el-form>
     <!-- 琛ㄦ牸鍜屽垎椤� -->
     <template v-slot:table-wrap>
-      <ul class="toolbar" v-permissions="['business:membercoupon:create', 'business:membercoupon:exportExcel']">
-        <li><el-button type="primary"  @click="$refs.OperaMemberCouponWindow.open('瀹氬悜鍙戞斁浼樻儬鍒�', null)" v-permissions="['business:membercoupon:create']">瀹氬悜鍙戞斁</el-button></li>
-        <li> <el-button type="primary" :loading="isWorking.export" v-permissions="['business:membercoupon:exportExcel']" @click="exportExcel">瀵煎嚭</el-button></li>
+      <ul class="toolbar" v-permissions="['business:inviterecord:exportExcel']">
+        <li> <el-button type="primary" :loading="isWorking.export" v-permissions="['business:inviterecord:exportExcel']" @click="exportExcel">瀵煎嚭</el-button></li>
       </ul>
       <el-table
         v-loading="isWorking.search"
         :data="tableData.list"
         stripe
       >
-        <el-table-column prop="nikeName" label="琚個璇蜂汉寰俊ID" min-width="180px"></el-table-column>
-        <el-table-column prop="name" label="琚個璇蜂汉淇℃伅" min-width="180px"></el-table-column>
-        <el-table-column prop="recName" label="閭�璇蜂汉淇℃伅" min-width="180px"></el-table-column>
+        <el-table-column prop="openid" label="琚個璇蜂汉寰俊ID" min-width="200px"></el-table-column>
+        <el-table-column prop="memberName" label="琚個璇蜂汉(鏄电О/濮撳悕/鎵嬫満)" min-width="200px"></el-table-column>
+        <el-table-column prop="recName" label="閭�璇蜂汉(鏄电О/濮撳悕/鎵嬫満)" min-width="200px"></el-table-column>
         <el-table-column prop="firstOrderStatus" label="瀹屾垚闃舵" min-width="100px">
           <template slot-scope="{row}">
             <span v-if="row.firstOrderStatus ===1" class="green">瀹屾垚棣栧崟</span>
             <span v-else class="orange">宸叉敞鍐�</span>
           </template>
         </el-table-column>
-        <el-table-column prop="startDate" label="浣跨敤鏈夋晥鏈�" align="center" min-width="210px">
+        <el-table-column prop="rewardIntegral" label="绉垎濂栧姳" min-width="100px">
           <template slot-scope="{row}">
-            <li> 璧凤細{{ row.startDate}}</li> <li>姝細{{row.endDate }}</li>
+           <span class="orange">{{ row.rewardIntegral || ''}}</span>
           </template>
         </el-table-column>
-        <el-table-column prop="couponPrice" label="浼樻儬閲戦(鍏�)" min-width="120px">
-          <template slot-scope="{row}">
-             {{row.status==1?(row.couponPrice||0):'-'}}
-          </template>
-        </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>
-            <span v-else-if="row.status ===1" class="blue"> 宸蹭娇鐢�</span>
-            <span v-else class="grey">宸茶繃鏈�</span>
-          </template>
-        </el-table-column>
-
-        <el-table-column prop="createDate" label="棣栧崟瀹屾垚鏃堕棿" min-width="150px"></el-table-column>
+        <el-table-column prop="couponNames" label="浼樻儬鍒稿鍔�" min-width="150px"></el-table-column>
+        <el-table-column prop="firstFinishDate" label="棣栧崟瀹屾垚鏃堕棿" min-width="150px"></el-table-column>
         <el-table-column prop="createDate" label="娉ㄥ唽鏃堕棿" min-width="150px"></el-table-column>
-        <el-table-column prop="creatorName" label="鎿嶄綔浜�" min-width="100px"></el-table-column>
       </el-table>
       <pagination
         @size-change="handleSizeChange"
@@ -69,26 +54,23 @@
       >
       </pagination>
     </template>
-
-    <OperaMemberCouponWindow ref="OperaMemberCouponWindow" @success="handlePageChange"/>
   </TableLayout>
 </template>
 
 <script>
 import BaseTable from '@/components/base/BaseTable'
 import TableLayout from '@/layouts/TableLayout'
-import OperaMemberCouponWindow from '@/components/business/OperaMemberCouponWindow'
 import Pagination from '@/components/common/Pagination'
 export default {
   name: 'inviteRecord',
   extends: BaseTable,
-  components: { TableLayout, Pagination ,OperaMemberCouponWindow},
+  components: { TableLayout, Pagination },
   data () {
     return {
       // 鎼滅储
       searchForm: {
         recName: '',
-        name: '',
+        memberName: '',
         firstOrderStatus: ''
       }
     }
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/InviteRecord.java b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/InviteRecord.java
index e0ac58b..0d5ccb5 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/InviteRecord.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/InviteRecord.java
@@ -30,7 +30,7 @@
     private Integer creator;
 
     @ApiModelProperty(value = "鍒涘缓鏃堕棿")
-    @ExcelColumn(name="浜ゆ槗鏃堕棿" ,index =1,width = 10)
+    @ExcelColumn(name="娉ㄥ唽鏃堕棿" ,index =8,width = 10 ,dateFormat = "yyyy-MM-dd HH:mm:ss")
     private Date createDate;
 
     @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
@@ -56,18 +56,22 @@
     private String phone;
 
     @ApiModelProperty(value = "鏄惁瀹屾垚棣栧崟锛�0鍚� 1鏄�", example = "1")
+    @ExcelColumn(name="瀹屾垚鏋佺" ,index =4,width = 10,valueMapping = "0=宸叉敞鍐�;1=瀹屾垚棣栧崟;")
     private Integer firstOrderStatus;
 
     @ApiModelProperty(value = "瀹屾垚棣栧崟鏃堕棿")
+    @ExcelColumn(name="瀹屾垚棣栧崟鏃堕棿" ,index =7,width = 10 ,dateFormat = "yyyy-MM-dd HH:mm:ss")
     private Date firstFinishDate;
 
     @ApiModelProperty(value = "閭�璇峰鍔辩Н鍒�")
+    @ExcelColumn(name="濂栧姳閭�璇蜂汉绉垎" ,index =5,width = 10 )
     private BigDecimal rewardIntegral;
 
     @ApiModelProperty(value = "閭�璇峰畬鎴愰鍗曞鍔变紭鎯犲埜涓婚敭 澶氫釜浠�,鍒嗗壊")
     private String couponIds;
 
     @ApiModelProperty(value = "閭�璇峰畬鎴愰鍗曞鍔变紭鎯犲埜鍚嶇О 澶氫釜浠�,鍒嗗壊")
+    @ExcelColumn(name="濂栧姳閭�璇蜂汉浼樻儬鍒�" ,index =6,width = 10 )
     private String couponNames;
 
 
@@ -78,6 +82,28 @@
 
     @ApiModelProperty(value = "琚個璇蜂汉鍚嶇О")
     @TableField(exist = false)
+    @ExcelColumn(name="琚個璇蜂汉锛堟樀绉�/濮撳悕/鎵嬫満鍙凤級" ,index =2,width = 20)
     private String memberName;
 
+    @ApiModelProperty(value = "琚個璇蜂汉鍚嶇О")
+    @TableField(exist = false)
+    private String memberNickname;
+    @ApiModelProperty(value = "琚個璇蜂汉鎵嬫満鍙�")
+    @TableField(exist = false)
+    private String memberPhone;
+    @ApiModelProperty(value = "閭�璇蜂汉鏄电О")
+    @TableField(exist = false)
+    private String recNickname;
+    @ApiModelProperty(value = "閭�璇蜂汉鎵嬫満鍙�")
+    @TableField(exist = false)
+    private String recPhone;
+    @ApiModelProperty(value = "琚個璇蜂汉鍚嶇О")
+    @TableField(exist = false)
+    @ExcelColumn(name="閭�璇蜂汉锛堟樀绉�/濮撳悕/鎵嬫満鍙凤級" ,index =3,width = 20)
+    private String recName;
+    @ApiModelProperty(value = "琚個璇蜂汉鍚嶇О")
+    @TableField(exist = false)
+    @ExcelColumn(name="琚個璇蜂汉openid" ,index =1,width = 15)
+    private String openid;
+
 }
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/InviteRecordServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/InviteRecordServiceImpl.java
index ea1979b..83a47a4 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/InviteRecordServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/InviteRecordServiceImpl.java
@@ -34,6 +34,7 @@
 import com.doumee.service.business.InviteRecordService;
 import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import io.swagger.models.auth.In;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.http.util.TextUtils;
 import org.apache.shiro.SecurityUtils;
@@ -191,38 +192,65 @@
     @Override
     public PageData<InviteRecord> findPage(PageWrap<InviteRecord> pageWrap) {
         IPage<InviteRecord> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
-        QueryWrapper<InviteRecord> queryWrapper = new QueryWrapper<>();
+        MPJLambdaWrapper<InviteRecord> queryWrapper = new MPJLambdaWrapper<>();
         Utils.MP.blankToNull(pageWrap.getModel());
-        queryWrapper.lambda().eq(pageWrap.getModel().getId() != null,InviteRecord::getId, pageWrap.getModel().getId());
-        queryWrapper.lambda().eq(pageWrap.getModel().getCreator() != null,InviteRecord::getCreator, pageWrap.getModel().getCreator());
+        queryWrapper.selectAll(InviteRecord.class )
+                .select("t1.name",InviteRecord::getRecName)
+                .select("t1.nickname",InviteRecord::getRecNickname)
+                .select("t1.phone",InviteRecord::getRecPhone)
+                .select("t2.name",InviteRecord::getMemberName)
+                .select("t2.nickname",InviteRecord::getMemberNickname)
+                .select("t2.open_id",InviteRecord::getOpenid)
+                .select("t2.phone",InviteRecord::getMemberPhone)
+                .leftJoin(Member.class,Member::getId,InviteRecord::getInviteId)
+                .leftJoin(Member.class,Member::getId,InviteRecord::getMemberId) ;
+        pageWrap.getModel().setIsdeleted(Constants.ZERO);
+        queryWrapper.eq(pageWrap.getModel().getId() != null,InviteRecord::getId, pageWrap.getModel().getId());
+        queryWrapper.eq(pageWrap.getModel().getCreator() != null,InviteRecord::getCreator, pageWrap.getModel().getCreator());
         if (pageWrap.getModel().getId() != null) {
-            queryWrapper.lambda().ge(InviteRecord::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
-            queryWrapper.lambda().le(InviteRecord::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+            queryWrapper.ge(InviteRecord::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
+            queryWrapper.le(InviteRecord::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
         }
-        queryWrapper.lambda().eq(pageWrap.getModel().getEditor() != null,InviteRecord::getEditor, pageWrap.getModel().getEditor());
+        queryWrapper.eq(pageWrap.getModel().getEditor() != null,InviteRecord::getEditor, pageWrap.getModel().getEditor());
         if (pageWrap.getModel().getId() != null) {
-            queryWrapper.lambda().ge(InviteRecord::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
-            queryWrapper.lambda().le(InviteRecord::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
+            queryWrapper.ge(InviteRecord::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
+            queryWrapper.le(InviteRecord::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
         }
-        queryWrapper.lambda().eq(pageWrap.getModel().getIsdeleted() != null,InviteRecord::getIsdeleted, pageWrap.getModel().getIsdeleted());
-        queryWrapper.lambda().eq(pageWrap.getModel().getRemark() != null,InviteRecord::getRemark, pageWrap.getModel().getRemark());
-        queryWrapper.lambda().eq(pageWrap.getModel().getInviteId() != null,InviteRecord::getInviteId, pageWrap.getModel().getInviteId());
-        queryWrapper.lambda().eq(pageWrap.getModel().getMemberId() != null,InviteRecord::getMemberId, pageWrap.getModel().getMemberId());
-        queryWrapper.lambda().eq(pageWrap.getModel().getPhone() != null,InviteRecord::getPhone, pageWrap.getModel().getPhone());
-        queryWrapper.lambda().eq(pageWrap.getModel().getFirstOrderStatus() != null,InviteRecord::getFirstOrderStatus, pageWrap.getModel().getFirstOrderStatus());
+        queryWrapper.and(StringUtils.isNotBlank(pageWrap.getModel().getRecName()),w->{
+            w.like("t1.name",pageWrap.getModel().getRecName()).or()
+                    .like("t1.phone",pageWrap.getModel().getRecName()).or()
+                    .like("t1.nickname",pageWrap.getModel().getRecName());
+        });
+        queryWrapper.and(StringUtils.isNotBlank(pageWrap.getModel().getMemberName()),w->{
+            w.like("t2.name",pageWrap.getModel().getMemberName()).or()
+                    .like("t2.phone",pageWrap.getModel().getMemberName()).or()
+                    .like("t2.nickname",pageWrap.getModel().getMemberName());
+        });
+        queryWrapper.eq(pageWrap.getModel().getIsdeleted() != null,InviteRecord::getIsdeleted, pageWrap.getModel().getIsdeleted());
+        queryWrapper.eq(pageWrap.getModel().getRemark() != null,InviteRecord::getRemark, pageWrap.getModel().getRemark());
+        queryWrapper.eq(pageWrap.getModel().getInviteId() != null,InviteRecord::getInviteId, pageWrap.getModel().getInviteId());
+        queryWrapper.eq(pageWrap.getModel().getMemberId() != null,InviteRecord::getMemberId, pageWrap.getModel().getMemberId());
+        queryWrapper.eq(pageWrap.getModel().getPhone() != null,InviteRecord::getPhone, pageWrap.getModel().getPhone());
+        queryWrapper.eq(pageWrap.getModel().getFirstOrderStatus() != null,InviteRecord::getFirstOrderStatus, pageWrap.getModel().getFirstOrderStatus());
         if (pageWrap.getModel().getId() != null) {
-            queryWrapper.lambda().ge(InviteRecord::getFirstFinishDate, Utils.Date.getStart(pageWrap.getModel().getFirstFinishDate()));
-            queryWrapper.lambda().le(InviteRecord::getFirstFinishDate, Utils.Date.getEnd(pageWrap.getModel().getFirstFinishDate()));
+            queryWrapper.ge(InviteRecord::getFirstFinishDate, Utils.Date.getStart(pageWrap.getModel().getFirstFinishDate()));
+            queryWrapper.le(InviteRecord::getFirstFinishDate, Utils.Date.getEnd(pageWrap.getModel().getFirstFinishDate()));
         }
-        queryWrapper.lambda().eq(pageWrap.getModel().getRewardIntegral() != null,InviteRecord::getRewardIntegral, pageWrap.getModel().getRewardIntegral());
-        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
-            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
-                queryWrapper.orderByDesc(sortData.getProperty());
-            } else {
-                queryWrapper.orderByAsc(sortData.getProperty());
+        queryWrapper.eq(pageWrap.getModel().getRewardIntegral() != null,InviteRecord::getRewardIntegral, pageWrap.getModel().getRewardIntegral());
+
+        queryWrapper.orderByDesc(InviteRecord::getCreateDate);
+        IPage<InviteRecord> result =inviteRecordMapper.selectPage(page, queryWrapper);
+        if(result!=null && result.getRecords()!=null){
+            for(InviteRecord model : result.getRecords()){
+               model.setMemberName(StringUtils.defaultString(model.getMemberNickname(),"")+" / "
+                       +StringUtils.defaultString(model.getMemberName(),"-")+" / "
+                       +StringUtils.defaultString(model.getMemberPhone(),"-"));
+               model.setRecName(StringUtils.defaultString(model.getRecNickname(),"")+" / "
+                       +StringUtils.defaultString(model.getRecName(),"-")+" / "
+                       +StringUtils.defaultString(model.getRecPhone(),"-"));
             }
         }
-        return PageData.from(inviteRecordMapper.selectPage(page, queryWrapper));
+        return PageData.from(result);
     }
 
     @Override
@@ -230,9 +258,6 @@
         QueryWrapper<InviteRecord> wrapper = new QueryWrapper<>(inviteRecord);
         return inviteRecordMapper.selectCount(wrapper);
     }
-
-
-
 
 
 

--
Gitblit v1.9.3