package com.oa.action;
import java.util.List;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import com.oa.base.BaseAction;
import com.oa.constants.Constants;
import com.oa.domain.Forum;
import com.oa.domain.PageBean;
import com.oa.domain.Topic;
import com.oa.utils.QueryHelper;
import com.opensymphony.xwork2.ActionContext;
@Controller
@Scope("prototype")
public class ForumAction extends BaseAction<Forum>{
private static final long serialVersionUID = 1L;
// ====================>>>用于过滤分页查询的参数<<<===================
/**
* 0表示查看全部主题
* 1表示只查看精华帖
*/
private int viewType = 0;
/**
* 默认排序(按最后更新时间排序,但所有置顶帖都在前面)</option>
* 1/按最后更新时间排序</option>
* 2/按主题发表时间排序</option>
* 3/按回复数量排序</option>
*/
private int orderBy = 0;
/**
* true表示升序
* false表示降序
*/
private boolean asc = false;
// ====================>>>用于过滤分页查询的参数<<<===================
/**
* 板块列表
* @return
* @throws Exception
*/
public String list() throws Exception {
List<Forum> forumList = forumService.findAll();
ActionContext.getContext().put("forumList", forumList);
return "list";
}
/**
* 显示单个板块(主题列表)
* @return
* @throws Exception
*/
public String show() throws Exception {
//准备数据:forum
Forum forum = forumService.findById(model.getId());
ActionContext.getContext().put("forum", forum);
//准备数据:分页信息 第四个版本 通过创建工具类 queryHelper替换拼接字符串
QueryHelper queryHelper = new QueryHelper(Topic.class,"t")
// 过滤条件
.addCondition("t.forum = ?", forum)
.addCondition((viewType == 1), "t.type = ?", Constants.TYPE_BEST)//1/表示只看精华帖
// 排序条件
.addOrderProperty((orderBy == 1), "t.lastUpdateTime", asc)
.addOrderProperty((orderBy == 2), "t.postTime", asc)
.addOrderProperty((orderBy == 3), "t.replyCount", asc)
.addOrderProperty((orderBy == 0), "CASE t.type WHEN 2 THEN 2 ELSE 0 END", false)
.addOrderProperty((orderBy == 0), "t.lastUpdateTime", false);
PageBean pageBean = topicService.findPageBeanByQueryHelper(pageNum,pageSize,queryHelper);
ActionContext.getContext().getValueStack().push(pageBean);
return "show";
}
// ====================>>>get和set方法<<<====================
public int getViewType() {
return viewType;
}
public void setViewType(int viewType) {
this.viewType = viewType;
}
public int getOrderBy() {
return orderBy;
}
public void setOrderBy(int orderBy) {
this.orderBy = orderBy;
}
public boolean isAsc() {
return asc;
}
public void setAsc(boolean asc) {
this.asc = asc;
}
}
最近下载更多
xiaohuaidan455 LV2
2月21日
朱俪的邮件及存储 LV8
2023年4月28日
泓鼎168 LV20
2023年3月30日
wanglinddad LV55
2022年5月26日
529948627 LV6
2022年3月14日
蛇蛇皮怪 LV14
2022年3月8日
微信网友_5845420553359360 LV4
2022年2月25日
juanito8396 LV6
2021年12月20日
and123456 LV11
2021年5月11日
shiyujir LV7
2021年4月8日

最近浏览