CaseLiveServiceImpl.java 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. package com.fdkankan.fusion.service.impl;
  2. import java.util.Arrays;
  3. import java.util.Date;
  4. import java.util.List;
  5. import java.util.stream.Collectors;
  6. import cn.dev33.satoken.stp.StpUtil;
  7. import com.alibaba.fastjson.JSON;
  8. import com.alibaba.fastjson.JSONArray;
  9. import com.alibaba.fastjson.JSONObject;
  10. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  11. import com.fdkankan.fusion.common.ResultCode;
  12. import com.fdkankan.fusion.entity.CaseEntity;
  13. import com.fdkankan.fusion.entity.CaseLive;
  14. import com.fdkankan.fusion.entity.CaseNumEntity;
  15. import com.fdkankan.fusion.exception.BusinessException;
  16. import com.fdkankan.fusion.httpClient.FdService;
  17. import com.fdkankan.fusion.httpClient.request.FdRoomAddParam;
  18. import com.fdkankan.fusion.httpClient.response.FdRoomVo;
  19. import com.fdkankan.fusion.httpClient.response.FdkkResponse;
  20. import com.fdkankan.fusion.mapper.ICaseLiveMapper;
  21. import com.fdkankan.fusion.service.ICaseLiveService;
  22. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  23. import com.fdkankan.fusion.service.ICaseNumService;
  24. import com.fdkankan.fusion.service.ICaseService;
  25. import org.apache.commons.collections4.CollectionUtils;
  26. import org.apache.commons.collections4.ListUtils;
  27. import org.springframework.beans.factory.annotation.Autowired;
  28. import org.springframework.stereotype.Service;
  29. /**
  30. * <p>
  31. * 服务实现类
  32. * </p>
  33. *
  34. * @author
  35. * @since 2023-08-10
  36. */
  37. @Service
  38. public class CaseLiveServiceImpl extends ServiceImpl<ICaseLiveMapper, CaseLive> implements ICaseLiveService {
  39. @Autowired
  40. FdService fdService;
  41. @Autowired
  42. ICaseNumService caseNumService;
  43. @Autowired
  44. ICaseService caseService;
  45. @Override
  46. public Object getByCaseId(Integer caseId) {
  47. CaseEntity caseEntity = caseService.getById(caseId);
  48. if(caseEntity == null ){
  49. throw new BusinessException(ResultCode.CASE_NOT_EXITS);
  50. }
  51. LambdaQueryWrapper<CaseLive> wrapper = new LambdaQueryWrapper<>();
  52. wrapper.eq(CaseLive::getCaseId,caseId);
  53. wrapper.eq(CaseLive::getTmUserId, StpUtil.getLoginId());
  54. CaseLive caseLive = this.getOne(wrapper);
  55. List<CaseNumEntity> caseNumEntities = caseNumService.getByCaseId(caseId);
  56. if(caseNumEntities == null || caseNumEntities.size() <=0 ){
  57. throw new BusinessException(ResultCode.PROJECT_SCENE_NOT_EXITS);
  58. }
  59. List<String> numList = caseNumEntities.stream().map(CaseNumEntity::getNum).collect(Collectors.toList());
  60. if(caseLive == null){
  61. caseLive = new CaseLive();
  62. caseLive.setCaseId(caseId);
  63. caseLive.setTmUserId((String)StpUtil.getLoginId() );
  64. }
  65. Boolean flag = this.getCheckCreateRoom(caseLive.getNumList(),numList);
  66. if(!flag){
  67. FdkkResponse<FdRoomAddParam> fdkkResponse = fdService.fdCreateTakeLookRoom(caseEntity.getCaseTitle(),numList,caseLive.getTakeRoomId());
  68. if(fdkkResponse.getCode() != 0){
  69. throw new BusinessException(fdkkResponse.getCode(),fdkkResponse.getMsg());
  70. }
  71. caseLive.setTakeRoomId(fdkkResponse.getData().getRoomId());
  72. List<String> numList1 = fdkkResponse.getData().getNumList();
  73. caseLive.setNumList(JSONArray.parseArray(JSON.toJSONString(numList1)));
  74. this.saveOrUpdate(caseLive);
  75. }
  76. fdService.fdOpenTakeLookRoom(caseLive.getTakeRoomId());
  77. return caseLive.getTakeRoomId();
  78. }
  79. private Boolean getCheckCreateRoom(JSONArray array,List<String> numList) {
  80. if(array == null || array.isEmpty() ){
  81. return false;
  82. }
  83. //List<String> list = JSONObject.parseArray(array.toJSONString(), String.class);
  84. List<String> lists = array.toJavaList(String.class);
  85. return CollectionUtils.isEqualCollection(lists,numList);
  86. }
  87. }