Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
聂康
local-rnr-mg
Commits
b2eded42
Commit
b2eded42
authored
Jun 17, 2025
by
kang.nie@inzymeits.com
Browse files
初始化代码
parent
12156d65
Pipeline
#3109
failed with stages
in 0 seconds
Changes
439
Pipelines
1
Show whitespace changes
Inline
Side-by-side
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/notice/mq/DelayTestListener.java
0 → 100644
View file @
b2eded42
//package com.cusc.nirvana.user.rnr.notice.mq;
//
//import com.alibaba.fastjson.JSONObject;
//import lombok.extern.slf4j.Slf4j;
//import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
//import org.apache.rocketmq.spring.core.RocketMQListener;
//import org.springframework.stereotype.Component;
//
///**
// * @author stayAnd
// * @date 2022/5/11
// */
//@Component
//@RocketMQMessageListener(topic = "cyTestDelay-Topic",consumerGroup = "cyTestDelay-Group",selectorExpression = "*")
//@Slf4j
//public class DelayTestListener implements RocketMQListener {
//
// @Override
// public void onMessage(Object o) {
// log.info("DelayTestListener onMessage = {}",JSONObject.toJSONString(o));
// }
//}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/notice/mq/RnrBindExchangeConsumer.java
0 → 100644
View file @
b2eded42
//package com.cusc.nirvana.user.rnr.notice.mq;
//
//import com.alibaba.fastjson.JSON;
//import com.cusc.nirvana.user.rnr.mg.constants.*;
//import com.cusc.nirvana.user.rnr.mg.dto.MgBizNoticeDTO;
//import com.cusc.nirvana.user.rnr.mg.dto.RnrOrderDTO;
//import com.cusc.nirvana.user.rnr.mg.service.IMgRnrCardInfoService;
//import com.cusc.nirvana.user.rnr.mg.service.IMgRnrInfoService;
//import com.cusc.nirvana.user.rnr.mg.service.IRnrOrderService;
//import lombok.extern.slf4j.Slf4j;
//import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
//import org.apache.rocketmq.spring.core.RocketMQListener;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//
//import javax.annotation.Resource;
//import java.util.Collections;
//
///**
// * @author yubo
// * @since 2022-05-04 10:46
// */
//@Slf4j
//@Service
//@RocketMQMessageListener(topic = RnrMgMqConstant.RNR_CARD_OPERATION_DELAY_TOPIC, consumerGroup =
// RnrMgMqConstant.RNR_CARD_OPERATION_DELAY_GROUP)
//public class RnrBindExchangeConsumer implements RocketMQListener<MgBizNoticeDTO> {
//
// @Autowired
// IRnrOrderService orderService;
//
// @Autowired
// IMgRnrCardInfoService cardInfoService;
//
// @Resource
// private IMgRnrInfoService rnrInfoService;
//
// @Override
// public void onMessage(MgBizNoticeDTO message) {
// log.info("接收到延迟消息:{}", JSON.toJSONString(message));
// //查询工单信息
// RnrOrderDTO rnrOrderDTO = new RnrOrderDTO();
// rnrOrderDTO.setUuid(message.getOrderId());
// rnrOrderDTO = orderService.getByUuid(rnrOrderDTO);
//
// if (null == rnrOrderDTO) {
// log.info("接收到延迟消息 未查询到order,uuid = {}",message.getOrderId());
// return;
// }
//
// if (RnrOrderType.UNBIND.getCode().equals(rnrOrderDTO.getOrderType())
// || RnrOrderType.TBOX_CHANGE.getCode().equals(rnrOrderDTO.getOrderType())
// || RnrOrderType.ONE_CAR_MORE_CARD_BIND.getCode().equals(rnrOrderDTO.getOrderType())
// || RnrOrderType.ENTERPRISEUNBIND.getCode().equals(rnrOrderDTO.getOrderType())){
//
// // 原车主解绑 、 换件 、 一车多卡 、 企业解绑 发送短信后order_status是1或者2(待审核) 如果此时收到延迟消息时 还是此状态 作废工单和卡
// if (!RnrOrderStatusEnum.notFinished(rnrOrderDTO.getOrderStatus())) {
// log.info("接收到延迟消息,不处理,工单类型:{} 工单状态:{} 工单uuid:{}",rnrOrderDTO.getOrderType(),rnrOrderDTO.getOrderStatus(),rnrOrderDTO.getUuid());
// return;
// }
//
// //还是待审核状态
//
// //工单设置成未通过
// orderService.updateOrderStatus(Collections.singletonList(rnrOrderDTO.getUuid()), RnrOrderStatusEnum.CANCEL.getCode());
// //卡设置成失败状态
// cardInfoService.updateCardStatusByOrderId(rnrOrderDTO.getUuid(), NoticeStatusEnum.NONEED.getCode(), RnrStatus.RNR_FAIL.getCode());
//
// //原车主解绑 、 换件 、 一车多卡 挂在原先的rnr_id 下面 不需要处理超时的rnr_info 企业解绑是新的rnr_info 需要处理超时的情况
// if (RnrOrderType.ENTERPRISEUNBIND.getCode().equals(rnrOrderDTO.getOrderType())) {
// //rnr_info 设置成为失败
// rnrInfoService.updateRnrStatus(rnrOrderDTO.getRnrId(),RnrStatus.RNR_FAIL);
// }
// } else if(RnrOrderType.NEW_VEHICLE.getCode().equals(rnrOrderDTO.getOrderType())
// || RnrOrderType.SEC_VEHICLE.getCode().equals(rnrOrderDTO.getOrderType())
// || RnrOrderType.COMPANY_NEW_VEHICLE.getCode().equals(rnrOrderDTO.getOrderType())) {
// //新车自然人实名 二手车实名 企业新车实名 提交资料后 order_status 是0(初始化状态) 如果此时收到延迟消息时 还是此状态 作废工单和卡和实名信息
// if (!RnrOrderStatusEnum.COMMIT.getCode().equals(rnrOrderDTO.getOrderStatus())) {
// log.info("接收到延迟消息,不处理,工单类型:{} 工单状态:{} 工单uuid:{}",rnrOrderDTO.getOrderType(),rnrOrderDTO.getOrderStatus(),rnrOrderDTO.getUuid());
// return;
// }
//
//
// //还是初始化状态 需要作废这笔实名信息
//
// //工单设置成未通过
// orderService.updateOrderStatus(Collections.singletonList(rnrOrderDTO.getUuid()), RnrOrderStatusEnum.CANCEL.getCode());
// //卡设置成失败状态
// cardInfoService.updateCardStatusByOrderId(rnrOrderDTO.getUuid(), NoticeStatusEnum.NONEED.getCode(), RnrStatus.RNR_FAIL.getCode());
// //rnr_info 设置成为失败
// rnrInfoService.updateRnrStatus(rnrOrderDTO.getRnrId(),RnrStatus.RNR_FAIL);
// }
// }
//}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/notice/mq/RnrNoticeConsumer.java
0 → 100644
View file @
b2eded42
//package com.cusc.nirvana.user.rnr.notice.mq;
//
//import com.alibaba.fastjson.JSON;
//import com.alibaba.fastjson.JSONObject;
//import com.cusc.nirvana.common.result.Response;
//import com.cusc.nirvana.user.rnr.mg.constants.NoticeStatusEnum;
//import com.cusc.nirvana.user.rnr.mg.constants.RnrMgMqConstant;
//import com.cusc.nirvana.user.rnr.mg.dto.MgCardNoticeDTO;
//import com.cusc.nirvana.user.rnr.mg.dto.MgRnrCardInfoDTO;
//import com.cusc.nirvana.user.rnr.mg.service.IMgRnrCardInfoService;
//import com.cusc.nirvana.user.rnr.mg.util.RnrMgRestTemplateUtils;
//import com.cusc.nirvana.user.rnr.notice.dto.RnrNoticeConfigDTO;
//import com.cusc.nirvana.user.rnr.notice.dto.RnrNoticeContentDTO;
//import com.cusc.nirvana.user.rnr.notice.dto.RnrNoticeContentLogDTO;
//import com.cusc.nirvana.user.rnr.notice.service.IRnrNoticeConfigService;
//import com.cusc.nirvana.user.rnr.notice.service.IRnrNoticeContentLogService;
//import com.cusc.nirvana.user.rnr.notice.service.IRnrNoticeContentService;
//import com.cusc.nirvana.user.util.CuscStringUtils;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.beans.factory.annotation.Qualifier;
//import org.springframework.http.HttpEntity;
//import org.springframework.http.HttpHeaders;
//import org.springframework.http.MediaType;
//import org.springframework.stereotype.Service;
//import org.springframework.util.CollectionUtils;
//import org.springframework.web.client.RestTemplate;
//
//import java.util.*;
//
///**
// * 绑定、解绑 队列消费
// *
// * @author huzl
// */
//@Slf4j
//@Service
//@RocketMQMessageListener(topic = RnrMgMqConstant.RNR_CARD_OPERATION_TOPIC, consumerGroup =
// RnrMgMqConstant.RNR_CARD_OPERATION_GROUP)
//public class RnrNoticeConsumer implements RocketMQListener<MgCardNoticeDTO> {
//
// @Autowired
// private IRnrNoticeConfigService rnrNoticeConfigService;
// @Autowired
// private IRnrNoticeContentLogService rnrNoticeContentLogService;
// @Autowired
// private IRnrNoticeContentService rnrNoticeContentService;
// @Autowired
// @Qualifier("thirdPartyRnr")
// private RestTemplate thirdPartyRnr;
// @Autowired
// IMgRnrCardInfoService cardInfoService;
//
// @Override
// public void onMessage(MgCardNoticeDTO bean) {
// log.info("RnrNoticeConsumer onMessage: {}", JSON.toJSONString(bean));
// if (Objects.isNull(bean)) {
// return;
// }
//
// try {
// //修改iccid的通知状态
// MgRnrCardInfoDTO mgRnrCardInfoDTO = cardInfoService.getByOrderIdAndIccId(bean.getOrderId(), bean.getIccid());
// log.warn("onMessage mgRnrCardInfoDTO : {}", JSON.toJSON(mgRnrCardInfoDTO));
// if (mgRnrCardInfoDTO != null) {
// mgRnrCardInfoDTO.setNoticeStatus(NoticeStatusEnum.SUCCESS.getCode());
// cardInfoService.updateCardNoticeStatus(mgRnrCardInfoDTO);
// }
//
// RnrNoticeConfigDTO paramDTO = new RnrNoticeConfigDTO();
// //通过项目编号查询单条数据
// paramDTO.setNoticeSubject(bean.getManufacturerOrgId());
// paramDTO.setTenantNo(bean.getTenantNo());
// List<RnrNoticeConfigDTO> rnrNoticeConfigList = rnrNoticeConfigService.queryByNoticeSubject(paramDTO);
// if (CollectionUtils.isEmpty(rnrNoticeConfigList)) {
// log.info("RnrNoticeConsumer notice config is null , request: {}", JSON.toJSONString(bean));
// return;
// }
// for (RnrNoticeConfigDTO rnrNoticeConfigDTO : rnrNoticeConfigList) {
// String url = rnrNoticeConfigDTO.getUrl();
//
// //定义参数格式为json
// final HttpHeaders headers = new HttpHeaders();
// headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
//
// //调通知接口时传的参数
// Map<String, Object> parameters = new HashMap<>();
// parameters.put("vin", bean.getVin());
// parameters.put("iccid", bean.getIccid());
// parameters.put("oldIccid", bean.getOldIccid());
// parameters.put("orderId", bean.getOrderId());
// parameters.put("orgId", bean.getOrgId());
// parameters.put("manufacturerOrgId", bean.getManufacturerOrgId());
//
// parameters.put("rnrBizzType", bean.getRnrBizzType());
// parameters.put("resultCode", bean.getResultCode());
// parameters.put("tenantNo", bean.getTenantNo());
//
//
// HttpEntity<Map<String, Object>> httpEntity = new HttpEntity<>(parameters, headers);
// Date requestTime = new Date();
// Response ret =
// RnrMgRestTemplateUtils.postForObject(thirdPartyRnr, url, httpEntity, Response.class);
// log.info("RnrNoticeConsumer end , url = {},request = {},response = {}",url,JSONObject.toJSONString(parameters),JSONObject.toJSONString(ret));
// Date responseTime = new Date();
// //0-成功,1-失败
// Integer noticeStatus = null;
// if (Objects.nonNull(ret) && ret.getSuccess()) {
// noticeStatus = 0;
// } else {
// noticeStatus = 1;
// }
//
// //插入rnr_notice_content表
// RnrNoticeContentDTO rnrNoticeContentDTO = new RnrNoticeContentDTO();
// rnrNoticeContentDTO.setUuid(CuscStringUtils.generateUuid());
// rnrNoticeContentDTO.setNoticeConfigId(rnrNoticeConfigDTO.getUuid());
// rnrNoticeContentDTO.setNoticeSubject("");
// rnrNoticeContentDTO.setRnrBizzType(bean.getRnrBizzType());
// rnrNoticeContentDTO.setNoticeContent(parameters.toString());
// rnrNoticeContentDTO.setNoticeStatus(noticeStatus);
// rnrNoticeContentDTO.setCount(1);
// rnrNoticeContentDTO.setCreator(bean.getOperator());
// rnrNoticeContentService.insert(rnrNoticeContentDTO);
//
// //插入rnr_notice_content_log表
// RnrNoticeContentLogDTO rnrNoticeContentLogDTO = new RnrNoticeContentLogDTO();
// rnrNoticeContentLogDTO.setUuid(CuscStringUtils.generateUuid());
// rnrNoticeContentLogDTO.setRnrBizzType(bean.getRnrBizzType());
// rnrNoticeContentLogDTO.setNoticeContentId(rnrNoticeContentDTO.getUuid());
// rnrNoticeContentLogDTO.setRequestTime(requestTime);
// rnrNoticeContentLogDTO.setResponseTime(responseTime);
// if (Objects.nonNull(ret)) {
// rnrNoticeContentLogDTO.setResponseMsg(ret.getMsg());
// }
// //0-成功,1-失败
// rnrNoticeContentLogDTO.setIsSuccess(noticeStatus);
// rnrNoticeContentLogDTO.setCreator(bean.getOperator());
// rnrNoticeContentLogService.insert(rnrNoticeContentLogDTO);
// }
//
// } catch (Exception e) {
// log.error("RnrNoticeConsumer 消费异常: data = {}", JSONObject.toJSONString(bean),e);
// }
// }
//
//}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/notice/service/IRnrNoticeConfigService.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.notice.service
;
import
com.cusc.nirvana.user.rnr.notice.dao.entity.RnrNoticeConfigPO
;
import
com.cusc.nirvana.user.rnr.notice.dto.RnrNoticeConfigDTO
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.cusc.nirvana.common.result.PageResult
;
import
java.util.List
;
/**
* 实名通知配置(同一个主体和状态支持多个通知方)(RnrNoticeConfig)表服务接口
*
* @author yuy336
* @since 2022-03-31 15:04:51
*/
public
interface
IRnrNoticeConfigService
extends
IService
<
RnrNoticeConfigPO
>
{
/**
* 通过UUID查询单条数据
*
* @param bean
* @return 实例对象
*/
RnrNoticeConfigDTO
getByUuid
(
RnrNoticeConfigDTO
bean
);
/**
* 查询通知的配置
*
* @param bean
* @return 实例对象
*/
List
<
RnrNoticeConfigDTO
>
queryByNoticeSubject
(
RnrNoticeConfigDTO
bean
);
/**
* 通过查询条件查询集合数据
*
* @param bean
* @return 集合对象
*/
List
<
RnrNoticeConfigDTO
>
queryByList
(
RnrNoticeConfigDTO
bean
);
/**
* 分页查询
*
* @param bean 筛选条件
* @return 查询结果
*/
PageResult
<
RnrNoticeConfigDTO
>
queryByPage
(
RnrNoticeConfigDTO
bean
);
/**
* 新增数据
*
* @param bean 实例对象
* @return 实例对象
*/
RnrNoticeConfigDTO
insert
(
RnrNoticeConfigDTO
bean
);
/**
* 修改数据
*
* @param bean 实例对象
* @return 实例对象
*/
RnrNoticeConfigDTO
update
(
RnrNoticeConfigDTO
bean
);
/**
* 通过主键删除数据
*
* @param bean
* @return 是否成功
*/
boolean
deleteById
(
RnrNoticeConfigDTO
bean
);
/**
* 通过业务主体和通知类型查询通知配置(支持缓存)
*
* @param bean
* @return 集合对象
*/
List
<
RnrNoticeConfigDTO
>
queryBySubjectAndTypeCache
(
RnrNoticeConfigDTO
bean
);
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/notice/service/IRnrNoticeContentLogService.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.notice.service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.cusc.nirvana.user.rnr.notice.dao.entity.RnrNoticeContentLogPO
;
import
com.cusc.nirvana.user.rnr.notice.dto.RnrNoticeContentLogDTO
;
import
java.util.List
;
/**
* 实名通知内容日志(RnrNoticeContentLog)表服务接口
*
* @author yuy336
* @since 2022-03-31 15:05:28
*/
public
interface
IRnrNoticeContentLogService
extends
IService
<
RnrNoticeContentLogPO
>
{
/**
* 通过UUID查询单条数据
*
* @param bean
* @return 实例对象
*/
RnrNoticeContentLogDTO
getByUuid
(
RnrNoticeContentLogDTO
bean
);
/**
* 通过查询条件查询集合数据
*
* @param bean
* @return 集合对象
*/
List
<
RnrNoticeContentLogDTO
>
queryByList
(
RnrNoticeContentLogDTO
bean
);
/**
* 新增数据
*
* @param bean 实例对象
* @return 实例对象
*/
RnrNoticeContentLogDTO
insert
(
RnrNoticeContentLogDTO
bean
);
/**
* 修改数据
*
* @param bean 实例对象
* @return 实例对象
*/
RnrNoticeContentLogDTO
update
(
RnrNoticeContentLogDTO
bean
);
/**
* 通过主键删除数据
*
* @param bean
* @return 是否成功
*/
boolean
deleteById
(
RnrNoticeContentLogDTO
bean
);
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/notice/service/IRnrNoticeContentService.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.notice.service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.cusc.nirvana.common.result.PageResult
;
import
com.cusc.nirvana.user.rnr.notice.dao.entity.RnrNoticeContentPO
;
import
com.cusc.nirvana.user.rnr.notice.dto.RnrNoticeContentDTO
;
import
com.cusc.nirvana.user.rnr.notice.dto.RnrNoticeReqDTO
;
import
java.util.List
;
/**
* 实名通知内容(RnrNoticeContent)表服务接口
*
* @author yuy336
* @since 2022-03-31 15:05:11
*/
public
interface
IRnrNoticeContentService
extends
IService
<
RnrNoticeContentPO
>
{
/**
* 通过UUID查询单条数据
*
* @param bean
* @return 实例对象
*/
RnrNoticeContentDTO
getByUuid
(
RnrNoticeContentDTO
bean
);
/**
* 通过查询条件查询集合数据
*
* @param bean
* @return 集合对象
*/
List
<
RnrNoticeContentDTO
>
queryByList
(
RnrNoticeContentDTO
bean
);
/**
* 分页查询
* @param queryDTO
* @return
*/
PageResult
<
RnrNoticeContentDTO
>
queryByPage
(
RnrNoticeContentDTO
queryDTO
);
/**
* 新增数据
*
* @param bean 实例对象
* @return 实例对象
*/
RnrNoticeContentDTO
insert
(
RnrNoticeContentDTO
bean
);
/**
* 修改数据
*
* @param bean 实例对象
* @return 实例对象
*/
RnrNoticeContentDTO
update
(
RnrNoticeContentDTO
bean
);
/**
* 通过主键删除数据
*
* @param bean
* @return 是否成功
*/
boolean
deleteById
(
RnrNoticeContentDTO
bean
);
/**
* Description: 通知三方系统
* <br />
* CreateDate 2022-03-31 16:19:57
*
* @author yuyi
**/
boolean
noticeThreePartySystem
(
RnrNoticeReqDTO
bean
);
/**
* Description: 通知三方系统重试
* <br />
* CreateDate 2022-03-31 16:19:57
*
* @author yuyi
**/
boolean
noticeThreePartySystemRetry
(
RnrNoticeContentDTO
bean
);
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/notice/service/NoticeHandler.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.notice.service
;
import
com.cusc.nirvana.user.rnr.mg.dto.MgCardNoticeDTO
;
/**
* @author yubo
* @since 2022-06-16 18:11
*/
public
interface
NoticeHandler
{
/**
* 处理消息
* @param bean
*/
void
handleNotice
(
MgCardNoticeDTO
bean
);
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/notice/service/NoticeHandlerContext.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.notice.service
;
import
org.springframework.beans.BeansException
;
import
org.springframework.beans.factory.InitializingBean
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.context.ApplicationContextAware
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author yubo
* @since 2022-06-16 18:16
*/
@Service
public
class
NoticeHandlerContext
implements
ApplicationContextAware
,
InitializingBean
{
private
ApplicationContext
context
;
private
Map
<
String
,
NoticeHandler
>
noticeHandlerMap
;
private
List
<
NoticeHandler
>
handlerList
;
public
List
<
NoticeHandler
>
getHandlerList
()
{
return
handlerList
;
}
@Override
public
void
afterPropertiesSet
()
throws
Exception
{
noticeHandlerMap
=
context
.
getBeansOfType
(
NoticeHandler
.
class
);
handlerList
=
new
ArrayList
<>(
noticeHandlerMap
.
values
());
}
@Override
public
void
setApplicationContext
(
ApplicationContext
applicationContext
)
throws
BeansException
{
this
.
context
=
applicationContext
;
}
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/notice/service/impl/NoticeContentHandler.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.notice.service.impl
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.cache.CacheFactory
;
import
com.cusc.nirvana.common.result.Response
;
import
com.cusc.nirvana.user.rnr.common.constants.RedisConstant
;
import
com.cusc.nirvana.user.rnr.mg.dto.MgCardNoticeDTO
;
import
com.cusc.nirvana.user.rnr.mg.util.RnrMgRestTemplateUtils
;
import
com.cusc.nirvana.user.rnr.notice.dto.RnrNoticeConfigDTO
;
import
com.cusc.nirvana.user.rnr.notice.dto.RnrNoticeContentDTO
;
import
com.cusc.nirvana.user.rnr.notice.dto.RnrNoticeContentLogDTO
;
import
com.cusc.nirvana.user.rnr.notice.service.IRnrNoticeConfigService
;
import
com.cusc.nirvana.user.rnr.notice.service.IRnrNoticeContentLogService
;
import
com.cusc.nirvana.user.rnr.notice.service.IRnrNoticeContentService
;
import
com.cusc.nirvana.user.rnr.notice.service.NoticeHandler
;
import
com.cusc.nirvana.user.util.CuscStringUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.http.HttpEntity
;
import
org.springframework.http.HttpHeaders
;
import
org.springframework.http.MediaType
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.LinkedMultiValueMap
;
import
org.springframework.util.MultiValueMap
;
import
org.springframework.web.client.RestTemplate
;
import
javax.annotation.Resource
;
import
java.util.*
;
/**
* @author yubo
* @since 2022-06-16 18:12
*/
@Service
(
"noticeContentHandler"
)
@Slf4j
public
class
NoticeContentHandler
implements
NoticeHandler
{
@Autowired
private
IRnrNoticeConfigService
rnrNoticeConfigService
;
@Autowired
private
IRnrNoticeContentLogService
rnrNoticeContentLogService
;
@Autowired
private
IRnrNoticeContentService
rnrNoticeContentService
;
@Autowired
@Qualifier
(
"thirdPartyRnr"
)
private
RestTemplate
thirdPartyRnr
;
@Autowired
@Qualifier
(
"restTemplate"
)
private
RestTemplate
restTemplate
;
@Override
public
void
handleNotice
(
MgCardNoticeDTO
bean
)
{
log
.
warn
(
"handleNotice入参{}"
,
JSONObject
.
toJSONString
(
bean
));
try
{
RnrNoticeConfigDTO
paramDTO
=
new
RnrNoticeConfigDTO
();
//通过项目编号查询单条数据
paramDTO
.
setNoticeSubject
(
bean
.
getManufacturerOrgId
());
paramDTO
.
setTenantNo
(
bean
.
getTenantNo
());
List
<
RnrNoticeConfigDTO
>
rnrNoticeConfigList
=
rnrNoticeConfigService
.
queryByNoticeSubject
(
paramDTO
);
if
(
CollectionUtils
.
isEmpty
(
rnrNoticeConfigList
))
{
log
.
info
(
"RnrNoticeConsumer notice config is null , request: {}"
,
JSON
.
toJSONString
(
bean
));
return
;
}
for
(
RnrNoticeConfigDTO
rnrNoticeConfigDTO
:
rnrNoticeConfigList
)
{
String
url
=
rnrNoticeConfigDTO
.
getUrl
();
Integer
urlType
=
rnrNoticeConfigDTO
.
getUrlType
();
//定义参数格式为json
final
HttpHeaders
headers
=
new
HttpHeaders
();
headers
.
setContentType
(
MediaType
.
APPLICATION_JSON_UTF8
);
//调通知接口时传的参数
Map
<
String
,
Object
>
parameters
=
new
HashMap
<>();
parameters
.
put
(
"vin"
,
bean
.
getVin
());
parameters
.
put
(
"iccid"
,
bean
.
getIccid
());
parameters
.
put
(
"oldIccid"
,
bean
.
getOldIccid
());
parameters
.
put
(
"orderId"
,
bean
.
getOrderId
());
parameters
.
put
(
"orgId"
,
bean
.
getOrgId
());
parameters
.
put
(
"manufacturerOrgId"
,
bean
.
getManufacturerOrgId
());
parameters
.
put
(
"rnrBizzType"
,
bean
.
getRnrBizzType
());
parameters
.
put
(
"resultCode"
,
bean
.
getResultCode
());
parameters
.
put
(
"tenantNo"
,
bean
.
getTenantNo
());
HttpEntity
<
Map
<
String
,
Object
>>
httpEntity
=
new
HttpEntity
<>(
parameters
,
headers
);
Date
requestTime
=
new
Date
();
Response
ret
=
null
;
//1为域名调用 2为服务名调用
log
.
info
(
"RnrNoticeConsumer start , url = {},request = {}"
,
url
,
JSONObject
.
toJSONString
(
parameters
));
if
(
1
==
urlType
)
{
ret
=
RnrMgRestTemplateUtils
.
postForObject
(
restTemplate
,
url
,
httpEntity
,
Response
.
class
);
}
else
{
ret
=
RnrMgRestTemplateUtils
.
postForObject
(
thirdPartyRnr
,
url
,
httpEntity
,
Response
.
class
);
}
log
.
info
(
"RnrNoticeConsumer end , url = {},request = {},response = {}"
,
url
,
JSONObject
.
toJSONString
(
parameters
),
JSONObject
.
toJSONString
(
ret
));
Date
responseTime
=
new
Date
();
//0-成功,1-失败
Integer
noticeStatus
=
null
;
if
(
Objects
.
nonNull
(
ret
)
&&
ret
.
getSuccess
())
{
noticeStatus
=
0
;
}
else
{
noticeStatus
=
1
;
}
//插入rnr_notice_content表
RnrNoticeContentDTO
rnrNoticeContentDTO
=
new
RnrNoticeContentDTO
();
rnrNoticeContentDTO
.
setUuid
(
CuscStringUtils
.
generateUuid
());
rnrNoticeContentDTO
.
setNoticeConfigId
(
rnrNoticeConfigDTO
.
getUuid
());
rnrNoticeContentDTO
.
setNoticeSubject
(
""
);
rnrNoticeContentDTO
.
setRnrBizzType
(
bean
.
getRnrBizzType
());
rnrNoticeContentDTO
.
setNoticeContent
(
JSON
.
toJSONString
(
parameters
));
rnrNoticeContentDTO
.
setNoticeStatus
(
noticeStatus
);
rnrNoticeContentDTO
.
setCount
(
1
);
rnrNoticeContentDTO
.
setCreator
(
bean
.
getOperator
());
rnrNoticeContentService
.
insert
(
rnrNoticeContentDTO
);
//插入rnr_notice_content_log表
RnrNoticeContentLogDTO
rnrNoticeContentLogDTO
=
new
RnrNoticeContentLogDTO
();
rnrNoticeContentLogDTO
.
setUuid
(
CuscStringUtils
.
generateUuid
());
rnrNoticeContentLogDTO
.
setRnrBizzType
(
bean
.
getRnrBizzType
());
rnrNoticeContentLogDTO
.
setNoticeContentId
(
rnrNoticeContentDTO
.
getUuid
());
rnrNoticeContentLogDTO
.
setRequestTime
(
requestTime
);
rnrNoticeContentLogDTO
.
setResponseTime
(
responseTime
);
if
(
Objects
.
nonNull
(
ret
))
{
rnrNoticeContentLogDTO
.
setResponseMsg
(
ret
.
getMsg
());
}
//0-成功,1-失败
rnrNoticeContentLogDTO
.
setIsSuccess
(
noticeStatus
);
rnrNoticeContentLogDTO
.
setCreator
(
bean
.
getOperator
());
rnrNoticeContentLogService
.
insert
(
rnrNoticeContentLogDTO
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
"RnrNoticeConsumer 消费异常: data = {}"
,
JSONObject
.
toJSONString
(
bean
),
e
);
}
}
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/notice/service/impl/RnrNoticeConfigServiceImpl.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.notice.service.impl
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.cache.annotation.tag.Cache
;
import
com.cusc.nirvana.common.result.PageResult
;
import
com.cusc.nirvana.rds.mybatis.PageHelper
;
import
com.cusc.nirvana.user.rnr.common.constants.RedisConstant
;
import
com.cusc.nirvana.user.rnr.mg.constants.CommonDeleteEnum
;
import
com.cusc.nirvana.user.rnr.notice.converter.RnrNoticeConfigConverter
;
import
com.cusc.nirvana.user.rnr.notice.dao.RnrNoticeConfigDao
;
import
com.cusc.nirvana.user.rnr.notice.dao.entity.RnrNoticeConfigPO
;
import
com.cusc.nirvana.user.rnr.notice.dto.RnrNoticeConfigDTO
;
import
com.cusc.nirvana.user.rnr.notice.service.IRnrNoticeConfigService
;
import
com.cusc.nirvana.user.util.CuscStringUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
java.util.List
;
/**
* 实名通知配置(同一个主体和状态支持多个通知方)(RnrNoticeConfig)表服务实现类
*
* @author yuy336
* @since 2022-03-31 15:04:52
*/
@Service
public
class
RnrNoticeConfigServiceImpl
extends
ServiceImpl
<
RnrNoticeConfigDao
,
RnrNoticeConfigPO
>
implements
IRnrNoticeConfigService
{
/**
* 通过UUID查询单条数据
*
* @param bean
* @return 实例对象
*/
@Override
public
RnrNoticeConfigDTO
getByUuid
(
RnrNoticeConfigDTO
bean
)
{
RnrNoticeConfigPO
record
=
this
.
getPoByUuid
(
bean
.
getUuid
());
return
RnrNoticeConfigConverter
.
INSTANCE
.
poToDto
(
record
);
}
@Override
public
List
<
RnrNoticeConfigDTO
>
queryByNoticeSubject
(
RnrNoticeConfigDTO
bean
)
{
List
<
RnrNoticeConfigPO
>
record
=
this
.
getPoByNoticeSubject
(
bean
);
return
RnrNoticeConfigConverter
.
INSTANCE
.
poListToDtoList
(
record
);
}
/**
* 通过查询条件查询集合数据
*
* @param bean
* @return 集合对象
*/
@Override
public
List
<
RnrNoticeConfigDTO
>
queryByList
(
RnrNoticeConfigDTO
bean
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
queryWrapper
.
orderByDesc
(
"create_time"
);
List
<
RnrNoticeConfigPO
>
record
=
this
.
list
(
queryWrapper
);
return
RnrNoticeConfigConverter
.
INSTANCE
.
poListToDtoList
(
record
);
}
/**
* 分页查询
*
* @param bean 筛选条件
* @return 查询结果
*/
@Override
public
PageResult
<
RnrNoticeConfigDTO
>
queryByPage
(
RnrNoticeConfigDTO
bean
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
orderByDesc
(
"create_time"
);
queryWrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
Page
<
RnrNoticeConfigPO
>
page
=
this
.
page
(
new
Page
<>(
bean
.
getCurrPage
(),
bean
.
getPageSize
()),
queryWrapper
);
return
PageHelper
.
convert
(
page
,
RnrNoticeConfigDTO
.
class
);
}
/**
* 新增数据
*
* @param bean 实例对象
* @return 实例对象
*/
@Override
@Transactional
@Cache
(
keyPrefix
=
RedisConstant
.
RNR_NOTICE_CONFIG
,
key
=
"#bean.noticeSubject+\"_\"+#bean.noticeType"
,
level1
=
"redis"
,
action
=
0
)
public
RnrNoticeConfigDTO
insert
(
RnrNoticeConfigDTO
bean
)
{
RnrNoticeConfigPO
rnrNoticeConfigPO
=
RnrNoticeConfigConverter
.
INSTANCE
.
dtoToPo
(
bean
);
rnrNoticeConfigPO
.
setUuid
(
CuscStringUtils
.
generateUuid
());
this
.
save
(
rnrNoticeConfigPO
);
bean
.
setUuid
(
rnrNoticeConfigPO
.
getUuid
());
return
bean
;
}
/**
* 修改数据
*
* @param bean 实例对象
* @return 实例对象
*/
@Override
@Transactional
@Cache
(
keyPrefix
=
RedisConstant
.
RNR_NOTICE_CONFIG
,
key
=
"#bean.noticeSubject+\"_\"+#bean.noticeType"
,
level1
=
"redis"
,
action
=
0
)
public
RnrNoticeConfigDTO
update
(
RnrNoticeConfigDTO
bean
)
{
RnrNoticeConfigPO
rnrNoticeConfigPO
=
this
.
getPoByUuid
(
bean
.
getUuid
());
if
(
rnrNoticeConfigPO
==
null
)
{
return
null
;
}
RnrNoticeConfigPO
tmpBean
=
RnrNoticeConfigConverter
.
INSTANCE
.
dtoToPo
(
bean
);
tmpBean
.
setId
(
rnrNoticeConfigPO
.
getId
());
this
.
updateById
(
tmpBean
);
return
bean
;
}
/**
* 通过主键删除数据
*
* @param bean 实例对象
* @return 是否成功
*/
@Override
@Transactional
@Cache
(
keyPrefix
=
RedisConstant
.
RNR_NOTICE_CONFIG
,
key
=
"#bean.noticeSubject+\"_\"+#bean.noticeType"
,
level1
=
"redis"
,
action
=
0
)
public
boolean
deleteById
(
RnrNoticeConfigDTO
bean
)
{
RnrNoticeConfigPO
rnrNoticeConfigPO
=
this
.
getPoByUuid
(
bean
.
getUuid
());
if
(
rnrNoticeConfigPO
==
null
)
{
return
false
;
}
RnrNoticeConfigPO
tmpBean
=
new
RnrNoticeConfigPO
();
tmpBean
.
setId
(
rnrNoticeConfigPO
.
getId
());
tmpBean
.
setIsDelete
(
CommonDeleteEnum
.
DELETED
.
getCode
());
return
this
.
updateById
(
tmpBean
);
}
/**
* 通过业务主体和通知类型查询通知配置(支持缓存)
*
* @param bean
* @return 集合对象
*/
@Override
@Cache
(
keyPrefix
=
RedisConstant
.
RNR_NOTICE_CONFIG
,
key
=
"#bean.noticeSubject+\"_\"+#bean.rnrBizzType"
,
level1
=
"redis"
)
public
List
<
RnrNoticeConfigDTO
>
queryBySubjectAndTypeCache
(
RnrNoticeConfigDTO
bean
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"notice_subject"
,
bean
.
getNoticeSubject
());
queryWrapper
.
eq
(
"notice_type"
,
bean
.
getRnrBizzType
());
try
{
List
<
RnrNoticeConfigPO
>
configListPO
=
this
.
list
(
queryWrapper
);
if
(
CollectionUtils
.
isEmpty
(
configListPO
))
{
return
null
;
}
return
RnrNoticeConfigConverter
.
INSTANCE
.
poListToDtoList
(
configListPO
);
}
catch
(
Exception
e
)
{
log
.
error
(
"queryBySubjectAndTypeCache "
,
e
);
}
return
null
;
}
//----------------------私有方法区----------------------
/**
* 通过UUID查询单条数据
*
* @param uuid
* @return 实例对象
*/
private
RnrNoticeConfigPO
getPoByUuid
(
String
uuid
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"uuid"
,
uuid
);
queryWrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
return
this
.
getOne
(
queryWrapper
);
}
/**
* 通过项目编号查询单条数据
*
* @param bean
* @return 实例对象
*/
private
List
<
RnrNoticeConfigPO
>
getPoByNoticeSubject
(
RnrNoticeConfigDTO
bean
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"notice_subject"
,
bean
.
getNoticeSubject
());
queryWrapper
.
eq
(
"tenant_no"
,
bean
.
getTenantNo
());
queryWrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
return
this
.
list
(
queryWrapper
);
}
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/notice/service/impl/RnrNoticeContentLogServiceImpl.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.notice.service.impl
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.cusc.nirvana.user.rnr.mg.constants.CommonDeleteEnum
;
import
com.cusc.nirvana.user.rnr.notice.converter.RnrNoticeContentLogConverter
;
import
com.cusc.nirvana.user.rnr.notice.dao.RnrNoticeContentLogDao
;
import
com.cusc.nirvana.user.rnr.notice.dao.entity.RnrNoticeContentLogPO
;
import
com.cusc.nirvana.user.rnr.notice.dto.RnrNoticeContentLogDTO
;
import
com.cusc.nirvana.user.rnr.notice.service.IRnrNoticeContentLogService
;
import
com.cusc.nirvana.user.util.CuscStringUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.List
;
/**
* 实名通知内容日志(RnrNoticeContentLog)表服务实现类
*
* @author yuy336
* @since 2022-03-31 15:05:28
*/
@Service
public
class
RnrNoticeContentLogServiceImpl
extends
ServiceImpl
<
RnrNoticeContentLogDao
,
RnrNoticeContentLogPO
>
implements
IRnrNoticeContentLogService
{
/**
* 通过UUID查询单条数据
*
* @param bean
* @return 实例对象
*/
@Override
public
RnrNoticeContentLogDTO
getByUuid
(
RnrNoticeContentLogDTO
bean
)
{
RnrNoticeContentLogPO
record
=
this
.
getPoByUuid
(
bean
.
getUuid
());;
return
RnrNoticeContentLogConverter
.
INSTANCE
.
poToDto
(
record
);
}
/**
* 通过查询条件查询集合数据
*
* @param bean
* @return 集合对象
*/
@Override
public
List
<
RnrNoticeContentLogDTO
>
queryByList
(
RnrNoticeContentLogDTO
bean
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
queryWrapper
.
orderByDesc
(
"create_time"
);
List
<
RnrNoticeContentLogPO
>
record
=
this
.
list
(
queryWrapper
);
return
RnrNoticeContentLogConverter
.
INSTANCE
.
poListToDtoList
(
record
);
}
/**
* 新增数据
*
* @param bean 实例对象
* @return 实例对象
*/
@Override
@Transactional
public
RnrNoticeContentLogDTO
insert
(
RnrNoticeContentLogDTO
bean
)
{
RnrNoticeContentLogPO
rnrNoticeContentLogPO
=
RnrNoticeContentLogConverter
.
INSTANCE
.
dtoToPo
(
bean
);
rnrNoticeContentLogPO
.
setUuid
(
CuscStringUtils
.
generateUuid
());
this
.
save
(
rnrNoticeContentLogPO
);
bean
.
setUuid
(
rnrNoticeContentLogPO
.
getUuid
());
return
bean
;
}
/**
* 修改数据
*
* @param bean 实例对象
* @return 实例对象
*/
@Override
@Transactional
public
RnrNoticeContentLogDTO
update
(
RnrNoticeContentLogDTO
bean
)
{
RnrNoticeContentLogPO
rnrNoticeContentLogPO
=
this
.
getPoByUuid
(
bean
.
getUuid
());
if
(
rnrNoticeContentLogPO
==
null
){
return
null
;
}
RnrNoticeContentLogPO
tmpBean
=
RnrNoticeContentLogConverter
.
INSTANCE
.
dtoToPo
(
bean
);
tmpBean
.
setId
(
rnrNoticeContentLogPO
.
getId
());
this
.
updateById
(
tmpBean
);
return
bean
;
}
/**
* 通过主键删除数据
* @param bean 实例对象
* @return 是否成功
*/
@Override
@Transactional
public
boolean
deleteById
(
RnrNoticeContentLogDTO
bean
)
{
RnrNoticeContentLogPO
rnrNoticeContentLogPO
=
this
.
getPoByUuid
(
bean
.
getUuid
());
if
(
rnrNoticeContentLogPO
==
null
)
{
return
false
;
}
RnrNoticeContentLogPO
tmpBean
=
new
RnrNoticeContentLogPO
();
tmpBean
.
setId
(
rnrNoticeContentLogPO
.
getId
());
return
this
.
updateById
(
tmpBean
);
}
/**
* 通过UUID查询单条数据
*
* @param uuid
* @return 实例对象
*/
private
RnrNoticeContentLogPO
getPoByUuid
(
String
uuid
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"uuid"
,
uuid
);
queryWrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
return
this
.
getOne
(
queryWrapper
);
}
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/notice/service/impl/RnrNoticeContentServiceImpl.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.notice.service.impl
;
import
com.alibaba.fastjson.JSON
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.cusc.nirvana.common.result.PageResult
;
import
com.cusc.nirvana.common.result.Response
;
import
com.cusc.nirvana.rds.mybatis.PageHelper
;
import
com.cusc.nirvana.user.rnr.mg.constants.CommonDeleteEnum
;
import
com.cusc.nirvana.user.rnr.mg.constants.CommonYesOrNoEnum
;
import
com.cusc.nirvana.user.rnr.mg.dao.entity.SimFileHistoryPO
;
import
com.cusc.nirvana.user.rnr.mg.dto.SimFileHistoryDTO
;
import
com.cusc.nirvana.user.rnr.mg.dto.SimFileHistoryQueryDTO
;
import
com.cusc.nirvana.user.rnr.mg.util.Md5CaculateUtil
;
import
com.cusc.nirvana.user.rnr.notice.constants.NoticeUrlTypeEnum
;
import
com.cusc.nirvana.user.rnr.notice.converter.RnrNoticeContentConverter
;
import
com.cusc.nirvana.user.rnr.notice.converter.ThirdPartyNoticeConverter
;
import
com.cusc.nirvana.user.rnr.notice.dao.RnrNoticeContentDao
;
import
com.cusc.nirvana.user.rnr.notice.dao.entity.RnrNoticeContentPO
;
import
com.cusc.nirvana.user.rnr.notice.dto.RnrNoticeConfigDTO
;
import
com.cusc.nirvana.user.rnr.notice.dto.RnrNoticeContentDTO
;
import
com.cusc.nirvana.user.rnr.notice.dto.RnrNoticeContentLogDTO
;
import
com.cusc.nirvana.user.rnr.notice.dto.RnrNoticeReqDTO
;
import
com.cusc.nirvana.user.rnr.notice.dto.ThirdPartyNoticeReqDTO
;
import
com.cusc.nirvana.user.rnr.notice.service.IRnrNoticeConfigService
;
import
com.cusc.nirvana.user.rnr.notice.service.IRnrNoticeContentLogService
;
import
com.cusc.nirvana.user.rnr.notice.service.IRnrNoticeContentService
;
import
com.cusc.nirvana.user.util.CuscStringUtils
;
import
com.cusc.nirvana.user.util.DateUtils
;
import
org.apache.skywalking.apm.toolkit.trace.TraceContext
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.http.HttpEntity
;
import
org.springframework.http.HttpHeaders
;
import
org.springframework.http.MediaType
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.StringUtils
;
import
org.springframework.web.client.RestTemplate
;
import
java.util.Date
;
import
java.util.List
;
/**
* 实名通知内容(RnrNoticeContent)表服务实现类
*
* @author yuy336
* @since 2022-03-31 15:05:11
*/
@Service
public
class
RnrNoticeContentServiceImpl
extends
ServiceImpl
<
RnrNoticeContentDao
,
RnrNoticeContentPO
>
implements
IRnrNoticeContentService
{
@Autowired
private
IRnrNoticeContentLogService
rnrNoticeContentLogService
;
@Autowired
private
IRnrNoticeConfigService
rnrNoticeConfigService
;
@Autowired
@Qualifier
(
"restTemplate"
)
public
RestTemplate
restTemplate
;
@Autowired
@Qualifier
(
"thirdPartyRnr"
)
public
RestTemplate
thirdPartyRnr
;
/**
* 通过UUID查询单条数据
*
* @param bean
* @return 实例对象
*/
@Override
public
RnrNoticeContentDTO
getByUuid
(
RnrNoticeContentDTO
bean
)
{
RnrNoticeContentPO
record
=
this
.
getPoByUuid
(
bean
.
getUuid
());
return
RnrNoticeContentConverter
.
INSTANCE
.
poToDto
(
record
);
}
/**
* 通过查询条件查询集合数据
*
* @param bean
* @return 集合对象
*/
@Override
public
List
<
RnrNoticeContentDTO
>
queryByList
(
RnrNoticeContentDTO
bean
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"notice_status"
,
1
);
queryWrapper
.
orderByDesc
(
"create_time"
);
List
<
RnrNoticeContentPO
>
record
=
this
.
list
(
queryWrapper
);
return
RnrNoticeContentConverter
.
INSTANCE
.
poListToDtoList
(
record
);
}
@Override
public
PageResult
<
RnrNoticeContentDTO
>
queryByPage
(
RnrNoticeContentDTO
queryDTO
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"notice_status"
,
1
);
queryWrapper
.
lt
(
"count"
,
10
);
queryWrapper
.
orderByDesc
(
"create_time"
);
Page
<
RnrNoticeContentPO
>
historyPOPage
=
this
.
page
(
new
Page
<>(
queryDTO
.
getCurrPage
(),
queryDTO
.
getPageSize
()),
queryWrapper
);
return
PageHelper
.
convert
(
historyPOPage
,
RnrNoticeContentDTO
.
class
);
}
/**
* 新增数据
*
* @param bean 实例对象
* @return 实例对象
*/
@Override
@Transactional
public
RnrNoticeContentDTO
insert
(
RnrNoticeContentDTO
bean
)
{
RnrNoticeContentPO
rnrNoticeContentPO
=
RnrNoticeContentConverter
.
INSTANCE
.
dtoToPo
(
bean
);
if
(
StringUtils
.
isEmpty
(
rnrNoticeContentPO
.
getUuid
()))
{
rnrNoticeContentPO
.
setUuid
(
CuscStringUtils
.
generateUuid
());
}
this
.
save
(
rnrNoticeContentPO
);
bean
.
setUuid
(
rnrNoticeContentPO
.
getUuid
());
return
bean
;
}
/**
* 修改数据
*
* @param bean 实例对象
* @return 实例对象
*/
@Override
@Transactional
public
RnrNoticeContentDTO
update
(
RnrNoticeContentDTO
bean
)
{
RnrNoticeContentPO
rnrNoticeContentPO
=
this
.
getPoByUuid
(
bean
.
getUuid
());
if
(
rnrNoticeContentPO
==
null
)
{
return
null
;
}
RnrNoticeContentPO
tmpBean
=
RnrNoticeContentConverter
.
INSTANCE
.
dtoToPo
(
bean
);
tmpBean
.
setId
(
rnrNoticeContentPO
.
getId
());
this
.
updateById
(
tmpBean
);
return
bean
;
}
/**
* 通过主键删除数据
*
* @param bean 实例对象
* @return 是否成功
*/
@Override
@Transactional
public
boolean
deleteById
(
RnrNoticeContentDTO
bean
)
{
RnrNoticeContentPO
rnrNoticeContentPO
=
this
.
getPoByUuid
(
bean
.
getUuid
());
if
(
rnrNoticeContentPO
==
null
)
{
return
false
;
}
RnrNoticeContentPO
tmpBean
=
new
RnrNoticeContentPO
();
tmpBean
.
setId
(
rnrNoticeContentPO
.
getId
());
return
this
.
updateById
(
tmpBean
);
}
/**
* Description: 通知三方系统
* <br />
* CreateDate 2022-03-31 16:19:57
*
* @author yuyi
**/
@Override
@Transactional
public
boolean
noticeThreePartySystem
(
RnrNoticeReqDTO
bean
)
{
boolean
ret
=
false
;
// 根据主体查询通知配置
RnrNoticeConfigDTO
config
=
new
RnrNoticeConfigDTO
();
config
.
setNoticeSubject
(
bean
.
getNoticeSubject
());
//config.setRnrBizzType(bean.getNoticeType());
List
<
RnrNoticeConfigDTO
>
noticeConfigList
=
rnrNoticeConfigService
.
queryBySubjectAndTypeCache
(
config
);
if
(
CollectionUtils
.
isEmpty
(
noticeConfigList
))
{
return
ret
;
}
ThirdPartyNoticeReqDTO
tpNoticeReq
=
ThirdPartyNoticeConverter
.
INSTANCE
.
noticeReqToThirdPartyDto
(
bean
);
RnrNoticeContentDTO
contentDTO
;
RnrNoticeContentLogDTO
logDTO
;
for
(
RnrNoticeConfigDTO
noticeConfig
:
noticeConfigList
)
{
contentDTO
=
new
RnrNoticeContentDTO
();
contentDTO
.
setNoticeConfigId
(
noticeConfig
.
getUuid
());
contentDTO
.
setNoticeSubject
(
noticeConfig
.
getNoticeSubject
());
contentDTO
.
setRnrBizzType
(
noticeConfig
.
getRnrBizzType
());
contentDTO
.
setCount
(
1
);
logDTO
=
new
RnrNoticeContentLogDTO
();
logDTO
.
setRequestTime
(
new
Date
());
logDTO
.
setTraceId
(
TraceContext
.
traceId
());
//发起三方通知
Response
thirdResp
=
thirdPartyNotice
(
noticeConfig
,
tpNoticeReq
);
logDTO
.
setResponseMsg
(
JSON
.
toJSONString
(
thirdResp
));
logDTO
.
setResponseTime
(
new
Date
());
if
(
thirdResp
.
getSuccess
())
{
logDTO
.
setIsSuccess
(
CommonYesOrNoEnum
.
YES
.
getCode
());
contentDTO
.
setNoticeStatus
(
CommonYesOrNoEnum
.
YES
.
getCode
());
ret
=
true
;
}
else
{
logDTO
.
setIsSuccess
(
CommonYesOrNoEnum
.
NO
.
getCode
());
contentDTO
.
setNoticeStatus
(
CommonYesOrNoEnum
.
NO
.
getCode
());
}
//记录通知内容和通知日志
contentDTO
.
setNoticeContent
(
JSON
.
toJSONString
(
tpNoticeReq
));
contentDTO
=
this
.
insert
(
contentDTO
);
logDTO
.
setNoticeContentId
(
contentDTO
.
getUuid
());
rnrNoticeContentLogService
.
insert
(
logDTO
);
}
return
ret
;
}
@Override
public
boolean
noticeThreePartySystemRetry
(
RnrNoticeContentDTO
bean
)
{
boolean
ret
=
false
;
// 根据主体查询通知配置
RnrNoticeConfigDTO
config
=
new
RnrNoticeConfigDTO
();
config
.
setNoticeSubject
(
bean
.
getNoticeSubject
());
config
.
setRnrBizzType
(
bean
.
getRnrBizzType
());
List
<
RnrNoticeConfigDTO
>
noticeConfigList
=
rnrNoticeConfigService
.
queryBySubjectAndTypeCache
(
config
);
if
(
CollectionUtils
.
isEmpty
(
noticeConfigList
))
{
return
ret
;
}
ThirdPartyNoticeReqDTO
tpNoticeReq
=
JSON
.
parseObject
(
bean
.
getNoticeContent
(),
ThirdPartyNoticeReqDTO
.
class
);
RnrNoticeContentDTO
contentDTO
;
RnrNoticeContentLogDTO
logDTO
;
config
=
null
;
for
(
RnrNoticeConfigDTO
noticeConfig
:
noticeConfigList
)
{
if
(
noticeConfig
.
getUuid
().
equals
(
bean
.
getNoticeConfigId
()))
{
config
=
noticeConfig
;
}
}
logDTO
=
new
RnrNoticeContentLogDTO
();
logDTO
.
setRequestTime
(
new
Date
());
logDTO
.
setTraceId
(
TraceContext
.
traceId
());
if
(
config
!=
null
)
{
contentDTO
=
new
RnrNoticeContentDTO
();
contentDTO
.
setUuid
(
bean
.
getUuid
());
//发起三方通知
Response
thirdResp
=
thirdPartyNotice
(
config
,
tpNoticeReq
);
logDTO
.
setResponseMsg
(
JSON
.
toJSONString
(
thirdResp
));
logDTO
.
setResponseTime
(
new
Date
());
if
(
thirdResp
.
getSuccess
())
{
logDTO
.
setIsSuccess
(
CommonYesOrNoEnum
.
YES
.
getCode
());
contentDTO
.
setNoticeStatus
(
CommonYesOrNoEnum
.
YES
.
getCode
());
ret
=
true
;
}
else
{
logDTO
.
setIsSuccess
(
CommonYesOrNoEnum
.
NO
.
getCode
());
//更新错误次数
contentDTO
.
setCount
(
bean
.
getCount
()
+
1
);
}
}
else
{
logDTO
.
setResponseMsg
(
"通知配置不存在"
);
}
//记录通知日志
logDTO
.
setNoticeContentId
(
bean
.
getUuid
());
rnrNoticeContentLogService
.
insert
(
logDTO
);
return
ret
;
}
//----------------私有方法区--------------
/**
* 通过UUID查询单条数据
*
* @param uuid
* @return 实例对象
*/
private
RnrNoticeContentPO
getPoByUuid
(
String
uuid
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"uuid"
,
uuid
);
// queryWrapper.eq("is_delete", CommonDeleteEnum.NORMAL.getCode());
return
this
.
getOne
(
queryWrapper
);
}
/**
* Description: 发起三方通知
* <br />
* CreateDate 2022-03-31 19:36:38
*
* @author yuyi
**/
private
Response
thirdPartyNotice
(
RnrNoticeConfigDTO
noticeConfig
,
ThirdPartyNoticeReqDTO
tpNoticeReq
)
{
Response
ret
;
if
(
NoticeUrlTypeEnum
.
SERVER_NAME
.
getCode
()
==
noticeConfig
.
getUrlType
())
{
//服务名调用
ret
=
restTemplate
.
postForObject
(
noticeConfig
.
getUrl
(),
tpNoticeReq
,
Response
.
class
);
}
else
{
//ip调用
HttpEntity
reqHttpEntity
;
if
(
CommonYesOrNoEnum
.
YES
.
getCode
()
==
noticeConfig
.
getIsSign
())
{
//远程需要header验签
reqHttpEntity
=
new
HttpEntity
<>(
tpNoticeReq
,
builderHttpHeaders
(
noticeConfig
));
}
else
{
reqHttpEntity
=
new
HttpEntity
<>(
tpNoticeReq
);
}
ret
=
thirdPartyRnr
.
postForObject
(
noticeConfig
.
getUrl
(),
reqHttpEntity
,
Response
.
class
);
}
return
ret
;
}
/**
* Description: 构建header
* <br />
* CreateDate 2022-03-30 10:47:35
*
* @author yuyi
**/
private
HttpHeaders
builderHttpHeaders
(
RnrNoticeConfigDTO
noticeConfig
)
{
HttpHeaders
requestHeaders
=
new
HttpHeaders
();
requestHeaders
.
setContentType
(
MediaType
.
APPLICATION_JSON_UTF8
);
String
currentTimeStr
=
DateUtils
.
currentTimeStr
();
String
nonce
=
CuscStringUtils
.
generateUuid
();
requestHeaders
.
set
(
"appid"
,
noticeConfig
.
getAppId
());
requestHeaders
.
set
(
"timestamp"
,
currentTimeStr
);
requestHeaders
.
set
(
"serialNumber"
,
""
);
StringBuffer
sbr
=
new
StringBuffer
();
sbr
.
append
(
"appid="
);
sbr
.
append
(
noticeConfig
.
getAppId
());
sbr
.
append
(
"×tamp="
);
sbr
.
append
(
currentTimeStr
);
sbr
.
append
(
"&serialNumber="
);
sbr
.
append
(
nonce
);
sbr
.
append
(
"&appkey="
);
sbr
.
append
(
noticeConfig
.
getAppKey
());
requestHeaders
.
set
(
"sign"
,
Md5CaculateUtil
.
MD5
(
sbr
.
toString
()));
return
requestHeaders
;
}
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/notice/service/impl/T1UploadHandler.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.notice.service.impl
;
/**
* @author yubo
* @since 2022-06-16 18:14
*/
//@Service("t1UploadHandler")
//@RefreshScope
//@Slf4j
//public class T1UploadHandler implements NoticeHandler {
//
// @Value("${t1.upload.enabled:false}")
// private boolean t1UploadEnabled = false;
//
// @Autowired
// T1DataUploadClient t1DataUploadClient;
//
// @Override
// public void handleNotice(MgCardNoticeDTO bean) {
// log.info("T1UploadHandler onMessage: {},t1UploadEnabled: {}", JSON.toJSONString(bean), t1DataUploadClient);
//
// if (!t1UploadEnabled) {
// return;
// }
// Response response = t1DataUploadClient.uploadUserInfoAndFile(bean);
// if (!response.isSuccess()) {
// throw new CuscUserException(response.getCode(), response.getMsg());
// }
// }
//}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/workorder/constants/WorkOrderTypeEnum.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.workorder.constants
;
import
com.cusc.nirvana.user.rnr.mg.constants.RnrOrderType
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
java.util.Arrays
;
/**
* @author stayAnd
* @date 2022/3/30
*/
@AllArgsConstructor
public
enum
WorkOrderTypeEnum
{
/**
* 人工实名认证工单
*/
REAL_NAME_CERTIFICATION_ORDER
(
RnrOrderType
.
NEW_VEHICLE
,
"real_name_natural_person_new_car"
,
"人工实名认证工单"
,
"自然人实名. %s,手机号:%s,VIN:%s,ICCID:%s"
,
"rnrWorkOrderCallBackHandler"
),
/**
* 二手车实名认证工单
*/
SECOND_HAND_VEHICLE_CERTIFICATION
(
RnrOrderType
.
SEC_VEHICLE
,
"real_name_natural_person_used_car"
,
"二手车实名认证工单"
,
"二手车实名. %s,手机号:%s,VIN:%s,ICCID:%s"
,
"rnrWorkOrderCallBackHandler"
),
/**
* 企业新车实名认证
*/
COMPANY_NEW_VEHICLE_CERTIFICATION
(
RnrOrderType
.
COMPANY_NEW_VEHICLE
,
"real_name_enterprise_new_car"
,
"企业新车实名认证工单"
,
"企业实名. %s,手机号:%s,VIN:%s,ICCID:%s"
,
"rnrWorkOrderCallBackHandler"
),
/**
* 车企新车实名认证
*/
CARMAKER_NEW_VEHICLE_CERTIFICATION
(
RnrOrderType
.
CARMAKER_NEW_VEHICLE
,
"real_name_carenterprise_new_car"
,
"车企新车实名认证工单"
,
"车企实名. %s,手机号:%s,VIN:%s,ICCID:%s"
,
"manufacturerRnrCallBackHandler"
),
/**
* 二手车主解绑
*/
SECOND_VEHICLE_UNBIND_ORDER
(
RnrOrderType
.
SEC_UNBIND
,
"real_name_unbound_used_car"
,
"二手车主解绑工单"
,
"二手车解绑. %s,手机号:%s,VIN:%s,ICCID:%s"
,
"unbindWorkOrderCallBackHandler"
),
/**
* 企业责任人变更
*/
COMPANY_CORPORATION_UNBIND_ORDER
(
RnrOrderType
.
COMPANY_CORPORATION_CHANGE
,
"real_name_enterpriselegalperson"
,
"企业责任人变更工单"
,
"企业责任人变更. %s,手机号:%s"
,
"enterpriseChangeCallBackHandler"
),
;
@Getter
private
RnrOrderType
rnrOrderType
;
@Getter
private
String
key
;
@Getter
private
String
name
;
@Getter
private
String
workOrderNamePattern
;
@Getter
private
String
workOrderCallBackServiceName
;
public
static
WorkOrderTypeEnum
getWorkOrderTypeByKey
(
String
key
)
{
return
Arrays
.
stream
(
WorkOrderTypeEnum
.
values
()).
filter
(
workOrderTypeEnum
->
workOrderTypeEnum
.
getKey
().
equals
(
key
))
.
findFirst
().
orElse
(
null
);
}
public
String
getWorkOrderName
(
Object
...
args
)
{
return
String
.
format
(
workOrderNamePattern
,
args
);
}
public
static
WorkOrderTypeEnum
getWorkOrderTypeEnumByRnrOrderType
(
RnrOrderType
rnrOrderType
){
return
Arrays
.
stream
(
WorkOrderTypeEnum
.
values
()).
filter
(
workOrderTypeEnum
->
workOrderTypeEnum
.
getRnrOrderType
().
equals
(
rnrOrderType
)).
findFirst
().
orElse
(
null
);
}
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/workorder/context/WorkOrderCallBackContext.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.workorder.context
;
import
com.cusc.nirvana.user.rnr.workorder.constants.WorkOrderTypeEnum
;
import
com.cusc.nirvana.user.rnr.workorder.handler.WorkOrderCallBackHandler
;
import
org.springframework.beans.BeansException
;
import
org.springframework.beans.factory.InitializingBean
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.context.ApplicationContextAware
;
import
org.springframework.stereotype.Component
;
import
java.util.Map
;
/**
* @author stayAnd
* @date 2022/3/31
*/
@Component
public
class
WorkOrderCallBackContext
implements
ApplicationContextAware
,
InitializingBean
{
private
ApplicationContext
context
;
private
Map
<
String
,
WorkOrderCallBackHandler
>
workOrderCallBackHandlerMap
;
@Override
public
void
setApplicationContext
(
ApplicationContext
applicationContext
)
throws
BeansException
{
this
.
context
=
applicationContext
;
}
public
WorkOrderCallBackHandler
getWorkBackHandler
(
String
workOrderKey
){
//根据工单类型获取不同的工单回调处理业务类 workOrderCallBackHandlerMap
WorkOrderTypeEnum
workOrderTypeEnum
=
WorkOrderTypeEnum
.
getWorkOrderTypeByKey
(
workOrderKey
);
if
(
null
!=
workOrderTypeEnum
){
return
workOrderCallBackHandlerMap
.
get
(
workOrderTypeEnum
.
getWorkOrderCallBackServiceName
());
}
return
null
;
}
@Override
public
void
afterPropertiesSet
()
throws
Exception
{
workOrderCallBackHandlerMap
=
context
.
getBeansOfType
(
WorkOrderCallBackHandler
.
class
);
}
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/workorder/context/WorkOrderContext.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.workorder.context
;
import
com.cusc.nirvana.user.rnr.workorder.handler.WorkOrderHandler
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.Resource
;
import
java.util.Map
;
/**
* @author stayAnd
* @date 2022/3/29
*/
@Component
public
class
WorkOrderContext
{
@Resource
private
Map
<
String
,
WorkOrderHandler
>
handlerMap
;
/**
* 配置
*/
@Value
(
"${work.order.handler.name:internalWorkOrderHandler}"
)
private
String
workHandlerServiceName
;
public
WorkOrderHandler
getHandler
(){
WorkOrderHandler
handler
=
handlerMap
.
get
(
workHandlerServiceName
);
if
(
null
==
handler
){
//throw new CuscUserException();
}
return
handler
;
}
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/workorder/controller/WorkOrderCallBackController.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.workorder.controller
;
import
com.alibaba.fastjson.JSONObject
;
import
com.cache.CacheFactory
;
import
com.cache.exception.CacheException
;
import
com.cusc.nirvana.common.result.Response
;
import
com.cusc.nirvana.user.exception.CuscUserException
;
import
com.cusc.nirvana.user.rnr.common.constants.RedisConstant
;
import
com.cusc.nirvana.user.rnr.mg.service.IMgRnrCardNoticeService
;
import
com.cusc.nirvana.user.rnr.workorder.context.WorkOrderCallBackContext
;
import
com.cusc.nirvana.user.rnr.workorder.dto.WorkOrderReviewCallBackRequestDTO
;
import
com.cusc.nirvana.user.rnr.workorder.handler.WorkOrderCallBackHandler
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.annotation.Resource
;
/**
* @author stayAnd
* @date 2022/3/30
*/
@RestController
@RequestMapping
(
"/rnr/workOrder"
)
@Slf4j
public
class
WorkOrderCallBackController
{
@Resource
private
WorkOrderCallBackContext
context
;
@Resource
private
CacheFactory
cacheFactory
;
@Resource
private
IMgRnrCardNoticeService
iMgRnrCardNoticeService
;
@PostMapping
(
"/callBack"
)
public
Response
callBack
(
@RequestBody
WorkOrderReviewCallBackRequestDTO
callBackRequestDTO
){
log
.
info
(
"WorkOrderCallBackController callBack = {}"
,
JSONObject
.
toJSONString
(
callBackRequestDTO
));
WorkOrderCallBackHandler
workBackHandler
=
context
.
getWorkBackHandler
(
callBackRequestDTO
.
getWorkOrderKey
());
if
(
null
!=
workBackHandler
)
{
try
{
boolean
lockStatus
=
cacheFactory
.
getLockService
().
lock
(
RedisConstant
.
RNR_MG_ASYNCORDER_LOCK
+
callBackRequestDTO
.
getCode
(),
RedisConstant
.
RNR_MG_ASYNCORDER_LOCK_EXPIRE
);
if
(!
lockStatus
){
throw
new
CuscUserException
(
""
,
"当前有正在处理的实名请求,请勿重复提交"
);
}
iMgRnrCardNoticeService
.
asyncOrderExecutor
(
callBackRequestDTO
);
}
catch
(
CacheException
e
)
{
log
.
error
(
"personH5CallBack 加锁失败 "
,
e
);
}
}
return
Response
.
createSuccess
();
}
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/workorder/controller/WorkTestController.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.workorder.controller
;
import
com.cusc.nirvana.common.result.BaseEnum
;
import
com.cusc.nirvana.common.result.Response
;
import
com.cusc.nirvana.user.rnr.workorder.constants.WorkOrderTypeEnum
;
import
com.cusc.nirvana.user.rnr.workorder.context.WorkOrderContext
;
import
com.cusc.nirvana.user.rnr.workorder.dto.WorkOrderClaimRequestDTO
;
import
com.cusc.nirvana.user.rnr.workorder.dto.WorkOrderInfoDTO
;
import
com.cusc.nirvana.user.rnr.workorder.dto.WorkOrderQueryRequestDTO
;
import
com.cusc.nirvana.user.rnr.workorder.dto.WorkOrderReviewDTO
;
import
com.cusc.nirvana.user.rnr.workorder.dto.WorkOrderStarRequestDTO
;
import
com.cusc.nirvana.user.rnr.workorder.handler.WorkOrderHandler
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.annotation.Resource
;
import
java.util.List
;
/**
* @author stayAnd
* @date 2022/3/30
*/
@RestController
@RequestMapping
(
"/rnr/worktest"
)
@Slf4j
public
class
WorkTestController
{
@Resource
private
WorkOrderContext
workOrderContext
;
@GetMapping
(
"/startWork"
)
public
Response
<
String
>
startWork
(
@RequestParam
(
"id"
)
String
id
){
WorkOrderHandler
handler
=
workOrderContext
.
getHandler
();
WorkOrderStarRequestDTO
dto
=
new
WorkOrderStarRequestDTO
();
dto
.
setTenantUuid
(
"test1"
);
dto
.
setApplicationUuid
(
"b05ccb27c2d54113bf32a7203ef4b7a7"
);
dto
.
setBusinessObjectId
(
"test"
+
id
);
dto
.
setName
(
"test"
+
id
);
dto
.
setStartUserId
(
"test"
);
dto
.
setWorkOrderKey
(
WorkOrderTypeEnum
.
REAL_NAME_CERTIFICATION_ORDER
.
getKey
());
String
workOrderNo
=
handler
.
startOrder
(
dto
);
return
Response
.
createSuccess
(
BaseEnum
.
SUCCESS
.
getMsg
(),
workOrderNo
);
}
@GetMapping
(
"/queryUnClaimedOrders"
)
public
Response
<
List
<
WorkOrderInfoDTO
>>
queryUnClaimedOrders
(){
WorkOrderHandler
handler
=
workOrderContext
.
getHandler
();
WorkOrderQueryRequestDTO
dto
=
new
WorkOrderQueryRequestDTO
();
dto
.
setApplicationUuid
(
"b05ccb27c2d54113bf32a7203ef4b7a7"
);
dto
.
setTenantUuid
(
"test1"
);
dto
.
setWorkOrderKey
(
WorkOrderTypeEnum
.
REAL_NAME_CERTIFICATION_ORDER
.
getKey
());
dto
.
setCurrPage
(
1
);
dto
.
setPageSize
(
30
);
List
<
WorkOrderInfoDTO
>
list
=
handler
.
queryUnClaimedOrders
(
dto
);
return
Response
.
createSuccess
(
list
);
}
@GetMapping
(
"/claimOrder"
)
public
Response
<
Boolean
>
claimOrder
(
@RequestParam
(
"taskNo"
)
String
taskNo
,
@RequestParam
(
"claimUserId"
)
String
claimUserId
){
WorkOrderHandler
handler
=
workOrderContext
.
getHandler
();
WorkOrderClaimRequestDTO
dto
=
new
WorkOrderClaimRequestDTO
();
dto
.
setApplicationUuid
(
"b05ccb27c2d54113bf32a7203ef4b7a7"
);
dto
.
setTenantUuid
(
"test1"
);
dto
.
setWorkOrderKey
(
WorkOrderTypeEnum
.
REAL_NAME_CERTIFICATION_ORDER
.
getKey
());
dto
.
setTaskNo
(
taskNo
);
dto
.
setClaimUserId
(
claimUserId
);
return
Response
.
createSuccess
(
handler
.
claimOrder
(
dto
));
}
@GetMapping
(
"/queryClaimedOrders"
)
public
Response
<
List
<
WorkOrderInfoDTO
>>
queryClaimedOrders
(
@RequestParam
(
"claimUserId"
)
String
claimUserId
){
WorkOrderHandler
handler
=
workOrderContext
.
getHandler
();
WorkOrderQueryRequestDTO
dto
=
new
WorkOrderQueryRequestDTO
();
dto
.
setApplicationUuid
(
"b05ccb27c2d54113bf32a7203ef4b7a7"
);
dto
.
setTenantUuid
(
"test1"
);
dto
.
setWorkOrderKey
(
WorkOrderTypeEnum
.
REAL_NAME_CERTIFICATION_ORDER
.
getKey
());
dto
.
setCurrPage
(
1
);
dto
.
setPageSize
(
30
);
dto
.
setClaimUserId
(
claimUserId
);
List
<
WorkOrderInfoDTO
>
list
=
handler
.
queryClaimedOrders
(
dto
);
return
Response
.
createSuccess
(
list
);
}
@GetMapping
(
"/reviewWorkOrder"
)
public
Response
reviewWorkOrder
(
@RequestParam
(
"reviewUserId"
)
String
reviewUserId
,
@RequestParam
(
"taskNo"
)
String
taskNo
,
@RequestParam
(
"auditResult"
)
Integer
auditResult
,
@RequestParam
(
"auditNote"
)
String
auditNote
){
WorkOrderHandler
handler
=
workOrderContext
.
getHandler
();
WorkOrderReviewDTO
dto
=
new
WorkOrderReviewDTO
();
dto
.
setApplicationUuid
(
"b05ccb27c2d54113bf32a7203ef4b7a7"
);
dto
.
setTenantUuid
(
"test1"
);
dto
.
setReviewUserId
(
reviewUserId
);
dto
.
setTaskNo
(
taskNo
);
dto
.
setAuditResult
(
auditResult
);
dto
.
setAuditNote
(
auditNote
);
Boolean
success
=
handler
.
reviewWorkOrder
(
dto
);
return
Response
.
createSuccess
(
success
);
}
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/workorder/dto/WorkOrderAssignDTO.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.workorder.dto
;
import
lombok.Data
;
/**
* @author stayAnd
* @date 2022/3/30
*/
@Data
public
class
WorkOrderAssignDTO
{
/**
* 租户id
*/
private
String
tenantUuid
;
/**
* 应用标识
*/
private
String
applicationUuid
;
/**
* 工单定义编码
*/
private
String
workOrderKey
;
/**
* 创建工单时返回的工单编号 用于关联业务信息
*/
private
String
workOrderNo
;
/**
* 工单下面的任务编号 用于操作工单认领、审核
*/
private
String
taskNo
;
/**
* 委派人id
*/
private
String
assignUserId
;
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/workorder/dto/WorkOrderClaimRequestDTO.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.workorder.dto
;
import
lombok.Data
;
import
java.util.List
;
/**
* @author stayAnd
* @date 2022/3/29
* 认领工单dto
*/
@Data
public
class
WorkOrderClaimRequestDTO
{
/**
* 租户id
*/
private
String
tenantUuid
;
/**
* 应用标识
*/
private
String
applicationUuid
;
/**
* 工单定义编码
*/
private
String
workOrderKey
;
/**
* 创建工单时返回的工单编号 用于关联业务信息
*/
private
String
workOrderNo
;
/**
* 工单下面的任务编号 用于操作工单认领、审核
*/
private
String
taskNo
;
/**
* 认领人的用户id
*/
private
String
claimUserId
;
}
Prev
1
…
17
18
19
20
21
22
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment