// @RequiresPermissions("sys:user:view")
  @RequestMapping(value = "view-{taskId}${urlSuffix}")
  public String context(
      @PathVariable String taskId,
      HttpServletRequest request,
      HttpServletResponse response,
      Model model) {
    model.addAttribute("site", site);
    // "全部任务"对象
    PgTaskList taskList = pgTaskListService.get(taskId);

    if (taskList.getTaskType().equals("0")) {
      // 线上任务
      model.addAttribute("online", pgOnlineQuestionService.get(taskList.getQuestionId()));
      List answerList =
          pgAnswerService.findList(
              new PgAnswer(pgOnlineQuestionService.get(taskList.getQuestionId())));
      model.addAttribute("answerList", answerList);
    } else if (taskList.getTaskType().equals("1")) {
      // 线下任务
      model.addAttribute("offline", pgOfflineQuestionService.get(taskList.getQuestionId()));
    }

    model.addAttribute("taskType", taskList.getTaskType());
    model.addAttribute("taskId", taskId);
    return "modules/cms/front/themes/" + site.getTheme() + "/task";
  }
 @RequestMapping(value = "/mytask/view-{status}-{questionId}${urlSuffix}")
 public String myTask(
     @PathVariable String status,
     @PathVariable String questionId,
     HttpServletRequest request,
     HttpServletResponse response,
     Model model) {
   model.addAttribute("site", site);
   model.addAttribute("status", status);
   if (status.equals("0")) {
     // 线上任务
     PgOnlineQuestion online = pgOnlineQuestionService.get(questionId);
     model.addAttribute("online", online);
   } else if (status.equals("1")) {
     // 线下任务
     model.addAttribute("offline", pgOfflineQuestionService.get(questionId));
   }
   return "modules/cms/front/themes/" + site.getTheme() + "/myTask";
 }
  // @RequiresPermissions("sys:user:view")
  @RequestMapping
  public String index(
      PgTaskList pgTaskList,
      HttpServletRequest request,
      HttpServletResponse response,
      Model model) {
    model.addAttribute("site", site);

    Page<PgTaskList> pgPage =
        pgTaskListService.findPage(new Page<PgTaskList>(request, response), pgTaskList);
    List<PgTaskList> pgTaskListList = pgPage.getList();

    Task task = null;
    List<Task> taskList = new ArrayList<Task>();
    if (null != pgTaskListList && pgTaskListList.size() > 0) {
      for (PgTaskList t : pgTaskListList) {
        task = new Task();
        String uuid = t.getQuestionId();
        // 0:线上任务,1:线下任务
        if (t.getTaskType().equals("0")) {
          PgOnlineQuestion online = pgOnlineQuestionService.get(uuid);
          task.setQuestionId(online.getId());
          task.setName(online.getQuestion());
          task.setType("0");
        } else if (t.getTaskType().equals("1")) {
          PgOfflineQuestion offline = pgOfflineQuestionService.get(uuid);
          task.setQuestionId(offline.getId());
          task.setName(offline.getOfflineTask());
          task.setType("1");
        }
        task.setId(t.getId());
        task.setCreateDate(t.getCreateDate());
        // task.setUserName(systemService.getUser(t.getCreateBy().getId()).getName());
        taskList.add(task);
      }
      Page<Task> page =
          pgTaskListService.findPage(new Page<Task>(request, response), task, taskList);
      model.addAttribute("page", page);
    }

    return "modules/cms/front/themes/" + site.getTheme() + "/taskList";
  }
  /**
   * 完成线下任务
   *
   * @param offTaskId
   * @param request
   * @param response
   * @param model
   * @return
   */
  @RequestMapping(value = "offlinecomplete")
  public String offlinecomplete(
      String offTaskId, HttpServletRequest request, HttpServletResponse response, Model model) {
    model.addAttribute("site", site);
    String feel = request.getParameter("feel");
    PgOfflineTask offlineTask = pgOfflineTaskService.get(offTaskId);
    offlineTask.setOfflineFeel(feel);
    offlineTask.setOfflineStatus("1"); // 状态:1 表示已完成
    // 保存线下任务
    pgOfflineTaskService.save(offlineTask);

    // 完成线下任务给予积分奖励
    PgTaskList taskList = pgTaskListService.get(offlineTask.getTaskId());
    PgOfflineQuestion offlineQuestion = pgOfflineQuestionService.get(taskList.getQuestionId());
    Integer integral = offlineQuestion.getBaseIntegral();
    // 构造方法PgIntegral(String integralDate,String integralType,Integer integral,User user)
    // 积分类型(integralType):0线上任务/1线下任务/2签到/3日记
    PgIntegral pi = new PgIntegral(DateUtils.getDateTime(), "1", integral, UserUtils.getUser());
    pi.setRemarks(offlineQuestion.getOfflineTask());
    // 累计线下任务积分
    pgIntegralService.save(pi);

    return "redirect:" + Global.getFrontPath() + "/task";
  }
  /**
   * 我接受的任务列表
   *
   * @param taskType
   * @param request
   * @param response
   * @param model
   * @return
   */
  @RequestMapping(value = "list-{taskType}${urlSuffix}")
  public String taskList(
      @PathVariable String taskType,
      PgOnlineTask pgOnlineTask,
      PgOfflineTask pgOfflineTask,
      HttpServletRequest request,
      HttpServletResponse response,
      Model model) {
    model.addAttribute("site", site);
    // 0:线上任务,1:线下任务
    Page p = null;
    Task task = null;
    List<Task> taskList = new ArrayList<Task>();

    // 0:线上任务
    if (taskType.equals("0") || taskType.equals("all")) {
      pgOnlineTask.setUser(UserUtils.getUser());
      p = pgOnlineTaskService.findPage(new Page<PgOnlineTask>(request, response), pgOnlineTask);
      List<PgOnlineTask> list = p.getList();
      if (null != list && list.size() > 0) {
        for (PgOnlineTask on : list) {
          PgOnlineQuestion onlineQuestion =
              pgOnlineQuestionService.get(pgTaskListService.get(on.getTaskId()).getQuestionId());
          String id = on.getTaskId(); // 任务ID
          String questionId = onlineQuestion.getId();
          String name = onlineQuestion.getQuestion();
          String type = "0";
          String status = on.getOnlineTaskStatus();
          String time = DateUtils.formatDateTime(on.getCreateDate());
          String userName = UserUtils.getUser().getName();
          task = new Task(id, questionId, name, type, status, time, userName);
          taskList.add(task);
        }
      }
    }
    // 1:线下任务
    if (taskType.equals("1") || taskType.equals("all")) {
      pgOfflineTask.setUser(UserUtils.getUser());
      p = pgOfflineTaskService.findPage(new Page<PgOfflineTask>(request, response), pgOfflineTask);
      List<PgOfflineTask> list = p.getList();
      if (null != list && list.size() > 0) {
        for (PgOfflineTask off : list) {
          PgOfflineQuestion offlineQuestion =
              pgOfflineQuestionService.get(pgTaskListService.get(off.getTaskId()).getQuestionId());
          // public Task(String questionId,String name,String type,String time)
          String id = off.getTaskId();
          String questionId = offlineQuestion.getId();
          String name = offlineQuestion.getOfflineTask();
          String type = "1";
          String status = off.getOfflineStatus();
          String time = DateUtils.formatDateTime(off.getCreateDate());
          String userName = UserUtils.getUser().getName();
          task = new Task(id, questionId, name, type, status, time, userName);
          taskList.add(task);
        }
      }
    }
    if (taskList.size() != 0) {
      Page<Task> page =
          pgTaskListService.findPage(new Page<Task>(request, response), task, taskList);
      model.addAttribute("page", page);
    }
    return "modules/cms/front/themes/" + site.getTheme() + "/myTaskList";
  }