|  | @@ -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;
 |