package com.hqyg.disjob.console.web.controller;
import java.util.LinkedList;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.SessionAttributes;
import com.hqyg.disjob.common.model.JobGroup;
import com.hqyg.disjob.common.model.Result;
import com.hqyg.disjob.console.SystemDefault;
import com.hqyg.disjob.register.job.JobOperationService;
import com.hqyg.disjob.monitor.db.domain.DBUser;
import com.hqyg.disjob.monitor.db.domain.PageResult;
@Controller
@RequestMapping("/service/job/group")
@SessionAttributes(SystemDefault.USER_SESSION_KEY)
public class JobGroupController extends BaseController {
@Resource
private JobOperationService service;
@RequestMapping("/list")
@ResponseBody
public List<JobGroup> list(HttpSession session) {
List<JobGroup> groups = new LinkedList<JobGroup>();
JobGroup obj = null;
for(String name: this.service.getAllGroup(((DBUser)session.getAttribute(SystemDefault.USER_SESSION_KEY)))){
obj = new JobGroup();
obj.setGroupName(name);
groups.add(obj);
}
return groups;
}
@RequestMapping("/listPage")
@ResponseBody
public PageResult search(@RequestParam(value="limit", required=true) int pageSize,
@RequestParam(value="offset", required=true) int offset,
HttpSession session) {
List<String> names = this.service.getAllGroup((DBUser)session.getAttribute(SystemDefault.USER_SESSION_KEY));//读取所有
List<JobGroup> groups = new LinkedList<JobGroup>();//存储分页后的数据
int total = 0;
if(names != null ){
total = names.size();
JobGroup obj = null;
if(total >= offset+pageSize){//如果有足够的数据,则取页面大小的数量
names = names.subList(offset, offset+pageSize);
}else{//否则取完剩下的
names = names.subList(offset, total);
}
for(String name: names){
obj = new JobGroup();
obj.setGroupName(name);
groups.add(obj);
}
}
return new PageResult().setTotal(total).setRows(groups);//封装返回
}
@RequestMapping("/add")
@ResponseBody
public Result add(JobGroup group, HttpSession session) throws Exception {
String username = ((DBUser)session.getAttribute(SystemDefault.USER_SESSION_KEY)).getUsername();
return new Result(service.createGroup(group, username));
}
@RequestMapping("/update")
@ResponseBody
public Result update(JobGroup group) throws Exception {
return new Result();
}
@RequestMapping("/delete")
@ResponseBody
public Result delete(@RequestParam(value="groupName", required=true) String groupName) throws Exception {
return new Result();
}
@RequestMapping("/getGroupList")
@ResponseBody
public List<String> getGroupList(HttpSession session) {
return this.service.getAllGroup(((DBUser)session.getAttribute(SystemDefault.USER_SESSION_KEY)));
}
}