SitesController.java 3.81 KB
package com.cnlive.shenhe.controller;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.cnlive.shenhe.bean.SessionUser;
import com.cnlive.shenhe.dto.SitesDTO;
import com.cnlive.shenhe.entity.ShySites;
import com.cnlive.shenhe.service.SitesService;
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.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;

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

/**
 * @author Administrator
 * @Auther: 周伟鹏
 * @Date: 2018/11/30 17:28
 * @Description:
 */
@Controller
@RequestMapping("/sites")
public class SitesController extends BaseController {

    private static Logger logger = LoggerFactory.getLogger(SitesController.class);

    @Autowired
    SitesService sitesService;

    /**
     * 站点白名单分页列表
     *
     * @param sitesDTO
     * @return
     */
    @GetMapping(value = "/page")
    public String page(Model model, SitesDTO sitesDTO, HttpSession session) {
        logger.info("列表请求参数:{}", JSON.toJSONString(sitesDTO));
        SessionUser sessionUser = (SessionUser) session.getAttribute(SessionUser.getSessionKey());
        if (CommonUtils.isNull(sessionUser)) {
            return "redirect:/users/login";
        }
        Integer spid = sessionUser.getSpid();
        sitesDTO.setSpId(spid);
        if (!sessionUser.isMaster() && sitesDTO.getSpId() != 0) {
            setmodelSite(model);
            return "error.html";
        }
        if (spid == 0) {
            sitesDTO.setSpId(null);
        }

        PageInfo<ShySites> sitePage = sitesService.getPage(sitesDTO);
        List<ShySites> list = sitePage.getList();
        JSONObject business = CommonConst.BUSINESS;
        if (!list.isEmpty()) {
            for (ShySites site : list) {

                String write_businessName = site.getWrite_business();
                if (CommonUtils.isNotEmpty(write_businessName)) {
                    for (String bkey : business.keySet()) {
                        write_businessName = write_businessName.replace(bkey, business.getString(bkey));
                    }
                } else {
                    write_businessName = "无";
                }
                site.setWrite_business_name(write_businessName);
            }
        }
        model.addAttribute("sitePage", sitePage);
        model.addAttribute("pageSize", sitesDTO.getPageSize());
        model.addAttribute("business", business);
        return "page/site.html";
    }


    @PostMapping(value = "/write")
    public String write(Model model, Integer siteId, String[] write_business, HttpSession session, String redirect_url) {
        ShySites site = sitesService.get(siteId);
        SessionUser sessionUser = (SessionUser) session.getAttribute(SessionUser.getSessionKey());
        if (CommonUtils.isNull(sessionUser)) {
            return "redirect:/users/login";
        }
        StringBuilder write = new StringBuilder();
        if (CommonUtils.isNotNull(write_business) && write_business.length > 0) {
            for (String w : write_business) {
                write.append(",").append(w);
            }
            write = new StringBuilder(write.substring(1));
        }
        site.setWrite_business(write.toString());
        boolean success = sitesService.update(site);
        if (success) {
            return "redirect:" + redirect_url;
        } else {
            setmodelResult(model);
            return "error.html";
        }
    }
}