浏览代码

公司邮箱管理功能开发

chenjianhua 7 月之前
父节点
当前提交
6bf7333acb

+ 6 - 1
service-base/src/main/java/com/simuwang/base/mapper/CompanyEmailConfigMapper.java

@@ -3,6 +3,9 @@ package com.simuwang.base.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.simuwang.base.pojo.dos.CompanyEmailConfigDO;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * FileName: CompanyEmailConfigMapper
@@ -12,11 +15,13 @@ import org.apache.ibatis.annotations.Mapper;
  */
 @Mapper
 public interface CompanyEmailConfigMapper extends BaseMapper<CompanyEmailConfigDO> {
-    void deleteCompanyEmailConfig(String email);
+    void deleteCompanyEmailConfig(@Param("companyId") String companyId);
 
     void saveCompanyEmailConfig(CompanyEmailConfigDO emailConfigDO);
 
     void updateCompanyEmailConfig(CompanyEmailConfigDO emailConfigDO);
 
     CompanyEmailConfigDO selectCompanyEmailConfigById(Integer id);
+
+    List<String> searchEmailByCompanyId(@Param("companyId")String companyId);
 }

+ 5 - 2
service-base/src/main/java/com/simuwang/base/mapper/CompanyEmailSendHistoryMapper.java

@@ -1,5 +1,6 @@
 package com.simuwang.base.mapper;
 
+import com.simuwang.base.pojo.vo.CompanyEmailConfigVO;
 import com.simuwang.base.pojo.vo.CompanyEmailSendHistoryVO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -18,9 +19,11 @@ public interface CompanyEmailSendHistoryMapper {
                                                                   @Param("email") String email,
                                                                   @Param("sendStatus") Integer sendStatus);
 
-    List<CompanyEmailSendHistoryVO> searchEmailHistory(@Param("email") String email);
+    List<CompanyEmailSendHistoryVO> searchEmailHistory(@Param("companyId") String companyId);
 
-    void deleteEmailHistory(@Param("email")String email);
+    void deleteEmailHistory(@Param("emailList")List<String> email);
 
     void deleteEmailHistoryByIds(@Param("ids") String[] split);
+
+    List<CompanyEmailConfigVO> searchEmailConfig(@Param("companyId") String companyId);
 }

+ 4 - 1
service-base/src/main/resources/mapper/CompanyEmailConfigMapper.xml

@@ -39,7 +39,7 @@
     </update>
 
     <update id="deleteCompanyEmailConfig">
-        update PPW_EMAIL.company_email_config set isvalid =0 where email=#{email}
+        update PPW_EMAIL.company_email_config set isvalid =0 where company_id=#{companyId}
     </update>
     <resultMap id="BaseResultMap" type="com.simuwang.base.pojo.dos.CompanyEmailConfigDO">
         <id column="id" property="id"/>
@@ -70,4 +70,7 @@
         <include refid="selectCompanyEmailConfigDo"/>
         <include refid="sqlwhereSearch"/>
     </select>
+    <select id="searchEmailByCompanyId" resultType="java.lang.String" parameterType="java.lang.String">
+        select email from PPW_EMAIL.company_email_config where company_id = #{companyId} and isvalid =1
+    </select>
 </mapper>

+ 27 - 11
service-base/src/main/resources/mapper/CompanyEmailHistoryMapper.xml

@@ -11,7 +11,10 @@
         <result column="send_remark" property="sendRemark"/>
     </resultMap>
     <update id="deleteEmailHistory">
-        update PPW_EMAIL.company_email_send_history set isvalid =0,updatetime=sysdate() where email=#{email}
+        update PPW_EMAIL.company_email_send_history set isvalid =0,updatetime=sysdate() where email in
+        <foreach item="email" collection="emailList" open="(" separator="," close=")">
+            #{email}
+        </foreach>
     </update>
     <update id="deleteEmailHistoryByIds">
         update PPW_EMAIL.company_email_send_history set isvalid =0,updatetime=sysdate() where id in
@@ -25,16 +28,16 @@
             cec.id,
             cec.company_id,
             c.company_name,
-            cec.email,
-            MAX(cesh.send_time) AS send_time,
+            listagg(cec.email,',') as email,
+            max(cesh.send_time) as send_time,
             cesh.send_remark,
             cesh.send_status
         FROM
-            PPW_EMAIL.company_email_config cec
-                JOIN PPW_EMAIL.company_information c
-                     ON cec.company_id = c.company_id
-                LEFT JOIN PPW_EMAIL.company_email_send_history cesh
-                     ON cec.email = cesh.email AND cesh.isvalid = 1
+        PPW_EMAIL.company_email_config cec
+        JOIN PPW_EMAIL.pvn_company_info c
+        ON cec.company_id = c.company_id
+        LEFT JOIN PPW_EMAIL.company_email_send_history cesh
+        ON cec.email = cesh.email AND cesh.isvalid = 1
         WHERE cec.isvalid = 1 and c.isvalid=1
         <if test="companyName != null and companyName !=''">
             and (c.company_name like concat('',#{companyName},'') or c.company_short_name like concat('',#{companyName},''))
@@ -45,6 +48,7 @@
         <if test="sendStatus != null and sendStatus !=''">
             and cesh.send_status=#{sendStatus}
         </if>
+        group by cec.company_id
     </select>
     <select id="searchEmailHistory" resultMap="BaseResultMap">
         SELECT
@@ -58,13 +62,25 @@
         FROM
             PPW_EMAIL.company_email_send_history cesh
             JOIN PPW_EMAIL.company_email_config cec
-            JOIN PPW_EMAIL.company_information c
+            JOIN PPW_EMAIL.pvn_company_info c
             ON cec.company_id = c.company_id
             ON cec.email = cesh.email
         WHERE cec.isvalid = 1
         AND cesh.isvalid = 1 and c.isvalid =1
-        <if test="email != null and email !=''">
-            and cec.email=#{email}
+        <if test="companyId != null and companyId !=''">
+            and c.company_id=#{companyId}
         </if>
     </select>
+
+    <resultMap id="BaseVOMap" type="com.simuwang.base.pojo.vo.CompanyEmailConfigVO">
+        <id column="id" property="id"/>
+        <result column="company_id" property="companyId"/>
+        <result column="company_name" property="companyName"/>
+        <result column="email" property="email"/>
+        <result column="open_status" property="openStatus"/>
+    </resultMap>
+    <select id="searchEmailConfig" resultMap="BaseVOMap"
+            parameterType="java.lang.String">
+        select id,company_id,company_name,email,open_status from  PPW_EMAIL.company_email_config where isvalid =1 and company_id=#{companyId}
+    </select>
 </mapper>

+ 19 - 7
service-manage/src/main/java/com/simuwang/manage/api/company/CompanyEmailSendHistoryController.java

@@ -47,23 +47,35 @@ public class CompanyEmailSendHistoryController extends BaseController {
 
     /**
      * 查询邮箱发送历史
-     * @param email
+     * @param companyId
      * @return
      */
     @RequestMapping("search-email-history")
-    public TableDataInfo searchEmailHistory(@RequestParam(value = "email",required = false)String email){
-        List<CompanyEmailSendHistoryVO> result = companyEmailSendHistoryService.searchEmailHistory(email);
+    public TableDataInfo searchEmailHistory(@RequestParam(value = "companyId")String companyId){
+        List<CompanyEmailSendHistoryVO> result = companyEmailSendHistoryService.searchEmailHistory(companyId);
+        return getDataTable(result);
+    }
+
+
+    /**
+     * 查询邮箱发送历史
+     * @param companyId
+     * @return
+     */
+    @RequestMapping("search-email-config")
+    public TableDataInfo searchEmailConfig(@RequestParam(value = "companyId",required = false)String companyId){
+        List<CompanyEmailConfigVO> result = companyEmailSendHistoryService.searchEmailConfig(companyId);
         return getDataTable(result);
     }
 
     /**
      * 删除邮箱配置
-     * @param email
+     * @param companyId
      * @return
      */
-    @PostMapping("delete-email")
-    public AjaxResult deleteEmail(@RequestParam(value = "email",required = false)String email){
-        companyEmailSendHistoryService.deleteEmail(email);
+    @PostMapping("delete-company-email")
+    public AjaxResult deleteEmail(@RequestParam(value = "companyId")String companyId){
+        companyEmailSendHistoryService.deleteEmail(companyId);
         return AjaxResult.success();
     }
     /**

+ 4 - 1
service-manage/src/main/java/com/simuwang/manage/service/CompanyEmailSendHistoryService.java

@@ -1,5 +1,6 @@
 package com.simuwang.manage.service;
 
+import com.simuwang.base.pojo.vo.CompanyEmailConfigVO;
 import com.simuwang.base.pojo.vo.CompanyEmailSendHistoryVO;
 
 import java.util.List;
@@ -12,9 +13,11 @@ import java.util.List;
  */
 public interface CompanyEmailSendHistoryService {
     List<CompanyEmailSendHistoryVO> searchCompanyEmail(String companyName, String email, Integer sendStatus);
-    List<CompanyEmailSendHistoryVO> searchEmailHistory(String email);
+    List<CompanyEmailSendHistoryVO> searchEmailHistory(String companyId);
 
     void deleteEmail(String email);
 
     void deleteEmailHistory(String ids);
+
+    List<CompanyEmailConfigVO> searchEmailConfig(String companyId);
 }

+ 15 - 5
service-manage/src/main/java/com/simuwang/manage/service/impl/CompanyEmailSendHistoryServiceImpl.java

@@ -2,6 +2,7 @@ package com.simuwang.manage.service.impl;
 
 import com.simuwang.base.mapper.CompanyEmailConfigMapper;
 import com.simuwang.base.mapper.CompanyEmailSendHistoryMapper;
+import com.simuwang.base.pojo.vo.CompanyEmailConfigVO;
 import com.simuwang.base.pojo.vo.CompanyEmailSendHistoryVO;
 import com.simuwang.manage.service.CompanyEmailSendHistoryService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -29,21 +30,30 @@ public class CompanyEmailSendHistoryServiceImpl implements CompanyEmailSendHisto
     }
 
     @Override
-    public List<CompanyEmailSendHistoryVO> searchEmailHistory(String email) {
-        return companyEmailSendHistoryMapper.searchEmailHistory(email);
+    public List<CompanyEmailSendHistoryVO> searchEmailHistory(String companyId) {
+        return companyEmailSendHistoryMapper.searchEmailHistory(companyId);
     }
 
     @Override
     @Transactional
-    public void deleteEmail(String email) {
+    public void deleteEmail(String companyId) {
+
+        List<String> emailList = companyEmailConfigMapper.searchEmailByCompanyId(companyId);
         //删除配置
-        companyEmailConfigMapper.deleteCompanyEmailConfig(email);
+        companyEmailConfigMapper.deleteCompanyEmailConfig(companyId);
         //删除历史
-        companyEmailSendHistoryMapper.deleteEmailHistory(email);
+        if(emailList.size() > 0){
+            companyEmailSendHistoryMapper.deleteEmailHistory(emailList);
+        }
     }
 
     @Override
     public void deleteEmailHistory(String ids) {
         companyEmailSendHistoryMapper.deleteEmailHistoryByIds(ids.split(","));
     }
+
+    @Override
+    public List<CompanyEmailConfigVO> searchEmailConfig(String companyId) {
+        return companyEmailSendHistoryMapper.searchEmailConfig(companyId);
+    }
 }