package com.example.controller;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.poi.excel.ExcelUtil;
import cn.hutool.poi.excel.ExcelWriter;
import com.example.common.Result;
import com.example.common.ResultCode;
import com.example.entity.ShipinjiaoxueInfo;
import com.example.dao.ShipinjiaoxueInfoDao;
import com.example.service.ShipinjiaoxueInfoService;
import com.example.exception.CustomException;
import com.example.common.ResultCode;
import com.example.vo.EchartsData;
import com.example.vo.ShipinjiaoxueInfoVo;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.example.service.*;
import org.springframework.web.bind.annotation.*;
import org.springframework.beans.factory.annotation.Value;
import cn.hutool.core.util.StrUtil;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.*;
import java.util.stream.Collectors;
@RestController
@RequestMapping(value = "/shipinjiaoxueInfo")
public class ShipinjiaoxueInfoController {
@Resource
private ShipinjiaoxueInfoService shipinjiaoxueInfoService;
@Resource
private ShipinjiaoxueInfoDao shipinjiaoxueInfoDao;
@PostMapping
public Result<ShipinjiaoxueInfo> add(@RequestBody ShipinjiaoxueInfoVo shipinjiaoxueInfo) {
//mixmajixami
shipinjiaoxueInfoService.add(shipinjiaoxueInfo);
return Result.success(shipinjiaoxueInfo);
}
//youtixing1
//youtixing2
@GetMapping("/getByDiqu")
public Result<List<Map<String,String>>> qidu() {
return Result.success(shipinjiaoxueInfoService.findByDiqu());
}
@DeleteMapping("/{id}")
public Result delete(@PathVariable Long id) {
shipinjiaoxueInfoService.delete(id);
return Result.success();
}
@PutMapping
public Result update(@RequestBody ShipinjiaoxueInfoVo shipinjiaoxueInfo) {
shipinjiaoxueInfoService.update(shipinjiaoxueInfo);
return Result.success();
}
//@PutMapping("/update2")
// public Result update2(@RequestBody ShipinjiaoxueInfoVo shipinjiaoxueInfo) {
// shipinjiaoxueInfoService.update2(shipinjiaoxueInfo);
// return Result.success();
// }
@GetMapping("/{id}")
public Result<ShipinjiaoxueInfo> detail(@PathVariable Long id) {
ShipinjiaoxueInfo shipinjiaoxueInfo = shipinjiaoxueInfoService.findById(id);
return Result.success(shipinjiaoxueInfo);
}
@GetMapping("/changeStatus/{id}")
public Result<ShipinjiaoxueInfo> changeStatus(@PathVariable Long id) {
shipinjiaoxueInfoService.changeStatus(id);
return Result.success();
}
@GetMapping
public Result<List<ShipinjiaoxueInfoVo>> all() {
return Result.success(shipinjiaoxueInfoService.findAll());
}
@GetMapping("/page/{name}")
public Result<PageInfo<ShipinjiaoxueInfoVo>> page(@PathVariable String name,
@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "5") Integer pageSize,
HttpServletRequest request) {
return Result.success(shipinjiaoxueInfoService.findPage(name, pageNum, pageSize, request));
}
@GetMapping("/pageqt/{name}")
public Result<PageInfo<ShipinjiaoxueInfoVo>> pageqt(@PathVariable String name,
@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "8") Integer pageSize,
HttpServletRequest request) {
return Result.success(shipinjiaoxueInfoService.findPageqt(name, pageNum, pageSize, request));
}
// @PostMapping("/register")
// public Result<ShipinjiaoxueInfo> register(@RequestBody ShipinjiaoxueInfo shipinjiaoxueInfo) {
// if (StrUtil.isBlank(shipinjiaoxueInfo.getName()) || StrUtil.isBlank(shipinjiaoxueInfo.getPassword())) {
// throw new CustomException(ResultCode.PARAM_ERROR);
// }
// return Result.success(shipinjiaoxueInfoService.add(shipinjiaoxueInfo));
// }
/**
* 批量通过excel添加信息
* @param file excel文件
* @throws IOException
*/
@PostMapping("/upload")
public Result upload(MultipartFile file) throws IOException {
List<ShipinjiaoxueInfo> infoList = ExcelUtil.getReader(file.getInputStream()).readAll(ShipinjiaoxueInfo.class);
if (!CollectionUtil.isEmpty(infoList)) {
// 处理一下空数据
List<ShipinjiaoxueInfo> resultList = infoList.stream().filter(x -> ObjectUtil.isNotEmpty(x.getShipinmingcheng())).collect(Collectors.toList());
for (ShipinjiaoxueInfo info : resultList) {
shipinjiaoxueInfoService.add(info);
}
}
return Result.success();
}
@GetMapping("/get/shipinjiaoxue_tj_suoshuleibie")
Result<List<EchartsData>> shipinjiaoxue_tj_suoshuleibie() {
List<EchartsData> list = new ArrayList<>();
List<Map<String, Object>> shipinjiaoxue_tj_suoshuleibieList = shipinjiaoxueInfoDao.shipinjiaoxue_tj_suoshuleibie();
Map<String, Double> typeMap = new HashMap<>();
for (Map<String, Object> map : shipinjiaoxue_tj_suoshuleibieList) {
typeMap.put((String)map.get("aa"), (Double.valueOf((String)map.get("bb").toString())));
}
getPieData("视频教学按所属类别统计", list, typeMap);
getBarData("视频教学按所属类别统计", list, typeMap);
return Result.success(list);
}
@GetMapping("/getExcelModel")
public void getExcelModel(HttpServletResponse response) throws IOException {
// 1. 生成excel
Map<String, Object> row = new LinkedHashMap<>();
row.put("shipinbianhao", "A视频编号");
row.put("shipinmingcheng", "A视频名称");
row.put("suoshuleibie", "A所属类别");
row.put("shipin", "A视频");
row.put("xuyaojinbi", "A需要金币");
row.put("shipinjianjie", "A视频简介");
row.put("status", "是");
row.put("level", "shipinjiaoxue");
List<Map<String, Object>> list = CollUtil.newArrayList(row);
// 2. 写excel
ExcelWriter writer = ExcelUtil.getWriter(true);
writer.write(list, true);
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
response.setHeader("Content-Disposition","attachment;filename=shipinjiaoxueInfoModel.xlsx");
ServletOutputStream out = response.getOutputStream();
writer.flush(out, true);
writer.close();
IoUtil.close(System.out);
}
@GetMapping("/getExcel")
public void getExcel(HttpServletResponse response) throws IOException {
// 1. 生成excel
Map<String, Object> row = new LinkedHashMap<>();
row.put("shipinbianhao", "A视频编号");
row.put("shipinmingcheng", "A视频名称");
row.put("suoshuleibie", "A所属类别");
row.put("shipin", "A视频");
row.put("xuyaojinbi", "A需要金币");
row.put("shipinjianjie", "A视频简介");
row.put("status", "是");
row.put("level", "权限");
List<Map<String, Object>> list = CollUtil.newArrayList(row);
List<Map<String, Object>> daochuexcellist = shipinjiaoxueInfoDao.daochuexcel();
Map<String, Double> typeMap = new HashMa
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Java项目实战,Java项目开发实例,基于springboot的毕设 【项目技术】 java+mysql+b/s+springboot 【实现功能】 管理员功能: 包括听说学习管理、视频教学管理、资料管理、金币充值管理和视频教学统计。系统的管理员也可以第一时间发布最新的公告信息,并且展示在前台的注册用户使用界面。 用户功能: 注册用户可以通过本成人教育教务管理系统其对应的用户权限操作,其中包括试听学习、视频教学、资料信息、系统概要和在线留言等用户权限操作。
资源推荐
资源详情
资源评论
收起资源包目录
Java毕业设计-基于springboot的成人教育教务系统(源码+演示视频).zip (964个子文件)
alipay_md5.asp 11KB
alipay_md5.asp 11KB
alipay_function.asp 6KB
alipay_function.asp 6KB
alipay_notify.asp 5KB
alipay_notify.asp 5KB
alipay_service.asp 2KB
alipay_service.asp 2KB
ZiliaoxinxiInfoController.class 13KB
ShipinjiaoxueInfoController.class 13KB
TingshuoxuexiInfoController.class 13KB
XinwentongzhiInfoController.class 13KB
YonghuxinxiInfoController.class 13KB
JinbichongzhiInfoController.class 13KB
LeibiexinxiInfoController.class 12KB
XitongjianjieInfoController.class 12KB
LiuyanbanInfoController.class 12KB
AccountController.class 11KB
AdminInfoController.class 9KB
NxSystemFileController.class 8KB
YonghuxinxiInfoService.class 6KB
EchartsController.class 5KB
XinwentongzhiInfoService.class 5KB
JinbichongzhiInfoService.class 5KB
AdminInfoService.class 5KB
ShipinjiaoxueInfoService.class 4KB
AdminInfo.class 4KB
ZiliaoxinxiInfoService.class 4KB
CommentInfoService.class 4KB
TingshuoxuexiInfoService.class 4KB
XitongjianjieInfoService.class 4KB
LeibiexinxiInfoService.class 4KB
XinwentongzhiInfo.class 4KB
CollectInfoController.class 4KB
LiuyanbanInfoService.class 4KB
CommentInfoController.class 4KB
YonghuxinxiInfo.class 4KB
RichtextInfoController.class 3KB
ZiliaoxinxiInfo.class 3KB
CollectInfoService.class 3KB
ShipinjiaoxueInfo.class 3KB
RichtextInfoService.class 3KB
NxSystemFileInfoService.class 3KB
TingshuoxuexiInfo.class 3KB
LiuyanbanInfo.class 3KB
CollectInfo.class 3KB
CommentInfo.class 3KB
Account.class 3KB
JinbichongzhiInfo.class 3KB
Result.class 2KB
EchartsData.class 2KB
ResultCode.class 2KB
MyInterceptor.class 2KB
XitongjianjieInfo.class 2KB
LeibiexinxiInfo.class 2KB
GlobalExceptionHandler.class 2KB
JinbichongzhiInfoDao.class 2KB
TingshuoxuexiInfoDao.class 2KB
ShipinjiaoxueInfoDao.class 2KB
ZiliaoxinxiInfoDao.class 2KB
XinwentongzhiInfoDao.class 2KB
YonghuxinxiInfoDao.class 2KB
EchartsData$Data.class 2KB
WebMvcConfig.class 2KB
CommentInfoDao.class 1KB
EchartsData$Series.class 1KB
LeibiexinxiInfoDao.class 1KB
MyInterceptorConfig.class 1KB
AuthorityInfo.class 1KB
NxSystemFileInfo.class 1KB
CollectInfoDao.class 1KB
RichtextInfo.class 1KB
LiuyanbanInfoDao.class 1KB
AuthorityInfo$Model.class 1KB
CustomException.class 1KB
XitongjianjieInfoDao.class 1KB
AdminInfoDao.class 928B
Application.class 793B
NxSystemFileInfoDao.class 773B
RichtextInfoDao.class 641B
JinbichongzhiInfoVo.class 332B
XinwentongzhiInfoVo.class 332B
XitongjianjieInfoVo.class 332B
ShipinjiaoxueInfoVo.class 332B
TingshuoxuexiInfoVo.class 332B
YonghuxinxiInfoVo.class 324B
ZiliaoxinxiInfoVo.class 324B
LeibiexinxiInfoVo.class 324B
LiuyanbanInfoVo.class 316B
RichtextInfoVo.class 312B
CollectInfoVo.class 308B
AdminInfoVo.class 300B
layer.cs 14KB
layer.cs 14KB
datepicker.cs 4KB
datepicker.cs 4KB
index.css 227KB
index.css 227KB
index.css 227KB
index.css 227KB
共 964 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10
资源评论
岛上程序猿
- 粉丝: 5819
- 资源: 4248
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- ACC自适应巡航的carsim与simulink联合仿真模型
- 儿童节烟花代码python实现
- 重庆邮电大学信号处理实验二报告
- 基于蒙特卡洛法的概率潮流 以IEEE33节点的电网为研究对象 建立了光伏和风电的概率出力模型 采用蒙特卡洛法进行随机抽样 之后基于抽样序列进行概率潮流计算 最后得到电网的电压概率出力曲线 程序有基
- SPI 接口作为slave的代码,Verilog编写注释详细,功能正确;
- python打包工具-windows一键打包运行
- 温度通信系统 LCD显示+上位机显示 传感器使用的是ds18b20,LCD显示温度,还可以串口通信在pc上显示温度,并且有VB的上位机程序,实时显示波形,实物验证成功 自己写的代码,注释详细 有代码有
- FocusAny v0.5.0 分离窗口快捷键,智能区域,工单使用支持 一个专注高效的AI工具条,可以使用 Alt / Option+空格 一键唤起,通过插件快速安装,可以扩展出非常多的功能
- 国产兼容三菱FX3U源码,最新一波bug修改,修改监控时卡顿问题 8位口令功能,程序消除功能,定时器特殊情况下不运行问题 带modbus-tcp功能,实时时钟,深度测试后,修改一些主要bug后,稳
- 爱乔(上海)医疗科技有限公司创投信息
- 电动汽车优化调度(分时电价调度) 软件:Matlab 介绍:首先利用蒙特卡洛模拟法模拟出电动汽车负荷曲线同时求解出无序充电功率曲线,作为有序充电曲线的对比基础,之后利用拉格朗日松弛算进行电动汽车优化调
- 北京慧夜科技有限公司创投信息
- 基于粒子群优化随机森林(PSO-RF)的数据回归预测 matlab代码
- 信号处理实验报告2-7.7z
- 高速铁路环境的时分-长期演进(TD-LTE)系统A3事件触发切算法的优化 通过对常规的A3事件切判决准则的研究,提供基于用户终端(UE)速度的A3事件触发切判决准则的算法 介绍时分-长期演进(TD
- 北京探马企服科技有限公司创投信息
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功