// Path: src/main/java/com/zeven/course/util/Auth.java
// public class Auth {
// 
//     public static final Key key = MacProvider.generateKey();
//     public static final long expire = 7200000; //2 hours
// 
//     public static void main (String [] args) {
//         Map<String,Object> claims = new HashMap<String, Object>();
//         claims.put("id",1);
//         claims.put("name","zeven");
//         claims.put("role","admin");
//         String s = Jwts.builder().setClaims(claims).signWith(SignatureAlgorithm.HS512, key).compact();
//         System.out.println(s);
//         Claims result;
//         try {
//             result = Jwts.parser().setSigningKey(key).parseClaimsJws(s).getBody();
//             System.out.println(result.get("id")+"|"+result.get("name")+"|"+result.get("role"));
//         } catch (SignatureException e){
//             System.out.println("401 No Authentication");
//         }
//     }
// }
// 
// Path: src/main/java/com/zeven/course/util/Message.java
// public class Message {
//     private int code;
//     private String msg;
//     private Object data = "";
// 
//     public Message() {
//     }
// 
//     public Message(int code, String msg) {
//         this.code = code;
//         this.msg = msg;
//     }
// 
//     public Message(int code, String msg, Object data) {
//         this.code = code;
//         this.msg = msg;
//         this.data = data;
//     }
// 
//     public int getCode() {
//         return code;
//     }
// 
//     public void setCode(int code) {
//         this.code = code;
//     }
// 
//     public String getMsg() {
//         return msg;
//     }
// 
//     public void setMsg(String msg) {
//         this.msg = msg;
//     }
// 
//     public Object getData() {
//         return data;
//     }
// 
//     public void setData(Object data) {
//         this.data = data;
//     }
// }
// 
// Path: src/main/java/com/zeven/course/util/Token.java
// public class Token {
// 
//     private int id;
//     private String name;
//     private String role;
//     private int err = 0;
//     public static final int ExpiredJwtError = 1;
//     public static final int SignatureError = 2;
// 
//     public Token(String token) {
//         try {
//             Claims claims = Jwts.parser().setSigningKey(Auth.key).parseClaimsJws(token).getBody();
//             this.id = Integer.parseInt(claims.get("id").toString());
//             this.name = claims.get("name").toString();
//             this.role = claims.get("role").toString();
//         } catch (ExpiredJwtException e){
//             this.err = ExpiredJwtError;
//         } catch (SignatureException e) {
//             this.err = SignatureError;
//         }
// 
//     }
// 
//     public int getId() {
//         return id;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public String getRole() {
//         return role;
//     }
// 
//     public int getErr() {
//         return err;
//     }
// 
// }


import com.zeven.course.service.*;
import com.zeven.course.util.Auth;
import com.zeven.course.util.Message;
import com.zeven.course.util.Token;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
package com.zeven.course.action;



/**
 * Created by fangf on 2016/5/22.
 */
@RequestMapping("/Teacher")
@Controller
public class TeacherAction {

    @Resource
    private CourseService courseService;
    @Resource
    private StudentService studentService;
    @Resource
    private TeacherCourseService tcService;
    @Resource
    private ClassService classService;
    @Resource
    private CourseStudentService csService;

    @ResponseBody
    @RequestMapping("/course/getAll")
    public Message getAllCourse(){
        return new Message(1,"ok",courseService.getAvailableCourses());
    }

    @ResponseBody
    @RequestMapping("/course/selectCourses")
    public Message selectCourses(@RequestParam("ids[]") Integer[] ids, @RequestHeader("Authorization") String token){
// Path: src/main/java/com/zeven/course/util/Auth.java
// public class Auth {
// 
//     public static final Key key = MacProvider.generateKey();
//     public static final long expire = 7200000; //2 hours
// 
//     public static void main (String [] args) {
//         Map<String,Object> claims = new HashMap<String, Object>();
//         claims.put("id",1);
//         claims.put("name","zeven");
//         claims.put("role","admin");
//         String s = Jwts.builder().setClaims(claims).signWith(SignatureAlgorithm.HS512, key).compact();
//         System.out.println(s);
//         Claims result;
//         try {
//             result = Jwts.parser().setSigningKey(key).parseClaimsJws(s).getBody();
//             System.out.println(result.get("id")+"|"+result.get("name")+"|"+result.get("role"));
//         } catch (SignatureException e){
//             System.out.println("401 No Authentication");
//         }
//     }
// }
// 
// Path: src/main/java/com/zeven/course/util/Message.java
// public class Message {
//     private int code;
//     private String msg;
//     private Object data = "";
// 
//     public Message() {
//     }
// 
//     public Message(int code, String msg) {
//         this.code = code;
//         this.msg = msg;
//     }
// 
//     public Message(int code, String msg, Object data) {
//         this.code = code;
//         this.msg = msg;
//         this.data = data;
//     }
// 
//     public int getCode() {
//         return code;
//     }
// 
//     public void setCode(int code) {
//         this.code = code;
//     }
// 
//     public String getMsg() {
//         return msg;
//     }
// 
//     public void setMsg(String msg) {
//         this.msg = msg;
//     }
// 
//     public Object getData() {
//         return data;
//     }
// 
//     public void setData(Object data) {
//         this.data = data;
//     }
// }
// 
// Path: src/main/java/com/zeven/course/util/Token.java
// public class Token {
// 
//     private int id;
//     private String name;
//     private String role;
//     private int err = 0;
//     public static final int ExpiredJwtError = 1;
//     public static final int SignatureError = 2;
// 
//     public Token(String token) {
//         try {
//             Claims claims = Jwts.parser().setSigningKey(Auth.key).parseClaimsJws(token).getBody();
//             this.id = Integer.parseInt(claims.get("id").toString());
//             this.name = claims.get("name").toString();
//             this.role = claims.get("role").toString();
//         } catch (ExpiredJwtException e){
//             this.err = ExpiredJwtError;
//         } catch (SignatureException e) {
//             this.err = SignatureError;
//         }
// 
//     }
// 
//     public int getId() {
//         return id;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public String getRole() {
//         return role;
//     }
// 
//     public int getErr() {
//         return err;
//     }
// 
// }


// Path: src/main/java/com/zeven/course/action/TeacherAction.java
import com.zeven.course.service.*;
import com.zeven.course.util.Auth;
import com.zeven.course.util.Message;
import com.zeven.course.util.Token;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;

package com.zeven.course.action;



/**
 * Created by fangf on 2016/5/22.
 */
@RequestMapping("/Teacher")
@Controller
public class TeacherAction {

    @Resource
    private CourseService courseService;
    @Resource
    private StudentService studentService;
    @Resource
    private TeacherCourseService tcService;
    @Resource
    private ClassService classService;
    @Resource
    private CourseStudentService csService;

    @ResponseBody
    @RequestMapping("/course/getAll")
    public Message getAllCourse(){
        return new Message(1,"ok",courseService.getAvailableCourses());
    }

    @ResponseBody
    @RequestMapping("/course/selectCourses")
    public Message selectCourses(@RequestParam("ids[]") Integer[] ids, @RequestHeader("Authorization") String token){
        int userID = new Token(token).getId();