校车管理系统-源码(JT808 Server+苏标主动安全+运营管理后台+数据孪生大屏+家长APP+司机APP+照管员APP+司机酒测+毫米波生命探测雷达+车载人脸识别+车载智能网关)

 

重要代码:

808server服务

@Component(value = "gpsServer808")
public class GpsServer808 implements Runnable {

  private ChannelFuture future = null;
  private EventLoopGroup bossGroup;
  private EventLoopGroup workerGroup;

  @Value("#{configs['server808.port']}")
  private int port = 8808;
  @Resource
  private GpsServerInitializer808 gpsServerInitializer808;

  public void startServer() throws Exception {
    bossGroup = new NioEventLoopGroup();
    workerGroup = new NioEventLoopGroup();
    try {
      ServerBootstrap b = new ServerBootstrap();
      b.group(bossGroup, workerGroup);
      b.channel(NioServerSocketChannel.class);
      b.childOption(ChannelOption.RCVBUF_ALLOCATOR,
          new AdaptiveRecvByteBufAllocator(64, 2048, 65536));
      b.childHandler(gpsServerInitializer808);
      // 服务器绑定端口监听
      future = b.bind(port).sync();
      future.channel().closeFuture().sync();
    } finally {
      bossGroup.shutdownGracefully();
      workerGroup.shutdownGracefully();
    }
  }
@Component
public class GpsServerInitializer808 extends ChannelInitializer<SocketChannel> {

  @Resource
  private GpsHandler gpsHandler;

  @Override
  protected void initChannel(SocketChannel ch) throws Exception {
    ChannelPipeline pipeline = ch.pipeline();
    // 字符串解码 和 编码
    pipeline.addLast("decoder", new ProtocolDecoder());
    pipeline.addLast(new ReadTimeoutHandler(360));
    pipeline.addLast("encoder", new ByteArrayEncoder());
    // 自己的逻辑Handler
    pipeline.addLast("handler", gpsHandler);
  }

}
@Sharable
@Component
public class GpsHandler extends SimpleChannelInboundHandler<byte[]> implements IGpsHandler {

  public static final Logger log = LoggerFactory.getLogger("GpsHandler");

  public static AtomicInteger connectCount = new AtomicInteger();
@Override
protected void channelRead0(ChannelHandlerContext ctx, byte[] msg) {
  String msgStr = HexUtils.bytesToHex(msg, msg.length);
  dataTransmission(msgStr);
  dataForward(msg);
  printMsg(msgStr);
  saveMsg(msgStr);
  for (IProtocol protocol : this.protocols) {
    try {
      if (protocol.matching(msgStr)) {
        String tid = protocol.getTid(msgStr);
        ctx.attr(AttributeKey.valueOf("TID")).set(tid);
        Session session = Session.sessions.getIfPresent(tid);
        if (session == null) {
          session = new IoSession(ctx, protocol);
        } else {
          session.setChannelHandlerContext(ctx);
        }
        Session.sessions.put(tid, session);
        if (session.getAttribute("tid") == null) {
          session.setAttribute("tid", tid);
        }
        //通用
        QueueBean bean = new QueueBean();
        bean.setData(msg);
        bean.setTid(tid);
        Queue.GPS_DATA_QUEUE.add(bean);
      }
    } catch (Exception e) {
      System.out.println(msgStr);
      e.printStackTrace();
    }
  }
}

1078视频服务

public class App {

  public static final boolean AUDIO_ENABLE = true;

  public static void main(String[] args) {
    String portVideo = "6802", wsVideo = "6899",
        portAudio = "6805", wsAudio = "6806", portHttp = "6809";

    // 视频推流
    Jt1078MediaServer jt1078 = new Jt1078MediaServer(Integer.parseInt(portVideo),
        MediaChannelTypeEnum.VIDEO);
    jt1078.start();

    // 取流(视频播放器取flv)  websocket
    FlvWebSocketServer flvWs = new FlvWebSocketServer(Integer.parseInt(wsVideo));
    flvWs.start();

    // 音频
    Jt1078AudioServer audioServer = new Jt1078AudioServer(Integer.parseInt(portAudio));
    audioServer.start();

    // 音频 websocket
    AudioWebsocketServer audioWs = new AudioWebsocketServer(Integer.parseInt(wsAudio));
    audioWs.start();

    HttpServer http = new HttpServer(Integer.parseInt(portHttp));
    new Thread(http).start();

  }
public class Jt1078MediaServer extends Thread {

  private static final Logger log = LogManager.getLogger(Jt1078MediaServer.class);
  private int port;
  private MediaChannelTypeEnum mediaChannelType;
  private Channel serverChannel;

  public Jt1078MediaServer(int port, MediaChannelTypeEnum mediaChannelType) {
    this.port = port;
    this.mediaChannelType = mediaChannelType;
  }

  @Override
  public void run() {
    EventLoopGroup bossGroup = new NioEventLoopGroup();
    EventLoopGroup workerGroup = new NioEventLoopGroup();
    ServerBootstrap b = new ServerBootstrap();
    b.group(bossGroup, workerGroup)
        .channel(NioServerSocketChannel.class)
        .childHandler(new ChannelInitializer<SocketChannel>() {

          @Override
          protected void initChannel(SocketChannel ch) throws Exception {
            ch.pipeline().addLast(new Jt1078MediaFrameDecoder()); //解析出一个完整的rtp包(不确定)
            ch.pipeline().addLast(new Jt1078MediaHandler(mediaChannelType));
          }
        })
        .option(ChannelOption.SO_BACKLOG, 1024)
        .childOption(ChannelOption.SO_KEEPALIVE, true)
        .childOption(ChannelOption.TCP_NODELAY, true);

    try {
      log.info("JT1078流媒体服务启动,端口:{},mediaType:{}", port, mediaChannelType);
      serverChannel = b.bind(new InetSocketAddress(port)).sync().channel().closeFuture().sync()
          .channel();
    } catch (Exception e) {
      log.error("JT1078流媒体服务启动失败,端口:{},mediaType:{}", port,
mediaChannelType, e);
      System.exit(-1);
    }
  }
}
public class FlvWebSocketServer extends Thread {

  private static final Logger log = LogManager.getLogger(FlvWebSocketServer.class);

  public FlvWebSocketServer(int port) {
    this.port = port;
  }

  private int port;

  @Override
  public void run() {
    EventLoopGroup bossGroup = new NioEventLoopGroup();
    EventLoopGroup workerGroup = new NioEventLoopGroup();
    ServerBootstrap b = new ServerBootstrap();
    b.group(bossGroup, workerGroup)
        .channel(NioServerSocketChannel.class)
        .childHandler(new ChannelInitializer<SocketChannel>() {

          @Override
          protected void initChannel(SocketChannel ch) throws Exception {
            ch.pipeline().addLast("http-codec",
                new HttpServerCodec());
            ch.pipeline().addLast("aggregator",
                new HttpObjectAggregator(65536));
            ch.pipeline().addLast("http-chunked",
                new ChunkedWriteHandler());
            ch.pipeline().addLast("handler",
                new FlvWebSocketHandler());
          }
        })
        .option(ChannelOption.SO_BACKLOG, 1024)
        .childOption(ChannelOption.SO_KEEPALIVE, true)
        .childOption(ChannelOption.TCP_NODELAY, true);

    try {
      log.info("FlvWebSocket流媒体服务启动,端口:{}", port);
      b.bind(new InetSocketAddress(port)).sync().channel().closeFuture().sync().channel();
    } catch (Exception e) {
      log.error("FlvWebSocket服务启动失败,端口:{}", port, e);
      System.exit(-1);
    }
  }
}

校车管理

@Controller
@RequestMapping("/bus")
public class CarController extends BaseController {

  private String CAR_PREFIX = "/modular/car/";

  @Autowired
  private CarTypeService carTypeService;

  @Autowired
  private BusService busService;

  @Autowired
  private Jt808Service jt808Service;

  @RequestMapping("/search")
  @ResponseBody
  public AutoComInfo search(@RequestParam(required = false) String keywords) {
    AutoComInfo autoComInfo = new AutoComInfo();
    autoComInfo.setData(busService.search(keywords));
    return autoComInfo;
  }

  /**
   * 车辆信息页面
   *
   * @return
   */
  @RequestMapping("")
  public String index() {
    return CAR_PREFIX + "car.html";
  }

  /**
   * 车辆编辑页面
   *
   * @return
   */
  @Permission
  @RequestMapping("/edit")
  public String edit() {
    return CAR_PREFIX + "car_edit.html";
  }

  /**
   * 车辆新增页面
   *
   * @return
   */
  @Permission
  @RequestMapping("/add")
  public String add() {
    return CAR_PREFIX + "car_add.html";
  }

  /**
   * 车辆列表查询
   *
   * @param cardNo
   * @param carTypeId
   * @param openFlag
   * @return
   */
  @RequestMapping("/list")
  @ResponseBody
  public LayuiPageInfo list(String cardNo, String carTypeId, String openFlag) {
    return busService.getList(cardNo, carTypeId, openFlag);
  }

  /**
   * 列表导出
   *
   * @param cardNo
   * @param carTypeId
   * @param openFlag
   * @return
   */
  @RequestMapping("/export")
  @ResponseBody
  public void export(String cardNo,
      String carTypeId,
      String openFlag,
      HttpServletResponse response) {

    //模拟从数据库获取需要导出的数据
    List<CarResult> carList = busService.getListAll(cardNo, carTypeId,
        openFlag);

    String yyyyMMddHHmmss = DateUtil.format(new Date(), "yyyyMMddHHmmss");

    //导出操作
    ExcelUtils.exportExcel(carList, "车辆列表", "车辆列表", CarResult.class,
        yyyyMMddHHmmss + "车辆列表.xls", response);

  }

  /**
   * 车辆新增
   *
   * @param bus
   * @return
   */
  @RequestMapping("/addItem")
  @ResponseBody
  public ResponseData addItem(Bus bus, String cid) {
    busService.add(bus, cid.trim());
    return ResponseData.success();
  }

  /**
   * 车辆详细信息
   *
   * @param rowId
   * @return
   */
  @RequestMapping("/detail")
  @ResponseBody
  public ResponseData detail(String rowId) {
    return ResponseData.success(busService.getCarById(rowId));
  }

  /**
   * 车辆编辑
   *
   * @param bus
   * @return
   */
  @RequestMapping("/editItem")
  @ResponseBody
  public ResponseData editItem(Bus bus, String cid) {
    if (StrUtil.isBlank(bus.getIcon())) {
      bus.setIcon(null);
    }
    busService.edit(bus, cid.trim());
    return ResponseData.success();
  }

  /**
   * 车辆删除
   *
   * @param rowId
   * @return
   */
  @Permission
  @RequestMapping("/deleteItem")
  @ResponseBody
  public ResponseData deleteItem(String rowId) {
    busService.delete(rowId);
    return ResponseData.success();
  }

  /**
   * 车辆启用停用
   *
   * @return
   */
  @Permission
  @RequestMapping("/modifyStatus")
  @ResponseBody
  public ResponseData modifyStatus(String rowId, Boolean openFlag) {
    busService.update(Wrappers.<Bus>lambdaUpdate().eq(Bus::getRowId, rowId).set(Bus::getOpenFlag,
        openFlag).set(Bus::getUpdateTime, LocalDateTime.now()));
    return ResponseData.success();
  }

  /**
   * 车辆是否重点
   * @return
   */
  @Permission
  @RequestMapping("/modifyWhetherPoint")
  @ResponseBody
  public ResponseData modifyWhetherPoint(String rowId, Boolean whetherPoint){
    busService.update(Wrappers.<Bus>lambdaUpdate().eq(Bus::getRowId, rowId).set(Bus::getWhetherPoint,
        whetherPoint).set(Bus::getUpdateTime, LocalDateTime.now()));
    return ResponseData.success();
  }

  /**
   * 车型下拉框
   *
   * @return
   */
  @RequestMapping("/getCarTypeList")
  @ResponseBody
  public ResponseData getCarTypeList() {
    return ResponseData
        .success(carTypeService.list(Wrappers.lambdaQuery()));
  }

  @RequestMapping("/getServer808CarList")
  @ResponseBody
  public ResponseData getServer808CarList(){
    busService.saveOrUpdateJt808Car();
    return ResponseData.success();
  }
}

站点管理

@Controller
@RequestMapping("/station")
public class StationController extends BaseController {

  private String PREFIX = "/modular/station/";

  @Autowired
  private StationService stationService;

  /**
   * 列表页面
   */
  @RequestMapping("")
  public String index() {
    return PREFIX + "station.html";
  }

  /**
   * 新增页面
   */
  @RequestMapping("/add")
  public String add() {
    return PREFIX + "/station_add.html";
  }

  /**
   * 编辑页面
   */
  @RequestMapping("/edit")
  public String edit() {
    return PREFIX + "/station_edit.html";
  }

  /**
   * 列表接口
   *
   * @param name
   * @return
   */
  @RequestMapping("/list")
  @ResponseBody
  public LayuiPageInfo list(@RequestParam(value = "name", required = false) String name) {
    return stationService.findPageBySpec(name);
  }

  /**
   * 新增接口
   */
  @RequestMapping("/addItem")
  @ResponseBody
  public ResponseData addItem(Station station) {
    stationService.add(station);
    return ResponseData.success();
  }

  /**
   * 编辑接口
   */
  @RequestMapping("/editItem")
  @ResponseBody
  public ResponseData editItem(Station station) {
    stationService.update(station);
    return ResponseData.success();
  }

  /**
   * 删除接口
   */
  @RequestMapping("/delete")
  @ResponseBody
  public ResponseData delete(String id) {
    stationService.delete(id);
    return ResponseData.success();
  }

  /**
   * 查看详情接口
   */
  @RequestMapping("/detail")
  @ResponseBody
  public ResponseData detail(String id) {
    Station detail = stationService.getById(id);
    return ResponseData.success(detail);
  }

  /**
   * 站点列表
   *
   * @param routeId 路线Id
   */
  @RequestMapping("/stationList")
  @ResponseBody
  public ResponseData stationList(@RequestParam String routeId) {
    List<Station> stationList = stationService.list(Wrappers.<Station>lambdaQuery()
        .select(Station::getRowId, Station::getStationName).eq(Station::getRouteId, routeId)
        .orderByAsc(Station::getSequence));
    return ResponseData.success(stationList);
  }


}

学生管理

@Controller
@RequestMapping("/student")
public class StudentController extends BaseController {

    private String PREFIX = "/modular/student/";

    @Autowired
    private StudentService studentService;

    /**
     * 详情页面
     */
    @RequestMapping("/detail")
    public String detail() {
        return PREFIX + "student_detail.html";
    }

    /**
     * 学生列表页面
     *
     * @return
     */
    @RequestMapping("")
    public String index() {
        return PREFIX + "student_list.html";
    }

    /**
     * 从学生列表跳转至学生详情页面
     *
     * @return
     */
    @RequestMapping("/info")
    public String info() {
        return PREFIX + "student_list_info.html";
    }

    /**
     * 查看详情接口
     */
    @RequestMapping("/detailItem")
    @ResponseBody
    public ResponseData detail(String id) {
        StudentResult studentResult = studentService.detail(id);
        return ResponseData.success(studentResult);
    }


    @RequestMapping("/toEdit")
    @Permission
    public String toEdit() {
        return PREFIX + "student_edit.html";
    }


    @PostMapping("/editItem")
    @ResponseBody
    public ResponseData edit(@RequestBody AppStudentAddParams appStudentAddParams) {
        if (StrUtil.isBlank(appStudentAddParams.getPhoto())) {
            appStudentAddParams.setPhoto(null);
        }
        studentService.edit(appStudentAddParams);
        return ResponseData.success();
    }

    /**
     * 是否拉黑
     *
     * @param student
     * @return
     */
    @Permission
    @PostMapping("/statusItem")
    @ResponseBody
    public ResponseData statusItem(Student student) {
        Student student1 = new Student();
        student1.setStatus(student.getStatus());
        student1.setRowId(student.getRowId());
        studentService.updateById(student1);
        return ResponseData.success();
    }

    /**
     * 修改时根据id获取详细信息
     *
     * @param id
     * @return
     */
    @RequestMapping("/getEditDetail")
    @ResponseBody
    public ResponseData getEditDetail(String id) {
        AppStudentResult student = studentService.getEditDetail(id);
        return ResponseData.success(student);
    }

    @RequestMapping("/allotItem")
    @ResponseBody
    public ResponseData allotItem(@RequestBody List<Map<String,Object>> rowList){
        studentService.allotItem(rowList);
        return ResponseData.success();
    }

    /**
     * 学生列表
     *
     * @param studentName
     * @param parentName
     * @return
     */
    @RequestMapping("/list")
    @ResponseBody
    public LayuiPageInfo list(@RequestParam(required = false) String studentName,
                              @RequestParam(required = false) String parentName,
                              @RequestParam(required = false) String status,
                              @RequestParam(required = false) String schoolId) {
        return studentService.getList(studentName, parentName, status,schoolId);
    }


    /**
     * 列表导出
     *
     * @return
     */
    @RequestMapping("/export")
    @ResponseBody
    public void export(String studentName, String parentName, String status,String schoolId,
                       HttpServletResponse response) {

        //模拟从数据库获取需要导出的数据
        List<StudentPageResult> list = studentService.getListAll(studentName, parentName, status,schoolId);

        String yyyyMMddHHmmss = DateUtil.format(new Date(), "yyyyMMddHHmmss");
        String str = "学生列表";

        //导出操作
        ExcelUtils.exportExcel(list, str, str, StudentPageResult.class,
                yyyyMMddHHmmss + str + ".xls", response);

    }

    /**
     * 学生删除
     *
     * @return
     */
    @Permission
    @RequestMapping("/deleteItem")
    @ResponseBody
    public ResponseData deleteItem(String rowId) {
        studentService.deleteItem(rowId);
        return ResponseData.success();
    }

    /**
     * 从学生列表查看学生详细信息
     *
     * @param rowId
     * @return
     */
    @RequestMapping("/getStudentById")
    @ResponseBody
    public ResponseData getStudentById(String rowId) {
        return ResponseData.success(studentService.getStudentById(rowId));
    }
}

学校管理

@Controller
@RequestMapping("/school")
public class SchoolController extends BaseController {

    private String PREFIX = "/modular/school/";
    @Autowired
    private SchoolService schoolService;
    @Autowired
    private AreaService areaService;
    @Autowired
    private ProvinceService provinceService;
    @Autowired
    private CityService cityService;

    @Autowired
    private SemesterService semesterService;
    @Autowired
    private RouteService routeService;
    @Autowired
    private PackagePriceService packagePriceService;
    @Autowired
    private PackageInfoService packageInfoService;
    @Autowired
    private GradeService gradeService;

    /**
     * 学校列表一览页面
     *
     * @return
     */
    @RequestMapping("")
    public String index() {
        return PREFIX + "school.html";
    }

    /**
     * 新增页面
     */
    @Permission
    @RequestMapping("/add")
    public String add() {
        return PREFIX + "school_add.html";
    }

    /**
     * 编辑页面
     */
    @Permission
    @RequestMapping("/edit")
    public String edit() {
        return PREFIX + "school_edit.html";
    }

    /**
     * 跳转学期设置列表页面
     *
     * @return
     */
    @RequestMapping("/toTermSetting")
    public String toTermSetting() {
        return PREFIX + "school_term_setting.html";
    }

    /**
     * 跳转拥有路线页面
     *
     * @return
     */
    @RequestMapping("/toOwnRoute")
    public String toOwnRoute() {
        return PREFIX + "school_own_route.html";
    }



    /**
     * 列表分页查询
     *
     * @param mobile     手机号
     * @param schoolName 学校名称
     * @return
     */
    @GetMapping("/list")
    @ResponseBody
    public LayuiPageInfo list(@RequestParam(required = false) String mobile,
                              @RequestParam(required = false) String schoolName) {
        return schoolService.getList(mobile, schoolName);
    }

    /**
     * 列表导出
     *
     * @return
     */
    @RequestMapping("/export")
    @ResponseBody
    public void export(String mobile, String schoolName,
                       HttpServletResponse response) {

        //模拟从数据库获取需要导出的数据
        List<SchoolResult> list = schoolService.getListAll(mobile, schoolName);

        String yyyyMMddHHmmss = DateUtil.format(new Date(), "yyyyMMddHHmmss");
        String str = "学校列表";

        //导出操作
        ExcelUtils.exportExcel(list, str, str, SchoolResult.class,
                yyyyMMddHHmmss + str + ".xls", response);

    }

    /**
     * 学校包含的学期列表
     *
     * @param schoolId
     * @return
     */
    @GetMapping("/getTermSettingList")
    @ResponseBody
    public LayuiPageInfo getTermSettingList(@RequestParam String schoolId) {
        return semesterService.getTermSettingList(schoolId);
    }

    /**
     * 跳转到学期编辑页面
     *
     * @return
     */
    @Permission
    @RequestMapping("/toTermSettingEdit")
    public String toTermSettingEdit() {
        return PREFIX + "school_term_setting_edit.html";
    }

    /**
     * 跳转到学期新增页面
     *
     * @return
     */
    @Permission
    @RequestMapping("/toTermSettingAdd")
    public String toTermSettingAdd() {
        return PREFIX + "school_term_setting_add.html";
    }

    /**
     * 学期编辑接口
     *
     * @param semesterParam
     * @return
     */
    @RequestMapping("/editTermSetting")
    @ResponseBody
    public ResponseData editTermSetting(@RequestBody SemesterParam semesterParam) {
        semesterService.editTermSetting(semesterParam);
        return ResponseData.success();
    }

    /**
     * 学期新增接口
     *
     * @param semesterParam
     * @return
     */
    @RequestMapping("/addTermSetting")
    @ResponseBody
    public ResponseData addTermSetting(@RequestBody SemesterParam semesterParam) {
        semesterService.addTermSetting(semesterParam);
        return ResponseData.success();
    }

    /**
     * 学期详情接口
     *
     * @param rowId
     * @return
     */
    @RequestMapping("/getTermSettingDetail")
    @ResponseBody
    public ResponseData getTermSettingDetail(String rowId) {
        return ResponseData.success(semesterService.getTermSettingDetail(rowId));
    }


    /**
     * 年级列表
     *
     * @return
     */
    @RequestMapping("/getGradeListBySemester")
    @ResponseBody
    public ResponseData getGradeListBySemester() {
        return ResponseData.success(gradeService.getGradeListBySemester());
    }

    /**
     * 学校新增
     *
     * @param school
     * @return
     */
    @RequestMapping("/addItem")
    @ResponseBody
    public ResponseData addItem(School school) {
        schoolService.addItem(school);
        return ResponseData.success();
    }

    /**
     * 学校编辑
     *
     * @param school
     * @return
     */
    @RequestMapping("/editItem")
    @ResponseBody
    public ResponseData editItem(School school) {
        schoolService.editItem(school);
        return ResponseData.success();
    }

    /**
     * 根据学校id查询拥有路线
     *
     * @param routeParam
     * @return
     */
    @RequestMapping("/getRouteListBySchoolId")
    @ResponseBody
    public LayuiPageInfo getRouteListBySchoolId(RouteParam routeParam) {
        return routeService.findPageBySpec(routeParam);
    }

    /**
     * 查看详情接口
     *
     * @param rowId
     * @return
     */
    @RequestMapping("/detailItem")
    @ResponseBody
    public ResponseData detailItem(@RequestParam String rowId) {
        return ResponseData.success(schoolService.detailItem(rowId));
    }

    /**
     * 获取全部省下拉框
     *
     * @return
     */
    @RequestMapping("/getProvinceList")
    @ResponseBody
    public ResponseData getProvinceList() {
        return ResponseData.success(provinceService.getList());
    }

    /**
     * 根据省获取市下拉框
     *
     * @return
     */
    @RequestMapping("/getCityList")
    @ResponseBody
    public ResponseData getCityList(String provinceId) {
        return ResponseData.success(cityService.getList(provinceId));
    }

    /**
     * 根据市获取区下拉框
     *
     * @return
     */
    @RequestMapping("/getAreaList")
    @ResponseBody
    public ResponseData getAreaList(String cityId) {
        return ResponseData.success(areaService.getList(cityId));
    }

    /**
     * 根据区获取市 省
     *
     * @return
     */
    @RequestMapping("/getCityByAreaId")
    @ResponseBody
    public ResponseData getCityByAreaId(String areaId) {
        return ResponseData.success(cityService.getCityByAreaId(areaId));
    }


    /**
     * 删除学校
     *
     * @param rowId
     * @return
     */
    @Permission
    @RequestMapping("/deleteItem")
    @ResponseBody
    public ResponseData deleteItem(String rowId) {
        schoolService.deleteItem(rowId);
        return ResponseData.success();
    }

    /**
     * 状态启用停用
     *
     * @param rowId
     * @param openFlag
     * @return
     */
    @RequestMapping("/statusItem")
    @ResponseBody
    @Permission
    public ResponseData statusItem(String rowId, Boolean openFlag) {
        schoolService.statusItem(rowId, openFlag);
        return ResponseData.success();
    }

    /**
     * 学期删除
     *
     * @param rowId
     * @return
     */
    @Permission
    @RequestMapping("/deleteTermSetting")
    @ResponseBody
    public ResponseData deleteTermSetting(String rowId) {
        semesterService.deleteTermSetting(rowId);
        return ResponseData.success();
    }

    /**
     * 获取当前学期的套餐包以及套餐包价格
     *
     * @param semesterId
     * @return
     */
    @RequestMapping("/getPackageInfoAndPriceList")
    @ResponseBody
    public LayuiPageInfo getPackageInfoAndPriceList(String semesterId) {
        return packagePriceService.getPackageInfoAndPriceList(semesterId);
    }



    /**
     * 获取套餐下拉框
     *
     * @return
     */
    @RequestMapping("/getPackageInfoList")
    @ResponseBody
    public ResponseData getPackageInfoList() {
        return ResponseData.success(packageInfoService.getPackageInfoList());
    }


}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值