...
|
...
|
@@ -27,6 +27,7 @@ import org.springframework.transaction.annotation.Transactional; |
|
|
import javax.annotation.Resource;
|
|
|
import java.io.IOException;
|
|
|
import java.net.URISyntaxException;
|
|
|
import java.util.Arrays;
|
|
|
import java.util.List;
|
|
|
import java.util.concurrent.TimeoutException;
|
|
|
|
...
|
...
|
@@ -220,14 +221,112 @@ public class UserInfoServiceImpl implements UserInfoService { |
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
|
|
|
public ResultJson updateByPrimaryKeySelective(UserInfo userInfo)
|
|
|
{
|
|
|
if (StringUtil.isNullOrEmpty(userInfo.getId())) {
|
|
|
String id = userInfo.getId();
|
|
|
String username = userInfo.getUsername();
|
|
|
String serverName = userInfo.getServerName();
|
|
|
String virtualHostId = userInfo.getVirtualHostId();
|
|
|
String div = ",";
|
|
|
|
|
|
if (StringUtil.isNullOrEmpty(id) || StringUtil.isNullOrEmpty(username) || StringUtil.isNullOrEmpty(serverName)) {
|
|
|
return new ResultJson<>("400", "该用户不存在");
|
|
|
}
|
|
|
ResultJson validateResult = validateUser(userInfo);
|
|
|
int num = userInfoMapper.updateByPrimaryKeySelective(userInfo);
|
|
|
|
|
|
// id是1个
|
|
|
if (!id.contains(div)) {
|
|
|
// 根据id,获取到没有选择之前的详细信息
|
|
|
UserInfo oldUserInfo = userInfoMapper.selectByPrimaryKey(id);
|
|
|
String oldVirtualHostId = oldUserInfo.getVirtualHostId();
|
|
|
// id是1个,虚拟主机id是1个
|
|
|
if (!virtualHostId.contains(div)) {
|
|
|
if (virtualHostId.equals(oldVirtualHostId)) {
|
|
|
return new ResultJson<>("200", "修改用户信息,成功");
|
|
|
} else {
|
|
|
userInfo.setVirtualHostId(virtualHostId);
|
|
|
userInfo.setVirtualHostName(virtualHostService.selectByPrimaryKey(virtualHostId).getVirtualHostName());
|
|
|
return userInfoMapper.updateByPrimaryKeySelective(userInfo) > 0
|
|
|
? new ResultJson<>("200", "修改用户信息,成功")
|
|
|
: new ResultJson<>("500", "修改用户信息,失败");
|
|
|
}
|
|
|
}
|
|
|
// id是1个,虚拟主机id是多个
|
|
|
else {
|
|
|
int num = 0;
|
|
|
String[] vHostIds = virtualHostId.split(div);
|
|
|
List<String> vHostIdList = Arrays.asList(vHostIds);
|
|
|
|
|
|
// 选择的虚拟主机id,包含原来的id
|
|
|
if (vHostIdList.contains(oldVirtualHostId)) {
|
|
|
for (String vHostId : vHostIdList) {
|
|
|
if (vHostId.equals(oldVirtualHostId)) {
|
|
|
continue;
|
|
|
}
|
|
|
VirtualHost virtualHost = virtualHostService.selectByPrimaryKey(vHostId);
|
|
|
if (virtualHost == null) {
|
|
|
continue;
|
|
|
}
|
|
|
userInfo.setId(IdUtils.generateId());
|
|
|
userInfo.setVirtualHostId(vHostId);
|
|
|
userInfo.setVirtualHostName(virtualHostService.selectByPrimaryKey(vHostId).getVirtualHostName());
|
|
|
num += userInfoMapper.insertSelective(userInfo);
|
|
|
}
|
|
|
return num > 0 ? new ResultJson<>("200", "修改用户信息,成功")
|
|
|
: new ResultJson<>("500", "修改用户信息,失败");
|
|
|
} else {
|
|
|
for (String vHostId : vHostIdList) {
|
|
|
VirtualHost virtualHost = virtualHostService.selectByPrimaryKey(vHostId);
|
|
|
if (virtualHost == null) {
|
|
|
continue;
|
|
|
}
|
|
|
userInfo.setId(IdUtils.generateId());
|
|
|
userInfo.setVirtualHostId(vHostId);
|
|
|
userInfo.setVirtualHostName(virtualHostService.selectByPrimaryKey(vHostId).getVirtualHostName());
|
|
|
num += userInfoMapper.insertSelective(userInfo);
|
|
|
}
|
|
|
userInfoMapper.deleteByPrimaryKey(id);
|
|
|
return num > 0 ? new ResultJson<>("200", "修改用户信息,成功")
|
|
|
: new ResultJson<>("500", "修改用户信息,失败");
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// id是多个
|
|
|
List<UserInfo> userInfoList = userInfoMapper.selectByUsernameAndServerName(username, serverName);
|
|
|
int num = 0;
|
|
|
// 虚拟主机id是一个
|
|
|
if (!virtualHostId.contains(div)) {
|
|
|
String[] deleteIds = new String[userInfoList.size()];
|
|
|
for (int i = 0; i < userInfoList.size(); i++) {
|
|
|
deleteIds[i] = userInfoList.get(i).getId();
|
|
|
}
|
|
|
userInfoMapper.batchRemoveByIds(deleteIds);
|
|
|
userInfo.setId(IdUtils.generateId());
|
|
|
userInfo.setVirtualHostId(virtualHostId);
|
|
|
userInfo.setVirtualHostName(virtualHostService.selectByPrimaryKey(virtualHostId).getVirtualHostName());
|
|
|
num = userInfoMapper.insertSelective(userInfo);
|
|
|
}
|
|
|
// 虚拟主机id是多个
|
|
|
else {
|
|
|
String[] deleteIds = new String[userInfoList.size()];
|
|
|
for (int i = 0; i < userInfoList.size(); i++) {
|
|
|
deleteIds[i] = userInfoList.get(i).getId();
|
|
|
}
|
|
|
userInfoMapper.batchRemoveByIds(deleteIds);
|
|
|
|
|
|
String[] virtualHostIds = virtualHostId.split(div);
|
|
|
for (int i = 0; i < virtualHostIds.length; i++) {
|
|
|
VirtualHost virtualHost = virtualHostService.selectByPrimaryKey(virtualHostIds[i]);
|
|
|
if (virtualHost == null) {
|
|
|
continue;
|
|
|
}
|
|
|
userInfo.setId(IdUtils.generateId());
|
|
|
userInfo.setVirtualHostId(virtualHostIds[i]);
|
|
|
userInfo.setVirtualHostName(virtualHost.getVirtualHostName());
|
|
|
num += userInfoMapper.insertSelective(userInfo);
|
|
|
}
|
|
|
}
|
|
|
return num > 0
|
|
|
? new ResultJson<>("200", "修改用户信息,成功")
|
|
|
: new ResultJson<>("500", "修改用户信息,失败");
|
...
|
...
|
|