Browse Source

站内信对接

dev-V1.10.2-temp
vincent 3 months ago
parent
commit
3a049d97bb
  1. 36
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/thirdparty/YuGaoMsgParamBo.java
  2. 2
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/EnterpriseUserRefVo.java
  3. 8
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IEnterpriseUserRefService.java
  4. 10
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnterpriseUserRefServiceImpl.java
  5. 2
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/thirdparty/ISIQService.java
  6. 54
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/thirdparty/impl/SIQServiceImpl.java
  7. 16
      zdxt-web-server/zdxt-admin-web-server/src/test/java/com/zdxt/rest/test/siq/SiqControllerTest.java

36
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/thirdparty/YuGaoMsgParamBo.java

@ -0,0 +1,36 @@
package com.zdxt.enforcementcode.domain.bo.thirdparty;
import lombok.Data;
import java.util.Map;
@Data
public class YuGaoMsgParamBo {
/**
* 创建人
*/
private String createByName;
/**
* 执法部门名称
*/
private String deptName;
/**
* 企业ID
*/
private String enterpriseId;
/**
* 企业名称
*/
private String enterpriseName;
/**
* 执法时间
*/
private String enforceDate;
}

2
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/EnterpriseUserRefVo.java

@ -46,6 +46,8 @@ public class EnterpriseUserRefVo implements Serializable {
@ExcelProperty(value = "用户名称:冗余字段")
private String userName;
@ExcelProperty(value = "登录用户名")
private String loginName;
/**
* 企业ID
*/

8
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IEnterpriseUserRefService.java

@ -89,4 +89,12 @@ public interface IEnterpriseUserRefService {
* @return 企业用户关联信息列表
*/
List<EnterpriseUserRefVo> queryListByEnterpriseNumber(String enterpriseNumber);
/**
* 根据企业ID查询关联的用户信息
*
* @param enterpriseId 企业ID
* @return 企业用户关联信息列表
*/
List<EnterpriseUserRefVo> queryListByEnterpriseId(String enterpriseId);
}

10
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnterpriseUserRefServiceImpl.java

@ -166,4 +166,14 @@ public class EnterpriseUserRefServiceImpl implements IEnterpriseUserRefService {
lqw.eq(EnterpriseUserRef::getEnterpriseNumber, enterpriseNumber);
return baseMapper.selectVoList(lqw);
}
@Override
public List<EnterpriseUserRefVo> queryListByEnterpriseId(String enterpriseId) {
if (StringUtils.isBlank(enterpriseId)) {
return java.util.Collections.emptyList();
}
LambdaQueryWrapper<EnterpriseUserRef> lqw = Wrappers.lambdaQuery();
lqw.eq(EnterpriseUserRef::getEnterpriseId, enterpriseId);
return baseMapper.selectVoList(lqw);
}
}

2
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/thirdparty/ISIQService.java

@ -1,6 +1,7 @@
package com.zdxt.enforcementcode.service.thirdparty;
import com.zdxt.enforcementcode.domain.bo.thirdparty.SIQMsgParamBo;
import com.zdxt.enforcementcode.domain.bo.thirdparty.YuGaoMsgParamBo;
import com.zdxt.enforcementcode.domain.vo.siq.SIQTaskQueryBo;
import com.zdxt.enforcementcode.domain.vo.siq.SIQTemplateVo;
import com.zdxt.enforcementcode.domain.vo.siq.TaskQueryResultVo;
@ -22,6 +23,7 @@ public interface ISIQService {
SIQTemplateVo getTemplateById(String templateId);
void sendYuGaoMsg(YuGaoMsgParamBo paramBo);
/**
* 发送消息
* @param paramBo

54
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/thirdparty/impl/SIQServiceImpl.java

@ -8,15 +8,23 @@ import com.esotericsoftware.minlog.Log;
import com.zdxt.enforcementcode.common.config.SiqConfig;
import com.zdxt.enforcementcode.common.util.StringUtils;
import com.zdxt.enforcementcode.common.util.siq.SIQHttpUtil;
import com.zdxt.enforcementcode.domain.EnterpriseInformation;
import com.zdxt.enforcementcode.domain.EnterpriseUser;
import com.zdxt.enforcementcode.domain.bo.thirdparty.SIQMsgParamBo;
import com.zdxt.enforcementcode.domain.bo.thirdparty.SIQSendMsgBo;
import com.zdxt.enforcementcode.domain.bo.thirdparty.ToUserMetaBo;
import com.zdxt.enforcementcode.domain.bo.thirdparty.YuGaoMsgParamBo;
import com.zdxt.enforcementcode.domain.vo.EnterpriseUserRefVo;
import com.zdxt.enforcementcode.domain.vo.siq.*;
import com.zdxt.enforcementcode.mapper.EnterpriseInformationMapper;
import com.zdxt.enforcementcode.mapper.EnterpriseUserMapper;
import com.zdxt.enforcementcode.service.IEnterpriseUserRefService;
import com.zdxt.enforcementcode.service.thirdparty.ISIQService;
import jakarta.annotation.Resource;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.exception.base.BaseException;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import java.util.*;
@ -34,6 +42,22 @@ public class SIQServiceImpl implements ISIQService {
@Resource
private SiqConfig siqConfig;
/**
* 企业信息Mapper
*/
private EnterpriseInformationMapper enterpriseInformationMapper;
/**
* 企业用户Mapper
*/
private EnterpriseUserMapper enterpriseUserMapper;
/**
* 企业用户关联Service
*/
private IEnterpriseUserRefService enterpriseUserRefService;
@Override
public SIQTemplateVo getTemplateById(String templateId) {
try{
@ -49,6 +73,36 @@ public class SIQServiceImpl implements ISIQService {
throw new BaseException("获取模板详情失败");
}
}
/**
* 发送预告消息
* @param paramBo
*/
@Override
@Async
public void sendYuGaoMsg(YuGaoMsgParamBo paramBo) {
String enterpriseId = paramBo.getEnterpriseId();
List<EnterpriseUserRefVo> userRefList = enterpriseUserRefService.queryListByEnterpriseId(enterpriseId);
if (CollectionUtil.isEmpty(userRefList)) {
log.warn("企业[{}]下未找到关联用户,无法发送预告消息", enterpriseId);
return;
}
for (EnterpriseUserRefVo userRef : userRefList) {
SIQMsgParamBo siqMsgParamBo = new SIQMsgParamBo();
siqMsgParamBo.setCreateBy(paramBo.getCreateByName());
siqMsgParamBo.setReceiveAccount(String.valueOf(userRef.getLoginName()));
Map<String, String> variables = new HashMap<>();
variables.put("enterName", paramBo.getEnterpriseName());
variables.put("dept", paramBo.getDeptName());
variables.put("time", paramBo.getEnforceDate());
siqMsgParamBo.setAdditionalData(variables);
sendMsg(siqMsgParamBo);
}
log.info("企业[{}]预告消息发送完成,共发送{}条", enterpriseId, userRefList.size());
}
@Override
public void sendMsg(SIQMsgParamBo paramBo) {
try {

16
zdxt-web-server/zdxt-admin-web-server/src/test/java/com/zdxt/rest/test/siq/SiqControllerTest.java

@ -7,6 +7,7 @@ import com.zdxt.enforcementcode.common.util.siq.SIQHttpUtil;
import com.zdxt.enforcementcode.domain.bo.thirdparty.SIQMsgParamBo;
import com.zdxt.enforcementcode.domain.bo.thirdparty.SIQSendMsgBo;
import com.zdxt.enforcementcode.domain.bo.thirdparty.ToUserMetaBo;
import com.zdxt.enforcementcode.domain.bo.thirdparty.YuGaoMsgParamBo;
import com.zdxt.enforcementcode.domain.vo.siq.SIQTaskQueryBo;
import com.zdxt.enforcementcode.domain.vo.siq.SIQTemplateVo;
import com.zdxt.enforcementcode.domain.vo.siq.TaskQueryResultVo;
@ -115,4 +116,19 @@ public class SiqControllerTest {
// System.out.println("失败数: " + result.getSendFailedCount());
// }
@DisplayName("发送预告消息 - 根据企业ID查询关联用户并逐条发送")
@Test
@Order(9)
public void testSendYuGaoMsg() {
YuGaoMsgParamBo paramBo = new YuGaoMsgParamBo();
paramBo.setCreateByName("测试管理员");
paramBo.setDeptName("深圳市司法局");
paramBo.setEnterpriseId("1");
paramBo.setEnterpriseName("深圳市腾讯计算机系统有限公司");
paramBo.setEnforceDate("2026-07-30");
assertDoesNotThrow(() -> siqService.sendYuGaoMsg(paramBo),
"发送预告消息不应抛出异常");
}
}

Loading…
Cancel
Save