Quellcode durchsuchen

提交短信发送

humuyu vor 3 Jahren
Ursprung
Commit
c16ae83a30

+ 0 - 1
eladmin-system/src/main/java/me/zhengjie/application/admin/controller/DemoController.java

@@ -70,7 +70,6 @@ public class DemoController {
 		try {
 			return AppBaseResponse.succ(CreateCloudRecording.modifyRecording(trtc));
 		} catch (TencentCloudSDKException e) {
-			//e.printStackTrace();
 			AppBaseResponse<?> aa = new AppBaseResponse<>();
 			aa.setCode("10000");
 			aa.setMsg(e.getMessage()+":"+e.getRequestId());

+ 20 - 2
eladmin-system/src/main/java/me/zhengjie/application/admin/service/SmsTemplateService.java

@@ -27,8 +27,26 @@ public interface SmsTemplateService extends AbstractService<SmsTemplateEntity> {
 
 	public AppBaseResponse<?> delete(SmsTemplateVo sms);
 
-	public AppBaseResponse<?> add(SmsTemplateVo sms)throws Exception ;
-	
+	public AppBaseResponse<?> add(SmsTemplateVo sms) throws Exception;
 
+	// 1.公证申请提交成功
+	public void submitSuccess(String businessNo);
 
+	// 2--审核通过---1个客户经理
+	public void auditPassed(String businessNo);
+
+	// 3---审核退回---1个客户经理
+	public void auditBack(String businessNo);
+
+	// 4---开始公证(待公证) -- 2个公证员
+	public void startNotarize(String businessNo);
+
+	// 5--提醒审批公证书 2个公证员
+	public void remindSignNotarialCertificate(String businessNo);
+
+	// 6--公证书签发成功 ---客户经理1个人
+	public void signNotarialSuccess(String businessNo);
+
+	// 7---公证审批未通过---客户经理1个人
+	public void notarizationRejected(String businessNo);
 }

+ 11 - 2
eladmin-system/src/main/java/me/zhengjie/application/admin/service/impl/AdminOrderServiceImpl.java

@@ -33,6 +33,7 @@ import me.zhengjie.application.admin.controller.vo.OrderDetailDto;
 import me.zhengjie.application.admin.controller.vo.PartyEntity;
 import me.zhengjie.application.admin.service.AdminOrderService;
 import me.zhengjie.application.admin.service.OrderCochainService;
+import me.zhengjie.application.admin.service.SmsTemplateService;
 import me.zhengjie.application.bank.service.BankOrderService;
 import me.zhengjie.application.bank.service.FileInfoService;
 import me.zhengjie.base.AppBaseResponse;
@@ -125,7 +126,8 @@ public class AdminOrderServiceImpl implements AdminOrderService {
 	ModelSynthesizerDomain modelSynthesizerDomain;
 	@Autowired
 	SysUserMapper userMapper;
-
+	@Autowired
+	SmsTemplateService smsTemplateService;
 	@Override
 	public AppBaseResponse<List<NotaryOrderQueryRsp>> query(NotaryOrderQueryReq req) {
 		AppBaseResponse<List<NotaryOrderQueryRsp>> response = new AppBaseResponse<>();
@@ -310,6 +312,8 @@ public class AdminOrderServiceImpl implements AdminOrderService {
 		bankOrderService.updateStatus(contractOrderEntity.getBusinessNo(),
 				StatusEnum.NotaryStatusEnum.SUBMIT.getStatus().toString(), req.getReturnReason());
 		response.success("退回成功");
+		//3---审核退回---1个客户经理
+		smsTemplateService.auditPassed(req.getBusinessNo());
 		return response;
 	}
 
@@ -320,12 +324,13 @@ public class AdminOrderServiceImpl implements AdminOrderService {
 		bankOrderService.updateStatus(contractOrderEntity.getBusinessNo(),
 				StatusEnum.NotaryStatusEnum.REJECT.getStatus().toString(), req.getRejectReason());
 		response.success("驳回成功");
+		smsTemplateService.notarizationRejected(req.getBusinessNo());
 		return response;
 	}
 
 	@Override
 	public AppBaseResponse<?> checkInfoPass(NotaryOrderQueryReq req) {
-		AppBaseResponse<?> response = new AppBaseResponse();
+		AppBaseResponse<?> response = new AppBaseResponse<>();
 		String currentUserId = String.valueOf(contextUtil.getCurrentUserId());
 		ContractOrderEntity contractOrderEntity = contractOrderMapper.selectById(req.getId());
 		contractOrderEntity.setStatus(StatusEnum.NotaryStatusEnum.NOTARIZED.getStatus().toString());
@@ -333,6 +338,8 @@ public class AdminOrderServiceImpl implements AdminOrderService {
 		contractOrderEntity.setUpdateTime(new Date());
 		contractOrderMapper.updateById(contractOrderEntity);
 		response.success("签发成功");
+		//发送短信
+		smsTemplateService.auditPassed(contractOrderEntity.getBusinessNo());
 		return response;
 	}
 
@@ -395,6 +402,8 @@ public class AdminOrderServiceImpl implements AdminOrderService {
 		updateStatusPass(contractOrderEntity.getBusinessNo());
 
 		response.success("签发成功");
+		
+		smsTemplateService.signNotarialSuccess(contractOrderEntity.getBusinessNo());
 		return response;
 	}
 

+ 53 - 88
eladmin-system/src/main/java/me/zhengjie/application/admin/service/impl/SmsTemplateServiceImpl.java

@@ -132,149 +132,114 @@ public class SmsTemplateServiceImpl extends AbstractServiceImpl<ISmsTemplateDao,
 		t.setOrderType(orderType);
 		t.setStatus(1);
 		t = this.getOne(t);
-		return t.getTemplateId();
+		if (t != null) {
+			return t.getTemplateId();
+		}
+		return null;
 	}
 
-	// 公证申请提交成功
+	// 1--公证申请提交成功--- 2个公证员
 	public void submitSuccess(String businessNo) {
-		Long templateId = getTemplateId(1);
-		QueryWrapper<ContractOrderEntity> queryWrapper = new QueryWrapper<>();
-		queryWrapper.eq("business_no", businessNo);
-		ContractOrderEntity orderEntity = contractOrderMapper.selectOne(queryWrapper);
-		List<String> param = new ArrayList<String>();
-		param.add(orderEntity.getCustomerName());
-		param.add(orderEntity.getConsultNo());
-		Set<String> phone = userDao.queryPhone(orderEntity.getBankId(), "公证员");
-		SmsSendVo smsSend = new SmsSendVo();
-		smsSend.setSetPhoneNumberSet(phone);
-		smsSend.setTemplateId(String.valueOf(templateId));
-		smsSend.setTemplateParam(param);
-		smsTemplate.sendMsg(smsSend);
-
+		sendNotary(1, businessNo, "公证员");
 	}
 
-	// 审核通过
+	// 2--审核通过---1个客户经理
 	public void auditPassed(String businessNo) {
-
 		QueryWrapper<ContractOrderEntity> queryWrapper = new QueryWrapper<>();
 		queryWrapper.eq("business_no", businessNo);
 		ContractOrderEntity orderEntity = contractOrderMapper.selectOne(queryWrapper);
 		List<String> param = new ArrayList<String>();
 		param.add(orderEntity.getContractNo());
 		sendCustomerManager(2, orderEntity.getCustomerId(), param);
-//		SysUserEntity userEntity = userDao.selectById(orderEntity.getCustomerId());
-//		Set<String> phone = new HashSet<>();
-//		phone.add(userEntity.getPhone());
-//		List<String> param = new ArrayList<String>();
-//		param.add(orderEntity.getContractNo());
-//		SmsSendVo smsSend = new SmsSendVo();
-//		smsSend.setTemplateParam(param);
-//		smsSend.setSetPhoneNumberSet(phone);
-//		smsSend.setTemplateId(String.valueOf(templateId));
-//		smsTemplate.sendMsg(smsSend);
+
 	}
 
-	// 审核退回
+	// 3---审核退回---1个客户经理
+	@Override
 	public void auditBack(String businessNo) {
-		Long templateId = getTemplateId(3);
 		QueryWrapper<ContractOrderEntity> queryWrapper = new QueryWrapper<>();
 		queryWrapper.eq("business_no", businessNo);
 		ContractOrderEntity orderEntity = contractOrderMapper.selectOne(queryWrapper);
-		SysUserEntity userEntity = userDao.selectById(orderEntity.getCustomerId());
-		Set<String> phone = new HashSet<>();
-		phone.add(userEntity.getPhone());
 		List<String> param = new ArrayList<String>();
 		param.add(orderEntity.getContractNo());
 		param.add(orderEntity.getReturnReason());
-		SmsSendVo smsSend = new SmsSendVo();
-		smsSend.setTemplateParam(param);
-		smsSend.setSetPhoneNumberSet(phone);
-		smsSend.setTemplateId(String.valueOf(templateId));
-		smsTemplate.sendMsg(smsSend);
+		sendCustomerManager(3, orderEntity.getCustomerId(), param);
 	}
 
-	// 开始公证(待公证)
+	// 4---开始公证(待公证) -- 2个公证员
+	@Override
 	public void startNotarize(String businessNo) {
-
-		Long templateId = getTemplateId(4);
-		QueryWrapper<ContractOrderEntity> queryWrapper = new QueryWrapper<>();
-		queryWrapper.eq("business_no", businessNo);
-		ContractOrderEntity orderEntity = contractOrderMapper.selectOne(queryWrapper);
-		List<String> param = new ArrayList<String>();
-		param.add(orderEntity.getCustomerName());
-		param.add(orderEntity.getConsultNo());
-		Set<String> phone = userDao.queryPhone(orderEntity.getBankId(), "公证员");
-		SmsSendVo smsSend = new SmsSendVo();
-		smsSend.setSetPhoneNumberSet(phone);
-		smsSend.setTemplateId(String.valueOf(templateId));
-		smsSend.setTemplateParam(param);
-		smsTemplate.sendMsg(smsSend);
-
+		sendNotary(4, businessNo, "公证员");
 	}
 
-	// 提醒签发公证书
+	// 5--提醒审批公证书 2个公证员
 	public void remindSignNotarialCertificate(String businessNo) {
-		Long templateId = getTemplateId(5);
-		QueryWrapper<ContractOrderEntity> queryWrapper = new QueryWrapper<>();
-		queryWrapper.eq("business_no", businessNo);
-		ContractOrderEntity orderEntity = contractOrderMapper.selectOne(queryWrapper);
-		List<String> param = new ArrayList<String>();
-		param.add(orderEntity.getCustomerName());
-		param.add(orderEntity.getConsultNo());
-		Set<String> phone = userDao.queryPhone(orderEntity.getBankId(), "公证员");
-		SmsSendVo smsSend = new SmsSendVo();
-		smsSend.setSetPhoneNumberSet(phone);
-		smsSend.setTemplateId(String.valueOf(templateId));
-		smsSend.setTemplateParam(param);
-		smsTemplate.sendMsg(smsSend);
+
+		sendNotary(5, businessNo, "公证员");
 	}
 
-	// 公证书签发成功
+	// 6--公证书签发成功 ---客户经理1个人
 	public void signNotarialSuccess(String businessNo) {
-		Long templateId = getTemplateId(2);
 		QueryWrapper<ContractOrderEntity> queryWrapper = new QueryWrapper<>();
 		queryWrapper.eq("business_no", businessNo);
 		ContractOrderEntity orderEntity = contractOrderMapper.selectOne(queryWrapper);
-		SysUserEntity userEntity = userDao.selectById(orderEntity.getCustomerId());
-		Set<String> phone = new HashSet<>();
-		phone.add(userEntity.getPhone());
 		List<String> param = new ArrayList<String>();
 		param.add(orderEntity.getContractNo());
-		SmsSendVo smsSend = new SmsSendVo();
-		smsSend.setTemplateParam(param);
-		smsSend.setSetPhoneNumberSet(phone);
-		smsSend.setTemplateId(String.valueOf(templateId));
-		smsTemplate.sendMsg(smsSend);
+		sendCustomerManager(6, orderEntity.getCustomerId(), param);
 	}
 
-	// 公证审批未通过
+	// 7---公证审批未通过---客户经理1个人
 	public void notarizationRejected(String businessNo) {
-		Long templateId = getTemplateId(7);
 		QueryWrapper<ContractOrderEntity> queryWrapper = new QueryWrapper<>();
 		queryWrapper.eq("business_no", businessNo);
 		ContractOrderEntity orderEntity = contractOrderMapper.selectOne(queryWrapper);
-		SysUserEntity userEntity = userDao.selectById(orderEntity.getCustomerId());
-		Set<String> phone = new HashSet<>();
-		phone.add(userEntity.getPhone());
 		List<String> param = new ArrayList<String>();
 		param.add(orderEntity.getContractNo());
 		param.add(orderEntity.getRejectReason());
+		sendCustomerManager(7, orderEntity.getCustomerId(), param);
+	}
+
+	private void sendCustomerManager(Integer orderType, String customerId, List<String> param) {
+		Long templateId = getTemplateId(orderType);
+		if (templateId == null) {
+			log.warn("短信模板不存在或者被停用  {}  ", orderType);
+			return;
+		}
+		SysUserEntity userEntity = userDao.selectById(customerId);
+		Set<String> phone = new HashSet<>();
+		phone.add(userEntity.getPhone());
 		SmsSendVo smsSend = new SmsSendVo();
 		smsSend.setTemplateParam(param);
 		smsSend.setSetPhoneNumberSet(phone);
 		smsSend.setTemplateId(String.valueOf(templateId));
 		smsTemplate.sendMsg(smsSend);
+
 	}
 
-	private void sendCustomerManager(int orderType, String customerId, List<String> param) {
+	/**
+	 * 发送给公证员
+	 * 
+	 * @param orderType  订单类型
+	 * @param businessNo 业务编号
+	 * @param notaryName 查询公证员
+	 */
+	private void sendNotary(Integer orderType, String businessNo, String notaryName) {
 		Long templateId = getTemplateId(orderType);
-		SysUserEntity userEntity = userDao.selectById(customerId);
-		Set<String> phone = new HashSet<>();
-		phone.add(userEntity.getPhone());
+		if (templateId == null) {
+			log.warn("短信模板不存在或者被停用  {}  ", orderType);
+			return;
+		}
+		QueryWrapper<ContractOrderEntity> queryWrapper = new QueryWrapper<>();
+		queryWrapper.eq("business_no", businessNo);
+		ContractOrderEntity orderEntity = contractOrderMapper.selectOne(queryWrapper);
+		List<String> param = new ArrayList<String>();
+		param.add(orderEntity.getCustomerName());
+		param.add(orderEntity.getConsultNo());
+		Set<String> phone = userDao.queryPhone(orderEntity.getBankId(), notaryName);
 		SmsSendVo smsSend = new SmsSendVo();
-		smsSend.setTemplateParam(param);
 		smsSend.setSetPhoneNumberSet(phone);
 		smsSend.setTemplateId(String.valueOf(templateId));
+		smsSend.setTemplateParam(param);
 		smsTemplate.sendMsg(smsSend);
 
 	}

+ 6 - 2
eladmin-system/src/main/java/me/zhengjie/application/bank/controller/BankNotarizeController.java

@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import me.zhengjie.annotation.rest.AnonymousPostMapping;
+import me.zhengjie.application.admin.service.SmsTemplateService;
 import me.zhengjie.application.bank.service.BankNotarizeService;
 import me.zhengjie.application.bank.service.UserAXQInfoService;
 import me.zhengjie.base.ResponseDTO;
@@ -31,7 +32,7 @@ public class BankNotarizeController {
 	private final UserAXQInfoService userAXQInfoService;
 	private final BankNotarizeService bankNotarizeService;
 	private final TencentHumanFaceVerify faceVerify;
-
+	private final SmsTemplateService smsTemplateService;
 	/**
 	 * 获取签名公证书URL
 	 *
@@ -72,11 +73,14 @@ public class BankNotarizeController {
 		JSONObject jsonObj = JSONObject.parseObject(json);
 		String userName = jsonObj.getString("userName");
 		String idCard = jsonObj.getString("idCard");
+		String businessNo = jsonObj.getString("businessNo");
 		if (StringUtils.isEmpty(userName) || StringUtils.isEmpty(idCard)) {
 			return ResponseDTO.error(ResultCode.PARAM_IS_BLANK);
 		}
+		// 4---开始公证(待公证) -- 2个公证员
+		smsTemplateService.startNotarize(businessNo);
 		JSONObject str = SdkTest.getFaceId(faceVerify.getBankWebankAppId(), faceVerify.getBankSecret(),
-				faceVerify.getBankKeyLicence(), userName, idCard, idCard);
+				faceVerify.getBankKeyLicence(), userName, idCard, businessNo);
 		return ResponseDTO.success(str);
 	}
 

+ 7 - 1
eladmin-system/src/main/java/me/zhengjie/application/bank/service/impl/BankOrderServiceImpl.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
 import lombok.RequiredArgsConstructor;
 import lombok.Synchronized;
 import lombok.extern.slf4j.Slf4j;
+import me.zhengjie.application.admin.service.SmsTemplateService;
 import me.zhengjie.application.bank.controller.vo.BankOrderVO;
 import me.zhengjie.application.bank.mq.RedisReceiver;
 import me.zhengjie.application.bank.service.BankOrderService;
@@ -53,8 +54,9 @@ public class BankOrderServiceImpl implements BankOrderService {
     private final ContractOrderRepository contractOrderRepository;
     private final SysUserRepository sysUserRepository;
     private final OfficeXbankRepository officeXbankRepository;
-    private final OrderFileRepository orderFileRepository;
 
+    private final OrderFileRepository orderFileRepository;
+    private final SmsTemplateService smsTemplateService;
     @Override
     public void saveContractOrder(BankOrderVO vo, SysUserEntity userEntity) {
         BankEntity bank = bankMapper.selectById(userEntity.getOrgId().split("_")[1]);
@@ -179,6 +181,10 @@ public class BankOrderServiceImpl implements BankOrderService {
         jsonObject.put("userId", currentUser.getUserId());
         redisReceiver.generateCommonDoc(jsonObject);
 //		redisTemplate.convertAndSend(RedisCacheConfig.CHANNEL_HTML_PDF, jsonObject.toJSONString());
+        //发送短信
+        smsTemplateService.submitSuccess(businessNo);
+        
+        //订单提交成功
         return ResponseDTO.success();
     }
 

+ 19 - 16
eladmin-system/src/main/java/me/zhengjie/base/sms/TxSmsRequest.java

@@ -16,17 +16,18 @@ import com.tencentcloudapi.sms.v20210111.SmsClient;
 import com.tencentcloudapi.sms.v20210111.models.*;
 
 import cn.hutool.core.util.ArrayUtil;
+import lombok.extern.slf4j.Slf4j;
 import me.zhengjie.application.admin.service.DictDetailService;
 import me.zhengjie.dao.mybatis.entity.SmsTemplateEntity;
 
 @Component
+@Slf4j
 public class TxSmsRequest implements SmsRequest {
 	@Autowired
 	private DictDetailService dictDetailService;
 
 	// 短信模板状态查询,判断是否需要更新数据
 	public boolean query(SmsTemplateVo sms, List<SmsTemplateEntity> entitys) throws Exception {
-
 		boolean result = false;
 		SmsClient client = getClient();
 		// 实例化一个请求对象,每个接口都会对应一个request对象
@@ -51,12 +52,10 @@ public class TxSmsRequest implements SmsRequest {
 			}
 		}
 		return result;
-
 	}
 
 	// 修改短信模板
 	public void modify(SmsTemplateVo sms) throws Exception {
-
 		SmsClient client = getClient();
 		// 实例化一个请求对象,每个接口都会对应一个request对象
 		ModifySmsTemplateRequest req = new ModifySmsTemplateRequest();
@@ -75,7 +74,6 @@ public class TxSmsRequest implements SmsRequest {
 
 	// 删除短信模板
 	public void delete(SmsTemplateVo sms) throws Exception {
-
 		SmsClient client = getClient();
 		// 实例化一个请求对象,每个接口都会对应一个request对象
 		DeleteSmsTemplateRequest req = new DeleteSmsTemplateRequest();
@@ -89,7 +87,6 @@ public class TxSmsRequest implements SmsRequest {
 
 	// 添加短信模板
 	public void add(SmsTemplateVo sms) throws Exception {
-
 		SmsClient client = getClient();
 		// 实例化一个请求对象,每个接口都会对应一个request对象
 		AddSmsTemplateRequest req = new AddSmsTemplateRequest();
@@ -150,7 +147,15 @@ public class TxSmsRequest implements SmsRequest {
 		// 密钥可前往https://console.cloud.tencent.com/cam/capi网站进行获取
 		// 实例化一个http选项,可选的,没有特殊需求可以跳过
 		HttpProfile httpProfile = new HttpProfile();
-		httpProfile.setEndpoint("sms.tencentcloudapi.com");
+		Map<String, String> map = dictDetailService.getValueByName("sms_msg");
+		String sdkAppID = map.get("SDKAppID");
+		String signName = map.get("signName");
+		String sms = map.get("sms");
+		String sendMsgFlag= map.get("send_msg_flag");
+		if(StringUtils.isBlank(sendMsgFlag) || !sendMsgFlag.equalsIgnoreCase("on")) {
+			return null;
+		}
+		httpProfile.setEndpoint(sms);
 		// 实例化一个client选项,可选的,没有特殊需求可以跳过
 		ClientProfile clientProfile = new ClientProfile();
 		clientProfile.setHttpProfile(httpProfile);
@@ -158,9 +163,6 @@ public class TxSmsRequest implements SmsRequest {
 		SmsClient client = getClient();
 		// 实例化一个请求对象,每个接口都会对应一个request对象
 		SendSmsRequest req = new SendSmsRequest();
-		Map<String, String> map = dictDetailService.getValueByName("sms_msg");
-		String sdkAppID = map.get("SDKAppID");
-		String signName = map.get("signName");
 		req.setSmsSdkAppId(sdkAppID);
 		req.setSignName(signName);
 		req.setTemplateId(smsSend.getTemplateId());
@@ -169,16 +171,17 @@ public class TxSmsRequest implements SmsRequest {
 		req.setTemplateParamSet(ArrayUtil.toArray(templateParamSet, String.class));
 		Set<String> phone = smsSend.getSetPhoneNumberSet();
 		req.setPhoneNumberSet(ArrayUtil.toArray(phone, String.class));
-
 		// 返回的resp是一个SendSmsResponse的实例,与请求对象对应
-		SendSmsResponse resp = null;
 		try {
-			resp = client.SendSms(req);
+			SendSmsResponse resp = client.SendSms(req);
+			String result = SendSmsResponse.toJsonString(resp);
+			log.info("send message result  {} ", result);
+			// 输出json格式的字符串回包
+			return result;
 		} catch (TencentCloudSDKException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
+			log.info("send message error  {} ", e.getMessage());
+			return null;
 		}
-		// 输出json格式的字符串回包
-		return SendSmsResponse.toJsonString(resp);
+
 	}
 }

+ 1 - 15
eladmin-system/src/main/java/me/zhengjie/dao/mybatis/entity/SmsTemplateEntity.java

@@ -103,21 +103,7 @@ public class SmsTemplateEntity extends QueryEntity implements Serializable {
 	@TableField("reason")
 	private String reason;
 	// 状态:1启用、0禁用
+	@TableField("status")
 	private Integer status;
 
-	public static <T> List<Field> reflectForField(Class<T> clazz) {
-		Class<?> tmpClazz = clazz;
-		List<Field> fieldList = new ArrayList<>();
-		while (tmpClazz != null) {
-			if (tmpClazz.equals(Object.class)) {
-				tmpClazz = tmpClazz.getSuperclass();
-				continue;
-			}
-			fieldList.addAll(Arrays.asList(tmpClazz.getDeclaredFields()));
-			tmpClazz = tmpClazz.getSuperclass();
-		}
-
-		return fieldList;
-	}
-
 }