From c69d9c96732050a9ba2569b1535be6a7ff3136c1 Mon Sep 17 00:00:00 2001 From: username <1532322479@qq.com> Date: Sat, 4 Jan 2025 11:31:15 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E4=BF=AE=E6=94=B9=E9=A1=B5=E6=95=B0?= =?UTF-8?q?=E9=97=AE=E9=A2=98=EF=BC=8C=E8=8E=B7=E5=8F=96=E5=AE=A2=E6=88=B7?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bs/df/controller/DfBizClueController.java | 26 ++++++++++++++ .../bs/df/controller/DfOrderController.java | 35 +++++++++++------- .../controller/DfProductInfoController.java | 36 ++++++++++++------- .../controller/DfProductPosterController.java | 2 +- .../main/java/com/bs/df/domain/DfBizClue.java | 5 +++ .../main/java/com/bs/df/domain/DfOrder.java | 4 +++ .../controller/system/SysUserController.java | 9 +++++ .../broker/broker/components/DfBroker.vue | 2 +- .../components/BrokerProductByUserId.vue | 2 +- .../product/components/BrokerProductTwo.vue | 2 +- .../broker/product/components/DfBroker.vue | 2 +- .../product/components/DfBrokerUser.vue | 3 +- .../views/broker/user/components/DfBroker.vue | 2 +- bs-ui/src/views/order/order/index.vue | 30 +++++++++++----- .../recommend/components/BrokerProduct.vue | 30 ++++++++++++++-- .../recommend/components/DfBrokerUser.vue | 3 +- .../views/user/broker/components/DfBroker.vue | 3 +- 17 files changed, 149 insertions(+), 47 deletions(-) diff --git a/bs-admin/src/main/java/com/bs/df/controller/DfBizClueController.java b/bs-admin/src/main/java/com/bs/df/controller/DfBizClueController.java index 1c38152..4810b33 100644 --- a/bs-admin/src/main/java/com/bs/df/controller/DfBizClueController.java +++ b/bs-admin/src/main/java/com/bs/df/controller/DfBizClueController.java @@ -81,6 +81,11 @@ public class DfBizClueController extends BaseController { } } List 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 sortedList = newList.stream() .sorted((o1, o2) -> o2.getBrowseTime().compareTo(o1.getBrowseTime())) // 倒序 @@ -157,6 +165,11 @@ public class DfBizClueController extends BaseController { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper(); condition(queryWrapper,dfBizClue); List 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 list = dfBizClueService.list(queryWrapper); + for (DfBizClue clue : list) { + if (Validator.isNotEmpty(clue.getUserName())) { + clue.setNickName(clue.getUserName()); + } + } List uniqueList = list.stream() .collect(Collectors.toMap( DfBizClue::getUserId, // 指定键的抽取函数 @@ -208,6 +226,11 @@ public class DfBizClueController extends BaseController { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper(); condition(queryWrapper,dfBizClue); List list = dfBizClueService.list(queryWrapper); + for (DfBizClue clue : list) { + if (Validator.isNotEmpty(clue.getUserName())) { + clue.setNickName(clue.getUserName()); + } + } ExcelUtil util = new ExcelUtil(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(); diff --git a/bs-admin/src/main/java/com/bs/df/controller/DfOrderController.java b/bs-admin/src/main/java/com/bs/df/controller/DfOrderController.java index 82bf669..eb89141 100644 --- a/bs-admin/src/main/java/com/bs/df/controller/DfOrderController.java +++ b/bs-admin/src/main/java/com/bs/df/controller/DfOrderController.java @@ -232,7 +232,9 @@ public class DfOrderController extends BaseController { Map userIdToRealNameMapVo = userList.stream() .filter(user -> user != null && user.getUserId() != null && user.getRealName() != null) .collect(Collectors.toMap(SysUser::getUserId, SysUser::getRealName)); - + Map userIdToPhoneMapVo = userList.stream() + .filter(user -> user != null && user.getUserId() != null && user.getPhonenumber() != null) + .collect(Collectors.toMap(SysUser::getUserId, SysUser::getPhonenumber)); Map 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 dfOrders = dfOrderService.list(new LambdaQueryWrapper().eq(DfOrder::getOrderNo, billNumber) .orderByDesc(DfOrder::getCreateTime)); - if (Validator.isNotEmpty(dfOrder.getShareUser())) { - List list = dfBizClueService.list(new LambdaQueryWrapper().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 list = dfBizClueService.list(new LambdaQueryWrapper().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 list = dfBizClueService.list(new LambdaQueryWrapper().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); } } diff --git a/bs-admin/src/main/java/com/bs/df/controller/DfProductInfoController.java b/bs-admin/src/main/java/com/bs/df/controller/DfProductInfoController.java index e1321d1..b87cda9 100644 --- a/bs-admin/src/main/java/com/bs/df/controller/DfProductInfoController.java +++ b/bs-admin/src/main/java/com/bs/df/controller/DfProductInfoController.java @@ -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 queryWrapper = new LambdaQueryWrapper(); + List dfProductRecommends = dfProductRecommendService.list(new LambdaQueryWrapper().eq(DfProductRecommend::getUserId, dfProductInfo.getUserId())); + List recommendProductIds = dfProductRecommends.stream() + .map(DfProductRecommend::getProductId) // 提取 String 类型的 productId + .map(Long::parseLong) // 将 String 转换为 Long + .collect(Collectors.toList()); // 收集为 List + recommendProductIds.add(0L); + List brokerProductIds = dfBrokerService.getProductIdsByBrokerIdByUserId(Long.valueOf(dfProductInfo.getUserId())); List productIdsByBrokerIdByUserId = dfBrokerService.getProductIdsByBrokerIdByUserId(Long.valueOf(dfProductInfo.getUserId())); if (productIdsByBrokerIdByUserId.isEmpty()) { - productIdsByBrokerIdByUserId.add(0L); - } + productIdsByBrokerIdByUserId.add(0L); // 添加默认值避免空集合错误 + } + Set allProductIds = new HashSet<>(); + allProductIds.addAll(recommendProductIds); + allProductIds.addAll(brokerProductIds); + allProductIds.addAll(productIdsByBrokerIdByUserId); + allProductIds.add(0L); + LambdaQueryWrapper 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 list = dfProductInfoService.list(queryWrapper); return success(list); } diff --git a/bs-admin/src/main/java/com/bs/df/controller/DfProductPosterController.java b/bs-admin/src/main/java/com/bs/df/controller/DfProductPosterController.java index a15005f..a181a64 100644 --- a/bs-admin/src/main/java/com/bs/df/controller/DfProductPosterController.java +++ b/bs-admin/src/main/java/com/bs/df/controller/DfProductPosterController.java @@ -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 diff --git a/bs-admin/src/main/java/com/bs/df/domain/DfBizClue.java b/bs-admin/src/main/java/com/bs/df/domain/DfBizClue.java index 14a57bd..266446a 100644 --- a/bs-admin/src/main/java/com/bs/df/domain/DfBizClue.java +++ b/bs-admin/src/main/java/com/bs/df/domain/DfBizClue.java @@ -69,6 +69,11 @@ public class DfBizClue extends BaseEntity{ @ApiModelProperty(value = "用户昵称") private String nickName; + /** 用户名称 */ + + @ApiModelProperty(value = "用户名称") + private String userName; + /** 浏览时间 */ @JsonFormat(pattern = "yyyy-MM-dd") diff --git a/bs-admin/src/main/java/com/bs/df/domain/DfOrder.java b/bs-admin/src/main/java/com/bs/df/domain/DfOrder.java index 3cdfb1e..ec74ff1 100644 --- a/bs-admin/src/main/java/com/bs/df/domain/DfOrder.java +++ b/bs-admin/src/main/java/com/bs/df/domain/DfOrder.java @@ -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") diff --git a/bs-admin/src/main/java/com/bs/web/controller/system/SysUserController.java b/bs-admin/src/main/java/com/bs/web/controller/system/SysUserController.java index d107408..c51b6aa 100644 --- a/bs-admin/src/main/java/com/bs/web/controller/system/SysUserController.java +++ b/bs-admin/src/main/java/com/bs/web/controller/system/SysUserController.java @@ -295,6 +295,15 @@ public class SysUserController extends BaseController { @PostMapping("/export") public void export(HttpServletResponse response, SysUser user) { List list = userService.selectUserList(user); + List dfBrokerList = dfBrokerService.list(); + Map 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 util = new ExcelUtil(SysUser.class); util.exportExcel(response, list, "用户数据"); } diff --git a/bs-ui/src/views/broker/broker/components/DfBroker.vue b/bs-ui/src/views/broker/broker/components/DfBroker.vue index 1f4f731..fea4ecc 100644 --- a/bs-ui/src/views/broker/broker/components/DfBroker.vue +++ b/bs-ui/src/views/broker/broker/components/DfBroker.vue @@ -1,6 +1,6 @@