|
@@ -4,21 +4,31 @@ import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.crypto.digest.DigestUtil;
|
|
import cn.hutool.crypto.digest.DigestUtil;
|
|
|
import cn.tr.core.exception.ServiceException;
|
|
import cn.tr.core.exception.ServiceException;
|
|
|
import cn.tr.core.exception.TRExcCode;
|
|
import cn.tr.core.exception.TRExcCode;
|
|
|
|
|
+import cn.tr.core.strategy.LoginUserStrategy;
|
|
|
|
|
+import cn.tr.core.tenant.TenantContextHolder;
|
|
|
import cn.tr.core.utils.JsonUtils;
|
|
import cn.tr.core.utils.JsonUtils;
|
|
|
|
|
+import cn.tr.module.smart.common.dto.BizMissionDocAndSquareCoverDTO;
|
|
|
import cn.tr.module.smart.common.dto.BizMissionDocJsonDTO;
|
|
import cn.tr.module.smart.common.dto.BizMissionDocJsonDTO;
|
|
|
import cn.tr.module.smart.common.dto.BizMissionDocSquareDTO;
|
|
import cn.tr.module.smart.common.dto.BizMissionDocSquareDTO;
|
|
|
import cn.tr.module.smart.common.dto.BizMissionDocSquareQueryDTO;
|
|
import cn.tr.module.smart.common.dto.BizMissionDocSquareQueryDTO;
|
|
|
|
|
+import cn.tr.module.smart.common.mapper.BizMissionDocMapper;
|
|
|
import cn.tr.module.smart.common.mapper.BizMissionDocSquareMapper;
|
|
import cn.tr.module.smart.common.mapper.BizMissionDocSquareMapper;
|
|
|
|
|
+import cn.tr.module.smart.common.po.BizMissionDocPO;
|
|
|
import cn.tr.module.smart.common.po.BizMissionDocSquarePO;
|
|
import cn.tr.module.smart.common.po.BizMissionDocSquarePO;
|
|
|
|
|
+import cn.tr.module.smart.common.repository.BizMissionDocRepository;
|
|
|
import cn.tr.module.smart.common.repository.BizMissionDocSquareRepository;
|
|
import cn.tr.module.smart.common.repository.BizMissionDocSquareRepository;
|
|
|
import cn.tr.module.smart.common.service.IBizMissionDocSquareService;
|
|
import cn.tr.module.smart.common.service.IBizMissionDocSquareService;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
|
|
+import javax.annotation.Resource;
|
|
|
import java.util.Collection;
|
|
import java.util.Collection;
|
|
|
|
|
+import java.util.Date;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
+import java.util.Objects;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 宣教文档广场Service接口实现类
|
|
* 宣教文档广场Service接口实现类
|
|
@@ -30,6 +40,8 @@ import java.util.List;
|
|
|
public class BizMissionDocSquareServiceImpl implements IBizMissionDocSquareService {
|
|
public class BizMissionDocSquareServiceImpl implements IBizMissionDocSquareService {
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private BizMissionDocSquareRepository baseRepository;
|
|
private BizMissionDocSquareRepository baseRepository;
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private BizMissionDocRepository bizMissionDocRepository;
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -75,7 +87,7 @@ public class BizMissionDocSquareServiceImpl implements IBizMissionDocSquareServi
|
|
|
//重新计算md5
|
|
//重新计算md5
|
|
|
String contentMD5 = DigestUtil.md5Hex(bizMissionDocSquarePO.getContent());
|
|
String contentMD5 = DigestUtil.md5Hex(bizMissionDocSquarePO.getContent());
|
|
|
bizMissionDocSquarePO.setContentMd5(contentMD5);
|
|
bizMissionDocSquarePO.setContentMd5(contentMD5);
|
|
|
- BizMissionDocJsonDTO bizMissionDocJsonDTO = BizMissionDocSquareMapper.INSTANCE.convertJsonDTO(source);
|
|
|
|
|
|
|
+ BizMissionDocJsonDTO bizMissionDocJsonDTO = BizMissionDocSquareMapper.INSTANCE.convertJsonDTO(bizMissionDocSquarePO);
|
|
|
String MD5 = DigestUtil.md5Hex(JsonUtils.toJsonString(bizMissionDocJsonDTO));
|
|
String MD5 = DigestUtil.md5Hex(JsonUtils.toJsonString(bizMissionDocJsonDTO));
|
|
|
bizMissionDocSquarePO.setMd5(MD5);
|
|
bizMissionDocSquarePO.setMd5(MD5);
|
|
|
return baseRepository.updateById(bizMissionDocSquarePO) != 0;
|
|
return baseRepository.updateById(bizMissionDocSquarePO) != 0;
|
|
@@ -94,7 +106,7 @@ public class BizMissionDocSquareServiceImpl implements IBizMissionDocSquareServi
|
|
|
BizMissionDocSquarePO bizMissionDocSquarePO = BizMissionDocSquareMapper.INSTANCE.convertPO(source);
|
|
BizMissionDocSquarePO bizMissionDocSquarePO = BizMissionDocSquareMapper.INSTANCE.convertPO(source);
|
|
|
String contentMD5 = DigestUtil.md5Hex(bizMissionDocSquarePO.getContent());
|
|
String contentMD5 = DigestUtil.md5Hex(bizMissionDocSquarePO.getContent());
|
|
|
bizMissionDocSquarePO.setContentMd5(contentMD5);
|
|
bizMissionDocSquarePO.setContentMd5(contentMD5);
|
|
|
- BizMissionDocJsonDTO bizMissionDocJsonDTO = BizMissionDocSquareMapper.INSTANCE.convertJsonDTO(source);
|
|
|
|
|
|
|
+ BizMissionDocJsonDTO bizMissionDocJsonDTO = BizMissionDocSquareMapper.INSTANCE.convertJsonDTO(bizMissionDocSquarePO);
|
|
|
String MD5 = DigestUtil.md5Hex(JsonUtils.toJsonString(bizMissionDocJsonDTO));
|
|
String MD5 = DigestUtil.md5Hex(JsonUtils.toJsonString(bizMissionDocJsonDTO));
|
|
|
bizMissionDocSquarePO.setMd5(MD5);
|
|
bizMissionDocSquarePO.setMd5(MD5);
|
|
|
bizMissionDocSquarePO.setVersion(1);
|
|
bizMissionDocSquarePO.setVersion(1);
|
|
@@ -132,4 +144,52 @@ public class BizMissionDocSquareServiceImpl implements IBizMissionDocSquareServi
|
|
|
return CollectionUtil.isNotEmpty(bizMissionDocSquarePOS);
|
|
return CollectionUtil.isNotEmpty(bizMissionDocSquarePOS);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @param id 拉取的ID
|
|
|
|
|
+ * @description: 推送宣教文档到宣教文档广场
|
|
|
|
|
+ * @author wangzl
|
|
|
|
|
+ * @date 2025/5/27
|
|
|
|
|
+ */
|
|
|
|
|
+ @Override
|
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
|
|
+ public boolean pullDoc(String id) {
|
|
|
|
|
+ String currentUserId = LoginUserStrategy.tr.getCurrentUserId();
|
|
|
|
|
+ BizMissionDocSquarePO bizMissionDocSquarePO = baseRepository.selectById(id);
|
|
|
|
|
+ if (Objects.isNull(bizMissionDocSquarePO)) {
|
|
|
|
|
+ throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001, "该宣教文档不存在");
|
|
|
|
|
+ }
|
|
|
|
|
+ //拉取者所在医院
|
|
|
|
|
+ String tenantId = TenantContextHolder.getTenantId();
|
|
|
|
|
+ BizMissionDocAndSquareCoverDTO bizMissionDocAndSquareCoverDTO = BizMissionDocSquareMapper.INSTANCE.convertCoverDTO(bizMissionDocSquarePO);
|
|
|
|
|
+ BizMissionDocPO newBizMissionDocPO = BizMissionDocMapper.INSTANCE.convertSquarePO(bizMissionDocAndSquareCoverDTO);
|
|
|
|
|
+ newBizMissionDocPO.setDeleted(false);
|
|
|
|
|
+ if (tenantId.equals(bizMissionDocSquarePO.getTenantId())) {
|
|
|
|
|
+ //拉取自己医院推送数据 软删除所以只会更新即可
|
|
|
|
|
+ BizMissionDocPO bizMissionDocPO = bizMissionDocRepository.selectBizMissionDocById(bizMissionDocSquarePO.getHospitalDocId());
|
|
|
|
|
+ if (Objects.isNull(bizMissionDocPO)) {
|
|
|
|
|
+ throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001, "该宣教文档不存在");
|
|
|
|
|
+ } else {
|
|
|
|
|
+ newBizMissionDocPO.setId(bizMissionDocPO.getId());
|
|
|
|
|
+ newBizMissionDocPO.setUpdateBy(currentUserId);
|
|
|
|
|
+ newBizMissionDocPO.setUpdateTime(new Date());
|
|
|
|
|
+ bizMissionDocRepository.updateBizMissionDocById(newBizMissionDocPO);
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ newBizMissionDocPO.setSquareDocId(bizMissionDocSquarePO.getId());
|
|
|
|
|
+ BizMissionDocPO bizMissionDocPO = bizMissionDocRepository.selectOneBySquareId(bizMissionDocSquarePO.getId());
|
|
|
|
|
+ if (Objects.isNull(bizMissionDocPO)) {
|
|
|
|
|
+ bizMissionDocRepository.insert(newBizMissionDocPO);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ newBizMissionDocPO.setId(bizMissionDocPO.getId());
|
|
|
|
|
+ newBizMissionDocPO.setUpdateBy(currentUserId);
|
|
|
|
|
+ newBizMissionDocPO.setUpdateTime(new Date());
|
|
|
|
|
+ bizMissionDocRepository.updateBizMissionDocById(newBizMissionDocPO);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ //增加引用次数
|
|
|
|
|
+ return baseRepository.update(null, new LambdaUpdateWrapper<BizMissionDocSquarePO>()
|
|
|
|
|
+ .eq(BizMissionDocSquarePO::getId, bizMissionDocSquarePO.getId())
|
|
|
|
|
+ .set(BizMissionDocSquarePO::getCitationCount, bizMissionDocSquarePO.getCitationCount() + 1)) != 0;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
}
|
|
}
|