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