|
|
@@ -3,29 +3,31 @@ package cn.tr.module.smart.common.service.impl;
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
import cn.hutool.crypto.digest.DigestUtil;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
import cn.tr.core.exception.ServiceException;
|
|
|
import cn.tr.core.exception.TRExcCode;
|
|
|
import cn.tr.core.strategy.LoginUserStrategy;
|
|
|
import cn.tr.core.tenant.TenantContextHolder;
|
|
|
-import cn.tr.module.smart.common.dto.BizQuestionDTO;
|
|
|
-import cn.tr.module.smart.common.dto.BizQuestionGroupAiDTO;
|
|
|
-import cn.tr.module.smart.common.dto.BizQuestionGroupDTO;
|
|
|
-import cn.tr.module.smart.common.dto.BizQuestionGroupQueryDTO;
|
|
|
+import cn.tr.module.smart.app.controller.dto.AppMessageQuestionGroupPushDTO;
|
|
|
+import cn.tr.module.smart.common.dto.*;
|
|
|
+import cn.tr.module.smart.common.enums.ClinicUndoType;
|
|
|
+import cn.tr.module.smart.common.enums.MpPublishTaskTypeEnums;
|
|
|
import cn.tr.module.smart.common.enums.QuestionGroupTypeEnums;
|
|
|
import cn.tr.module.smart.common.mapper.*;
|
|
|
import cn.tr.module.smart.common.po.*;
|
|
|
import cn.tr.module.smart.common.properties.ALiYunProperties;
|
|
|
-import cn.tr.module.smart.common.repository.BizQuestionDeptRepository;
|
|
|
-import cn.tr.module.smart.common.repository.BizQuestionGroupRepository;
|
|
|
-import cn.tr.module.smart.common.repository.BizQuestionGroupSquareRepository;
|
|
|
-import cn.tr.module.smart.common.repository.BizQuestionRepository;
|
|
|
+import cn.tr.module.smart.common.repository.*;
|
|
|
+import cn.tr.module.smart.common.service.IBizClinicRoomUndoService;
|
|
|
import cn.tr.module.smart.common.service.IBizQuestionGroupService;
|
|
|
import cn.tr.module.smart.common.service.IBizQuestionGroupSquareService;
|
|
|
import cn.tr.module.smart.web.dto.BizDeptUnlinkQuestionQueryDTO;
|
|
|
import cn.tr.module.smart.web.vo.BizDeptUnlinkQuestionVO;
|
|
|
+import cn.tr.module.smart.wx.config.WxTemplateSendHelper;
|
|
|
+import cn.tr.module.smart.wx.controller.vo.BizUndoMsgPushResultVO;
|
|
|
import cn.tr.module.smart.wx.controller.vo.BizWebQuestionGroupVO;
|
|
|
+import cn.tr.module.smart.wx.dto.BizMpPublishInfoDTO;
|
|
|
import com.alibaba.dashscope.aigc.generation.Generation;
|
|
|
import com.alibaba.dashscope.aigc.generation.GenerationParam;
|
|
|
import com.alibaba.dashscope.aigc.generation.GenerationResult;
|
|
|
@@ -35,6 +37,7 @@ import com.alibaba.dashscope.exception.InputRequiredException;
|
|
|
import com.alibaba.dashscope.exception.NoApiKeyException;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.cache.annotation.Cacheable;
|
|
|
@@ -57,6 +60,7 @@ import java.util.stream.Collectors;
|
|
|
* @date 2025/05/23 16:45
|
|
|
**/
|
|
|
@Service
|
|
|
+@Slf4j
|
|
|
public class BizQuestionGroupServiceImpl implements IBizQuestionGroupService {
|
|
|
@Autowired
|
|
|
private BizQuestionGroupRepository baseRepository;
|
|
|
@@ -70,7 +74,12 @@ public class BizQuestionGroupServiceImpl implements IBizQuestionGroupService {
|
|
|
private IBizQuestionGroupSquareService bizQuestionGroupSquareService;
|
|
|
@Autowired
|
|
|
private BizQuestionDeptRepository bizQuestionDeptRepository;
|
|
|
-
|
|
|
+ @Autowired
|
|
|
+ private WxTemplateSendHelper wxTemplateSendHelper;
|
|
|
+ @Autowired
|
|
|
+ private BizClinicRoomRepository clinicRoomRepository;
|
|
|
+ @Autowired
|
|
|
+ private IBizClinicRoomUndoService bizClinicRoomUndoService;
|
|
|
@Autowired
|
|
|
private ALiYunProperties aliyunProperties;
|
|
|
|
|
|
@@ -317,4 +326,31 @@ public class BizQuestionGroupServiceImpl implements IBizQuestionGroupService {
|
|
|
return JSONUtil.toList(result.getOutput().getChoices().get(0).getMessage().getContent(), BizQuestionDTO.class);
|
|
|
|
|
|
}
|
|
|
-}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public BizUndoMsgPushResultVO pushMpInfo(AppMessageQuestionGroupPushDTO source) {
|
|
|
+ BizUndoMsgPushResultVO result = new BizUndoMsgPushResultVO();
|
|
|
+ BizMpPublishInfoDTO publishInfo=clinicRoomRepository.selectMpPushTaskInfoById(source.getClinicId());
|
|
|
+ bizClinicRoomUndoService.insertBizClinicRoomUndo(
|
|
|
+ BizClinicRoomUndoDTO.builder()
|
|
|
+ .clinicRoomId(source.getClinicId())
|
|
|
+ .publishUserId(LoginUserStrategy.tr.getCurrentUserId())
|
|
|
+ .type(ClinicUndoType.questionGroup)
|
|
|
+ .publishTime(new Date())
|
|
|
+ .linkId(source.getQuestionGroupId())
|
|
|
+ .build());
|
|
|
+ if(ObjectUtil.isNull(publishInfo)|| StrUtil.isEmpty(publishInfo.getOpenId())){
|
|
|
+ result.setMp(Boolean.FALSE);
|
|
|
+ result.setErrMsg("用户未关注公众号");
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ try{
|
|
|
+ wxTemplateSendHelper.sendMsg(publishInfo, MpPublishTaskTypeEnums.AFTER_QUESTION.getType());
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error("术后问卷推送消息失败",e);
|
|
|
+ result.setMp(Boolean.FALSE);
|
|
|
+ result.setErrMsg("系统繁忙");
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+}
|