| 
					
				 | 
			
			
				@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.baomidou.mybatisplus.core.metadata.IPage; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.baomidou.mybatisplus.core.toolkit.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.zanxiang.corp.base.pojo.entity.CorpUserChangeRecord; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.zanxiang.erp.base.ErpServer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.zanxiang.erp.base.rpc.ISysUserRpc; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.zanxiang.erp.security.util.SecurityUtil; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -190,41 +191,55 @@ public class RoleAssignRecordServiceImpl extends ServiceImpl<RoleAssignRecordMap 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         .startTime(item.getStartTime()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         .endTime(item.getEndTime()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         .gsId(item.getGsId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        .gsName(getNickname(item.getGsId())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        .gsName(null == item.getGsId() ? null : getNickname(item.getGsId())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         .operUserId(item.getOperUserId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        .operUserName(getNickname(item.getOperUserId())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        .operUserName(null == item.getOperUserId() ? null : getNickname(item.getOperUserId())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         .customerServiceId(item.getCustomerServiceId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        .customerServiceName(getNickname(item.getCustomerServiceId())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        .customerServiceName(null == item.getCustomerServiceId() ? null : getNickname(item.getCustomerServiceId())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         .remark(item.getRemark()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         .createBy(item.getCreateBy()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        .createName(getNickname(item.getCreateBy())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        .createName(null == item.getCreateBy() ? null : getNickname(item.getCreateBy())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         .createTime(item.getCreateTime()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         .updateBy(item.getUpdateBy()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        .updateName(getNickname(item.getUpdateBy())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        .updateName(null == item.getUpdateBy() ? null : getNickname(item.getUpdateBy())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         .updateTime(item.getUpdateTime()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         .build()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Transactional(rollbackFor = Exception.class) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public boolean deleteByIds(List<Long> ids) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public boolean deleteById(Long id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Long sysUserId = SecurityUtil.getUserId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         LocalDateTime now = LocalDateTime.now(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        RoleAssignRecord changeRecord = getById(id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        RoleAssignRecord nextRecord = getNextRecord(changeRecord, changeRecord.getStartTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        RoleInfoAndAgentParam roleInfoAndAgentParam = RoleInfoAndAgentParam.builder() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .regAgentId(changeRecord.getRegAgentId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .gameId(changeRecord.getGameId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .serverId(changeRecord.getServerId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .userId(changeRecord.getUserId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .roleId(changeRecord.getRoleId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .build(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        RoleAssignRecord previousRecord = previousAssignRecord(changeRecord, changeRecord.getStartTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (previousRecord != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (nextRecord != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                update(new LambdaUpdateWrapper<RoleAssignRecord>() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        .set(RoleAssignRecord::getEndTime, nextRecord.getStartTime()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        .eq(RoleAssignRecord::getId, previousRecord.getId())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                update(new LambdaUpdateWrapper<RoleAssignRecord>() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        .set(RoleAssignRecord::getEndTime, null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        .eq(RoleAssignRecord::getId, previousRecord.getId())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         update(new LambdaUpdateWrapper<RoleAssignRecord>() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .set(RoleAssignRecord::getIsDelete, 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .set(RoleAssignRecord::getUpdateBy, sysUserId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .set(RoleAssignRecord::getUpdateTime, now) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .in(RoleAssignRecord::getId, ids)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<RoleAssignRecord> roleAssignRecordList = listByIds(ids); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (CollectionUtils.isNotEmpty(roleAssignRecordList)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            RoleAssignRecord roleAssignRecord = roleAssignRecordList.get(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            RoleInfoAndAgentParam roleInfoAndAgentParam = RoleInfoAndAgentParam.builder() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .regAgentId(roleAssignRecord.getRegAgentId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .gameId(roleAssignRecord.getGameId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .serverId(roleAssignRecord.getServerId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .userId(roleAssignRecord.getUserId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .roleId(roleAssignRecord.getRoleId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .build(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .eq(RoleAssignRecord::getId, id)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        RoleAssignRecord roleAssignRecord = getById(id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (null != roleAssignRecord) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             RoleOperate modifyRoleOperate = getModifyRoleOperate(roleInfoAndAgentParam); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return roleOperateService.saveOrUpdate(modifyRoleOperate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -261,7 +276,7 @@ public class RoleAssignRecordServiceImpl extends ServiceImpl<RoleAssignRecordMap 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .eq(RoleAssignRecord::getServerId, item.getServerId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .eq(RoleAssignRecord::getUserId, item.getUserId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .eq(RoleAssignRecord::getRoleId, item.getRoleId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .le(RoleAssignRecord::getStartTime, startTime) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .lt(RoleAssignRecord::getStartTime, startTime) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .orderByDesc(RoleAssignRecord::getStartTime) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .eq(RoleAssignRecord::getIsDelete, 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .last("limit 1")); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -279,7 +294,7 @@ public class RoleAssignRecordServiceImpl extends ServiceImpl<RoleAssignRecordMap 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .eq(RoleAssignRecord::getServerId, item.getServerId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .eq(RoleAssignRecord::getUserId, item.getUserId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .eq(RoleAssignRecord::getRoleId, item.getRoleId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .ge(RoleAssignRecord::getStartTime, startTime) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .gt(RoleAssignRecord::getStartTime, startTime) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .orderByAsc(RoleAssignRecord::getStartTime) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .eq(RoleAssignRecord::getIsDelete, 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .last("limit 1") 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -296,25 +311,25 @@ public class RoleAssignRecordServiceImpl extends ServiceImpl<RoleAssignRecordMap 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         LocalDateTime now = LocalDateTime.now(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         RoleOperate roleOperate = RoleOperate.builder().build(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         RoleOperate queryOne = roleOperateService.getOne(new LambdaQueryWrapper<RoleOperate>() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .eq(RoleOperate::getGameId, lastAssignRecord.getGameId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .eq(RoleOperate::getServerId, lastAssignRecord.getServerId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .eq(RoleOperate::getUserId, lastAssignRecord.getUserId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .eq(RoleOperate::getRoleId, lastAssignRecord.getRoleId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .eq(RoleOperate::getGameId, roleInfoAndAgentParam.getGameId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .eq(RoleOperate::getServerId, roleInfoAndAgentParam.getServerId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .eq(RoleOperate::getUserId, roleInfoAndAgentParam.getUserId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .eq(RoleOperate::getRoleId, roleInfoAndAgentParam.getRoleId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .eq(RoleOperate::getIsDelete, 0)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (null == queryOne) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            roleOperate.setGameId(lastAssignRecord.getGameId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            roleOperate.setServerId(lastAssignRecord.getServerId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            roleOperate.setUserId(lastAssignRecord.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            roleOperate.setRoleId(lastAssignRecord.getRoleId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            roleOperate.setGameId(roleInfoAndAgentParam.getGameId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            roleOperate.setServerId(roleInfoAndAgentParam.getServerId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            roleOperate.setUserId(roleInfoAndAgentParam.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            roleOperate.setRoleId(roleInfoAndAgentParam.getRoleId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             roleOperate.setCreateBy(sysUserId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             roleOperate.setCreateTime(now); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             roleOperate = queryOne; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        roleOperate.setGsId(lastAssignRecord.getGsId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        roleOperate.setCustomerServiceId(lastAssignRecord.getCustomerServiceId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        roleOperate.setOperUserId(lastAssignRecord.getOperUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        roleOperate.setRemark(lastAssignRecord.getRemark()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        roleOperate.setGsId(null == lastAssignRecord ? null : lastAssignRecord.getGsId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        roleOperate.setCustomerServiceId(null == lastAssignRecord ? null : lastAssignRecord.getCustomerServiceId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        roleOperate.setOperUserId(null == lastAssignRecord ? null : lastAssignRecord.getOperUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        roleOperate.setRemark(null == lastAssignRecord ? null : lastAssignRecord.getRemark()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         roleOperate.setUpdateBy(sysUserId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         roleOperate.setUpdateTime(now); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return roleOperate; 
			 |