From f6b0e262db2af5ca2e5ed76f95e746c1dd3c58e3 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期四, 01 二月 2024 15:17:47 +0800
Subject: [PATCH] 开发业务接口
---
company/src/views/business/switchCourt.vue | 2
company/src/components/business/OperaInsuranceApplyWindow.vue | 15 +
company/src/views/business/taxes.vue | 10
company/src/views/business/applyChange.vue | 2
server/service/src/main/java/com/doumee/service/business/third/EmailService.java | 49 ++++++++
server/service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java | 26 ++++
server/service/src/main/java/com/doumee/service/business/third/EmayService.java | 42 +++---
server/service/src/main/java/com/doumee/dao/business/model/SmsEmail.java | 6 +
server/service/src/main/resources/application-test.yml | 29 +++-
server/service/src/main/java/com/doumee/service/business/SmsEmailService.java | 1
company/src/components/business/OperaApplyChangeDetailWindow.vue | 2
server/pom.xml | 5
server/service/src/main/java/com/doumee/dao/business/model/ApplyChange.java | 4
server/service/src/main/java/com/doumee/core/utils/Constants.java | 1
server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java | 99 ++++++++++++++--
server/service/src/main/resources/application-dev.yml | 12 ++
server/service/src/main/resources/application-pro.yml | 22 ++
server/service/src/main/java/com/doumee/dao/business/model/InsuranceApply.java | 3
company/src/components/business/OperaApplyChangeUnitDetailWindow.vue | 2
19 files changed, 269 insertions(+), 63 deletions(-)
diff --git a/company/src/components/business/OperaApplyChangeDetailWindow.vue b/company/src/components/business/OperaApplyChangeDetailWindow.vue
index 221bfa8..42dcc5d 100644
--- a/company/src/components/business/OperaApplyChangeDetailWindow.vue
+++ b/company/src/components/business/OperaApplyChangeDetailWindow.vue
@@ -13,7 +13,7 @@
<span>鎶曚繚浼佷笟锛歿{ apply.companyName }}</span>
<span v-if="model.status === 0">淇濆崟鐘舵�侊細寰呯缃�</span>
<span v-if="model.status === 1">淇濆崟鐘舵�侊細宸茬绔�</span>
- <span v-if="model.status === 2">淇濆崟鐘舵�侊細宸蹭笂浼犳壒鍗�</span>
+ <span v-if="model.status === 2">淇濆崟鐘舵�侊細宸茬敓鏁�</span>
<span v-if="model.status === 3 || model.status === 4">淇濆崟鐘舵�侊細閫�鍥炵敵璇�</span>
<span v-if="model.status ===5 || model.status === 8">淇濆崟鐘舵�侊細宸查��鍥�</span>
<span v-if="model.status ===7">淇濆崟鐘舵�侊細宸插叧闂�</span>
diff --git a/company/src/components/business/OperaApplyChangeUnitDetailWindow.vue b/company/src/components/business/OperaApplyChangeUnitDetailWindow.vue
index dffd29c..085150b 100644
--- a/company/src/components/business/OperaApplyChangeUnitDetailWindow.vue
+++ b/company/src/components/business/OperaApplyChangeUnitDetailWindow.vue
@@ -13,7 +13,7 @@
<span>鎶曚繚浼佷笟锛歿{ apply.companyName }}</span>
<span v-if="model.status === 0">淇濆崟鐘舵�侊細寰呯缃�</span>
<span v-if="model.status === 1">淇濆崟鐘舵�侊細宸茬绔�</span>
- <span v-if="model.status === 2">淇濆崟鐘舵�侊細宸蹭笂浼犳壒鍗�</span>
+ <span v-if="model.status === 2">淇濆崟鐘舵�侊細宸茬敓鏁�</span>
<span v-if="model.status === 3 || model.status === 4">淇濆崟鐘舵�侊細閫�鍥炵敵璇�</span>
<span v-if="model.status ===5 || model.status === 8">淇濆崟鐘舵�侊細宸查��鍥�</span>
<span v-if="model.status ===7">淇濆崟鐘舵�侊細宸插叧闂�</span>
diff --git a/company/src/components/business/OperaInsuranceApplyWindow.vue b/company/src/components/business/OperaInsuranceApplyWindow.vue
index 856a4ec..33941bf 100644
--- a/company/src/components/business/OperaInsuranceApplyWindow.vue
+++ b/company/src/components/business/OperaInsuranceApplyWindow.vue
@@ -24,11 +24,16 @@
</div>
<div class="desc_item_label_right">
<template v-if="userInfo.type === 1">
- <el-button type="primary" @click="$refs.InsuranceDetails.open('鎶曚繚璇︽儏鍗�',model,0)">绛剧讲鐢宠鍗�</el-button>
- <el-button v-if="[2, 3, 5, 7, 8].includes(model.status)" type="primary" @click="viewToubaodan">鐢宠閫�鍥�</el-button>
- <el-button v-if="[2, 3, 5, 7, 8].includes(model.status)" type="primary" @click="viewToubaodan">鍐嶆鎶曚繚</el-button>
- <el-button v-if="model.status == 5" type="primary" @click="viewBaoxiandan">鍏抽棴璁㈠崟</el-button>
- <el-button v-if="model.status == 2" type="primary" @click="goSign">绛剧讲鎶曚繚鍗�</el-button>
+ <el-button v-if="[0, 2, 3, 10].includes(model.status)" type="danger" @click="$refs.applyReturn.open('鐢宠閫�鍥�', {id: dataId})">鐢宠閫�鍥�</el-button>
+ <el-button v-if="model.status == 4" type="primary" @click="$refs.OperaInsuranceApply.open('鎶曚繚鐢宠', {id: dataId})">鍐嶆鎶曚繚</el-button>
+ <el-button type="primary" @click="$refs.InsuranceDetails.open('鎶曚繚璇︽儏鍗�',model,0)">瀵煎嚭璇﹀崟</el-button>
+ <el-button v-if="[2, 3, 5, 7, 8].includes(model.status)" type="primary" @click="viewToubaodan">鏌ョ湅鎶曚繚鍗�</el-button>
+ <el-button v-if="model.status == 5" type="primary" @click="viewBaoxiandan">鏌ョ湅淇濋櫓鍗�</el-button>
+ <el-button type="primary" @click="$refs.InsuranceDetails.open('鎶曚繚璇︽儏鍗�',model,0)">绛剧讲鐢宠鍗�</el-button>
+ <el-button v-if="[2, 3, 5, 7, 8].includes(model.status)" type="primary" @click="viewToubaodan">鐢宠閫�鍥�</el-button>
+ <el-button v-if="[2, 3, 5, 7, 8].includes(model.status)" type="primary" @click="viewToubaodan">鍐嶆鎶曚繚</el-button>
+ <el-button v-if="model.status == 5" type="primary" @click="viewBaoxiandan">鍏抽棴璁㈠崟</el-button>
+ <el-button v-if="model.status == 2" type="primary" @click="goSign">绛剧讲鎶曚繚鍗�</el-button>
</template>
<template v-else>
<el-button type="primary" @click="$refs.InsuranceDetails.open('鎶曚繚璇︽儏鍗�',model,0)">瀵煎嚭璇﹀崟</el-button>
diff --git a/company/src/views/business/applyChange.vue b/company/src/views/business/applyChange.vue
index 9296816..1f35fe8 100644
--- a/company/src/views/business/applyChange.vue
+++ b/company/src/views/business/applyChange.vue
@@ -66,7 +66,7 @@
<template slot-scope="{row}">
<span v-if="row.status === 0">寰呯缃�</span>
<span v-if="row.status === 1">宸茬绔�</span>
- <span v-if="row.status === 2">宸蹭笂浼犳壒鍗�</span>
+ <span v-if="row.status === 2">宸茬敓鏁�</span>
<span v-if="row.status === 3 || row.status === 4">閫�鍥炵敵璇�</span>
<span v-if="row.status ===5 || row.status === 8">宸查��鍥�</span>
<span v-if="row.status ===7">宸插叧闂�</span>
diff --git a/company/src/views/business/switchCourt.vue b/company/src/views/business/switchCourt.vue
index c660623..9fece68 100644
--- a/company/src/views/business/switchCourt.vue
+++ b/company/src/views/business/switchCourt.vue
@@ -66,7 +66,7 @@
<template slot-scope="{row}">
<span v-if="row.status === 0">寰呯缃�</span>
<span v-if="row.status === 1">宸茬绔�</span>
- <span v-if="row.status === 2">宸蹭笂浼犳壒鍗�</span>
+ <span v-if="row.status === 2">宸茬敓鏁�</span>
<span v-if="row.status === 3 || row.status === 4">閫�鍥炵敵璇�</span>
<span v-if="row.status ===5 || row.status === 8">宸查��鍥�</span>
<span v-if="row.status ===7">宸插叧闂�</span>
diff --git a/company/src/views/business/taxes.vue b/company/src/views/business/taxes.vue
index 6f1a9da..90affc2 100644
--- a/company/src/views/business/taxes.vue
+++ b/company/src/views/business/taxes.vue
@@ -52,9 +52,9 @@
<span v-if="row.status === 2">骞冲彴鎾ゅ洖</span>
</template>
</el-table-column>
- <el-table-column prop="companyId" label="鐢宠浼佷笟" min-width="100px"></el-table-column>
- <el-table-column prop="companyId" label="鐢宠寮�绁ㄦ椂闂�" min-width="100px"></el-table-column>
- <el-table-column prop="companyId" label="鐢宠浜�" min-width="100px"></el-table-column>
+ <el-table-column prop="companyName" label="鐢宠浼佷笟" min-width="100px"></el-table-column>
+ <el-table-column prop="createDate" label="鐢宠寮�绁ㄦ椂闂�" min-width="100px"></el-table-column>
+ <el-table-column prop="creatorName" label="鐢宠浜�" min-width="100px"></el-table-column>
<el-table-column prop="price" label="寮�绁ㄩ噾棰濓紙鍏冿級" min-width="100px"></el-table-column>
<el-table-column label="鎶曚繚绫诲瀷" min-width="100px">
<template slot-scope="{row}">
@@ -70,10 +70,10 @@
</el-table-column>
<el-table-column prop="type" label="鍙戠エ鐢靛瓙鐗�" min-width="100px">
<template slot-scope="{row}">
- <img v-if="row.imgurlfull!=null" :src="row.imgurlfull" style="width: 90px;height: 90px">
+ <img v-if="row.imgurlFull!=null" :src="row.imgurlFull" style="width: 90px;height: 90px">
</template>
</el-table-column>
- <el-table-column label="鎿嶄綔" min-width="100px">
+ <el-table-column label="鎿嶄綔" min-width="180px">
<template slot-scope="{row}">
<el-button v-if="row.status==0" type="text" @click="$refs.OperaTaxesUploadWindow.open('涓婁紶鍙戠エ',row)">涓婁紶鍙戠エ</el-button>
<el-button v-if="row.status ==1 " type="text" @click="$refs.OperaTaxesUploadWindow.open('淇敼鍙戠エ',row)">淇敼鍙戠エ</el-button>
diff --git a/server/pom.xml b/server/pom.xml
index 108a258..aa859e4 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -190,7 +190,10 @@
<artifactId>mybatis-plus-join</artifactId>
<version>1.4.2.2</version>
</dependency>
-
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-mail</artifactId>
+ </dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
diff --git a/server/service/src/main/java/com/doumee/core/utils/Constants.java b/server/service/src/main/java/com/doumee/core/utils/Constants.java
index 5270010..14fe22d 100644
--- a/server/service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/service/src/main/java/com/doumee/core/utils/Constants.java
@@ -1420,6 +1420,7 @@
}
}
zipOutputStream.closeArchiveEntry();
+ file.delete();
}
}
}
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/ApplyChange.java b/server/service/src/main/java/com/doumee/dao/business/model/ApplyChange.java
index 96a19e8..722efb5 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/ApplyChange.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/ApplyChange.java
@@ -193,7 +193,9 @@
@ApiModelProperty(value = "淇濋櫓鐢熸晥姝㈡湡")
@TableField(exist = false)
private Date endTime;
-
+ @ApiModelProperty(value = "鏂规閭欢")
+ @TableField(exist = false)
+ private String solutionEmail;
@ApiModelProperty(value = "鏃ュ織璁板綍")
@TableField(exist = false)
private List<ApplyLog> applyLogList;
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/InsuranceApply.java b/server/service/src/main/java/com/doumee/dao/business/model/InsuranceApply.java
index 452c5ae..9f49c29 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/InsuranceApply.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/InsuranceApply.java
@@ -132,6 +132,9 @@
@ApiModelProperty(value = "鏂规鍚嶇О")
@TableField(exist = false)
private String solutionsName;
+ @ApiModelProperty(value = "鏂规閭欢")
+ @TableField(exist = false)
+ private String solutionEmail;
@ApiModelProperty(value = "绛剧珷鍏抽敭瀛�")
@TableField(exist = false)
private String signKeyword;
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/SmsEmail.java b/server/service/src/main/java/com/doumee/dao/business/model/SmsEmail.java
index 345c331..6babd31 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/SmsEmail.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/SmsEmail.java
@@ -1,5 +1,6 @@
package com.doumee.dao.business.model;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -9,6 +10,8 @@
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
+import java.util.List;
+import java.util.Map;
/**
* 鐭俊閭欢淇℃伅琛�
@@ -86,5 +89,8 @@
@ApiModelProperty(value = "鍏宠仈瀵硅薄绫诲瀷")
@ExcelColumn(name="鍏宠仈瀵硅薄绫诲瀷")
private String objType;
+ @ApiModelProperty(value = "闄勪欢闆嗗悎")
+ @TableField(exist = false)
+ private List<Map<String,Object>> fileList;
}
diff --git a/server/service/src/main/java/com/doumee/service/business/SmsEmailService.java b/server/service/src/main/java/com/doumee/service/business/SmsEmailService.java
index d647275..8d5dfaf 100644
--- a/server/service/src/main/java/com/doumee/service/business/SmsEmailService.java
+++ b/server/service/src/main/java/com/doumee/service/business/SmsEmailService.java
@@ -20,6 +20,7 @@
*/
Integer create(SmsEmail smsEmail);
Integer sendSms(SmsEmail smsEmail);
+ Integer sendEmail(SmsEmail smsEmail);
/**
* 涓婚敭鍒犻櫎
*
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
index 9da21c5..10f893b 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
@@ -24,6 +24,8 @@
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.doumee.service.business.SmsEmailService;
+import com.doumee.service.business.third.EmailService;
import com.doumee.service.business.third.SignService;
import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
@@ -36,6 +38,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.io.File;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
@@ -53,7 +56,9 @@
@Autowired
private InsuranceApplyMapper insuranceApplyMapper;
@Autowired
- private ApplyChangeMapper applyChangeMapper;
+ private SmsEmailService smsEmailService;
+ @Autowired
+ private ApplyChangeJoinMapper applyChangeMapper;
@Autowired
private SystemDictDataBiz systemDictDataBiz;
@@ -396,14 +401,13 @@
return tempFileName;
}
}catch (Exception e){
-
}
return null;
}
- public Integer uploadSignedFileDo(InsuranceApply model,String fileurl) {
+ public Multifile uploadSignedFileDo(InsuranceApply model,String fileurl,String fullUrl) {
InsuranceApply update = new InsuranceApply();
update.setEditDate(new Date());
update.setEditor(model.getCreator());
@@ -422,15 +426,19 @@
f.setObjType(Constants.MultiFile.BD_SIGNED_PDF.getKey());
f.setType(Constants.TWO);
f.setFileurl(fileurl);
+ f.setFileurlFull(fullUrl);
+ f.setInfo("鎶曚繚鍗曚紒涓氱绾﹀悎鍚�");
f.setName("鎶曚繚鍗曠绾﹀悎鍚�.pdf");
multifileMapper.insert(f);
Constants.ApplyLogType applyLogType = Constants.ApplyLogType.SIGNATURE;
ApplyLog log = new ApplyLog(update,applyLogType.getName(), null,update.getId(),applyLogType.getKey(),JSONObject.toJSONString(model), JSONObject.toJSONString(update));
applyLogMapper.insert(log);
- return 1;
+
+ startSendEmail(f, model.getCompanyName(),model.getSolutionsName(),model.getSolutionEmail());
+ return f;
}
- public Integer uploadChangeSignedFileDo(ApplyChange model,String fileurl) {
+ public Multifile uploadChangeSignedFileDo(ApplyChange model,String fileurl,String fullurl) {
ApplyChange update = new ApplyChange();
update.setEditDate(new Date());
update.setEditor(model.getCreator());
@@ -449,19 +457,53 @@
f.setObjType(Constants.equalsInteger(Constants.ZERO,model.getType())?Constants.MultiFile.CA_APPLY_JIAJIAN_SIGN.getKey() : Constants.MultiFile.CA_APPLY_CHANGEUNIT_SIGN.getKey());
f.setType(Constants.TWO);
f.setFileurl(fileurl);
+ f.setFileurlFull(fullurl);
+ f.setInfo("浼佷笟鐢宠琛ㄧ缃叉枃浠�");
f.setName("绛剧珷鐢宠琛�.pdf");
multifileMapper.insert(f);
Constants.ApplyLogType applyLogType =Constants.equalsInteger(Constants.ZERO,model.getType())? Constants.ApplyLogType.CA_JIAJIAN_APPLY_SIGN: Constants.ApplyLogType.CA_CHANGUNIT_APPLY_SIGN;
ApplyLog log = new ApplyLog(update,applyLogType.getName(), null,update.getId(),applyLogType.getKey(),JSONObject.toJSONString(model), JSONObject.toJSONString(update));
applyLogMapper.insert(log);
- return 1;
+
+ startSendEmail(f,model.getCompanyName(),model.getSolutionsName(),model.getSolutionEmail());
+ return f;
}
+
+ private void startSendEmail(Multifile f, String companyName, String solutionsName, String solutionEmail) {
+ if(StringUtils.isBlank(solutionEmail) || f==null|| StringUtils.isBlank(f.getFileurl())){
+ return;
+ }
+ SmsEmail email = new SmsEmail();
+ email.setTitle(f.getInfo());
+ email.setEmail(solutionEmail);
+ email.setContent("鏉ヨ嚜浼佷笟銆�"+companyName+"銆戝叧浜庝繚闄╂柟妗堛��"+solutionsName+"銆戠殑"+f.getInfo());
+ File file = Constants.getFileByNetFile(f.getFileurlFull(),f.getName());
+ if(file!=null && file.isFile()){
+ Map<String,Object> files = new HashMap<>();
+ files.put("name",f.getName());
+ files.put("file",file);
+ email.setFileList(new ArrayList<>());
+ email.getFileList().add(files);
+ smsEmailService.sendEmail(email);
+ file.delete();//鍙戦�佸悗鍒犻櫎涓存椂鏂囦欢
+ }
+ }
+
@Override
public void dealWaitSignedData(){
- List<InsuranceApply> applyList = insuranceApplyMapper.selectList(new QueryWrapper<InsuranceApply>().lambda()
+ List<InsuranceApply> applyList = insuranceApplyJoinMapper.selectJoinList(InsuranceApply.class,
+ new MPJLambdaWrapper<InsuranceApply>()
+ .selectAll(InsuranceApply.class)
+ .selectAs(Solutions::getName,InsuranceApply::getSolutionsName)
+ .selectAs(Solutions::getEmail,InsuranceApply::getSolutionEmail)
+ .selectAs(Company::getName,InsuranceApply::getCompanyName)
+ .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
+ .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId)
.eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.WAIT_SIGNATURE.getKey())
.isNotNull(InsuranceApply::getSignApplyNo));
+ String path = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+
+ systemDictDataBiz.queryByCode(Constants.OSS,Constants.APPLY_FILE).getCode();
if(applyList !=null && applyList.size()>0 ){
for(InsuranceApply model : applyList){
String status = signService.linkFileStatus(model.getSignApplyNo());
@@ -474,11 +516,19 @@
//濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚�
return;
}
- uploadSignedFileDo(model,fileUrl);
+ uploadSignedFileDo(model,fileUrl,path+fileUrl);
return;
}
}
- List<ApplyChange> chagneList = applyChangeMapper.selectList(new QueryWrapper<ApplyChange>().lambda()
+ List<ApplyChange> chagneList = applyChangeMapper.selectJoinList(ApplyChange.class,
+ new MPJLambdaWrapper<ApplyChange>()
+ .selectAll(ApplyChange.class)
+ .selectAs(Solutions::getName,InsuranceApply::getSolutionsName)
+ .selectAs(Solutions::getEmail,InsuranceApply::getSolutionEmail)
+ .selectAs(Company::getName,InsuranceApply::getCompanyName)
+ .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyChange::getApplyId)
+ .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
+ .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId)
.eq(ApplyChange::getStatus,Constants.ApplyChangeStatus.UPLOAD.getKey())
.isNotNull(ApplyChange::getSignApplyNo));
if(chagneList !=null && chagneList.size()>0 ){
@@ -493,7 +543,7 @@
//濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚�
return;
}
- uploadChangeSignedFileDo(model,fileUrl);
+ uploadChangeSignedFileDo(model,fileUrl,path+fileUrl);
return;
}
}
@@ -505,7 +555,18 @@
}
if(Constants.equalsInteger(data.getSignStatus(), Constants.THREE )){
//濡傛灉宸蹭繚鍏�,鍙笅杞界绾﹂檮浠�
- InsuranceApply model = insuranceApplyMapper.selectOne(new QueryWrapper<InsuranceApply>().lambda().eq(InsuranceApply::getSignApplyNo,data.getApplyNo()).last("limit 1" ));
+ String path = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+
+ systemDictDataBiz.queryByCode(Constants.OSS,Constants.APPLY_FILE).getCode();
+ InsuranceApply model = insuranceApplyJoinMapper.selectJoinOne(InsuranceApply.class,
+ new MPJLambdaWrapper<InsuranceApply>()
+ .selectAll(InsuranceApply.class)
+ .selectAs(Solutions::getName,InsuranceApply::getSolutionsName)
+ .selectAs(Solutions::getEmail,InsuranceApply::getSolutionEmail)
+ .selectAs(Company::getName,InsuranceApply::getCompanyName)
+ .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
+ .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId)
+ .eq(InsuranceApply::getSignApplyNo,data.getApplyNo())
+ .last("limit 1" ));
if(model != null && Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.WAIT_SIGNATURE.getKey())){
//瀹屾垚绛剧讲宸插畬鎴愭搷浣�
String link = signService.linkFile(data.getApplyNo());
@@ -514,11 +575,19 @@
//濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚�
return;
}
- uploadSignedFileDo(model,fileUrl);
+ uploadSignedFileDo(model,fileUrl,path+fileUrl);
return;
}
-
- ApplyChange applyChange = applyChangeMapper.selectOne(new QueryWrapper<ApplyChange>().lambda().eq(ApplyChange::getSignApplyNo,data.getApplyNo()).last("limit 1" ));
+ ApplyChange applyChange = applyChangeMapper.selectJoinOne(ApplyChange.class,
+ new MPJLambdaWrapper<ApplyChange>()
+ .selectAll(ApplyChange.class)
+ .selectAs(Solutions::getName,InsuranceApply::getSolutionsName)
+ .selectAs(Solutions::getEmail,InsuranceApply::getSolutionEmail)
+ .selectAs(Company::getName,InsuranceApply::getCompanyName)
+ .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyChange::getApplyId)
+ .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
+ .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId)
+ .eq(ApplyChange::getSignApplyNo,data.getApplyNo()).last("limit 1" ));
if(applyChange != null &&Constants.equalsInteger(applyChange.getStatus(),Constants.ApplyChangeStatus.UPLOAD.getKey())){
String link = signService.linkFile(data.getApplyNo());
String fileUrl = uploadSignFile(link);
@@ -526,7 +595,7 @@
//濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚�
return;
}
- uploadChangeSignedFileDo(applyChange,fileUrl);
+ uploadChangeSignedFileDo(applyChange,fileUrl,path+fileUrl);
}
}else if(Constants.equalsInteger(data.getSignStatus(), Constants.TWO )){
//濡傛灉宸叉嫆绛撅紝娓呴櫎鍚堝悓锛屼笅娆$绔犻噸鏂扮敓鎴愭柊鍚堝悓
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java
index 0679e4b..78dc00b 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java
@@ -14,6 +14,7 @@
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.doumee.service.business.third.EmailService;
import com.doumee.service.business.third.EmayService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -38,6 +39,8 @@
private SystemDictDataBiz systemDictDataBiz;
@Autowired
private EmayService emayService;
+ @Autowired
+ private EmailService emailService;
public static void isCaptcheValide(SmsEmailMapper smsEmailMapper, String phone, String captche) {
SmsEmail model = smsEmailMapper.selectOne(new QueryWrapper<SmsEmail>().lambda()
@@ -69,11 +72,33 @@
return smsEmail.getId();
}
@Override
+ public Integer sendEmail(SmsEmail smsEmail) {
+ if(StringUtils.isBlank(smsEmail.getEmail())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ boolean result= emailService.sendEmail(smsEmail.getEmail(),smsEmail.getTitle(),smsEmail.getContent(),smsEmail.getFileList());
+ smsEmail.setRemark("閭欢鍙戠敓鎴愬姛");
+ if(!result){
+ smsEmail.setRemark("閭欢鍙戠敓澶辫触");
+ }
+ smsEmail.setIsdeleted(Constants.ZERO);
+ smsEmail.setCreateDate(new Date());
+ smsEmail.setStatus(Constants.ONE);
+ smsEmail.setType(Constants.TWO);
+ smsEmailMapper.insert(smsEmail);
+
+ return smsEmail.getId();
+ }
+ @Override
public Integer sendSms(SmsEmail smsEmail) {
if(StringUtils.isBlank(smsEmail.getPhone())){
throw new BusinessException(ResponseStatus.BAD_REQUEST);
}
String code = Constants.getRandom6Num();
+ boolean result= emayService.sendSingleSms(smsEmail.getPhone(),code);
+ if(!result){
+ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鐭俊楠岃瘉鐮佸彂閫佸け璐ワ紝璇风◢鍚庨噸璇曪紒");
+ }
smsEmail.setRemark(code);
smsEmail.setIsdeleted(Constants.ZERO);
smsEmail.setCreateDate(new Date());
@@ -84,6 +109,7 @@
smsEmailMapper.insert(smsEmail);
return smsEmail.getId();
+
}
@Override
diff --git a/server/service/src/main/java/com/doumee/service/business/third/EmailService.java b/server/service/src/main/java/com/doumee/service/business/third/EmailService.java
new file mode 100644
index 0000000..25ba032
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/service/business/third/EmailService.java
@@ -0,0 +1,49 @@
+package com.doumee.service.business.third;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.AnnotationConfigApplicationContext;
+import org.springframework.core.io.FileSystemResource;
+import org.springframework.mail.javamail.JavaMailSender;
+import org.springframework.mail.javamail.MimeMessageHelper;
+import org.springframework.stereotype.Service;
+
+import javax.activation.DataSource;
+import javax.mail.MessagingException;
+import javax.mail.internet.MimeMessage;
+import java.io.File;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class EmailService {
+ @Autowired
+ private JavaMailSender javaMailSender;//娉ㄥ叆JavaMailSender
+ @Value("${spring.mail.username}")
+ private String fromEmail;
+ public boolean sendEmail(String toEmail, String title, String content, List<Map<String,Object>> fileList) {
+ try {
+ AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
+ context.refresh();
+ MimeMessage message = javaMailSender.createMimeMessage();
+ MimeMessageHelper helper = new MimeMessageHelper(message, true);
+
+ helper.setTo(toEmail);
+ helper.setFrom(fromEmail);
+ helper.setSubject(title);
+ helper.setText(content);
+ if(fileList!=null){
+ for (Map<String,Object> f : fileList){
+ // 璁剧疆闄勪欢
+ helper.addAttachment((String) f.get("name"),new FileSystemResource((File) f.get("file")));
+ }
+ }
+ javaMailSender.send(message);
+ System.out.println("閭欢鍙戦�佹垚鍔燂紒");
+ return true;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+ }
diff --git a/server/service/src/main/java/com/doumee/service/business/third/EmayService.java b/server/service/src/main/java/com/doumee/service/business/third/EmayService.java
index 0292bf6..a34bf7b 100644
--- a/server/service/src/main/java/com/doumee/service/business/third/EmayService.java
+++ b/server/service/src/main/java/com/doumee/service/business/third/EmayService.java
@@ -61,30 +61,32 @@
return 0;
}
- public boolean sendSingleSms(String mobile,String content) throws SDKParamsException {
+ public boolean sendSingleSms(String mobile,String content) {
try {
client = new SmsSDKClient(ip,port,appKey,appSecret);
- } catch (SDKParamsException e) {
- throw new RuntimeException(e);
- }
- if(client == null){
- return false;
- }
- String customSmsId = "1";
- String extendedCode = "01";
- SmsSingleRequest request = new SmsSingleRequest(mobile, content, customSmsId, extendedCode, "");
- ResultModel<SmsResponse> result = client.sendSingleSms(request);
- saveInterfaceLog(ip+"/"+port,"銆愮煭淇°�戝彂閫�", JSONObject.toJSONString(result),JSONObject.toJSONString(result));
- if (result.getCode().equals("SUCCESS")) {
- System.out.println("璇锋眰鎴愬姛");
- SmsResponse response = result.getResult();
- System.out.println("sendSingleSms:" + response.toString());
- return true;
- } else {
- System.out.println("璇锋眰澶辫触");
- return false;
+ if(client == null){
+ return false;
+ }
+ String customSmsId = "1";
+ String extendedCode = "01";
+
+ SmsSingleRequest request = new SmsSingleRequest(mobile, content, customSmsId, extendedCode, "");
+ ResultModel<SmsResponse> result = client.sendSingleSms(request);
+ saveInterfaceLog(ip+"/"+port,"銆愮煭淇°�戝彂閫�", JSONObject.toJSONString(result),JSONObject.toJSONString(result));
+ if (result.getCode().equals("SUCCESS")) {
+ System.out.println("璇锋眰鎴愬姛");
+ SmsResponse response = result.getResult();
+ System.out.println("sendSingleSms:" + response.toString());
+ return true;
+ } else {
+ System.out.println("璇锋眰澶辫触");
+ return false;
+ }
+ } catch (Exception e) {
+
}
+ return false;
}
diff --git a/server/service/src/main/resources/application-dev.yml b/server/service/src/main/resources/application-dev.yml
index 997e0f8..c93459c 100644
--- a/server/service/src/main/resources/application-dev.yml
+++ b/server/service/src/main/resources/application-dev.yml
@@ -18,6 +18,18 @@
password: rtjgfEr@&0c0m
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
+ mail:
+ host: smtp.exmail.qq.com
+ username: jp@doumee.com
+ password: 2Jz9HFW2U7vRnCRu
+ default-encoding: UTF-8
+ properties:
+ mail:
+ smtp:
+ auth: true
+ starttls:
+ enable: true
+ required: true
redis:
# database: 0
diff --git a/server/service/src/main/resources/application-pro.yml b/server/service/src/main/resources/application-pro.yml
index 54757db..d051d4e 100644
--- a/server/service/src/main/resources/application-pro.yml
+++ b/server/service/src/main/resources/application-pro.yml
@@ -13,12 +13,22 @@
spring:
# 鏁版嵁婧愰厤缃�
datasource:
- url: jdbc:mysql://57b57595ddc66.sh.cdb.myqcloud.com:4464/yunyibao?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8
- username: test
- password: doumee@168
+ url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/yunyibao?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8
+ username: doumee
+ password: rtjgfEr@&0c0m
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
-
+ mail:
+ host: smtp.exmail.qq.com
+ username: jp@doumee.com
+ password: 2Jz9HFW2U7vRnCRu
+ properties:
+ mail:
+ smtp:
+ auth: true
+ starttls:
+ enable: true
+ required: true
redis:
# database: 0
host: 127.0.0.1
@@ -39,7 +49,6 @@
debug_model: false
-captcha_check: true
# Swagger閰嶇疆
swagger:
@@ -49,3 +58,6 @@
enabled: true
# 绂佺敤swagger鏃剁殑閲嶅畾鍚戝湴鍧�
redirect-uri: /
+
+project:
+ imgAuthen: false
\ No newline at end of file
diff --git a/server/service/src/main/resources/application-test.yml b/server/service/src/main/resources/application-test.yml
index 723dedd..828e620 100644
--- a/server/service/src/main/resources/application-test.yml
+++ b/server/service/src/main/resources/application-test.yml
@@ -4,6 +4,8 @@
enabled: true
mime-types: application/json
+ tomcat:
+ max-swallow-size: -1
servlet:
session:
timeout: PT3H #琛ㄧず12灏忔椂
@@ -11,22 +13,35 @@
spring:
# 鏁版嵁婧愰厤缃�
datasource:
- url: jdbc:mysql://57b57595ddc66.sh.cdb.myqcloud.com:4464/yunyibao?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8
- username: test
- password: doumee@168
+ url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/yunyibao?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8
+ username: doumee
+ password: rtjgfEr@&0c0m
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
+ mail:
+ host: smtp.exmail.qq.com
+ username: jp@doumee.com
+ password: Jiangping0427
+ redis:
+ # database: 0
+ host: 127.0.0.1
+ port: 6379
+ password:
+ timeout: 5000 # 杩炴帴姹犱腑鐨勬渶灏忕┖闂茶繛鎺�
+
+ jackson:
+ time-zone: GMT+8
+ date-format: yyyy-MM-dd HH:mm:ss
knife4j:
enable: true
basic:
enable: true
username: admin
- password: test@168.com
+ password: 111111
-debug_model: true
+debug_model: false
-captcha_check: false
# Swagger閰嶇疆
swagger:
@@ -38,4 +53,4 @@
redirect-uri: /
project:
- imgAuthenti: false
\ No newline at end of file
+ imgAuthen: false
\ No newline at end of file
--
Gitblit v1.9.3