会员管理-bug修改

master
382696293@qq.com 2 years ago
parent b297f27c6d
commit 00ea0ef870

@ -86,5 +86,7 @@ public interface WxUserMemberMapper {
List<WxUserMember> selectWxUserMemberByIdList(@Param("userIdList") List<Integer> userIdList);
List<WxUserMemberRet> selectWxUserMemberRetByIdList(@Param("userIdList") List<Integer> userIdList);
List<WxUserMemberRet> selectWxUserMemberRetListByVm(WxUserMemberVm wxUserMemberVm);
}

@ -355,6 +355,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</foreach>
</select>
<select id="selectWxUserMemberRetByIdList" resultMap="WxUserMemberRetResult">
SELECT <include refid="fieldList" />
where id in
<foreach item="id" collection="userIdList" open="(" separator="," close=")">
#{id}
</foreach>
</select>
<select id="selectWxUserMemberRetListByVm" resultMap="WxUserMemberRetResult">
SELECT <include refid="fieldList" />
<where>
@ -426,6 +434,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</if>
and member.status = 0
</where>
order by member.id desc
</select>

@ -380,14 +380,11 @@ public class WxUserMemberServiceImpl implements IWxUserMemberService {
@Override
public List<WxUserMemberRet> selectWxUserMemberByIdList(List<Integer> userIdList) {
List<WxUserMemberRet> list = new ArrayList<>();
List<WxUserMember> wxUserMembers = wxUserMemberMapper.selectWxUserMemberByIdList(userIdList);
if (wxUserMembers != null && wxUserMembers.size() > 0) {
WxUserMemberRet wxUserMemberRet;
for (WxUserMember wxUserMember : wxUserMembers) {
wxUserMemberRet = new WxUserMemberRet();
BeanUtils.copyProperties(wxUserMember, wxUserMemberRet);
List<WxUserMemberRet> wxUserMemberRetList = wxUserMemberMapper.selectWxUserMemberRetByIdList(userIdList);
if (wxUserMemberRetList != null && wxUserMemberRetList.size() > 0) {
for (WxUserMemberRet wxUserMemberRet : wxUserMemberRetList) {
WxUserTag wxUserTag = new WxUserTag();
wxUserTag.setUserId(wxUserMember.getId());
wxUserTag.setUserId(wxUserMemberRet.getId());
wxUserTag.setType(TagTypeStatus.MINI_PROGRAM.getCode());
wxUserMemberRet.setMiniProgramTags(wxUserTagMapper.selectWxUserTagList(wxUserTag));
wxUserTag.setType(TagTypeStatus.ENTERPRISE_WECHAT.getCode());

@ -16,7 +16,7 @@
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
<el-form-item label="用户类型" prop="userType">
<el-select v-model="queryParams.userType" @keyup.enter.native="handleQuery" style="width: 50%">
<el-option label="全部" value=""></el-option>
<el-option label="全部" :value="null"></el-option>
<el-option label="会员" :value="1"></el-option>
<el-option label="游客" :value="0"></el-option>
</el-select>
@ -115,14 +115,18 @@
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="仪器数量" prop="credit">
<el-input-number :min="0" :precision="0" v-model="queryParams.deviceNumStart" @keyup.enter.native="handleQuery"></el-input-number>
<el-input-number :min="0" :precision="0" v-model="queryParams.deviceNumStart"
@keyup.enter.native="handleQuery"></el-input-number>
<el-input-number :min="0" :precision="0" v-model="queryParams.deviceNumEnd" @keyup.enter.native="handleQuery"></el-input-number>
<el-input-number :min="0" :precision="0" v-model="queryParams.deviceNumEnd"
@keyup.enter.native="handleQuery"></el-input-number>
</el-form-item>
<el-form-item label="积分范围" prop="credit">
<el-input-number :min="0" :precision="0" v-model="queryParams.creditStart" @keyup.enter.native="handleQuery"></el-input-number>
<el-input-number :min="0" :precision="0" v-model="queryParams.creditStart"
@keyup.enter.native="handleQuery"></el-input-number>
<el-input-number :min="0" :precision="0" v-model="queryParams.creditEnd" @keyup.enter.native="handleQuery"></el-input-number>
<el-input-number :min="0" :precision="0" v-model="queryParams.creditEnd"
@keyup.enter.native="handleQuery"></el-input-number>
</el-form-item>
<!-- <el-form-item label="购买渠道" prop="purchaseChannels">-->
<!-- <el-select v-model="queryParams.purchaseChannels" multiple placeholder="请选择">-->
@ -200,7 +204,7 @@
<!-- 显示表格 -->
<el-table v-loading="loading" :data="memberList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center"/>
<el-table-column fixed="left" type="selection" width="55" align="center"/>
<el-table-column label="头像" align="center">
<template slot-scope="scope">
<el-avatar shape="circle" :size="50" :src="scope.row.headimg"/>
@ -276,7 +280,7 @@
</el-button>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<el-table-column fixed="right" label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="handleUpdate(scope.row)" v-hasPermi="['system:member:edit']">
</el-button>
@ -462,7 +466,7 @@
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancelIntegralDialog(true)"> </el-button>
<el-button @click="cancelIntegralDialog(false)"> </el-button>
<el-button type="primary" @click="submitBatchOperate"> </el-button>
</div>
</el-dialog>
@ -471,18 +475,19 @@
<el-dialog :title="title" :visible.sync="batchRemarkVisible" width="50%" :before-close="cancelRemarkDialog">
<el-form ref="remarkForm" :model="remarkForm" :rules="batchRemarkRules" label-width="150px">
<el-form-item label="备注 " prop="content">
<el-input v-model="remarkForm.content" placeholder="请输入备注"/>
<el-input v-model="remarkForm.content" type="textarea" placeholder="请输入备注" show-word-limit minlength="1"
maxlength="100"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancelRemarkDialog(true)"> </el-button>
<el-button @click="cancelRemarkDialog(false)"> </el-button>
<el-button type="primary" @click="submitBatchOperate"> </el-button>
</div>
</el-dialog>
<!-- 话术批量操作 -->
<el-dialog :title="title" :visible.sync="batchScriptVisible" width="600px" append-to-body
:before-close="cancelscriptDialog">
:before-close="cancelScriptDialog">
<el-form ref="scriptForm" :model="scriptForm" :rules="batchScriptRules" label-width="150px">
<el-row>
<el-col :span="24">
@ -505,7 +510,7 @@
</el-col>
<el-col :span="40">
<el-form-item label="话术通知内容" prop="scriptContent">
<el-input v-model="scriptForm.scriptContent"/>
<el-input v-model="scriptForm.scriptContent" disabled/>
</el-form-item>
</el-col>
</el-row>
@ -513,17 +518,19 @@
<el-row v-if="scriptForm.isCustom == 1">
<el-col :span="24">
<el-form-item label="话术标题" prop="titile">
<el-input v-model="scriptForm.titile" placeholder="请输入话术标题"/>
<el-input v-model="scriptForm.titile" placeholder="请输入话术标题" show-word-limit minlength="1"
maxlength="50"/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="话术内容" prop="content">
<el-input v-model="scriptForm.content" type="textarea" placeholder="请输入话术内容"/>
<el-input v-model="scriptForm.content" type="textarea" placeholder="请输入话术内容" show-word-limit
minlength="1" maxlength="500"/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="小程序标签" prop="tagIdArray" label-width="90px">
<treeselect v-model="tagIdArray" :options="chatTagOptions" :multiple="true" :show-count="true"
<treeselect v-model="scriptForm.tagIds" :options="chatTagOptions" :multiple="true" :show-count="true"
placeholder="请选择小程序标签" :disable-branch-nodes="true"/>
</el-form-item>
</el-col>
@ -578,7 +585,7 @@
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitBatchOperate"> </el-button>
<el-button @click="cancelscriptDialog"> </el-button>
<el-button @click="cancelScriptDialog(false)"> </el-button>
</div>
</el-dialog>
@ -634,7 +641,7 @@
<template>
<el-table :data="userIntegralLogQuery.userIntegralLogList" @sort-change="userIntegralSortChang"
:default-sort="{prop: 'createTime', order: 'desc'}" :stripe="true" style="width: 100%">
<el-table-column type="index" width="50"></el-table-column>
<el-table-column type="index" width="50" label="序号"></el-table-column>
<el-table-column prop="source" label="类型" width="100px">
<template slot-scope="scope">
<span v-show="scope.row.source == 1"></span>
@ -838,10 +845,11 @@ export default {
redirectUrl: null,
videoNo: null,
feedId: null,
tagNames: [],
tagIds: [],
//
scriptContent: null,
//
tagIds: [],
tagNames: [],
},
//
userScriptLogVisible: false,
@ -888,7 +896,6 @@ export default {
createTime: null,
wecomTags: null,
miniProgramTags: null,
},
//
queryParams: {
@ -1055,31 +1062,23 @@ export default {
this.provinceList = Response.data
})
},
getCityList(pid, isSave) {
getCityList(pid) {
if (pid == '') {
return;
}
this.queryParams.cityId = null;
this.queryParams.areaId = null;
getRegionByPid(pid).then(Response => {
if (isSave) {
this.saveCityList = Response.data;
} else {
this.cityList = Response.data;
}
})
},
getAreaByPid(pid, isSave) {
getAreaByPid(pid) {
if (pid == '') {
return;
}
this.queryParams.areaId = null;
getRegionByPid(pid).then(Response => {
if (isSave) {
this.saveAreaList = Response.data;
} else {
this.areaList = Response.data;
}
})
},
// -
@ -1105,7 +1104,7 @@ export default {
this.form.cityId = null;
this.form.areaId = null;
getRegionByPid(pid).then(Response => {
this.saveCityList = Response.data;
this.saveCityList = Response.data;
})
},
getSaveAreaByPid(pid) {
@ -1114,7 +1113,7 @@ export default {
}
this.form.areaId = null;
getRegionByPid(pid).then(Response => {
this.saveAreaList = Response.data;
this.saveAreaList = Response.data;
})
},
clearSaveOption(option) {
@ -1137,78 +1136,95 @@ export default {
this.reset();
},
//
cancelMiniProgramDialog(isclose) {
cancelMiniProgramDialog(isClose) {
this.title = null;
this.miniProgramForm.tagIdArray = [];
if (isclose) {
if (isClose) {
this.batchMiniProgramVisible = false;
}
},
cancelIntegralDialog() {
cancelIntegralDialog(isClose) {
this.integralForm.source = null;
this.integralForm.floatScore = null;
this.integralForm.remarkContent = "后台操作";
this.batchIntegralVisible = false;
if (isClose) {
this.batchIntegralVisible = false;
}
},
cancelRemarkDialog() {
cancelRemarkDialog(isClose) {
this.remarkForm.content = null;
this.batchRemarkVisible = false;
if (isClose) {
this.batchRemarkVisible = false;
}
},
cancelUserScriptLogDialog() {
this.userScriptLogVisible = false;
this.userScriptLogQuery.total = 0;
this.userScriptLogQuery.pageNum = 1;
this.userScriptLogQuery.pageSize = 10;
this.userScriptLogQuery.wxUserId = null;
this.userScriptLogQuery.userScriptList = null;
this.userScriptLogQuery = {
total: 0,
pageNum: 1,
pageSize: 10,
wxUserId: null,
userScriptList: null,
orderByColumn: "createTime",
isAsc: "desc"
}
},
cancelUserIntegralLogDialog() {
this.userIntegralLogVisible = false;
this.userIntegralLogQuery.total = 0
this.userIntegralLogQuery.pageNum = 1;
this.userIntegralLogQuery.pageSize = 10;
this.userIntegralLogQuery.userId = null;
this.userIntegralLogQuery.userIntegralLogList = null;
this.userIntegralLogQuery = {
total: 0,
pageNum: 1,
pageSize: 10,
userIntegralLogList: null,
userId: null,
orderByColumn: "createTime",
isAsc: "desc"
}
},
cancelExportFieldsDialog() {
this.allFields = false;
this.exportFieldList.nickname = null;
this.exportFieldList.id = null;
this.exportFieldList.credit = null;
this.exportFieldList.expireCredit = null;
this.exportFieldList.unionid = null;
this.exportFieldList.mobile = null;
this.exportFieldList.province = null;
this.exportFieldList.city = null;
this.exportFieldList.area = null;
this.exportFieldList.birthday = null;
this.exportFieldList.devicesNum = null;
this.exportFieldList.devicesName = null;
this.exportFieldList.createTime = null;
this.exportFieldList.wecomTags = null;
this.exportFieldList.miniProgramTags = null;
this.exportFieldsVisible = false
this.exportFieldList = {
id: null,
nickname: null,
credit: null,
expireCredit: null,
unionid: null,
mobile: null,
province: null,
city: null,
area: null,
birthday: null,
devicesNum: null,
devicesName: null,
createTime: null,
wecomTags: null,
miniProgramTags: null,
}
},
cancelscriptDialog() {
this.scriptForm.isCustom = null;
this.scriptForm.scriptName = null;
this.scriptForm.titile = null;
this.scriptForm.content = null;
this.scriptForm.tagType = null;
this.scriptForm.type = null;
this.scriptForm.link = null;
this.scriptForm.linkParams = null;
this.scriptForm.redirectAppid = null;
this.scriptForm.redirectUrl = null;
this.scriptForm.videoNo = null;
this.scriptForm.feedId = null;
this.scriptForm.tagNames = null;
this.scriptForm.tagIds = null;
this.scriptForm.scriptContent = null;
this.tagIdArray = [];
this.scriptForm.scriptTemplateId = null;
this.scriptForm.scriptContent = null;
this.batchScriptVisible = false;
cancelScriptDialog(isClose) {
this.scriptForm = {
userIdList: null,
isCustom: 0,
scriptTemplateId: null,
scriptName: null,
titile: null,
content: null,
tagType: null,
type: null,
link: null,
linkParams: null,
redirectAppid: null,
redirectUrl: null,
videoNo: null,
feedId: null,
scriptContent: null,
tagNames: [],
tagIds: [],
}
if (isClose) {
this.batchScriptVisible = false;
}
},
/** 查询部门下拉树结构 */
getDeptTree() {
@ -1222,8 +1238,8 @@ export default {
this.scriptOptions = response.data;
});
},
//
clearScript() {
//
if (this.scriptForm.isCustom == 0) {
this.scriptForm.scriptName = null;
this.scriptForm.titile = null;
@ -1238,13 +1254,12 @@ export default {
this.scriptForm.feedId = null;
this.scriptForm.tagNames = null;
this.scriptForm.tagIds = null;
this.scriptForm.scriptContent = null;
this.tagIdArray = [];
}
//
if (this.scriptForm.isCustom == 1) {
this.scriptForm.scriptTemplateId = null;
this.scriptForm.scriptContent = null;
this.scriptForm.type = 0;
}
},
selectTree(raw, instanceId) {
@ -1266,8 +1281,11 @@ export default {
password: null,
userQr: null,
province: null,
provinceId: null,
city: null,
cityId: null,
area: null,
areaId: null,
birthday: null,
clock: null,
activity: null,
@ -1362,22 +1380,18 @@ export default {
return
}
if (this.batchOperateValue == 1) {
console.log("批量添加小程序标签");
this.title = "添加小程序标签";
}
if (this.batchOperateValue == 2) {
console.log("批量删除小程序标签");
this.title = "删除小程序标签";
}
this.batchMiniProgramVisible = true;
}
if (this.batchOperateValue == 3 || this.batchOperateValue == 4) {
if (this.batchOperateValue == 3) {
console.log("全量添加小程序标签");
this.title = "添加小程序标签";
}
if (this.batchOperateValue == 4) {
console.log("全量删除小程序标签");
this.title = "添加小程序标签";
}
this.batchMiniProgramVisible = true;
@ -1385,7 +1399,6 @@ export default {
/* 批量操作:加减分 */
if (this.batchOperateValue == 5) {
console.log("批量加减积分");
if (this.ids.length == 0) {
this.$message({
message: '请选择要操作的数据',
@ -1394,15 +1407,15 @@ export default {
return
}
this.batchIntegralVisible = true;
this.title = "批量加减积分";
}
if (this.batchOperateValue == 6) {
console.log("全量加减积分");
this.batchIntegralVisible = true;
this.title = "全量加减积分";
}
/* 批量操作:发送话术 */
if (this.batchOperateValue == 7) {
console.log("批量发送话术");
if (this.ids.length == 0) {
this.$message({
message: '请选择要操作的数据',
@ -1411,15 +1424,15 @@ export default {
return
}
this.batchScriptVisible = true;
this.title = "批量发送话术";
}
if (this.batchOperateValue == 8) {
console.log("全量发送话术");
this.batchScriptVisible = true;
this.title = "全量发送话术";
}
/* 批量操作: 备注 */
if (this.batchOperateValue == 9) {
console.log("批量备注");
if (this.ids.length == 0) {
this.$message({
message: '请选择要操作的数据',
@ -1428,15 +1441,15 @@ export default {
return
}
this.batchRemarkVisible = true;
this.title = "批量备注";
}
if (this.batchOperateValue == 10) {
console.log("全量备注");
this.batchRemarkVisible = true;
this.title = "全量备注";
}
/* 批量操作:注销账号 */
if (this.batchOperateValue == 11) {
console.log("注销账号");
if (this.ids.length == 0) {
this.$message({
message: '请选择要操作的数据',
@ -1460,7 +1473,6 @@ export default {
/* 批量操作:导出数据 */
if (this.batchOperateValue == 12) {
console.log("导出数据");
if (this.ids.length == 0) {
this.$message({
message: '请选择要操作的数据',
@ -1471,7 +1483,6 @@ export default {
this.exportFieldsVisible = true;
}
if (this.batchOperateValue == 13) {
console.log("导出全量数据");
this.exportFieldsVisible = true;
}
}
@ -1493,17 +1504,17 @@ export default {
this.reset();
const id = row.id || this.ids
getMember(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改用户";
//
if (this.form.provinceId != null) {
this.getCityList(this.form.provinceId, true);
if (response.data.provinceId != null) {
this.getSaveCityList(response.data.provinceId);
}
if (this.form.areaId != null) {
this.getAreaByPid(this.form.cityId, true);
if (response.data.areaId != null) {
this.getSaveAreaByPid(response.data.cityId);
}
this.form = response.data;
this.open = true;
this.title = "修改用户";
});
},
//
@ -1663,17 +1674,15 @@ export default {
/* 批量操作:发送话术 */
if (this.batchOperateValue == 7) {
this.scriptForm.userIdList = this.ids;
this.scriptForm.tagIds = this.tagIdArray;
batchSendScript(this.scriptForm).then(Response => {
this.$modal.msgSuccess("批量发送话术成功");
this.cancelscriptDialog(true);
this.cancelScriptDialog(true);
})
}
if (this.batchOperateValue == 8) {
this.scriptForm.tagIds = this.tagIdArray;
allSendScript(this.scriptForm, this.queryParams).then(Response => {
this.$modal.msgSuccess("全量发送话术成功");
this.cancelscriptDialog(true);
this.cancelScriptDialog(true);
})
}
@ -1745,7 +1754,7 @@ export default {
if (this.form.wxUserRemarkList != null && this.form.wxUserRemarkList.length > 0) {
let that = this;
this.form.wxUserRemarkList.forEach(function (item) {
if (item.id = that.editRemarkForm.id) {
if (item.id == that.editRemarkForm.id) {
item.content = that.editRemarkForm.content;
}
})

Loading…
Cancel
Save