|
@@ -15,14 +15,13 @@ import com.ym.mec.biz.dal.dao.ImLiveBroadcastRoomDao;
|
|
|
import com.ym.mec.biz.dal.dao.LiveGoodsMapperDao;
|
|
|
import com.ym.mec.biz.dal.dao.SysConfigDao;
|
|
|
import com.ym.mec.biz.dal.dto.ImLiveBroadcastRoomDto;
|
|
|
-import com.ym.mec.biz.dal.entity.ImLiveBroadcastRoom;
|
|
|
-import com.ym.mec.biz.dal.entity.ImLiveBroadcastRoomData;
|
|
|
-import com.ym.mec.biz.dal.entity.ImLiveBroadcastRoomMember;
|
|
|
-import com.ym.mec.biz.dal.entity.ImLiveRoomBlack;
|
|
|
+import com.ym.mec.biz.dal.dto.RoomReservationUserSearch;
|
|
|
+import com.ym.mec.biz.dal.entity.*;
|
|
|
import com.ym.mec.biz.dal.enums.MessageTypeEnum;
|
|
|
import com.ym.mec.biz.dal.page.LiveRoomGoodsOrderQueryInfo;
|
|
|
import com.ym.mec.biz.dal.vo.BaseRoomUserVo;
|
|
|
import com.ym.mec.biz.dal.vo.ImLiveBroadcastRoomVo;
|
|
|
+import com.ym.mec.biz.dal.vo.RoomReservationUserVo;
|
|
|
import com.ym.mec.biz.dal.vo.LiveRoomGoodsOrderVo;
|
|
|
import com.ym.mec.biz.dal.vo.RoomUserInfoVo;
|
|
|
import com.ym.mec.biz.service.*;
|
|
@@ -90,6 +89,8 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
|
private ImLiveRoomReservationService imLiveRoomReservationService;
|
|
|
@Autowired
|
|
|
private ImLiveRoomBlackService imLiveRoomBlackService;
|
|
|
+ @Autowired
|
|
|
+ private EmployeeService employeeService;
|
|
|
|
|
|
//待替换的变量
|
|
|
public static final String USER_ID = "${userId}";
|
|
@@ -184,6 +185,7 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
|
private ImLiveBroadcastRoomVo getImLiveBroadcastRoomVo(String roomUid) {
|
|
|
List<ImLiveBroadcastRoomVo> list = baseMapper.queryPage(new HashMap<String, Object>() {{
|
|
|
put("roomUid", roomUid);
|
|
|
+ put("allRoom", 1);
|
|
|
}});
|
|
|
if (CollectionUtils.isEmpty(list)) {
|
|
|
return null;
|
|
@@ -192,18 +194,44 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 分页查询直播间列表
|
|
|
+ * 后台-分页查询直播间列表
|
|
|
*/
|
|
|
@Override
|
|
|
public PageInfo<ImLiveBroadcastRoomVo> queryPage(Map<String, Object> param) {
|
|
|
- Page<ImLiveBroadcastRoomVo> pageInfo = PageUtil.getPageInfo(param);
|
|
|
+ Page<ImLiveBroadcastRoomVo> pageInfo = PageUtil.concatTimePage(param, "startTime", "endTime");
|
|
|
pageInfo.setDesc("a.created_time_");
|
|
|
param.put("tenantId", TenantContextHolder.getTenantId());
|
|
|
- BiConsumer<String, String> addTimeCons = (key, time) -> Optional.ofNullable(param.get(key)).map(String::valueOf)
|
|
|
- .ifPresent(date -> param.put(key, date + " " + time));
|
|
|
- addTimeCons.accept("startTime", "00:00:00");
|
|
|
- addTimeCons.accept("endTime", "23:59:59");
|
|
|
+ //查询该人员分部 及 分部下包含的学校(合作单位)
|
|
|
+ Integer userId = getSysUser().getId();
|
|
|
+ Employee employee = employeeService.get(userId);
|
|
|
+ if (Objects.nonNull(employee) && Objects.nonNull(employee.getOrganIdList())) {
|
|
|
+ param.put("organIds", employee.getOrganIdList());
|
|
|
+ String schoolIds = baseMapper.querySchoolIds(employee.getOrganIdList());
|
|
|
+ if (StringUtils.isNotBlank(schoolIds)) {
|
|
|
+ param.put("schoolIds", schoolIds);
|
|
|
+ }
|
|
|
+ }
|
|
|
IPage<ImLiveBroadcastRoomVo> page = baseMapper.queryPage(pageInfo, param);
|
|
|
+
|
|
|
+ // 查询预约人数
|
|
|
+ List<ImLiveBroadcastRoomVo> records = page.getRecords();
|
|
|
+ if (CollectionUtils.isEmpty(records)) {
|
|
|
+ return PageUtil.pageInfo(page);
|
|
|
+ }
|
|
|
+
|
|
|
+ List<String> roomIdList = records.stream().map(ImLiveBroadcastRoomVo::getRoomUid).collect(Collectors.toList());
|
|
|
+
|
|
|
+ List<ImLiveBroadcastRoomVo> countRoomReservationList = imLiveRoomReservationService.countRoomReservation(roomIdList);
|
|
|
+ Map<String, List<ImLiveBroadcastRoomVo>> collect = countRoomReservationList.stream()
|
|
|
+ .collect(Collectors.groupingBy(ImLiveBroadcastRoomVo::getRoomUid));
|
|
|
+ for (ImLiveBroadcastRoomVo record : records) {
|
|
|
+ List<ImLiveBroadcastRoomVo> imLiveBroadcastRoomVos = collect.get(record.getRoomUid());
|
|
|
+ if (CollectionUtils.isEmpty(imLiveBroadcastRoomVos)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ record.setRoomReservationNum(imLiveBroadcastRoomVos.get(0).getRoomReservationNum());
|
|
|
+ }
|
|
|
+
|
|
|
return PageUtil.pageInfo(page);
|
|
|
}
|
|
|
|
|
@@ -242,14 +270,21 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void update(ImLiveBroadcastRoomDto dto) {
|
|
|
Date now = new Date();
|
|
|
+ Integer userId = getSysUser().getId();
|
|
|
+ ImLiveBroadcastRoom obj = this.getById(dto.getId());
|
|
|
+ obj.setUpdatedBy(userId);
|
|
|
+ obj.setUpdatedTime(now);
|
|
|
+ //如果直播已经则只能修改是否全员禁麦 和聊天功能
|
|
|
+ if (obj.getLiveState() == 1) {
|
|
|
+ obj.setRoomConfig(JSONObject.toJSONString(dto.getRoomConfig()));
|
|
|
+ this.updateById(obj);
|
|
|
+ return;
|
|
|
+ }
|
|
|
if (now.getTime() > dto.getLiveStartTime().getTime()) {
|
|
|
throw new BizException("设置的直播开始时间不能小于当前时间");
|
|
|
}
|
|
|
- ImLiveBroadcastRoom obj = this.getById(dto.getId());
|
|
|
BeanUtils.copyProperties(dto, obj);
|
|
|
obj.setRoomConfig(JSONObject.toJSONString(dto.getRoomConfig()));
|
|
|
- obj.setUpdatedBy(getSysUser().getId());
|
|
|
- obj.setUpdatedTime(now);
|
|
|
log.info("update room >>> :{}", JSONObject.toJSONString(obj));
|
|
|
this.updateById(obj);
|
|
|
}
|
|
@@ -333,21 +368,12 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
|
*/
|
|
|
@Override
|
|
|
public ImLiveBroadcastRoomVo queryPopularizeRoom() {
|
|
|
- //查询该学生信息-获取分部
|
|
|
- SysUser user = getSysUser();
|
|
|
- //查询哪些分部无法推广直播间
|
|
|
- String popularizeOrgan = sysConfigDao.findConfigValue("live_popularize_organ");
|
|
|
- if (StringUtils.isNotBlank(popularizeOrgan)) {
|
|
|
- List<String> organList = WrapperUtil.toList(popularizeOrgan);
|
|
|
- if (Objects.nonNull(user.getOrganId()) && !organList.contains(user.getOrganId().toString())) {
|
|
|
- return null;
|
|
|
- }
|
|
|
- }
|
|
|
Map<String, Object> param = new HashMap<>();
|
|
|
param.put("tenantId", TenantContextHolder.getTenantId());
|
|
|
param.put("popularize", 1);
|
|
|
param.put("liveState", 1);
|
|
|
- List<ImLiveBroadcastRoomVo> list = baseMapper.queryPage(param);
|
|
|
+ PageInfo<ImLiveBroadcastRoomVo> pageInfo = imLiveRoomReservationService.queryPageStudent(param);
|
|
|
+ List<ImLiveBroadcastRoomVo> list = pageInfo.getRows();
|
|
|
if (CollectionUtils.isNotEmpty(list)) {
|
|
|
return list.get(0);
|
|
|
}
|
|
@@ -1039,13 +1065,13 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
|
private SysUser getSysUser(Integer userId) {
|
|
|
return Optional.ofNullable(userId)
|
|
|
.map(sysUserFeignService::queryUserById)
|
|
|
- .orElseThrow(() -> new BizException("用户不存在"));
|
|
|
+ .orElseThrow(() -> new BizException("用户不存在."));
|
|
|
}
|
|
|
|
|
|
private SysUser getSysUser() {
|
|
|
//修改机构基础信息
|
|
|
return Optional.ofNullable(sysUserFeignService.queryUserInfo())
|
|
|
- .orElseThrow(() -> new BizException("用户不存在"));
|
|
|
+ .orElseThrow(() -> new BizException("用户不存在."));
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -1152,6 +1178,13 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ public PageInfo<RoomReservationUserVo> queryRoomUser(RoomReservationUserSearch query) {
|
|
|
+ IPage<RoomReservationUserVo> page = new Page<>(query.getPage(), query.getRows());
|
|
|
+ page = baseMapper.queryRoomUser(page, query);
|
|
|
+ return PageUtil.pageInfo(page);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
public PageInfo<LiveRoomGoodsOrderVo> queryLiveRoomGoodsOrderList(LiveRoomGoodsOrderQueryInfo queryInfo) {
|
|
|
PageInfo<LiveRoomGoodsOrderVo> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
|
|
|
Map<String, Object> params = new HashMap<String, Object>();
|