首页-国家列表-后台
This commit is contained in:
@@ -0,0 +1,171 @@
|
||||
package com.accompany.admin.service.room;
|
||||
|
||||
import com.accompany.admin.vo.roomtab.RoomTabAdminVo;
|
||||
import com.accompany.business.model.roomtab.RoomTab;
|
||||
import com.accompany.business.model.roomtab.RoomTabMap;
|
||||
import com.accompany.business.service.homeV2.HomeV2Service;
|
||||
import com.accompany.business.service.homeV2.sort.HomeRoomSortService;
|
||||
import com.accompany.business.service.roomtab.RoomTabMapService;
|
||||
import com.accompany.business.service.roomtab.RoomTabService;
|
||||
import com.accompany.business.vo.home.HomeRoomVo;
|
||||
import com.accompany.business.vo.roomtab.RoomTabHomeVo;
|
||||
import com.accompany.common.constant.Constant;
|
||||
import com.accompany.common.status.BusiStatus;
|
||||
import com.accompany.common.utils.DateTimeUtil;
|
||||
import com.accompany.core.exception.AdminServiceException;
|
||||
import com.accompany.core.exception.ServiceException;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
public class RoomTabRegionAdminService {
|
||||
|
||||
@Autowired
|
||||
private HomeV2Service homeV2Service;
|
||||
@Autowired
|
||||
private HomeRoomSortService sortService;
|
||||
@Autowired
|
||||
private RoomTabService roomTabService;
|
||||
@Autowired
|
||||
private RoomTabMapService roomTabMapService;
|
||||
|
||||
public List<RoomTabAdminVo> listRegionTab() {
|
||||
return roomTabService.lambdaQuery()
|
||||
.gt(RoomTab::getHomeRegionId, Constant.status.delete)
|
||||
.eq(RoomTab::getStatus, Constant.status.valid)
|
||||
.list()
|
||||
.stream()
|
||||
.map(roomTab -> {
|
||||
RoomTabAdminVo vo = new RoomTabAdminVo();
|
||||
BeanUtils.copyProperties(roomTab, vo);
|
||||
return vo;
|
||||
}).toList();
|
||||
}
|
||||
public List<RoomTabHomeVo> list(Integer tabId, Integer partitionId) {
|
||||
RoomTab roomTab = roomTabService.lambdaQuery()
|
||||
.eq(RoomTab::getId, tabId)
|
||||
.eq(RoomTab::getStatus, Constant.status.valid)
|
||||
.one();
|
||||
if (null == roomTab) {
|
||||
throw new AdminServiceException(BusiStatus.PARAMERROR);
|
||||
}
|
||||
|
||||
List<HomeRoomVo> roomVoList = pageRoomTab(roomTab, partitionId);
|
||||
if (CollectionUtils.isEmpty(roomVoList)){
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
return decorator(roomTab, roomVoList);
|
||||
}
|
||||
|
||||
private List<HomeRoomVo> pageRoomTab(RoomTab roomTab, Integer partitionId) {
|
||||
Set<Long> roomUidSet = homeV2Service.getPartitionPoolSet(partitionId);
|
||||
if (CollectionUtils.isEmpty(roomUidSet)){
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
List<HomeRoomVo> homeRoomList = sortService.sort(roomUidSet, partitionId, roomTab);
|
||||
return homeV2Service.decorator(homeRoomList, partitionId);
|
||||
}
|
||||
|
||||
private List<RoomTabHomeVo> decorator(RoomTab roomTab, List<HomeRoomVo> roomVoList) {
|
||||
List<Long> uidList = roomVoList.stream().map(HomeRoomVo::getUid).toList();
|
||||
Map<Long, RoomTabMap> roomTabMapMap = roomTabMapService.lambdaQuery().in(RoomTabMap::getRoomUid, uidList)
|
||||
.eq(RoomTabMap::getTabId, roomTab.getId()).list()
|
||||
.stream().collect(Collectors.toMap(RoomTabMap::getRoomUid, roomTabMap->roomTabMap));
|
||||
|
||||
return roomVoList.stream().map(playRoomVo -> {
|
||||
RoomTabHomeVo vo = new RoomTabHomeVo();
|
||||
vo.setRoomUid(playRoomVo.getUid());
|
||||
vo.setErbanNo(playRoomVo.getErbanNo());
|
||||
vo.setRoomTitle(playRoomVo.getTitle());
|
||||
vo.setAvatar(playRoomVo.getAvatar());
|
||||
vo.setRoomDesc(playRoomVo.getRoomDesc());
|
||||
vo.setRoomTag(playRoomVo.getRoomTag());
|
||||
vo.setMicUserCount(playRoomVo.getMicUserCount());
|
||||
vo.setOnlineNum(playRoomVo.getOnlineNum());
|
||||
vo.setHotValue(playRoomVo.getHotValue());
|
||||
vo.setHomeType(playRoomVo.getHomeRoomType());
|
||||
vo.setHourTop(playRoomVo.getHourTop());
|
||||
//vo.setIsHourTop1(playRoomVo.getIsHourTop1() > 0);
|
||||
//vo.setIsWeekTop1(playRoomVo.getIsWeekTop1() > 0);
|
||||
vo.setCrossPking(playRoomVo.getCrossPking());
|
||||
|
||||
vo.setRegionId(playRoomVo.getRegionId());
|
||||
vo.setRegionFlag(playRoomVo.getRegionFlag());
|
||||
|
||||
RoomTabMap home = roomTabMapMap.get(playRoomVo.getUid());
|
||||
if (null != home) {
|
||||
vo.setId(home.getId());
|
||||
vo.setIsShow(home.getIsHome());
|
||||
vo.setIsTop(home.getIsTop());
|
||||
vo.setSeq(home.getSeq());
|
||||
vo.setTopStart(home.getTopStart());
|
||||
vo.setTopEnd(home.getTopEnd());
|
||||
vo.setCreateTime(home.getCreateTime());
|
||||
vo.setUpdateTime(home.getUpdateTime());
|
||||
}
|
||||
|
||||
return vo;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public void delete(Long id) {
|
||||
roomTabMapService.removeById(id);
|
||||
}
|
||||
|
||||
public RoomTabMap get(Long id) {
|
||||
return roomTabMapService.getById(id);
|
||||
}
|
||||
|
||||
public void save(Long id, Long roomUid, Integer tabId, Integer seq, Boolean isTop, String topStart, String topEnd, Boolean isShow) {
|
||||
RoomTabMap dbEntity = new RoomTabMap();
|
||||
|
||||
if (null != id){
|
||||
RoomTabMap roomTabMap = roomTabMapService.getById(id);
|
||||
if (null == roomTabMap){
|
||||
throw new AdminServiceException(BusiStatus.PARAMERROR);
|
||||
}
|
||||
|
||||
BeanUtils.copyProperties(roomTabMap, dbEntity);
|
||||
} {
|
||||
dbEntity.setCreateTime(new Date());
|
||||
}
|
||||
|
||||
dbEntity.setRoomUid(roomUid);
|
||||
dbEntity.setTabId(tabId);
|
||||
dbEntity.setSeq(seq);
|
||||
dbEntity.setIsTop(isTop);
|
||||
dbEntity.setIsHome(isShow);
|
||||
|
||||
if (!isTop) {
|
||||
// 不置顶排序变为0,置顶时间为空
|
||||
dbEntity.setSeq(0);
|
||||
dbEntity.setTopStart(null);
|
||||
dbEntity.setTopEnd(null);
|
||||
} else {
|
||||
if (null == seq || seq < 1){
|
||||
throw new AdminServiceException("置顶排序位置需要大于0");
|
||||
}
|
||||
dbEntity.setSeq(seq);
|
||||
// 判断置顶时间
|
||||
Date startDate = DateTimeUtil.convertStrToDate(topStart);
|
||||
Date endDate = DateTimeUtil.convertStrToDate(topEnd);
|
||||
if (startDate != null && endDate != null && endDate.getTime() > startDate.getTime()) {
|
||||
dbEntity.setTopStart(startDate);
|
||||
dbEntity.setTopEnd(endDate);
|
||||
} else {
|
||||
throw new ServiceException(BusiStatus.NO_TIME_SET_FOR_TOPPING);
|
||||
}
|
||||
}
|
||||
|
||||
dbEntity.setUpdateTime(new Date());
|
||||
roomTabMapService.saveOrUpdate(dbEntity);
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,80 @@
|
||||
package com.accompany.admin.controller.room;
|
||||
|
||||
import com.accompany.admin.controller.BaseController;
|
||||
import com.accompany.admin.service.room.RoomTabRegionAdminService;
|
||||
import com.accompany.admin.vo.roomtab.RoomTabAdminVo;
|
||||
import com.accompany.business.model.roomtab.RoomTabHome;
|
||||
import com.accompany.business.model.roomtab.RoomTabMap;
|
||||
import com.accompany.business.vo.roomtab.RoomTabHomeVo;
|
||||
import com.accompany.common.result.BusiResult;
|
||||
import com.accompany.common.status.BusiStatus;
|
||||
import com.accompany.core.exception.AdminServiceException;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Api(tags = "首页国家列表")
|
||||
@RestController
|
||||
@RequestMapping("/admin/roomTabRegion")
|
||||
public class RoomTabRegionAdminController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private RoomTabRegionAdminService service;
|
||||
|
||||
@ApiOperation(value = "获取国家")
|
||||
@GetMapping("/listRegionTab")
|
||||
public BusiResult<List<RoomTabAdminVo>> listRegionTab() {
|
||||
List<RoomTabAdminVo> voList = service.listRegionTab();
|
||||
return BusiResult.success(voList);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "获取国家列表")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "tabId", value = "标签id"),
|
||||
@ApiImplicitParam(name = "partitionId", value = "分区id"),
|
||||
})
|
||||
@GetMapping("/list")
|
||||
public BusiResult<List<RoomTabHomeVo>> list(Integer tabId, Integer partitionId) {
|
||||
List<RoomTabHomeVo> voList = service.list(tabId, partitionId);
|
||||
return BusiResult.success(voList);
|
||||
}
|
||||
|
||||
@PostMapping("/delete")
|
||||
public BusiResult<Void> deleteRoomTabHome(Long id) {
|
||||
if (null == id) {
|
||||
throw new AdminServiceException(BusiStatus.PARAMETERILLEGAL);
|
||||
}
|
||||
service.delete(id);
|
||||
return BusiResult.success();
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
public BusiResult<RoomTabMap> get(Long id) {
|
||||
RoomTabMap roomTabMap = service.get(id);
|
||||
return BusiResult.success(roomTabMap);
|
||||
}
|
||||
|
||||
@PostMapping("/save")
|
||||
public BusiResult<Void> save(Long id, Long roomUid, Integer tabId, Boolean isTop, Integer seq, String topStart, String topEnd, Boolean isShow) {
|
||||
if (seq == null) {
|
||||
seq = 99;
|
||||
}
|
||||
if (isTop == null) {
|
||||
isTop = false;
|
||||
}
|
||||
if (isShow == null) {
|
||||
isShow = false;
|
||||
}
|
||||
service.save(id, roomUid, tabId, seq, isTop, topStart, topEnd, isShow);
|
||||
return BusiResult.success();
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user