|
@@ -4,6 +4,11 @@ import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.stream.Collectors;
|
|
|
import javax.validation.Validator;
|
|
|
+
|
|
|
+import com.slibra.business.domain.CAgent;
|
|
|
+import com.slibra.business.domain.CAgentMonitor;
|
|
|
+import com.slibra.business.mapper.CAgentMapper;
|
|
|
+import com.slibra.business.mapper.CAgentMonitorMapper;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -31,6 +36,7 @@ import com.slibra.system.service.ISysConfigService;
|
|
|
import com.slibra.system.service.ISysUserService;
|
|
|
|
|
|
import static com.slibra.common.constant.MyConstants.LOGIN_TYPE_APPEND;
|
|
|
+import static com.slibra.common.constant.MyConstants.SAAS_ID;
|
|
|
|
|
|
/**
|
|
|
* 用户 业务层处理
|
|
@@ -63,6 +69,12 @@ public class SysUserServiceImpl implements ISysUserService
|
|
|
@Autowired
|
|
|
protected Validator validator;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private CAgentMapper cAgentMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private CAgentMonitorMapper cagentMonitorMapper;
|
|
|
+
|
|
|
/**
|
|
|
* 根据条件分页查询用户列表
|
|
|
*
|
|
@@ -302,9 +314,46 @@ public class SysUserServiceImpl implements ISysUserService
|
|
|
userPostMapper.deleteUserPostByUserId(userId);
|
|
|
// 新增用户与岗位管理
|
|
|
insertUserPost(user);
|
|
|
+ //2024年11月25日10:51:14 在分配用户角色的时候,如果角色包含”坐席“,那么需要额外保存到数据库中2条坐席相关的记录
|
|
|
+ addZuoXi(user);
|
|
|
return userMapper.updateUser(user);
|
|
|
}
|
|
|
|
|
|
+ private void addZuoXi( SysUser user) {
|
|
|
+ Long[] roleIds = user.getRoleIds();
|
|
|
+ boolean isZuoXi = false;
|
|
|
+ if(StringUtils.isNotEmpty(roleIds)){
|
|
|
+ for (Long roleId : roleIds) {
|
|
|
+ if(SysUser.isZuoXi(roleId)){
|
|
|
+ isZuoXi = true;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(isZuoXi){
|
|
|
+ log.info("当前更新用户的时候,所携带的角色包含坐席的角色");
|
|
|
+ Long userId = user.getUserId();
|
|
|
+ //先去判断在坐席里面,是否已经关联过用户了,如果关联过了,就不需要再增加
|
|
|
+ if(!CollectionUtils.isEmpty(this.cAgentMapper.selectCAgentList(CAgent.builder().userId(userId).build()))){
|
|
|
+ log.info("用户ID{}已经绑定过坐席了,无需重复添加", userId);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ //没有添加过 添加坐席和坐席监控,并在坐席里插入用户的ID、姓名、密码字段
|
|
|
+ //查询最大的坐席工号 (SQL兜底,有默认值)
|
|
|
+ String maxNum = this.cAgentMapper.selectMaxNum();
|
|
|
+ String agentNum = String.valueOf(Long.parseLong(maxNum) + 1);
|
|
|
+ //坐席对象
|
|
|
+ CAgent cAgent = CAgent.builder().saasId(SAAS_ID).agentNum(agentNum).agentName(user.getNickName()).outId(agentNum).agentPwd(user.getPassword()).phoneNum(agentNum).userId(userId).build();
|
|
|
+ //插入坐席
|
|
|
+ this.cAgentMapper.insertCAgent(cAgent);
|
|
|
+ //坐席监控对象
|
|
|
+ CAgentMonitor cAgentMonitor = CAgentMonitor.builder().saasId(SAAS_ID).agentNum(agentNum).outId(agentNum).build();
|
|
|
+ //插入坐席监控
|
|
|
+ this.cagentMonitorMapper.insertCAgentMonitor(cAgentMonitor);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 用户授权角色
|
|
|
*
|