|
@@ -26,8 +26,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.List;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -40,20 +39,59 @@ import java.util.stream.Collectors;
|
|
|
*/
|
|
|
@Service
|
|
|
public class RoleAssignRecordServiceImpl extends ServiceImpl<RoleAssignRecordMapper, RoleAssignRecord> implements IRoleAssignRecordService {
|
|
|
+
|
|
|
+ @DubboReference(providedBy = ErpServer.SERVER_DUBBO_NAME)
|
|
|
+ private ISysUserRpc sysUserRpc;
|
|
|
+
|
|
|
@Autowired
|
|
|
private IAgentService agentService;
|
|
|
+
|
|
|
@Autowired
|
|
|
private IGameService gameService;
|
|
|
- @Autowired
|
|
|
- private IUserService userService;
|
|
|
+
|
|
|
@Autowired
|
|
|
private IGameServerService gameServerService;
|
|
|
+
|
|
|
@Autowired
|
|
|
private IGameUserRoleService gameUserRoleService;
|
|
|
+
|
|
|
@Autowired
|
|
|
private IRoleOperateService roleOperateService;
|
|
|
- @DubboReference(providedBy = ErpServer.SERVER_DUBBO_NAME)
|
|
|
- private ISysUserRpc sysUserRpc;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void updateStatusSync() {
|
|
|
+ List<RoleAssignRecord> recordList = super.list();
|
|
|
+ //数据分组
|
|
|
+ Map<String, List<RoleAssignRecord>> map = new HashMap<>();
|
|
|
+ recordList.forEach(record -> {
|
|
|
+ String key = record.getGameId() + "_" + record.getServerId() + "_" + record.getRoleId();
|
|
|
+ if (map.containsKey(key)) {
|
|
|
+ map.get(key).add(record);
|
|
|
+ } else {
|
|
|
+ List<RoleAssignRecord> list = new ArrayList<>();
|
|
|
+ list.add(record);
|
|
|
+ map.put(key, list);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ //循环处理
|
|
|
+ map.forEach((key, list) -> {
|
|
|
+ //排序
|
|
|
+ list.sort(Comparator.comparing(RoleAssignRecord::getStartTime));
|
|
|
+ //循环判断
|
|
|
+ Long tempGsId = null;
|
|
|
+ Long tempOperUserId = null;
|
|
|
+ Long tempCustomerServiceId = null;
|
|
|
+ for (RoleAssignRecord r : list) {
|
|
|
+ r.setIsGsUpdate(!Objects.equals(r.getGsId(), tempGsId));
|
|
|
+ r.setIsOperUpdate(!Objects.equals(r.getOperUserId(), tempOperUserId));
|
|
|
+ r.setIsCustomerUpdate(!Objects.equals(r.getCustomerServiceId(), tempCustomerServiceId));
|
|
|
+ tempGsId = r.getGsId();
|
|
|
+ tempOperUserId = r.getOperUserId();
|
|
|
+ tempCustomerServiceId = r.getCustomerServiceId();
|
|
|
+ }
|
|
|
+ super.updateBatchById(list);
|
|
|
+ });
|
|
|
+ }
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@@ -75,6 +113,9 @@ public class RoleAssignRecordServiceImpl extends ServiceImpl<RoleAssignRecordMap
|
|
|
.customerServiceId(param.getCustomerServiceId())
|
|
|
.operUserId(param.getOperUserId())
|
|
|
.remark(param.getRemark())
|
|
|
+ .isGsUpdate(lastAssignRecord == null ? Boolean.TRUE : param.getGsId() != null && !Objects.equals(param.getGsId(), lastAssignRecord.getGsId()))
|
|
|
+ .isOperUpdate(lastAssignRecord == null ? Boolean.TRUE : param.getOperUserId() != null && !Objects.equals(param.getOperUserId(), lastAssignRecord.getOperUserId()))
|
|
|
+ .isCustomerUpdate(lastAssignRecord == null ? Boolean.TRUE : param.getCustomerServiceId() != null && !Objects.equals(param.getCustomerServiceId(), lastAssignRecord.getCustomerServiceId()))
|
|
|
.createBy(sysUserId)
|
|
|
.createTime(now)
|
|
|
.updateBy(sysUserId)
|
|
@@ -91,9 +132,16 @@ public class RoleAssignRecordServiceImpl extends ServiceImpl<RoleAssignRecordMap
|
|
|
lastAssignRecord.setUpdateBy(sysUserId);
|
|
|
lastAssignRecord.setUpdateTime(now);
|
|
|
if (compare == 0) {
|
|
|
- lastAssignRecord.setCustomerServiceId(param.getCustomerServiceId());
|
|
|
+ //上一条记录
|
|
|
+ RoleAssignRecord previousAssignRecord = previousAssignRecord(lastAssignRecord, param.getStartTime());
|
|
|
+ //记录是否变更参数
|
|
|
+ lastAssignRecord.setIsGsUpdate(previousAssignRecord == null ? Boolean.TRUE : param.getGsId() != null && !Objects.equals(param.getGsId(), previousAssignRecord.getGsId()));
|
|
|
+ lastAssignRecord.setIsOperUpdate(previousAssignRecord == null ? Boolean.TRUE : param.getOperUserId() != null && !Objects.equals(param.getOperUserId(), previousAssignRecord.getOperUserId()));
|
|
|
+ lastAssignRecord.setIsCustomerUpdate(previousAssignRecord == null ? Boolean.TRUE : param.getCustomerServiceId() != null && !Objects.equals(param.getCustomerServiceId(), previousAssignRecord.getCustomerServiceId()));
|
|
|
+ //参数变更
|
|
|
lastAssignRecord.setGsId(param.getGsId());
|
|
|
lastAssignRecord.setOperUserId(param.getOperUserId());
|
|
|
+ lastAssignRecord.setCustomerServiceId(param.getCustomerServiceId());
|
|
|
lastAssignRecord.setRemark(param.getRemark());
|
|
|
} else {
|
|
|
lastAssignRecord.setEndTime(param.getStartTime());
|
|
@@ -108,7 +156,6 @@ public class RoleAssignRecordServiceImpl extends ServiceImpl<RoleAssignRecordMap
|
|
|
if (CollectionUtils.isNotEmpty(insertAssignRecordList)) {
|
|
|
saveBatch(insertAssignRecordList);
|
|
|
}
|
|
|
-
|
|
|
//角色操作表更新
|
|
|
List<RoleOperate> roleOperateList = param.getRoleInfoAndAgentParamList().stream()
|
|
|
.map(this::getModifyRoleOperate).collect(Collectors.toList());
|
|
@@ -122,6 +169,9 @@ public class RoleAssignRecordServiceImpl extends ServiceImpl<RoleAssignRecordMap
|
|
|
LocalDateTime now = LocalDateTime.now();
|
|
|
RoleAssignRecord changeRecord = getById(param.getId());
|
|
|
RoleAssignRecord previousAssignRecord = previousAssignRecord(changeRecord, param.getStartTime());
|
|
|
+ changeRecord.setIsCustomerUpdate(previousAssignRecord == null ? Boolean.TRUE : param.getCustomerServiceId() != null && !Objects.equals(param.getCustomerServiceId(), previousAssignRecord.getCustomerServiceId()));
|
|
|
+ changeRecord.setIsOperUpdate(previousAssignRecord == null ? Boolean.TRUE : param.getOperUserId() != null && !Objects.equals(param.getOperUserId(), previousAssignRecord.getOperUserId()));
|
|
|
+ changeRecord.setIsGsUpdate(previousAssignRecord == null ? Boolean.TRUE : param.getGsId() != null && !Objects.equals(param.getGsId(), previousAssignRecord.getGsId()));
|
|
|
changeRecord.setStartTime(param.getStartTime());
|
|
|
changeRecord.setOperUserId(param.getOperUserId());
|
|
|
changeRecord.setGsId(param.getGsId());
|
|
@@ -156,7 +206,7 @@ public class RoleAssignRecordServiceImpl extends ServiceImpl<RoleAssignRecordMap
|
|
|
public IPage<RoleAssignRecordListVO> listOfPage(RoleAssignRecordListParam param) {
|
|
|
Agent agent = agentService.getById(param.getRegAgentId());
|
|
|
GameDTO game = gameService.getById(param.getGameId());
|
|
|
- Long superGameId = null == game.getSuperGameId() ? param.getGameId():game.getSuperGameId();
|
|
|
+ Long superGameId = null == game.getSuperGameId() ? param.getGameId() : game.getSuperGameId();
|
|
|
GameServer gameServer = gameServerService.getOne(new LambdaQueryWrapper<GameServer>()
|
|
|
.eq(GameServer::getGameId, superGameId)
|
|
|
.eq(GameServer::getServerId, param.getServerId()));
|