Browse Source

修复客户申请时traceId传递错误的bug

KH
Trae AI 1 month ago
parent
commit
b9c866bc73
  1. 2
      web/src/main/java/com/example/web/controller/UserController.java
  2. 2
      web/src/main/java/com/example/web/service/CustomerApplyService.java
  3. 2
      web/src/main/java/com/example/web/service/UserService.java
  4. 39
      web/src/main/java/com/example/web/service/impl/CustomerApplyServiceImpl.java
  5. 2
      web/src/main/java/com/example/web/service/impl/UserServiceImpl.java
  6. 16
      web/src/main/resources/static/index.html

2
web/src/main/java/com/example/web/controller/UserController.java

@ -116,7 +116,7 @@ public class UserController {
} }
@GetMapping("/users/apply/list") @GetMapping("/users/apply/list")
public List<com.example.web.entity.CustomerApply> getApplyList( public List<Map<String, Object>> getApplyList(
@RequestParam(required = false) Integer status) { @RequestParam(required = false) Integer status) {
return userService.getApplyList(status); return userService.getApplyList(status);
} }

2
web/src/main/java/com/example/web/service/CustomerApplyService.java

@ -29,7 +29,7 @@ public interface CustomerApplyService {
* @param status 状态null表示所有状态 * @param status 状态null表示所有状态
* @return 申请列表 * @return 申请列表
*/ */
List<CustomerApply> getApplyList(Integer status); List<Map<String, Object>> getApplyList(Integer status);
/** /**
* 根据客户ID和业务员ID查询申请记录 * 根据客户ID和业务员ID查询申请记录

2
web/src/main/java/com/example/web/service/UserService.java

@ -31,7 +31,7 @@ public interface UserService {
// 申请相关方法 // 申请相关方法
Map<String, Object> applyCustomer(Map<String, Object> params); Map<String, Object> applyCustomer(Map<String, Object> params);
Map<String, Object> approveApply(Map<String, Object> params); Map<String, Object> approveApply(Map<String, Object> params);
List<CustomerApply> getApplyList(Integer status); List<Map<String, Object>> getApplyList(Integer status);
// 获取人员列表 // 获取人员列表
Map<String, Object> getPersonnelList(); Map<String, Object> getPersonnelList();

39
web/src/main/java/com/example/web/service/impl/CustomerApplyServiceImpl.java

@ -17,6 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -280,16 +281,48 @@ public class CustomerApplyServiceImpl implements CustomerApplyService {
} }
@Override @Override
public List<CustomerApply> getApplyList(Integer status) { public List<Map<String, Object>> getApplyList(Integer status) {
try { try {
// 切换到wechat数据源 // 切换到wechat数据源
DataSourceContextHolder.setDataSource("wechat"); DataSourceContextHolder.setDataSource("wechat");
List<CustomerApply> applyList;
if (status == null) { if (status == null) {
return customerApplyMapper.findAll(); applyList = customerApplyMapper.findAll();
} else { } else {
return customerApplyMapper.findByStatus(status); applyList = customerApplyMapper.findByStatus(status);
} }
// 转换为包含电话号码的Map列表
List<Map<String, Object>> resultList = new ArrayList<>();
for (CustomerApply apply : applyList) {
Map<String, Object> map = new HashMap<>();
map.put("id", apply.getId());
map.put("user_id", apply.getUser_id());
map.put("sales_id", apply.getSales_id());
map.put("sales_name", apply.getSales_name());
map.put("original_manager_name", apply.getOriginal_manager_name());
map.put("status", apply.getStatus());
map.put("apply_time", apply.getApply_time());
map.put("approve_time", apply.getApprove_time());
map.put("approve_by", apply.getApprove_by());
map.put("reason", apply.getReason());
// 使用user_id查询users表获取电话号码
try {
Users user = usersMapper.findByUserId(apply.getUser_id());
if (user != null) {
map.put("phone", user.getPhoneNumber());
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("查询用户电话号码时发生错误: " + e.getMessage());
}
resultList.add(map);
}
return resultList;
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
return null; return null;

2
web/src/main/java/com/example/web/service/impl/UserServiceImpl.java

@ -856,7 +856,7 @@ public class UserServiceImpl implements UserService {
} }
@Override @Override
public List<CustomerApply> getApplyList(Integer status) { public List<Map<String, Object>> getApplyList(Integer status) {
return customerApplyService.getApplyList(status); return customerApplyService.getApplyList(status);
} }

16
web/src/main/resources/static/index.html

@ -2708,6 +2708,8 @@
var key = trace.userId || (trace.phoneNumber || trace.nickName); var key = trace.userId || (trace.phoneNumber || trace.nickName);
if (!groupedTraces[key]) { if (!groupedTraces[key]) {
groupedTraces[key] = { groupedTraces[key] = {
userId: trace.userId,
traceId: trace.id, // 保存traceId
nickName: trace.nickName, nickName: trace.nickName,
phoneNumber: trace.phoneNumber, phoneNumber: trace.phoneNumber,
followup: trace.followup, followup: trace.followup,
@ -2893,7 +2895,7 @@
</thead> </thead>
<tbody> <tbody>
${mergedTraces.map((trace, index) => ` ${mergedTraces.map((trace, index) => `
<tr data-trace-id="${traces[index].id || ''}" data-user-id="${trace.userId || ''}"> <tr data-trace-id="${trace.traceId || ''}" data-user-id="${trace.userId || ''}">
<td style="padding: 8px; border: 1px solid #e8e8e8; white-space: nowrap; vertical-align: top;">${trace.nickName || '-'}</td> <td style="padding: 8px; border: 1px solid #e8e8e8; white-space: nowrap; vertical-align: top;">${trace.nickName || '-'}</td>
<td style="padding: 8px; border: 1px solid #e8e8e8; white-space: nowrap; vertical-align: top;">${trace.phoneNumber || '-'}</td> <td style="padding: 8px; border: 1px solid #e8e8e8; white-space: nowrap; vertical-align: top;">${trace.phoneNumber || '-'}</td>
<td style="padding: 8px; border: 1px solid #e8e8e8; vertical-align: top;"> <td style="padding: 8px; border: 1px solid #e8e8e8; vertical-align: top;">
@ -2903,7 +2905,7 @@
<td style="padding: 8px; border: 1px solid #e8e8e8; white-space: nowrap; vertical-align: top;">${trace.responseTime || '-'}</td> <td style="padding: 8px; border: 1px solid #e8e8e8; white-space: nowrap; vertical-align: top;">${trace.responseTime || '-'}</td>
<td style="padding: 8px; border: 1px solid #e8e8e8; white-space: nowrap; vertical-align: top;">${trace.managerName || '-'}</td> <td style="padding: 8px; border: 1px solid #e8e8e8; white-space: nowrap; vertical-align: top;">${trace.managerName || '-'}</td>
<td style="padding: 8px; border: 1px solid #e8e8e8; white-space: nowrap; vertical-align: top;"> <td style="padding: 8px; border: 1px solid #e8e8e8; white-space: nowrap; vertical-align: top;">
${!isAdmin ? `<button onclick="applyCustomer('${trace.userId || ''}', '${trace.nickName || ''}', this, '${traces[index].id || ''}'); event.stopPropagation();" style="padding: 4px 8px; background-color: #722ed1; color: white; border: none; border-radius: 4px; font-size: 12px;">申请</button>` : '-'} ${!isAdmin ? `<button onclick="applyCustomer('${trace.userId || ''}', '${trace.nickName || ''}', this, '${trace.traceId || ''}'); event.stopPropagation();" style="padding: 4px 8px; background-color: #722ed1; color: white; border: none; border-radius: 4px; font-size: 12px;">申请</button>` : '-'}
</td> </td>
</tr> </tr>
`).join('')} `).join('')}
@ -4125,8 +4127,8 @@
<thead> <thead>
<tr style="background-color: #f5f5f5;"> <tr style="background-color: #f5f5f5;">
<th style="padding: 12px; border: 1px solid #e8e8e8; text-align: left;">申请ID</th> <th style="padding: 12px; border: 1px solid #e8e8e8; text-align: left;">申请ID</th>
<th style="padding: 12px; border: 1px solid #e8e8e8; text-align: left;">客户ID</th> <th style="padding: 12px; border: 1px solid #e8e8e8; text-align: left;">电话号码</th>
<th style="padding: 12px; border: 1px solid #e8e8e8; text-align: left;">业务员</th> <th style="padding: 12px; border: 1px solid #e8e8e8; text-align: left;">申请人</th>
<th style="padding: 12px; border: 1px solid #e8e8e8; text-align: left;">原负责人</th> <th style="padding: 12px; border: 1px solid #e8e8e8; text-align: left;">原负责人</th>
<th style="padding: 12px; border: 1px solid #e8e8e8; text-align: left;">申请时间</th> <th style="padding: 12px; border: 1px solid #e8e8e8; text-align: left;">申请时间</th>
<th style="padding: 12px; border: 1px solid #e8e8e8; text-align: left;">状态</th> <th style="padding: 12px; border: 1px solid #e8e8e8; text-align: left;">状态</th>
@ -4257,7 +4259,7 @@
<thead> <thead>
<tr style="background-color: #f5f5f5;"> <tr style="background-color: #f5f5f5;">
<th style="padding: 10px; border: 1px solid #e8e8e8; text-align: left; width: 80px; white-space: nowrap;">申请ID</th> <th style="padding: 10px; border: 1px solid #e8e8e8; text-align: left; width: 80px; white-space: nowrap;">申请ID</th>
<th style="padding: 10px; border: 1px solid #e8e8e8; text-align: left; width: 180px; white-space: nowrap;">客户ID</th> <th style="padding: 10px; border: 1px solid #e8e8e8; text-align: left; width: 180px; white-space: nowrap;">电话号码</th>
<th style="padding: 10px; border: 1px solid #e8e8e8; text-align: left; width: 140px; white-space: nowrap;">申请时间</th> <th style="padding: 10px; border: 1px solid #e8e8e8; text-align: left; width: 140px; white-space: nowrap;">申请时间</th>
<th style="padding: 10px; border: 1px solid #e8e8e8; text-align: left; width: 80px; white-space: nowrap;">状态</th> <th style="padding: 10px; border: 1px solid #e8e8e8; text-align: left; width: 80px; white-space: nowrap;">状态</th>
<th style="padding: 10px; border: 1px solid #e8e8e8; text-align: left; width: 140px; white-space: nowrap;">审批时间</th> <th style="padding: 10px; border: 1px solid #e8e8e8; text-align: left; width: 140px; white-space: nowrap;">审批时间</th>
@ -6388,7 +6390,7 @@
var row = ` var row = `
<tr> <tr>
<td style="padding: 10px; border: 1px solid #e8e8e8; white-space: nowrap;">${apply.id}</td> <td style="padding: 10px; border: 1px solid #e8e8e8; white-space: nowrap;">${apply.id}</td>
<td style="padding: 10px; border: 1px solid #e8e8e8; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">${apply.user_id}</td> <td style="padding: 10px; border: 1px solid #e8e8e8; white-space: nowrap;">${apply.phone || '-'}</td>
<td style="padding: 10px; border: 1px solid #e8e8e8;">${apply.sales_name}</td> <td style="padding: 10px; border: 1px solid #e8e8e8;">${apply.sales_name}</td>
<td style="padding: 10px; border: 1px solid #e8e8e8;">${apply.original_manager_name || '-'}</td> <td style="padding: 10px; border: 1px solid #e8e8e8;">${apply.original_manager_name || '-'}</td>
<td style="padding: 10px; border: 1px solid #e8e8e8; white-space: nowrap;">${formatDateTime(apply.apply_time)}</td> <td style="padding: 10px; border: 1px solid #e8e8e8; white-space: nowrap;">${formatDateTime(apply.apply_time)}</td>
@ -6527,7 +6529,7 @@
var row = ` var row = `
<tr> <tr>
<td style="padding: 10px; border: 1px solid #e8e8e8; white-space: nowrap;">${apply.id}</td> <td style="padding: 10px; border: 1px solid #e8e8e8; white-space: nowrap;">${apply.id}</td>
<td style="padding: 10px; border: 1px solid #e8e8e8; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">${apply.user_id}</td> <td style="padding: 10px; border: 1px solid #e8e8e8; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">${apply.phone || '-'}</td>
<td style="padding: 10px; border: 1px solid #e8e8e8; white-space: nowrap;">${formatDateTime(apply.apply_time)}</td> <td style="padding: 10px; border: 1px solid #e8e8e8; white-space: nowrap;">${formatDateTime(apply.apply_time)}</td>
<td style="padding: 10px; border: 1px solid #e8e8e8; white-space: nowrap;"> <td style="padding: 10px; border: 1px solid #e8e8e8; white-space: nowrap;">
<span style="display: inline-block; padding: 2px 8px; border-radius: 12px; font-size: 12px; color: white; background-color: ${statusColor};">${statusText}</span> <span style="display: inline-block; padding: 2px 8px; border-radius: 12px; font-size: 12px; color: white; background-color: ${statusColor};">${statusText}</span>

Loading…
Cancel
Save