多语言-房间列表增加地区搜索

This commit is contained in:
liaozetao
2024-04-08 18:00:36 +08:00
committed by khalil
parent bb86d95cc7
commit cf665c96ce
4 changed files with 129 additions and 66 deletions

View File

@@ -1,6 +1,7 @@
package com.accompany.admin.service.room;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.accompany.admin.common.BusinessException;
import com.accompany.admin.dto.RoomResetDto;
import com.accompany.admin.event.ResetRoomEvent;
@@ -97,53 +98,52 @@ public class RoomSearchAdminService extends BaseService {
private Gson gson = new Gson();
public PageInfo<Room> getAllRoomList(Integer pageNumber, Integer pageSize, String erbanNo, int sort, int roomPermitType){
public PageInfo<Room> getAllRoomList(Integer pageNumber, Integer pageSize, String erbanNo, int sort, int roomPermitType, Integer partitionId) {
RoomExample roomExample = new RoomExample();
if(sort == 1){
if (sort == 1) {
roomExample.setOrderByClause("create_time");
}else{
} else {
roomExample.setOrderByClause("uid");
}
RoomExample.Criteria criteria = roomExample.createCriteria();
if(!BlankUtil.isBlank(erbanNo) && erbanNo != ""){
if (StrUtil.isNotEmpty(erbanNo)) {
Account account = accountService.getAccountByErBanNo(Long.valueOf(erbanNo));
criteria.andUidEqualTo(account.getUid());
}
if(roomPermitType != 0) {
if (roomPermitType != 0) {
criteria.andIsPermitRoomEqualTo((byte) roomPermitType);
}
PageHelper.startPage(pageNumber,pageSize);
if (partitionId != null) {
criteria.andPartitionIdEqualTo(partitionId);
}
PageHelper.startPage(pageNumber, pageSize);
List<Room> roomList = roomMapper.selectByExample(roomExample);
PageInfo pageInfo = new PageInfo(roomList);
// convertToRoomVoList(pageInfo.getList());
// return new PageInfo<>(newList);
// return new PageInfo<>(roomList);
PageInfo<Room> pageInfo = new PageInfo<>(roomList);
return pageInfo;
}
public BusiResult setRoomStatus(int status,Integer uid){
if(uid != null){
Room room = roomMapper.selectByPrimaryKey(Long.valueOf(uid));
room.setCanShow((byte)status);
roomMapper.updateByPrimaryKeySelective(room);
saveRoomCache(room);
return new BusiResult(BusiStatus.SUCCESS,room);
}else{
public BusiResult setRoomStatus(int status, Integer uid) {
if (uid != null) {
Room room = roomMapper.selectByPrimaryKey(Long.valueOf(uid));
room.setCanShow((byte) status);
roomMapper.updateByPrimaryKeySelective(room);
saveRoomCache(room);
return new BusiResult(BusiStatus.SUCCESS, room);
} else {
return new BusiResult(BusiStatus.USERNOTEXISTS);
}
}
public List<RoomTag> getRoomTag(String name){
public List<RoomTag> getRoomTag(String name) {
List<RoomTag> roomTagList = roomTagService.getRoomTags(name);
return roomTagList;
}
@Transactional(rollbackFor = Exception.class)
public Room saveRoom(Integer uid, Integer tagId, String badge, String backPic, Boolean hasDragonGame,
Boolean isPureMode, Boolean closeBox,Boolean hasKTVPriv, Boolean hasBlindDateRoomPri, Integer singleRoomSortId, Integer recommendStatus) throws Exception{
Boolean isPureMode, Boolean closeBox, Boolean hasKTVPriv, Boolean hasBlindDateRoomPri, Integer singleRoomSortId, Integer recommendStatus) throws Exception {
Room room = roomMapper.selectByPrimaryKey(Long.valueOf(uid));
if(room != null){
if (room != null) {
RoomTag roomTag = roomTagService.getRoomTagById(tagId);
if (roomTag != null) {
room.setRoomTag(roomTag.getName());
@@ -157,7 +157,7 @@ public class RoomSearchAdminService extends BaseService {
room.setIsPureMode(isPureMode);
room.setCloseBox(closeBox);
room.setHasKTVPriv(hasKTVPriv);
if (!hasKTVPriv){
if (!hasKTVPriv) {
room.setIsOpenKTV(false);
}
Boolean canOpenBlindDateRoom = roomPlayTypeService.canOpenPlayByType(room.getUid(), Constant.RoomPlayType.BLIND_DATE);
@@ -179,11 +179,11 @@ public class RoomSearchAdminService extends BaseService {
roomPlayType.setUpdateTime(new Date());
roomPlayTypeService.save(roomPlayType);
}
if(singleRoomSortId != null){
if (singleRoomSortId != null) {
singleBroadcastSortService.updateSingleBroadcastSort(room.getUid(), singleRoomSortId);
room.setSingleRoomSortId(singleRoomSortId);
}
if(recommendStatus != null){
if (recommendStatus != null) {
singleBroadcastSortService.saveSingRoomSortRecommend(room.getUid(), recommendStatus);
}
roomService.updateOpenRoom(room);
@@ -191,23 +191,24 @@ public class RoomSearchAdminService extends BaseService {
return room;
}
private void saveRoomCache(Room room){
if(room == null){
private void saveRoomCache(Room room) {
if (room == null) {
return;
}
room.setCanOpenBlindDate(roomPlayTypeService.canOpenPlayByType(room.getUid(), Constant.RoomPlayType.BLIND_DATE));
String roomJson = gson.toJson(room);
jedisService.hwrite(RedisKey.room.getKey(),room.getUid().toString(),roomJson);
jedisService.hwrite(RedisKey.room.getKey(), room.getUid().toString(), roomJson);
}
public List<RoomVo> convertToRoomVoList(List<Room> oldList){
public List<RoomVo> convertToRoomVoList(List<Room> oldList) {
List<RoomVo> newList = new ArrayList<>(oldList.size());
if (CollectionUtils.isEmpty(oldList)){
if (CollectionUtils.isEmpty(oldList)) {
return newList;
}
Map<Integer, String> partitionInfoDescMap = partitionInfoService.listAll().stream().collect(Collectors.toMap(PartitionInfo::getId, PartitionInfo::getDesc));
for(Room myRoom:oldList){
for (Room myRoom : oldList) {
myRoom.setCanOpenBlindDate(roomPlayTypeService.canOpenPlayByType(myRoom.getUid(), Constant.RoomPlayType.BLIND_DATE));
RoomVo roomVo = convertToRoomVo(myRoom);
roomVo.setPartitionDesc(partitionInfoDescMap.get(myRoom.getPartitionId()));
@@ -216,12 +217,13 @@ public class RoomSearchAdminService extends BaseService {
return newList;
}
private RoomVo convertToRoomVo(Room room){
private RoomVo convertToRoomVo(Room room) {
RoomVo roomVo = new RoomVo();
roomVo.setRoom(room);
Long uid = room.getUid();
Account myAccount = accountService.getById(uid);
if(myAccount != null){
if (myAccount != null) {
Long myErbanNo = myAccount.getErbanNo();
roomVo.setErbanNo(myErbanNo);
}
@@ -230,12 +232,12 @@ public class RoomSearchAdminService extends BaseService {
public int resetNewRoom(Long uid) {
Room room = roomService.getRoomByDB(uid);
if(room == null) {
if (room == null) {
throw new BusinessException("未找到該房間");
}
if(room.getIsPermitRoom() == Constant.PermitType.NO_PERMIT_ROOM) {
if (room.getIsPermitRoom() == Constant.PermitType.NO_PERMIT_ROOM) {
room.setIsPermitRoom(Constant.PermitType.NEW_SHOW_ROOM);
} else if(room.getIsPermitRoom() == Constant.PermitType.NEW_SHOW_ROOM){
} else if (room.getIsPermitRoom() == Constant.PermitType.NEW_SHOW_ROOM) {
room.setIsPermitRoom(Constant.PermitType.NO_PERMIT_ROOM);
} else {
throw new BusinessException("設置失敗.請查看該房間是否是牌照房");
@@ -247,7 +249,7 @@ public class RoomSearchAdminService extends BaseService {
public int update(Room room) {
int result = roomMapper.updateByPrimaryKey(room);
if(result > 0) {
if (result > 0) {
saveRoomCache(room);
}
return result;
@@ -255,22 +257,23 @@ public class RoomSearchAdminService extends BaseService {
/**
* 重新设置房间类型
*
* @param uid
* @param permitType
* @return
*/
@Transactional(rollbackFor = Exception.class)
public int resetRoom(Long uid, byte permitType)throws Exception {
public int resetRoom(Long uid, byte permitType) throws Exception {
Room room = roomService.getRoomByDB(uid);
if(room == null) {
if (room == null) {
throw new BusinessException("未找到該房間");
}
Byte beforePermitType = room.getIsPermitRoom();//修改之前的类型
room.setIsPermitRoom(permitType);
int result = update(room);
//如果关闭牌照房,离开模式需要关闭
if(beforePermitType.byteValue() == Constant.PermitType.PERMIT_ROOM && permitType != Constant.PermitType.PERMIT_ROOM
&&room.getLeaveMode()!= null && room.getLeaveMode()){
if (beforePermitType.byteValue() == Constant.PermitType.PERMIT_ROOM && permitType != Constant.PermitType.PERMIT_ROOM
&& room.getLeaveMode() != null && room.getLeaveMode()) {
roomService.closeLeaveMode(uid);
}
//更新对应模厅
@@ -280,18 +283,19 @@ public class RoomSearchAdminService extends BaseService {
/**
* 重新设置房间标题
*
* @param uid
* @param title
* @param roomDesc
* @param introduction
* @return
*/
public int resetRoomTitleAndIntro(Long uid, String title, String roomDesc, String introduction) throws Exception{
public int resetRoomTitleAndIntro(Long uid, String title, String roomDesc, String introduction) throws Exception {
Room room = roomService.getRoomByDB(uid);
if(room == null) {
if (room == null) {
throw new BusinessException("未找到該房間");
}
if(StringUtils.isBlank(title)) {
if (StringUtils.isBlank(title)) {
throw new BusinessException("房間標題不能為空");
}
//不能超过15个字
@@ -301,32 +305,32 @@ public class RoomSearchAdminService extends BaseService {
// 敏感词检验
boolean isSensitive = SensitiveFilterUtil.getBooleanSensitiveFilter(title.trim());
String stringSensitiveFilter = SensitiveFilterUtil.getStringSensitiveFilter(title.trim());
logger.info("stringSensitiveFilter:{}",stringSensitiveFilter);
logger.info("stringSensitiveFilter:{}", stringSensitiveFilter);
if (isSensitive) {
throw new BusinessException(BusiStatus.ROOM_TITLE_IS_SENSITIVE.getReasonPhrase());
}
room.setTitle(title);
if(StringUtils.isNotBlank(roomDesc)) {
if (StringUtils.isNotBlank(roomDesc)) {
if (roomDesc.trim().length() > 15) {
throw new BusinessException("房間公告標題不能超過15個字");
}
boolean roomDescSensitive = SensitiveFilterUtil.getBooleanSensitiveFilter(roomDesc.trim());
String roomDescStringSensitiveFilter = SensitiveFilterUtil.getStringSensitiveFilter(roomDesc.trim());
logger.info("roomDesc stringSensitiveFilter:{}",roomDescStringSensitiveFilter);
logger.info("roomDesc stringSensitiveFilter:{}", roomDescStringSensitiveFilter);
if (roomDescSensitive) {
throw new BusinessException("房間公告標題包含敏感字");
}
}
room.setRoomDesc(roomDesc);
if(StringUtils.isNotBlank(roomDesc)) {
if (StringUtils.isNotBlank(roomDesc)) {
if (roomDesc.trim().length() > 300) {
throw new BusinessException("房間公告不能超過300個字");
}
boolean introSensitive = SensitiveFilterUtil.getBooleanSensitiveFilter(roomDesc.trim());
String introStringSensitiveFilter = SensitiveFilterUtil.getStringSensitiveFilter(roomDesc.trim());
logger.info("introStringSensitiveFilter:{}",introStringSensitiveFilter);
logger.info("introStringSensitiveFilter:{}", introStringSensitiveFilter);
if (introSensitive) {
throw new BusinessException("房間公告包含敏感字");
}
@@ -345,12 +349,13 @@ public class RoomSearchAdminService extends BaseService {
/**
* 重新设置房间类型添加v2版本方法解决可能存在的缓存和数据库不一致问题
*
* @param uid
* @param permitType
* @return
*/
@Transactional(rollbackFor = Exception.class, transactionManager = "mybatisplusTransactionManager")
public int resetRoomV2(Long uid, byte permitType)throws Exception {
public int resetRoomV2(Long uid, byte permitType) throws Exception {
String lockKey = RedisKey.reset_room_type_lock.getKey(String.valueOf(uid));
String lockVal = jedisLockService.lock(lockKey);
if (com.accompany.common.utils.StringUtils.isBlank(lockVal)) throw new ServiceException(BusiStatus.SERVER_BUSY);
@@ -420,7 +425,7 @@ public class RoomSearchAdminService extends BaseService {
resetRoomDealCache.dealFacade(roomResetDto);
// 修改前为游戏房,修改后不为游戏房,删除 mini_game_room 缓存信息
if(Constant.RoomType.mini_game.equals(originType) && !Constant.RoomType.mini_game.equals(room.getType())){
if (Constant.RoomType.mini_game.equals(originType) && !Constant.RoomType.mini_game.equals(room.getType())) {
jedisService.hdel(RedisKey.mini_game_room.getKey(), String.valueOf(room.getRoomId()));
}
@@ -441,7 +446,8 @@ public class RoomSearchAdminService extends BaseService {
if (ObjectUtil.isNull(room)) return;
if (!blindStateList.contains(room.getBlindDateState())) throw new ServiceException("相親模式進行中,不能切換個播房!");
if (!blindStateList.contains(room.getBlindDateState()))
throw new ServiceException("相親模式進行中,不能切換個播房!");
}

View File

@@ -69,10 +69,10 @@ public class FirstPageBannerAdminController extends BaseController {
@ApiOperation("获取banner列表")
@GetMapping(value = "/list")
public Pagination getFirstPageBannerList(Byte skipType, Byte bannerStatus, Byte bannerType, String beginTime, String endTime, String appId) {
public Pagination<FirstPageBanner> getFirstPageBannerList(Byte skipType, Byte bannerStatus, Byte bannerType, String beginTime, String endTime, String appId) {
IPage<FirstPageBanner> pageInfo = firstPageBannerAdminService.getFirstPageBannerList(getPageNumber(), getPageSize(),
skipType, bannerStatus, bannerType,beginTime,endTime,appId);
return new Pagination(pageInfo);
return new Pagination<>(pageInfo);
}
@ApiOperation("批量删除banner")

View File

@@ -2,6 +2,7 @@ package com.accompany.admin.controller.room;
import cn.hutool.core.util.StrUtil;
import com.accompany.admin.base.Pagination;
import com.accompany.admin.common.BusinessException;
import com.accompany.admin.controller.BaseController;
import com.accompany.admin.service.RobotAdminService;
@@ -35,10 +36,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.Date;
@@ -75,15 +73,14 @@ public class RoomAdminController extends BaseController {
.contentsNextContent("%s").contentsFontColor("#999999").contentsFontSize(28 / 2);
@RequestMapping("/getAll")
@ResponseBody
public void getAllRoom(String erbanNo, int sort, int roomPermitType) {
PageInfo<Room> pageInfo = roomSearchAdminService.getAllRoomList(getPageNumber(), getPageSize(), erbanNo, sort, roomPermitType);
@GetMapping("/getAll")
public Pagination<RoomVo> getAllRoom(String erbanNo, int sort, int roomPermitType, Integer partitionId) {
PageInfo<Room> pageInfo = roomSearchAdminService.getAllRoomList(getPageNumber(), getPageSize(), erbanNo, sort, roomPermitType, partitionId);
List<RoomVo> list = roomSearchAdminService.convertToRoomVoList(pageInfo.getList());
JSONObject jsonObject = new JSONObject();
jsonObject.put("total", pageInfo.getTotal());
jsonObject.put("rows", list);
writeJson(jsonObject.toJSONString());
Pagination<RoomVo> pagination = new Pagination<>();
pagination.setTotal(pageInfo.getTotal());
pagination.setRows(list);
return pagination;
}
@RequestMapping("/changeRoomStatus")

View File

@@ -3125,6 +3125,66 @@ public class RoomExample {
addCriterion("blind_date_vip_uid not between", value1, value2, "blindDateVipUid");
return (Criteria) this;
}
public Criteria andPartitionIdIsNull() {
addCriterion("partition_id is null");
return (Criteria) this;
}
public Criteria andPartitionIdIsNotNull() {
addCriterion("partition_id is not null");
return (Criteria) this;
}
public Criteria andPartitionIdEqualTo(Integer value) {
addCriterion("partition_id =", value, "partitionId");
return (Criteria) this;
}
public Criteria andPartitionIdNotEqualTo(Integer value) {
addCriterion("partition_id <>", value, "partitionId");
return (Criteria) this;
}
public Criteria andPartitionIdGreaterThan(Integer value) {
addCriterion("partition_id >", value, "partitionId");
return (Criteria) this;
}
public Criteria andPartitionIdGreaterThanOrEqualTo(Integer value) {
addCriterion("partition_id >=", value, "partitionId");
return (Criteria) this;
}
public Criteria andPartitionIdLessThan(Integer value) {
addCriterion("partition_id <", value, "partitionId");
return (Criteria) this;
}
public Criteria andPartitionIdLessThanOrEqualTo(Integer value) {
addCriterion("partition_id <=", value, "partitionId");
return (Criteria) this;
}
public Criteria andPartitionIdIn(List<Integer> values) {
addCriterion("partition_id in", values, "partitionId");
return (Criteria) this;
}
public Criteria andPartitionIdNotIn(List<Integer> values) {
addCriterion("partition_id not in", values, "partitionId");
return (Criteria) this;
}
public Criteria andPartitionIdBetween(Integer value1, Integer value2) {
addCriterion("partition_id between", value1, value2, "partitionId");
return (Criteria) this;
}
public Criteria andPartitionIdNotBetween(Integer value1, Integer value2) {
addCriterion("partition_id not between", value1, value2, "partitionId");
return (Criteria) this;
}
}
public static class Criteria extends GeneratedCriteria {