Package com.skyline.user.controller

Source Code of com.skyline.user.controller.AttentionController

package com.skyline.user.controller;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import com.skyline.base.type.IdolType;
import com.skyline.common.bean.Page;
import com.skyline.common.util.Constant;
import com.skyline.common.util.ViewPaths;
import com.skyline.common.util.WebHelper;
import com.skyline.user.model.Fan;
import com.skyline.user.model.User;
import com.skyline.user.service.AttentionService;

@RequestMapping("/attention")
@Controller
public class AttentionController {
  private static final Log LOGGER = LogFactory.getLog(BasicUserController.class);

//  private @Value("${view.user.login}")
//  String loginView;
//  private @Value("${view.attention.fanslist}")
//  String attentionView;

  @Autowired
  private AttentionService attentionService;
  private @Value("${spot.test.pagesize}")
  int attentionPageSize;


  /**
   * 添加关注
   *
   * @param idolId
   * @param idolNickname
   * @param idolPortrait
   * @param idolType
   * @return
   */
  @RequestMapping(value = "/payattention", method = RequestMethod.POST)
  public @ResponseBody
  Map<String, Object> ajaxPayattention(Long idolId, String idolNickname,
      String idolPortrait, IdolType idolType) {
    Map<String, Object> map = new HashMap<String, Object>();
    map.put("loginStatus", false);

    try {
      User user = (User) WebHelper.getSessionAttribute(null,
          Constant.SESSION_USER);
      if (user == null) {
        map.put("loginStatus", false);
        return map;
      }
      if (attentionService.isFan(idolId, user.getId())) {
       
        return null;
      }
      attentionService.payAttention(idolId, idolNickname, idolPortrait,
          user.getId(), user.getNickname(), user.getPortrait(),
          idolType);
      map.put("loginStatus", true);
      return map;

    } catch (Exception e) {
      LOGGER.error("添加关注失败:", e);
      return null;
    }

  }

  /**
   * 取消关注
   *
   * @param idolId
   * @return
   */
  @RequestMapping(value = "/delattention", method = RequestMethod.POST)
  public @ResponseBody
  Map<String, Object> ajaxdelAttention(Long idolId, IdolType idolType) {
    Map<String, Object> map = new HashMap<String, Object>();
    try {
      User user = (User) WebHelper.getSessionAttribute(null,
          Constant.SESSION_USER);
      if (user == null) {
        map.put("loginStatus", false);
        return map;
      }
      if (attentionService.isFan(idolId, user.getId())) {
        System.out.println("已经关注");
        attentionService.cancelAttention(idolId, user.getId());
        System.out.println("估计删除成功");
        map.put("loginStatus", true);
        map.put("IsFanFlag", false);
        map.put("FansCount", attentionService.countFans(idolId));
        return map;
      } else {

        return null;
      }

    } catch (Exception e) {
      LOGGER.error("删除关注失败:", e);
      return null;
    }
  }

  /**
   * 判断是否已关注
   *
   * @param idolId
   * @return
   */
  @RequestMapping(value = "/isattention", method = RequestMethod.POST)
  public @ResponseBody
  Map<String, Object> ajaxisAttention(Long idolId, IdolType idolType) {
    Map<String, Object> map = new HashMap<String, Object>();
    try {
      User user = (User) WebHelper.getSessionAttribute(null,
          Constant.SESSION_USER);
      if (user == null) {
        map.put("UserStatus", false);
        map.put("IsFanFlag", false);
        return map;
      } else if (idolId.equals(user.getId())) {
        map.put("UserStatus", "Me");
        return map;
      } else if (attentionService.isFan(idolId, user.getId())) {
        /**
         * session 设置
         */
        // WebHelper.setSessionAttribute(null,
        // Constant.SESSION_ATTENTION_FLAG, true);
        map.put("UserStatus", true);
        map.put("IsFanFlag", true);
        map.put("FansCount", attentionService.countFans(idolId));
        return map;
      } else {
        /**
         * session 设置List<Fan>
         * fanList=attentionService.queryFans(ownerId,page);
         */
        // WebHelper.setSessionAttribute(null,
        // Constant.SESSION_ATTENTION_FLAG, false);
        map.put("UserStatus", true);
        map.put("IsFanFlag", false);
        map.put("FansCount", attentionService.countFans(idolId));
        return map;
      }

    } catch (Exception e) {
      LOGGER.error("获取关注失败:", e);
      return null;
    }
  }

  /**
   * 查看你的粉丝
   *
   * @param ownerId
   * @param page
   * @return
   */
  @RequestMapping(value = "/{ownerId}/fans", method = RequestMethod.GET)
  public ModelAndView getfans(@PathVariable("ownerId") Long ownerId, Page page) {
    ModelAndView v = new ModelAndView(ViewPaths.USER_LOGIN);
    page.setSize(attentionPageSize);
    List<Fan> fanList = attentionService.queryFans(ownerId, page);
    v.setViewName(ViewPaths.USER_FANS);
    v.addObject("listType", 0);
    v.addObject("list", fanList);
    v.addObject("page", page);

    return v;
  }

  /**
   * 查看你关注的东西
   *
   * @param ownerId
   * @param page
   * @return
   */
  @RequestMapping(value = "/{ownerId}/follow", method = RequestMethod.GET)
  public ModelAndView getAttention(@PathVariable("ownerId") Long ownerId,
      Page page) {
    ModelAndView v = new ModelAndView(ViewPaths.USER_LOGIN);
    page.setSize(attentionPageSize);
    List<Fan> attentionList = attentionService.queryAttentionByType(
        ownerId, null, page);
    v.setViewName(ViewPaths.USER_FOLLOW);
    v.addObject("listType", 0);
    v.addObject("list", attentionList);
    v.addObject("page", page);

    return v;
  }

  /**
   * 根据关注的类别分类,因为涉及到景点什么,可能要用
   *
   * @param ownerId
   * @param type
   * @param page
   * @return
   */
  @RequestMapping(value = "/{ownerId}/follow/{type}", method = RequestMethod.GET)
  public ModelAndView getAttention(@PathVariable("ownerId") Long ownerId,
      @PathVariable("type") IdolType type, Page page) {
    ModelAndView v = new ModelAndView(ViewPaths.USER_LOGIN);
    page.setSize(attentionPageSize);
    List<Fan> attentionList = attentionService.queryAttentionByType(
        ownerId, type, page);
    v.setViewName(ViewPaths.USER_LOGIN);
    v.addObject("listType", type);
    v.addObject("list", attentionList);
    v.addObject("page", page);

    return v;
  }

}
TOP

Related Classes of com.skyline.user.controller.AttentionController

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.