|
|
@@ -96,6 +96,9 @@ public class SalesleadsServiceImpl implements ISalesleadsService {
|
|
|
if (add.getProjectType() == null || add.getProjectType().isEmpty()) {
|
|
|
add.setProjectType(CustomerConstants.PROJECT_TYPE_LEADS);
|
|
|
}
|
|
|
+ if (add.getStatus() == null || add.getStatus().isEmpty()) {
|
|
|
+ add.setStatus("0");
|
|
|
+ }
|
|
|
boolean success = baseMapper.insert(add) > 0;
|
|
|
if (success) {
|
|
|
// 确保主键已回填
|
|
|
@@ -175,7 +178,7 @@ public class SalesleadsServiceImpl implements ISalesleadsService {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 认领销售线索 - 设置项目负责人(支持批量)
|
|
|
+ * 认领销售线索 - 设置业务负责人(支持批量)
|
|
|
*/
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@@ -202,7 +205,7 @@ public class SalesleadsServiceImpl implements ISalesleadsService {
|
|
|
if (success) {
|
|
|
// 处理原负责人逻辑
|
|
|
if (oldData != null && oldData.getLeader() != null && !oldData.getLeader().equals(bo.getLeader())) {
|
|
|
- if (Boolean.TRUE.equals(bo.getKeepOldManager())) {
|
|
|
+ if (isKeepOldManager(bo)) {
|
|
|
// 保留:将原负责人降级为普通团队成员
|
|
|
demoteLeaderToMember(id, oldData.getLeader(), oldData.getLeaderName());
|
|
|
} else {
|
|
|
@@ -249,6 +252,25 @@ public class SalesleadsServiceImpl implements ISalesleadsService {
|
|
|
teamMemberService.insertOrUpdateMember(memberBo);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 判断是否需要保留原负责人为团队成员
|
|
|
+ */
|
|
|
+ private boolean isKeepOldManager(SalesleadsBo bo) {
|
|
|
+ if (bo == null) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (Boolean.TRUE.equals(bo.getKeepOldManager())) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ if (Boolean.TRUE.equals(bo.getKeepAsTeamMember())) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ if (bo.getKeepOldOwner() != null && bo.getKeepOldOwner() == 1) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 转移销售线索 - 更换负责人(支持批量)
|
|
|
*/
|
|
|
@@ -272,7 +294,7 @@ public class SalesleadsServiceImpl implements ISalesleadsService {
|
|
|
if (success) {
|
|
|
// 处理原负责人逻辑
|
|
|
if (oldData != null && oldData.getLeader() != null && !oldData.getLeader().equals(bo.getLeader())) {
|
|
|
- if (Boolean.TRUE.equals(bo.getKeepOldManager())) {
|
|
|
+ if (isKeepOldManager(bo)) {
|
|
|
// 保留:将原负责人降级为普通团队成员
|
|
|
demoteLeaderToMember(id, oldData.getLeader(), oldData.getLeaderName());
|
|
|
} else {
|
|
|
@@ -415,16 +437,22 @@ public class SalesleadsServiceImpl implements ISalesleadsService {
|
|
|
if (bo == null) {
|
|
|
return;
|
|
|
}
|
|
|
- if (!LoginHelper.isSuperAdmin()) {
|
|
|
- RemoteComStaffVo staffVo = remoteComStaffService.selectStaffByUserId(LoginHelper.getUserId());
|
|
|
- Long staffId = (staffVo != null && staffVo.getStaffId() != null) ? staffVo.getStaffId() : -1L;
|
|
|
- if (bo.getParams() == null) {
|
|
|
- bo.setParams(new java.util.HashMap<>());
|
|
|
- }
|
|
|
- bo.getParams().put("currentUserId", staffId);
|
|
|
- bo.getParams().put("restrictToUser", true);
|
|
|
- bo.getParams().put("tabType", bo.getTabType());
|
|
|
+ boolean isSuperAdmin = LoginHelper.isSuperAdmin();
|
|
|
+ String tabType = bo.getTabType();
|
|
|
+
|
|
|
+ // 如果是超级管理员,并且没有指定特定选项卡过滤,则不加任何限制
|
|
|
+ if (isSuperAdmin && (tabType == null || "all".equals(tabType) || tabType.isEmpty())) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ RemoteComStaffVo staffVo = remoteComStaffService.selectStaffByUserId(LoginHelper.getUserId());
|
|
|
+ Long staffId = (staffVo != null && staffVo.getStaffId() != null) ? staffVo.getStaffId() : -1L;
|
|
|
+ if (bo.getParams() == null) {
|
|
|
+ bo.setParams(new java.util.HashMap<>());
|
|
|
}
|
|
|
+ bo.getParams().put("currentUserId", staffId);
|
|
|
+ bo.getParams().put("restrictToUser", true);
|
|
|
+ bo.getParams().put("tabType", tabType);
|
|
|
}
|
|
|
|
|
|
}
|