feat:修改页数问题,获取客户问题

master
username 3 months ago
parent cdeb743fe6
commit c69d9c9673

@ -81,6 +81,11 @@ public class DfBizClueController extends BaseController {
}
}
List<DfBizClue> list = dfBizClueService.list(queryWrapper);
for (DfBizClue clue : list) {
if (Validator.isNotEmpty(clue.getUserName())) {
clue.setNickName(clue.getUserName());
}
}
return getDataTable(list);
}
@ -133,6 +138,9 @@ public class DfBizClueController extends BaseController {
String key = clue.getUnionId() + "_" + clue.getDataType();
int visits = visitsNum.getOrDefault(key, 0);
clue.setVisitsNum(visits);
if (Validator.isNotEmpty(clue.getUserName())) {
clue.setNickName(clue.getUserName());
}
}
List<DfBizClue> sortedList = newList.stream()
.sorted((o1, o2) -> o2.getBrowseTime().compareTo(o1.getBrowseTime())) // 倒序
@ -157,6 +165,11 @@ public class DfBizClueController extends BaseController {
LambdaQueryWrapper<DfBizClue> queryWrapper = new LambdaQueryWrapper();
condition(queryWrapper,dfBizClue);
List<DfBizClue> list = dfBizClueService.list(queryWrapper);
for (DfBizClue clue : list) {
if (Validator.isNotEmpty(clue.getUserName())) {
clue.setNickName(clue.getUserName());
}
}
return success(list);
}
@ -179,6 +192,11 @@ public class DfBizClueController extends BaseController {
queryWrapper.eq(DfBizClue::getBusinessLinks, dfBizClue.getBusinessLinks());
}
List<DfBizClue> list = dfBizClueService.list(queryWrapper);
for (DfBizClue clue : list) {
if (Validator.isNotEmpty(clue.getUserName())) {
clue.setNickName(clue.getUserName());
}
}
List<DfBizClue> uniqueList = list.stream()
.collect(Collectors.toMap(
DfBizClue::getUserId, // 指定键的抽取函数
@ -208,6 +226,11 @@ public class DfBizClueController extends BaseController {
LambdaQueryWrapper<DfBizClue> queryWrapper = new LambdaQueryWrapper();
condition(queryWrapper,dfBizClue);
List<DfBizClue> list = dfBizClueService.list(queryWrapper);
for (DfBizClue clue : list) {
if (Validator.isNotEmpty(clue.getUserName())) {
clue.setNickName(clue.getUserName());
}
}
ExcelUtil<DfBizClue> util = new ExcelUtil<DfBizClue>(DfBizClue. class);
util.exportExcel(response, list, "业务线索数据");
}
@ -223,6 +246,9 @@ public class DfBizClueController extends BaseController {
if (!list.isEmpty()) {
String realName = list.get(0).getRealName();
if (Validator.isEmpty(realName)) {
if (Validator.isNotEmpty(list.get(0).getUserName())) {
list.get(0).setNickName(list.get(0).getUserName());
}
String nickName = list.get(0).getNickName();
if (Validator.isEmpty(nickName)) {
String userName = list.get(0).getUserName();

@ -232,7 +232,9 @@ public class DfOrderController extends BaseController {
Map<Long, String> userIdToRealNameMapVo = userList.stream()
.filter(user -> user != null && user.getUserId() != null && user.getRealName() != null)
.collect(Collectors.toMap(SysUser::getUserId, SysUser::getRealName));
Map<Long, String> userIdToPhoneMapVo = userList.stream()
.filter(user -> user != null && user.getUserId() != null && user.getPhonenumber() != null)
.collect(Collectors.toMap(SysUser::getUserId, SysUser::getPhonenumber));
Map<Long, String> userIdToNickNameMapVo = userList.stream()
.filter(user -> user != null && user.getUserId() != null && user.getNickName() != null)
.collect(Collectors.toMap(SysUser::getUserId, SysUser::getNickName));
@ -244,6 +246,7 @@ public class DfOrderController extends BaseController {
String realName = userIdToRealNameMapVo.get(order.getBrokerId());
String nickName = userIdToNickNameMapVo.get(order.getBrokerId());
String userName = userIdToNameMapVo.get(order.getBrokerId());
String phone = userIdToPhoneMapVo.get(order.getBrokerId());
if (Validator.isEmpty(realName)) {
if (Validator.isEmpty(nickName)) {
order.setBrokerName(userName);
@ -253,6 +256,7 @@ public class DfOrderController extends BaseController {
} else {
order.setBrokerName(realName);
}
order.setBrokerPhone(phone);
});
return list;
}
@ -336,6 +340,8 @@ public class DfOrderController extends BaseController {
} else {
byId.setBrokerName(realName);
}
String phonenumber = list.get(0).getPhonenumber();
byId.setBrokerPhone(phonenumber);
}
return success(byId);
}
@ -373,23 +379,26 @@ public class DfOrderController extends BaseController {
dfOrderMapper.insertOrder(dfOrder);
List<DfOrder> dfOrders = dfOrderService.list(new LambdaQueryWrapper<DfOrder>().eq(DfOrder::getOrderNo, billNumber)
.orderByDesc(DfOrder::getCreateTime));
if (Validator.isNotEmpty(dfOrder.getShareUser())) {
List<DfBizClue> list = dfBizClueService.list(new LambdaQueryWrapper<DfBizClue>().eq(DfBizClue::getShareUser, dfOrder.getShareUser())
.isNull(DfBizClue::getOrderId));
for (DfBizClue clue : list) {
clue.setOrderId(dfOrders.get(0).getId().toString());
clue.setPhone(dfOrder.getPhone());
clue.setNickName(dfOrder.getUserName());
dfBizClueMapper.updateClue(clue);
}
}
// if (Validator.isNotEmpty(dfOrder.getShareUser())) {
// List<DfBizClue> list = dfBizClueService.list(new LambdaQueryWrapper<DfBizClue>().eq(DfBizClue::getShareUser, dfOrder.getShareUser())
// .isNull(DfBizClue::getOrderId));
// for (DfBizClue clue : list) {
// clue.setOrderId(dfOrders.get(0).getId().toString());
// clue.setPhone(dfOrder.getPhone());
// clue.setNickName(dfOrder.getUserName());
// dfBizClueMapper.updateClue(clue);
// }
// }
if (Validator.isNotEmpty(dfOrder.getUnionId())) {
List<DfBizClue> list = dfBizClueService.list(new LambdaQueryWrapper<DfBizClue>().eq(DfBizClue::getUnionId, dfOrder.getUnionId())
.isNull(DfBizClue::getOrderId));
for (DfBizClue clue : list) {
clue.setOrderId(dfOrders.get(0).getId().toString());
clue.setPhone(dfOrder.getPhone());
clue.setNickName(dfOrder.getUserName());
//clue.setNickName(dfOrder.getUserName());
if (Validator.isEmpty(clue.getUserName())) {
clue.setUserName(dfOrder.getUserName());
clue.setPhone(dfOrder.getPhone());
}
dfBizClueMapper.updateClue(clue);
}
}

@ -66,6 +66,9 @@ public class DfProductInfoController extends BaseController {
@Autowired
private SysUserMapper sysUserMapper;
@Autowired
private IDfProductRecommendService dfProductRecommendService;
/**
@ -276,22 +279,29 @@ public class DfProductInfoController extends BaseController {
@ApiOperation("根据userId查询产品信息列表")
@GetMapping("/listByRecommend")
public AjaxResult listByRecommend(DfProductInfo dfProductInfo) {
LambdaQueryWrapper<DfProductInfo> queryWrapper = new LambdaQueryWrapper();
List<DfProductRecommend> dfProductRecommends = dfProductRecommendService.list(new LambdaQueryWrapper<DfProductRecommend>().eq(DfProductRecommend::getUserId, dfProductInfo.getUserId()));
List<Long> recommendProductIds = dfProductRecommends.stream()
.map(DfProductRecommend::getProductId) // 提取 String 类型的 productId
.map(Long::parseLong) // 将 String 转换为 Long
.collect(Collectors.toList()); // 收集为 List<Long>
recommendProductIds.add(0L);
List<Long> brokerProductIds = dfBrokerService.getProductIdsByBrokerIdByUserId(Long.valueOf(dfProductInfo.getUserId()));
List<Long> productIdsByBrokerIdByUserId = dfBrokerService.getProductIdsByBrokerIdByUserId(Long.valueOf(dfProductInfo.getUserId()));
if (productIdsByBrokerIdByUserId.isEmpty()) {
productIdsByBrokerIdByUserId.add(0L);
}
productIdsByBrokerIdByUserId.add(0L); // 添加默认值避免空集合错误
}
Set<Long> allProductIds = new HashSet<>();
allProductIds.addAll(recommendProductIds);
allProductIds.addAll(brokerProductIds);
allProductIds.addAll(productIdsByBrokerIdByUserId);
allProductIds.add(0L);
LambdaQueryWrapper<DfProductInfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.notIn(DfProductInfo::getId, recommendProductIds) // 排除推荐的产品
.in(DfProductInfo::getId, allProductIds) // 包含经纪人产品和broker产品
.or()
.eq(DfProductInfo::getId, dfProductInfo.getId()); // 或者直接匹配当前产品ID
queryWrapper.notInSql(DfProductInfo::getId,
"select product_id from df_product_recommend where del_flag = '0' and user_id = " + dfProductInfo.getUserId() + "");
queryWrapper.and(wrapper ->
wrapper.in(DfProductInfo::getId, productIdsByBrokerIdByUserId)
.or()
.inSql(DfProductInfo::getId, "select product_id from df_broker_product where user_id in (" + dfProductInfo.getUserId() + ") and del_flag = '0' and staus = '1'")
);
queryWrapper.or()
.eq(DfProductInfo::getId,dfProductInfo.getId());
condition(queryWrapper,dfProductInfo);
condition(queryWrapper, dfProductInfo);
List<DfProductInfo> list = dfProductInfoService.list(queryWrapper);
return success(list);
}

@ -261,7 +261,7 @@ public class DfProductPosterController extends BaseController {
//海报标签
if(Validator.isNotEmpty(dfProductPoster.getPosterTag())){
queryWrapper.like(DfProductPoster::getPosterTag,dfProductPoster.getPosterTag());
queryWrapper.eq(DfProductPoster::getPosterTag,dfProductPoster.getPosterTag());
}
//海报图片id

@ -69,6 +69,11 @@ public class DfBizClue extends BaseEntity{
@ApiModelProperty(value = "用户昵称")
private String nickName;
/** 用户名称 */
@ApiModelProperty(value = "用户名称")
private String userName;
/** 浏览时间 */
@JsonFormat(pattern = "yyyy-MM-dd")

@ -63,6 +63,10 @@ public class DfOrder extends BaseEntity{
@TableField(exist = false)
private String brokerName;
@Excel(name = "经纪人电话")
@TableField(exist = false)
private String brokerPhone;
/** 产品id */
//@Excel(name = "产品id")

@ -295,6 +295,15 @@ public class SysUserController extends BaseController {
@PostMapping("/export")
public void export(HttpServletResponse response, SysUser user) {
List<SysUser> list = userService.selectUserList(user);
List<DfBroker> dfBrokerList = dfBrokerService.list();
Map<Long, DfBroker> dfBrokerMap = dfBrokerList.stream()
.collect(Collectors.toMap(DfBroker::getId, broker -> broker));
for (SysUser sysUser : list) {
DfBroker dfBroker = dfBrokerMap.get(sysUser.getDeptId());
if (null != dfBroker) {
sysUser.setDeptName(dfBroker.getBrokerName());
}
}
ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
util.exportExcel(response, list, "用户数据");
}

@ -1,6 +1,6 @@
<template>
<div ref="list">
<el-form :model="queryParams" ref="queryForm" size="mini" :inline="true" v-show="showSearch" label-width="95px" >
<el-form :model="queryParams" ref="queryForm" size="mini" :inline="true" v-show="showSearch" label-width="95px" @submit.native.prevent>
<el-form-item label="代理商名称" prop="brokerName">
<el-input
v-model="queryParams.brokerName"

@ -2,7 +2,7 @@
<div ref="list">
<p style="margin: 10px 0; border-bottom: 1px solid #eee; padding-bottom: 5px;">经纪人</p>
<el-form :model="queryParams" ref="queryForm" size="mini" :inline="true" v-show="showSearch" label-width="100px">
<el-form :model="queryParams" ref="queryForm" size="mini" :inline="true" v-show="showSearch" label-width="100px" @submit.native.prevent>
<el-form-item label="产品名称" prop="productName">
<el-input
v-model="queryParams.productName"

@ -2,7 +2,7 @@
<div ref="list">
<p style="margin: 10px 0; border-bottom: 1px solid #eee; padding-bottom: 5px;">代理商</p>
<el-form :model="queryParams" ref="queryForm" size="mini" :inline="true" v-show="showSearch" label-width="100px">
<el-form :model="queryParams" ref="queryForm" size="mini" :inline="true" v-show="showSearch" label-width="100px" @submit.native.prevent>
<el-form-item label="产品名称" prop="productName">
<el-input
v-model="queryParams.productName"

@ -1,6 +1,6 @@
<template>
<div ref="list">
<el-form :model="queryParams" ref="queryForm" size="mini" :inline="true" v-show="showSearch" label-width="95px" >
<el-form :model="queryParams" ref="queryForm" size="mini" :inline="true" v-show="showSearch" label-width="95px" @submit.native.prevent>
<el-form-item label="代理商名称" prop="brokerName">
<el-input
v-model="queryParams.brokerName"

@ -1,6 +1,6 @@
<template>
<div ref="list">
<el-form :model="queryParams" ref="queryForm" size="mini" :inline="true" v-show="showSearch" label-width="95px" >
<el-form :model="queryParams" ref="queryForm" size="mini" :inline="true" v-show="showSearch" label-width="95px" @submit.native.prevent >
<el-form-item label="经纪人" prop="userName">
<el-input
v-model="queryParams.userName"
@ -24,6 +24,7 @@
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
:pager-count="3"
layout=" prev, pager,next"
@pagination="getList"
/>

@ -1,6 +1,6 @@
<template>
<div ref="list">
<el-form :model="queryParams" ref="queryForm" size="mini" :inline="true" v-show="showSearch" label-width="95px" >
<el-form :model="queryParams" ref="queryForm" size="mini" :inline="true" v-show="showSearch" label-width="95px" @submit.native.prevent>
<el-form-item label="代理商名称" prop="brokerName">
<el-input
v-model="queryParams.brokerName"

@ -126,6 +126,7 @@
<el-table-column label="客户" width="120" prop="userName"/>
<el-table-column label="联系方式" width="110" prop="phone"/>
<el-table-column label="经纪人" prop="brokerName" width="120"/>
<el-table-column label="经纪人电话" prop="brokerPhone" width="120"/>
<el-table-column label="产品名称" prop="productName" sortable='custom' width="100px"/>
<el-table-column label="申请额" prop="applyAmount" sortable='custom' width="90px"/>
<el-table-column label="授信额" prop="limitAmount" sortable='custom' width="90px"/>
@ -205,6 +206,11 @@
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="经纪人电话" prop="brokerPhone">
<el-input v-model="form.brokerPhone" placeholder="请输入经纪人电话" style="width: 100%" :disabled="true"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="产品" prop="productId">
<el-select style="width: 100%;" v-model="form.productId" placeholder="请选择产品" clearable :disabled="true">
@ -219,6 +225,8 @@
<!-- <el-input v-model="form.productName" placeholder="请输入产品名称" />-->
<!-- </el-form-item>-->
<!-- </el-col>-->
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="提交时间" prop="submitTime">
<el-date-picker clearable
@ -231,37 +239,40 @@
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="申请额(万元)" prop="applyAmount">
<el-input-number v-model="form.applyAmount" placeholder="请输入申请额" :min="0" style="width: 100%" :precision="2" :disabled="readonly"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="授信额(万元)" prop="limitAmount">
<el-input-number v-model="form.limitAmount" placeholder="请输入授信额" :min="0" style="width: 100%" :precision="2" :disabled="readonly"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="放款额(万元)" prop="loanAmount">
<el-input-number v-model="form.loanAmount" placeholder="请输入放款额" :min="0" style="width: 100%" :precision="2" :disabled="readonly"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="放款利率" prop="loanRate">
<el-input-number v-model="form.loanRate" placeholder="请输入放款利率" :min="0" style="width: 100%" :precision="2" :disabled="readonly"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="贷款期限(月)" prop="loadMonth">
<el-input-number v-model="form.loadMonth" placeholder="请输入贷款期限" :min="0" style="width: 100%" :disabled="readonly"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="是否首贷" prop="isFirst">
<el-select style="width: 100%;" v-model="form.isFirst" placeholder="请选择是否首贷" clearable :disabled="readonly">
@ -271,13 +282,14 @@
<!-- <el-input v-model="form.isFirst" placeholder="请输入是否首贷"/>-->
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="可结算金额(万元)" prop="settleAmount">
<el-input-number v-model="form.settleAmount" placeholder="请输入可结算金额" :min="0" style="width: 100%" :precision="2" :disabled="readonly"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="状态" prop="staus">
<el-select style="width: 100%;" v-model="form.staus" placeholder="请选择状态" clearable :disabled="readonly">
@ -289,7 +301,7 @@
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" :disabled="readonly"/>
</el-form-item>

@ -318,12 +318,18 @@
</el-col>
<el-col :span="8">
<el-form-item label="产品名称" prop="ids">
<el-select style="width: 100%;" filterable multiple v-model="form.ids" placeholder="请选择产品名称"
:disabled="readonly"
clearable>
<el-select multiple v-model='form.ids' @change='changeSelect' placeholder='请选择'>
<el-checkbox v-model="checked" @change='selectAll'>全选</el-checkbox>
<el-option v-for="info in infoListAll" :key="info.id" :label="info.productName"
:value="info.id"/>
<el-option v-for='(item, index) in options' :key='index' :label='item.name' :value='item.name'></el-option>
</el-select>
<!-- <el-select style="width: 100%;" filterable multiple v-model="form.ids" placeholder="请选择产品名称"-->
<!-- :disabled="readonly"-->
<!-- clearable>-->
<!-- <el-option v-for="info in infoListAll" :key="info.id" :label="info.productName"-->
<!-- :value="info.id"/>-->
<!-- </el-select>-->
</el-form-item>
</el-col>
</el-row>
@ -477,6 +483,7 @@ export default {
maxAmountBegin: undefined,
maxAmountEnd: undefined,
},
checked: false,
//
form: {},
//
@ -550,6 +557,23 @@ export default {
this.getAreaList();
},
methods: {
selectAll() {
this.form.ids = []
if (this.checked) {
this.infoListAll.map((item) => {
this.form.ids.push(item.id)
})
} else {
this.form.ids = []
}
},
changeSelect(val) {
if (val.length === this.infoListAll.length) {
this.checked = true
} else {
this.checked = false
}
},
tenantIdnormalizer(node, instanceId) {
if (node.children && !node.children.length) {
delete node.children

@ -1,6 +1,6 @@
<template>
<div ref="list">
<el-form :model="queryParams" ref="queryForm" size="mini" :inline="true" v-show="showSearch" label-width="60px" >
<el-form :model="queryParams" ref="queryForm" size="mini" :inline="true" v-show="showSearch" label-width="60px" @submit.native.prevent>
<el-form-item label="经纪人" prop="userName">
<el-input
v-model="queryParams.userName"
@ -24,6 +24,7 @@
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
:pager-count="3"
layout=" prev, pager,next"
@pagination="getList"
/>

@ -1,6 +1,6 @@
<template>
<div ref="list">
<el-form :model="queryParams" ref="queryForm" size="mini" :inline="true" v-show="showSearch" label-width="95px" >
<el-form :model="queryParams" ref="queryForm" size="mini" :inline="true" v-show="showSearch" label-width="95px" @submit.native.prevent>
<el-form-item label="经纪人" prop="userName">
<el-input
v-model="queryParams.userName"
@ -24,6 +24,7 @@
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
:pager-count="3"
layout=" prev, pager,next"
@pagination="getList"
/>

Loading…
Cancel
Save