【应急】IM视频通话
This commit is contained in:
+43
@@ -0,0 +1,43 @@
|
|||||||
|
package com.renkang.emergency.entity.dto;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
|
import javax.validation.constraints.NotEmpty;
|
||||||
|
import javax.validation.constraints.Size;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Huawei
|
||||||
|
* @version 1.0
|
||||||
|
* @description: 添加其他成员DTO
|
||||||
|
* @date 2025/11/3 10:41
|
||||||
|
*/
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Data
|
||||||
|
public class AddOtherMemberDTO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 群组id
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "群组id不能为空")
|
||||||
|
@Schema(title = "群组id")
|
||||||
|
private String groupId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 应急单id
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "应急单id不能为空")
|
||||||
|
@Schema(title = "应急单id")
|
||||||
|
private String orderId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 邀请成员id集合
|
||||||
|
*/
|
||||||
|
@NotEmpty(message = "邀请成员id集合不能为空")
|
||||||
|
@Size(min = 1, max = 100, message = "邀请成员数量必须在1-100个之间")
|
||||||
|
@Schema(title = "邀请成员id集合")
|
||||||
|
private List<String> memberList;
|
||||||
|
}
|
||||||
+51
@@ -0,0 +1,51 @@
|
|||||||
|
package com.renkang.emergency.entity.vo;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Huawei
|
||||||
|
* @version 1.0
|
||||||
|
* @description: 创建群聊VO
|
||||||
|
* @date 2025/11/3 10:41
|
||||||
|
*/
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Data
|
||||||
|
public class CreateGroupMagVO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 群组id
|
||||||
|
*/
|
||||||
|
@JsonProperty("groupId")
|
||||||
|
private String groupId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户id
|
||||||
|
*/
|
||||||
|
@JsonProperty("userId")
|
||||||
|
private String userId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 成员集合(当前加入成员)
|
||||||
|
*/
|
||||||
|
@JsonProperty("member")
|
||||||
|
private List<String> member;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 应急单id
|
||||||
|
*/
|
||||||
|
@JsonProperty("id")
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
@JsonProperty("tfNew")
|
||||||
|
private String tfNew;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 成员集合(待加入成员)
|
||||||
|
*/
|
||||||
|
@JsonProperty("otherMember")
|
||||||
|
private List<String> otherMember;
|
||||||
|
}
|
||||||
+45
@@ -0,0 +1,45 @@
|
|||||||
|
package com.renkang.emergency.entity.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Huawei
|
||||||
|
* @version 1.0
|
||||||
|
* @description: 群组成员VO
|
||||||
|
* @date 2025/11/5 13:17
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class GroupMemberVO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 应急单id
|
||||||
|
*/
|
||||||
|
@Schema(title = "应急单id")
|
||||||
|
private String orderId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户ID
|
||||||
|
*/
|
||||||
|
@Schema(title = "用户ID")
|
||||||
|
private String userId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户名称
|
||||||
|
*/
|
||||||
|
@Schema(title = "用户名称")
|
||||||
|
private String userName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 头像
|
||||||
|
*/
|
||||||
|
@Schema(title = "头像")
|
||||||
|
private String avatar;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否是群组成员, 0:不是群组成员, 1:是群组成员
|
||||||
|
*/
|
||||||
|
@Schema(title = "是否是群组成员, 0:不是群组成员, 1:是群组成员")
|
||||||
|
private Integer isGroupMember;
|
||||||
|
|
||||||
|
}
|
||||||
+6
@@ -29,6 +29,12 @@ public class WeekDataVO {
|
|||||||
@Schema(title ="专业人员集合")
|
@Schema(title ="专业人员集合")
|
||||||
private List<EmergencySchedulesItem> professionalUserList;
|
private List<EmergencySchedulesItem> professionalUserList;
|
||||||
|
|
||||||
|
@Schema(title ="操作人员id集合")
|
||||||
|
private List<String> operationUserListIds;
|
||||||
|
|
||||||
|
@Schema(title ="专业人员id集合")
|
||||||
|
private List<String> professionalUserListIds;
|
||||||
|
|
||||||
public List<EmergencySchedulesItem> getOperationUserList(List<EmergencySchedulesItem> itemList) {
|
public List<EmergencySchedulesItem> getOperationUserList(List<EmergencySchedulesItem> itemList) {
|
||||||
return itemList.stream()
|
return itemList.stream()
|
||||||
.filter(item -> "0".equals(item.getUserType()))
|
.filter(item -> "0".equals(item.getUserType()))
|
||||||
|
|||||||
+13
-8
@@ -8,6 +8,8 @@ import com.renkang.emergency.bean.request.SingleParam;
|
|||||||
import com.renkang.emergency.bean.response.Call;
|
import com.renkang.emergency.bean.response.Call;
|
||||||
import com.renkang.emergency.bean.response.Stat;
|
import com.renkang.emergency.bean.response.Stat;
|
||||||
import com.renkang.emergency.bean.response.StatSimple;
|
import com.renkang.emergency.bean.response.StatSimple;
|
||||||
|
import com.renkang.emergency.entity.dto.AddOtherMemberDTO;
|
||||||
|
import com.renkang.emergency.entity.vo.CreateGroupMagVO;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import org.jeecg.common.api.vo.Result;
|
import org.jeecg.common.api.vo.Result;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -95,19 +97,19 @@ public class EmergencyApiController {
|
|||||||
|
|
||||||
@Operation(summary = "创建群聊-应急")
|
@Operation(summary = "创建群聊-应急")
|
||||||
@GetMapping(value = "/createGroupMag")
|
@GetMapping(value = "/createGroupMag")
|
||||||
public Result<Map<String, Object>> createGroupMag(@RequestParam("name") String name, @RequestParam("longitude") String longitude,
|
public Result<CreateGroupMagVO> createGroupMag(@RequestParam("name") String name, @RequestParam("longitude") String longitude,
|
||||||
@RequestParam("latitude") String latitude,
|
@RequestParam("latitude") String latitude,
|
||||||
@RequestParam(required = false) String type) {
|
@RequestParam(required = false) String type) {
|
||||||
return emergencyApiService.createGroupMag(name, longitude, latitude, type);
|
return Result.OK(emergencyApiService.createGroupMag(name, longitude, latitude, type));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Operation(summary = "创建群聊-干预")
|
@Operation(summary = "创建群聊-干预")
|
||||||
@GetMapping(value = "/createGroupMagIntervene")
|
@GetMapping(value = "/createGroupMagIntervene")
|
||||||
public Result<Map<String, Object>> createGroupMagIntervene(@RequestParam("name") String name, @RequestParam("longitude") String longitude,
|
public Result<Map<String, Object>> createGroupMagIntervene(@RequestParam("name") String name, @RequestParam("longitude") String longitude,
|
||||||
@RequestParam("latitude") String latitude,
|
@RequestParam("latitude") String latitude,
|
||||||
@RequestParam(required = false) String type) {
|
@RequestParam(required = false) String type) {
|
||||||
return emergencyApiService.createGroupMagIntervene(name, longitude, latitude,type);
|
return emergencyApiService.createGroupMagIntervene(name, longitude, latitude, type);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = "/fixOrderStatus")
|
@GetMapping(value = "/fixOrderStatus")
|
||||||
@@ -115,7 +117,10 @@ public class EmergencyApiController {
|
|||||||
return Result.ok(emergencyApiService.fixOrderStatus());
|
return Result.ok(emergencyApiService.fixOrderStatus());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Operation(summary = "邀请用户加入群聊-应急")
|
||||||
|
@PostMapping(value = "/addGroupUser")
|
||||||
|
public Result<Boolean> addGroupUser(@RequestBody @Validated AddOtherMemberDTO dto) {
|
||||||
|
return Result.OK(emergencyApiService.addGroupUser(dto));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+13
@@ -15,6 +15,8 @@ import com.renkang.emergency.bean.response.SessionOrderUser;
|
|||||||
import com.renkang.emergency.entity.Order;
|
import com.renkang.emergency.entity.Order;
|
||||||
import com.renkang.emergency.entity.OrderDetail;
|
import com.renkang.emergency.entity.OrderDetail;
|
||||||
import com.renkang.emergency.entity.OrderSendRecord;
|
import com.renkang.emergency.entity.OrderSendRecord;
|
||||||
|
import com.renkang.emergency.entity.vo.GroupMemberVO;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import org.jeecg.common.api.vo.Result;
|
import org.jeecg.common.api.vo.Result;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
@@ -283,5 +285,16 @@ public class EmergencyOrderApiController {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description: 获取群组成员和其他专业人员
|
||||||
|
* @author PengJ
|
||||||
|
* @date 2025/11/5 13:14
|
||||||
|
*/
|
||||||
|
@Operation(summary = "获取群组成员和其他专业人员")
|
||||||
|
@GetMapping("/getGroupMemberList")
|
||||||
|
public Result<List<GroupMemberVO>> getGroupMemberList(@RequestParam("orderId") String orderId) {
|
||||||
|
return Result.OK(emergencyOrderApiService.getGroupMemberList(orderId));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-1
@@ -6,6 +6,8 @@ import com.renkang.emergency.bean.request.SingleParam;
|
|||||||
import com.renkang.emergency.bean.response.Call;
|
import com.renkang.emergency.bean.response.Call;
|
||||||
import com.renkang.emergency.bean.response.Stat;
|
import com.renkang.emergency.bean.response.Stat;
|
||||||
import com.renkang.emergency.bean.response.StatSimple;
|
import com.renkang.emergency.bean.response.StatSimple;
|
||||||
|
import com.renkang.emergency.entity.dto.AddOtherMemberDTO;
|
||||||
|
import com.renkang.emergency.entity.vo.CreateGroupMagVO;
|
||||||
import org.jeecg.common.api.vo.Result;
|
import org.jeecg.common.api.vo.Result;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -28,10 +30,11 @@ public interface EmergencyApiService {
|
|||||||
|
|
||||||
StatSimple statSimple();
|
StatSimple statSimple();
|
||||||
|
|
||||||
Result<Map<String, Object>> createGroupMag(String name, String longitude, String latitude, String type);
|
CreateGroupMagVO createGroupMag(String name, String longitude, String latitude, String type);
|
||||||
|
|
||||||
Result<Map<String, Object>> createGroupMagIntervene(String name, String longitude, String latitude, String type);
|
Result<Map<String, Object>> createGroupMagIntervene(String name, String longitude, String latitude, String type);
|
||||||
|
|
||||||
List<String> fixOrderStatus();
|
List<String> fixOrderStatus();
|
||||||
|
|
||||||
|
boolean addGroupUser(AddOtherMemberDTO dto);
|
||||||
}
|
}
|
||||||
|
|||||||
+4
@@ -13,6 +13,7 @@ import com.renkang.emergency.entity.Order;
|
|||||||
import com.renkang.emergency.entity.OrderDetail;
|
import com.renkang.emergency.entity.OrderDetail;
|
||||||
import com.renkang.emergency.entity.OrderSendRecord;
|
import com.renkang.emergency.entity.OrderSendRecord;
|
||||||
import com.renkang.emergency.entity.TblHelpCentorVo;
|
import com.renkang.emergency.entity.TblHelpCentorVo;
|
||||||
|
import com.renkang.emergency.entity.vo.GroupMemberVO;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -70,4 +71,7 @@ public interface EmergencyOrderApiService {
|
|||||||
Order getOrderById(String id);
|
Order getOrderById(String id);
|
||||||
|
|
||||||
List<TblHelpCentorVo> getSicknessTypeStatistic(String sex, String depart);
|
List<TblHelpCentorVo> getSicknessTypeStatistic(String sex, String depart);
|
||||||
|
|
||||||
|
List<GroupMemberVO> getGroupMemberList(String orderId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+140
-26
@@ -16,6 +16,8 @@ import com.renkang.emergency.bean.request.SingleParam;
|
|||||||
import com.renkang.emergency.bean.response.*;
|
import com.renkang.emergency.bean.response.*;
|
||||||
import com.renkang.emergency.constant.EmergencyConstants;
|
import com.renkang.emergency.constant.EmergencyConstants;
|
||||||
import com.renkang.emergency.entity.*;
|
import com.renkang.emergency.entity.*;
|
||||||
|
import com.renkang.emergency.entity.dto.AddOtherMemberDTO;
|
||||||
|
import com.renkang.emergency.entity.vo.CreateGroupMagVO;
|
||||||
import com.renkang.emergency.manager.EmergencyCloudManager;
|
import com.renkang.emergency.manager.EmergencyCloudManager;
|
||||||
import com.renkang.emergency.mapper.*;
|
import com.renkang.emergency.mapper.*;
|
||||||
import com.renkang.emergency.service.IEmergencyCenterService;
|
import com.renkang.emergency.service.IEmergencyCenterService;
|
||||||
@@ -24,14 +26,17 @@ import com.renkang.emergency.service.ITblAmbulanceGpsService;
|
|||||||
import com.renkang.emergency.util.DateUtils;
|
import com.renkang.emergency.util.DateUtils;
|
||||||
import com.renkang.emergency.websocket.WebSocket;
|
import com.renkang.emergency.websocket.WebSocket;
|
||||||
import com.renkang.im.api.IMHelloApi;
|
import com.renkang.im.api.IMHelloApi;
|
||||||
|
import com.renkang.im.dto.AddGroupMemberDTO;
|
||||||
import com.renkang.im.entity.ConSessionRequestDO;
|
import com.renkang.im.entity.ConSessionRequestDO;
|
||||||
import com.renkang.im.entity.ImGroupMsgTextReqDO;
|
import com.renkang.im.entity.ImGroupMsgTextReqDO;
|
||||||
|
import com.renkang.im.vo.AddGroupMemberVO;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.apache.shiro.SecurityUtils;
|
import org.apache.shiro.SecurityUtils;
|
||||||
import org.jeecg.bean.request.ListUser;
|
import org.jeecg.bean.request.ListUser;
|
||||||
import org.jeecg.common.api.vo.Result;
|
import org.jeecg.common.api.vo.Result;
|
||||||
import org.jeecg.common.constant.CommonConstant;
|
import org.jeecg.common.constant.CommonConstant;
|
||||||
|
import org.jeecg.common.exception.ExceptionAssertsUtil;
|
||||||
import org.jeecg.common.system.api.ISysBaseAPI;
|
import org.jeecg.common.system.api.ISysBaseAPI;
|
||||||
import org.jeecg.common.system.vo.LoginUser;
|
import org.jeecg.common.system.vo.LoginUser;
|
||||||
import org.jeecg.common.system.vo.LoginUserNew;
|
import org.jeecg.common.system.vo.LoginUserNew;
|
||||||
@@ -43,6 +48,7 @@ import org.slf4j.LoggerFactory;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.core.task.AsyncTaskExecutor;
|
import org.springframework.core.task.AsyncTaskExecutor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
@@ -104,6 +110,10 @@ public class EmergencyApiServiceImpl implements EmergencyApiService {
|
|||||||
private EmergencySchedulesNewItemMapper emergencySchedulesNewItemMapper;
|
private EmergencySchedulesNewItemMapper emergencySchedulesNewItemMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private LargeScreenImpl largeScreen;
|
private LargeScreenImpl largeScreen;
|
||||||
|
@Autowired
|
||||||
|
private OrderOperatorMapper orderOperatorMapper;
|
||||||
|
@Autowired
|
||||||
|
private EmergencyProfessionUserMapper emergencyProfessionUserMapper;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -658,6 +668,10 @@ public class EmergencyApiServiceImpl implements EmergencyApiService {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description: 保存应急订单信息
|
||||||
|
* @date 2025/10/31 10:57
|
||||||
|
*/
|
||||||
private String insertOrder(EmergencyCall emergencyCall) {
|
private String insertOrder(EmergencyCall emergencyCall) {
|
||||||
|
|
||||||
LoginUser loginUser = GlobalUtils.getLoginUser();
|
LoginUser loginUser = GlobalUtils.getLoginUser();
|
||||||
@@ -695,17 +709,53 @@ public class EmergencyApiServiceImpl implements EmergencyApiService {
|
|||||||
Call call = officerOnDuty();
|
Call call = officerOnDuty();
|
||||||
order.setCenterId(call.getCenterId());
|
order.setCenterId(call.getCenterId());
|
||||||
socket.setPopType(0);
|
socket.setPopType(0);
|
||||||
}else {
|
} else {
|
||||||
socket.setPopType(1);
|
socket.setPopType(1);
|
||||||
}
|
}
|
||||||
orderMapper.insert(order);
|
orderMapper.insert(order);
|
||||||
socket.setType(emergencyCall.getCallType());
|
socket.setType(emergencyCall.getCallType());
|
||||||
socket.setCenterId(emergencyCall.getCenterId());
|
socket.setCenterId(emergencyCall.getCenterId());
|
||||||
socket.setOrgCode(loginUser.getOrgCode());
|
socket.setOrgCode(loginUser.getOrgCode());
|
||||||
largeScreen.orderPush(socket, emergencyCall.getLongitude(), emergencyCall.getLatitude(),order.getId());
|
largeScreen.orderPush(socket, emergencyCall.getLongitude(), emergencyCall.getLatitude(), order.getId());
|
||||||
return order.getId();
|
return order.getId();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description: 保存应急工单人员信息
|
||||||
|
* @author PengJ
|
||||||
|
* @date 2025/10/31 10:58
|
||||||
|
*/
|
||||||
|
private void saveOrderOperator(Order order) {
|
||||||
|
OrderOperator orderOperator;
|
||||||
|
if (order.getOperationUserId() != null) {
|
||||||
|
orderOperator = new OrderOperator();
|
||||||
|
orderOperator.setOrderId(order.getId());
|
||||||
|
orderOperator.setOperatorType(0);
|
||||||
|
orderOperator.setUserId(order.getOperationUserId());
|
||||||
|
orderOperator.setJoinType(0);
|
||||||
|
orderOperator.setJoinDate(order.getOperationResponseTime());
|
||||||
|
orderOperatorMapper.insert(orderOperator);
|
||||||
|
}
|
||||||
|
if (order.getMajorUserId() != null) {
|
||||||
|
orderOperator = new OrderOperator();
|
||||||
|
orderOperator.setOrderId(order.getId());
|
||||||
|
orderOperator.setOperatorType(1);
|
||||||
|
orderOperator.setUserId(order.getMajorUserId());
|
||||||
|
orderOperator.setJoinType(0);
|
||||||
|
orderOperator.setJoinDate(order.getMajorResponseTime());
|
||||||
|
orderOperatorMapper.insert(orderOperator);
|
||||||
|
}
|
||||||
|
if (order.getMajorUserTwoId() != null) {
|
||||||
|
orderOperator = new OrderOperator();
|
||||||
|
orderOperator.setOrderId(order.getId());
|
||||||
|
orderOperator.setOperatorType(1);
|
||||||
|
orderOperator.setUserId(order.getMajorUserTwoId());
|
||||||
|
orderOperator.setJoinType(0);
|
||||||
|
orderOperator.setJoinDate(new Date());
|
||||||
|
orderOperatorMapper.insert(orderOperator);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private String insertOrderIntervene(String callType, String resourceId, Double longitude, Double latitude, String type) {
|
private String insertOrderIntervene(String callType, String resourceId, Double longitude, Double latitude, String type) {
|
||||||
LoginUser loginUser = GlobalUtils.getLoginUser();
|
LoginUser loginUser = GlobalUtils.getLoginUser();
|
||||||
|
|
||||||
@@ -742,47 +792,65 @@ public class EmergencyApiServiceImpl implements EmergencyApiService {
|
|||||||
return order.getId();
|
return order.getId();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@Override
|
@Override
|
||||||
public Result<Map<String, Object>> createGroupMag(String name, String longitude, String latitude, String type) {
|
public CreateGroupMagVO createGroupMag(String name, String longitude, String latitude, String type) {
|
||||||
|
CreateGroupMagVO createGroupMagVO = new CreateGroupMagVO();
|
||||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||||
//查是否有已经存在的应急工单,有则直接返回相关信息
|
//查是否有已经存在的应急工单,有则直接返回相关信息
|
||||||
Order order = emergencyResourceApiServiceImpl.sessionNowSession(sysUser.getId());
|
Order order = emergencyResourceApiServiceImpl.sessionNowSession(sysUser.getId());
|
||||||
List<String> userList = new ArrayList<>();
|
List<String> userList = new ArrayList<>();
|
||||||
if (order != null) {
|
if (order != null) {
|
||||||
Map res = new HashMap<>();
|
createGroupMagVO.setUserId(sysUser.getId());
|
||||||
res.put("userId", sysUser.getId());
|
createGroupMagVO.setGroupId(order.getSessionId());
|
||||||
res.put("groupId", order.getSessionId());
|
createGroupMagVO.setTfNew("0");
|
||||||
res.put("tfNew", "0");
|
|
||||||
userList.add(order.getOperationUserId());
|
userList.add(order.getOperationUserId());
|
||||||
userList.add(order.getMajorUserId());
|
userList.add(order.getMajorUserId());
|
||||||
if(null != order.getMajorUserTwoId()){
|
if (null != order.getMajorUserTwoId()) {
|
||||||
userList.add(order.getMajorUserTwoId());
|
userList.add(order.getMajorUserTwoId());
|
||||||
}
|
}
|
||||||
res.put("member", userList);
|
createGroupMagVO.setMember(userList);
|
||||||
res.put("id", order.getId());
|
createGroupMagVO.setId(order.getId());
|
||||||
return Result.OK(res);
|
//查询其他专业人员(先注释)
|
||||||
|
// List<EmergencyProfessionUser> emergencyProfessionUsers = emergencyProfessionUserMapper.selectList(new LambdaQueryWrapper<EmergencyProfessionUser>()
|
||||||
|
// .notIn(EmergencyProfessionUser::getUserId, userList)
|
||||||
|
// .eq(EmergencyProfessionUser::getType, "6")
|
||||||
|
// );
|
||||||
|
// List<String> otherMember = emergencyProfessionUsers.stream().map(EmergencyProfessionUser::getUserId).collect(Collectors.toList());
|
||||||
|
// createGroupMagVO.setOtherMember(otherMember);
|
||||||
|
return createGroupMagVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询当前应急中心值班人员
|
// 查询当前应急中心值班人员
|
||||||
Call rs = this.officerOnDuty();
|
Call rs = this.officerOnDuty();
|
||||||
if (rs == null || CollectionUtils.isEmpty(rs.getMajors()) || CollectionUtils.isEmpty(rs.getOperators())) {
|
if (rs == null || CollectionUtils.isEmpty(rs.getMajors()) || CollectionUtils.isEmpty(rs.getOperators())) {
|
||||||
return Result.error("没有接受方人员!");
|
ExceptionAssertsUtil.fail("没有接受方人员!");
|
||||||
}
|
}
|
||||||
List<String> yesIds = new ArrayList<>();
|
List<String> yesIds = new ArrayList<>();
|
||||||
String majorsId = rs.getMajors().get(0).getUserId();
|
String majorsId = rs.getMajors().get(0).getUserId();
|
||||||
String operatorsId = rs.getOperators().get(0).getUserId();
|
String operatorsId = rs.getOperators().get(0).getUserId();
|
||||||
String majorsTwoId = null;
|
String majorsTwoId = null;
|
||||||
if(rs.getMajors().size() > 1){
|
// 20251015改为默认仅排班的三方通话(取排班的第一个),第四方(及多方)仅在添加入群组时才能接入多方通话
|
||||||
//20250926前是 多个值班人员随机取第一个 , 后改成取两个专业人员 , 将两个专业人员都拉入群聊
|
// if (rs.getMajors().size() > 1) {
|
||||||
majorsTwoId = rs.getMajors().get(1).getUserId();
|
// //20250926前是 多个值班人员随机取第一个 , 后改成取两个专业人员 , 将两个专业人员都拉入群聊
|
||||||
yesIds.add(majorsTwoId);
|
// majorsTwoId = rs.getMajors().get(1).getUserId();
|
||||||
userList.add(majorsTwoId);
|
// yesIds.add(majorsTwoId);
|
||||||
}
|
// userList.add(majorsTwoId);
|
||||||
|
// }
|
||||||
|
//查询其他专业人员(先注释)
|
||||||
|
// List<EmergencyProfessionUser> emergencyProfessionUsers = emergencyProfessionUserMapper.selectList(new LambdaQueryWrapper<EmergencyProfessionUser>()
|
||||||
|
// .ne(EmergencyProfessionUser::getUserId, majorsId)
|
||||||
|
// .eq(EmergencyProfessionUser::getType, "6")
|
||||||
|
// );
|
||||||
|
// List<String> otherMember = emergencyProfessionUsers.stream().map(EmergencyProfessionUser::getUserId).collect(Collectors.toList());
|
||||||
|
// createGroupMagVO.setOtherMember(otherMember);
|
||||||
userList.add(operatorsId);
|
userList.add(operatorsId);
|
||||||
userList.add(majorsId);
|
userList.add(majorsId);
|
||||||
yesIds.add(sysUser.getId());
|
yesIds.add(sysUser.getId());
|
||||||
yesIds.add(majorsId);
|
yesIds.add(majorsId);
|
||||||
yesIds.add(operatorsId);
|
yesIds.add(operatorsId);
|
||||||
|
//添加其他专业人员
|
||||||
|
// yesIds.addAll(otherMember);
|
||||||
//获取参与应急的人员信息
|
//获取参与应急的人员信息
|
||||||
ConSessionRequestDO conSessionRequestDO = selectConSessionRequestDO(yesIds, "", name);
|
ConSessionRequestDO conSessionRequestDO = selectConSessionRequestDO(yesIds, "", name);
|
||||||
conSessionRequestDO.setUserId(sysUser.getId());
|
conSessionRequestDO.setUserId(sysUser.getId());
|
||||||
@@ -790,9 +858,10 @@ public class EmergencyApiServiceImpl implements EmergencyApiService {
|
|||||||
Result<Map<String, Object>> imrs = iMHelloApi.creatGroupMagNew(conSessionRequestDO);
|
Result<Map<String, Object>> imrs = iMHelloApi.creatGroupMagNew(conSessionRequestDO);
|
||||||
boolean isSuccess = imrs.isSuccess();
|
boolean isSuccess = imrs.isSuccess();
|
||||||
if (!isSuccess) {
|
if (!isSuccess) {
|
||||||
return Result.error("应急单创建失败");
|
ExceptionAssertsUtil.fail("应急单创建失败");
|
||||||
}
|
}
|
||||||
String sessionId = (String) imrs.getResult().get("groupId");
|
String sessionId = (String) imrs.getResult().get("groupId");
|
||||||
|
createGroupMagVO.setGroupId(sessionId);
|
||||||
String callType = StrUtil.isNotBlank(type) ? "2" : "1";
|
String callType = StrUtil.isNotBlank(type) ? "2" : "1";
|
||||||
//发送IM 提醒消息
|
//发送IM 提醒消息
|
||||||
sendInitMsg(sessionId, callType, sysUser.getId());
|
sendInitMsg(sessionId, callType, sysUser.getId());
|
||||||
@@ -804,16 +873,19 @@ public class EmergencyApiServiceImpl implements EmergencyApiService {
|
|||||||
//保存应急工单
|
//保存应急工单
|
||||||
String orderId = this.call(emergencyCall);
|
String orderId = this.call(emergencyCall);
|
||||||
//保存参与应急的人员信息 PS: 不想大改之前的代码逻辑此处 没有将同一条记录的赋值逻辑合并
|
//保存参与应急的人员信息 PS: 不想大改之前的代码逻辑此处 没有将同一条记录的赋值逻辑合并
|
||||||
saveOderOperationInfo(orderId,sessionId,majorsId,operatorsId,majorsTwoId,rs.getCenterId(),conSessionRequestDO.getAccountList());
|
saveOderOperationInfo(orderId, sessionId, majorsId, operatorsId, majorsTwoId, rs.getCenterId(), conSessionRequestDO.getAccountList());
|
||||||
imrs.getResult().put("member", userList);
|
imrs.getResult().put("member", userList);
|
||||||
imrs.getResult().put("tfNew", "1");
|
imrs.getResult().put("tfNew", "1");
|
||||||
imrs.getResult().put("id", orderId);
|
imrs.getResult().put("id", orderId);
|
||||||
return imrs;
|
createGroupMagVO.setMember(userList);
|
||||||
|
createGroupMagVO.setTfNew("1");
|
||||||
|
createGroupMagVO.setId(orderId);
|
||||||
|
return createGroupMagVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void saveOderOperationInfo(String orderId, String sessionId, String majorsId, String operatorsId, String majorsTwoId,
|
public void saveOderOperationInfo(String orderId, String sessionId, String majorsId, String operatorsId, String majorsTwoId,
|
||||||
String centerId ,List<LoginUserNew> accountList) {
|
String centerId, List<LoginUserNew> accountList) {
|
||||||
Map<String,LoginUserNew> userMap = accountList.stream().collect(Collectors.toMap(LoginUserNew::getId, user -> user));
|
Map<String, LoginUserNew> userMap = accountList.stream().collect(Collectors.toMap(LoginUserNew::getId, user -> user));
|
||||||
Date now = new Date();
|
Date now = new Date();
|
||||||
Order order = new Order();
|
Order order = new Order();
|
||||||
order.setId(orderId);
|
order.setId(orderId);
|
||||||
@@ -822,7 +894,7 @@ public class EmergencyApiServiceImpl implements EmergencyApiService {
|
|||||||
order.setOrderStatus(EmergencyConstants.ORDER_STATUS_1_NEW);
|
order.setOrderStatus(EmergencyConstants.ORDER_STATUS_1_NEW);
|
||||||
order.setIsDispatch(EmergencyConstants.ORDER_SEND_STATUS_1);
|
order.setIsDispatch(EmergencyConstants.ORDER_SEND_STATUS_1);
|
||||||
order.setCenterId(centerId);
|
order.setCenterId(centerId);
|
||||||
if(null != operatorsId && null != userMap.get(operatorsId)){
|
if (null != operatorsId && null != userMap.get(operatorsId)) {
|
||||||
LoginUserNew operationUser = userMap.get(operatorsId);
|
LoginUserNew operationUser = userMap.get(operatorsId);
|
||||||
order.setOperationUserId(operatorsId);
|
order.setOperationUserId(operatorsId);
|
||||||
order.setOperationUserName(handleNull(operationUser).getRealname());
|
order.setOperationUserName(handleNull(operationUser).getRealname());
|
||||||
@@ -831,7 +903,7 @@ public class EmergencyApiServiceImpl implements EmergencyApiService {
|
|||||||
order.setOperationUserAvatar(handleNull(operationUser).getAvatar());
|
order.setOperationUserAvatar(handleNull(operationUser).getAvatar());
|
||||||
order.setOperationResponseTime(now);
|
order.setOperationResponseTime(now);
|
||||||
}
|
}
|
||||||
if(null != majorsId && null != userMap.get(majorsId)){
|
if (null != majorsId && null != userMap.get(majorsId)) {
|
||||||
LoginUserNew majorUser = userMap.get(majorsId);
|
LoginUserNew majorUser = userMap.get(majorsId);
|
||||||
order.setMajorUserId(majorsId);
|
order.setMajorUserId(majorsId);
|
||||||
order.setMajorUserName(handleNull(majorUser).getRealname());
|
order.setMajorUserName(handleNull(majorUser).getRealname());
|
||||||
@@ -840,7 +912,7 @@ public class EmergencyApiServiceImpl implements EmergencyApiService {
|
|||||||
order.setMajorUserAvatar(handleNull(majorUser).getAvatar());
|
order.setMajorUserAvatar(handleNull(majorUser).getAvatar());
|
||||||
order.setMajorResponseTime(now);
|
order.setMajorResponseTime(now);
|
||||||
}
|
}
|
||||||
if(null != majorsTwoId && null != userMap.get(majorsTwoId)){
|
if (null != majorsTwoId && null != userMap.get(majorsTwoId)) {
|
||||||
LoginUserNew majorUserTwo = userMap.get(majorsTwoId);
|
LoginUserNew majorUserTwo = userMap.get(majorsTwoId);
|
||||||
order.setMajorUserTwoId(majorsTwoId);
|
order.setMajorUserTwoId(majorsTwoId);
|
||||||
order.setMajorUserTwoName(handleNull(majorUserTwo).getRealname());
|
order.setMajorUserTwoName(handleNull(majorUserTwo).getRealname());
|
||||||
@@ -849,6 +921,8 @@ public class EmergencyApiServiceImpl implements EmergencyApiService {
|
|||||||
order.setMajorUserTwoAvatar(handleNull(majorUserTwo).getAvatar());
|
order.setMajorUserTwoAvatar(handleNull(majorUserTwo).getAvatar());
|
||||||
}
|
}
|
||||||
orderMapper.updateById(order);
|
orderMapper.updateById(order);
|
||||||
|
//保存工单人员信息
|
||||||
|
saveOrderOperator(order);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -987,4 +1061,44 @@ public class EmergencyApiServiceImpl implements EmergencyApiService {
|
|||||||
}
|
}
|
||||||
}).map(Order::getId).collect(Collectors.toList());
|
}).map(Order::getId).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description: 添加参与应急其他专业人员
|
||||||
|
* @author PengJ
|
||||||
|
* @date 2025/11/3 16:41
|
||||||
|
*/
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
@Override
|
||||||
|
public boolean addGroupUser(AddOtherMemberDTO dto) {
|
||||||
|
dto.getMemberList().forEach(userId -> {
|
||||||
|
OrderOperator orderOperator = orderOperatorMapper.selectOne(new LambdaQueryWrapper<OrderOperator>()
|
||||||
|
.eq(OrderOperator::getOrderId, dto.getOrderId())
|
||||||
|
.eq(OrderOperator::getUserId, userId)
|
||||||
|
);
|
||||||
|
if (orderOperator != null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
orderOperator = new OrderOperator();
|
||||||
|
orderOperator.setOrderId(dto.getOrderId());
|
||||||
|
orderOperator.setOperatorType(1);
|
||||||
|
orderOperator.setUserId(userId);
|
||||||
|
orderOperator.setJoinType(1);
|
||||||
|
orderOperator.setJoinDate(new Date());
|
||||||
|
orderOperatorMapper.insert(orderOperator);
|
||||||
|
});
|
||||||
|
AddGroupMemberDTO addGroupMemberDTO = new AddGroupMemberDTO();
|
||||||
|
addGroupMemberDTO.setGroupId(dto.getGroupId());
|
||||||
|
addGroupMemberDTO.setMemberList(dto.getMemberList().stream().map(userId -> {
|
||||||
|
AddGroupMemberDTO.MemberListDTO memberListDTO = new AddGroupMemberDTO.MemberListDTO();
|
||||||
|
memberListDTO.setMemberAccount(userId);
|
||||||
|
return memberListDTO;
|
||||||
|
}).collect(Collectors.toList()));
|
||||||
|
//添加群成员
|
||||||
|
Result<AddGroupMemberVO> addGroupMemberVoResult = iMHelloApi.addGroupMember(addGroupMemberDTO);
|
||||||
|
String actionStatus = addGroupMemberVoResult.getResult().getActionStatus();
|
||||||
|
if (!"OK".equals(actionStatus)) {
|
||||||
|
ExceptionAssertsUtil.fail(addGroupMemberVoResult.getResult().getErrorInfo());
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+110
-21
@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||||
import com.renkang.emergency.api.service.EmergencyOrderApiService;
|
import com.renkang.emergency.api.service.EmergencyOrderApiService;
|
||||||
import com.renkang.emergency.bean.request.ListSession;
|
import com.renkang.emergency.bean.request.ListSession;
|
||||||
import com.renkang.emergency.bean.request.OrderEvaluation;
|
import com.renkang.emergency.bean.request.OrderEvaluation;
|
||||||
@@ -15,14 +16,10 @@ import com.renkang.emergency.bean.request.SingleParam;
|
|||||||
import com.renkang.emergency.bean.request.StationUpdateOrder;
|
import com.renkang.emergency.bean.request.StationUpdateOrder;
|
||||||
import com.renkang.emergency.bean.response.*;
|
import com.renkang.emergency.bean.response.*;
|
||||||
import com.renkang.emergency.constant.EmergencyConstants;
|
import com.renkang.emergency.constant.EmergencyConstants;
|
||||||
import com.renkang.emergency.entity.Order;
|
import com.renkang.emergency.entity.*;
|
||||||
import com.renkang.emergency.entity.OrderDetail;
|
import com.renkang.emergency.entity.vo.GroupMemberVO;
|
||||||
import com.renkang.emergency.entity.OrderSendRecord;
|
|
||||||
import com.renkang.emergency.entity.TblHelpCentorVo;
|
|
||||||
import com.renkang.emergency.manager.EmergencyCacheManager;
|
import com.renkang.emergency.manager.EmergencyCacheManager;
|
||||||
import com.renkang.emergency.mapper.OrderDetailMapper;
|
import com.renkang.emergency.mapper.*;
|
||||||
import com.renkang.emergency.mapper.OrderMapper;
|
|
||||||
import com.renkang.emergency.mapper.OrderSendRecordMapper;
|
|
||||||
import com.renkang.emergency.service.IOrderDetailService;
|
import com.renkang.emergency.service.IOrderDetailService;
|
||||||
import com.renkang.emergency.service.IOrderService;
|
import com.renkang.emergency.service.IOrderService;
|
||||||
import com.renkang.im.api.IMHelloApi;
|
import com.renkang.im.api.IMHelloApi;
|
||||||
@@ -30,6 +27,7 @@ import com.renkang.im.entity.ImGroupMsgTextReqDO;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.jeecg.common.constant.CommonConstant;
|
import org.jeecg.common.constant.CommonConstant;
|
||||||
|
import org.jeecg.common.exception.ExceptionAssertsUtil;
|
||||||
import org.jeecg.common.system.vo.LoginUser;
|
import org.jeecg.common.system.vo.LoginUser;
|
||||||
import org.jeecg.global.GlobalUtils;
|
import org.jeecg.global.GlobalUtils;
|
||||||
import org.jeecg.modules.manager.ISysCache;
|
import org.jeecg.modules.manager.ISysCache;
|
||||||
@@ -39,6 +37,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Junqiang Zhu
|
* @author Junqiang Zhu
|
||||||
@@ -64,6 +63,10 @@ public class EmergencyOrderApiServiceImpl implements EmergencyOrderApiService {
|
|||||||
private IMHelloApi imHelloApi;
|
private IMHelloApi imHelloApi;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISysCache sysCache;
|
private ISysCache sysCache;
|
||||||
|
@Autowired
|
||||||
|
private OrderOperatorMapper orderOperatorMapper;
|
||||||
|
@Autowired
|
||||||
|
private EmergencyProfessionUserMapper emergencyProfessionUserMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IPage<InitUserOrder> initUserOrderPage(Page<Order> page) {
|
public IPage<InitUserOrder> initUserOrderPage(Page<Order> page) {
|
||||||
@@ -550,11 +553,11 @@ public class EmergencyOrderApiServiceImpl implements EmergencyOrderApiService {
|
|||||||
@Override
|
@Override
|
||||||
public List<TblHelpCentorVo> getSicknessTypeStatistic(String sex, String depart) {
|
public List<TblHelpCentorVo> getSicknessTypeStatistic(String sex, String depart) {
|
||||||
LambdaQueryWrapper<Order> queryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<Order> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
if (StrUtil.isNotBlank(sex) && !"0".equals(sex)){
|
if (StrUtil.isNotBlank(sex) && !"0".equals(sex)) {
|
||||||
queryWrapper.eq(Order::getSalvageUserSex,sex);
|
queryWrapper.eq(Order::getSalvageUserSex, sex);
|
||||||
}
|
}
|
||||||
if (StrUtil.isNotBlank(depart)){
|
if (StrUtil.isNotBlank(depart)) {
|
||||||
queryWrapper.like(Order::getSalvageUserDepart,depart);
|
queryWrapper.like(Order::getSalvageUserDepart, depart);
|
||||||
}
|
}
|
||||||
queryWrapper.eq(Order::getDelFlag, CommonConstant.DEL_FLAG_0);
|
queryWrapper.eq(Order::getDelFlag, CommonConstant.DEL_FLAG_0);
|
||||||
List<Order> orders = orderMapper.selectList(queryWrapper);
|
List<Order> orders = orderMapper.selectList(queryWrapper);
|
||||||
@@ -578,6 +581,83 @@ public class EmergencyOrderApiServiceImpl implements EmergencyOrderApiService {
|
|||||||
return voList;
|
return voList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取群组成员和其他专业人员
|
||||||
|
*
|
||||||
|
* @param orderId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<GroupMemberVO> getGroupMemberList(String orderId) {
|
||||||
|
List<GroupMemberVO> groupMemberVos = new ArrayList<>();
|
||||||
|
|
||||||
|
// 校验订单是否存在
|
||||||
|
Order order = orderMapper.selectById(orderId);
|
||||||
|
if (order == null) {
|
||||||
|
ExceptionAssertsUtil.fail("应急单不存在");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 添加发起人信息
|
||||||
|
handleGroupMember(groupMemberVos, orderId,
|
||||||
|
order.getInitiatorUserId(),
|
||||||
|
order.getInitiatorUserName(),
|
||||||
|
order.getInitiatorUserAvatar(),
|
||||||
|
1);
|
||||||
|
|
||||||
|
// 已加入应急单人员
|
||||||
|
List<OrderOperator> orderOperators = orderOperatorMapper.selectList(
|
||||||
|
new LambdaQueryWrapper<OrderOperator>()
|
||||||
|
.eq(OrderOperator::getOrderId, orderId)
|
||||||
|
);
|
||||||
|
|
||||||
|
List<String> userIds = orderOperators.stream()
|
||||||
|
.map(OrderOperator::getUserId)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
// 查询已加入人员的专业信息
|
||||||
|
if (!userIds.isEmpty()) {
|
||||||
|
List<EmergencyProfessionUser> emergencyProfessionUsers = emergencyProfessionUserMapper.selectList(
|
||||||
|
new LambdaQueryWrapper<EmergencyProfessionUser>()
|
||||||
|
.in(EmergencyProfessionUser::getUserId, userIds)
|
||||||
|
);
|
||||||
|
emergencyProfessionUsers.forEach(emergencyProfessionUser ->
|
||||||
|
handleGroupMember(groupMemberVos, orderId,
|
||||||
|
emergencyProfessionUser.getUserId(),
|
||||||
|
emergencyProfessionUser.getRealname(),
|
||||||
|
emergencyProfessionUser.getAvatar(),
|
||||||
|
1)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 其他专业人员(排除已在应急单中的用户)
|
||||||
|
LambdaQueryWrapper<EmergencyProfessionUser> otherMajorQuery = new LambdaQueryWrapper<>();
|
||||||
|
otherMajorQuery.eq(EmergencyProfessionUser::getType, "6");
|
||||||
|
if (!userIds.isEmpty()) {
|
||||||
|
otherMajorQuery.notIn(EmergencyProfessionUser::getUserId, userIds);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<EmergencyProfessionUser> otherMajorMemberList = emergencyProfessionUserMapper.selectList(otherMajorQuery);
|
||||||
|
otherMajorMemberList.forEach(otherMajorMember ->
|
||||||
|
handleGroupMember(groupMemberVos, orderId,
|
||||||
|
otherMajorMember.getUserId(),
|
||||||
|
otherMajorMember.getRealname(),
|
||||||
|
otherMajorMember.getAvatar(),
|
||||||
|
0)
|
||||||
|
);
|
||||||
|
|
||||||
|
return groupMemberVos;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void handleGroupMember(List<GroupMemberVO> groupMemberVos, String orderId, String userId, String userName, String avatar, Integer isGroupMember) {
|
||||||
|
GroupMemberVO groupMemberVO = new GroupMemberVO();
|
||||||
|
groupMemberVO.setOrderId(orderId);
|
||||||
|
groupMemberVO.setUserId(userId);
|
||||||
|
groupMemberVO.setUserName(userName);
|
||||||
|
groupMemberVO.setAvatar(avatar);
|
||||||
|
groupMemberVO.setIsGroupMember(isGroupMember);
|
||||||
|
groupMemberVos.add(groupMemberVO);
|
||||||
|
}
|
||||||
|
|
||||||
private List<SessionOrderUser> convertOrder(List<Order> orders) {
|
private List<SessionOrderUser> convertOrder(List<Order> orders) {
|
||||||
if (CollectionUtils.isEmpty(orders)) {
|
if (CollectionUtils.isEmpty(orders)) {
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
@@ -623,16 +703,25 @@ public class EmergencyOrderApiServiceImpl implements EmergencyOrderApiService {
|
|||||||
|
|
||||||
private List<Order> getSessionOrder(List<String> sessions, String type) {
|
private List<Order> getSessionOrder(List<String> sessions, String type) {
|
||||||
String userId = GlobalUtils.getLoginUser().getId();
|
String userId = GlobalUtils.getLoginUser().getId();
|
||||||
LambdaQueryWrapper<Order> queryWrapper = GlobalUtils.getLambdaQueryWrapper();
|
//应急单参与人员同步至子表,故修改查询方法
|
||||||
if (EmergencyConstants.MAJOR.equals(type)) {
|
MPJLambdaWrapper<Order> wrapper = new MPJLambdaWrapper<>();
|
||||||
queryWrapper.and(orWrapper -> orWrapper.eq(Order::getMajorUserId, userId).or().eq(Order::getMajorUserTwoId, userId));
|
wrapper.leftJoin(OrderOperator.class, OrderOperator::getOrderId, Order::getId);
|
||||||
}
|
wrapper.eq(OrderOperator::getUserId, userId);
|
||||||
if (EmergencyConstants.OPERATION.equals(type)) {
|
wrapper.eq(OrderOperator::getOperatorType, type);
|
||||||
queryWrapper.eq(Order::getOperationUserId, userId);
|
wrapper.ne(Order::getOrderStatus, EmergencyConstants.ORDER_STATUS_5_NEW);
|
||||||
}
|
wrapper.eq(Order::getStatus, 1);
|
||||||
queryWrapper.ne(Order::getOrderStatus, EmergencyConstants.ORDER_STATUS_5_NEW);
|
wrapper.in(Order::getSessionId, sessions);
|
||||||
queryWrapper.apply("FIND_IN_SET(session_id, {0})", String.join(",", sessions));
|
// LambdaQueryWrapper<Order> queryWrapper = GlobalUtils.getLambdaQueryWrapper();
|
||||||
return orderMapper.selectList(queryWrapper);
|
// if (EmergencyConstants.MAJOR.equals(type)) {
|
||||||
|
// queryWrapper.and(orWrapper -> orWrapper.eq(Order::getMajorUserId, userId).or().eq(Order::getMajorUserTwoId, userId));
|
||||||
|
// }
|
||||||
|
// if (EmergencyConstants.OPERATION.equals(type)) {
|
||||||
|
// queryWrapper.eq(Order::getOperationUserId, userId);
|
||||||
|
// }
|
||||||
|
// queryWrapper.ne(Order::getOrderStatus, EmergencyConstants.ORDER_STATUS_5_NEW);
|
||||||
|
// queryWrapper.apply("FIND_IN_SET(session_id, {0})", String.join(",", sessions));
|
||||||
|
// queryWrapper.in(Order::getSessionId, sessions);
|
||||||
|
return orderMapper.selectList(wrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void handleUserDepart(Order order) {
|
private void handleUserDepart(Order order) {
|
||||||
|
|||||||
+37
-6
@@ -2,17 +2,18 @@ package com.renkang.emergency.controller;
|
|||||||
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.renkang.emergency.entity.Order;
|
import com.renkang.emergency.entity.*;
|
||||||
import com.renkang.emergency.entity.OrderDetail;
|
|
||||||
import com.renkang.emergency.entity.Resource;
|
|
||||||
import com.renkang.emergency.manager.EmergencyCacheManager;
|
import com.renkang.emergency.manager.EmergencyCacheManager;
|
||||||
import com.renkang.emergency.manager.EmergencyCloudManager;
|
import com.renkang.emergency.manager.EmergencyCloudManager;
|
||||||
|
import com.renkang.emergency.mapper.EmergencyProfessionUserMapper;
|
||||||
|
import com.renkang.emergency.mapper.OrderOperatorMapper;
|
||||||
import com.renkang.emergency.service.IOrderDetailService;
|
import com.renkang.emergency.service.IOrderDetailService;
|
||||||
import com.renkang.emergency.service.IOrderService;
|
import com.renkang.emergency.service.IOrderService;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||||
import org.jeecg.common.api.vo.Result;
|
import org.jeecg.common.api.vo.Result;
|
||||||
@@ -28,7 +29,9 @@ import javax.servlet.http.HttpServletRequest;
|
|||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: emergency_order
|
* @Description: emergency_order
|
||||||
@@ -49,6 +52,11 @@ public class OrderController extends JeecgController<Order, IOrderService> {
|
|||||||
private IOrderDetailService orderDetailService;
|
private IOrderDetailService orderDetailService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private EmergencyCloudManager emergencyCloudManager;
|
private EmergencyCloudManager emergencyCloudManager;
|
||||||
|
@Autowired
|
||||||
|
private OrderOperatorMapper orderOperatorMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private EmergencyProfessionUserMapper emergencyProfessionUserMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页列表查询
|
* 分页列表查询
|
||||||
@@ -76,8 +84,8 @@ public class OrderController extends JeecgController<Order, IOrderService> {
|
|||||||
*/
|
*/
|
||||||
@GetMapping(value = "/listOrderMajor")
|
@GetMapping(value = "/listOrderMajor")
|
||||||
public Result<IPage<Order>> listOrderMajor(Order order,
|
public Result<IPage<Order>> listOrderMajor(Order order,
|
||||||
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
||||||
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
|
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
|
||||||
Page<Order> page = new Page<>(pageNo, pageSize);
|
Page<Order> page = new Page<>(pageNo, pageSize);
|
||||||
IPage<Order> pageList = orderService.listOrderMajor(page, order);
|
IPage<Order> pageList = orderService.listOrderMajor(page, order);
|
||||||
return Result.OK(pageList);
|
return Result.OK(pageList);
|
||||||
@@ -186,6 +194,13 @@ public class OrderController extends JeecgController<Order, IOrderService> {
|
|||||||
Order order = orderService.getById(id);
|
Order order = orderService.getById(id);
|
||||||
|
|
||||||
if (ObjectUtil.isNotNull(order)) {
|
if (ObjectUtil.isNotNull(order)) {
|
||||||
|
List<OrderOperator> orderOperators = orderOperatorMapper.selectList(new LambdaQueryWrapper<OrderOperator>()
|
||||||
|
.eq(OrderOperator::getOrderId, order.getId())
|
||||||
|
);
|
||||||
|
List<String> userIds = orderOperators.stream().map(OrderOperator::getUserId).collect(Collectors.toList());
|
||||||
|
List<EmergencyProfessionUser> emergencyProfessionUsers = emergencyProfessionUserMapper.selectList(new LambdaQueryWrapper<EmergencyProfessionUser>()
|
||||||
|
.in(EmergencyProfessionUser::getUserId, userIds)
|
||||||
|
);
|
||||||
OrderDetail detail = orderDetailService.getById(order.getId());
|
OrderDetail detail = orderDetailService.getById(order.getId());
|
||||||
order.setOrderDetail(detail);
|
order.setOrderDetail(detail);
|
||||||
|
|
||||||
@@ -203,6 +218,22 @@ public class OrderController extends JeecgController<Order, IOrderService> {
|
|||||||
order.setResourceName(resource.getName());
|
order.setResourceName(resource.getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//操作人员信息
|
||||||
|
List<String> operatorsUserIds = orderOperators.stream().filter(orderOperator ->
|
||||||
|
orderOperator.getOrderId().equals(order.getId())
|
||||||
|
&& orderOperator.getOperatorType().equals(0)
|
||||||
|
).map(OrderOperator::getUserId).collect(Collectors.toList());
|
||||||
|
String operatorsName = emergencyProfessionUsers.stream().filter(u -> operatorsUserIds.contains(u.getUserId())).map(EmergencyProfessionUser::getRealname).collect(Collectors.joining(","));
|
||||||
|
order.setOperationUserName(operatorsName);
|
||||||
|
|
||||||
|
//专业人员信息
|
||||||
|
List<String> majorUserIds = orderOperators.stream().filter(orderOperator ->
|
||||||
|
orderOperator.getOrderId().equals(order.getId())
|
||||||
|
&& orderOperator.getOperatorType().equals(1)
|
||||||
|
).map(OrderOperator::getUserId).collect(Collectors.toList());
|
||||||
|
String majorName = emergencyProfessionUsers.stream().filter(u -> majorUserIds.contains(u.getUserId())).map(EmergencyProfessionUser::getRealname).collect(Collectors.joining(","));
|
||||||
|
order.setMajorUserName(majorName);
|
||||||
}
|
}
|
||||||
|
|
||||||
return Result.OK(order);
|
return Result.OK(order);
|
||||||
|
|||||||
+14
@@ -0,0 +1,14 @@
|
|||||||
|
package com.renkang.emergency.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.renkang.emergency.entity.OrderOperator;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author PengJ
|
||||||
|
* @description: 应急单参与人员
|
||||||
|
* @date 2025/10/31 10:53
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface OrderOperatorMapper extends BaseMapper<OrderOperator> {
|
||||||
|
}
|
||||||
+3
@@ -11,6 +11,9 @@
|
|||||||
left join emergency_profession_user t3 on t1.user_id = t3.user_id
|
left join emergency_profession_user t3 on t1.user_id = t3.user_id
|
||||||
WHERE t2.center_id = #{centerId}
|
WHERE t2.center_id = #{centerId}
|
||||||
AND date_format(t2.schedules_time, '%Y-%m-%d') = #{time}
|
AND date_format(t2.schedules_time, '%Y-%m-%d') = #{time}
|
||||||
|
ORDER BY
|
||||||
|
t3.type,
|
||||||
|
t1.sort
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="onDutyRecord" resultType="com.renkang.emergency.bean.response.OnDutyRecord">
|
<select id="onDutyRecord" resultType="com.renkang.emergency.bean.response.OnDutyRecord">
|
||||||
|
|||||||
+70
-26
@@ -21,21 +21,19 @@ import com.renkang.emergency.mapper.EmergencySchedulesNewMapper;
|
|||||||
import com.renkang.emergency.service.EmergencyProfessionUserService;
|
import com.renkang.emergency.service.EmergencyProfessionUserService;
|
||||||
import com.renkang.emergency.service.IEmergencySchedulesNewItemService;
|
import com.renkang.emergency.service.IEmergencySchedulesNewItemService;
|
||||||
import com.renkang.emergency.service.IEmergencySchedulesNewService;
|
import com.renkang.emergency.service.IEmergencySchedulesNewService;
|
||||||
import org.jeecg.bean.request.ListUser;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.jeecg.common.system.api.ISysBaseAPI;
|
import org.jeecg.common.system.api.ISysBaseAPI;
|
||||||
import org.jeecg.common.system.vo.LoginUserNew;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.stream.Stream;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 排班表
|
* @Description: 排班表
|
||||||
* @Author: jeecg-boot
|
* @Author: jeecg-boot
|
||||||
* @Date: 2024-09-09
|
* @Date: 2024-09-09
|
||||||
* @Version: V1.0
|
* @Version: V1.0
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
@@ -82,7 +80,7 @@ public class EmergencySchedulesNewServiceImpl extends MPJBaseServiceImpl<Emergen
|
|||||||
if (StrUtil.isNotEmpty(dto.getCenterId())) {
|
if (StrUtil.isNotEmpty(dto.getCenterId())) {
|
||||||
query.eq(EmergencySchedules::getCenterId, dto.getCenterId());
|
query.eq(EmergencySchedules::getCenterId, dto.getCenterId());
|
||||||
}
|
}
|
||||||
if (ObjectUtil.isNotEmpty(dto.getStartTime())|| ObjectUtil.isNotEmpty(dto.getEndTime())) {
|
if (ObjectUtil.isNotEmpty(dto.getStartTime()) || ObjectUtil.isNotEmpty(dto.getEndTime())) {
|
||||||
query.between(EmergencySchedules::getSchedulesTime, dto.getStartTime(), dto.getEndTime());
|
query.between(EmergencySchedules::getSchedulesTime, dto.getStartTime(), dto.getEndTime());
|
||||||
}
|
}
|
||||||
return query;
|
return query;
|
||||||
@@ -102,11 +100,10 @@ public class EmergencySchedulesNewServiceImpl extends MPJBaseServiceImpl<Emergen
|
|||||||
.orElse(null);
|
.orElse(null);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (emergencySchedules != null) {
|
if (emergencySchedules != null) {
|
||||||
returnVo.setCenterId(emergencySchedules.getCenterId());
|
returnVo.setCenterId(emergencySchedules.getCenterId());
|
||||||
weekDataVO.setSchedulesId(emergencySchedules.getId());
|
weekDataVO.setSchedulesId(emergencySchedules.getId());
|
||||||
if (CollUtil.isNotEmpty(emergencySchedules.getEmergencySchedulesItemList())){
|
if (CollUtil.isNotEmpty(emergencySchedules.getEmergencySchedulesItemList())) {
|
||||||
// 取出全部的userId
|
// 取出全部的userId
|
||||||
List<String> userIdList = emergencySchedules.getEmergencySchedulesItemList().stream().map(EmergencySchedulesItem::getUserId).distinct().collect(Collectors.toList());
|
List<String> userIdList = emergencySchedules.getEmergencySchedulesItemList().stream().map(EmergencySchedulesItem::getUserId).distinct().collect(Collectors.toList());
|
||||||
List<EmergencyProfessionUser> userList = userService.list(new LambdaQueryWrapper<EmergencyProfessionUser>().in(EmergencyProfessionUser::getUserId, userIdList));
|
List<EmergencyProfessionUser> userList = userService.list(new LambdaQueryWrapper<EmergencyProfessionUser>().in(EmergencyProfessionUser::getUserId, userIdList));
|
||||||
@@ -133,13 +130,27 @@ public class EmergencySchedulesNewServiceImpl extends MPJBaseServiceImpl<Emergen
|
|||||||
|
|
||||||
private void setWeekData(EmergencySchedulesVO returnVo, int weekDay, WeekDataVO weekDataVO) {
|
private void setWeekData(EmergencySchedulesVO returnVo, int weekDay, WeekDataVO weekDataVO) {
|
||||||
switch (weekDay) {
|
switch (weekDay) {
|
||||||
case 1: returnVo.setMonday(weekDataVO); break;
|
case 1:
|
||||||
case 2: returnVo.setTuesday(weekDataVO); break;
|
returnVo.setMonday(weekDataVO);
|
||||||
case 3: returnVo.setWednesday(weekDataVO); break;
|
break;
|
||||||
case 4: returnVo.setThursday(weekDataVO); break;
|
case 2:
|
||||||
case 5: returnVo.setFriday(weekDataVO); break;
|
returnVo.setTuesday(weekDataVO);
|
||||||
case 6: returnVo.setSaturday(weekDataVO); break;
|
break;
|
||||||
case 7: returnVo.setSunday(weekDataVO); break;
|
case 3:
|
||||||
|
returnVo.setWednesday(weekDataVO);
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
returnVo.setThursday(weekDataVO);
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
returnVo.setFriday(weekDataVO);
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
returnVo.setSaturday(weekDataVO);
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
returnVo.setSunday(weekDataVO);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -172,25 +183,39 @@ public class EmergencySchedulesNewServiceImpl extends MPJBaseServiceImpl<Emergen
|
|||||||
// 清除之前的排班人员
|
// 清除之前的排班人员
|
||||||
itemService.remove(new LambdaQueryWrapper<EmergencySchedulesItem>().eq(EmergencySchedulesItem::getSchedulesId, emergencySchedules.getId()));
|
itemService.remove(new LambdaQueryWrapper<EmergencySchedulesItem>().eq(EmergencySchedulesItem::getSchedulesId, emergencySchedules.getId()));
|
||||||
|
|
||||||
addItemsToList(daySchedules.getOperationUserList(), emergencySchedules, EmergencyConstants.OPERATION, itemList);
|
// 列表根据传入的顺序进行排序
|
||||||
addItemsToList(daySchedules.getProfessionalUserList(), emergencySchedules, EmergencyConstants.MAJOR, itemList);
|
List<String> operationUserListIds = daySchedules.getOperationUserListIds();
|
||||||
|
List<String> professionalUserListIds = daySchedules.getProfessionalUserListIds();
|
||||||
|
List<EmergencyProfessionUser> professionUserlist = userService.list();
|
||||||
|
addItemsToList(daySchedules.getOperationUserList(), emergencySchedules, EmergencyConstants.OPERATION, itemList, operationUserListIds, professionUserlist);
|
||||||
|
addItemsToList(daySchedules.getProfessionalUserList(), emergencySchedules, EmergencyConstants.MAJOR, itemList, professionalUserListIds, professionUserlist);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private WeekDataVO getDaySchedules(EmergencySchedulesDTO dto, DayOfWeek day) {
|
private WeekDataVO getDaySchedules(EmergencySchedulesDTO dto, DayOfWeek day) {
|
||||||
switch (day) {
|
switch (day) {
|
||||||
case MONDAY: return dto.getMonday();
|
case MONDAY:
|
||||||
case TUESDAY: return dto.getTuesday();
|
return dto.getMonday();
|
||||||
case WEDNESDAY: return dto.getWednesday();
|
case TUESDAY:
|
||||||
case THURSDAY: return dto.getThursday();
|
return dto.getTuesday();
|
||||||
case FRIDAY: return dto.getFriday();
|
case WEDNESDAY:
|
||||||
case SATURDAY: return dto.getSaturday();
|
return dto.getWednesday();
|
||||||
case SUNDAY: return dto.getSunday();
|
case THURSDAY:
|
||||||
default: return null;
|
return dto.getThursday();
|
||||||
|
case FRIDAY:
|
||||||
|
return dto.getFriday();
|
||||||
|
case SATURDAY:
|
||||||
|
return dto.getSaturday();
|
||||||
|
case SUNDAY:
|
||||||
|
return dto.getSunday();
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addItemsToList(List<EmergencySchedulesItem> userList, EmergencySchedules emergencySchedules, String userType, List<EmergencySchedulesItem> itemList) {
|
private void addItemsToList(List<EmergencySchedulesItem> userList, EmergencySchedules emergencySchedules, String userType, List<EmergencySchedulesItem> itemList,
|
||||||
|
List<String> userListIds,
|
||||||
|
List<EmergencyProfessionUser> professionUserlist) {
|
||||||
// userList去重
|
// userList去重
|
||||||
if (CollUtil.isNotEmpty(userList)) {
|
if (CollUtil.isNotEmpty(userList)) {
|
||||||
Set<String> userIdSet = new HashSet<>();
|
Set<String> userIdSet = new HashSet<>();
|
||||||
@@ -198,10 +223,29 @@ public class EmergencySchedulesNewServiceImpl extends MPJBaseServiceImpl<Emergen
|
|||||||
for (EmergencySchedulesItem item : userList) {
|
for (EmergencySchedulesItem item : userList) {
|
||||||
String userId = item.getUserId();
|
String userId = item.getUserId();
|
||||||
if (!userIdSet.contains(userId)) {
|
if (!userIdSet.contains(userId)) {
|
||||||
|
if ("0".equals(item.getUserType())) {
|
||||||
|
int i = userListIds.indexOf(userId);
|
||||||
|
item.setSort(i);
|
||||||
|
sortIndex++;
|
||||||
|
}
|
||||||
|
if ("1".equals(item.getUserType())) {
|
||||||
|
int i = userListIds.indexOf(userId);
|
||||||
|
item.setSort(i);
|
||||||
|
sortIndex++;
|
||||||
|
}
|
||||||
// 如果不包含,则进行设置并添加
|
// 如果不包含,则进行设置并添加
|
||||||
item.setSchedulesId(emergencySchedules.getId());
|
item.setSchedulesId(emergencySchedules.getId());
|
||||||
item.setUserType(userType);
|
item.setUserType(userType);
|
||||||
item.setSort(sortIndex);
|
if (ObjectUtil.isNull(item.getSort())) {
|
||||||
|
item.setSort(sortIndex);
|
||||||
|
}
|
||||||
|
if (StringUtils.isBlank(item.getUserName())) {
|
||||||
|
// 无名称则赋值
|
||||||
|
List<EmergencyProfessionUser> collect = professionUserlist.stream().filter(professionUser -> professionUser.getUserId().equals(item.getUserId())).collect(Collectors.toList());
|
||||||
|
if (CollUtil.isNotEmpty(collect)) {
|
||||||
|
item.setUserName(collect.get(0).getRealname());
|
||||||
|
}
|
||||||
|
}
|
||||||
itemList.add(item);
|
itemList.add(item);
|
||||||
userIdSet.add(userId);
|
userIdSet.add(userId);
|
||||||
sortIndex++;
|
sortIndex++;
|
||||||
|
|||||||
+54
-2
@@ -11,11 +11,15 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.renkang.emergency.constant.EmergencyConstants;
|
import com.renkang.emergency.constant.EmergencyConstants;
|
||||||
import com.renkang.emergency.entity.EmergencyCenter;
|
import com.renkang.emergency.entity.EmergencyCenter;
|
||||||
|
import com.renkang.emergency.entity.EmergencyProfessionUser;
|
||||||
import com.renkang.emergency.entity.Order;
|
import com.renkang.emergency.entity.Order;
|
||||||
|
import com.renkang.emergency.entity.OrderOperator;
|
||||||
import com.renkang.emergency.manager.EmergencyCacheManager;
|
import com.renkang.emergency.manager.EmergencyCacheManager;
|
||||||
import com.renkang.emergency.manager.PermissionManager;
|
import com.renkang.emergency.manager.PermissionManager;
|
||||||
import com.renkang.emergency.mapper.EmergencyCenterMapper;
|
import com.renkang.emergency.mapper.EmergencyCenterMapper;
|
||||||
|
import com.renkang.emergency.mapper.EmergencyProfessionUserMapper;
|
||||||
import com.renkang.emergency.mapper.OrderMapper;
|
import com.renkang.emergency.mapper.OrderMapper;
|
||||||
|
import com.renkang.emergency.mapper.OrderOperatorMapper;
|
||||||
import com.renkang.emergency.service.IOrderService;
|
import com.renkang.emergency.service.IOrderService;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.jeecg.common.constant.CommonConstant;
|
import org.jeecg.common.constant.CommonConstant;
|
||||||
@@ -27,8 +31,8 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import java.util.Arrays;
|
import java.util.*;
|
||||||
import java.util.List;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: emergency_order
|
* @Description: emergency_order
|
||||||
@@ -44,6 +48,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|||||||
private PermissionManager permissionManager;
|
private PermissionManager permissionManager;
|
||||||
@Autowired
|
@Autowired
|
||||||
private EmergencyCenterMapper emergencyCenterMapper;
|
private EmergencyCenterMapper emergencyCenterMapper;
|
||||||
|
@Autowired
|
||||||
|
private OrderOperatorMapper orderOperatorMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private EmergencyProfessionUserMapper emergencyProfessionUserMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IPage<Order> pageCustom(Page<Order> page, Order order, HttpServletRequest req) {
|
public IPage<Order> pageCustom(Page<Order> page, Order order, HttpServletRequest req) {
|
||||||
@@ -59,6 +68,27 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|||||||
if (ObjectUtil.isNull(result) || CollectionUtils.isEmpty(result.getRecords())) {
|
if (ObjectUtil.isNull(result) || CollectionUtils.isEmpty(result.getRecords())) {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
List<String> orderIds = result.getRecords().stream().map(Order::getId).collect(Collectors.toList());
|
||||||
|
List<OrderOperator> orderOperators = orderOperatorMapper.selectList(new LambdaQueryWrapper<OrderOperator>()
|
||||||
|
.in(OrderOperator::getOrderId, orderIds)
|
||||||
|
);
|
||||||
|
List<String> userIds = orderOperators.stream().map(OrderOperator::getUserId).collect(Collectors.toList());
|
||||||
|
List<EmergencyProfessionUser> emergencyProfessionUsers;
|
||||||
|
if (!userIds.isEmpty()) {
|
||||||
|
emergencyProfessionUsers = emergencyProfessionUserMapper.selectList(new LambdaQueryWrapper<EmergencyProfessionUser>()
|
||||||
|
.in(EmergencyProfessionUser::getUserId, userIds)
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
emergencyProfessionUsers = new ArrayList<>();
|
||||||
|
}
|
||||||
|
// 构建缓存结构
|
||||||
|
Map<String, List<OrderOperator>> orderIdToOperatorsMap = orderOperators.stream()
|
||||||
|
.collect(Collectors.groupingBy(OrderOperator::getOrderId));
|
||||||
|
|
||||||
|
Map<String, EmergencyProfessionUser> userIdToEmergencyUserMap = emergencyProfessionUsers.stream()
|
||||||
|
.collect(Collectors.toMap(EmergencyProfessionUser::getUserId, u -> u, (u1, u2) -> u1));
|
||||||
|
|
||||||
|
|
||||||
// 填充应急中心名
|
// 填充应急中心名
|
||||||
List<EmergencyCenter> centers = emergencyCenterMapper.selectList(null);
|
List<EmergencyCenter> centers = emergencyCenterMapper.selectList(null);
|
||||||
// 部门信息
|
// 部门信息
|
||||||
@@ -79,6 +109,28 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|||||||
// 救助人当前部门信息
|
// 救助人当前部门信息
|
||||||
SysDepart salvageDepart = emergencyCacheManager.getUserDepart(f.getSalvageUserDepart());
|
SysDepart salvageDepart = emergencyCacheManager.getUserDepart(f.getSalvageUserDepart());
|
||||||
f.setSalvageUserDepart(salvageDepart.getDepartName());
|
f.setSalvageUserDepart(salvageDepart.getDepartName());
|
||||||
|
|
||||||
|
|
||||||
|
// 操作人员信息
|
||||||
|
List<OrderOperator> operators = orderIdToOperatorsMap.getOrDefault(f.getId(), Collections.emptyList());
|
||||||
|
List<String> operatorNames = operators.stream()
|
||||||
|
.filter(op -> Integer.valueOf(0).equals(op.getOperatorType()))
|
||||||
|
.map(OrderOperator::getUserId)
|
||||||
|
.map(userIdToEmergencyUserMap::get)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.map(EmergencyProfessionUser::getRealname)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
f.setOperationUserName(String.join(",", operatorNames));
|
||||||
|
|
||||||
|
// 专业人员信息
|
||||||
|
List<String> majorNames = operators.stream()
|
||||||
|
.filter(op -> Integer.valueOf(1).equals(op.getOperatorType()))
|
||||||
|
.map(OrderOperator::getUserId)
|
||||||
|
.map(userIdToEmergencyUserMap::get)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.map(EmergencyProfessionUser::getRealname)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
f.setMajorUserName(String.join(",", majorNames));
|
||||||
});
|
});
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
@@ -2,7 +2,9 @@ package com.renkang.im.api;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.renkang.im.api.fallback.IMHelloFallback;
|
import com.renkang.im.api.fallback.IMHelloFallback;
|
||||||
|
import com.renkang.im.dto.AddGroupMemberDTO;
|
||||||
import com.renkang.im.entity.*;
|
import com.renkang.im.entity.*;
|
||||||
|
import com.renkang.im.vo.AddGroupMemberVO;
|
||||||
import org.jeecg.common.api.vo.Result;
|
import org.jeecg.common.api.vo.Result;
|
||||||
import org.springframework.cloud.openfeign.FeignClient;
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
@@ -66,5 +68,12 @@ public interface IMHelloApi {
|
|||||||
Result<Page<ImMsgRecordAll>> selectImMessagePageList(@RequestParam("groupId") String groupId,
|
Result<Page<ImMsgRecordAll>> selectImMessagePageList(@RequestParam("groupId") String groupId,
|
||||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize);
|
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize);
|
||||||
|
/**
|
||||||
|
* @description: 添加群成员
|
||||||
|
* @author PengJ
|
||||||
|
* @date 2025/11/4 15:30
|
||||||
|
*/
|
||||||
|
@PostMapping(value = "/wnapp/addGroupMember")
|
||||||
|
Result<AddGroupMemberVO> addGroupMember(@RequestBody @Validated AddGroupMemberDTO dto);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,54 @@
|
|||||||
|
package com.renkang.im.dto;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Huawei
|
||||||
|
* @version 1.0
|
||||||
|
* @description: 添加群成员dto
|
||||||
|
* @date 2025/11/4 15:12
|
||||||
|
*/
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Data
|
||||||
|
public class AddGroupMemberDTO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 要操作的群组(必填)
|
||||||
|
*/
|
||||||
|
@NotNull(message = "群组ID不能为空")
|
||||||
|
@JsonProperty("GroupId")
|
||||||
|
private String groupId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否静默加人。
|
||||||
|
* 0:非静默加人。
|
||||||
|
* 1:静默加人。
|
||||||
|
* 不填该字段默认为0。
|
||||||
|
* 当 Silence 为 1 时,成员添加成功后,不会给任何人下发系统通知。
|
||||||
|
*/
|
||||||
|
@JsonProperty("Silence")
|
||||||
|
private Integer silence;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 一次最多添加100个成员
|
||||||
|
*/
|
||||||
|
@JsonProperty("MemberList")
|
||||||
|
private List<MemberListDTO> memberList;
|
||||||
|
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Data
|
||||||
|
public static class MemberListDTO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 要添加的群成员 ID(必填)
|
||||||
|
*/
|
||||||
|
@NotNull(message = "群成员ID不能为空")
|
||||||
|
@JsonProperty("Member_Account")
|
||||||
|
private String memberAccount;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,67 @@
|
|||||||
|
package com.renkang.im.vo;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Huawei
|
||||||
|
* @version 1.0
|
||||||
|
* @description: 添加群成员响应VO
|
||||||
|
* @date 2025/11/4 15:16
|
||||||
|
*/
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Data
|
||||||
|
public class AddGroupMemberVO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 请求处理的结果
|
||||||
|
* OK:表示处理成功。
|
||||||
|
* FAIL:表示失败。
|
||||||
|
*/
|
||||||
|
@JsonProperty("ActionStatus")
|
||||||
|
private String actionStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 错误信息
|
||||||
|
*/
|
||||||
|
@JsonProperty("ErrorInfo")
|
||||||
|
private String errorInfo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 错误码
|
||||||
|
* 0:表示成功。
|
||||||
|
* 非0:表示失败。
|
||||||
|
*/
|
||||||
|
@JsonProperty("ErrorCode")
|
||||||
|
private Integer errorCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 返回添加的群成员结果。
|
||||||
|
*/
|
||||||
|
@JsonProperty("MemberList")
|
||||||
|
private List<MemberListDTO> memberList;
|
||||||
|
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Data
|
||||||
|
public static class MemberListDTO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 返回的群成员 UserID。
|
||||||
|
*/
|
||||||
|
@JsonProperty("Member_Account")
|
||||||
|
private String memberAccount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 加人结果:
|
||||||
|
* 0:失败。
|
||||||
|
* 1:成功。
|
||||||
|
* 2:已经是群成员。
|
||||||
|
* 3:等待被邀请者或者管理员审核。
|
||||||
|
*/
|
||||||
|
@JsonProperty("Result")
|
||||||
|
private Integer result;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
package com.renkang.im.vo;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author PengJ
|
||||||
|
* @description: IM返回VO
|
||||||
|
* @date 2025/10/31 9:55
|
||||||
|
*/
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Data
|
||||||
|
public class ImResult {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 请求处理的结果
|
||||||
|
* OK 表示处理成功
|
||||||
|
* FAIL 表示失败
|
||||||
|
*/
|
||||||
|
@JsonProperty("ActionStatus")
|
||||||
|
private String actionStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 错误码
|
||||||
|
* 0表示成功
|
||||||
|
* 非0表示失败
|
||||||
|
*/
|
||||||
|
@JsonProperty("ErrorCode")
|
||||||
|
private Integer errorCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 错误信息
|
||||||
|
*/
|
||||||
|
@JsonProperty("ErrorInfo")
|
||||||
|
private String errorInfo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导入失败的账号列表
|
||||||
|
*/
|
||||||
|
@JsonProperty("FailAccounts")
|
||||||
|
private List<String> failAccounts;
|
||||||
|
}
|
||||||
@@ -5,12 +5,13 @@ import com.alibaba.fastjson.JSONArray;
|
|||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.renkang.consultation.api.ConSessionHelloApi;
|
import com.renkang.consultation.api.ConSessionHelloApi;
|
||||||
import com.renkang.consultation.entity.ConSessionDO;
|
import com.renkang.consultation.entity.ConSessionDO;
|
||||||
|
import com.renkang.im.dto.AddGroupMemberDTO;
|
||||||
import com.renkang.im.entity.*;
|
import com.renkang.im.entity.*;
|
||||||
import com.renkang.im.service.IImMsgRecordAllService;
|
import com.renkang.im.service.IImMsgRecordAllService;
|
||||||
import com.renkang.im.util.IdWorker;
|
import com.renkang.im.util.IdWorker;
|
||||||
import com.renkang.im.util.TencentCloudImUtil;
|
import com.renkang.im.util.TencentCloudImUtil;
|
||||||
import com.renkang.im.util.UniqId;
|
import com.renkang.im.util.UniqId;
|
||||||
import com.renkang.im.entity.ImMsgRecordAll;
|
import com.renkang.im.vo.AddGroupMemberVO;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import org.apache.shiro.SecurityUtils;
|
import org.apache.shiro.SecurityUtils;
|
||||||
@@ -64,7 +65,6 @@ public class TXController {
|
|||||||
private ConSessionHelloApi conSessionHelloApi;
|
private ConSessionHelloApi conSessionHelloApi;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@GetMapping("/userSigAndroid")
|
@GetMapping("/userSigAndroid")
|
||||||
@Operation(summary = "获取userSigAndroid")
|
@Operation(summary = "获取userSigAndroid")
|
||||||
public Result<Map> userSigAndroid() {
|
public Result<Map> userSigAndroid() {
|
||||||
@@ -80,6 +80,7 @@ public class TXController {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 拉取群组消息 v1
|
* 拉取群组消息 v1
|
||||||
|
*
|
||||||
* @param groupId
|
* @param groupId
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@@ -89,16 +90,16 @@ public class TXController {
|
|||||||
|
|
||||||
Integer MsgSeq = null;
|
Integer MsgSeq = null;
|
||||||
boolean haveData = true;
|
boolean haveData = true;
|
||||||
while(haveData){
|
while (haveData) {
|
||||||
String s = tencentCloudImUtil.groupMessage(groupId,1,MsgSeq,0);
|
String s = tencentCloudImUtil.groupMessage(groupId, 1, MsgSeq, 0);
|
||||||
JSONObject jsonObjectResult = JSONObject.parseObject(s);
|
JSONObject jsonObjectResult = JSONObject.parseObject(s);
|
||||||
JSONArray rsqMsgList = jsonObjectResult.getJSONArray("RspMsgList");
|
JSONArray rsqMsgList = jsonObjectResult.getJSONArray("RspMsgList");
|
||||||
if(CollectionUtils.isEmpty(rsqMsgList)){
|
if (CollectionUtils.isEmpty(rsqMsgList)) {
|
||||||
haveData = false;
|
haveData = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
JSONObject one = rsqMsgList.getJSONObject(0);
|
JSONObject one = rsqMsgList.getJSONObject(0);
|
||||||
MsgSeq = one.getInteger("MsgSeq")+1;
|
MsgSeq = one.getInteger("MsgSeq") + 1;
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -110,26 +111,26 @@ public class TXController {
|
|||||||
|
|
||||||
Result<List<ConSessionDO>> resultList = conSessionHelloApi.sekectSessionListByDate();
|
Result<List<ConSessionDO>> resultList = conSessionHelloApi.sekectSessionListByDate();
|
||||||
|
|
||||||
if(resultList.isSuccess()){
|
if (resultList.isSuccess()) {
|
||||||
|
|
||||||
List<ConSessionDO> list = resultList.getResult();
|
List<ConSessionDO> list = resultList.getResult();
|
||||||
for (ConSessionDO conSessionDO : list) {
|
for (ConSessionDO conSessionDO : list) {
|
||||||
boolean flag = true;
|
boolean flag = true;
|
||||||
Integer MsgSeq = null;
|
Integer MsgSeq = null;
|
||||||
while(flag){
|
while (flag) {
|
||||||
|
|
||||||
if(MsgSeq != null && MsgSeq < 0){
|
if (MsgSeq != null && MsgSeq < 0) {
|
||||||
flag = false;
|
flag = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
String s = tencentCloudImUtil.groupMessage(conSessionDO.getImId(),1,MsgSeq,0);
|
String s = tencentCloudImUtil.groupMessage(conSessionDO.getImId(), 1, MsgSeq, 0);
|
||||||
if(StringUtils.isEmpty(s)){
|
if (StringUtils.isEmpty(s)) {
|
||||||
flag = false;
|
flag = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
JSONObject jsonObjectResult = JSONObject.parseObject(s);
|
JSONObject jsonObjectResult = JSONObject.parseObject(s);
|
||||||
JSONArray rsqMsgList = jsonObjectResult.getJSONArray("RspMsgList");
|
JSONArray rsqMsgList = jsonObjectResult.getJSONArray("RspMsgList");
|
||||||
if(CollectionUtils.isEmpty(rsqMsgList)){
|
if (CollectionUtils.isEmpty(rsqMsgList)) {
|
||||||
flag = false;
|
flag = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -146,33 +147,33 @@ public class TXController {
|
|||||||
|
|
||||||
JSONArray ImageInfoArray = MsgContent.getJSONArray("ImageInfoArray");
|
JSONArray ImageInfoArray = MsgContent.getJSONArray("ImageInfoArray");
|
||||||
for (Object o : ImageInfoArray) {
|
for (Object o : ImageInfoArray) {
|
||||||
JSONObject AA = (JSONObject)o;
|
JSONObject AA = (JSONObject) o;
|
||||||
String oldUrl = AA.getString("URL");
|
String oldUrl = AA.getString("URL");
|
||||||
String newUrl = "";
|
String newUrl = "";
|
||||||
if(oldUrl.contains("https://cn.imrich.qcloud.com")){
|
if (oldUrl.contains("https://cn.imrich.qcloud.com")) {
|
||||||
newUrl = oldUrl.replace("https://cn.imrich.qcloud.com", "http://101.201.149.156:8609/qc");
|
newUrl = oldUrl.replace("https://cn.imrich.qcloud.com", "http://101.201.149.156:8609/qc");
|
||||||
}
|
}
|
||||||
if(oldUrl.contains("https://cos.ap-guangzhou.myqcloud.com")){
|
if (oldUrl.contains("https://cos.ap-guangzhou.myqcloud.com")) {
|
||||||
newUrl = oldUrl.replace("https://cos.ap-guangzhou.myqcloud.com", "http://101.201.149.156:8609/gmc");
|
newUrl = oldUrl.replace("https://cos.ap-guangzhou.myqcloud.com", "http://101.201.149.156:8609/gmc");
|
||||||
}
|
}
|
||||||
if(oldUrl.contains("https://cn.rich.my-imcloud.com")){
|
if (oldUrl.contains("https://cn.rich.my-imcloud.com")) {
|
||||||
newUrl = oldUrl.replace("https://cn.rich.my-imcloud.com", "http://101.201.149.156:8609/ic");
|
newUrl = oldUrl.replace("https://cn.rich.my-imcloud.com", "http://101.201.149.156:8609/ic");
|
||||||
}
|
}
|
||||||
if(oldUrl.contains("https://cos.ap-shanghai.myqcloud.com")){
|
if (oldUrl.contains("https://cos.ap-shanghai.myqcloud.com")) {
|
||||||
newUrl = oldUrl.replace("https://cos.ap-shanghai.myqcloud.com", "http://101.201.149.156:8609/smc");
|
newUrl = oldUrl.replace("https://cos.ap-shanghai.myqcloud.com", "http://101.201.149.156:8609/smc");
|
||||||
}
|
}
|
||||||
if(oldUrl.contains("https://cos.ap-shanghai.tencentcos.cn")){
|
if (oldUrl.contains("https://cos.ap-shanghai.tencentcos.cn")) {
|
||||||
newUrl = oldUrl.replace("https://cos.ap-shanghai.tencentcos.cn", " http://101.201.149.156:8609/tc");
|
newUrl = oldUrl.replace("https://cos.ap-shanghai.tencentcos.cn", " http://101.201.149.156:8609/tc");
|
||||||
}
|
}
|
||||||
if(!StringUtils.isEmpty(newUrl)){
|
if (!StringUtils.isEmpty(newUrl)) {
|
||||||
imageList.add(newUrl);
|
imageList.add(newUrl);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Map<String,String> msgBodyMap = tencentCloudImUtil.changeUrelArray(imageList, msgType);
|
Map<String, String> msgBodyMap = tencentCloudImUtil.changeUrelArray(imageList, msgType);
|
||||||
for (Map.Entry<String, String> entry : msgBodyMap.entrySet()) {
|
for (Map.Entry<String, String> entry : msgBodyMap.entrySet()) {
|
||||||
String key = entry.getKey();
|
String key = entry.getKey();
|
||||||
String value = entry.getValue();
|
String value = entry.getValue();
|
||||||
s=s.replace(key,value);
|
s = s.replace(key, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -188,7 +189,7 @@ public class TXController {
|
|||||||
imMsgRecordAll.setMsgtype("2");
|
imMsgRecordAll.setMsgtype("2");
|
||||||
imMsgRecordAll.setCreateTime(date);
|
imMsgRecordAll.setCreateTime(date);
|
||||||
flag = imMsgRecordAllService.save(imMsgRecordAll);
|
flag = imMsgRecordAllService.save(imMsgRecordAll);
|
||||||
MsgSeq = MsgSeqOne-1;
|
MsgSeq = MsgSeqOne - 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -197,7 +198,6 @@ public class TXController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 单发单聊消息
|
* 单发单聊消息
|
||||||
*
|
*
|
||||||
@@ -268,10 +268,10 @@ public class TXController {
|
|||||||
aa = "(专家)";
|
aa = "(专家)";
|
||||||
}
|
}
|
||||||
String auatr = loginUser.getAvatar();
|
String auatr = loginUser.getAvatar();
|
||||||
if(!StringUtils.isEmpty(auatr)){
|
if (!StringUtils.isEmpty(auatr)) {
|
||||||
auatr = auatr.replace("\\","/");
|
auatr = auatr.replace("\\", "/");
|
||||||
auatr = encodeChineseCharacters(headUrl + auatr);
|
auatr = encodeChineseCharacters(headUrl + auatr);
|
||||||
}else{
|
} else {
|
||||||
auatr = "";
|
auatr = "";
|
||||||
}
|
}
|
||||||
tencentCloudImUtil.accountImport(loginUser.getId(), loginUser.getRealname() + aa, auatr);
|
tencentCloudImUtil.accountImport(loginUser.getId(), loginUser.getRealname() + aa, auatr);
|
||||||
@@ -308,10 +308,10 @@ public class TXController {
|
|||||||
aa = "(专家)";
|
aa = "(专家)";
|
||||||
}
|
}
|
||||||
String auatr = loginUser.getAvatar();
|
String auatr = loginUser.getAvatar();
|
||||||
if(!StringUtils.isEmpty(auatr)){
|
if (!StringUtils.isEmpty(auatr)) {
|
||||||
auatr = auatr.replace("\\","/");
|
auatr = auatr.replace("\\", "/");
|
||||||
auatr = encodeChineseCharacters(headUrl + auatr);
|
auatr = encodeChineseCharacters(headUrl + auatr);
|
||||||
}else{
|
} else {
|
||||||
auatr = "";
|
auatr = "";
|
||||||
}
|
}
|
||||||
tencentCloudImUtil.accountImport(loginUser.getId(), loginUser.getRealname() + aa, auatr);
|
tencentCloudImUtil.accountImport(loginUser.getId(), loginUser.getRealname() + aa, auatr);
|
||||||
@@ -341,7 +341,6 @@ public class TXController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Operation(summary = "创建群聊-应急")
|
@Operation(summary = "创建群聊-应急")
|
||||||
@PostMapping(value = "/creatGroupMagNewHelper")
|
@PostMapping(value = "/creatGroupMagNewHelper")
|
||||||
public Result<Map<String, Object>> creatGroupMagNewHelper(@RequestBody ConSessionRequestDO conSessionRequestDO) {
|
public Result<Map<String, Object>> creatGroupMagNewHelper(@RequestBody ConSessionRequestDO conSessionRequestDO) {
|
||||||
@@ -360,10 +359,10 @@ public class TXController {
|
|||||||
|
|
||||||
if (loginUser != null) {
|
if (loginUser != null) {
|
||||||
String auatr = loginUser.getAvatar();
|
String auatr = loginUser.getAvatar();
|
||||||
if(!StringUtils.isEmpty(auatr)){
|
if (!StringUtils.isEmpty(auatr)) {
|
||||||
auatr = auatr.replace("\\","/");
|
auatr = auatr.replace("\\", "/");
|
||||||
auatr = encodeChineseCharacters(headUrl + auatr);
|
auatr = encodeChineseCharacters(headUrl + auatr);
|
||||||
}else{
|
} else {
|
||||||
auatr = "";
|
auatr = "";
|
||||||
}
|
}
|
||||||
tencentCloudImUtil.accountImport(loginUser.getId(), loginUser.getRealname(), auatr);
|
tencentCloudImUtil.accountImport(loginUser.getId(), loginUser.getRealname(), auatr);
|
||||||
@@ -392,11 +391,13 @@ public class TXController {
|
|||||||
return Result.OK(res);
|
return Result.OK(res);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Operation(summary = "添加群成员", description = "添加群成员")
|
||||||
|
@PostMapping("/addGroupMember")
|
||||||
|
public Result<AddGroupMemberVO> addGroupMember(@RequestBody @Validated AddGroupMemberDTO dto) {
|
||||||
|
return Result.OK(tencentCloudImUtil.addGroupMember(dto));
|
||||||
|
}
|
||||||
|
|
||||||
|
private String encodeChineseCharacters(String str) {
|
||||||
|
|
||||||
|
|
||||||
private String encodeChineseCharacters(String str) {
|
|
||||||
return str.codePoints()
|
return str.codePoints()
|
||||||
.mapToObj(c -> {
|
.mapToObj(c -> {
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -6,10 +6,13 @@ import cn.hutool.core.util.StrUtil;
|
|||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.renkang.im.ImSendEnum;
|
import com.renkang.im.ImSendEnum;
|
||||||
import com.renkang.im.common.TencentCloudImApiConstant;
|
import com.renkang.im.common.TencentCloudImApiConstant;
|
||||||
import com.renkang.im.common.TencentCloudImConstant;
|
import com.renkang.im.common.TencentCloudImConstant;
|
||||||
|
import com.renkang.im.dto.AddGroupMemberDTO;
|
||||||
import com.renkang.im.entity.*;
|
import com.renkang.im.entity.*;
|
||||||
|
import com.renkang.im.vo.AddGroupMemberVO;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.RandomUtils;
|
import org.apache.commons.lang3.RandomUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
@@ -52,6 +55,8 @@ public class TencentCloudImUtil {
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private RedisUtil redisServiceUtil;
|
private RedisUtil redisServiceUtil;
|
||||||
|
@Autowired
|
||||||
|
private ObjectMapper objectMapper;
|
||||||
|
|
||||||
|
|
||||||
public static Integer getRandomNum(int length) {
|
public static Integer getRandomNum(int length) {
|
||||||
@@ -225,7 +230,7 @@ public class TencentCloudImUtil {
|
|||||||
*/
|
*/
|
||||||
public IMGroupMsgResDO sendGroupMsgText(ImGroupMsgTextReqDO imGroupMsgTextReqVO) {
|
public IMGroupMsgResDO sendGroupMsgText(ImGroupMsgTextReqDO imGroupMsgTextReqVO) {
|
||||||
IMGroupMsgResDO res = new IMGroupMsgResDO();
|
IMGroupMsgResDO res = new IMGroupMsgResDO();
|
||||||
String url = HTTPS_URL_PREFIX+"v4/group_open_http_svc/send_group_msg";
|
String url = HTTPS_URL_PREFIX + "v4/group_open_http_svc/send_group_msg";
|
||||||
|
|
||||||
JSONObject param = new JSONObject();
|
JSONObject param = new JSONObject();
|
||||||
param.put("GroupId", imGroupMsgTextReqVO.getGroupId());
|
param.put("GroupId", imGroupMsgTextReqVO.getGroupId());
|
||||||
@@ -271,7 +276,7 @@ public class TencentCloudImUtil {
|
|||||||
*/
|
*/
|
||||||
public IMGroupMsgResDO sendGroupMsgTextNew(ImGroupMsgTextReqDO imGroupMsgTextReqVO) {
|
public IMGroupMsgResDO sendGroupMsgTextNew(ImGroupMsgTextReqDO imGroupMsgTextReqVO) {
|
||||||
IMGroupMsgResDO res = new IMGroupMsgResDO();
|
IMGroupMsgResDO res = new IMGroupMsgResDO();
|
||||||
String url = HTTPS_URL_PREFIX+"v4/group_open_http_svc/send_group_msg";
|
String url = HTTPS_URL_PREFIX + "v4/group_open_http_svc/send_group_msg";
|
||||||
|
|
||||||
JSONObject param = new JSONObject();
|
JSONObject param = new JSONObject();
|
||||||
param.put("GroupId", imGroupMsgTextReqVO.getGroupId());
|
param.put("GroupId", imGroupMsgTextReqVO.getGroupId());
|
||||||
@@ -316,7 +321,7 @@ public class TencentCloudImUtil {
|
|||||||
*/
|
*/
|
||||||
public IMBaseDO sendGroupNotify(String groupId, String content) {
|
public IMBaseDO sendGroupNotify(String groupId, String content) {
|
||||||
|
|
||||||
String url = HTTPS_URL_PREFIX+"v4/group_open_http_svc/send_group_system_notification";
|
String url = HTTPS_URL_PREFIX + "v4/group_open_http_svc/send_group_system_notification";
|
||||||
|
|
||||||
// 云通信包参数
|
// 云通信包参数
|
||||||
JSONObject obj1 = new JSONObject();
|
JSONObject obj1 = new JSONObject();
|
||||||
@@ -330,7 +335,7 @@ public class TencentCloudImUtil {
|
|||||||
|
|
||||||
public IMBaseDO sendGroupNotifyToUser(String groupId, List<String> userIds, String content) {
|
public IMBaseDO sendGroupNotifyToUser(String groupId, List<String> userIds, String content) {
|
||||||
|
|
||||||
String url = HTTPS_URL_PREFIX+"v4/group_open_http_svc/send_group_system_notification";
|
String url = HTTPS_URL_PREFIX + "v4/group_open_http_svc/send_group_system_notification";
|
||||||
|
|
||||||
// 云通信包参数
|
// 云通信包参数
|
||||||
JSONObject obj1 = new JSONObject();
|
JSONObject obj1 = new JSONObject();
|
||||||
@@ -450,20 +455,28 @@ public class TencentCloudImUtil {
|
|||||||
/**
|
/**
|
||||||
* 添加群成员
|
* 添加群成员
|
||||||
*
|
*
|
||||||
* @param GroupId
|
* @param dto
|
||||||
* @param MemberList
|
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public String addGroupMember(String GroupId, List MemberList) {
|
public AddGroupMemberVO addGroupMember(AddGroupMemberDTO dto) {
|
||||||
Integer random = RandomUtils.nextInt(0, 999999999);
|
try {
|
||||||
String httpsUrl = getHttpsUrl(TencentCloudImApiConstant.GroupManage.ADD_GROUP_MEMBER, random);
|
Integer random = RandomUtils.nextInt(0, 999999999);
|
||||||
JSONObject jsonObject = new JSONObject();
|
String httpsUrl = getHttpsUrl(TencentCloudImApiConstant.GroupManage.ADD_GROUP_MEMBER, random);
|
||||||
jsonObject.put("GroupId", GroupId);
|
String jsonString = objectMapper.writeValueAsString(dto);
|
||||||
jsonObject.put("MemberList", MemberList);
|
JSONObject jsonObject = JSONObject.parseObject(jsonString);
|
||||||
log.info("腾讯云im创建群聊,请求参数:{}", jsonObject);
|
// JSONObject jsonObject = new JSONObject();
|
||||||
String result = HttpUtil.doPost(httpsUrl, jsonObject);
|
// jsonObject.put("GroupId", dto.getGroupId());
|
||||||
log.info("腾讯云im创建群聊,返回结果:{}", result);
|
// jsonObject.put("MemberList", dto.getMemberList());
|
||||||
return result;
|
log.info("腾讯云im添加群成员,请求参数:{}", jsonObject);
|
||||||
|
String result = HttpUtil.doPost(httpsUrl, jsonObject);
|
||||||
|
log.info("腾讯云im添加群成员,返回结果:{}", result);
|
||||||
|
return JSONObject.toJavaObject(JSONObject.parseObject(result), AddGroupMemberVO.class);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("添加群成员异常:{}", e.getMessage());
|
||||||
|
}
|
||||||
|
AddGroupMemberVO addGroupMemberVO = new AddGroupMemberVO();
|
||||||
|
addGroupMemberVO.setActionStatus("FAIL");
|
||||||
|
return addGroupMemberVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -614,7 +627,7 @@ public class TencentCloudImUtil {
|
|||||||
List<ImgMsg> img1 = img.getImageInfoArray();
|
List<ImgMsg> img1 = img.getImageInfoArray();
|
||||||
img1.forEach(imgMsg -> {
|
img1.forEach(imgMsg -> {
|
||||||
|
|
||||||
String newImgMsg = changeOldUrlToNew(imgMsg.getURL());
|
String newImgMsg = changeOldUrlToNew(imgMsg.getURL());
|
||||||
imgMsg.setURL(newImgMsg);
|
imgMsg.setURL(newImgMsg);
|
||||||
|
|
||||||
FileInputStream fileInputStream = null;
|
FileInputStream fileInputStream = null;
|
||||||
@@ -650,10 +663,10 @@ public class TencentCloudImUtil {
|
|||||||
try {
|
try {
|
||||||
|
|
||||||
|
|
||||||
String newImgMsg = changeOldUrlToNew(img.getThumbUrl());
|
String newImgMsg = changeOldUrlToNew(img.getThumbUrl());
|
||||||
img.setThumbUrl(newImgMsg);
|
img.setThumbUrl(newImgMsg);
|
||||||
|
|
||||||
String newBideo = changeOldUrlToNew(img.getVideoUrl());
|
String newBideo = changeOldUrlToNew(img.getVideoUrl());
|
||||||
img.setVideoUrl(newBideo);
|
img.setVideoUrl(newBideo);
|
||||||
|
|
||||||
// 根据url下载图片
|
// 根据url下载图片
|
||||||
@@ -692,7 +705,7 @@ public class TencentCloudImUtil {
|
|||||||
File fileByUrl = null;
|
File fileByUrl = null;
|
||||||
try {
|
try {
|
||||||
|
|
||||||
String newImgMsg = changeOldUrlToNew(file.getUrl());
|
String newImgMsg = changeOldUrlToNew(file.getUrl());
|
||||||
file.setUrl(newImgMsg);
|
file.setUrl(newImgMsg);
|
||||||
|
|
||||||
// 根据url下载文件
|
// 根据url下载文件
|
||||||
@@ -721,7 +734,7 @@ public class TencentCloudImUtil {
|
|||||||
File fileByUrl = null;
|
File fileByUrl = null;
|
||||||
try {
|
try {
|
||||||
|
|
||||||
String newImgMsg = changeOldUrlToNew(file.getUrl());
|
String newImgMsg = changeOldUrlToNew(file.getUrl());
|
||||||
file.setUrl(newImgMsg);
|
file.setUrl(newImgMsg);
|
||||||
|
|
||||||
// 根据url下载文件
|
// 根据url下载文件
|
||||||
@@ -749,21 +762,21 @@ public class TencentCloudImUtil {
|
|||||||
return msgBody;
|
return msgBody;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String changeOldUrlToNew(String url){
|
public String changeOldUrlToNew(String url) {
|
||||||
String newUrl = "";
|
String newUrl = "";
|
||||||
if(url.contains("https://cn.imrich.qcloud.com")){
|
if (url.contains("https://cn.imrich.qcloud.com")) {
|
||||||
newUrl = url.replace("https://cn.imrich.qcloud.com", "http://101.201.149.156:8609/qc");
|
newUrl = url.replace("https://cn.imrich.qcloud.com", "http://101.201.149.156:8609/qc");
|
||||||
}
|
}
|
||||||
if(url.contains("https://cos.ap-guangzhou.myqcloud.com")){
|
if (url.contains("https://cos.ap-guangzhou.myqcloud.com")) {
|
||||||
newUrl = url.replace("https://cos.ap-guangzhou.myqcloud.com", "http://101.201.149.156:8609/gmc");
|
newUrl = url.replace("https://cos.ap-guangzhou.myqcloud.com", "http://101.201.149.156:8609/gmc");
|
||||||
}
|
}
|
||||||
if(url.contains("https://cn.rich.my-imcloud.com")){
|
if (url.contains("https://cn.rich.my-imcloud.com")) {
|
||||||
newUrl = url.replace("https://cn.rich.my-imcloud.com", "http://101.201.149.156:8609/ic");
|
newUrl = url.replace("https://cn.rich.my-imcloud.com", "http://101.201.149.156:8609/ic");
|
||||||
}
|
}
|
||||||
if(url.contains("https://cos.ap-shanghai.myqcloud.com")){
|
if (url.contains("https://cos.ap-shanghai.myqcloud.com")) {
|
||||||
newUrl = url.replace("https://cos.ap-shanghai.myqcloud.com", "http://101.201.149.156:8609/smc");
|
newUrl = url.replace("https://cos.ap-shanghai.myqcloud.com", "http://101.201.149.156:8609/smc");
|
||||||
}
|
}
|
||||||
if(url.contains("https://cos.ap-shanghai.tencentcos.cn")){
|
if (url.contains("https://cos.ap-shanghai.tencentcos.cn")) {
|
||||||
newUrl = url.replace("https://cos.ap-shanghai.tencentcos.cn", " http://101.201.149.156:8609/tc");
|
newUrl = url.replace("https://cos.ap-shanghai.tencentcos.cn", " http://101.201.149.156:8609/tc");
|
||||||
}
|
}
|
||||||
return newUrl;
|
return newUrl;
|
||||||
@@ -781,10 +794,8 @@ public class TencentCloudImUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public Map<String, String> changeUrelArray(List<String> urlArray, String msgType) {
|
||||||
|
Map<String, String> map = new HashMap<>();
|
||||||
public Map<String,String> changeUrelArray(List<String> urlArray, String msgType) {
|
|
||||||
Map<String,String> map = new HashMap<>();
|
|
||||||
if (CollectionUtil.isNotEmpty(urlArray)) {
|
if (CollectionUtil.isNotEmpty(urlArray)) {
|
||||||
if (msgType != null) {
|
if (msgType != null) {
|
||||||
String flieName = UUID.randomUUID().toString();
|
String flieName = UUID.randomUUID().toString();
|
||||||
@@ -801,7 +812,7 @@ public class TencentCloudImUtil {
|
|||||||
fileInputStream = new FileInputStream(fileByUrl);
|
fileInputStream = new FileInputStream(fileByUrl);
|
||||||
String url = MyUploadUtil.upload(fileInputStream, bizPath, flieName + fileByUrl.getName());
|
String url = MyUploadUtil.upload(fileInputStream, bizPath, flieName + fileByUrl.getName());
|
||||||
// 更新图片地址
|
// 更新图片地址
|
||||||
map.put(imgMsg,url);
|
map.put(imgMsg, url);
|
||||||
} catch (Exception ignored) {
|
} catch (Exception ignored) {
|
||||||
// 如果出异常了,就不更新聊天记录的图片了
|
// 如果出异常了,就不更新聊天记录的图片了
|
||||||
} finally {
|
} finally {
|
||||||
|
|||||||
@@ -199,7 +199,7 @@ public class RSAEncryptUtils {
|
|||||||
// Map<String, Object> keyMap;
|
// Map<String, Object> keyMap;
|
||||||
// String cipherText;
|
// String cipherText;
|
||||||
// // 原始明文
|
// // 原始明文
|
||||||
String content = "u6k1t9d5U6k1t9d%";
|
String content = "UserPwd@123!";
|
||||||
//
|
//
|
||||||
// // 生成密钥对
|
// // 生成密钥对
|
||||||
// keyMap = initKey(1024);
|
// keyMap = initKey(1024);
|
||||||
|
|||||||
Reference in New Issue
Block a user