EmailController.java 6.1 KB
package com.cnlive.shenhe.controller;

import com.alibaba.fastjson.JSON;
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.dto.EmailDTO;
import com.cnlive.shenhe.entity.ShyEmail;
import com.cnlive.shenhe.entity.ShyUsers;
import com.cnlive.shenhe.service.EmailService;
import com.cnlive.shenhe.service.UsersService;
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 org.springframework.web.bind.annotation.ResponseBody;

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

/**
 * @Auther: liwei
 * @Date: 2019/08/20 14:22
 * @Description:
 */
@Controller
@RequestMapping("/email")
public class EmailController extends BaseController {
    private static Logger logger = LoggerFactory.getLogger(EmailController.class);

    @Autowired
    EmailService emailService;
    @Autowired
    UsersService usersService;

    /**
     * 展示分页 条件查询结果
     *
     * @param model
     * @param emailDTO
     * @param session
     * @return
     */
    @GetMapping(value = "/page")
    public String page(Model model, EmailDTO emailDTO, HttpSession session) {
        logger.info("列表请求参数:{}", JSON.toJSONString(emailDTO));
        SessionUser sessionUser = (SessionUser) session.getAttribute(SessionUser.getSessionKey());
        if (CommonUtils.isNull(sessionUser)) {
            return "redirect:/users/login";
        }
        PageInfo<ShyEmail> emailPage = emailService.getPage(emailDTO);
        List<ShyEmail> list = emailPage.getList();
        JSONObject emailMessage = CommonConst.EMAIL_MESSAGE;
        if (!list.isEmpty()) {
            for (ShyEmail shyEmail : list) {
                //获取更新人的名称
                String updater = "";
                if (CommonUtils.isNotEmpty(shyEmail.getUpdater())) {
                    ShyUsers user = new ShyUsers();
                    user.setUser_id(shyEmail.getUpdater());
                    user = usersService.select(user);
                    if (CommonUtils.isNotNull(user)) {
                        String emailAdd = CommonUtils.isEmpty(user.getEmail()) || "null".equals(user.getEmail()) ? "" : user.getEmail();
                        updater = CommonUtils.isEmpty(user.getUsername()) ? emailAdd : user.getUsername();
                    }
                }
                shyEmail.setUpdater(updater);
                //获取邮件消息类型名称
                String emailTypeName = shyEmail.getNotice_type();
                if (CommonUtils.isNotEmpty(emailTypeName)) {
                    for (String bkey : emailMessage.keySet()) {
                        emailTypeName = emailTypeName.replace(bkey, emailMessage.getString(bkey));
                    }
                } else {
                    emailTypeName = "无";
                }
                shyEmail.setEmail_type_name(emailTypeName);
            }
        }
        model.addAttribute("emailPage", emailPage);
        model.addAttribute("pageSize", emailDTO.getPageSize());
        model.addAttribute("email_message", emailMessage);
        return "page/email.html";
    }

    /**
     * 修改状态
     *
     * @param id
     * @param isEnable
     * @param session
     * @return
     */
    @PostMapping("/updateState")
    @ResponseBody
    public ResponseBean updateState(Integer id, Boolean isEnable, HttpSession session) {
        SessionUser sessionUser = (SessionUser) session.getAttribute(SessionUser.getSessionKey());
        Integer n = emailService.updateState(id, isEnable, sessionUser.getUserId());
        if (n > 0) {
            return new ResponseBean(ErrorEnum.SUCCESS.getErrorCode(), "当前用户" + (isEnable ? "启用" : "禁用") + "成功");
        }
        return new ResponseBean(ErrorEnum.ERROR.getErrorCode(), "操作失败,请重试");
    }

    /**
     * 修改
     *
     * @param id
     * @param session
     * @return
     */
    @PostMapping("/deleted")
    @ResponseBody
    public ResponseBean deleted(Integer id, HttpSession session) {
        SessionUser sessionUser = (SessionUser) session.getAttribute(SessionUser.getSessionKey());
        Integer n = emailService.deleted(id, sessionUser.getUserId());
        if (n > 0) {
            return new ResponseBean(ErrorEnum.SUCCESS.getErrorCode(), "数据删除成功");
        }
        return new ResponseBean(ErrorEnum.ERROR.getErrorCode(), "操作失败,请重试");
    }

    /**
     * 修改邮箱状态
     *
     * @param model
     * @param id
     * @param email
     * @param remark
     * @param write_business
     * @param session
     * @param redirect_url
     * @return
     */
    @PostMapping(value = "/write")
    public String write(Model model, Integer id, String email, String remark, String[] write_business, HttpSession session, String redirect_url) {
        if (CommonUtils.isEmpty(email) && CommonUtils.isEmpty(remark)) {
            setmodelParam(model, "email,remark不能为空");
            return "error.html";
        }
        SessionUser sessionUser = (SessionUser) session.getAttribute(SessionUser.getSessionKey());
        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));
        }
        boolean success = emailService.update(id, email, remark, write.toString(), sessionUser.getUserId());
        if (success) {
            return "redirect:" + redirect_url;
        } else {
            setmodelResult(model);
            return "error.html";
        }
    }

}