feat(): 初始化 消防报警固定会议室 和 消防报警三方会议用户 基础接口

dev
lishiwei 2026-07-13 16:16:02 +08:00
parent 3e57f5952d
commit 12969ed973
25 changed files with 944 additions and 18 deletions

View File

@ -0,0 +1,56 @@
package com.zcloud.zcGbsServicer.web;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.Response;
import com.alibaba.cola.dto.SingleResponse;
import com.zcloud.zcGbsServicer.api.FireAlarmMeetingRoomServiceI;
import com.zcloud.zcGbsServicer.dto.FireAlarmMeetingRoomAddCmd;
import com.zcloud.zcGbsServicer.dto.FireAlarmMeetingRoomPageQry;
import com.zcloud.zcGbsServicer.dto.FireAlarmMeetingRoomUpdateCmd;
import com.zcloud.zcGbsServicer.dto.clientobject.FireAlarmMeetingRoomCO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@Api(tags = "消防报警固定会议室")
@RestController
@AllArgsConstructor
@RequestMapping("/${application.gateway}/meetingRoom")
public class FireAlarmMeetingRoomController {
private final FireAlarmMeetingRoomServiceI fireAlarmMeetingRoomService;
@ApiOperation("分页查询")
@PostMapping("/list")
public PageResponse<FireAlarmMeetingRoomCO> list(@RequestBody FireAlarmMeetingRoomPageQry qry) {
return fireAlarmMeetingRoomService.listPage(qry);
}
@ApiOperation("新增")
@PostMapping("/save")
public SingleResponse<FireAlarmMeetingRoomCO> save(@Validated @RequestBody FireAlarmMeetingRoomAddCmd cmd) {
return fireAlarmMeetingRoomService.add(cmd);
}
@ApiOperation("编辑")
@PutMapping("/edit")
public Response edit(@Validated @RequestBody FireAlarmMeetingRoomUpdateCmd cmd) {
fireAlarmMeetingRoomService.edit(cmd);
return Response.buildSuccess();
}
@ApiOperation("详情")
@GetMapping("/{id}")
public SingleResponse<FireAlarmMeetingRoomCO> get(@PathVariable Long id) {
return SingleResponse.of(fireAlarmMeetingRoomService.get(id));
}
@ApiOperation("删除")
@DeleteMapping("/{id}")
public Response remove(@PathVariable Long id) {
fireAlarmMeetingRoomService.remove(id);
return Response.buildSuccess();
}
}

View File

@ -0,0 +1,56 @@
package com.zcloud.zcGbsServicer.web;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.Response;
import com.alibaba.cola.dto.SingleResponse;
import com.zcloud.zcGbsServicer.api.FireAlarmMeetingUserServiceI;
import com.zcloud.zcGbsServicer.dto.FireAlarmMeetingUserAddCmd;
import com.zcloud.zcGbsServicer.dto.FireAlarmMeetingUserPageQry;
import com.zcloud.zcGbsServicer.dto.FireAlarmMeetingUserUpdateCmd;
import com.zcloud.zcGbsServicer.dto.clientobject.FireAlarmMeetingUserCO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@Api(tags = "消防报警会议用户")
@RestController
@AllArgsConstructor
@RequestMapping("/${application.gateway}/meetingUser")
public class FireAlarmMeetingUserController {
private final FireAlarmMeetingUserServiceI fireAlarmMeetingUserService;
@ApiOperation("分页查询")
@PostMapping("/list")
public PageResponse<FireAlarmMeetingUserCO> list(@RequestBody FireAlarmMeetingUserPageQry qry) {
return fireAlarmMeetingUserService.listPage(qry);
}
@ApiOperation("新增")
@PostMapping("/save")
public SingleResponse<FireAlarmMeetingUserCO> save(@Validated @RequestBody FireAlarmMeetingUserAddCmd cmd) {
return fireAlarmMeetingUserService.add(cmd);
}
@ApiOperation("编辑")
@PutMapping("/edit")
public Response edit(@Validated @RequestBody FireAlarmMeetingUserUpdateCmd cmd) {
fireAlarmMeetingUserService.edit(cmd);
return Response.buildSuccess();
}
@ApiOperation("详情")
@GetMapping("/{id}")
public SingleResponse<FireAlarmMeetingUserCO> get(@PathVariable Long id) {
return SingleResponse.of(fireAlarmMeetingUserService.get(id));
}
@ApiOperation("删除")
@DeleteMapping("/{id}")
public Response remove(@PathVariable Long id) {
fireAlarmMeetingUserService.remove(id);
return Response.buildSuccess();
}
}

View File

@ -0,0 +1,15 @@
package com.zcloud.zcGbsServicer.command.convertor;
import com.zcloud.zcGbsServicer.dto.clientobject.FireAlarmMeetingRoomCO;
import com.zcloud.zcGbsServicer.persistence.dataobject.FireAlarmMeetingRoomDO;
import org.mapstruct.Mapper;
import java.util.List;
@Mapper(componentModel = "spring")
public interface FireAlarmMeetingRoomCoConvertor {
List<FireAlarmMeetingRoomCO> converDOsToCOs(List<FireAlarmMeetingRoomDO> fireAlarmMeetingRoomDOs);
FireAlarmMeetingRoomCO converDOToCO(FireAlarmMeetingRoomDO fireAlarmMeetingRoomDO);
}

View File

@ -0,0 +1,15 @@
package com.zcloud.zcGbsServicer.command.convertor;
import com.zcloud.zcGbsServicer.dto.clientobject.FireAlarmMeetingUserCO;
import com.zcloud.zcGbsServicer.persistence.dataobject.FireAlarmMeetingUserDO;
import org.mapstruct.Mapper;
import java.util.List;
@Mapper(componentModel = "spring")
public interface FireAlarmMeetingUserCoConvertor {
List<FireAlarmMeetingUserCO> converDOsToCOs(List<FireAlarmMeetingUserDO> fireAlarmMeetingUserDOs);
FireAlarmMeetingUserCO converDOToCO(FireAlarmMeetingUserDO fireAlarmMeetingUserDO);
}

View File

@ -0,0 +1,110 @@
package com.zcloud.zcGbsServicer.service;
import cn.hutool.core.util.IdUtil;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse;
import com.alibaba.cola.exception.BizException;
import com.zcloud.zcGbsServicer.api.FireAlarmMeetingRoomServiceI;
import com.zcloud.zcGbsServicer.command.convertor.FireAlarmMeetingRoomCoConvertor;
import com.zcloud.zcGbsServicer.dto.FireAlarmMeetingRoomAddCmd;
import com.zcloud.zcGbsServicer.dto.FireAlarmMeetingRoomPageQry;
import com.zcloud.zcGbsServicer.dto.FireAlarmMeetingRoomUpdateCmd;
import com.zcloud.zcGbsServicer.dto.clientobject.FireAlarmMeetingRoomCO;
import com.zcloud.zcGbsServicer.persistence.dataobject.FireAlarmMeetingRoomDO;
import com.zcloud.zcGbsServicer.persistence.repository.FireAlarmMeetingRoomRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
@Service
@RequiredArgsConstructor
public class FireAlarmMeetingRoomServiceImpl extends FireAlarmServiceSupport implements FireAlarmMeetingRoomServiceI {
private final FireAlarmMeetingRoomRepository fireAlarmMeetingRoomRepository;
private final FireAlarmMeetingRoomCoConvertor fireAlarmMeetingRoomCoConvertor;
@Override
public PageResponse<FireAlarmMeetingRoomCO> listPage(FireAlarmMeetingRoomPageQry qry) {
Map<String, Object> params = new HashMap<>();
params.put("pageIndex", qry.getPageIndex());
params.put("pageSize", qry.getPageSize());
params.put("roomCode", qry.getRoomCode());
params.put("roomName", qry.getRoomName());
params.put("roomStatus", qry.getRoomStatus());
PageResponse<FireAlarmMeetingRoomDO> page = fireAlarmMeetingRoomRepository.listPage(params);
return PageResponse.of(fireAlarmMeetingRoomCoConvertor.converDOsToCOs(page.getData()),
page.getTotalCount(), page.getPageSize(), page.getPageIndex());
}
@Override
@Transactional(rollbackFor = Exception.class)
public SingleResponse<FireAlarmMeetingRoomCO> add(FireAlarmMeetingRoomAddCmd cmd) {
if (fireAlarmMeetingRoomRepository.existsByRoomCode(cmd.getRoomCode(), null)) {
throw new BizException("会议室编码已存在");
}
FireAlarmMeetingRoomDO room = new FireAlarmMeetingRoomDO();
room.setId(nextId());
room.setFireAlarmMeetingRoomId(nextBizId());
room.setRebuildCount(0);
fillCreateAudit(room);
fillRoom(room, cmd);
fireAlarmMeetingRoomRepository.save(room);
return SingleResponse.of(fireAlarmMeetingRoomCoConvertor.converDOToCO(room));
}
@Override
@Transactional(rollbackFor = Exception.class)
public void edit(FireAlarmMeetingRoomUpdateCmd cmd) {
FireAlarmMeetingRoomDO room = fireAlarmMeetingRoomRepository.getById(cmd.getId());
if (room == null) {
throw new BizException("会议室不存在");
}
if (fireAlarmMeetingRoomRepository.existsByRoomCode(cmd.getRoomCode(), cmd.getId())) {
throw new BizException("会议室编码已存在");
}
fillUpdateAudit(room);
fillRoom(room, cmd);
fireAlarmMeetingRoomRepository.updateById(room);
}
@Override
public FireAlarmMeetingRoomCO get(Long id) {
FireAlarmMeetingRoomDO room = fireAlarmMeetingRoomRepository.getById(id);
if (room == null) {
throw new BizException("会议室不存在");
}
return fireAlarmMeetingRoomCoConvertor.converDOToCO(room);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void remove(Long id) {
FireAlarmMeetingRoomDO room = fireAlarmMeetingRoomRepository.getById(id);
if (room == null) {
throw new BizException("会议室不存在");
}
fireAlarmMeetingRoomRepository.removeById(id);
}
private void fillRoom(FireAlarmMeetingRoomDO room, FireAlarmMeetingRoomAddCmd cmd) {
room.setRoomCode(cmd.getRoomCode());
room.setRoomName(cmd.getRoomName());
room.setThirdRoomId(cmd.getThirdRoomId());
room.setThirdRoomNo(cmd.getThirdRoomNo());
room.setRoomPasswordCipher(cmd.getRoomPasswordCipher());
room.setRoomStatus(cmd.getRoomStatus());
room.setRemarks(cmd.getRemarks());
}
private long nextId() {
return IdUtil.getSnowflake(1, 1).nextId();
}
private String nextBizId() {
return UUID.randomUUID().toString().replace("-", "");
}
}

View File

@ -0,0 +1,126 @@
package com.zcloud.zcGbsServicer.service;
import cn.hutool.core.util.IdUtil;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse;
import com.alibaba.cola.exception.BizException;
import com.zcloud.zcGbsServicer.command.convertor.FireAlarmMeetingUserCoConvertor;
import com.zcloud.zcGbsServicer.api.FireAlarmMeetingUserServiceI;
import com.zcloud.zcGbsServicer.dto.FireAlarmMeetingUserAddCmd;
import com.zcloud.zcGbsServicer.dto.FireAlarmMeetingUserPageQry;
import com.zcloud.zcGbsServicer.dto.FireAlarmMeetingUserUpdateCmd;
import com.zcloud.zcGbsServicer.dto.clientobject.FireAlarmMeetingUserCO;
import com.zcloud.zcGbsServicer.persistence.dataobject.FireAlarmMeetingUserDO;
import com.zcloud.zcGbsServicer.persistence.dataobject.FireBrigadeDO;
import com.zcloud.zcGbsServicer.persistence.repository.FireAlarmMeetingUserRepository;
import com.zcloud.zcGbsServicer.persistence.repository.FireBrigadeRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import java.util.stream.Collectors;
@Service
@RequiredArgsConstructor
public class FireAlarmMeetingUserServiceImpl extends FireAlarmServiceSupport implements FireAlarmMeetingUserServiceI {
private final FireAlarmMeetingUserRepository fireAlarmMeetingUserRepository;
private final FireBrigadeRepository fireBrigadeRepository;
private final FireAlarmMeetingUserCoConvertor fireAlarmMeetingUserCoConvertor;
@Override
public PageResponse<FireAlarmMeetingUserCO> listPage(FireAlarmMeetingUserPageQry qry) {
Map<String, Object> params = new HashMap<>();
params.put("pageIndex", qry.getPageIndex());
params.put("pageSize", qry.getPageSize());
params.put("localUserName", qry.getLocalUserName());
params.put("fireBrigadeName", qry.getFireBrigadeName());
params.put("userType", qry.getUserType());
params.put("authStatus", qry.getAuthStatus());
params.put("syncStatus", qry.getSyncStatus());
PageResponse<FireAlarmMeetingUserDO> page = fireAlarmMeetingUserRepository.listPage(params);
return PageResponse.of(fireAlarmMeetingUserCoConvertor.converDOsToCOs(page.getData()),
page.getTotalCount(), page.getPageSize(), page.getPageIndex());
}
@Override
@Transactional(rollbackFor = Exception.class)
public SingleResponse<FireAlarmMeetingUserCO> add(FireAlarmMeetingUserAddCmd cmd) {
if (fireAlarmMeetingUserRepository.existsByLocalUserId(cmd.getLocalUserId(), null)) {
throw new BizException("会议用户已存在");
}
FireAlarmMeetingUserDO user = new FireAlarmMeetingUserDO();
user.setId(nextId());
user.setFireAlarmMeetingUserId(nextBizId());
fillCreateAudit(user);
fillMeetingUser(user, cmd);
fireAlarmMeetingUserRepository.save(user);
return SingleResponse.of(fireAlarmMeetingUserCoConvertor.converDOToCO(user));
}
@Override
@Transactional(rollbackFor = Exception.class)
public void edit(FireAlarmMeetingUserUpdateCmd cmd) {
FireAlarmMeetingUserDO user = fireAlarmMeetingUserRepository.getById(cmd.getId());
if (user == null) {
throw new BizException("会议用户不存在");
}
if (fireAlarmMeetingUserRepository.existsByLocalUserId(cmd.getLocalUserId(), cmd.getId())) {
throw new BizException("会议用户已存在");
}
fillUpdateAudit(user);
fillMeetingUser(user, cmd);
fireAlarmMeetingUserRepository.updateById(user);
}
@Override
public FireAlarmMeetingUserCO get(Long id) {
FireAlarmMeetingUserDO user = fireAlarmMeetingUserRepository.getById(id);
if (user == null) {
throw new BizException("会议用户不存在");
}
return fireAlarmMeetingUserCoConvertor.converDOToCO(user);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void remove(Long id) {
FireAlarmMeetingUserDO user = fireAlarmMeetingUserRepository.getById(id);
if (user == null) {
throw new BizException("会议用户不存在");
}
fireAlarmMeetingUserRepository.removeById(id);
}
private void fillMeetingUser(FireAlarmMeetingUserDO user, FireAlarmMeetingUserAddCmd cmd) {
user.setLocalUserId(cmd.getLocalUserId());
user.setLocalUserName(cmd.getLocalUserName());
user.setLocalPhone(cmd.getLocalPhone());
user.setUserType(cmd.getUserType());
FireBrigadeDO brigade = cmd.getFireBrigadePkId() == null ? null : fireBrigadeRepository.getById(cmd.getFireBrigadePkId());
user.setFireBrigadeId(brigade == null ? null : brigade.getFireBrigadeId());
user.setFireBrigadeName(brigade == null ? cmd.getFireBrigadeName() : brigade.getBrigadeName());
user.setThirdUserId(cmd.getThirdUserId());
user.setThirdUserName(cmd.getThirdUserName());
user.setThirdNickName(cmd.getThirdNickName());
user.setThirdDepartId(cmd.getThirdDepartId());
user.setThirdDepartName(cmd.getThirdDepartName());
user.setAuthRoomId(cmd.getAuthRoomId());
user.setAuthRoomName(cmd.getAuthRoomName());
user.setAuthStatus(cmd.getAuthStatus());
user.setSyncStatus(cmd.getSyncStatus());
user.setSyncMsg(cmd.getSyncMsg());
user.setRemarks(cmd.getRemarks());
}
private long nextId() {
return IdUtil.getSnowflake(1, 1).nextId();
}
private String nextBizId() {
return UUID.randomUUID().toString().replace("-", "");
}
}

View File

@ -12,10 +12,8 @@ import com.zcloud.zcGbsServicer.dto.FireBrigadeAddCmd;
import com.zcloud.zcGbsServicer.dto.FireBrigadePageQry; import com.zcloud.zcGbsServicer.dto.FireBrigadePageQry;
import com.zcloud.zcGbsServicer.dto.FireBrigadeUpdateCmd; import com.zcloud.zcGbsServicer.dto.FireBrigadeUpdateCmd;
import com.zcloud.zcGbsServicer.dto.clientobject.FireBrigadeCO; import com.zcloud.zcGbsServicer.dto.clientobject.FireBrigadeCO;
import com.zcloud.zcGbsServicer.persistence.dataobject.FireAlarmMeetingMemberStatusDO;
import com.zcloud.zcGbsServicer.persistence.dataobject.FireBrigadeDO; import com.zcloud.zcGbsServicer.persistence.dataobject.FireBrigadeDO;
import com.zcloud.zcGbsServicer.persistence.dataobject.FireBrigadeUserDO; import com.zcloud.zcGbsServicer.persistence.dataobject.FireBrigadeUserDO;
import com.zcloud.zcGbsServicer.persistence.repository.FireAlarmMeetingMemberStatusRepository;
import com.zcloud.zcGbsServicer.persistence.repository.FireBrigadeRepository; import com.zcloud.zcGbsServicer.persistence.repository.FireBrigadeRepository;
import com.zcloud.zcGbsServicer.persistence.repository.FireBrigadeUserRepository; import com.zcloud.zcGbsServicer.persistence.repository.FireBrigadeUserRepository;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -36,7 +34,6 @@ public class FireBrigadeServiceImpl extends FireAlarmServiceSupport implements F
private final FireBrigadeRepository fireBrigadeRepository; private final FireBrigadeRepository fireBrigadeRepository;
private final FireBrigadeUserRepository fireBrigadeUserRepository; private final FireBrigadeUserRepository fireBrigadeUserRepository;
private final FireAlarmMeetingMemberStatusRepository fireAlarmMeetingMemberStatusRepository;
private final FireAlarmUserResolver fireAlarmUserResolver; private final FireAlarmUserResolver fireAlarmUserResolver;
private final FireBrigadeCoConvertor fireBrigadeCoConvertor; private final FireBrigadeCoConvertor fireBrigadeCoConvertor;
@ -48,9 +45,8 @@ public class FireBrigadeServiceImpl extends FireAlarmServiceSupport implements F
params.put("brigadeName", qry.getName()); params.put("brigadeName", qry.getName());
PageResponse<FireBrigadeDO> page = fireBrigadeRepository.listPage(params); PageResponse<FireBrigadeDO> page = fireBrigadeRepository.listPage(params);
Map<Long, ZcloudUserCo> userMap = getLeaderUserMap(page.getData()); Map<Long, ZcloudUserCo> userMap = getLeaderUserMap(page.getData());
Set<String> onlineBrigadeIdSet = getOnlineBrigadeIdSet();
List<FireBrigadeCO> data = page.getData().stream() List<FireBrigadeCO> data = page.getData().stream()
.map(item -> buildCO(item, userMap, onlineBrigadeIdSet)) .map(item -> buildCO(item, userMap))
.collect(Collectors.toList()); .collect(Collectors.toList());
return PageResponse.of(data, page.getTotalCount(), page.getPageSize(), page.getPageIndex()); return PageResponse.of(data, page.getTotalCount(), page.getPageSize(), page.getPageIndex());
} }
@ -71,7 +67,7 @@ public class FireBrigadeServiceImpl extends FireAlarmServiceSupport implements F
fillBrigade(brigade, cmd); fillBrigade(brigade, cmd);
fireBrigadeRepository.save(brigade); fireBrigadeRepository.save(brigade);
ensureLeaderRelation(brigade); ensureLeaderRelation(brigade);
return SingleResponse.of(buildCO(brigade, getLeaderUserMap(Collections.singletonList(brigade)), getOnlineBrigadeIdSet())); return SingleResponse.of(buildCO(brigade, getLeaderUserMap(Collections.singletonList(brigade))));
} }
@Override @Override
@ -99,7 +95,7 @@ public class FireBrigadeServiceImpl extends FireAlarmServiceSupport implements F
if (brigade == null) { if (brigade == null) {
throw new BizException("消防队伍不存在"); throw new BizException("消防队伍不存在");
} }
return buildCO(brigade, getLeaderUserMap(Collections.singletonList(brigade)), getOnlineBrigadeIdSet()); return buildCO(brigade, getLeaderUserMap(Collections.singletonList(brigade)));
} }
@Override @Override
@ -163,26 +159,18 @@ public class FireBrigadeServiceImpl extends FireAlarmServiceSupport implements F
relation.setOrgName(brigade.getLeaderDeptName()); relation.setOrgName(brigade.getLeaderDeptName());
} }
private FireBrigadeCO buildCO(FireBrigadeDO brigade, Map<Long, ZcloudUserCo> userMap, Set<String> onlineBrigadeIdSet) { private FireBrigadeCO buildCO(FireBrigadeDO brigade, Map<Long, ZcloudUserCo> userMap) {
FireBrigadeCO co = fireBrigadeCoConvertor.converDOToCO(brigade); FireBrigadeCO co = fireBrigadeCoConvertor.converDOToCO(brigade);
ZcloudUserCo leader = brigade.getLeaderUserId() == null ? null : userMap.get(brigade.getLeaderUserId()); ZcloudUserCo leader = brigade.getLeaderUserId() == null ? null : userMap.get(brigade.getLeaderUserId());
co.setLeaderDeptName(selectText(leader == null ? null : leader.getDepartmentName(), co.getLeaderDeptName())); co.setLeaderDeptName(selectText(leader == null ? null : leader.getDepartmentName(), co.getLeaderDeptName()));
co.setLeaderName(selectText(leader == null ? null : leader.getName(), co.getLeaderName())); co.setLeaderName(selectText(leader == null ? null : leader.getName(), co.getLeaderName()));
co.setLeaderPhone(selectText(leader == null ? null : leader.getPhone(), co.getLeaderPhone())); co.setLeaderPhone(selectText(leader == null ? null : leader.getPhone(), co.getLeaderPhone()));
co.setMemberCount(fireBrigadeUserRepository.listByFireBrigadeId(brigade.getFireBrigadeId()).size()); co.setMemberCount(fireBrigadeUserRepository.listByFireBrigadeId(brigade.getFireBrigadeId()).size());
boolean online = onlineBrigadeIdSet.contains(brigade.getFireBrigadeId()); co.setOnline(Boolean.FALSE);
co.setOnline(online); co.setOnlineText("未统计");
co.setOnlineText(online ? "在线" : "未在线");
return co; return co;
} }
private Set<String> getOnlineBrigadeIdSet() {
return fireAlarmMeetingMemberStatusRepository.listOnlineList().stream()
.map(FireAlarmMeetingMemberStatusDO::getFireBrigadeId)
.filter(StrUtil::isNotBlank)
.collect(Collectors.toSet());
}
private String selectText(String preferred, String fallback) { private String selectText(String preferred, String fallback) {
return StrUtil.isNotBlank(preferred) ? preferred : fallback; return StrUtil.isNotBlank(preferred) ? preferred : fallback;
} }

View File

@ -0,0 +1,21 @@
package com.zcloud.zcGbsServicer.api;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse;
import com.zcloud.zcGbsServicer.dto.FireAlarmMeetingRoomAddCmd;
import com.zcloud.zcGbsServicer.dto.FireAlarmMeetingRoomPageQry;
import com.zcloud.zcGbsServicer.dto.FireAlarmMeetingRoomUpdateCmd;
import com.zcloud.zcGbsServicer.dto.clientobject.FireAlarmMeetingRoomCO;
public interface FireAlarmMeetingRoomServiceI {
PageResponse<FireAlarmMeetingRoomCO> listPage(FireAlarmMeetingRoomPageQry qry);
SingleResponse<FireAlarmMeetingRoomCO> add(FireAlarmMeetingRoomAddCmd cmd);
void edit(FireAlarmMeetingRoomUpdateCmd cmd);
FireAlarmMeetingRoomCO get(Long id);
void remove(Long id);
}

View File

@ -0,0 +1,21 @@
package com.zcloud.zcGbsServicer.api;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse;
import com.zcloud.zcGbsServicer.dto.FireAlarmMeetingUserAddCmd;
import com.zcloud.zcGbsServicer.dto.FireAlarmMeetingUserPageQry;
import com.zcloud.zcGbsServicer.dto.FireAlarmMeetingUserUpdateCmd;
import com.zcloud.zcGbsServicer.dto.clientobject.FireAlarmMeetingUserCO;
public interface FireAlarmMeetingUserServiceI {
PageResponse<FireAlarmMeetingUserCO> listPage(FireAlarmMeetingUserPageQry qry);
SingleResponse<FireAlarmMeetingUserCO> add(FireAlarmMeetingUserAddCmd cmd);
void edit(FireAlarmMeetingUserUpdateCmd cmd);
FireAlarmMeetingUserCO get(Long id);
void remove(Long id);
}

View File

@ -0,0 +1,36 @@
package com.zcloud.zcGbsServicer.dto;
import com.alibaba.cola.dto.Command;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@Data
public class FireAlarmMeetingRoomAddCmd extends Command {
@NotBlank
@ApiModelProperty("房间编码")
private String roomCode;
@NotBlank
@ApiModelProperty("房间名称")
private String roomName;
@ApiModelProperty("三方会议室ID")
private String thirdRoomId;
@ApiModelProperty("三方会议室号")
private String thirdRoomNo;
@ApiModelProperty("会议室密码密文")
private String roomPasswordCipher;
@NotNull
@ApiModelProperty("房间状态")
private Integer roomStatus;
@ApiModelProperty("备注")
private String remarks;
}

View File

@ -0,0 +1,18 @@
package com.zcloud.zcGbsServicer.dto;
import com.alibaba.cola.dto.PageQuery;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class FireAlarmMeetingRoomPageQry extends PageQuery {
@ApiModelProperty("房间编码")
private String roomCode;
@ApiModelProperty("房间名称")
private String roomName;
@ApiModelProperty("房间状态")
private Integer roomStatus;
}

View File

@ -0,0 +1,14 @@
package com.zcloud.zcGbsServicer.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
public class FireAlarmMeetingRoomUpdateCmd extends FireAlarmMeetingRoomAddCmd {
@NotNull
@ApiModelProperty("主键ID")
private Long id;
}

View File

@ -0,0 +1,66 @@
package com.zcloud.zcGbsServicer.dto;
import com.alibaba.cola.dto.Command;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@Data
public class FireAlarmMeetingUserAddCmd extends Command {
@NotNull
@ApiModelProperty("本地用户ID")
private Long localUserId;
@NotBlank
@ApiModelProperty("本地用户名称")
private String localUserName;
@ApiModelProperty("本地手机号")
private String localPhone;
@NotNull
@ApiModelProperty("用户类型")
private Integer userType;
@ApiModelProperty("消防队伍主键ID")
private Long fireBrigadePkId;
@ApiModelProperty("消防队伍名称")
private String fireBrigadeName;
@ApiModelProperty("三方用户ID")
private String thirdUserId;
@ApiModelProperty("三方用户账号")
private String thirdUserName;
@ApiModelProperty("三方用户昵称")
private String thirdNickName;
@ApiModelProperty("三方部门ID")
private String thirdDepartId;
@ApiModelProperty("三方部门名称")
private String thirdDepartName;
@ApiModelProperty("最近授权会议室ID")
private String authRoomId;
@ApiModelProperty("最近授权会议室名称")
private String authRoomName;
@ApiModelProperty("授权状态")
private Integer authStatus;
@ApiModelProperty("同步状态")
private Integer syncStatus;
@ApiModelProperty("同步结果")
private String syncMsg;
@ApiModelProperty("备注")
private String remarks;
}

View File

@ -0,0 +1,24 @@
package com.zcloud.zcGbsServicer.dto;
import com.alibaba.cola.dto.PageQuery;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class FireAlarmMeetingUserPageQry extends PageQuery {
@ApiModelProperty("本地用户名称")
private String localUserName;
@ApiModelProperty("消防队伍名称")
private String fireBrigadeName;
@ApiModelProperty("用户类型")
private Integer userType;
@ApiModelProperty("授权状态")
private Integer authStatus;
@ApiModelProperty("同步状态")
private Integer syncStatus;
}

View File

@ -0,0 +1,14 @@
package com.zcloud.zcGbsServicer.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
public class FireAlarmMeetingUserUpdateCmd extends FireAlarmMeetingUserAddCmd {
@NotNull
@ApiModelProperty("主键ID")
private Long id;
}

View File

@ -0,0 +1,27 @@
package com.zcloud.zcGbsServicer.dto.clientobject;
import com.alibaba.cola.dto.ClientObject;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class FireAlarmMeetingRoomCO extends ClientObject {
private Long id;
private String fireAlarmMeetingRoomId;
private String roomCode;
private String roomName;
private String thirdRoomId;
private String thirdRoomNo;
private String roomPasswordCipher;
private Integer roomStatus;
private LocalDateTime lastCheckTime;
private Integer lastCheckStatus;
private String lastCheckMsg;
private LocalDateTime lastRebuildTime;
private Integer lastRebuildStatus;
private String lastRebuildMsg;
private Integer rebuildCount;
private String remarks;
}

View File

@ -0,0 +1,32 @@
package com.zcloud.zcGbsServicer.dto.clientobject;
import com.alibaba.cola.dto.ClientObject;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class FireAlarmMeetingUserCO extends ClientObject {
private Long id;
private String fireAlarmMeetingUserId;
private Long localUserId;
private String localUserName;
private String localPhone;
private Integer userType;
private String fireBrigadeId;
private String fireBrigadeName;
private String thirdUserId;
private String thirdUserName;
private String thirdNickName;
private String thirdDepartId;
private String thirdDepartName;
private String authRoomId;
private String authRoomName;
private Integer authStatus;
private LocalDateTime authTime;
private Integer syncStatus;
private String syncMsg;
private LocalDateTime lastSyncTime;
private String remarks;
}

View File

@ -0,0 +1,29 @@
package com.zcloud.zcGbsServicer.persistence.dataobject;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jjb.saas.framework.repository.basedo.BaseDO;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("fire_alarm_meeting_room")
public class FireAlarmMeetingRoomDO extends BaseDO {
private String fireAlarmMeetingRoomId;
private String roomCode;
private String roomName;
private String thirdRoomId;
private String thirdRoomNo;
private String roomPasswordCipher;
private Integer roomStatus;
private LocalDateTime lastCheckTime;
private Integer lastCheckStatus;
private String lastCheckMsg;
private LocalDateTime lastRebuildTime;
private Integer lastRebuildStatus;
private String lastRebuildMsg;
private Integer rebuildCount;
}

View File

@ -0,0 +1,34 @@
package com.zcloud.zcGbsServicer.persistence.dataobject;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jjb.saas.framework.repository.basedo.BaseDO;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("fire_alarm_meeting_user")
public class FireAlarmMeetingUserDO extends BaseDO {
private String fireAlarmMeetingUserId;
private Long localUserId;
private String localUserName;
private String localPhone;
private Integer userType;
private String fireBrigadeId;
private String fireBrigadeName;
private String thirdUserId;
private String thirdUserName;
private String thirdNickName;
private String thirdDepartId;
private String thirdDepartName;
private String authRoomId;
private String authRoomName;
private Integer authStatus;
private LocalDateTime authTime;
private Integer syncStatus;
private String syncMsg;
private LocalDateTime lastSyncTime;
}

View File

@ -0,0 +1,9 @@
package com.zcloud.zcGbsServicer.persistence.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zcloud.zcGbsServicer.persistence.dataobject.FireAlarmMeetingRoomDO;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface FireAlarmMeetingRoomMapper extends BaseMapper<FireAlarmMeetingRoomDO> {
}

View File

@ -0,0 +1,9 @@
package com.zcloud.zcGbsServicer.persistence.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zcloud.zcGbsServicer.persistence.dataobject.FireAlarmMeetingUserDO;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface FireAlarmMeetingUserMapper extends BaseMapper<FireAlarmMeetingUserDO> {
}

View File

@ -0,0 +1,16 @@
package com.zcloud.zcGbsServicer.persistence.repository;
import com.alibaba.cola.dto.PageResponse;
import com.jjb.saas.framework.repository.repo.BaseRepository;
import com.zcloud.zcGbsServicer.persistence.dataobject.FireAlarmMeetingRoomDO;
import java.util.Map;
public interface FireAlarmMeetingRoomRepository extends BaseRepository<FireAlarmMeetingRoomDO> {
PageResponse<FireAlarmMeetingRoomDO> listPage(Map<String, Object> params);
boolean existsByRoomCode(String roomCode, Long excludeId);
FireAlarmMeetingRoomDO getByRoomCode(String roomCode);
}

View File

@ -0,0 +1,18 @@
package com.zcloud.zcGbsServicer.persistence.repository;
import com.alibaba.cola.dto.PageResponse;
import com.jjb.saas.framework.repository.repo.BaseRepository;
import com.zcloud.zcGbsServicer.persistence.dataobject.FireAlarmMeetingUserDO;
import java.util.Map;
public interface FireAlarmMeetingUserRepository extends BaseRepository<FireAlarmMeetingUserDO> {
PageResponse<FireAlarmMeetingUserDO> listPage(Map<String, Object> params);
boolean existsByLocalUserId(Long localUserId, Long excludeId);
FireAlarmMeetingUserDO getByLocalUserId(Long localUserId);
java.util.List<FireAlarmMeetingUserDO> listAll();
}

View File

@ -0,0 +1,78 @@
package com.zcloud.zcGbsServicer.persistence.repository.impl;
import cn.hutool.core.util.StrUtil;
import com.alibaba.cola.dto.PageResponse;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.jjb.saas.framework.repository.common.PageHelper;
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
import com.zcloud.gbscommon.utils.Query;
import com.zcloud.zcGbsServicer.persistence.dataobject.FireAlarmMeetingRoomDO;
import com.zcloud.zcGbsServicer.persistence.mapper.FireAlarmMeetingRoomMapper;
import com.zcloud.zcGbsServicer.persistence.repository.FireAlarmMeetingRoomRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Map;
@Service
@RequiredArgsConstructor
public class FireAlarmMeetingRoomRepositoryImpl extends BaseRepositoryImpl<FireAlarmMeetingRoomMapper, FireAlarmMeetingRoomDO> implements FireAlarmMeetingRoomRepository {
@Override
public PageResponse<FireAlarmMeetingRoomDO> listPage(Map<String, Object> params) {
IPage<FireAlarmMeetingRoomDO> page = new Query<FireAlarmMeetingRoomDO>().getPage(params);
QueryWrapper<FireAlarmMeetingRoomDO> wrapper = new QueryWrapper<>();
wrapper.eq("delete_enum", "FALSE");
if (AuthContext.getTenantId() != null) {
wrapper.eq("tenant_id", AuthContext.getTenantId());
}
if (params != null) {
String roomCode = (String) params.get("roomCode");
String roomName = (String) params.get("roomName");
Integer roomStatus = (Integer) params.get("roomStatus");
if (StrUtil.isNotBlank(roomCode)) {
wrapper.like("room_code", roomCode.trim());
}
if (StrUtil.isNotBlank(roomName)) {
wrapper.like("room_name", roomName.trim());
}
if (roomStatus != null) {
wrapper.eq("room_status", roomStatus);
}
}
wrapper.orderByDesc("create_time");
IPage<FireAlarmMeetingRoomDO> result = this.page(page, wrapper);
return PageHelper.pageToResponse(result, result.getRecords());
}
@Override
public boolean existsByRoomCode(String roomCode, Long excludeId) {
if (StrUtil.isBlank(roomCode)) {
return false;
}
QueryWrapper<FireAlarmMeetingRoomDO> wrapper = new QueryWrapper<>();
wrapper.eq("room_code", roomCode.trim()).eq("delete_enum", "FALSE");
if (AuthContext.getTenantId() != null) {
wrapper.eq("tenant_id", AuthContext.getTenantId());
}
if (excludeId != null) {
wrapper.ne("id", excludeId);
}
return this.count(wrapper) > 0;
}
@Override
public FireAlarmMeetingRoomDO getByRoomCode(String roomCode) {
if (StrUtil.isBlank(roomCode)) {
return null;
}
QueryWrapper<FireAlarmMeetingRoomDO> wrapper = new QueryWrapper<>();
wrapper.eq("room_code", roomCode.trim()).eq("delete_enum", "FALSE").last("limit 1");
if (AuthContext.getTenantId() != null) {
wrapper.eq("tenant_id", AuthContext.getTenantId());
}
return this.getOne(wrapper);
}
}

View File

@ -0,0 +1,94 @@
package com.zcloud.zcGbsServicer.persistence.repository.impl;
import cn.hutool.core.util.StrUtil;
import com.alibaba.cola.dto.PageResponse;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.jjb.saas.framework.repository.common.PageHelper;
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
import com.zcloud.gbscommon.utils.Query;
import com.zcloud.zcGbsServicer.persistence.dataobject.FireAlarmMeetingUserDO;
import com.zcloud.zcGbsServicer.persistence.mapper.FireAlarmMeetingUserMapper;
import com.zcloud.zcGbsServicer.persistence.repository.FireAlarmMeetingUserRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Map;
@Service
@RequiredArgsConstructor
public class FireAlarmMeetingUserRepositoryImpl extends BaseRepositoryImpl<FireAlarmMeetingUserMapper, FireAlarmMeetingUserDO> implements FireAlarmMeetingUserRepository {
@Override
public PageResponse<FireAlarmMeetingUserDO> listPage(Map<String, Object> params) {
IPage<FireAlarmMeetingUserDO> page = new Query<FireAlarmMeetingUserDO>().getPage(params);
QueryWrapper<FireAlarmMeetingUserDO> wrapper = new QueryWrapper<>();
wrapper.eq("delete_enum", "FALSE");
if (AuthContext.getTenantId() != null) {
wrapper.eq("tenant_id", AuthContext.getTenantId());
}
if (params != null) {
String localUserName = (String) params.get("localUserName");
String fireBrigadeName = (String) params.get("fireBrigadeName");
Integer userType = (Integer) params.get("userType");
Integer authStatus = (Integer) params.get("authStatus");
Integer syncStatus = (Integer) params.get("syncStatus");
if (StrUtil.isNotBlank(localUserName)) {
wrapper.like("local_user_name", localUserName.trim());
}
if (StrUtil.isNotBlank(fireBrigadeName)) {
wrapper.like("fire_brigade_name", fireBrigadeName.trim());
}
if (userType != null) {
wrapper.eq("user_type", userType);
}
if (authStatus != null) {
wrapper.eq("auth_status", authStatus);
}
if (syncStatus != null) {
wrapper.eq("sync_status", syncStatus);
}
}
wrapper.orderByDesc("create_time");
IPage<FireAlarmMeetingUserDO> result = this.page(page, wrapper);
return PageHelper.pageToResponse(result, result.getRecords());
}
@Override
public boolean existsByLocalUserId(Long localUserId, Long excludeId) {
if (localUserId == null) {
return false;
}
QueryWrapper<FireAlarmMeetingUserDO> wrapper = new QueryWrapper<>();
wrapper.eq("local_user_id", localUserId).eq("delete_enum", "FALSE");
if (AuthContext.getTenantId() != null) {
wrapper.eq("tenant_id", AuthContext.getTenantId());
}
if (excludeId != null) {
wrapper.ne("id", excludeId);
}
return this.count(wrapper) > 0;
}
@Override
public FireAlarmMeetingUserDO getByLocalUserId(Long localUserId) {
if (localUserId == null) {
return null;
}
QueryWrapper<FireAlarmMeetingUserDO> wrapper = new QueryWrapper<>();
wrapper.eq("local_user_id", localUserId).eq("delete_enum", "FALSE").last("limit 1");
if (AuthContext.getTenantId() != null) {
wrapper.eq("tenant_id", AuthContext.getTenantId());
}
return this.getOne(wrapper);
}
@Override
public java.util.List<FireAlarmMeetingUserDO> listAll() {
return this.list(new LambdaQueryWrapper<FireAlarmMeetingUserDO>()
.eq(FireAlarmMeetingUserDO::getTenantId, AuthContext.getTenantId())
.eq(FireAlarmMeetingUserDO::getDeleteEnum, "FALSE"));
}
}