|
@@ -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);
|
|
|
+ }
|
|
|
+
|
|
|
+}
|