CommentsController.java 4.78 KB
package com.cnlive.shenhe.controller;

import com.cnlive.shenhe.bean.ErrorEnum;
import com.cnlive.shenhe.bean.ResponseBean;
import com.cnlive.shenhe.bean.SessionUser;
import com.cnlive.shenhe.entity.ShyComments;
import com.cnlive.shenhe.entity.ShyUsers;
import com.cnlive.shenhe.serviceImpl.CommentsServiceImpl;
import com.cnlive.shenhe.serviceImpl.UsersServiceImpl;
import com.cnlive.shenhe.utils.AuditPass;
import com.cnlive.shenhe.utils.CommonConst;
import com.cnlive.shenhe.utils.CommonUtils;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpSession;
import java.util.Date;
import java.util.List;


@Controller
@RequestMapping("/comments")
public class CommentsController {
    @Autowired
    AuditPass Pass;
    @Autowired
    CommentsServiceImpl commentsService;

    @Autowired
    UsersServiceImpl usersService;

    /**
     * 评论列表页
     *
     * @param activity_id
     * @param content
     * @param is_hot
     * @param start_date
     * @param end_date
     * @param state
     * @param page
     * @param pageSize
     * @param orderByClause
     * @return
     */
    @GetMapping("/page")
    public String getPage(Model model, String activity_id, String content, Integer is_hot,
                          String start_date, String end_date, String state,
                          Integer page, Integer pageSize, String orderByClause, HttpSession session) {
        SessionUser sessionUser = (SessionUser) session.getAttribute(SessionUser.getSessionKey());
        Integer spid = sessionUser.getSpid();
        if (spid == 0) spid = 82;
        if (CommonUtils.isNull(page)) page = 1;
        if (CommonUtils.isNull(pageSize)) pageSize = 10;
        Date sDate = null;
        Date eDate = null;

        if (CommonUtils.isNotEmpty(start_date)) {
            try {
                sDate = CommonUtils.parseDate(start_date, "yyyy-MM-dd hh:mm");
            } catch (Exception e) {
            }
        }
        if (CommonUtils.isNotEmpty(end_date)) {
            try {
                eDate = CommonUtils.parseDate(end_date, "yyyy-MM-dd hh:mm");
            } catch (Exception e) {
            }
        }
        PageInfo<ShyComments> commentPage = commentsService.getPage(activity_id, content, is_hot, sDate, eDate, state, null, page, pageSize, orderByClause, spid);
        List<ShyComments> list = commentPage.getList();
        if (!list.isEmpty()) {
            for (ShyComments comment : list) {
                if (comment.getState() != CommonConst.AUDIT_INTT) {
                    String auditor = "白名单";
                    String auditor_id = comment.getAuditor_id();
                    if (CommonUtils.isNotEmpty(auditor_id)) {
                        ShyUsers user = new ShyUsers();
                        user.setUser_id(auditor_id);
                        user = usersService.select(user);
                        if (CommonUtils.isNotNull(user)) auditor = user.getUsername() + user.getEmail();
                    }
                    comment.setAuditor(auditor);
                }
            }
        }
        model.addAttribute("commentPage", commentPage);
        return "page/comment.html";
    }

    /**
     * 评论详情
     *
     * @param id
     * @return
     */
    @GetMapping("/details/{id}")
    public String getDetailsComments(@PathVariable Integer id, Model model) {
        ShyComments comment = commentsService.getDetailsComment(id);
        model.addAttribute("comment", comment);
        return "page/commentDetail.html";
    }


    /**
     * 审核通过
     *
     * @param ids
     * @return
     */
    @PostMapping("/pass")
    @ResponseBody
    public ResponseBean pass(String ids, HttpSession session) {
        SessionUser sessionUser = (SessionUser) session.getAttribute(SessionUser.getSessionKey());
        String userId = sessionUser.getUserId();
        boolean success = commentsService.updateState(ids, CommonConst.AUDIT_SUCCESS, userId);
        if (success) {
            return new ResponseBean();
        } else {
            return new ResponseBean(ErrorEnum.ERROR);
        }
    }

    /**
     * 审核拒绝
     *
     * @param ids
     * @return
     */
    @PostMapping("/refuse")
    @ResponseBody
    public ResponseBean refuse(String ids, HttpSession session) {
        SessionUser sessionUser = (SessionUser) session.getAttribute(SessionUser.getSessionKey());
        String userId = sessionUser.getUserId();
        boolean success = commentsService.updateState(ids, CommonConst.AUDIT_REFUSE, userId);
        if (success) {
            return new ResponseBean();
        } else {
            return new ResponseBean(ErrorEnum.ERROR);
        }

    }

}