Search in sources :

Example 1 with Link

use of com.moxi.mogublog.commons.entity.Link in project mogu_blog_v2 by moxi624.

the class LinkServiceImpl method addLinkCount.

@Override
public String addLinkCount(String uid) {
    if (StringUtils.isEmpty(uid)) {
        return ResultUtil.errorWithMessage(MessageConf.PARAM_INCORRECT);
    }
    Link link = linkService.getById(uid);
    if (link != null) {
        int count = link.getClickCount() + 1;
        link.setClickCount(count);
        link.updateById();
    } else {
        return ResultUtil.errorWithMessage(MessageConf.PARAM_INCORRECT);
    }
    return ResultUtil.successWithMessage(MessageConf.UPDATE_SUCCESS);
}
Also used : Link(com.moxi.mogublog.commons.entity.Link)

Example 2 with Link

use of com.moxi.mogublog.commons.entity.Link in project mogu_blog_v2 by moxi624.

the class LinkServiceImpl method getPageList.

@Override
public IPage<Link> getPageList(LinkVO linkVO) {
    QueryWrapper<Link> queryWrapper = new QueryWrapper<>();
    if (StringUtils.isNotEmpty(linkVO.getKeyword()) && !StringUtils.isEmpty(linkVO.getKeyword().trim())) {
        queryWrapper.like(SQLConf.TITLE, linkVO.getKeyword().trim());
    }
    if (linkVO.getLinkStatus() != null) {
        queryWrapper.eq(SQLConf.LINK_STATUS, linkVO.getLinkStatus());
    }
    if (StringUtils.isNotEmpty(linkVO.getOrderByAscColumn())) {
        String column = StringUtils.underLine(new StringBuffer(linkVO.getOrderByAscColumn())).toString();
        queryWrapper.orderByAsc(column);
    } else if (StringUtils.isNotEmpty(linkVO.getOrderByDescColumn())) {
        String column = StringUtils.underLine(new StringBuffer(linkVO.getOrderByDescColumn())).toString();
        queryWrapper.orderByDesc(column);
    } else {
        queryWrapper.orderByDesc(SQLConf.SORT);
    }
    Page<Link> page = new Page<>();
    page.setCurrent(linkVO.getCurrentPage());
    page.setSize(linkVO.getPageSize());
    queryWrapper.eq(SQLConf.STATUS, EStatus.ENABLE);
    IPage<Link> pageList = linkService.page(page, queryWrapper);
    List<Link> linkList = pageList.getRecords();
    final StringBuffer fileUids = new StringBuffer();
    // 给友情链接添加图片
    linkList.forEach(item -> {
        if (StringUtils.isNotEmpty(item.getFileUid())) {
            fileUids.append(item.getFileUid() + SysConf.FILE_SEGMENTATION);
        }
    });
    String pictureList = null;
    Map<String, String> pictureMap = new HashMap<>();
    if (fileUids != null) {
        pictureList = pictureFeignClient.getPicture(fileUids.toString(), SysConf.FILE_SEGMENTATION);
    }
    List<Map<String, Object>> picList = webUtil.getPictureMap(pictureList);
    picList.forEach(item -> {
        pictureMap.put(item.get(SysConf.UID).toString(), item.get(SysConf.URL).toString());
    });
    for (Link item : linkList) {
        // 获取图片
        if (StringUtils.isNotEmpty(item.getFileUid())) {
            List<String> pictureUidsTemp = StringUtils.changeStringToString(item.getFileUid(), Constants.SYMBOL_COMMA);
            List<String> pictureListTemp = new ArrayList<>();
            pictureUidsTemp.forEach(picture -> {
                pictureListTemp.add(pictureMap.get(picture));
            });
            item.setPhotoList(pictureListTemp);
        }
    }
    pageList.setRecords(linkList);
    return pageList;
}
Also used : QueryWrapper(com.baomidou.mybatisplus.core.conditions.query.QueryWrapper) Page(com.baomidou.mybatisplus.extension.plugins.pagination.Page) IPage(com.baomidou.mybatisplus.core.metadata.IPage) Link(com.moxi.mogublog.commons.entity.Link)

Example 3 with Link

use of com.moxi.mogublog.commons.entity.Link in project mogu_blog_v2 by moxi624.

the class IndexRestApi method getLink.

@ApiOperation(value = "获取友情链接", notes = "获取友情链接")
@GetMapping("/getLink")
public String getLink() {
    String friendlyLinkCount = sysParamsService.getSysParamsValueByKey(SysConf.FRIENDLY_LINK_COUNT);
    // 从Redis中获取友情链接
    String jsonResult = redisUtil.get(RedisConf.BLOG_LINK + Constants.SYMBOL_COLON + friendlyLinkCount);
    if (StringUtils.isNotEmpty(jsonResult)) {
        List jsonResult2List = JsonUtils.jsonArrayToArrayList(jsonResult);
        return ResultUtil.result(SysConf.SUCCESS, jsonResult2List);
    }
    List<Link> linkList = linkService.getListByPageSize(Integer.valueOf(friendlyLinkCount));
    if (linkList.size() > 0) {
        redisUtil.setEx(RedisConf.BLOG_LINK + Constants.SYMBOL_COLON + friendlyLinkCount, JsonUtils.objectToJson(linkList), 1, TimeUnit.HOURS);
    }
    return ResultUtil.result(SysConf.SUCCESS, linkList);
}
Also used : List(java.util.List) Link(com.moxi.mogublog.commons.entity.Link) GetMapping(org.springframework.web.bind.annotation.GetMapping) ApiOperation(io.swagger.annotations.ApiOperation)

Example 4 with Link

use of com.moxi.mogublog.commons.entity.Link in project mogu_blog_v2 by moxi624.

the class AuthRestApi method replyBlogLink.

@ApiOperation(value = "申请友链", notes = "申请友链")
@PostMapping("/replyBlogLink")
public String replyBlogLink(HttpServletRequest request, @RequestBody LinkVO linkVO) {
    if (request.getAttribute(SysConf.USER_UID) == null) {
        return ResultUtil.result(SysConf.ERROR, MessageConf.INVALID_TOKEN);
    }
    String userUid = request.getAttribute(SysConf.USER_UID).toString();
    User user = userService.getById(userUid);
    // 判断该用户是否被禁言,被禁言的用户,也无法进行友链申请操作
    if (user != null && user.getCommentStatus() == SysConf.ZERO) {
        return ResultUtil.result(SysConf.ERROR, MessageConf.YOU_DONT_HAVE_PERMISSION_TO_REPLY);
    }
    // 判断是否开启邮件通知
    SystemConfig systemConfig = systemConfigService.getConfig();
    if (systemConfig != null && EOpenStatus.OPEN.equals(systemConfig.getStartEmailNotification())) {
        if (StringUtils.isNotEmpty(systemConfig.getEmail())) {
            log.info("发送友链申请邮件通知");
            String feedback = "收到新的友链申请: " + "<br />" + "名称:" + linkVO.getTitle() + "<br />" + "简介:" + linkVO.getSummary() + "<br />" + "地址:" + linkVO.getUrl();
            rabbitMqUtil.sendSimpleEmail(systemConfig.getEmail(), feedback);
        } else {
            log.error("网站没有配置通知接收的邮箱地址!");
        }
    }
    QueryWrapper<Link> queryWrapper = new QueryWrapper<>();
    queryWrapper.eq(SQLConf.USER_UID, userUid);
    queryWrapper.eq(SQLConf.STATUS, EStatus.ENABLE);
    queryWrapper.eq(SQLConf.TITLE, linkVO.getTitle());
    queryWrapper.last(SysConf.LIMIT_ONE);
    Link existLink = linkService.getOne(queryWrapper);
    if (existLink != null) {
        Integer linkStatus = existLink.getLinkStatus();
        String message = "";
        switch(linkStatus) {
            case 0:
                {
                    message = MessageConf.BLOG_LINK_IS_EXIST;
                }
                break;
            case 1:
                {
                    message = MessageConf.BLOG_LINK_IS_PUBLISH;
                }
                break;
            case 2:
                {
                    message = MessageConf.BLOG_LINK_IS_NO_PUBLISH;
                }
                break;
        }
        return ResultUtil.result(SysConf.ERROR, message);
    }
    Link link = new Link();
    link.setLinkStatus(ELinkStatus.APPLY);
    link.setTitle(linkVO.getTitle());
    link.setSummary(linkVO.getSummary());
    link.setUrl(linkVO.getUrl());
    link.setClickCount(0);
    link.setSort(0);
    link.setFileUid(linkVO.getFileUid());
    link.setEmail(linkVO.getEmail());
    link.setStatus(EStatus.ENABLE);
    link.setUserUid(userUid);
    link.insert();
    return ResultUtil.result(SysConf.SUCCESS, MessageConf.OPERATION_SUCCESS);
}
Also used : SystemConfig(com.moxi.mogublog.commons.entity.SystemConfig) User(com.moxi.mogublog.commons.entity.User) QueryWrapper(com.baomidou.mybatisplus.core.conditions.query.QueryWrapper) Link(com.moxi.mogublog.commons.entity.Link) ApiOperation(io.swagger.annotations.ApiOperation)

Example 5 with Link

use of com.moxi.mogublog.commons.entity.Link in project mogu_blog_v2 by moxi624.

the class LinkServiceImpl method addLink.

@Override
public String addLink(LinkVO linkVO) {
    Link link = new Link();
    link.setTitle(linkVO.getTitle());
    link.setSummary(linkVO.getSummary());
    link.setUrl(linkVO.getUrl());
    link.setClickCount(0);
    link.setLinkStatus(linkVO.getLinkStatus());
    link.setSort(linkVO.getSort());
    link.setEmail(linkVO.getEmail());
    link.setFileUid(linkVO.getFileUid());
    link.setStatus(EStatus.ENABLE);
    link.setUpdateTime(new Date());
    link.insert();
    // 友链从申请状态到发布状态,需要发送邮件到站长邮箱
    if (StringUtils.isNotEmpty(link.getEmail()) && CheckUtils.checkEmail(link.getEmail())) {
        log.info("发送友链申请通过的邮件通知");
        String linkApplyText = "<a href=\" " + link.getUrl() + "\">" + link.getTitle() + "</a> 站长,您申请的友链已经成功上架~";
        rabbitMqUtil.sendSimpleEmail(link.getEmail(), linkApplyText);
    }
    // 删除Redis中的BLOG_LINK
    deleteRedisBlogLinkList();
    return ResultUtil.successWithMessage(MessageConf.INSERT_SUCCESS);
}
Also used : Link(com.moxi.mogublog.commons.entity.Link)

Aggregations

Link (com.moxi.mogublog.commons.entity.Link)8 QueryWrapper (com.baomidou.mybatisplus.core.conditions.query.QueryWrapper)3 IPage (com.baomidou.mybatisplus.core.metadata.IPage)2 Page (com.baomidou.mybatisplus.extension.plugins.pagination.Page)2 ApiOperation (io.swagger.annotations.ApiOperation)2 SystemConfig (com.moxi.mogublog.commons.entity.SystemConfig)1 User (com.moxi.mogublog.commons.entity.User)1 List (java.util.List)1 GetMapping (org.springframework.web.bind.annotation.GetMapping)1