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