123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- package com.fdkankan.fusion.service.impl;
- import java.util.Arrays;
- import java.util.Date;
- import java.util.List;
- import java.util.stream.Collectors;
- import cn.dev33.satoken.stp.StpUtil;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.fdkankan.fusion.common.ResultCode;
- import com.fdkankan.fusion.common.ResultData;
- import com.fdkankan.fusion.entity.CaseEntity;
- import com.fdkankan.fusion.entity.CaseLive;
- import com.fdkankan.fusion.entity.CaseNumEntity;
- import com.fdkankan.fusion.exception.BusinessException;
- import com.fdkankan.fusion.httpClient.FdService;
- import com.fdkankan.fusion.httpClient.request.FdRoomAddParam;
- import com.fdkankan.fusion.httpClient.response.FdRoomVo;
- import com.fdkankan.fusion.httpClient.response.FdkkResponse;
- import com.fdkankan.fusion.mapper.ICaseLiveMapper;
- import com.fdkankan.fusion.service.ICaseLiveService;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.fdkankan.fusion.service.ICaseNumService;
- import com.fdkankan.fusion.service.ICaseService;
- import org.apache.commons.collections4.CollectionUtils;
- import org.apache.commons.collections4.ListUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- /**
- * <p>
- * 服务实现类
- * </p>
- *
- * @author
- * @since 2023-08-10
- */
- @Service
- public class CaseLiveServiceImpl extends ServiceImpl<ICaseLiveMapper, CaseLive> implements ICaseLiveService {
- @Autowired
- FdService fdService;
- @Autowired
- ICaseNumService caseNumService;
- @Autowired
- ICaseService caseService;
- @Override
- public Object getByCaseId(Integer caseId,String userName) {
- CaseEntity caseEntity = caseService.getById(caseId);
- if(caseEntity == null ){
- throw new BusinessException(ResultCode.CASE_NOT_EXITS);
- }
- LambdaQueryWrapper<CaseLive> wrapper = new LambdaQueryWrapper<>();
- wrapper.eq(CaseLive::getCaseId,caseId);
- wrapper.eq(CaseLive::getUserName,userName);
- CaseLive caseLive = this.getOne(wrapper);
- List<CaseNumEntity> caseNumEntities = caseNumService.getByCaseId(caseId);
- if(caseNumEntities == null || caseNumEntities.size() <=0 ){
- throw new BusinessException(ResultCode.PROJECT_SCENE_NOT_EXITS);
- }
- List<String> numList = caseNumEntities.stream().map(CaseNumEntity::getNum).collect(Collectors.toList());
- if(caseLive == null){
- caseLive = new CaseLive();
- caseLive.setCaseId(caseId);
- caseLive.setUserName(userName);
- }
- Boolean flag = this.getCheckCreateRoom(caseLive.getNumList(),numList);
- if(!flag){
- ResultData<FdRoomAddParam> fdkkResponse = fdService.fdCreateTakeLookRoom(caseEntity.getCaseTitle(),numList,caseLive.getTakeRoomId());
- if(fdkkResponse.getCode() != 0){
- throw new BusinessException(fdkkResponse.getCode(),fdkkResponse.getMessage());
- }
- caseLive.setTakeRoomId(fdkkResponse.getData().getRoomId());
- List<String> numList1 = fdkkResponse.getData().getNumList();
- caseLive.setNumList(JSONArray.parseArray(JSON.toJSONString(numList1)));
- this.saveOrUpdate(caseLive);
- }
- fdService.fdOpenTakeLookRoom(caseLive.getTakeRoomId());
- return caseLive.getTakeRoomId();
- }
- private Boolean getCheckCreateRoom(JSONArray array,List<String> numList) {
- if(array == null || array.isEmpty() ){
- return false;
- }
- List<String> lists = array.toJavaList(String.class);
- if(lists.size() != numList.size()){
- return false;
- }
- Boolean flag = true;
- for (String list : lists) {
- if(!numList.contains(list)){
- flag = false;
- }
- }
- for (String list : numList) {
- if(!lists.contains(list)){
- flag = false;
- }
- }
- return flag;
- }
- }
|