Ver Fonte

站点邮箱黑名单

chenpeiqing há 5 meses atrás
pai
commit
7a2dbe0b7f

+ 559 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/adweb/enquiry/controller/AdwebSiteBlackEmailController.java

@@ -0,0 +1,559 @@
+package org.jeecg.modules.adweb.enquiry.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang.StringUtils;
+import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.system.api.ISysBaseAPI;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.common.util.RedisUtil;
+import org.jeecg.modules.adweb.enquiry.entity.AdwebEnquiryBlacklist;
+import org.jeecg.modules.adweb.enquiry.entity.AdwebPublicBlackEmail;
+import org.jeecg.modules.adweb.enquiry.entity.AdwebSiteBlackEmail;
+import org.jeecg.modules.adweb.enquiry.service.IAdwebEnquiryBlacklistService;
+import org.jeecg.modules.adweb.enquiry.service.IAdwebPublicBlackEmailService;
+import org.jeecg.modules.adweb.enquiry.service.IAdwebSiteBlackEmailService;
+import org.jeecg.modules.adweb.site.entity.AdwebSite;
+import org.jeecg.modules.adweb.site.service.IAdwebSiteService;
+import org.jeecg.modules.adweb.site.service.ISiteUserPermissionService;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @Description: AdwebSiteBlackEmailController.java;
+ * @Author: chenpeiqing
+ * @Date: 2024/11/1 : 17:22
+ * @Version: V1.0
+ */
+@Tag(name = "adweb_site_black_email")
+@RestController
+@RequestMapping("/adweb/enquirySiteBlackEmail")
+@Slf4j
+public class AdwebSiteBlackEmailController extends JeecgController<AdwebSiteBlackEmail, IAdwebSiteBlackEmailService> {
+
+    @Resource
+    private IAdwebSiteBlackEmailService enquirySiteBlackEmailService;
+    @Resource
+    private RedisUtil redisUtil;
+    @Resource
+    private ISysBaseAPI sysBaseAPI;
+
+    @Resource
+    private IAdwebSiteService adwebSiteService;
+    @Resource
+    private ISiteUserPermissionService siteUserPermissionService;
+    @Resource
+    private IAdwebPublicBlackEmailService enquiryPublicBlackEmailService;
+    @Resource
+    private IAdwebEnquiryBlacklistService adwebEnquiryBlacklistService;
+
+
+    private static final String SiteBlackEmailKey = "SITE_BLACK_EMAIL_LIST";
+    private static final String SiteWhiteEmailListKey = "SITE_WHITE_EMAIL_LIST";
+    private static final String SiteEmailTenMinKey = "JUDGE_WASTE_SITE_ENQUIRY_EMAIL_BY_10_MIN::";
+    private static final String SiteEmailOneDayKey = "JUDGE_WASTE_SITE_ENQUIRY_EMAIL_BY_ONE_DAY::";
+    private static final String NotBlackEmailWasteSiteEnquiryKey = "NOT_BLACK_EMAIL_WASTE_SITE_ENQUIRY_MAP::";
+    //	private static final String EmailTenMinKey = "JUDGE_WASTE_ENQUIRY_EMAIL_BY_10_MIN::";
+//	private static final String EmailOneDayKey = "JUDGE_WASTE_ENQUIRY_EMAIL_BY_ONE_DAY::";
+//	private static final String NotBlackEmailWasteEnquiryKey = "NOT_BLACK_EMAIL_WASTE_ENQUIRY_MAP::";
+    private static final String BlackEmailKey = "BLACK_EMAIL_LIST";
+
+    /**
+     * 分页列表查询
+     *
+     * @param enquirySiteBlackEmail
+     * @param pageNo
+     * @param pageSize
+     * @param req
+     * @return
+     */
+    @AutoLog(value = "adweb_site_black_email-分页列表查询")
+    @Operation(summary = "adweb_site_black_email-分页列表查询")
+    @GetMapping(value = "/list")
+    public Result<?> queryPageList(AdwebSiteBlackEmail enquirySiteBlackEmail,
+                                   @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+                                   @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
+                                   HttpServletRequest req) {
+        Page<AdwebSiteBlackEmail> page = new Page<AdwebSiteBlackEmail>(pageNo, pageSize);
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        List<String> codeList = null;
+        List<String> uidList = null;
+        if (sysBaseAPI.isAdmin()) {
+
+        } else if (sysBaseAPI.isOem()) {
+            uidList = sysBaseAPI.getOemGroupUids();
+        } else {
+            uidList = new ArrayList<>();
+            uidList.add(sysUser.getId());
+        }
+        List<String> siteCodeList = null;
+        if (CollectionUtils.isNotEmpty(uidList)) {
+            siteCodeList = siteUserPermissionService.getSiteCodeListByUids(uidList);
+        }
+
+        if (enquirySiteBlackEmail.getSiteId() != null) {
+            String siteCode = adwebSiteService.getSiteCodeById(enquirySiteBlackEmail.getSiteId());
+            if (StringUtils.isNotBlank(siteCode)) {
+                QueryWrapper<AdwebSite> queryWrapper = new QueryWrapper<>();
+                queryWrapper.eq("id", enquirySiteBlackEmail.getSiteId()).or().eq("parent_group_code", siteCode);
+                queryWrapper.ne("status", 0);
+                queryWrapper.in(!sysBaseAPI.isAdmin(), "code", siteCodeList);
+                codeList = adwebSiteService.list(queryWrapper).stream().map(AdwebSite::getCode).collect(Collectors.toList());
+            }
+        } else {
+            codeList = siteCodeList;
+        }
+        String column = req.getParameter("column");
+        String order = req.getParameter("order");
+        IPage<AdwebSiteBlackEmail> pageList = enquirySiteBlackEmailService.pageList(page, enquirySiteBlackEmail, codeList, column, order);
+        List<AdwebSiteBlackEmail> record = pageList.getRecords();
+
+        if (CollectionUtils.isNotEmpty(record)) {
+            for (AdwebSiteBlackEmail enquirySiteBlackEmail1 : record) {
+                if (enquirySiteBlackEmail1.getType().equals("0")) {
+                    if (enquirySiteBlackEmail1.getWasteGeneralEnquiryNum() != null) {
+                        enquirySiteBlackEmail1.setWasteEnquiryNum(enquirySiteBlackEmail1.getWasteGeneralEnquiryNum());
+                    }
+                }
+            }
+        }
+        return Result.OK(pageList);
+    }
+
+    /**
+     * 添加
+     *
+     * @param enquirySiteBlackEmail
+     * @return
+     */
+    @AutoLog(value = "adweb_site_black_email-添加")
+    @Operation(summary = "adweb_site_black_email-添加")
+    @PostMapping(value = "/add")
+    public Result<?> add(@RequestBody AdwebSiteBlackEmail enquirySiteBlackEmail) {
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+
+        if (StringUtils.isBlank(enquirySiteBlackEmail.getEmail())) {
+            return Result.error("邮箱不能为空");
+        }
+
+        //将邮箱转换为小写
+        enquirySiteBlackEmail.setEmail(enquirySiteBlackEmail.getEmail().trim().toLowerCase());
+
+        int count = (int) enquirySiteBlackEmailService.count(new QueryWrapper<AdwebSiteBlackEmail>().ne("status", 0).eq("email", enquirySiteBlackEmail.getEmail())
+                .eq("site_id", enquirySiteBlackEmail.getSiteId()).eq("type", enquirySiteBlackEmail.getType()));
+
+        if (count > 0) {
+            return Result.error("邮箱已存在");
+        }
+
+        //判断站点询盘黑名单是否存在添加进来的黑名单
+        QueryWrapper<AdwebEnquiryBlacklist> adwebEnquiryBlacklistQueryWrapper = new QueryWrapper<>();
+        adwebEnquiryBlacklistQueryWrapper.eq("site_id", enquirySiteBlackEmail.getSiteId());
+        adwebEnquiryBlacklistQueryWrapper.eq("status", 1);
+        adwebEnquiryBlacklistQueryWrapper.eq("email", enquirySiteBlackEmail.getEmail());
+        List<AdwebEnquiryBlacklist> enquiryBlacklists = adwebEnquiryBlacklistService.list(adwebEnquiryBlacklistQueryWrapper);
+
+        if (CollectionUtils.isNotEmpty(enquiryBlacklists)) {
+            return Result.error("在拒收的邮箱黑名单中已存在!");
+        }
+
+        enquirySiteBlackEmail.setStatus(1);
+        enquirySiteBlackEmail.setCreateTime(new Date());
+        enquirySiteBlackEmailService.save(enquirySiteBlackEmail);
+
+        Map<String, List<String>> enquirySiteBlackEmailListMap = enquirySiteBlackEmailService.getSiteBlackEmailListBySiteId(enquirySiteBlackEmail.getSiteId());
+        List<String> emailList = enquirySiteBlackEmailListMap.get("black");
+        List<String> whiteEmailList = enquirySiteBlackEmailListMap.get("white");
+
+        //处理对应站点的黑名单
+        if (CollectionUtils.isNotEmpty(emailList)) {
+            redisUtil.set(SiteBlackEmailKey + "::" + enquirySiteBlackEmail.getSiteId(), emailList, 60 * 60 * 24);
+        } else {
+            redisUtil.del(SiteBlackEmailKey + "::" + enquirySiteBlackEmail.getSiteId());
+        }
+
+        //处理对应站点的白名单
+        if (CollectionUtils.isNotEmpty(whiteEmailList)) {
+            redisUtil.set(SiteWhiteEmailListKey + "::" + enquirySiteBlackEmail.getSiteId(), whiteEmailList, 60 * 60 * 24);
+        } else {
+            redisUtil.del(SiteWhiteEmailListKey + "::" + enquirySiteBlackEmail.getSiteId());
+        }
+        return Result.OK("添加成功!");
+    }
+
+    /**
+     * 编辑
+     *
+     * @param enquirySiteBlackEmail
+     * @return
+     */
+    @AutoLog(value = "adweb_site_black_email-编辑")
+    @Operation(summary = "adweb_site_black_email-编辑")
+    @PutMapping(value = "/edit")
+    public Result<?> edit(@RequestBody AdwebSiteBlackEmail enquirySiteBlackEmail) {
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+
+        if (StringUtils.isBlank(enquirySiteBlackEmail.getEmail())) {
+            return Result.error("邮箱不能为空");
+        }
+
+        //将邮箱转换为小写
+        enquirySiteBlackEmail.setEmail(enquirySiteBlackEmail.getEmail().trim().toLowerCase());
+
+        int count = (int) enquirySiteBlackEmailService.count(new QueryWrapper<AdwebSiteBlackEmail>().ne("status", 0).eq("email", enquirySiteBlackEmail.getEmail()).eq("site_id", enquirySiteBlackEmail.getSiteId()).eq("black_or_white", enquirySiteBlackEmail.getBlackOrWhite()).ne("id", enquirySiteBlackEmail.getId()));
+
+        if (count > 0) {
+            return Result.error("邮箱已存在");
+        }
+
+        //判断站点询盘黑名单是否存在添加进来的黑名单
+        QueryWrapper<AdwebEnquiryBlacklist> adwebEnquiryBlacklistQueryWrapper = new QueryWrapper<>();
+        adwebEnquiryBlacklistQueryWrapper.eq("site_id", enquirySiteBlackEmail.getSiteId());
+        adwebEnquiryBlacklistQueryWrapper.eq("status", 1);
+        adwebEnquiryBlacklistQueryWrapper.eq("email", enquirySiteBlackEmail.getEmail());
+        List<AdwebEnquiryBlacklist> enquiryBlacklists = adwebEnquiryBlacklistService.list(adwebEnquiryBlacklistQueryWrapper);
+
+        if (CollectionUtils.isNotEmpty(enquiryBlacklists)) {
+            return Result.error("在拒收的邮箱黑名单中已存在!");
+        }
+
+        AdwebSiteBlackEmail oldAdwebSiteBlackEmail = enquirySiteBlackEmailService.getById(enquirySiteBlackEmail.getId());
+
+        //判断公共询盘缓存的是否包含历史的黑名单数据
+        if (!oldAdwebSiteBlackEmail.getEmail().equals(enquirySiteBlackEmail.getEmail())) {
+            List<AdwebPublicBlackEmail> emailList = enquiryPublicBlackEmailService.list(new QueryWrapper<AdwebPublicBlackEmail>().eq("status", 1).eq("black_or_white", 0));
+            List<String> pubicBlackEmailList = emailList.stream().map(AdwebPublicBlackEmail::getEmail).collect(Collectors.toList());
+
+            List<String> publicBlackList = (List<String>) redisUtil.get(BlackEmailKey);
+
+            publicBlackList.removeAll(pubicBlackEmailList);
+            if (CollectionUtils.isNotEmpty(publicBlackList)) {
+                for (int i = 0; i < publicBlackList.size(); i++) {
+                    String oldEmail = oldAdwebSiteBlackEmail.getEmail();
+                    if (oldAdwebSiteBlackEmail.getType().equals("0")) {
+                        oldEmail = "*" + oldEmail + "*";
+                    }
+                    if (oldEmail.equals(publicBlackList.get(i))) {
+                        publicBlackList.remove(i);
+                        break;
+                    }
+                }
+                pubicBlackEmailList.addAll(publicBlackList);
+                redisUtil.set(BlackEmailKey, pubicBlackEmailList, 60 * 60 * 24);
+            }
+        }
+
+        enquirySiteBlackEmail.setUpdateTime(new Date());
+        enquirySiteBlackEmailService.updateById(enquirySiteBlackEmail);
+
+        QueryWrapper<AdwebSiteBlackEmail> siteAllEmailQueryWrapper = new QueryWrapper<>();
+        siteAllEmailQueryWrapper.ne("status", 0);
+        siteAllEmailQueryWrapper.eq("site_id", enquirySiteBlackEmail.getSiteId());
+        List<AdwebSiteBlackEmail> allEmailList = enquirySiteBlackEmailService.list(siteAllEmailQueryWrapper);
+        if (CollectionUtils.isEmpty(allEmailList)) {
+            log.info("未获取到对应站点的黑白名单数据");
+        }
+
+        Map<String, List<String>> enquirySiteBlackEmailListMap = enquirySiteBlackEmailService.getSiteBlackEmailListBySiteId(enquirySiteBlackEmail.getSiteId());
+        List<String> emailList = enquirySiteBlackEmailListMap.get("black");
+        List<String> whiteEmailList = enquirySiteBlackEmailListMap.get("white");
+
+        //处理对应站点的黑名单
+        if (CollectionUtils.isNotEmpty(emailList)) {
+            redisUtil.set(SiteBlackEmailKey + "::" + enquirySiteBlackEmail.getSiteId(), emailList, 60 * 60 * 24);
+        } else {
+            redisUtil.del(SiteBlackEmailKey + "::" + enquirySiteBlackEmail.getSiteId());
+        }
+
+        //处理对应站点的白名单
+        if (CollectionUtils.isNotEmpty(whiteEmailList)) {
+            redisUtil.set(SiteWhiteEmailListKey + "::" + enquirySiteBlackEmail.getSiteId(), whiteEmailList, 60 * 60 * 24);
+        } else {
+            redisUtil.del(SiteWhiteEmailListKey + "::" + enquirySiteBlackEmail.getSiteId());
+        }
+
+        //处理站点改变的数据缓存
+        if (!oldAdwebSiteBlackEmail.getSiteId().equals(enquirySiteBlackEmail.getSiteId())) {
+            Map<String, List<String>> oldAdwebSiteBlackEmailListMap = enquirySiteBlackEmailService.getSiteBlackEmailListBySiteId(oldAdwebSiteBlackEmail.getSiteId());
+            List<String> oldEmailList = oldAdwebSiteBlackEmailListMap.get("black");
+            List<String> oldWhiteEmailList = oldAdwebSiteBlackEmailListMap.get("white");
+            //处理对应站点的黑名单
+            if (CollectionUtils.isNotEmpty(oldEmailList)) {
+                redisUtil.set(SiteBlackEmailKey + "::" + oldAdwebSiteBlackEmail.getSiteId(), oldEmailList, 60 * 60 * 24);
+            } else {
+                redisUtil.del(SiteBlackEmailKey + "::" + oldAdwebSiteBlackEmail.getSiteId());
+            }
+
+            //处理对应站点的白名单
+            if (CollectionUtils.isNotEmpty(oldWhiteEmailList)) {
+                redisUtil.set(SiteWhiteEmailListKey + "::" + oldAdwebSiteBlackEmail.getSiteId(), oldWhiteEmailList, 60 * 60 * 24);
+            } else {
+                redisUtil.del(SiteWhiteEmailListKey + "::" + oldAdwebSiteBlackEmail.getSiteId());
+            }
+        }
+
+
+        return Result.OK("编辑成功!");
+    }
+
+    /**
+     * 通过id删除
+     *
+     * @param id
+     * @return
+     */
+    @AutoLog(value = "adweb_site_black_email-通过id删除")
+    @Operation(summary = "adweb_site_black_email-通过id删除")
+    @DeleteMapping(value = "/delete")
+    public Result<?> delete(@RequestParam(name = "id", required = true) String id) {
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+
+        if (StringUtils.isBlank(id)) {
+            return Result.error("参数不识别!");
+        }
+        AdwebSiteBlackEmail enquirySiteBlackEmail = enquirySiteBlackEmailService.getById(id);
+        if (enquirySiteBlackEmail == null) {
+            return Result.error("未找到对应数据");
+        }
+
+        //判断公共询盘缓存的是否包含历史的黑名单数据
+        List<AdwebPublicBlackEmail> pubicEmailList = enquiryPublicBlackEmailService.list(new QueryWrapper<AdwebPublicBlackEmail>().eq("status", 1).eq("black_or_white", 0));
+        List<String> pubicBlackEmailList = pubicEmailList.stream().map(AdwebPublicBlackEmail::getEmail).collect(Collectors.toList());
+
+        List<String> publicBlackList = (List<String>) redisUtil.get(BlackEmailKey);
+
+        if (CollectionUtils.isNotEmpty(publicBlackList)) {
+            if (CollectionUtils.isNotEmpty(pubicBlackEmailList)) {
+                publicBlackList.removeAll(pubicBlackEmailList);
+            } else {
+                pubicBlackEmailList = new ArrayList<>();
+            }
+            for (int i = 0; i < publicBlackList.size(); i++) {
+                String oldEmail = enquirySiteBlackEmail.getEmail();
+                if (enquirySiteBlackEmail.getType().equals("0")) {
+                    oldEmail = "*" + oldEmail + "*";
+                }
+                if (oldEmail.equals(publicBlackList.get(i))) {
+                    publicBlackList.remove(i);
+                    break;
+                }
+            }
+            pubicBlackEmailList.addAll(publicBlackList);
+            redisUtil.set(BlackEmailKey, pubicBlackEmailList, 60 * 60 * 24);
+        }
+        enquirySiteBlackEmail.setStatus(0);
+        enquirySiteBlackEmail.setUpdateTime(new Date());
+        enquirySiteBlackEmailService.updateById(enquirySiteBlackEmail);
+
+        redisUtil.del(SiteEmailTenMinKey + enquirySiteBlackEmail.getSiteId() + "::" + enquirySiteBlackEmail.getEmail());
+        redisUtil.del(SiteEmailOneDayKey + enquirySiteBlackEmail.getSiteId() + "::" + enquirySiteBlackEmail.getEmail());
+        redisUtil.del(NotBlackEmailWasteSiteEnquiryKey + enquirySiteBlackEmail.getSiteId() + "::" + enquirySiteBlackEmail.getEmail());
+
+        QueryWrapper<AdwebSiteBlackEmail> siteAllEmailQueryWrapper = new QueryWrapper<>();
+        siteAllEmailQueryWrapper.ne("status", 0);
+        siteAllEmailQueryWrapper.eq("site_id", enquirySiteBlackEmail.getSiteId());
+        List<AdwebSiteBlackEmail> allEmailList = enquirySiteBlackEmailService.list(siteAllEmailQueryWrapper);
+        if (CollectionUtils.isEmpty(allEmailList)) {
+            log.info("未获取到对应站点的黑白名单数据");
+        }
+
+        List<String> emailList = new ArrayList<>();
+        List<String> whiteEmailList = new ArrayList<>();
+        if (CollectionUtils.isNotEmpty(allEmailList)) {
+            for (AdwebSiteBlackEmail enquirySiteBlackEmail1 : allEmailList) {
+                if (enquirySiteBlackEmail1.getBlackOrWhite() == 0) {
+                    if (enquirySiteBlackEmail1.getType().equals("0")) {
+                        emailList.add("*" + enquirySiteBlackEmail1.getEmail() + "*");
+                    } else {
+                        emailList.add(enquirySiteBlackEmail1.getEmail());
+                    }
+                } else {
+                    if (enquirySiteBlackEmail1.getType().equals("0")) {
+                        whiteEmailList.add("*" + enquirySiteBlackEmail1.getEmail() + "*");
+                    } else {
+                        whiteEmailList.add(enquirySiteBlackEmail1.getEmail());
+                    }
+                }
+            }
+        }
+        //处理对应站点的黑名单
+        if (CollectionUtils.isNotEmpty(emailList)) {
+            redisUtil.set(SiteBlackEmailKey + "::" + enquirySiteBlackEmail.getSiteId(), emailList, 60 * 60 * 24);
+        } else {
+            redisUtil.del(SiteBlackEmailKey + "::" + enquirySiteBlackEmail.getSiteId());
+        }
+
+        //处理对应站点的白名单
+        if (CollectionUtils.isNotEmpty(whiteEmailList)) {
+            redisUtil.set(SiteWhiteEmailListKey + "::" + enquirySiteBlackEmail.getSiteId(), whiteEmailList, 60 * 60 * 24);
+        } else {
+            redisUtil.del(SiteWhiteEmailListKey + "::" + enquirySiteBlackEmail.getSiteId());
+        }
+
+        return Result.OK("删除成功!");
+    }
+
+    /**
+     * 批量删除
+     *
+     * @param ids
+     * @return
+     */
+    @AutoLog(value = "adweb_site_black_email-批量删除")
+    @Operation(summary = "adweb_site_black_email-批量删除")
+    @DeleteMapping(value = "/deleteBatch")
+    public Result<?> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+
+        if (StringUtils.isBlank(ids)) {
+            return Result.error("参数不识别!");
+        }
+
+        List<String> idList = Arrays.asList(ids.split(","));
+
+        List<AdwebSiteBlackEmail> list = enquirySiteBlackEmailService.list(new QueryWrapper<AdwebSiteBlackEmail>().in("id", idList).ne("status", 0));
+
+        if (list.isEmpty()) {
+            return Result.error("未找到对应数据");
+        }
+
+        boolean update = enquirySiteBlackEmailService.update(new UpdateWrapper<AdwebSiteBlackEmail>().in("id", idList).set("status", 0));
+
+        HashSet<Integer> siteList = new HashSet<>();
+        //删除redis中的数据
+        for (AdwebSiteBlackEmail enquirySiteBlackEmail : list) {
+
+            //判断公共询盘缓存的是否包含历史的黑名单数据
+            List<AdwebPublicBlackEmail> pubicEmailList = enquiryPublicBlackEmailService.list(new QueryWrapper<AdwebPublicBlackEmail>().eq("status", 1).eq("black_or_white", 0));
+            List<String> pubicBlackEmailList = pubicEmailList.stream().map(AdwebPublicBlackEmail::getEmail).collect(Collectors.toList());
+
+            List<String> publicBlackList = (List<String>) redisUtil.get(BlackEmailKey);
+
+            if (CollectionUtils.isNotEmpty(publicBlackList)) {
+                if (CollectionUtils.isNotEmpty(pubicBlackEmailList)) {
+                    publicBlackList.removeAll(pubicBlackEmailList);
+                } else {
+                    pubicBlackEmailList = new ArrayList<>();
+                }
+                for (int i = 0; i < publicBlackList.size(); i++) {
+                    String oldEmail = enquirySiteBlackEmail.getEmail();
+                    if (enquirySiteBlackEmail.getType().equals("0")) {
+                        oldEmail = "*" + oldEmail + "*";
+                    }
+                    if (oldEmail.equals(publicBlackList.get(i))) {
+                        publicBlackList.remove(i);
+                        break;
+                    }
+                }
+                pubicBlackEmailList.addAll(publicBlackList);
+                redisUtil.set(BlackEmailKey, pubicBlackEmailList, 60 * 60 * 24);
+            }
+
+            redisUtil.del(SiteEmailTenMinKey + enquirySiteBlackEmail.getSiteId() + "::" + enquirySiteBlackEmail.getEmail());
+            redisUtil.del(SiteEmailOneDayKey + enquirySiteBlackEmail.getSiteId() + "::" + enquirySiteBlackEmail.getEmail());
+            redisUtil.del(NotBlackEmailWasteSiteEnquiryKey + enquirySiteBlackEmail.getSiteId() + "::" + enquirySiteBlackEmail.getEmail());
+            siteList.add(enquirySiteBlackEmail.getSiteId());
+        }
+
+
+        for (Integer siteId : siteList) {
+            QueryWrapper<AdwebSiteBlackEmail> siteAllEmailQueryWrapper = new QueryWrapper<>();
+            siteAllEmailQueryWrapper.ne("status", 0);
+            siteAllEmailQueryWrapper.eq("site_id", siteId);
+            List<AdwebSiteBlackEmail> allEmailList = enquirySiteBlackEmailService.list(siteAllEmailQueryWrapper);
+            if (CollectionUtils.isEmpty(allEmailList)) {
+                log.info("未获取到对应站点的黑白名单数据");
+            }
+
+            List<String> emailList = new ArrayList<>();
+            List<String> whiteEmailList = new ArrayList<>();
+            if (CollectionUtils.isNotEmpty(allEmailList)) {
+                for (AdwebSiteBlackEmail enquirySiteBlackEmail : allEmailList) {
+                    if (enquirySiteBlackEmail.getBlackOrWhite() == 0) {
+                        if (enquirySiteBlackEmail.getType().equals("0")) {
+                            emailList.add("*" + enquirySiteBlackEmail.getEmail() + "*");
+                        } else {
+                            emailList.add(enquirySiteBlackEmail.getEmail());
+                        }
+                    } else {
+                        if (enquirySiteBlackEmail.getType().equals("0")) {
+                            whiteEmailList.add("*" + enquirySiteBlackEmail.getEmail() + "*");
+                        } else {
+                            whiteEmailList.add(enquirySiteBlackEmail.getEmail());
+                        }
+                    }
+                }
+            }
+            //处理对应站点的黑名单
+            if (CollectionUtils.isNotEmpty(emailList)) {
+                redisUtil.set(SiteBlackEmailKey + "::" + siteId, emailList, 60 * 60 * 24);
+            } else {
+                redisUtil.del(SiteBlackEmailKey + "::" + siteId);
+            }
+
+            //处理对应站点的白名单
+            if (CollectionUtils.isNotEmpty(whiteEmailList)) {
+                redisUtil.set(SiteWhiteEmailListKey + "::" + siteId, whiteEmailList, 60 * 60 * 24);
+            } else {
+                redisUtil.del(SiteWhiteEmailListKey + "::" + siteId);
+            }
+        }
+        return update ? Result.OK("批量删除成功!") : Result.error("批量删除失败!");
+    }
+
+    /**
+     * 通过id查询
+     *
+     * @param id
+     * @return
+     */
+    @AutoLog(value = "adweb_site_black_email-通过id查询")
+    @Operation(summary = "adweb_site_black_email-通过id查询")
+    @GetMapping(value = "/queryById")
+    public Result<?> queryById(@RequestParam(name = "id", required = true) String id) {
+        AdwebSiteBlackEmail enquirySiteBlackEmail = enquirySiteBlackEmailService.getById(id);
+        if (enquirySiteBlackEmail == null) {
+            return Result.error("未找到对应数据");
+        }
+        return Result.OK(enquirySiteBlackEmail);
+    }
+
+    /**
+     * 导出excel
+     *
+     * @param request
+     * @param enquirySiteBlackEmail
+     */
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, AdwebSiteBlackEmail enquirySiteBlackEmail) {
+        return super.exportXls(request, enquirySiteBlackEmail, AdwebSiteBlackEmail.class, "adweb_site_black_email");
+    }
+
+    /**
+     * 通过excel导入数据
+     *
+     * @param request
+     * @param response
+     * @return
+     */
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, AdwebSiteBlackEmail.class);
+    }
+
+}

+ 4 - 3
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/adweb/enquiry/mapper/AdwebSiteBlackEmailMapper.java

@@ -8,19 +8,20 @@ import org.jeecg.modules.adweb.enquiry.entity.AdwebSiteBlackEmail;
 import java.util.List;
 
 /**
- * @Description: enquiry_site_black_email
+ * @Description: adweb_site_black_email
  * @Author: jeecg-boot
- * @Date:   2023-06-28
+ * @Date: 2023-06-28
  * @Version: V1.0
  */
 public interface AdwebSiteBlackEmailMapper extends BaseMapper<AdwebSiteBlackEmail> {
 
     /**
      * 获取分页列表数据
+     *
      * @param page
      * @param enquirySiteBlackEmail
      * @param codeList
      * @return
      */
-    IPage<AdwebSiteBlackEmail> getPageList(Page<AdwebSiteBlackEmail> page, AdwebSiteBlackEmail enquirySiteBlackEmail, List<String> codeList,String column,String order);
+    IPage<AdwebSiteBlackEmail> getPageList(Page<AdwebSiteBlackEmail> page, AdwebSiteBlackEmail enquirySiteBlackEmail, List<String> codeList, String column, String order);
 }

+ 2 - 2
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/adweb/enquiry/mapper/xml/AdwebSiteBlackEmailMapper.xml

@@ -4,7 +4,7 @@
 
     <select id="getPageList" resultType="org.jeecg.modules.adweb.enquiry.entity.AdwebSiteBlackEmail">
         SELECT t1.*,t2.`name` siteName,t3.num wasteEnquiryNum,t4.num wasteGeneralEnquiryNum
-        FROM enquiry_site_black_email t1
+        FROM adweb_site_black_email t1
         LEFT JOIN (SELECT from_email, COUNT(*) num, site_id
         FROM `adweb_enquiry`
         WHERE `status` = 1
@@ -14,7 +14,7 @@
         GROUP BY from_email) t3
         ON t1.email = t3.from_email AND t1.site_id = t3.site_id
         LEFT JOIN (
-        SELECT t1.email,SUM(t2.num) num,t1.site_id FROM enquiry_site_black_email t1
+        SELECT t1.email,SUM(t2.num) num,t1.site_id FROM adweb_site_black_email t1
         LEFT JOIN (SELECT from_email, COUNT(*) num, site_id
         FROM `adweb_enquiry`
         WHERE `status` = 1

+ 6 - 4
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/adweb/enquiry/service/IAdwebSiteBlackEmailService.java

@@ -10,16 +10,16 @@ import java.util.List;
 import java.util.Map;
 
 /**
- * @Description: enquiry_site_black_email
+ * @Description: adweb_site_black_email
  * @Author: jeecg-boot
- * @Date:   2023-06-28
+ * @Date: 2023-06-28
  * @Version: V1.0
  */
 public interface IAdwebSiteBlackEmailService extends IService<AdwebSiteBlackEmail> {
     /**
      * 根据站点id获取并存取黑名单数据到redis
      */
-    void saveRedisSiteBlackEmailBySiteId(Integer siteId,Integer blackOrWhite);
+    void saveRedisSiteBlackEmailBySiteId(Integer siteId, Integer blackOrWhite);
 
     /**
      * 根据站点id获取对应所有的黑白名单数据
@@ -28,15 +28,17 @@ public interface IAdwebSiteBlackEmailService extends IService<AdwebSiteBlackEmai
 
     /**
      * 获取分页列表数据
+     *
      * @param page
      * @param enquirySiteBlackEmail
      * @param codeList
      * @return
      */
-    IPage<AdwebSiteBlackEmail> pageList(Page<AdwebSiteBlackEmail> page, AdwebSiteBlackEmail enquirySiteBlackEmail, List<String> codeList,String column,String order);
+    IPage<AdwebSiteBlackEmail> pageList(Page<AdwebSiteBlackEmail> page, AdwebSiteBlackEmail enquirySiteBlackEmail, List<String> codeList, String column, String order);
 
     /**
      * 更改为垃圾询盘处理邮箱黑名单
+     *
      * @param effectiveEnquiryParamDto
      */
     void addBlackEmailByContent(EffectiveEnquiryParamDto effectiveEnquiryParamDto);

+ 35 - 35
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/adweb/enquiry/service/impl/AdwebSiteBlackEmailServiceImpl.java

@@ -4,9 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-
 import jakarta.annotation.Resource;
-
 import org.apache.commons.collections4.CollectionUtils;
 import org.jeecg.common.util.RedisUtil;
 import org.jeecg.modules.adweb.enquiry.dto.param.EffectiveEnquiryParamDto;
@@ -18,9 +16,9 @@ import org.springframework.stereotype.Service;
 import java.util.*;
 
 /**
- * @Description: enquiry_site_black_email
+ * @Description: adweb_site_black_email
  * @Author: jeecg-boot
- * @Date:   2023-06-28
+ * @Date: 2023-06-28
  * @Version: V1.0
  */
 @Service
@@ -41,37 +39,37 @@ public class AdwebSiteBlackEmailServiceImpl extends ServiceImpl<AdwebSiteBlackEm
      * 根据站点id获取并存取黑名单数据到redis
      */
     @Override
-    public void saveRedisSiteBlackEmailBySiteId(Integer siteId,Integer blackOrWhite){
+    public void saveRedisSiteBlackEmailBySiteId(Integer siteId, Integer blackOrWhite) {
         QueryWrapper<AdwebSiteBlackEmail> siteAllEmailQueryWrapper = new QueryWrapper<>();
         siteAllEmailQueryWrapper.ne("status", 0);
         siteAllEmailQueryWrapper.eq("site_id", siteId);
         siteAllEmailQueryWrapper.eq("black_or_white", blackOrWhite);
         List<AdwebSiteBlackEmail> allEmailList = list(siteAllEmailQueryWrapper);
-        if(CollectionUtils.isEmpty(allEmailList)){
+        if (CollectionUtils.isEmpty(allEmailList)) {
             log.warn("未获取到对应站点的名单数据");
         }
 
         List<String> emailList = new ArrayList<>();
-        if(CollectionUtils.isNotEmpty(allEmailList)){
-            for (AdwebSiteBlackEmail enquirySiteBlackEmail1 : allEmailList){
-                if(enquirySiteBlackEmail1.getType().equals("0")){
+        if (CollectionUtils.isNotEmpty(allEmailList)) {
+            for (AdwebSiteBlackEmail enquirySiteBlackEmail1 : allEmailList) {
+                if (enquirySiteBlackEmail1.getType().equals("0")) {
                     emailList.add("*" + enquirySiteBlackEmail1.getEmail() + "*");
-                }else{
+                } else {
                     emailList.add(enquirySiteBlackEmail1.getEmail());
                 }
             }
         }
         //处理对应站点的黑名单
-        if(blackOrWhite == 0){
+        if (blackOrWhite == 0) {
             if (CollectionUtils.isNotEmpty(emailList)) {
                 redisUtil.set(SiteBlackEmailKey + "::" + siteId, emailList, 60 * 60 * 24);
-            }else {
+            } else {
                 redisUtil.del(SiteBlackEmailKey + "::" + siteId);
             }
-        }else{
+        } else {
             if (CollectionUtils.isNotEmpty(emailList)) {
                 redisUtil.set(SiteWhiteEmailListKey + "::" + siteId, emailList, 60 * 60 * 24);
-            }else {
+            } else {
                 redisUtil.del(SiteWhiteEmailListKey + "::" + siteId);
             }
         }
@@ -82,29 +80,29 @@ public class AdwebSiteBlackEmailServiceImpl extends ServiceImpl<AdwebSiteBlackEm
      * 根据站点id获取对应所有的黑白名单数据
      */
     @Override
-    public Map<String, List<String>> getSiteBlackEmailListBySiteId(Integer siteId){
+    public Map<String, List<String>> getSiteBlackEmailListBySiteId(Integer siteId) {
         QueryWrapper<AdwebSiteBlackEmail> siteAllEmailQueryWrapper = new QueryWrapper<>();
         siteAllEmailQueryWrapper.ne("status", 0);
         siteAllEmailQueryWrapper.eq("site_id", siteId);
         List<AdwebSiteBlackEmail> allEmailList = list(siteAllEmailQueryWrapper);
-        if(CollectionUtils.isEmpty(allEmailList)){
+        if (CollectionUtils.isEmpty(allEmailList)) {
             log.warn("未获取到对应站点的黑白名单数据");
         }
 
         List<String> emailList = new ArrayList<>();
         List<String> whiteEmailList = new ArrayList<>();
-        if(CollectionUtils.isNotEmpty(allEmailList)){
-            for (AdwebSiteBlackEmail enquirySiteBlackEmail1 : allEmailList){
-                if(enquirySiteBlackEmail1.getBlackOrWhite() == 0){
-                    if(enquirySiteBlackEmail1.getType().equals("0")){
+        if (CollectionUtils.isNotEmpty(allEmailList)) {
+            for (AdwebSiteBlackEmail enquirySiteBlackEmail1 : allEmailList) {
+                if (enquirySiteBlackEmail1.getBlackOrWhite() == 0) {
+                    if (enquirySiteBlackEmail1.getType().equals("0")) {
                         emailList.add("*" + enquirySiteBlackEmail1.getEmail() + "*");
-                    }else{
+                    } else {
                         emailList.add(enquirySiteBlackEmail1.getEmail());
                     }
-                }else{
-                    if(enquirySiteBlackEmail1.getType().equals("0")){
+                } else {
+                    if (enquirySiteBlackEmail1.getType().equals("0")) {
                         whiteEmailList.add("*" + enquirySiteBlackEmail1.getEmail() + "*");
-                    }else{
+                    } else {
                         whiteEmailList.add(enquirySiteBlackEmail1.getEmail());
                     }
                 }
@@ -112,29 +110,31 @@ public class AdwebSiteBlackEmailServiceImpl extends ServiceImpl<AdwebSiteBlackEm
         }
 
         Map<String, List<String>> enquirySiteBlackEmailMap = new HashMap<>();
-        enquirySiteBlackEmailMap.put("black",emailList);
+        enquirySiteBlackEmailMap.put("black", emailList);
         enquirySiteBlackEmailMap.put("white", whiteEmailList);
         return enquirySiteBlackEmailMap;
     }
 
     /**
      * 获取分页列表数据
+     *
      * @param page
      * @param enquirySiteBlackEmail
      * @param codeList
      * @return
      */
     @Override
-    public IPage<AdwebSiteBlackEmail> pageList(Page<AdwebSiteBlackEmail> page, AdwebSiteBlackEmail enquirySiteBlackEmail, List<String> codeList,String column,String order){
+    public IPage<AdwebSiteBlackEmail> pageList(Page<AdwebSiteBlackEmail> page, AdwebSiteBlackEmail enquirySiteBlackEmail, List<String> codeList, String column, String order) {
         return enquirySiteBlackEmailMapper.getPageList(page, enquirySiteBlackEmail, codeList, column, order);
     }
 
     /**
      * 更改为垃圾询盘处理邮箱黑名单
+     *
      * @param effectiveEnquiryParamDto
      */
     @Override
-    public void addBlackEmailByContent(EffectiveEnquiryParamDto effectiveEnquiryParamDto){
+    public void addBlackEmailByContent(EffectiveEnquiryParamDto effectiveEnquiryParamDto) {
         //排查添加的邮箱是否已有
         QueryWrapper<AdwebSiteBlackEmail> enquirySiteBlackEmailQueryWrapper = new QueryWrapper<>();
         enquirySiteBlackEmailQueryWrapper.eq("email", effectiveEnquiryParamDto.getWasteEnquirySeason());
@@ -142,11 +142,11 @@ public class AdwebSiteBlackEmailServiceImpl extends ServiceImpl<AdwebSiteBlackEm
         enquirySiteBlackEmailQueryWrapper.eq("site_code", effectiveEnquiryParamDto.getSiteCode());
         enquirySiteBlackEmailQueryWrapper.eq("status", 1);
         List<AdwebSiteBlackEmail> enquirySiteBlackEmailList = list(enquirySiteBlackEmailQueryWrapper);
-        if(CollectionUtils.isNotEmpty(enquirySiteBlackEmailList)){
+        if (CollectionUtils.isNotEmpty(enquirySiteBlackEmailList)) {
             //如果有白名单 先删除原数据,后添加新的黑名单数据
-            for(AdwebSiteBlackEmail enquirySiteBlackEmail : enquirySiteBlackEmailList){
-                if(enquirySiteBlackEmail.getBlackOrWhite() == 1){
-                    if(enquirySiteBlackEmail.getType().equals("1")){
+            for (AdwebSiteBlackEmail enquirySiteBlackEmail : enquirySiteBlackEmailList) {
+                if (enquirySiteBlackEmail.getBlackOrWhite() == 1) {
+                    if (enquirySiteBlackEmail.getType().equals("1")) {
                         enquirySiteBlackEmail.setStatus(0);
                         enquirySiteBlackEmail.setUpdateTime(new Date());
                         updateById(enquirySiteBlackEmail);
@@ -163,7 +163,7 @@ public class AdwebSiteBlackEmailServiceImpl extends ServiceImpl<AdwebSiteBlackEm
                     save(newEnquirySiteBlackEmail);
                 }
             }
-        }else{
+        } else {
             AdwebSiteBlackEmail enquirySiteBlackEmail = new AdwebSiteBlackEmail();
             enquirySiteBlackEmail.setEmail(effectiveEnquiryParamDto.getWasteEnquirySeason());
             enquirySiteBlackEmail.setType("1");
@@ -176,21 +176,21 @@ public class AdwebSiteBlackEmailServiceImpl extends ServiceImpl<AdwebSiteBlackEm
         }
 
         //重新处理站点的黑名单redis缓存
-        Map<String,List<String>> enquirySiteBlackEmailListMap = getSiteBlackEmailListBySiteId(effectiveEnquiryParamDto.getSiteId());
+        Map<String, List<String>> enquirySiteBlackEmailListMap = getSiteBlackEmailListBySiteId(effectiveEnquiryParamDto.getSiteId());
         List<String> emailList = enquirySiteBlackEmailListMap.get("black");
         List<String> whiteEmailList = enquirySiteBlackEmailListMap.get("white");
 
         //处理对应站点的黑名单
         if (CollectionUtils.isNotEmpty(emailList)) {
             redisUtil.set(SiteBlackEmailKey + "::" + effectiveEnquiryParamDto.getSiteId(), emailList, 60 * 60 * 24);
-        }else {
+        } else {
             redisUtil.del(SiteBlackEmailKey + "::" + effectiveEnquiryParamDto.getSiteId());
         }
 
         //处理对应站点的白名单
         if (CollectionUtils.isNotEmpty(whiteEmailList)) {
             redisUtil.set(SiteWhiteEmailListKey + "::" + effectiveEnquiryParamDto.getSiteId(), whiteEmailList, 60 * 60 * 24);
-        }else {
+        } else {
             redisUtil.del(SiteWhiteEmailListKey + "::" + effectiveEnquiryParamDto.getSiteId());
         }
     }