Jelajahi Sumber

Merge remote-tracking branch 'origin/feature-2022.07.29' into feature-2022.07.29

sakuya 3 tahun lalu
induk
melakukan
b2a39c984f

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

@@ -128,6 +128,7 @@ public class AdminOrderServiceImpl implements AdminOrderService {
 	SysUserMapper userMapper;
 	@Autowired
 	SmsTemplateService smsTemplateService;
+
 	@Override
 	public AppBaseResponse<List<NotaryOrderQueryRsp>> query(NotaryOrderQueryReq req) {
 		AppBaseResponse<List<NotaryOrderQueryRsp>> response = new AppBaseResponse<>();
@@ -225,7 +226,8 @@ public class AdminOrderServiceImpl implements AdminOrderService {
 	@Override
 	public AppBaseResponse<List<PartyEntity>> orderQueryUser(final HashMap<String, String> map) {
 		AppBaseResponse<List<PartyEntity>> response = new AppBaseResponse<>();
-		ContractOrderEntity contractOrderEntity = contractOrderRepository.getContractOrderWithBizNo(map.get("businessNo"));
+		ContractOrderEntity contractOrderEntity = contractOrderRepository
+				.getContractOrderWithBizNo(map.get("businessNo"));
 		List<PartyEntity> partyList = new LinkedList<>();
 		PartyEntity partyA = new PartyEntity();
 		partyA.setUsername(contractOrderEntity.getName());
@@ -233,13 +235,13 @@ public class AdminOrderServiceImpl implements AdminOrderService {
 		if (OrderConstant.CONTRACT_TYPE_BORROWER == contractOrderEntity.getContractType()) {
 			partyA.setRoleId(StatusEnum.StepStatusEnum.BORROWER.getStatus());
 			partyA.setRole(StatusEnum.StepStatusEnum.BORROWER.getProcess());
-		}else if (OrderConstant.CONTRACT_TYPE_MORTGAGE == contractOrderEntity.getContractType()) {
+		} else if (OrderConstant.CONTRACT_TYPE_MORTGAGE == contractOrderEntity.getContractType()) {
 			partyA.setRoleId(StatusEnum.StepStatusEnum.MORTGAGOR.getStatus());
 			partyA.setRole(StatusEnum.StepStatusEnum.MORTGAGOR.getProcess());
-		}else if (OrderConstant.CONTRACT_TYPE_GUARANTEE == contractOrderEntity.getContractType()) {
+		} else if (OrderConstant.CONTRACT_TYPE_GUARANTEE == contractOrderEntity.getContractType()) {
 			partyA.setRoleId(StatusEnum.StepStatusEnum.GUARANTEE.getStatus());
 			partyA.setRole(StatusEnum.StepStatusEnum.GUARANTEE.getProcess());
-		}else if (OrderConstant.CONTRACT_TYPE_CREDIT == contractOrderEntity.getContractType()) {
+		} else if (OrderConstant.CONTRACT_TYPE_CREDIT == contractOrderEntity.getContractType()) {
 			partyA.setRoleId(StatusEnum.StepStatusEnum.CREDIT.getStatus());
 			partyA.setRole(StatusEnum.StepStatusEnum.CREDIT.getProcess());
 		}
@@ -308,19 +310,21 @@ public class AdminOrderServiceImpl implements AdminOrderService {
 	@Override
 	public AppBaseResponse orderReturn(NotaryOrderQueryReq req) {
 		AppBaseResponse response = new AppBaseResponse();
-		ContractOrderEntity contractOrderEntity = contractOrderRepository.getContractOrderWithBizNo(req.getBusinessNo());
+		ContractOrderEntity contractOrderEntity = contractOrderRepository
+				.getContractOrderWithBizNo(req.getBusinessNo());
 		bankOrderService.updateStatus(contractOrderEntity.getBusinessNo(),
 				StatusEnum.NotaryStatusEnum.SUBMIT.getStatus().toString(), req.getReturnReason());
 		response.success("退回成功");
-		//3---审核退回---1个客户经理
-		smsTemplateService.auditPassed(req.getBusinessNo());
+		// 3---审核退回---1个客户经理
+		smsTemplateService.auditBack(req.getBusinessNo());
 		return response;
 	}
 
 	@Override
 	public AppBaseResponse orderReject(NotaryOrderQueryReq req) {
 		AppBaseResponse response = new AppBaseResponse();
-		ContractOrderEntity contractOrderEntity = contractOrderRepository.getContractOrderWithBizNo(req.getBusinessNo());
+		ContractOrderEntity contractOrderEntity = contractOrderRepository
+				.getContractOrderWithBizNo(req.getBusinessNo());
 		bankOrderService.updateStatus(contractOrderEntity.getBusinessNo(),
 				StatusEnum.NotaryStatusEnum.REJECT.getStatus().toString(), req.getRejectReason());
 		response.success("驳回成功");
@@ -338,7 +342,7 @@ public class AdminOrderServiceImpl implements AdminOrderService {
 		contractOrderEntity.setUpdateTime(new Date());
 		contractOrderMapper.updateById(contractOrderEntity);
 		response.success("签发成功");
-		//发送短信
+		// 发送短信
 		smsTemplateService.auditPassed(contractOrderEntity.getBusinessNo());
 		return response;
 	}
@@ -402,7 +406,7 @@ public class AdminOrderServiceImpl implements AdminOrderService {
 		updateStatusPass(contractOrderEntity.getBusinessNo());
 
 		response.success("签发成功");
-		
+
 		smsTemplateService.signNotarialSuccess(contractOrderEntity.getBusinessNo());
 		return response;
 	}
@@ -426,7 +430,7 @@ public class AdminOrderServiceImpl implements AdminOrderService {
 		// 流程走完之后需要把数据插入到order_cochain
 		OrderCochainEntity orderCochain = new OrderCochainEntity();
 		orderCochain.setStatus("0");
-		//设置次数为0
+		// 设置次数为0
 		orderCochain.setCount(0);
 		orderCochain.setBusinessNo(businessNo);
 		orderCochain.setCreateTime(LocalDateTime.now());
@@ -469,6 +473,8 @@ public class AdminOrderServiceImpl implements AdminOrderService {
 			saveOrderFile.setUpdaterId(contextUtil.getCurrentUserId());
 			orderFileMapper.updateById(saveOrderFile);
 		}
+		//发送短信
+		smsTemplateService.remindSignNotarialCertificate(req.getBusinessNo());
 		return AppBaseResponse.success();
 	}
 
@@ -537,8 +543,12 @@ public class AdminOrderServiceImpl implements AdminOrderService {
 	 * @param req
 	 * @return
 	 */
-	public AppBaseResponse getDocList(NotaryOrderQueryReq req) {
-		AppBaseResponse response = new AppBaseResponse();
+	public AppBaseResponse<?> getDocList(NotaryOrderQueryReq req) {
+		AppBaseResponse<?> response = new AppBaseResponse<>();
+
+		QueryWrapper<ContractOrderEntity> query = new QueryWrapper<>();
+		query.eq("business_no", req.getBusinessNo());
+		ContractOrderEntity order = contractOrderMapper.selectOne(query);
 		List<OrderFileEntity> orderFileList = orderFileRepository.getOrderFileListWithCodes(req.getBusinessNo(),
 				"1,2,3,4,5,6".split(","));
 		List<Map<String, String>> fileList = new ArrayList<>();
@@ -549,6 +559,10 @@ public class AdminOrderServiceImpl implements AdminOrderService {
 			content.put("name", orderFile.getFileName());
 			content.put("value", getPreviewUrl(fileUrl));
 			fileList.add(content);
+			// TODO 因为签名pdf合并了,所以现在只取一个pdf即可
+			if (order.getStatus().equalsIgnoreCase("3") && fileList.size() > 0) {
+				break;
+			}
 		}
 		response.setData(new AppResultData(fileList));
 		return response;
@@ -624,18 +638,18 @@ public class AdminOrderServiceImpl implements AdminOrderService {
 		if (notarization != null) {
 			orderDetail.setNotarizationNo(notarization.getDocNo());
 			orderDetail.setNotarizaitonSignTime(notarization.getAxqSignedTime());
-			//判断是否为空
-			if(org.apache.commons.lang3.StringUtils.isNotBlank(notarization.getSignedPdfUrl())) {
+			// 判断是否为空
+			if (org.apache.commons.lang3.StringUtils.isNotBlank(notarization.getSignedPdfUrl())) {
 				orderDetail.setAuthNotarization(FileUploadUtil.getPreviewUrl(notarization.getSignedPdfUrl()));
 			}
-			
+
 		}
 		if (note != null) {
-			//判断是否为空
-			if(org.apache.commons.lang3.StringUtils.isNotBlank(note.getSignedPdfUrl())) {
+			// 判断是否为空
+			if (org.apache.commons.lang3.StringUtils.isNotBlank(note.getSignedPdfUrl())) {
 				orderDetail.setAuthNote(FileUploadUtil.getPreviewUrl(note.getSignedPdfUrl()));
 			}
-		
+
 		}
 		if (!StringUtils.isEmpty(orderDetail.getNotaryUserId())) {
 			SysUserEntity user = userMapper.selectById(orderDetail.getNotaryUserId());

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

@@ -1,10 +1,12 @@
 package me.zhengjie.application.admin.service.impl;
 
+import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -19,14 +21,17 @@ import me.zhengjie.base.AppBaseResponse;
 import me.zhengjie.base.AppResultData;
 import me.zhengjie.base.ResultCode;
 import me.zhengjie.base.plus.AbstractServiceImpl;
+
 import me.zhengjie.base.sms.SmsRequest;
 import me.zhengjie.base.sms.SmsSendVo;
 import me.zhengjie.base.sms.SmsTemplateVo;
 import me.zhengjie.base.util.BeanCopyUtils;
 import me.zhengjie.dao.mybatis.entity.ContractOrderEntity;
+import me.zhengjie.dao.mybatis.entity.SmsSendLogEntity;
 import me.zhengjie.dao.mybatis.entity.SmsTemplateEntity;
 import me.zhengjie.dao.mybatis.entity.SysUserEntity;
 import me.zhengjie.dao.mybatis.mapper.ContractOrderMapper;
+import me.zhengjie.dao.mybatis.mapper.ISmsSendLogMapper;
 import me.zhengjie.dao.mybatis.mapper.ISmsTemplateDao;
 import me.zhengjie.dao.mybatis.mapper.SysUserMapper;
 
@@ -51,6 +56,8 @@ public class SmsTemplateServiceImpl extends AbstractServiceImpl<ISmsTemplateDao,
 	private SysUserMapper userDao;
 	@Autowired
 	ContractOrderMapper contractOrderMapper;
+	@Autowired
+	ISmsSendLogMapper sendLogMapper;
 
 	@Override
 	public AppBaseResponse<List<SmsTemplateEntity>> query(SmsTemplateVo req) {
@@ -150,7 +157,7 @@ public class SmsTemplateServiceImpl extends AbstractServiceImpl<ISmsTemplateDao,
 		ContractOrderEntity orderEntity = contractOrderMapper.selectOne(queryWrapper);
 		List<String> param = new ArrayList<String>();
 		param.add(orderEntity.getContractNo());
-		sendCustomerManager(2, orderEntity.getCustomerId(), param);
+		sendCustomerManager(2, orderEntity, param);
 
 	}
 
@@ -163,7 +170,7 @@ public class SmsTemplateServiceImpl extends AbstractServiceImpl<ISmsTemplateDao,
 		List<String> param = new ArrayList<String>();
 		param.add(orderEntity.getContractNo());
 		param.add(orderEntity.getReturnReason());
-		sendCustomerManager(3, orderEntity.getCustomerId(), param);
+		sendCustomerManager(3, orderEntity, param);
 	}
 
 	// 4---开始公证(待公证) -- 2个公证员
@@ -174,8 +181,14 @@ public class SmsTemplateServiceImpl extends AbstractServiceImpl<ISmsTemplateDao,
 
 	// 5--提醒审批公证书 2个公证员
 	public void remindSignNotarialCertificate(String businessNo) {
-
-		sendNotary(5, businessNo, "公证员");
+		// 保存发送短信
+		// 查询发送的短信,如果发送过了就不发送
+		QueryWrapper<SmsSendLogEntity> log = new QueryWrapper<>();
+		log.eq("business_no", businessNo);
+		long count = sendLogMapper.selectCount(log);
+		if (count == 0) {
+			sendNotary(5, businessNo, "公证书签发");
+		}
 	}
 
 	// 6--公证书签发成功 ---客户经理1个人
@@ -185,7 +198,7 @@ public class SmsTemplateServiceImpl extends AbstractServiceImpl<ISmsTemplateDao,
 		ContractOrderEntity orderEntity = contractOrderMapper.selectOne(queryWrapper);
 		List<String> param = new ArrayList<String>();
 		param.add(orderEntity.getContractNo());
-		sendCustomerManager(6, orderEntity.getCustomerId(), param);
+		sendCustomerManager(6, orderEntity, param);
 	}
 
 	// 7---公证审批未通过---客户经理1个人
@@ -196,24 +209,31 @@ public class SmsTemplateServiceImpl extends AbstractServiceImpl<ISmsTemplateDao,
 		List<String> param = new ArrayList<String>();
 		param.add(orderEntity.getContractNo());
 		param.add(orderEntity.getRejectReason());
-		sendCustomerManager(7, orderEntity.getCustomerId(), param);
+		sendCustomerManager(7, orderEntity, param);
 	}
 
-	private void sendCustomerManager(Integer orderType, String customerId, List<String> param) {
+	private void sendCustomerManager(Integer orderType, ContractOrderEntity orderEntity, List<String> param) {
 		Long templateId = getTemplateId(orderType);
 		if (templateId == null) {
 			log.warn("短信模板不存在或者被停用  {}  ", orderType);
 			return;
 		}
-		SysUserEntity userEntity = userDao.selectById(customerId);
+		SysUserEntity userEntity = userDao.selectById(orderEntity.getCustomerId());
 		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);
-
+		String result = smsTemplate.sendMsg(smsSend);
+		SmsSendLogEntity log = new SmsSendLogEntity();
+		log.setBusinessNo(orderEntity.getBusinessNo());
+		log.setTemplateId(templateId);
+		log.setPhone(StringUtils.join(phone, ","));
+		log.setCreateTime(LocalDateTime.now());
+		log.setUpdateTime(LocalDateTime.now());
+		log.setReturnContent(result);
+		log.setOrderType(orderType);
 	}
 
 	/**
@@ -233,14 +253,23 @@ public class SmsTemplateServiceImpl extends AbstractServiceImpl<ISmsTemplateDao,
 		queryWrapper.eq("business_no", businessNo);
 		ContractOrderEntity orderEntity = contractOrderMapper.selectOne(queryWrapper);
 		List<String> param = new ArrayList<String>();
-		param.add(orderEntity.getCustomerName());
+		if (orderType == 1) {
+			param.add(orderEntity.getCustomerName());
+		}
 		param.add(orderEntity.getConsultNo());
 		Set<String> phone = userDao.queryPhone(orderEntity.getBankId(), notaryName);
 		SmsSendVo smsSend = new SmsSendVo();
 		smsSend.setSetPhoneNumberSet(phone);
 		smsSend.setTemplateId(String.valueOf(templateId));
 		smsSend.setTemplateParam(param);
-		smsTemplate.sendMsg(smsSend);
-
+		String result = smsTemplate.sendMsg(smsSend);
+		SmsSendLogEntity log = new SmsSendLogEntity();
+		log.setBusinessNo(businessNo);
+		log.setTemplateId(templateId);
+		log.setPhone(StringUtils.join(phone, ","));
+		log.setCreateTime(LocalDateTime.now());
+		log.setUpdateTime(LocalDateTime.now());
+		log.setReturnContent(result);
+		log.setOrderType(orderType);
 	}
 }

+ 77 - 0
eladmin-system/src/main/java/me/zhengjie/dao/mybatis/entity/SmsSendLogEntity.java

@@ -0,0 +1,77 @@
+package me.zhengjie.dao.mybatis.entity;
+
+import java.io.Serializable;
+import java.lang.reflect.Field;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import lombok.Getter;
+import lombok.Setter;
+import me.zhengjie.base.plus.QueryEntity;
+import me.zhengjie.base.plus.QueryKeyword;
+import me.zhengjie.base.plus.QueryWapper;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author
+ * @since 2022-09-09
+ */
+@Getter
+@Setter
+@TableName("sms_send_log")
+public class SmsSendLogEntity  implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	@TableId(value = "id", type = IdType.AUTO)
+	private Integer id;
+	/**
+	 * 待修改模板的ID
+	 */
+	@TableField("business_no")
+	private String businessNo;
+	/**
+	 * 待修改模板的ID
+	 */
+	@TableField("template_id")
+	private Long templateId;
+	/**
+	 * 手机号,多个用逗号隔开
+	 */
+	@TableField("phone")
+	private String phone;
+	/**
+	 * 订单状态,对应订单的状态
+	 */
+	@TableField("order_type")
+	private Integer orderType;
+	/**
+	 * 返回内容
+	 */
+	@TableField("return_content")
+	private String returnContent;
+
+	/**
+	 * 创建时间
+	 */
+	@TableField("create_time")
+	private LocalDateTime createTime;
+
+	/**
+	 * 更新时间
+	 */
+	@TableField("update_time")
+	private LocalDateTime updateTime;
+
+
+}

+ 20 - 0
eladmin-system/src/main/java/me/zhengjie/dao/mybatis/mapper/ISmsSendLogMapper.java

@@ -0,0 +1,20 @@
+package me.zhengjie.dao.mybatis.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+import me.zhengjie.dao.mybatis.entity.SmsSendLogEntity;
+
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 公证处 Mapper 接口
+ * </p>
+ *
+ * @author <a href="https://www.fengwenyi.com?code">Erwin Feng</a>
+ * @since 2022-03-28
+ */
+@Mapper
+public interface ISmsSendLogMapper extends BaseMapper<SmsSendLogEntity> {
+
+}