|  | @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 | 
											
												
													
														|  |  import com.baomidou.mybatisplus.core.metadata.IPage;
 |  |  import com.baomidou.mybatisplus.core.metadata.IPage;
 | 
											
												
													
														|  |  import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 |  |  import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 | 
											
												
													
														|  |  import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 |  |  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.ErpServer;
 | 
											
												
													
														|  |  import com.zanxiang.erp.base.rpc.ISysUserRpc;
 |  |  import com.zanxiang.erp.base.rpc.ISysUserRpc;
 | 
											
												
													
														|  |  import com.zanxiang.erp.security.util.SecurityUtil;
 |  |  import com.zanxiang.erp.security.util.SecurityUtil;
 | 
											
										
											
												
													
														|  | @@ -207,24 +208,38 @@ public class RoleAssignRecordServiceImpl extends ServiceImpl<RoleAssignRecordMap
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      @Override
 |  |      @Override
 | 
											
												
													
														|  |      @Transactional(rollbackFor = Exception.class)
 |  |      @Transactional(rollbackFor = Exception.class)
 | 
											
												
													
														|  | -    public boolean deleteByIds(List<Long> ids) {
 |  | 
 | 
											
												
													
														|  | 
 |  | +    public boolean deleteById(Long id) {
 | 
											
												
													
														|  |          Long sysUserId = SecurityUtil.getUserId();
 |  |          Long sysUserId = SecurityUtil.getUserId();
 | 
											
												
													
														|  |          LocalDateTime now = LocalDateTime.now();
 |  |          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 lastRecord = lastAssignRecord(roleInfoAndAgentParam);
 | 
											
												
													
														|  | 
 |  | +        if (lastRecord != null) {
 | 
											
												
													
														|  | 
 |  | +            if (nextRecord != null) {
 | 
											
												
													
														|  | 
 |  | +                update(new LambdaUpdateWrapper<RoleAssignRecord>()
 | 
											
												
													
														|  | 
 |  | +                        .set(RoleAssignRecord::getEndTime, nextRecord.getStartTime())
 | 
											
												
													
														|  | 
 |  | +                        .eq(RoleAssignRecord::getId, lastRecord.getId()));
 | 
											
												
													
														|  | 
 |  | +            } else {
 | 
											
												
													
														|  | 
 |  | +                update(new LambdaUpdateWrapper<RoleAssignRecord>()
 | 
											
												
													
														|  | 
 |  | +                        .set(RoleAssignRecord::getEndTime, null)
 | 
											
												
													
														|  | 
 |  | +                        .eq(RoleAssignRecord::getId, lastRecord.getId()));
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |          update(new LambdaUpdateWrapper<RoleAssignRecord>()
 |  |          update(new LambdaUpdateWrapper<RoleAssignRecord>()
 | 
											
												
													
														|  |                  .set(RoleAssignRecord::getIsDelete, 1)
 |  |                  .set(RoleAssignRecord::getIsDelete, 1)
 | 
											
												
													
														|  |                  .set(RoleAssignRecord::getUpdateBy, sysUserId)
 |  |                  .set(RoleAssignRecord::getUpdateBy, sysUserId)
 | 
											
												
													
														|  |                  .set(RoleAssignRecord::getUpdateTime, now)
 |  |                  .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);
 |  |              RoleOperate modifyRoleOperate = getModifyRoleOperate(roleInfoAndAgentParam);
 | 
											
												
													
														|  |              return roleOperateService.saveOrUpdate(modifyRoleOperate);
 |  |              return roleOperateService.saveOrUpdate(modifyRoleOperate);
 | 
											
												
													
														|  |          }
 |  |          }
 |