ContentController.java 7.27 KB
package com.cnlive.shenhe.controller;

import com.alibaba.fastjson.JSONObject;
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.ShyContent;
import com.cnlive.shenhe.entity.ShySites;
import com.cnlive.shenhe.entity.ShyUsers;
import com.cnlive.shenhe.entity.ShyVideos;
import com.cnlive.shenhe.serviceImpl.CommentsServiceImpl;
import com.cnlive.shenhe.serviceImpl.ContentServiceImpl;
import com.cnlive.shenhe.serviceImpl.SitesServiceImpl;
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.slf4j.Logger;
import org.slf4j.LoggerFactory;
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("/content")
public class ContentController {
    private static Logger logger = LoggerFactory.getLogger(ContentController.class);
    @Autowired
    AuditPass Pass;
    @Autowired
    CommentsServiceImpl commentsService;
    @Autowired
    ContentServiceImpl contentService;
    @Autowired
    SitesServiceImpl sitesService;

    @Autowired
    UsersServiceImpl usersService;

    /**
     * 图文列表
     * 
     * @param model
     * @param title
     * @param start_date
     * @param end_date
     * @param receive_status
     * @param sp_desc
     * @param page
     * @param pageSize
     * @param orderByClause
     * @param session
     * @return
     */
    @GetMapping("/page")
    public String getPage(Model model,  String title, 
                          String start_date, String end_date, Integer receive_status, String sp_desc,
                          Integer page, Integer pageSize, String orderByClause, HttpSession session) {
        SessionUser sessionUser = (SessionUser) session.getAttribute(SessionUser.getSessionKey());
        if(CommonUtils.isNull(sessionUser)){
        	return "redirect:/users/login";
        }
        Integer spid = sessionUser.getSpid();
        String userId = sessionUser.getUserId();
        if (CommonUtils.isNull(page)) page = 1;
        if (CommonUtils.isNull(pageSize)) pageSize = 10;
        if (CommonUtils.isNotEmpty(sp_desc) && spid == 0) {
        	ShySites shySite=sitesService.findspidBySpdesc(sp_desc);
        	if(CommonUtils.isNotNull(shySite)){
        		spid = shySite.getSpid();
        	}else{
        		return "page/sitesError.html";
        	}
        } else if (CommonUtils.isEmpty(sp_desc) && spid == 0) {
            spid = null;
        }
        Date sDate = null;
        Date eDate = null;

        if (CommonUtils.isNotEmpty(start_date)) {
            try {
                sDate = CommonUtils.parseDate(start_date, "yyyy-MM-dd");
            } catch (Exception e) {
            }
        }
        if (CommonUtils.isNotEmpty(end_date)) {
            try {
                eDate = CommonUtils.parseDate(end_date, "yyyy-MM-dd");
            } catch (Exception e) {
            }
        }
        PageInfo<ShyContent> contentPage = contentService.getPage( title,  sDate, eDate, receive_status, null, page, pageSize, orderByClause, spid, userId);
        List<ShyContent> list = contentPage.getList();
        if (!list.isEmpty()) {
            for (ShyContent content : list) {
                if (content.getReceive_status() == CommonConst.RECEIVE_AUDIT) {
                	String auditor_id = content.getAuditor_id();
                	String updater = CommonUtils.isEmpty(content.getUpdater()) || "null".equals(content.getUpdater())? "白名单":content.getUpdater();
                    updater =sitesService.getUpdater(updater,auditor_id);
                    content.setUpdater(updater);
                }
                //显示spid简称
                ShySites shySites = sitesService.findspidDescByspid(content.getSp_id());
                if (CommonUtils.isNotNull(shySites)) {
                	content.setSp_desc(shySites.getName());
                }
            }
        }
        model.addAttribute("contentPage", contentPage);
        return "page/content.html";
    }

    /**
     * 图文详情
     *
     * @param id
     * @return
     */
    @GetMapping("/details/{id}")
    public String getDetailsComments(@PathVariable Integer id, Model model) {
    	ShyContent content = contentService.getDetailsContent(id);
    	if (content.getReceive_status() != CommonConst.RECEIVE_BEFORE) {
        	String auditor_id = content.getAuditor_id();
        	String updater = CommonUtils.isEmpty(content.getUpdater()) || "null".equals(content.getUpdater())? "白名单":content.getUpdater();
            updater =sitesService.getUpdater(updater,auditor_id);
            content.setUpdater(updater);
        }
        model.addAttribute("content", content);
        return "page/contentDetail.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 = contentService.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,String msg, HttpSession session) {
        SessionUser sessionUser = (SessionUser) session.getAttribute(SessionUser.getSessionKey());
        String userId = sessionUser.getUserId();
        boolean success = contentService.updateState(ids,msg, CommonConst.AUDIT_REFUSE, userId);
        if (success) {
            return new ResponseBean();
        } else {
            return new ResponseBean(ErrorEnum.ERROR);
        }

    }


    /**
     * 认领
     *
     * @param ids     根据id认领
     * @param num     认领条数
     * @param session
     * @return
     */
    @PostMapping("/receive")
    @ResponseBody
    public ResponseBean receive(String ids, Integer num, HttpSession session) {
        SessionUser sessionUser = (SessionUser) session.getAttribute(SessionUser.getSessionKey());
        String userId = sessionUser.getUserId();
        Integer spid = sessionUser.getSpid();
        Integer n = contentService.receive(ids, num, userId, spid);
        return new ResponseBean(ErrorEnum.SUCCESS.getErrorCode(), "认领到" + n + "条内容");
    }


    @PostMapping("/retReceive")
    @ResponseBody
    public ResponseBean retReceive(String ids, HttpSession session) {
        SessionUser sessionUser = (SessionUser) session.getAttribute(SessionUser.getSessionKey());
        String userId = sessionUser.getUserId();
        Integer n = contentService.retReceive(ids, userId);
        return new ResponseBean(ErrorEnum.SUCCESS.getErrorCode(), "退领了" + n + "条内容");
    }

   
}