|
@@ -3,6 +3,7 @@ package com.qmth.teachcloud.common.service.impl;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.qmth.teachcloud.common.bean.params.UserPushParam;
|
|
|
+import com.qmth.teachcloud.common.contant.SystemConstant;
|
|
|
import com.qmth.teachcloud.common.entity.PushUserTrack;
|
|
|
import com.qmth.teachcloud.common.entity.SysPrivilege;
|
|
|
import com.qmth.teachcloud.common.entity.SysRolePrivilege;
|
|
@@ -63,11 +64,26 @@ public class PushUserTrackServiceImpl extends ServiceImpl<PushUserTrackMapper, P
|
|
|
Set<Long> priIds = sysRolePrivilegeList.stream().map(SysRolePrivilege::getPrivilegeId).collect(Collectors.toSet());
|
|
|
if (priIds.size() > 0) {
|
|
|
PushUserTrack markerTrack = new PushUserTrack();
|
|
|
+ PushUserTrack headerTrack = new PushUserTrack();
|
|
|
+ // 直接查轨迹表的数据
|
|
|
+ List<PushUserTrack> specialUserTrack = this.list(new QueryWrapper<PushUserTrack>().lambda().eq(PushUserTrack::getUserId, userId));
|
|
|
+ if (specialUserTrack.size() > 0){
|
|
|
+ List<PushUserTrack> markerTrackList = specialUserTrack.stream().filter(e -> SpecialPrivilegeEnum.MARKER.equals(e.getIdentify())).sorted(Comparator.comparing(PushUserTrack::getCreateTime).reversed()).limit(1).collect(Collectors.toList());
|
|
|
+ List<PushUserTrack> headerTrackList = specialUserTrack.stream().filter(e -> SpecialPrivilegeEnum.SUBJECT_HEADER.equals(e.getIdentify())).sorted(Comparator.comparing(PushUserTrack::getCreateTime).reversed()).limit(1).collect(Collectors.toList());
|
|
|
+ if (markerTrackList.size() == 1){
|
|
|
+ markerTrack = markerTrackList.get(0);
|
|
|
+ }
|
|
|
+ if (headerTrackList.size() == 1){
|
|
|
+ headerTrack = headerTrackList.get(0);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
markerTrack.setUserId(userId);
|
|
|
markerTrack.setSchoolId(currentUser.getSchoolId());
|
|
|
markerTrack.setIdentify(SpecialPrivilegeEnum.MARKER);
|
|
|
|
|
|
- PushUserTrack headerTrack = new PushUserTrack();
|
|
|
+
|
|
|
headerTrack.setUserId(userId);
|
|
|
headerTrack.setSchoolId(currentUser.getSchoolId());
|
|
|
headerTrack.setIdentify(SpecialPrivilegeEnum.SUBJECT_HEADER);
|
|
@@ -120,11 +136,6 @@ public class PushUserTrackServiceImpl extends ServiceImpl<PushUserTrackMapper, P
|
|
|
List<PushUserTrack> specialUserCheck = this.list(new QueryWrapper<PushUserTrack>().lambda().eq(PushUserTrack::getUserId, userId));
|
|
|
if (specialUserCheck.size() > 0) {
|
|
|
// 该用户是特殊用户(就算现在不是曾经也是过)
|
|
|
- List<PushUserTrack> markerCheckList = specialUserCheck.stream().filter(e -> SpecialPrivilegeEnum.MARKER.equals(e.getIdentify())).sorted(Comparator.comparing(PushUserTrack::getCreateTime).reversed()).limit(1).collect(Collectors.toList());
|
|
|
- List<PushUserTrack> headerCheckList = specialUserCheck.stream().filter(e -> SpecialPrivilegeEnum.SUBJECT_HEADER.equals(e.getIdentify())).sorted(Comparator.comparing(PushUserTrack::getCreateTime).reversed()).limit(1).collect(Collectors.toList());
|
|
|
- if (markerCheckList.size() == 0 || headerCheckList.size() == 0) {
|
|
|
- throw ExceptionResultEnum.ERROR.exception("用户轨迹表数据异常");
|
|
|
- }
|
|
|
markerTrack.setOperate(UserPushTrackEnum.UNBIND);
|
|
|
headerTrack.setOperate(UserPushTrackEnum.UNBIND);
|
|
|
} else {
|
|
@@ -135,14 +146,26 @@ public class PushUserTrackServiceImpl extends ServiceImpl<PushUserTrackMapper, P
|
|
|
}
|
|
|
}
|
|
|
if (Objects.nonNull(markerTrack)) {
|
|
|
- markerTrack.insertInfo(requestUserId);
|
|
|
+ if (SystemConstant.longNotNull(markerTrack.getId())){
|
|
|
+ // 更新
|
|
|
+ markerTrack.updateInfo(requestUserId);
|
|
|
+ }else {
|
|
|
+ // 新增
|
|
|
+ markerTrack.insertInfo(requestUserId);
|
|
|
+ }
|
|
|
pushUserTrackList.add(markerTrack);
|
|
|
- this.save(markerTrack);
|
|
|
+ this.saveOrUpdate(markerTrack);
|
|
|
}
|
|
|
if (Objects.nonNull(headerTrack)) {
|
|
|
- headerTrack.insertInfo(requestUserId);
|
|
|
+ if (SystemConstant.longNotNull(headerTrack.getId())){
|
|
|
+ // 更新
|
|
|
+ headerTrack.updateInfo(requestUserId);
|
|
|
+ }else {
|
|
|
+ // 新增
|
|
|
+ headerTrack.insertInfo(requestUserId);
|
|
|
+ }
|
|
|
pushUserTrackList.add(headerTrack);
|
|
|
- this.save(headerTrack);
|
|
|
+ this.saveOrUpdate(headerTrack);
|
|
|
}
|
|
|
}
|
|
|
}
|