1baecd03e5e377d5cd4e4b5a87f95b232610f4c2.svn-base 3.68 KB
package com.bjivt.web.controller.admin.showtime;

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

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.codehaus.jackson.map.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.bjivt.base.controller.BaseController;
import com.bjivt.entity.showtime.Feedback;
import com.bjivt.entity.showtime.FeedbackResponse;
import com.bjivt.entity.showtime.GiftList;
import com.bjivt.entity.showtime.Manager;
import com.bjivt.entity.showtime.SystemNotice;
import com.bjivt.entity.showtime.User;
import com.bjivt.service.showtime.FeedbackResponseService;
import com.bjivt.service.showtime.SystemNoticeService;
import com.bjivt.util.JPushUtil;
import com.bjivt.util.Pager;
import com.bjivt.util.PropertiesUtil;
import com.bjivt.web.thread.SystemNoticeThread;

import cn.jpush.api.push.PushResult;

/**
 * 
 * @description
 * @author JASON
 * @date 2015-12-4
 *
 */
@Controller
public class FeedbacktController extends BaseController {

	@Autowired
	protected FeedbackResponseService feedbackResponseService;
	private String appkey = PropertiesUtil.config.get("jpush.appkey");
	private String jpushSecret = PropertiesUtil.config.get("jpush.masterSecret");
	private JPushUtil client = null;
	private ObjectMapper mapper = new ObjectMapper();

	private static final String preReturn = "/showtime/feedback/";

	@RequestMapping("/feedback/list.html")
	public String list(Feedback feedback, HttpServletRequest request, Pager page, Model model) throws Exception {
		List<Feedback> feedbackList = feedbackService.findListByPage(feedback, page);
		model.addAttribute("feedbackList", feedbackList);
		model.addAttribute("page", page);
		return preReturn + "list";
	}

	@RequestMapping("/feedback/edit.html")
	public String respon(Feedback feedback, HttpServletRequest request, Pager page, Model model) throws Exception {
		feedback = feedbackService.selectById(feedback.getId());
		if (feedback == null)
			feedback = new Feedback();
		FeedbackResponse feedbackResponse = feedbackResponseService.selectByFeedBackId(feedback.getId(),0);
		if (feedbackResponse == null)
			feedbackResponse = new FeedbackResponse();
		model.addAttribute("feedback", feedback);
		model.addAttribute("feedbackResponse", feedbackResponse);
		return preReturn + "edit";
	}

	@RequestMapping("/feedback/saveUpdate.html")
	public String feedbackResponse(FeedbackResponse feedbackResponse, HttpServletRequest request, Pager page,
			Model model, HttpSession session) throws Exception {
		String strCont = mapper.writeValueAsString(feedbackResponse.getContent());
		Feedback feedback = feedbackService.selectById(feedbackResponse.getFkId());
		client = new JPushUtil(appkey, jpushSecret, true);
		List<String> userIds = new ArrayList<String>();
		Map<String, String> extras = new HashMap<String, String>();
		userIds.add(Integer.toString(feedbackResponse.getToUserId()));
		try {
			PushResult info = client.sendToAliasAndroidAndiOS("", strCont, extras,
					userIds.toArray(new String[userIds.size()]));
		} catch (Exception e) {

		}
		if (feedback != null) {
			feedback.setDispose(1);
			Manager manager= (Manager) session.getAttribute("manager");
			if(manager!=null){
				feedback.setDisposeUserId(manager.getId());
			}
			feedbackService.updateByIdSelective(feedback);
		}
		feedbackResponse.setCreatedate(new Date());
		feedbackResponse.setType(0);
		feedbackResponseService.insertSelective(feedbackResponse);
		return "redirect:/feedback/list.html";

	}

}