基于javaweb和mysql的ssm学生成绩信息管理系统(java+ssm+html+layui+mysql)
·
基于javaweb和mysql的ssm学生成绩信息管理系统(java+ssm+html+layui+mysql)
私信源码获取及调试交流
私信源码获取及调试交流
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb的SSM学生成绩信息管理系统(java+ssm+html+layui+mysql)
项目介绍
本项目分为管理员、教师、学生三种角色, 管理员角色包含以下功能: 公告管理,写公告,学生增删改查,教师增删改查,查看成绩报表,管理员首页,课程表增删改查等功能。 教师角色包含以下功能: 修改密码,按照条件查询,查看学生信息,管理课程,登陆页面等功能。 学生角色包含以下功能: 查看成绩信息,查看课程信息,选课操作等功能。
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.数据库:MySql 5.7版本; 6.是否Maven项目:否;
技术栈
- 后端:Spring+SpringMVC+Mybatis 2. 前端:HTML+LayUI
使用说明
- 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中application.yml配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入localhost:8080/ 登录
@RequestMapping(value="/student")
public class StudentController {
@Autowired
private StudentService studentService;
@ResponseBody
@RequestMapping(value="/list")
public String getStudentList(@RequestParam(defaultValue="0")int curr,
@RequestParam(defaultValue="20")int nums,
@RequestParam(defaultValue="")String searchKey) {
Pagination<Student> page = new Pagination<Student>();
page.setTotalItemsCount(studentService.getTotalItemsCount(searchKey));
page.setPageSize(nums);
page.setPageNum(curr);
List<Student> list = studentService.getStudentList(page,searchKey);
String jsonStr = StrUtil.RETURN_JONS_PRE_STR
+ page.getTotalItemsCount()
+ StrUtil.RETURN_JONS_MID_STR
+ JSON.toJSONString(list)
+ StrUtil.RETURN_JONS_END_STR;
return jsonStr;
}
/**
* 返回选修了我课程的学生列表
* @return
*/
@ResponseBody
@RequestMapping(value="/stulist")
public String getMyStudentList(@RequestParam(defaultValue="0")int curr,
@RequestParam(defaultValue="20")int nums,
@RequestParam(required=false) Integer cId, HttpSession session) {
Teacher t = (Teacher) session.getAttribute(StrUtil.USER);
Pagination<Student> page = new Pagination<Student>();
page.setTotalItemsCount(studentService.getTotalItemsCountByTid(t.getId(), cId));
page.setPageSize(nums);
page.setPageNum(curr);
List<Student> list = studentService.getStudentListByTid(page, t.getId(), cId);
String jsonStr = StrUtil.RETURN_JONS_PRE_STR
+ page.getTotalItemsCount()
if (res > 0)
return StrUtil.RESULT_TRUE;
return "添加失败";
} else if (opType == 1) {
stu.setPassword(null);
res = studentService.updateStudent(stu);
if (res > 0) return StrUtil.RESULT_TRUE;
return "修改失败!";
}
return "error";
}
/**
* 重置密码
* @param stu
* @return
*/
@ResponseBody
@RequestMapping(value="/resetPswd")
public String resetPasswrd(String id) {
Student stu = new Student();
stu.setId(id);
stu.setPassword(MD5Util.MD5("123456"));
if (studentService.updateStudent(stu) > 0) return StrUtil.RESULT_TRUE;
return "修改失败!";
}
@ResponseBody
@RequestMapping(value="/delete")
public String deleteStudnet(Student stu) {
if (studentService.deleteStudent(stu) > 0) return StrUtil.RESULT_TRUE;
return "删除失败!";
}
/**
* 批量删除
* @param stuIds
* @return
*/
@ResponseBody
System.out.println("添加失败!");
return "添加失败!";
}
if (res > 0)
return StrUtil.RESULT_TRUE;
return "添加失败";
} else {
res = baseCourseService.updateBaseCourse(baseCourse);
if (res > 0) return StrUtil.RESULT_TRUE;
return "修改失败!";
}
}
@ResponseBody
@RequestMapping(value="/delete")
public String deleteStudnet(BaseCourse t) {
if (baseCourseService.deleteBaseCourse(t) > 0) return StrUtil.RESULT_TRUE;
return "删除失败!";
}
/**
* 批量删除
* @param tIds
* @return
*/
@ResponseBody
@RequestMapping(value="/deleteList")
public String deleteStudnetList(String cIds) {
List<Integer> list = new ArrayList<Integer>();
try {
String[] ids = cIds.split(",");
for (String id: ids) {
list.add(Integer.parseInt(id));
}
if (baseCourseService.deleteBaseCourse(list) > 0) {
return StrUtil.RESULT_TRUE;
}
} catch (Exception e) {
e.printStackTrace();
return "删除失败!参数出错!";//
}
return "删除失败!";
}
@ResponseBody
@RequestMapping("/import")
public String impotr(HttpServletRequest request, MultipartFile file) {
//获取上传的文件
InputStream in = null;
try {
in = file.getInputStream();
public class BaseCourseController {
@Autowired
private BaseCourseService baseCourseService;
@ResponseBody
@RequestMapping(value="/list")
public String getBaseCourseList(@RequestParam(defaultValue="0")int curr,@RequestParam(defaultValue="10")int nums,
@RequestParam(defaultValue="")String searchKey) {
Pagination<BaseCourse> page = new Pagination<BaseCourse>();
page.setTotalItemsCount(baseCourseService.getTotalItemsCount(searchKey));
page.setPageSize(nums);
page.setPageNum(curr);
List<BaseCourse> list = baseCourseService.getBaseCourse(page, searchKey);
String jsonStr = StrUtil.RETURN_JONS_PRE_STR + page.getTotalItemsCount()
+ StrUtil.RETURN_JONS_MID_STR
+ JSON.toJSONString(list) + StrUtil.RETURN_JONS_END_STR;
System.out.println(jsonStr);
return jsonStr;
}
@ResponseBody
@RequestMapping(value="/listForSelect")
public String getBaseCourseListForSelect(@RequestParam(defaultValue="") String searchKey) {
List<BaseCourse> list = baseCourseService.getBaseCourseForSelect(searchKey);
String jsonStr = StrUtil.RETURN_JONS_PRE_STR + list.size()
+ StrUtil.RETURN_JONS_MID_STR
+ JSON.toJSONString(list) + StrUtil.RETURN_JONS_END_STR;
return jsonStr;
}
@RequestMapping(value="/addPage")
public ModelAndView toAddPage() {
return new ModelAndView("/baseCourseAdd");
}
/**
* 增加,或者修改BaseCourse
* @param BaseCourse
@ResponseBody
@RequestMapping(value="/delete")
public String deleteStudnet(BaseCourse t) {
if (baseCourseService.deleteBaseCourse(t) > 0) return StrUtil.RESULT_TRUE;
return "删除失败!";
}
/**
* 批量删除
* @param tIds
* @return
*/
@ResponseBody
@RequestMapping(value="/deleteList")
public String deleteStudnetList(String cIds) {
List<Integer> list = new ArrayList<Integer>();
try {
String[] ids = cIds.split(",");
for (String id: ids) {
list.add(Integer.parseInt(id));
}
if (baseCourseService.deleteBaseCourse(list) > 0) {
return StrUtil.RESULT_TRUE;
}
} catch (Exception e) {
e.printStackTrace();
return "删除失败!参数出错!";//
}
return "删除失败!";
}
@ResponseBody
@RequestMapping("/import")
public String impotr(HttpServletRequest request, MultipartFile file) {
//获取上传的文件
InputStream in = null;
try {
in = file.getInputStream();
//数据导入
int res = baseCourseService.importExcelInfo(in,file);
if (res > 0) {
return StrUtil.RETURN_JONS_PRE_STR+"0"
return StrUtil.RESULT_TRUE;
}
} catch (Exception e) {
e.printStackTrace();
return "删除失败!参数出错!";//
}
return "删除失败!";
}
@ResponseBody
@RequestMapping("/import")
public String impotr(HttpServletRequest request, MultipartFile file) {
//获取上传的文件
InputStream in = null;
try {
in = file.getInputStream();
//数据导入
int res = teacherService.importExcelInfo(in,file);
if (res > 0) {
return StrUtil.RETURN_JONS_PRE_STR+"0"
+StrUtil.RETURN_JONS_MID_STR+"true"
+StrUtil.RETURN_JONS_END_STR;
} else {
return StrUtil.RETURN_JONS_PRE_STR+"0"
+StrUtil.RETURN_JONS_MID_STR+"false"
+StrUtil.RETURN_JONS_END_STR;
}
} catch (Exception e) {
e.printStackTrace();
return StrUtil.RETURN_JONS_PRE_STR+"0"
+StrUtil.RETURN_JONS_MID_STR+"error"
+StrUtil.RETURN_JONS_END_STR;
} finally {
if (in != null)
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
*/
@ResponseBody
@RequestMapping(value="/add")
public String addCourse(Course course) {
int res = 0;
if (course.getId() == null || course.getId().equals("")) {
try {
res = courseService.addCourse(course);
} catch (Exception e) {
e.printStackTrace();
System.out.println("添加失败!");
return "添加失败!";
}
if (res > 0)
return StrUtil.RESULT_TRUE;
return "添加失败";
} else {
res = courseService.updateCourse(course);
if (res > 0) return StrUtil.RESULT_TRUE;
return "修改失败!";
}
}
@ResponseBody
@RequestMapping(value="/complete")
public String complete(Course course) {
int res = courseService.completeCourse(course);
if (res > 0) return StrUtil.RESULT_TRUE;
return "操作失败!";
}
@ResponseBody
@RequestMapping(value="/delete")
public String deleteStudnet(Course c) {
if (courseService.deleteCourse(c) > 0) return StrUtil.RESULT_TRUE;
return "删除失败!";
}
/**
* 批量删除
* @param cIds
* @return
*/
@ResponseBody
@RequestMapping(value="/deleteList")
public String deleteStudnetList(String cIds) {
List<Integer> list = new ArrayList<Integer>();
try {
String[] ids = cIds.split(",");
for (String id: ids) {
@RequestMapping(value="/addPage")
public ModelAndView toAddPage() {
return new ModelAndView("/teacherAdd");
}
/**
* 增加,或者修改teacher
* @param opType
* @param teacher
* @return
*/
@ResponseBody
@RequestMapping(value="/add")
public String addTeacher(@RequestParam(defaultValue="2") int opType, Teacher teacher) {
int res = 0;
if (opType == 0) {
try {
teacher.setPassword(teacher.getPassword().toUpperCase());
res = teacherService.addTeacher(teacher);
} catch (Exception e) {
System.out.println("添加失败!学号重复!");
return "添加失败!工号重复!";
}
if (res > 0)
return StrUtil.RESULT_TRUE;
return "添加失败";
} else if (opType == 1) {
teacher.setPassword(null);
res = teacherService.updateTeacher(teacher);
if (res > 0) return StrUtil.RESULT_TRUE;
return "修改失败!";
}
return "error";
}
/**
* 重置密码
* @param id
* @return
*/
@ResponseBody
@RequestMapping(value="/resetPswd")
public String resetPasswrd(String id) {
Teacher teacher = new Teacher();
teacher.setId(id);
teacher.setPassword(MD5Util.MD5("123456"));
if (teacherService.updateTeacher(teacher) > 0) return StrUtil.RESULT_TRUE;
return "修改失败!";
}
@ResponseBody
@RequestMapping(value="/delete")
public String deleteStudnet(Teacher t) {
if (teacherService.deleteTeacher(t) > 0) return StrUtil.RESULT_TRUE;
@ResponseBody
@RequestMapping(value="/list")
public String getScoreList(Integer curr, Integer nums, ScoreVo scoreVo) {
System.out.println(scoreVo);
Pagination<ScoreVo> page = new Pagination<ScoreVo>();
page.setTotalItemsCount(scoreService.getTotalItemsCount(scoreVo));
page.setPageSize(nums);
page.setPageNum(curr);
List<ScoreVo> list = scoreService.getScoreList(page, scoreVo);
String jsonStr = StrUtil.RETURN_JONS_PRE_STR
+ page.getTotalItemsCount()
+ StrUtil.RETURN_JONS_MID_STR
+ JSON.toJSONString(list)
+ StrUtil.RETURN_JONS_END_STR;
System.out.println(jsonStr);
return jsonStr;
}
@ResponseBody
@RequestMapping("/export")
public void export(HttpServletRequest request, HttpServletResponse response, ScoreVo scoreVo)
throws ClassNotFoundException, IntrospectionException,
IllegalAccessException, ParseException, InvocationTargetException {
response.reset(); // 清除buffer缓存
// 设置文件名
response.setHeader("Content-Disposition", "attachment;filename="
+ System.currentTimeMillis() + ".xls");
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
XSSFWorkbook workbook = null;
// 导出Excel对象
workbook = scoreService.exportExcelInfo(scoreVo);
OutputStream output;
try {
output = response.getOutputStream();
BufferedOutputStream bufferedOutPut = new BufferedOutputStream(output);
bufferedOutPut.flush();
workbook.write(bufferedOutPut);
bufferedOutPut.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 学生查成绩列表
* @param curr
if (res > 0)
return StrUtil.RESULT_TRUE;
return "添加失败";
} else if (opType == 1) {
res = noticeService.updateNotice(notice);
if (res > 0) return StrUtil.RESULT_TRUE;
return "修改失败!";
}
return "error";
}
@ResponseBody
@RequestMapping(value="/delete")
public String deleteNotice(Notice notice) {
if (noticeService.deleteNotice(notice) > 0) return StrUtil.RESULT_TRUE;
return "删除失败!";
}
/**
* 批量删除
* @param stuIds
* @return
*/
@ResponseBody
@RequestMapping(value="/deleteList")
public String deleteNoticeList(String nIds) {
List<Integer> list = new ArrayList<Integer>();
try {
String[] ids = nIds.split(",");
for (String id: ids) {
list.add(Integer.parseInt(id));
}
if (noticeService.deleteNotice(list) > 0) {
return StrUtil.RESULT_TRUE;
}
} catch (Exception e) {
e.printStackTrace();
return "删除失败!参数出错!";//
}
return "删除失败!";
}
@ResponseBody
@RequestMapping(value="/uploadImg")
@Controller
@RequestMapping(value="/basecourse")
public class BaseCourseController {
@Autowired
private BaseCourseService baseCourseService;
@ResponseBody
@RequestMapping(value="/list")
public String getBaseCourseList(@RequestParam(defaultValue="0")int curr,@RequestParam(defaultValue="10")int nums,
@RequestParam(defaultValue="")String searchKey) {
Pagination<BaseCourse> page = new Pagination<BaseCourse>();
page.setTotalItemsCount(baseCourseService.getTotalItemsCount(searchKey));
page.setPageSize(nums);
page.setPageNum(curr);
List<BaseCourse> list = baseCourseService.getBaseCourse(page, searchKey);
String jsonStr = StrUtil.RETURN_JONS_PRE_STR + page.getTotalItemsCount()
+ StrUtil.RETURN_JONS_MID_STR
+ JSON.toJSONString(list) + StrUtil.RETURN_JONS_END_STR;
System.out.println(jsonStr);
return jsonStr;
}
@ResponseBody
@RequestMapping(value="/listForSelect")
public String getBaseCourseListForSelect(@RequestParam(defaultValue="") String searchKey) {
List<BaseCourse> list = baseCourseService.getBaseCourseForSelect(searchKey);
String jsonStr = StrUtil.RETURN_JONS_PRE_STR + list.size()
+ StrUtil.RETURN_JONS_MID_STR
+ JSON.toJSONString(list) + StrUtil.RETURN_JONS_END_STR;
return jsonStr;
@Controller
@RequestMapping(value="/main")
public class MainController {
@Autowired
CourseService courseService;
@RequestMapping(value="/index")
public ModelAndView toIndexPage(HttpSession session) {
User user = (User) session.getAttribute(StrUtil.USER);
if (user.getUserType().equals(StrUtil.ADMIN)) {
user = (Admin) user;
} else if (user.getUserType().equals(StrUtil.TEACHER)) {
user = (Teacher) user;
} else if (user.getUserType().equals(StrUtil.STUDENT)) {
user = (Student) user;
}
ModelAndView mav = new ModelAndView("index");
mav.addObject("user");
return mav;
}
@RequestMapping(value="/student")
public ModelAndView toStudentListPage(HttpSession session) {
return new ModelAndView("studentList");
}
@RequestMapping(value="/teacher")
public ModelAndView toTeacherListPage() {
return new ModelAndView("teacherList");
}
@RequestMapping(value="/course")
public ModelAndView toCourseListPage(HttpSession session, ModelAndView mav) {
String userType = ((User) session.getAttribute(StrUtil.USER)).getUserType();
if (userType.equals(StrUtil.ADMIN)) {
mav = new ModelAndView("courseList");
} else if(userType.equals(StrUtil.TEACHER)){
public ModelAndView toAddPage() {
return new ModelAndView("courseAdd");
}
/**
* 增加,或者修改Course
* @param Course
* @return
*/
@ResponseBody
@RequestMapping(value="/add")
public String addCourse(Course course) {
int res = 0;
if (course.getId() == null || course.getId().equals("")) {
try {
res = courseService.addCourse(course);
} catch (Exception e) {
e.printStackTrace();
System.out.println("添加失败!");
return "添加失败!";
}
if (res > 0)
return StrUtil.RESULT_TRUE;
return "添加失败";
} else {
res = courseService.updateCourse(course);
if (res > 0) return StrUtil.RESULT_TRUE;
return "修改失败!";
}
}
@ResponseBody
@RequestMapping(value="/complete")
public String complete(Course course) {
int res = courseService.completeCourse(course);
if (res > 0) return StrUtil.RESULT_TRUE;
return "操作失败!";
}
@ResponseBody
@RequestMapping(value="/delete")
public String deleteStudnet(Course c) {
if (courseService.deleteCourse(c) > 0) return StrUtil.RESULT_TRUE;
return "删除失败!";
}
/**
* 批量删除
* @param cIds
* @return
*/
@ResponseBody
/**
* 增加,或者修改Course
* @param Course
* @return
*/
@ResponseBody
@RequestMapping(value="/add")
public String addCourse(Course course) {
int res = 0;
if (course.getId() == null || course.getId().equals("")) {
try {
res = courseService.addCourse(course);
} catch (Exception e) {
e.printStackTrace();
System.out.println("添加失败!");
return "添加失败!";
}
if (res > 0)
return StrUtil.RESULT_TRUE;
return "添加失败";
} else {
res = courseService.updateCourse(course);
if (res > 0) return StrUtil.RESULT_TRUE;
return "修改失败!";
}
}
@ResponseBody
@RequestMapping(value="/complete")
public String complete(Course course) {
int res = courseService.completeCourse(course);
if (res > 0) return StrUtil.RESULT_TRUE;
return "操作失败!";
}
@ResponseBody
@RequestMapping(value="/delete")
public String deleteStudnet(Course c) {
if (courseService.deleteCourse(c) > 0) return StrUtil.RESULT_TRUE;
return "删除失败!";
}
}
}
@ResponseBody
@RequestMapping(value="/delete")
public String deleteStudnet(BaseCourse t) {
if (baseCourseService.deleteBaseCourse(t) > 0) return StrUtil.RESULT_TRUE;
return "删除失败!";
}
/**
* 批量删除
* @param tIds
* @return
*/
@ResponseBody
@RequestMapping(value="/deleteList")
public String deleteStudnetList(String cIds) {
List<Integer> list = new ArrayList<Integer>();
try {
String[] ids = cIds.split(",");
for (String id: ids) {
list.add(Integer.parseInt(id));
}
if (baseCourseService.deleteBaseCourse(list) > 0) {
return StrUtil.RESULT_TRUE;
}
} catch (Exception e) {
e.printStackTrace();
return "删除失败!参数出错!";//
}
return "删除失败!";
}
@ResponseBody
@RequestMapping("/import")
public String impotr(HttpServletRequest request, MultipartFile file) {
//获取上传的文件
InputStream in = null;
try {
in = file.getInputStream();
//数据导入
int res = baseCourseService.importExcelInfo(in,file);
if (res > 0) {
return StrUtil.RETURN_JONS_PRE_STR+"0"
+StrUtil.RETURN_JONS_MID_STR+"true"
+StrUtil.RETURN_JONS_END_STR;
} else {
return StrUtil.RETURN_JONS_PRE_STR+"0"
+StrUtil.RETURN_JONS_MID_STR+"false"
+StrUtil.RETURN_JONS_END_STR;
*/
@ResponseBody
@RequestMapping(value="/resetPswd")
public String resetPasswrd(String id) {
Student stu = new Student();
stu.setId(id);
stu.setPassword(MD5Util.MD5("123456"));
if (studentService.updateStudent(stu) > 0) return StrUtil.RESULT_TRUE;
return "修改失败!";
}
@ResponseBody
@RequestMapping(value="/delete")
public String deleteStudnet(Student stu) {
if (studentService.deleteStudent(stu) > 0) return StrUtil.RESULT_TRUE;
return "删除失败!";
}
/**
* 批量删除
* @param stuIds
* @return
*/
@ResponseBody
@RequestMapping(value="/deleteList")
public String deleteStudnetList(String stuIds) {
List<String> list = new ArrayList<String>();
try {
String[] ids = stuIds.split(",");
for (String id: ids) {
list.add(id);
}
if (studentService.deleteStudent(list) > 0) {
return StrUtil.RESULT_TRUE;
}
} catch (Exception e) {
e.printStackTrace();
return "删除失败!参数出错!";//
}
return "删除失败!";
mav = new ModelAndView("courseList");
} else if(userType.equals(StrUtil.TEACHER)){
mav = new ModelAndView("teacher/courseList");
} else {
mav = new ModelAndView("student/courseList");
}
return mav;
}
@RequestMapping(value="/score")
public ModelAndView toScoreListPage(HttpSession session, ModelAndView mav) {
User user = (User) session.getAttribute(StrUtil.USER);
String userType = user.getUserType();
if (userType.equals(StrUtil.ADMIN)) {
mav = new ModelAndView("scoreList");
} else if(userType.equals(StrUtil.TEACHER)){
mav = new ModelAndView("teacher/studentScoreList");
List<Course> list = courseService.getCourseListByTid(null, ((Teacher)user).getId());
mav.addObject("courseList", list);
} else {
mav = new ModelAndView("student/scoreList");
}
return mav;
}
@RequestMapping(value="/notice")
public ModelAndView toNoticeListPage(ModelAndView mav) {
mav = new ModelAndView("noticeList");
return mav;
}
@RequestMapping(value="/system")
public ModelAndView toSystemListPage(ModelAndView mav) {
mav = new ModelAndView("systemAuth");
return mav;
}
}
}
@RequestMapping(value="/score")
public ModelAndView toScoreListPage(HttpSession session, ModelAndView mav) {
User user = (User) session.getAttribute(StrUtil.USER);
String userType = user.getUserType();
if (userType.equals(StrUtil.ADMIN)) {
mav = new ModelAndView("scoreList");
} else if(userType.equals(StrUtil.TEACHER)){
mav = new ModelAndView("teacher/studentScoreList");
List<Course> list = courseService.getCourseListByTid(null, ((Teacher)user).getId());
mav.addObject("courseList", list);
} else {
mav = new ModelAndView("student/scoreList");
}
return mav;
}
@RequestMapping(value="/notice")
public ModelAndView toNoticeListPage(ModelAndView mav) {
mav = new ModelAndView("noticeList");
return mav;
}
@RequestMapping(value="/system")
public ModelAndView toSystemListPage(ModelAndView mav) {
mav = new ModelAndView("systemAuth");
return mav;
}
}






更多推荐



所有评论(0)