反垃圾邮件系统|基于Springboot+vue 实现反垃圾邮件系统(一)https://developer.aliyun.com/article/1423308
四,核心代码展示
package com.javaclimb.music.controller;/** * @Project_name: Mucic * @PACKAGE_NAME: com.javaclimb.mucic.controller * @description: tmx **/ import com.alibaba.fastjson.JSONObject; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import com.javaclimb.music.bean.Friends; import com.javaclimb.music.bean.Mails; import com.javaclimb.music.service.FriendsService; import com.javaclimb.music.service.MailsService; import com.javaclimb.music.utils.Consts; import org.apache.ibatis.annotations.Param; import org.springframework.dao.DuplicateKeyException; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @Project_name: Mucic * @PACKAGE_NAME: com.javaclimb.mucic.controller * @author: 詹姆斯 * @create: 2021-10-10 01:48 * @description: tmx * **/ @RestController @RequestMapping("/friends") public class FriendsController { @Resource private FriendsService friendsService; @Resource private MailsService mailsService; /** * 新增 * @param * @return */ @RequestMapping(value = "/insert",method = RequestMethod.POST) public Object insert(@Param("id") Integer id ,@Param("em") String em) { JSONObject jsonObject = new JSONObject(); int i=0; int selecta1 = mailsService.selecta(em); if(selecta1==0){ jsonObject.put(Consts.CODE, 500); jsonObject.put(Consts.MSG, "没有此用户"); return jsonObject; } Integer friendId = mailsService.select(em); int i1 = friendsService.selectTmx(id, friendId); if(i1>0){ jsonObject.put(Consts.CODE, 500); jsonObject.put(Consts.MSG, "和该好友已经申请过了"); return jsonObject; } Friends friends =new Friends(); friends.setUserId(id); friends.setFriendId(friendId); i = friendsService.insert(friends); if(i!=0) { jsonObject.put(Consts.CODE, 1); jsonObject.put(Consts.MSG, "发送申请成功"); return jsonObject; } jsonObject.put(Consts.CODE, 0); jsonObject.put(Consts.MSG, "发送申请失败"); return jsonObject; } /** * 修改 */ @RequestMapping(value = "/update",method = RequestMethod.PUT) public Object updateFriends(@RequestBody Friends friends){ JSONObject jsonObject =new JSONObject(); if (friends.getIsBlack()!=null){ if (friends.getIsBlack() == true) { friends.setIsWhite(false); } } int flag= friendsService.updateByPrimaryKeySelective(friends); if(flag!=0){ jsonObject.put(Consts.CODE, 1); jsonObject.put(Consts.MSG, "修改成功"); return jsonObject; } else { jsonObject.put(Consts.CODE, 0); jsonObject.put(Consts.MSG, "修改失败"); return jsonObject; } } /** * 修改 */ @RequestMapping(value = "/upFriend",method = RequestMethod.PUT) public Object upFriend(@RequestParam int id){ System.out.println(id); JSONObject jsonObject =new JSONObject(); int flag= friendsService.upFriend(id); Friends friends = friendsService.sId(id); Integer userId = friends.getUser().getId(); System.out.println("userId是"+userId); Integer friendId = friends.getFriend().getId(); Friends friends1 = new Friends(); friends1.setUserId(friendId); friends1.setFriendId(userId); friends1.setIsFriend(true); friendsService.insert(friends1); if(flag!=0){ jsonObject.put(Consts.CODE, 1); jsonObject.put(Consts.MSG, "通过好友申请"); return jsonObject; } else { jsonObject.put(Consts.CODE, 0); jsonObject.put(Consts.MSG, "失败"); return jsonObject; } } /** * 删除 */ @RequestMapping(value = "/delete",method = RequestMethod.DELETE) public Object deleteFriends(@RequestParam Integer id){ int flag= friendsService.deleteByPrimaryKey(id); JSONObject jsonObject = new JSONObject(); if (flag==1) { jsonObject.put(Consts.CODE, 1); jsonObject.put(Consts.MSG, "删除成功"); return jsonObject; } else { jsonObject.put(Consts.CODE, 0); jsonObject.put(Consts.MSG, "删除失败"); return jsonObject; } } /** * 根据主键取对象 */ @RequestMapping(value = "/selectByPrimarykey",method = RequestMethod.GET) public Object selectByPrimarykey(@RequestParam int id){ JSONObject jsonObject = new JSONObject(); Friends friends = friendsService.selectByPrimaryKey(id); if(friends.getRemarks()==null){ friends.setRemarks(""); } if (friends !=null) { jsonObject.put(Consts.CODE, 1); jsonObject.put(Consts.MSG, "成功"); jsonObject.put(Consts.DATA, friends); return jsonObject; } jsonObject.put(Consts.CODE, 0); jsonObject.put(Consts.MSG, "获取失败"); return jsonObject; } /** * 根据主键取申请记录 */ @RequestMapping(value = "/selectByAllId",method = RequestMethod.GET) public Object selectByAllId(@RequestParam int id){ JSONObject jsonObject = new JSONObject(); Friends friends = friendsService.selectByAllId(id); if(friends.getRemarks()==null){ friends.setRemarks(""); } if (friends !=null) { jsonObject.put(Consts.CODE, 1); jsonObject.put(Consts.MSG, "成功"); jsonObject.put(Consts.DATA, friends); return jsonObject; } jsonObject.put(Consts.CODE, 0); jsonObject.put(Consts.MSG, "获取失败"); return jsonObject; } /**. * 获取全部数据 * @param Pages * @param pageSize * @return */ @RequestMapping(value = "/selectAll",method = RequestMethod.GET) public Map<String, Object> selectAll(@RequestParam int Pages,int pageSize) { JSONObject jsonObject = new JSONObject(); Map<String, Object> result = new HashMap<>(); // 设置分页,1代表第一页,5代表这一页有五条数据 Page<Friends> page = PageHelper.startPage(Pages, pageSize); List<Friends> friends = friendsService.selectAll(); result.put("total", page.getTotal()); result.put("pageNo", page.getPageNum()); result.put("pages", page.getPages()); result.put("pageSize", page.getPageSize()); result.put("rows", page.getResult()); if (friends !=null) { jsonObject.put(Consts.CODE, 1); jsonObject.put(Consts.MSG, "成功"); jsonObject.put(Consts.DATA,result); return jsonObject; } jsonObject.put(Consts.CODE, 0); jsonObject.put(Consts.MSG, "获取失败"); return jsonObject; } /** * 根据用户id获取所有好友 */ @RequestMapping(value = "/selectAllUserId",method = RequestMethod.GET) public Object selectAllUserId(@RequestParam int Pages,int pageSize,Integer id) { JSONObject jsonObject = new JSONObject(); Map<String, Object> result = new HashMap<>(); // 设置分页,1代表第一页,5代表这一页有五条数据 Page<Friends> page = PageHelper.startPage(Pages, pageSize); List<Friends> mails = friendsService.selectAllUserId(id); for(Friends friends:mails){ if(friends.getRemarks()==null){ friends.setRemarks(""); } } result.put("total", page.getTotal()); result.put("pageNo", page.getPageNum()); result.put("pages", page.getPages()); result.put("pageSize", page.getPageSize()); result.put("rows", page.getResult()); if (page.getResult()!=null) { jsonObject.put(Consts.CODE, 1); jsonObject.put(Consts.MSG, "成功"); jsonObject.put(Consts.DATA,result); return jsonObject; } else if(page.getResult()==null){ jsonObject.put(Consts.CODE, 0); jsonObject.put(Consts.MSG, "没值"); return jsonObject; } jsonObject.put(Consts.CODE, 0); jsonObject.put(Consts.MSG, "获取失败"); return jsonObject; } /** * 根据用户id获取所有好友模糊 */ @RequestMapping(value = "/selectAllUserIdLike",method = RequestMethod.GET) public Object selectAllUserIdLike(@RequestParam int Pages,int pageSize,Integer id,String friendEmail) { JSONObject jsonObject = new JSONObject(); Map<String, Object> result = new HashMap<>(); // 设置分页,1代表第一页,5代表这一页有五条数据 Page<Friends> page = PageHelper.startPage(Pages, pageSize); List<Friends> mails = friendsService.selectAllUserIdLike(id,friendEmail); for(Friends friends:mails){ if(friends.getRemarks()==null){ friends.setRemarks(""); } } result.put("total", page.getTotal()); result.put("pageNo", page.getPageNum()); result.put("pages", page.getPages()); result.put("pageSize", page.getPageSize()); result.put("rows", page.getResult()); if (page.getResult()!=null) { jsonObject.put(Consts.CODE, 1); jsonObject.put(Consts.MSG, "成功"); jsonObject.put(Consts.DATA,result); return jsonObject; } else if(page.getResult()==null){ jsonObject.put(Consts.CODE, 0); jsonObject.put(Consts.MSG, "没值"); return jsonObject; } jsonObject.put(Consts.CODE, 0); jsonObject.put(Consts.MSG, "获取失败"); return jsonObject; } /** * 根据用户id获取所有黑名单模糊 */ @RequestMapping(value = "/selectAllBlackLike",method = RequestMethod.GET) public Object selectAllBlackLike(@RequestParam int Pages,int pageSize,Integer id,String friendEmail) { JSONObject jsonObject = new JSONObject(); Map<String, Object> result = new HashMap<>(); // 设置分页,1代表第一页,5代表这一页有五条数据 Page<Friends> page = PageHelper.startPage(Pages, pageSize); List<Friends> mails = friendsService.selectAllBlackLike(id,friendEmail); for(Friends friends:mails){ if(friends.getRemarks()==null){ friends.setRemarks(""); } } result.put("total", page.getTotal()); result.put("pageNo", page.getPageNum()); result.put("pages", page.getPages()); result.put("pageSize", page.getPageSize()); result.put("rows", page.getResult()); if (page.getResult()!=null) { jsonObject.put(Consts.CODE, 1); jsonObject.put(Consts.MSG, "成功"); jsonObject.put(Consts.DATA,result); return jsonObject; } else if(page.getResult()==null){ jsonObject.put(Consts.CODE, 0); jsonObject.put(Consts.MSG, "没值"); return jsonObject; } jsonObject.put(Consts.CODE, 0); jsonObject.put(Consts.MSG, "获取失败"); return jsonObject; } /** * 根据用户id获取所有白名单模糊 */ @RequestMapping(value = "/selectAllWhiteLike",method = RequestMethod.GET) public Object selectAllWhiteLike(@RequestParam int Pages,int pageSize,Integer id,String friendEmail) { JSONObject jsonObject = new JSONObject(); Map<String, Object> result = new HashMap<>(); // 设置分页,1代表第一页,5代表这一页有五条数据 Page<Friends> page = PageHelper.startPage(Pages, pageSize); List<Friends> mails = friendsService.selectAllWhiteLike(id,friendEmail); for(Friends friends:mails){ if(friends.getRemarks()==null){ friends.setRemarks(""); } } result.put("total", page.getTotal()); result.put("pageNo", page.getPageNum()); result.put("pages", page.getPages()); result.put("pageSize", page.getPageSize()); result.put("rows", page.getResult()); if (page.getResult()!=null) { jsonObject.put(Consts.CODE, 1); jsonObject.put(Consts.MSG, "成功"); jsonObject.put(Consts.DATA,result); return jsonObject; } else if(page.getResult()==null){ jsonObject.put(Consts.CODE, 0); jsonObject.put(Consts.MSG, "没值"); return jsonObject; } jsonObject.put(Consts.CODE, 0); jsonObject.put(Consts.MSG, "获取失败"); return jsonObject; } /** * 根据用户id获取所有黑名单 */ @RequestMapping(value = "/selectAllBlack",method = RequestMethod.GET) public Object selectAllBlack(@RequestParam int Pages,int pageSize,Integer id) { JSONObject jsonObject = new JSONObject(); Map<String, Object> result = new HashMap<>(); // 设置分页,1代表第一页,5代表这一页有五条数据 Page<Friends> page = PageHelper.startPage(Pages, pageSize); List<Friends> mails = friendsService.selectAllBlack(id); for(Friends friends:mails){ if(friends.getRemarks()==null){ friends.setRemarks(""); } } result.put("total", page.getTotal()); result.put("pageNo", page.getPageNum()); result.put("pages", page.getPages()); result.put("pageSize", page.getPageSize()); result.put("rows", page.getResult()); if (page.getResult()!=null) { jsonObject.put(Consts.CODE, 1); jsonObject.put(Consts.MSG, "成功"); jsonObject.put(Consts.DATA,result); return jsonObject; } else if(page.getResult()==null){ jsonObject.put(Consts.CODE, 0); jsonObject.put(Consts.MSG, "没值"); return jsonObject; } jsonObject.put(Consts.CODE, 0); jsonObject.put(Consts.MSG, "获取失败"); return jsonObject; } /** * 根据用户id获取所有白名单 */ @RequestMapping(value = "/selectAllWhite",method = RequestMethod.GET) public Object selectAllWhite(@RequestParam int Pages,int pageSize,Integer id) { JSONObject jsonObject = new JSONObject(); Map<String, Object> result = new HashMap<>(); // 设置分页,1代表第一页,5代表这一页有五条数据 Page<Friends> page = PageHelper.startPage(Pages, pageSize); List<Friends> mails = friendsService.selectAllWhite(id); for(Friends friends:mails){ if(friends.getRemarks()==null){ friends.setRemarks(""); } } result.put("total", page.getTotal()); result.put("pageNo", page.getPageNum()); result.put("pages", page.getPages()); result.put("pageSize", page.getPageSize()); result.put("rows", page.getResult()); if (page.getResult()!=null) { jsonObject.put(Consts.CODE, 1); jsonObject.put(Consts.MSG, "成功"); jsonObject.put(Consts.DATA,result); return jsonObject; } else if(page.getResult()==null){ jsonObject.put(Consts.CODE, 0); jsonObject.put(Consts.MSG, "没值"); return jsonObject; } jsonObject.put(Consts.CODE, 0); jsonObject.put(Consts.MSG, "获取失败"); return jsonObject; } /** * 根据用户id获取所有白名单 */ @RequestMapping(value = "/selectByAll",method = RequestMethod.GET) public Object selectByAll(@RequestParam int Pages,int pageSize,Integer id) { JSONObject jsonObject = new JSONObject(); Map<String, Object> result = new HashMap<>(); // 设置分页,1代表第一页,5代表这一页有五条数据 Page<Friends> page = PageHelper.startPage(Pages, pageSize); List<Friends> mails = friendsService.selectByAll(id); result.put("total", page.getTotal()); result.put("pageNo", page.getPageNum()); result.put("pages", page.getPages()); result.put("pageSize", page.getPageSize()); result.put("rows", page.getResult()); if (page.getResult()!=null) { jsonObject.put(Consts.CODE, 1); jsonObject.put(Consts.MSG, "成功"); jsonObject.put(Consts.DATA,result); return jsonObject; } else if(page.getResult()==null){ jsonObject.put(Consts.CODE, 0); jsonObject.put(Consts.MSG, "没值"); return jsonObject; } jsonObject.put(Consts.CODE, 0); jsonObject.put(Consts.MSG, "获取失败"); return jsonObject; } }
package com.javaclimb.music.controller;/** * @Project_name: Mucic * @PACKAGE_NAME: com.javaclimb.mucic.controller * @description: tmx **/ import com.alibaba.fastjson.JSONObject; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import com.javaclimb.music.bean.KeyWord; import com.javaclimb.music.service.KeyWordService; import com.javaclimb.music.utils.Consts; import com.javaclimb.music.utils.JsonUtil; import com.javaclimb.music.utils.ReadPropertiesUtil; import org.apache.ibatis.annotations.Param; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import java.io.File; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @Project_name: Mucic * @PACKAGE_NAME: com.javaclimb.mucic.controller * @author: 詹姆斯 * @create: 2021-10-10 01:48 * @description: tmx **/ @RestController @RequestMapping("/keyWord") public class KeyWordController { @Resource private KeyWordService keyWordService; @RequestMapping(value = "/registerKeyWord", method = RequestMethod.POST) public Object registerKeyWord(@Param("key") String key) { JSONObject jsonObject = new JSONObject(); int i = keyWordService.insert(key); if (i != 0) { jsonObject.put(Consts.CODE, 1); jsonObject.put(Consts.MSG, "添加成功"); return jsonObject; } else { jsonObject.put(Consts.CODE, 0); jsonObject.put(Consts.MSG, "添加失败"); return jsonObject; } } /** * 修改 */ @RequestMapping(value = "/update", method = RequestMethod.PUT) public Object updateKeyWord(@Param("key") String key,@Param("id") Integer id ) { JSONObject jsonObject = new JSONObject(); int flag = keyWordService.updateByPrimaryKeySelective(key,id); if (flag != 0) { jsonObject.put(Consts.CODE, 1); jsonObject.put(Consts.MSG, "修改成功"); return jsonObject; } else { jsonObject.put(Consts.CODE, 0); jsonObject.put(Consts.MSG, "修改失败"); return jsonObject; } } /** * 删除 */ @RequestMapping(value = "/delete", method = RequestMethod.DELETE) public Object deleteKeyWord(@RequestParam Integer id) { int flag = keyWordService.deleteByPrimaryKey(id); JSONObject jsonObject = new JSONObject(); if (flag == 1) { jsonObject.put(Consts.CODE, 1); jsonObject.put(Consts.MSG, "删除成功"); return jsonObject; } else { jsonObject.put(Consts.CODE, 0); jsonObject.put(Consts.MSG, "删除失败"); return jsonObject; } } /** * 根据主键取对象 */ @RequestMapping(value = "/selectByPrimarykey", method = RequestMethod.GET) public Object selectByPrimarykey(@RequestParam int id) { JSONObject jsonObject = new JSONObject(); KeyWord keyWord = keyWordService.selectByPrimaryKey(id); if (keyWord != null) { jsonObject.put(Consts.CODE, 1); jsonObject.put(Consts.MSG, "成功"); jsonObject.put(Consts.DATA, keyWord); return jsonObject; } jsonObject.put(Consts.CODE, 0); jsonObject.put(Consts.MSG, "获取失败"); return jsonObject; } // 分页,利用page获取分页信息,然后封装map @RequestMapping(value = "/selectAll", method = RequestMethod.GET) public Map<String, Object> selectAll(@RequestParam int Pages, int pageSize) { JSONObject jsonObject = new JSONObject(); Map<String, Object> result = new HashMap<>(); // 设置分页,1代表第一页,5代表这一页有五条数据 Page<KeyWord> page = PageHelper.startPage(Pages, pageSize); List<KeyWord> keyWord = keyWordService.selectAll(); result.put("total", page.getTotal()); result.put("pageNo", page.getPageNum()); result.put("pages", page.getPages()); result.put("pageSize", page.getPageSize()); result.put("rows", page.getResult()); if (keyWord != null) { jsonObject.put(Consts.CODE, 1); jsonObject.put(Consts.MSG, "成功"); jsonObject.put(Consts.DATA, result); return jsonObject; } jsonObject.put(Consts.CODE, 0); jsonObject.put(Consts.MSG, "获取失败"); return jsonObject; } // 分页,利用page获取分页信息,然后封装map @RequestMapping(value = "/selectAlll", method = RequestMethod.GET) public Map<String, Object> selectAlll(@RequestParam int Pages, int pageSize,String key) { JSONObject jsonObject = new JSONObject(); Map<String, Object> result = new HashMap<>(); // 设置分页,1代表第一页,5代表这一页有五条数据 Page<KeyWord> page = PageHelper.startPage(Pages, pageSize); List<KeyWord> keyWord = keyWordService.selectAlll(key); result.put("total", page.getTotal()); result.put("pageNo", page.getPageNum()); result.put("pages", page.getPages()); result.put("pageSize", page.getPageSize()); result.put("rows", page.getResult()); if (keyWord != null) { jsonObject.put(Consts.CODE, 1); jsonObject.put(Consts.MSG, "成功"); jsonObject.put(Consts.DATA, result); return jsonObject; } jsonObject.put(Consts.CODE, 0); jsonObject.put(Consts.MSG, "获取失败"); return jsonObject; } }
五,项目总结
在上个月刚刚结束的互联网会议上,信息产业部电信管理局副局长陈家春表示,一些国际机构将中国评为2021全球垃圾邮件控制成效最显著的国家。目前,我们面临的挑战是,垃圾邮件信息不再满足于仅通过电子邮件传播。手机短信、电话传真和即时消息正在成为垃圾信息的传播载体。在更加动荡的形势下,垃圾邮件信息干扰了人们的正常生活和网络秩序。因此,有关部门应进一步加强对网络垃圾信息的综合治理。调查显示,中国用户收到垃圾邮件的比例仍然最高,达到50%以上,其次是英语30.9%,繁体中文第三,占9.5%。从这些统计数据可以看出,垃圾邮件的主要来源仍然来自中国,这是我们在反垃圾邮件中应该注意的主要领域。同时,该系统计划开发后投入运行,为反垃圾邮件工作提供了基本的技术保障。该平台可以实时更新垃圾邮件IP地址的“黑名单”,分析当前国内垃圾邮件传播情况,为反垃圾邮件工作提供基础数据。实时黑名单服务提高了黑名单数据的及时性。它可以在垃圾邮件源爆发的第一时间为用户提供查询服务,从而更及时地防止垃圾邮件入侵。据统计,实时黑名单每日查询次数已达20万次,查询速度约为4次/秒,“命中率”为65.97%。