puzhibing
2023-07-31 3544133928b1f1a8452e3dc933589418d4899bd1
新增课程管理模块
15个文件已修改
103个文件已删除
12个文件已添加
23691 ■■■■■ 已修改文件
cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/mapper/TCourseMapper.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/model/EditCourseState.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/model/QueryCourseList.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/TCourseService.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCourseServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/util/PageFactory.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/resources/mapper/TCourseMapper.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/entity/CancleOrder.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/entity/Car.java 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/entity/CarBrand.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/entity/CarModel.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/entity/CarService.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseClient.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/QueryCourseList.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/mapper/CarBrandMapper.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/mapper/CarMapper.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/mapper/CarModelMapper.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/mapper/CarServiceMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/service/ICancleOrderService.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/service/ICarService.java 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/service/ICarServiceService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/service/impl/CarServiceServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCourseController.java 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/EditCourseState.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TCourse.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ICourseService.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CourseServiceImpl.java 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/OssUploadUtil.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/resources/mapper/CarBrandMapper.xml 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/resources/mapper/CarMapper.xml 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/resources/mapper/CarModelMapper.xml 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/resources/mapper/CarServiceMapper.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/login.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/course/course.html 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/course/course_add.html 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/course/course_edit.html 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/course/course_info.html 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCar/carInsurance.html 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCar/carInsuranceInfo.html 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCar/tCar.html 211 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCar/tCar_add.html 381 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCar/tCar_edit.html 401 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCarBrand/tCarBrand.html 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCarBrand/tCarBrand_add.html 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCarBrand/tCarBrand_edit.html 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCarModel/tCarModel.html 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCarModel/tCarModel_add.html 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCarModel/tCarModel_edit.html 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompany/franchisee.html 186 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompany/platformEdit.html 678 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompany/tCompany.html 197 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompany/tCompanyAudit.html 162 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompany/tCompanyAudit_immediately.html 733 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_add.html 581 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_addFranchisee.html 498 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_detail.html 636 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_detailFranchisee.html 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_edit.html 664 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_updateFranchisee.html 582 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tDriver/punish.html 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tDriver/tDriver.html 173 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tDriver/tDriverVerify.html 139 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tDriver/tDriverVerify_edit.html 483 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_add.html 329 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_changeCar.html 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_edit.html 359 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_immediately.html 243 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_look.html 186 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_optDriver.html 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tDriver/training.html 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tDriver/yesDriver.html 153 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tOrderEvaluate/tOrderEvaluate.html 139 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tOrderEvaluate/tOrderEvaluate_add.html 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tOrderEvaluate/tOrderEvaluate_edit.html 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tOrderLogistics/tOrderLogistics.html 223 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tOrderLogistics/tOrderLogistics_add.html 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tOrderLogistics/tOrderLogistics_detail.html 201 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tOrderLogistics/tOrderLogistics_edit.html 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tOrderPrivateCar/tOrderPrivateCar.html 257 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tOrderPrivateCar/tOrderPrivateCar_add.html 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tOrderPrivateCar/tOrderPrivateCar_orderDetail.html 246 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tOrderPrivateCar/tOrderPrivateCar_trajectory.html 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/userActivity/addRegist.html 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/userActivity/receiveRecord.html 442 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/userActivity/sysCouponRecord.html 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/userActivity/sysCouponRecord1.html 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/userActivity/sysCouponRecord2.html 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/userActivity/sysRedPacketRecord.html 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/userActivity/userActivity.html 187 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/userActivity/userActivity_add.html 615 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/userActivity/userActivity_detail.html 998 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/userActivity/userActivity_detail1.html 607 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/userActivity/userActivity_edit.html 489 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/userActivity/userActivity_immediately.html 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/js/common/web-upload-object.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/course/course.js 329 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/course/course_info.js 182 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tCar/carInsurance.js 117 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tCar/carInsuranceInfo.js 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tCar/tCar.js 423 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tCar/tCar_info.js 461 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tCarBrand/tCarBrand.js 224 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tCarBrand/tCarBrand_info.js 181 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tCarModel/tCarModel.js 217 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tCarModel/tCarModel_info.js 146 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tLine/tLine.js 244 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tLine/tLine_info.js 454 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tOrderCharteredCar/tOrderCharteredCar.js 229 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tOrderCharteredCar/tOrderCharteredCar_info.js 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tOrderCrossCity/tOrderCrossCity.js 401 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tOrderCrossCity/tOrderCrossCity_info.js 244 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tOrderEvaluate/tOrderEvaluate.js 203 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tOrderEvaluate/tOrderEvaluate_info.js 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tOrderLogistics/tOrderLogistics.js 470 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tOrderLogistics/tOrderLogistics_info.js 238 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tOrderPrivateCar/tOrderPrivateCar.js 486 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tOrderPrivateCar/tOrderPrivateCar_info.js 243 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tOrderTaxi/selectDriver.js 150 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tOrderTaxi/tOrderTaxi.js 435 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tOrderTaxi/tOrderTaxi_info.js 236 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tServerCarmodel/acrossCity.js 209 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tServerCarmodel/acrossCity_info.js 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tServerCarmodel/charter.js 214 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tServerCarmodel/charter_info.js 173 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tServerCarmodel/tServerCarmodel.js 205 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tServerCarmodel/tServerCarmodel_info.js 131 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/model/QueryMySiteVo.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java
@@ -1,7 +1,9 @@
package com.dsh.course.controller;
import cn.mb.cloud.common.data.controller.BaseController;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dsh.course.entity.TCourse;
import com.dsh.course.entity.TCoursePackagePayment;
import com.dsh.course.entity.TCoursePackageType;
@@ -11,6 +13,7 @@
import com.dsh.course.service.TCoursePackageService;
import com.dsh.course.service.TCoursePackageTypeService;
import com.dsh.course.service.TCourseService;
import com.dsh.course.util.PageFactory;
import com.dsh.course.util.PayMoneyUtil;
import com.dsh.course.util.ResultUtil;
import com.dsh.course.util.TokenUtil;
@@ -35,7 +38,7 @@
@CrossOrigin
@RestController
@RequestMapping("")
public class CourseController {
public class CourseController extends BaseController {
    private Logger logger = LoggerFactory.getLogger("business-log");
@@ -276,4 +279,70 @@
            return null;
        }
    }
    /**
     * 获取课程管理列表数据
     * @param queryCourseList
     * @return
     */
    @ResponseBody
    @PostMapping("/course/queryCourseLists")
    public Page<Map<String, Object>> queryCourseLists(@RequestBody QueryCourseList queryCourseList){
        Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage(queryCourseList.getLimit(), queryCourseList.getOffset(), queryCourseList.getSort(), queryCourseList.getOrder());
        Page<Map<String, Object>> mapPage = page.setRecords(courseService.queryCourseList(page, queryCourseList));
        return mapPage;
    }
    /**
     * 添加课程
     * @param course
     */
    @ResponseBody
    @PostMapping("/course/addCourse")
    public void addCourse(@RequestBody TCourse course){
        courseService.save(course);
    }
    /**
     * 编辑数据
     * @param course
     */
    @ResponseBody
    @PostMapping("/course/editCourse")
    public void editCourse(@RequestBody TCourse course){
        courseService.updateById(course);
    }
    /**
     * 删除数据
     * @param id
     */
    @ResponseBody
    @PostMapping("/course/delCourseById")
    public void delCourseById(@RequestBody Integer id){
        TCourse course = courseService.getById(id);
        if(null != course){
            course.setState(3);
            courseService.updateById(course);
        }
    }
    /**
     * 编辑数据状态
     * @param editCourseState
     */
    @ResponseBody
    @PostMapping("/course/editCourseState")
    public void editCourseState(@RequestBody EditCourseState editCourseState){
        TCourse course = courseService.getById(editCourseState.getId());
        if(null != course){
            course.setState(editCourseState.getState());
            courseService.updateById(course);
        }
    }
}
cloud-server-course/src/main/java/com/dsh/course/mapper/TCourseMapper.java
@@ -1,7 +1,13 @@
package com.dsh.course.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dsh.course.entity.TCourse;
import com.dsh.course.model.QueryCourseList;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
@@ -14,4 +20,13 @@
 */
public interface TCourseMapper extends BaseMapper<TCourse> {
    /**
     * 获取课程管理列表
     * @param page
     * @param queryCourseList
     * @return
     */
    List<Map<String, Object>> queryCourseList(Page<Map<String, Object>> page, @Param("item") QueryCourseList queryCourseList);
}
cloud-server-course/src/main/java/com/dsh/course/model/EditCourseState.java
New file
@@ -0,0 +1,19 @@
package com.dsh.course.model;
import lombok.Data;
/**
 * @author zhibing.pu
 * @Date 2023/7/31 17:33
 */
@Data
public class EditCourseState {
    /**
     * 数据id
     */
    private Integer id;
    /**
     * 状态(1=上架,2=下架)
     */
    private Integer state;
}
cloud-server-course/src/main/java/com/dsh/course/model/QueryCourseList.java
New file
@@ -0,0 +1,26 @@
package com.dsh.course.model;
import lombok.Data;
/**
 * @author zhibing.pu
 * @Date 2023/7/31 14:21
 */
@Data
public class QueryCourseList {
    /**
     * 课程名称
     */
    private String name;
    /**
     * 课程类型
     */
    private Integer courseType;
    /**
     * 排序
     */
    private String order;
    private Integer offset;
    private Integer limit;
    private String sort;
}
cloud-server-course/src/main/java/com/dsh/course/service/TCourseService.java
@@ -1,7 +1,12 @@
package com.dsh.course.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dsh.course.entity.TCourse;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dsh.course.model.QueryCourseList;
import java.util.List;
import java.util.Map;
/**
 * <p>
@@ -13,4 +18,12 @@
 */
public interface TCourseService extends IService<TCourse> {
    /**
     * 获取课程管理列表
     * @param page
     * @param queryCourseList
     * @return
     */
    List<Map<String, Object>> queryCourseList(Page<Map<String, Object>> page, QueryCourseList queryCourseList);
}
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCourseServiceImpl.java
@@ -1,10 +1,15 @@
package com.dsh.course.service.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dsh.course.entity.TCourse;
import com.dsh.course.mapper.TCourseMapper;
import com.dsh.course.model.QueryCourseList;
import com.dsh.course.service.TCourseService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
@@ -19,5 +24,14 @@
public class TCourseServiceImpl extends ServiceImpl<TCourseMapper, TCourse> implements TCourseService {
    /**
     * 获取课程管理列表
     * @param page
     * @param queryCourseList
     * @return
     */
    @Override
    public List<Map<String, Object>> queryCourseList(Page<Map<String, Object>> page, QueryCourseList queryCourseList) {
        return this.baseMapper.queryCourseList(page, queryCourseList);
    }
}
cloud-server-course/src/main/java/com/dsh/course/util/PageFactory.java
New file
@@ -0,0 +1,28 @@
package com.dsh.course.util;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.util.StringUtils;
/**
 * BootStrap Table默认的分页参数创建
 *
 * @author fengshuonan
 * @date 2017-04-05 22:25
 */
public class PageFactory<T> {
    public Page<T> defaultPage(Integer limit, Integer offset, String sort, String order) {
        if (StringUtils.isEmpty(sort)) {
            Page<T> page = new Page<>((offset / limit + 1), limit);
            return page;
        } else {
            Page<T> page = new Page<T>((offset / limit + 1), limit);
            if ("asc".equals(order)) {
            } else {
            }
            return page;
        }
    }
}
cloud-server-course/src/main/resources/mapper/TCourseMapper.xml
@@ -16,4 +16,15 @@
    </resultMap>
    <select id="queryCourseList" resultType="map">
        select id, type, name, introduce, coverDrawing, state from t_course where state != 3
        <if test="null != item.name and '' != item.name">
            and name like CONCAT('%', #{item.name}, '%')
        </if>
        <if test="null != item.courseType">
            and type = #{item.courseType}
        </if>
        order by insertTime desc
    </select>
</mapper>
cloud-server-management/src/main/java/com/dsh/course/entity/CancleOrder.java
File was deleted
cloud-server-management/src/main/java/com/dsh/course/entity/Car.java
File was deleted
cloud-server-management/src/main/java/com/dsh/course/entity/CarBrand.java
File was deleted
cloud-server-management/src/main/java/com/dsh/course/entity/CarModel.java
File was deleted
cloud-server-management/src/main/java/com/dsh/course/entity/CarService.java
File was deleted
cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseClient.java
@@ -1,10 +1,15 @@
package com.dsh.course.feignClient.course;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dsh.course.feignClient.course.model.QueryCourseList;
import com.dsh.guns.modular.system.model.EditCourseState;
import com.dsh.guns.modular.system.model.TCourse;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
import java.util.Map;
/**
 * @author zhibing.pu
@@ -13,6 +18,52 @@
@FeignClient("mb-cloud-course")
public interface CourseClient {
    /**
     * 获取课程管理列表
     * @param queryCourseList
     * @return
     */
    @PostMapping("/course/queryCourseLists")
    Page<Map<String, Object>> queryCourseLists(QueryCourseList queryCourseList);
    /**
     * 添加课程
     * @param course
     */
    @PostMapping("/course/queryCourseList")
    void addCourse(TCourse course);
    /**
     * 根据id获取数据
     * @param id
     * @return
     */
    @PostMapping("/course/queryCourseById")
    TCourse queryCourseById(Integer id);
    /**
     * 修改数据
     * @param course
     */
    @PostMapping("/course/editCourse")
    void editCourse(TCourse course);
    /**
     * 删除数据
     * @param id
     */
    @PostMapping("/course/delCourseById")
    void delCourseById(Integer id);
    /**
     * 修改数据状态
     * @param editCourseState
     */
    @PostMapping("/course/editCourseState")
    void editCourseState(EditCourseState editCourseState);
}
cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/QueryCourseList.java
New file
@@ -0,0 +1,26 @@
package com.dsh.course.feignClient.course.model;
import lombok.Data;
/**
 * @author zhibing.pu
 * @Date 2023/7/31 14:21
 */
@Data
public class QueryCourseList {
    /**
     * 课程名称
     */
    private String name;
    /**
     * 课程类型
     */
    private Integer courseType;
    /**
     * 排序
     */
    private String order;
    private Integer offset;
    private Integer limit;
    private String sort;
}
cloud-server-management/src/main/java/com/dsh/course/mapper/CarBrandMapper.java
File was deleted
cloud-server-management/src/main/java/com/dsh/course/mapper/CarMapper.java
File was deleted
cloud-server-management/src/main/java/com/dsh/course/mapper/CarModelMapper.java
File was deleted
cloud-server-management/src/main/java/com/dsh/course/mapper/CarServiceMapper.java
File was deleted
cloud-server-management/src/main/java/com/dsh/course/service/ICancleOrderService.java
File was deleted
cloud-server-management/src/main/java/com/dsh/course/service/ICarService.java
File was deleted
cloud-server-management/src/main/java/com/dsh/course/service/ICarServiceService.java
File was deleted
cloud-server-management/src/main/java/com/dsh/course/service/impl/CarServiceServiceImpl.java
File was deleted
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCourseController.java
@@ -1,9 +1,17 @@
package com.dsh.guns.modular.system.controller.code;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dsh.guns.core.base.controller.BaseController;
import com.dsh.guns.core.common.constant.factory.PageFactory;
import com.dsh.guns.modular.system.model.TCourse;
import com.dsh.guns.modular.system.service.ICourseService;
import com.dsh.guns.modular.system.util.ResultUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
/**
 * 课程管理
@@ -12,9 +20,14 @@
 */
@Controller
@RequestMapping("/course")
public class TCourseController {
public class TCourseController extends BaseController {
    private String PREFIX = "/system/course/";
    @Autowired
    private ICourseService courseService;
    /**
@@ -36,4 +49,101 @@
        return PREFIX + "course_add.html";
    }
    /**
     * 跳转到编辑页
     * @param id
     * @param model
     * @return
     */
    @GetMapping("/showEditCourse")
    public String showEditCourse(Integer id, Model model){
        TCourse tCourse = courseService.queryCourseById(id);
        model.addAttribute("item", tCourse);
        return PREFIX + "course_edit.html";
    }
    /**
     * 跳转到详情页
     * @param id
     * @param model
     * @return
     */
    @GetMapping("/showCourseDetails")
    public String showCourseDetails(Integer id, Model model){
        TCourse tCourse = courseService.queryCourseById(id);
        model.addAttribute("item", tCourse);
        return PREFIX + "course_info.html";
    }
    /**
     * 获取列表数据
     * @param name
     * @param courseType
     * @return
     */
    @ResponseBody
    @PostMapping("/queryCourseList")
    public Object queryCourseList(String name, Integer courseType){
        Page<Map<String, Object>> mapPage = courseService.queryCourseList(name, courseType);
        return super.packForBT(mapPage);
    }
    /**
     * 添加课程
     * @param course
     * @return
     */
    @ResponseBody
    @PostMapping("/addCourse")
    public ResultUtil addCourse(TCourse course){
        courseService.addCourse(course);
        return ResultUtil.success();
    }
    /**
     * 编辑数据
     * @param course
     * @return
     */
    @ResponseBody
    @PostMapping("/editCourse")
    public ResultUtil editCourse(TCourse course){
        courseService.editCourse(course);
        return ResultUtil.success();
    }
    /**
     * 删除数据
     * @param id
     * @return
     */
    @ResponseBody
    @PostMapping("/delCourse")
    public ResultUtil delCourse(Integer id){
        courseService.delCourse(id);
        return ResultUtil.success();
    }
    /**
     * 编辑数据状态
     * @param id
     * @param state
     * @return
     */
    @ResponseBody
    @PostMapping("/editCourseState")
    public ResultUtil editCourseState(Integer id, Integer state){
        courseService.editCourseState(id, state);
        return ResultUtil.success();
    }
}
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java
@@ -27,6 +27,7 @@
import com.dsh.guns.modular.system.service.IRoleService;
import com.dsh.guns.modular.system.service.IUserService;
import com.dsh.guns.modular.system.transfer.UserDto;
import com.dsh.guns.modular.system.util.OssUploadUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
@@ -379,20 +380,33 @@
    /**
     * 上传图片
     */
    @RequestMapping(method = RequestMethod.POST, path = "/upload")
    @RequestMapping(method = RequestMethod.POST, path = "/uploadImg")
    @ResponseBody
    public String upload(@RequestPart("file") MultipartFile picture) {
        String pictureName = UUID.randomUUID().toString() + "." + ToolUtil.getFileSuffix(picture.getOriginalFilename());
    public String uploadImg(@RequestPart("file") MultipartFile picture) {
        String pictureName = "";
        try {
            String fileSavePath = gunsProperties.getFileUploadPath();
            picture.transferTo(new File(fileSavePath + pictureName));
        } catch (Exception e) {
            throw new GunsException(BizExceptionEnum.UPLOAD_ERROR);
            pictureName = OssUploadUtil.ossUpload("img/", picture);
        }catch (Exception e){
            e.printStackTrace();
        }
        return pictureName;
    }
    @RequestMapping(method = RequestMethod.POST, path = "/uploadFile")
    @ResponseBody
    public String uploadFile(@RequestPart("file") MultipartFile picture) {
        String pictureName = "";
        try {
            pictureName = OssUploadUtil.ossUpload("video/", picture);
        }catch (Exception e){
            e.printStackTrace();
        }
        return pictureName;
    }
    /**
     * 判断当前登录的用户是否有操作这个用户的权限
     */
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/EditCourseState.java
New file
@@ -0,0 +1,19 @@
package com.dsh.guns.modular.system.model;
import lombok.Data;
/**
 * @author zhibing.pu
 * @Date 2023/7/31 17:33
 */
@Data
public class EditCourseState {
    /**
     * 数据id
     */
    private Integer id;
    /**
     * 状态(1=上架,2=下架)
     */
    private Integer state;
}
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TCourse.java
New file
@@ -0,0 +1,58 @@
package com.dsh.guns.modular.system.model;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
/**
 * <p>
 * 课程
 * </p>
 *
 * @author administrator
 * @since 2023-06-14
 */
@Data
public class TCourse {
    /**
     * 主键
     */
    private Integer id;
    /**
     * 课程名称
     */
    private String name;
    /**
     * 类型(1=课后练习,2=运动教学视频,3=器材教学视频)
     */
    private Integer type;
    /**
     * 介绍
     */
    private String introduce;
    /**
     * 封面图
     */
    private String coverDrawing;
    /**
     * 介绍图
     */
    private String introductionDrawing;
    /**
     * 课程视频
     */
    private String courseVideo;
    /**
     * 状态(1=正常,2=冻结,3=删除)
     */
    private Integer state;
    /**
     * 添加时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date insertTime;
}
cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ICourseService.java
New file
@@ -0,0 +1,60 @@
package com.dsh.guns.modular.system.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dsh.guns.modular.system.model.TCourse;
import java.util.List;
import java.util.Map;
/**
 * @author zhibing.pu
 * @Date 2023/7/31 14:18
 */
public interface ICourseService {
    /**
     * 获取列表数据
     * @param name
     * @param courseType
     * @return
     */
    Page<Map<String, Object>> queryCourseList(String name, Integer courseType);
    /**
     * 添加数据
     * @param course
     */
    void addCourse(TCourse course);
    /**
     * 根据id获取数据
     * @param id
     * @return
     */
    TCourse queryCourseById(Integer id);
    /**
     * 修改数据
     * @param course
     */
    void editCourse(TCourse course);
    /**
     * 删除数据
     * @param id
     */
    void delCourse(Integer id);
    /**
     * 修改数据状态
     * @param id
     * @param state
     */
    void editCourseState(Integer id, Integer state);
}
cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CourseServiceImpl.java
New file
@@ -0,0 +1,102 @@
package com.dsh.guns.modular.system.service.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dsh.course.feignClient.course.CourseClient;
import com.dsh.course.feignClient.course.model.QueryCourseList;
import com.dsh.guns.core.common.constant.factory.PageFactory;
import com.dsh.guns.core.support.HttpKit;
import com.dsh.guns.modular.system.model.EditCourseState;
import com.dsh.guns.modular.system.model.TCourse;
import com.dsh.guns.modular.system.service.ICourseService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;
/**
 * @author zhibing.pu
 * @Date 2023/7/31 14:18
 */
@Service
public class CourseServiceImpl implements ICourseService {
    @Resource
    private CourseClient courseClient;
    /**
     * 获取课程列表数据
     * @param name
     * @param courseType
     * @return
     */
    @Override
    public Page<Map<String, Object>> queryCourseList(String name, Integer courseType) {
        HttpServletRequest request = HttpKit.getRequest();
        QueryCourseList queryCourseList = new QueryCourseList();
        queryCourseList.setCourseType(courseType);
        queryCourseList.setName(name);
        queryCourseList.setLimit(Integer.valueOf(request.getParameter("limit")));
        queryCourseList.setOffset(Integer.valueOf(request.getParameter("offset")));
        queryCourseList.setSort(request.getParameter("sort"));
        queryCourseList.setOrder(request.getParameter("order"));
        Page<Map<String, Object>> mapPage = courseClient.queryCourseLists(queryCourseList);
        return mapPage;
    }
    /**
     * 添加课程
     * @param course
     */
    @Override
    public void addCourse(TCourse course) {
        courseClient.addCourse(course);
    }
    /**
     * 根据id获取数据
     * @param id
     * @return
     */
    @Override
    public TCourse queryCourseById(Integer id) {
        return courseClient.queryCourseById(id);
    }
    /**
     * 修改数据
     * @param course
     */
    @Override
    public void editCourse(TCourse course) {
        courseClient.editCourse(course);
    }
    /**
     * 删除数据
     * @param id
     */
    @Override
    public void delCourse(Integer id) {
        courseClient.delCourseById(id);
    }
    /**
     * 修改数据状态
     * @param id
     * @param state
     */
    @Override
    public void editCourseState(Integer id, Integer state) {
        EditCourseState editCourseState = new EditCourseState();
        editCourseState.setId(id);
        editCourseState.setState(state);
        courseClient.editCourseState(editCourseState);
    }
}
cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/OssUploadUtil.java
@@ -2,6 +2,7 @@
import com.aliyun.oss.OSSClient;
import com.aliyun.oss.model.ObjectMetadata;
import com.aliyun.oss.model.PutObjectResult;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
@@ -11,15 +12,15 @@
public class OssUploadUtil {
    //OSS图片访问域名
    public static String oss_domain = "https://newok.oss-cn-shenzhen.aliyuncs.com/";
    public static String accessKeyId = "LTAI4G9Zez9H4B36vakPXGy4";
    public static String accessKeySecret = "BOVPUeZndKVbrPOq6Ef5j6oiydB3XZ";
    public static String bucketName="newok";
    public static String endpoint = "oss-cn-shenzhen.aliyuncs.com";
    public static String oss_domain = "https://we-park-life.oss-cn-beijing.aliyuncs.com/";
    public static String accessKeyId = "LTAI47eyqWWhBPXM";
    public static String accessKeySecret = "orsYX78NvgXS9KbN7wCwRja1wkUwPc";
    public static String bucketName="we-park-life";
    public static String endpoint = "oss-cn-beijing.aliyuncs.com";
    
    public static OSSClient ossClient = new OSSClient(endpoint, accessKeyId,accessKeySecret);
    
    public static String ossUpload(HttpServletRequest request, MultipartFile file) throws IOException{
    public static String ossUpload(String filePath, MultipartFile file) throws IOException{
        //CommonsMultipartFile file = (CommonsMultipartFile)multipartFile;
        String fileName = "";
            if(file!=null && !"".equals(file.getOriginalFilename()) && file.getOriginalFilename()!=null){
@@ -28,10 +29,10 @@
                meta.setContentLength(file.getSize());  // 必须设置ContentLength
                String originalFilename = file.getOriginalFilename();
                fileName =  UUID.randomUUID().toString().replaceAll("-","") + originalFilename.subSequence(originalFilename.lastIndexOf("."), originalFilename.length());
                ossClient.putObject(bucketName,"img/"+fileName,content,meta);// 上传Object.
                ossClient.putObject(bucketName, filePath + fileName, content, meta);// 上传Object.
                if(fileName != null && !"".equals(fileName)){
                    System.out.println(fileName);
                    fileName = oss_domain+"img/"+fileName;
                    fileName = oss_domain+ filePath +fileName;
                }
            }
        return fileName;
cloud-server-management/src/main/resources/mapper/CarBrandMapper.xml
File was deleted
cloud-server-management/src/main/resources/mapper/CarMapper.xml
File was deleted
cloud-server-management/src/main/resources/mapper/CarModelMapper.xml
File was deleted
cloud-server-management/src/main/resources/mapper/CarServiceMapper.xml
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/login.html
@@ -64,11 +64,11 @@
        <form class="m-t" role="form" action="${ctxPath}/login" method="post">
            <div class="item">
                <img src="${ctxPath}/img/account.png" />
                <input class="itemInput" type="text" name="username" id="username"  placeholder="请输入账号" required="" value="">
                <input class="itemInput" type="text" name="username" id="username"  placeholder="请输入账号" required="" value="admin">
            </div>
            <div  class="item">
                <img src="${ctxPath}/img/password.png" />
                <input class="itemInput" type="password" name="password" id="password"  placeholder="请输入密码" required="" value="">
                <input class="itemInput" type="password" name="password" id="password"  placeholder="请输入密码" required="" value="123456">
            </div>
            <!--<div  class="item">-->
                <!--<img src="${ctxPath}/img/password.png" />-->
cloud-server-management/src/main/webapp/WEB-INF/view/system/course/course.html
@@ -4,7 +4,7 @@
    <div class="col-sm-12">
        <div class="ibox float-e-margins">
            <div class="ibox-title">
                <h5>用户管理</h5>
                <h5>课程管理</h5>
            </div>
            <div class="ibox-content">
                <div class="row row-lg">
@@ -13,7 +13,15 @@
                            <div class="col-lg-10 col-sm-9">
                                <div class="row">
                                    <div class="col-lg-4 col-sm-12">
                                        <#NameCon id="name" name="搜索" placeholder="帐号/姓名/手机号"/>
                                        <#NameCon id="name" name="课程名称"/>
                                    </div>
                                    <div class="col-lg-4 col-sm-12">
                                        <#SelectCon id="type" name="课程类型">
                                            <option value="">全部</option>
                                            <option value="1">课后练习</option>
                                            <option value="2">运动教学视频</option>
                                            <option value="3">器材教学视频</option>
                                        </#SelectCon>
                                    </div>
                                </div>
                            </div>
@@ -37,10 +45,10 @@
                            <#button name="删除" icon="fa-remove" clickFun="Course.deleteCourse()" space="true"/>
                            @}
                            @if(shiro.hasPermission("/course/upCourse")){
                            <#button name="上架" icon="fa-refresh" clickFun="Course.upCourse()" space="true"/>
                            <#button name="上架" icon="fa-refresh" clickFun="Course.editCourseState(1)" space="true"/>
                            @}
                            @if(shiro.hasPermission("/course/downCourse")){
                            <#button name="下架" icon="fa-warning" clickFun="Course.downCourse()" space="true"/>
                            <#button name="下架" icon="fa-warning" clickFun="Course.editCourseState(2)" space="true"/>
                            @}
                            @if(shiro.hasPermission("/course/detailsCourse")){
                            <#button name="详情" icon="fa-check-circle" clickFun="Course.detailsCourse()" space="true"/>
@@ -53,8 +61,8 @@
        </div>
    </div>
</div>
<script src="${ctxPath}/static/modular/system/course/course.js"></script>
<script src="${ctxPath}/static/js/layui/layui.js" charset="utf-8"></script>
<script src="${ctxPath}/modular/system/course/course.js"></script>
<script src="${ctxPath}/js/layui/layui.js" charset="utf-8"></script>
<script>
    laydate.render({
        elem: '#beginTime'
cloud-server-management/src/main/webapp/WEB-INF/view/system/course/course_add.html
New file
@@ -0,0 +1,96 @@
@layout("/common/_container.html"){
<div class="ibox float-e-margins">
    <div class="ibox-content">
        <div class="form-horizontal">
            <div class="row">
                <div class="form-group">
                    <label class="col-sm-3 control-label">*视频类型:</label>
                    <div class="col-sm-4">
                        <select class="form-control" id="type" name="type">
                            <option value="1">课后练习</option>
                            <option value="2">运动教学视频</option>
                            <option value="3">器材教学视频</option>
                        </select>
                    </div>
                </div>
                <div class="form-group">
                    <label class="col-sm-3 control-label">*课程名称:</label>
                    <div class="col-sm-4">
                        <input class="form-control" id="name" name="name">
                    </div>
                </div>
                <div class="form-group">
                    <label class="col-sm-3 control-label">课程简介:</label>
                    <div class="col-sm-4">
                        <textarea class="form-control" id="introduce" name="introduce" style="height: 200px;"></textarea>
                    </div>
                </div>
                <div class="form-group">
                    <label class="col-sm-3 control-label head-scu-label">*课程封面</label>
                    <div class="col-sm-2">
                        <div id="coverDrawingPreId">
                            <div><img width="100px" height="100px" src="${ctxPath}/img/NoPIC.png"></div>
                        </div>
                    </div>
                    <div class="col-sm-2">
                        <div class="head-scu-btn upload-btn" id="coverDrawingBtnId">
                            <i class="fa fa-upload"></i>&nbsp;上传
                        </div>
                    </div>
                    <input type="hidden" id="coverDrawing" value=""/>
                </div>
                <div class="form-group">
                    <label class="col-sm-3 control-label head-scu-label"></label>
                    <label>推荐像素:340 x 254px</label>
                </div>
                <div class="form-group">
                    <label class="col-sm-3 control-label head-scu-label">*课程介绍</label>
                    <div class="col-sm-2">
                        <div id="introductionDrawingPreId">
                            <div><img width="100px" height="100px" src="${ctxPath}/img/NoPIC.png"></div>
                        </div>
                    </div>
                    <div class="col-sm-2">
                        <div class="head-scu-btn upload-btn" id="introductionDrawingBtnId">
                            <i class="fa fa-upload"></i>&nbsp;上传
                        </div>
                    </div>
                    <input type="hidden" id="introductionDrawing" value=""/>
                </div>
                <div class="form-group">
                    <label class="col-sm-3 control-label head-scu-label"></label>
                    <label>推荐像素:宽780px</label>
                </div>
                <div class="form-group">
                    <label class="col-sm-3 control-label head-scu-label">*课程内容</label>
                    <div class="col-sm-2" style="padding-top: 30px;">
                        <input type="file" id="upFile" name="upFile" style="display: none">
                        <input class="form-control" id="courseVideo" readonly/>
                    </div>
                    <div class="col-sm-2" style="padding-top: 30px;">
                        <button class="btn btn-outline btn-success" type="file" onclick="UploadFileFn()"><i class="fa fa-upload"></i>上传视频</button>
                    </div>
                </div>
            </div>
            <div class="row btn-group-m-t">
                <div class="col-sm-10">
                    <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="CourseInfo.addSubmit()"/>
                    <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="CourseInfo.close()"/>
                </div>
            </div>
        </div>
    </div>
</div>
<script src="${ctxPath}/modular/system/course/course_info.js"></script>
<script type="text/javascript">
    var avatarUp = new $WebUpload("coverDrawing");
    avatarUp.setUploadBarId("progressBar");
    avatarUp.init();
    var avatarUp1 = new $WebUpload("introductionDrawing");
    avatarUp1.setUploadBarId("progressBar");
    avatarUp1.init();
</script>
@}
cloud-server-management/src/main/webapp/WEB-INF/view/system/course/course_edit.html
New file
@@ -0,0 +1,97 @@
@layout("/common/_container.html"){
<div class="ibox float-e-margins">
    <div class="ibox-content">
        <div class="form-horizontal">
            <input type="hidden" id="id" value="${item.id}">
            <div class="row">
                <div class="form-group">
                    <label class="col-sm-3 control-label">*视频类型:</label>
                    <div class="col-sm-4">
                        <select class="form-control" id="type" name="type">
                            <option value="1" ${item.type == 1 ? 'selected' : ''}>课后练习</option>
                            <option value="2" ${item.type == 2 ? 'selected' : ''}>运动教学视频</option>
                            <option value="3" ${item.type == 3 ? 'selected' : ''}>器材教学视频</option>
                        </select>
                    </div>
                </div>
                <div class="form-group">
                    <label class="col-sm-3 control-label">*课程名称:</label>
                    <div class="col-sm-4">
                        <input class="form-control" id="name" name="name" value="${item.name}">
                    </div>
                </div>
                <div class="form-group">
                    <label class="col-sm-3 control-label">课程简介:</label>
                    <div class="col-sm-4">
                        <textarea class="form-control" id="introduce" name="introduce" style="height: 200px;">${item.introduce}</textarea>
                    </div>
                </div>
                <div class="form-group">
                    <label class="col-sm-3 control-label head-scu-label">*课程封面</label>
                    <div class="col-sm-2">
                        <div id="coverDrawingPreId">
                            <div><img width="100px" height="100px" src="${item.coverDrawing}"></div>
                        </div>
                    </div>
                    <div class="col-sm-2">
                        <div class="head-scu-btn upload-btn" id="coverDrawingBtnId">
                            <i class="fa fa-upload"></i>&nbsp;上传
                        </div>
                    </div>
                    <input type="hidden" id="coverDrawing" value="${item.coverDrawing}"/>
                </div>
                <div class="form-group">
                    <label class="col-sm-3 control-label head-scu-label"></label>
                    <label>推荐像素:340 x 254px</label>
                </div>
                <div class="form-group">
                    <label class="col-sm-3 control-label head-scu-label">*课程介绍</label>
                    <div class="col-sm-2">
                        <div id="introductionDrawingPreId">
                            <div><img width="100px" height="100px" src="${item.introductionDrawing}"></div>
                        </div>
                    </div>
                    <div class="col-sm-2">
                        <div class="head-scu-btn upload-btn" id="introductionDrawingBtnId">
                            <i class="fa fa-upload"></i>&nbsp;上传
                        </div>
                    </div>
                    <input type="hidden" id="introductionDrawing" value="${item.introductionDrawing}"/>
                </div>
                <div class="form-group">
                    <label class="col-sm-3 control-label head-scu-label"></label>
                    <label>推荐像素:宽780px</label>
                </div>
                <div class="form-group">
                    <label class="col-sm-3 control-label head-scu-label">*课程内容</label>
                    <div class="col-sm-2" style="padding-top: 30px;">
                        <input type="file" id="upFile" name="upFile" style="display: none">
                        <input class="form-control" id="courseVideo" value="${item.courseVideo}" readonly/>
                    </div>
                    <div class="col-sm-2" style="padding-top: 30px;">
                        <button class="btn btn-outline btn-success" type="file" onclick="UploadFileFn()"><i class="fa fa-upload"></i>上传视频</button>
                    </div>
                </div>
            </div>
            <div class="row btn-group-m-t">
                <div class="col-sm-10">
                    <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="CourseInfo.addSubmit()"/>
                    <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="CourseInfo.close()"/>
                </div>
            </div>
        </div>
    </div>
</div>
<script src="${ctxPath}/modular/system/course/course_info.js"></script>
<script type="text/javascript">
    var avatarUp = new $WebUpload("coverDrawing");
    avatarUp.setUploadBarId("progressBar");
    avatarUp.init();
    var avatarUp1 = new $WebUpload("introductionDrawing");
    avatarUp1.setUploadBarId("progressBar");
    avatarUp1.init();
</script>
@}
cloud-server-management/src/main/webapp/WEB-INF/view/system/course/course_info.html
New file
@@ -0,0 +1,79 @@
@layout("/common/_container.html"){
<div class="ibox float-e-margins">
    <div class="ibox-content">
        <div class="form-horizontal">
            <input type="hidden" id="id" value="${item.id}">
            <div class="row">
                <div class="form-group">
                    <label class="col-sm-3 control-label">*视频类型:</label>
                    <div class="col-sm-4">
                        <select class="form-control" id="type" name="type" disabled>
                            <option value="1" ${item.type == 1 ? 'selected' : ''}>课后练习</option>
                            <option value="2" ${item.type == 2 ? 'selected' : ''}>运动教学视频</option>
                            <option value="3" ${item.type == 3 ? 'selected' : ''}>器材教学视频</option>
                        </select>
                    </div>
                </div>
                <div class="form-group">
                    <label class="col-sm-3 control-label">*课程名称:</label>
                    <div class="col-sm-4">
                        <input class="form-control" id="name" name="name" value="${item.name}" readonly>
                    </div>
                </div>
                <div class="form-group">
                    <label class="col-sm-3 control-label">课程简介:</label>
                    <div class="col-sm-4">
                        <label class="form-control" id="introduce" name="introduce" style="height: 200px;">${item.introduce}</label>
                    </div>
                </div>
                <div class="form-group">
                    <label class="col-sm-3 control-label head-scu-label">*课程封面</label>
                    <div class="col-sm-2">
                        <div id="coverDrawingPreId">
                            <div><img width="200px" height="200px" src="${item.coverDrawing}"></div>
                        </div>
                    </div>
                    <input type="hidden" id="coverDrawing" value="${item.coverDrawing}"/>
                </div>
                <div class="form-group">
                    <label class="col-sm-3 control-label head-scu-label"></label>
                    <label>推荐像素:340 x 254px</label>
                </div>
                <div class="form-group">
                    <label class="col-sm-3 control-label head-scu-label">*课程介绍</label>
                    <div class="col-sm-2">
                        <div id="introductionDrawingPreId">
                            <div><img width="200px" height="200px" src="${item.introductionDrawing}"></div>
                        </div>
                    </div>
                    <input type="hidden" id="introductionDrawing" value="${item.introductionDrawing}"/>
                </div>
                <div class="form-group">
                    <label class="col-sm-3 control-label head-scu-label"></label>
                    <label>推荐像素:宽780px</label>
                </div>
                <div class="form-group">
                    <label class="col-sm-3 control-label head-scu-label">*课程内容</label>
                    <div class="col-sm-2" style="padding-top: 30px;">
                        <video height="420" controls>
                            <source src="${item.courseVideo}" type="video/mp4">
                        </video>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
<script src="${ctxPath}/modular/system/course/course_info.js"></script>
<script type="text/javascript">
    var avatarUp = new $WebUpload("coverDrawing");
    avatarUp.setUploadBarId("progressBar");
    avatarUp.init();
    var avatarUp1 = new $WebUpload("introductionDrawing");
    avatarUp1.setUploadBarId("progressBar");
    avatarUp1.init();
</script>
@}
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCar/carInsurance.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCar/carInsuranceInfo.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCar/tCar.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCar/tCar_add.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCar/tCar_edit.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCarBrand/tCarBrand.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCarBrand/tCarBrand_add.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCarBrand/tCarBrand_edit.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCarModel/tCarModel.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCarModel/tCarModel_add.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCarModel/tCarModel_edit.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompany/franchisee.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompany/platformEdit.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompany/tCompany.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompany/tCompanyAudit.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompany/tCompanyAudit_immediately.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_add.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_addFranchisee.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_detail.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_detailFranchisee.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_edit.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_updateFranchisee.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tDriver/punish.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tDriver/tDriver.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tDriver/tDriverVerify.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tDriver/tDriverVerify_edit.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_add.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_changeCar.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_edit.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_immediately.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_look.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_optDriver.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tDriver/training.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tDriver/yesDriver.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tOrderEvaluate/tOrderEvaluate.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tOrderEvaluate/tOrderEvaluate_add.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tOrderEvaluate/tOrderEvaluate_edit.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tOrderLogistics/tOrderLogistics.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tOrderLogistics/tOrderLogistics_add.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tOrderLogistics/tOrderLogistics_detail.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tOrderLogistics/tOrderLogistics_edit.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tOrderPrivateCar/tOrderPrivateCar.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tOrderPrivateCar/tOrderPrivateCar_add.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tOrderPrivateCar/tOrderPrivateCar_orderDetail.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/tOrderPrivateCar/tOrderPrivateCar_trajectory.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/userActivity/addRegist.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/userActivity/receiveRecord.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/userActivity/sysCouponRecord.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/userActivity/sysCouponRecord1.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/userActivity/sysCouponRecord2.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/userActivity/sysRedPacketRecord.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/userActivity/userActivity.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/userActivity/userActivity_add.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/userActivity/userActivity_detail.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/userActivity/userActivity_detail1.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/userActivity/userActivity_edit.html
File was deleted
cloud-server-management/src/main/webapp/WEB-INF/view/system/userActivity/userActivity_immediately.html
File was deleted
cloud-server-management/src/main/webapp/static/js/common/web-upload-object.js
@@ -13,7 +13,7 @@
        this.pictureId = pictureId;
        this.uploadBtnId = pictureId + "BtnId";
        this.uploadPreId = pictureId + "PreId";
        this.uploadUrl = Feng.ctxPath + '/upload/image';
        this.uploadUrl = Feng.ctxPath + '/mgr/uploadImg';
        this.fileSizeLimit = 100 * 1024 * 1024;
        this.picWidth = 800;
        this.picHeight = 800;
cloud-server-management/src/main/webapp/static/modular/system/course/course.js
@@ -1,112 +1,44 @@
/**
 * 系统管理--用户管理的单例对象
 */
var Course = {
let Course = {
    id: "managerTable",//表格id
    seItem: null,        //选中的条目
    table: null,
    layerIndex: -1,
    deptid:0
};
var language =$("#language").val()
let language =$("#language").val()
/**
 * 初始化表格的列
 */
Course.initColumn = function () {
    var columns = [
        {field: 'selectItem', radio: true,
            formatter: function (value, row) {
                if (row.id == 1)
                    return {
                        disabled : true,//设置是否可用
                    };
                return "";
            }
        },
    let columns = [
        {field: 'selectItem', radio: true},
        {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
        {title:  language==1?'账号':(language==2?'Account number':'Nomor akun'), field: 'account', align: 'center', valign: 'middle', sortable: true},
        {title:  language==1?'姓名':(language==2?'name':'Nama Lengkap'), field: 'name', align: 'center', valign: 'middle', sortable: true},
        {title: language==1?'性别':(language==2?'Gender':'Jenis kelamin'), field: 'sexName', align: 'center', valign: 'middle', sortable: true,
            formatter:function (data) {
                if(language==1){
                    if(data==1){
                        return '男'
                    }else {
                        return '女'
                    }
                }else if(language==2){
                    if(data==1){
                        return 'man'
                    }else {
                        return 'woman'
                    }
                }else {
                    if(data==1){
                        return 'laki-laki'
                    }else {
                        return 'wanita'
                    }
        {title: '视频类型', field: 'type', align: 'center', valign: 'middle',
            formatter: function (v) {
                switch (v) {
                    case 1:
                        return '课后练习';
                    case 2:
                        return '运动教学视频';
                    case 3:
                        return '器材教学视频';
                }
            }
        },
        {title: language==1?'角色':(language==2?'role':'peran'), field: 'roleName', visible: true, align: 'center', valign: 'middle', sortable: true,
            formatter: function (value, row) {
                var btn = "";
                if(row.roleName != '' && row.roleName != null) {
                    var labelStr = "";
                    var labelStrs = "";
                    var labelArray = row.roleName.split(",");
                    for(var i=0;i<labelArray.length;i++){
                        labelStr += labelArray[i] +"<br>";
                        labelStrs += labelArray[i] + "&#10;";
                    }
                    labelStr = labelStr.substring(0,labelStr.length-4);
                    labelStrs = labelStrs.substring(0,labelStrs.length-5);
                    btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + labelStrs + '" onfocus="AppCar.tooltip()">' + labelStr + '</p>']
                }
                return btn;
        {title: '课程封面', field: 'coverDrawing', align: 'center', valign: 'middle',
            formatter: function (v) {
                return '<img src="' + v + '" height="100px" onclick="lookBigImg(' + v + ')"/>'
            }
        },
        {title: language==1?'部门':(language==2?'department':'departemen'), field: 'deptName', align: 'center', valign: 'middle', sortable: true},
        {title: language==1?'邮箱':(language==2?'email':'email'), field: 'email', align: 'center', valign: 'middle', sortable: true},
        {title: language==1?'电话':(language==2?'phone':'Telepon'), field: 'phone', align: 'center', valign: 'middle', sortable: true},
        {title:language==1?'创建时间':(language==2?'Creation time':'Waktu penciptaan'), field: 'createtime', visible: true, align: 'center', valign: 'middle', sortable: true,
            formatter: function (value, row) {
                var btn = "";
                if(row.createtime1 != '' && row.createtime1 != null) {
                    var time = row.createtime1.replace(" ",'<br>');
                    btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + row.createtime1 + '" onfocus="AppCar.tooltip()">' + time + '</p>']
                }
                return btn;
            }
        },
        {title: language==1?'状态':(language==2?'State':'Status'), field: 'statusName', visible: true, align: 'center', valign: 'middle',
            formatter: function (value, row) {
                var btn = "";
                if(row.statusName != '' && row.statusName != null) {
                    if(language==1){
                        if (row.statusName == "2"){
                            btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color: red;" title="' + `冻结` + '" onfocus="AppUserInfo.tooltip()">' + 冻结 + '</p>']
                        }else{
                            btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + `启用` + '" onfocus="AppUserInfo.tooltip()">' + 启用 + '</p>']
                        }
                    }else if(language==2){
                        if (row.statusName == "2"){
                            btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color: red;" title="' + `freeze` + '" onfocus="AppUserInfo.tooltip()">' + `freeze` + '</p>']
                        }else{
                            btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + `enable` + '" onfocus="AppUserInfo.tooltip()">' + `enable` + '</p>']
                        }
                    }else {
                        if (row.statusName == "2"){
                            btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color: red;" title="' + `Membekukan` + '" onfocus="AppUserInfo.tooltip()">' + 'Membekukan' + '</p>']
                        }else{
                            btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + `aktifkan` + '" onfocus="AppUserInfo.tooltip()">' + 'aktifkan' + '</p>']
                        }
                    }
                }
                return btn;
        {title: '课程名称', field: 'name', align: 'center', valign: 'middle'},
        {title: '课程简介', field: 'introduce', align: 'center', valign: 'middle'},
        {title: '状态', field: 'state', align: 'center', valign: 'middle',
            formatter: function (v) {
                return v == 1 ? '上架' : '下架';
            }
        }
    ];
@@ -117,7 +49,7 @@
 * 检查是否选中
 */
Course.check = function () {
    var selected = $('#' + this.id).bootstrapTable('getSelections');
    let selected = $('#' + this.id).bootstrapTable('getSelections');
    if (selected.length == 0) {
        if(language==1){
            Feng.info("请先选中表格中的某一记录!");
@@ -137,10 +69,10 @@
 * 点击添加管理员
 */
Course.addCourse = function () {
    var index = layer.open({
    let index = layer.open({
        type: 2,
        title: '添加',
        area: ['800px', '560px'], //宽高
        area: ['100%', '100%'], //宽高
        fix: false, //不固定
        maxmin: true,
        content: Feng.ctxPath + '/course/showAddCourse'
@@ -152,232 +84,99 @@
 * 点击修改按钮时
 * @param userId 管理员id
 */
Course.openChangeUser = function () {
Course.editCourse = function () {
    if (this.check()) {
        var index = layer.open({
        let index = layer.open({
            type: 2,
            title: language==1?'编辑':(language==2?'Edit':'Edit'),
            area: ['800px', '450px'], //宽高
            title: '编辑',
            area: ['100%', '100%'], //宽高
            fix: false, //不固定
            maxmin: true,
            content: Feng.ctxPath + '/mgr/user_edit/' + this.seItem.id
            content: Feng.ctxPath + '/course/showEditCourse?id=' + this.seItem.id
        });
        this.layerIndex = index;
    }
};
/**
 * 点击角色分配
 * @param
 */
Course.roleAssign = function () {
    if (this.check()) {
        var index = layer.open({
            type: 2,
            title: language==1?'角色分配':(language==2?'role assignment':'tugas peran'),
            area: ['300px', '400px'], //宽高
            fix: false, //不固定
            maxmin: true,
            content: Feng.ctxPath + '/mgr/role_assign/' + this.seItem.id
        });
        this.layerIndex = index;
    }
};
/**
 * 删除用户
 */
Course.delCourse = function () {
    if (this.check()) {
        var operation = function(){
            var userId = Course.seItem.id;
            var ajax = new $ax(Feng.ctxPath + "/mgr/delete", function () {
                if(language==1){
                    Feng.success("删除成功!");
                }else if(language==2){
                    Feng.success("Delete succeeded!");
                }else {
                    Feng.success("Hapus berhasil!");
                }
        let operation = function(){
            let ajax = new $ax(Feng.ctxPath + "/course/delCourse", function () {
                Feng.success("删除成功!");
                Course.table.refresh();
            }, function (data) {
                if(language==1){
                    Feng.error("删除失败!" + data.responseJSON.message + "!");
                }else if(language==2){
                    Feng.error("Delete failed!" + data.responseJSON.message + "!");
                }else {
                    Feng.error("Hapus gagal!" + data.responseJSON.message + "!");
                }
                Feng.error("删除失败!" + data.responseJSON.message + "!");
            });
            ajax.set("userId", userId);
            ajax.set("id", Course.seItem.id);
            ajax.start();
        };
        if(language==1){
            Feng.confirm("是否删除用户" + Course.seItem.account + "?",operation);
        }else if(language==2){
            Feng.confirm("Whether to delete a user" + Course.seItem.account + "?",operation);
        }else {
            Feng.confirm("Apakah menghapus pengguna" + Course.seItem.account + "?",operation);
        }
        Feng.confirm("是否删除课程",operation);
    }
};
/**
 * 冻结用户账户
 * 上下架
 * @param userId
 */
Course.freezeAccount = function () {
Course.editCourseState = function (state) {
    if (this.check()) {
        var userId = this.seItem.id;
        var ajax = new $ax(Feng.ctxPath + "/mgr/freeze", function (data) {
            if(language==1){
                Feng.success("冻结成功!");
            }else if(language==2){
                Feng.success("Success!");
            }else {
                Feng.success("Success!");
            }
        if(Course.seItem.state == state){
            Feng.error("不能重复操作");
            return
        }
        let ajax = new $ax(Feng.ctxPath + "/course/editCourseState", function (data) {
            Feng.success("下架成功!");
            Course.table.refresh();
        }, function (data) {
            if(language==1){
                Feng.error("冻结失败!" + data.responseJSON.message + "!");
            }else if(language==2){
                Feng.error("Fail!" + data.responseJSON.message + "!");
            }else {
                Feng.error("Gagal!" + data.responseJSON.message + "!");
            }
            Feng.error("下架失败!" + data.responseJSON.message + "!");
        });
        ajax.set("userId", userId);
        ajax.set("id", Course.seItem.id);
        ajax.set("state", state);
        ajax.start();
    }
};
/**
 * 解除冻结用户账户
 * @param userId
 */
Course.unfreeze = function () {
    if (this.check()) {
        var userId = this.seItem.id;
        var ajax = new $ax(Feng.ctxPath + "/mgr/unfreeze", function (data) {
            if(language==1){
                Feng.success("解除冻结成功!");
            }else if(language==2){
                Feng.success("Success!");
            }else {
                Feng.success("Success!");
            }
            Course.table.refresh();
        }, function (data) {
            if(language==1){
                Feng.error("解除冻结失败!");
            }else if(language==2){
                Feng.error("Fail!");
            }else {
                Feng.error("Gagal!");
            }
Course.detailsCourse = function () {
    if (this.check()) {
        let index = layer.open({
            type: 2,
            title: '详情',
            area: ['100%', '100%'], //宽高
            fix: false, //不固定
            maxmin: true,
            content: Feng.ctxPath + '/course/showCourseDetails?id=' + this.seItem.id
        });
        ajax.set("userId", userId);
        ajax.start();
    }
}
/**
 * 重置密码
 */
Course.resetPwd = function () {
    if (this.check()) {
        var userId = this.seItem.id;
        if(language==1){
            parent.layer.confirm('是否重置密码为111111?', {
                btn: ['确定', '取消'],
                shade: false //不显示遮罩
            }, function () {
                var ajax = new $ax(Feng.ctxPath + "/mgr/reset", function (data) {
                    Feng.success("重置密码成功!");
                }, function (data) {
                    Feng.error("重置密码失败!");
                });
                ajax.set("userId", userId);
                ajax.start();
            });
        }else if(language==2){
            parent.layer.confirm('Whether to reset the password to 111111?', {
                btn: ['Yes', 'No'],
                shade: false //不显示遮罩
            }, function () {
                var ajax = new $ax(Feng.ctxPath + "/mgr/reset", function (data) {
                    Feng.success("Success!");
                }, function (data) {
                    Feng.error("Fail!");
                });
                ajax.set("userId", userId);
                ajax.start();
            });
        }else {
            parent.layer.confirm('Apakah untuk reset kata sandi ke 111111?', {
                btn: ['Ya', 'batalkan'],
                shade: false //不显示遮罩
            }, function () {
                var ajax = new $ax(Feng.ctxPath + "/mgr/reset", function (data) {
                    Feng.success("Success!");
                }, function (data) {
                    Feng.error("Gagal!");
                });
                ajax.set("userId", userId);
                ajax.start();
            });
        }
        this.layerIndex = index;
    }
};
Course.resetSearch = function () {
    $("#name").val("");
    $("#createTime").val("");
    $("#type").val("");
    Course.search();
}
Course.search = function () {
    var queryData = {};
    queryData['deptid'] = Course.deptid;
    let queryData = {};
    queryData['name'] = $("#name").val();
    queryData['createTime'] = $("#createTime").val();
    queryData['courseType'] = $("#type").val();
    Course.table.refresh({query: queryData});
}
Course.onClickDept = function (e, treeId, treeNode) {
    Course.deptid = treeNode.id;
    Course.search();
};
$(function () {
    var defaultColunms = Course.initColumn();
    var table = new BSTable(Course.id, "/mgr/list", defaultColunms);
    let defaultColunms = Course.initColumn();
    let table = new BSTable(Course.id, "/course/queryCourseList", defaultColunms);
    // 设置物理分页server(逻辑分页client)
    table.setPaginationType("server");
    // 表单提交参数
    var queryData = {};
    queryData['deptid'] = Course.deptid;
    queryData['name'] = $("#name").val();
    queryData['createTime'] = $("#createTime").val();
    table.setQueryParams(queryData);
    Course.table = table.init();
    /*var defaultColunms = Course.initColumn();
    var table = new BSTable("managerTable", "/mgr/list", defaultColunms);
    table.setPaginationType("client");
    Course.table = table.init();*/
    var ztree = new $ZTree("deptTree", "/dept/tree");
    ztree.bindOnClick(Course.onClickDept);
    ztree.init();
});
cloud-server-management/src/main/webapp/static/modular/system/course/course_info.js
New file
@@ -0,0 +1,182 @@
/**
 * 用户详情对话框(可用于添加和修改对话框)
 */
var CourseInfo = {
    userInfoData: {},
};
/**
 * 关闭此对话框
 */
CourseInfo.close = function () {
    parent.layer.close(window.parent.Course.layerIndex);
};
/**
 * 提交添加用户
 */
CourseInfo.addSubmit = function () {
    let type = $('#type').val();
    let name = $('#name').val();
    let introduce = $('#introduce').val();
    let coverDrawing = $('#coverDrawing').val();
    let introductionDrawing = $('#introductionDrawing').val();
    let courseVideo = $('#courseVideo').val();
    if(null == name || '' == name){
        Feng.error("课程名称不能为空");
        return
    }
    if(null == coverDrawing || '' == coverDrawing){
        Feng.error("课程封面不能为空");
        return
    }
    if(null == introductionDrawing || '' == introductionDrawing){
        Feng.error("课程介绍不能为空");
        return
    }
    if(null == courseVideo || '' == courseVideo){
        Feng.error("课程内容不能为空");
        return
    }
    let obj = {
        type: type,
        name: name,
        introduce: introduce,
        coverDrawing: coverDrawing,
        introductionDrawing: introductionDrawing,
        courseVideo: courseVideo
    }
    //提交信息
    var ajax = new $ax(Feng.ctxPath + "/course/addCourse", function (data) {
        Feng.success("添加成功!");
        window.parent.Course.table.refresh();
        CourseInfo.close();
    }, function (data) {
        Feng.error("添加失败!" + data.responseJSON.message + "!");
    });
    ajax.set(obj);
    ajax.start();
};
/**
 * 提交修改
 */
CourseInfo.editSubmit = function () {
    let id = $('#id').val();
    let type = $('#type').val();
    let name = $('#name').val();
    let introduce = $('#introduce').val();
    let coverDrawing = $('#coverDrawing').val();
    let introductionDrawing = $('#introductionDrawing').val();
    let courseVideo = $('#courseVideo').val();
    if(null == name || '' == name){
        Feng.error("课程名称不能为空");
        return
    }
    if(null == coverDrawing || '' == coverDrawing){
        Feng.error("课程封面不能为空");
        return
    }
    if(null == introductionDrawing || '' == introductionDrawing){
        Feng.error("课程介绍不能为空");
        return
    }
    if(null == courseVideo || '' == courseVideo){
        Feng.error("课程内容不能为空");
        return
    }
    let obj = {
        id: id,
        type: type,
        name: name,
        introduce: introduce,
        coverDrawing: coverDrawing,
        introductionDrawing: introductionDrawing,
        courseVideo: courseVideo
    }
    //提交信息
    var ajax = new $ax(Feng.ctxPath + "/course/editCourse", function (data) {
        if(data.code == 200){
            window.parent.Course.table.refresh();
            CourseInfo.close();
            Feng.success("修改成功!");
        }else{
            Feng.error(data.msg);
        }
    }, function (data) {
        Feng.error("修改失败!" + data.responseJSON.message + "!");
    });
    ajax.set(obj);
    ajax.start();
};
/**
 * 修改密码
 */
CourseInfo.chPwd = function () {
    let oldPwd = $('#oldPwd').val();
    let newPwd = $('#newPwd').val();
    if(oldPwd == newPwd){
        Feng.error("新密码不能和原始密码相同");
        return
    }
    let patt = /(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[^a-zA-Z0-9]).{8,30}/;
    if(!patt.test(newPwd)){
        Feng.error("密码中必须包含大小字母、数字、特称字符,至少8个字符,最多30个字符");
        return
    }
    var ajax = new $ax(Feng.ctxPath + "/mgr/changePwd", function (data) {
        Feng.success("修改成功!");
    }, function (data) {
        Feng.error("修改失败!" + data.responseJSON.message + "!");
    });
    ajax.set("oldPwd");
    ajax.set("newPwd");
    ajax.set("rePwd");
    ajax.start();
};
function onBodyDown(event) {
    if (!(event.target.id == "menuBtn" || event.target.id == "menuContent" || $(
        event.target).parents("#menuContent").length > 0)) {
        CourseInfo.hideDeptSelectTree();
    }
}
function UploadFileFn(){
    $('#upFile').click();
}
$(function () {
    $('#upFile').on('change', function () {
        var formData = new FormData()  //创建一个forData
        formData.append('file', $('#upFile')[0].files[0]) //把file添加进去  name命名为img
        layer.load(); //上传loading
        $.ajax({
            url: Feng.ctxPath + '/mgr/uploadFile',
            data: formData,
            type: "POST",
            async: true,
            cache: false,
            contentType: false,
            processData: false,
            success: function(res) {
                layer.closeAll('loading'); //关闭loading
                $('#upFile').val('');
                $('#courseVideo').val(res);
            }
        })
    })
});
cloud-server-management/src/main/webapp/static/modular/system/tCar/carInsurance.js
File was deleted
cloud-server-management/src/main/webapp/static/modular/system/tCar/carInsuranceInfo.js
File was deleted
cloud-server-management/src/main/webapp/static/modular/system/tCar/tCar.js
File was deleted
cloud-server-management/src/main/webapp/static/modular/system/tCar/tCar_info.js
File was deleted
cloud-server-management/src/main/webapp/static/modular/system/tCarBrand/tCarBrand.js
File was deleted
cloud-server-management/src/main/webapp/static/modular/system/tCarBrand/tCarBrand_info.js
File was deleted
cloud-server-management/src/main/webapp/static/modular/system/tCarModel/tCarModel.js
File was deleted
cloud-server-management/src/main/webapp/static/modular/system/tCarModel/tCarModel_info.js
File was deleted
cloud-server-management/src/main/webapp/static/modular/system/tLine/tLine.js
File was deleted
cloud-server-management/src/main/webapp/static/modular/system/tLine/tLine_info.js
File was deleted
cloud-server-management/src/main/webapp/static/modular/system/tOrderCharteredCar/tOrderCharteredCar.js
File was deleted
cloud-server-management/src/main/webapp/static/modular/system/tOrderCharteredCar/tOrderCharteredCar_info.js
File was deleted
cloud-server-management/src/main/webapp/static/modular/system/tOrderCrossCity/tOrderCrossCity.js
File was deleted
cloud-server-management/src/main/webapp/static/modular/system/tOrderCrossCity/tOrderCrossCity_info.js
File was deleted
cloud-server-management/src/main/webapp/static/modular/system/tOrderEvaluate/tOrderEvaluate.js
File was deleted
cloud-server-management/src/main/webapp/static/modular/system/tOrderEvaluate/tOrderEvaluate_info.js
File was deleted
cloud-server-management/src/main/webapp/static/modular/system/tOrderLogistics/tOrderLogistics.js
File was deleted
cloud-server-management/src/main/webapp/static/modular/system/tOrderLogistics/tOrderLogistics_info.js
File was deleted
cloud-server-management/src/main/webapp/static/modular/system/tOrderPrivateCar/tOrderPrivateCar.js
File was deleted
cloud-server-management/src/main/webapp/static/modular/system/tOrderPrivateCar/tOrderPrivateCar_info.js
File was deleted
cloud-server-management/src/main/webapp/static/modular/system/tOrderTaxi/selectDriver.js
File was deleted
cloud-server-management/src/main/webapp/static/modular/system/tOrderTaxi/tOrderTaxi.js
File was deleted
cloud-server-management/src/main/webapp/static/modular/system/tOrderTaxi/tOrderTaxi_info.js
File was deleted
cloud-server-management/src/main/webapp/static/modular/system/tServerCarmodel/acrossCity.js
File was deleted
cloud-server-management/src/main/webapp/static/modular/system/tServerCarmodel/acrossCity_info.js
File was deleted
cloud-server-management/src/main/webapp/static/modular/system/tServerCarmodel/charter.js
File was deleted
cloud-server-management/src/main/webapp/static/modular/system/tServerCarmodel/charter_info.js
File was deleted
cloud-server-management/src/main/webapp/static/modular/system/tServerCarmodel/tServerCarmodel.js
File was deleted
cloud-server-management/src/main/webapp/static/modular/system/tServerCarmodel/tServerCarmodel_info.js
File was deleted
cloud-server-other/src/main/java/com/dsh/other/model/QueryMySiteVo.java
@@ -25,8 +25,10 @@
    private String storeLon;
    @ApiModelProperty("门店纬度")
    private String storeLat;
    @ApiModelProperty("支付金额")
    @ApiModelProperty("现金价格")
    private Double payMoney;
    @ApiModelProperty("玩湃币价格")
    private Integer playPaiCoin;
    @ApiModelProperty("预约时间")
    private String appointment;
    @ApiModelProperty("状态(0=待支付,1=待核销,2=已到店,3=已完成,4=已过期,5=已取消)")
cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java
@@ -436,7 +436,14 @@
    @Override
    public List<QueryMySiteVo> queryMySite(Integer uid, Integer status, Integer pageNo, Integer pageSize) throws Exception {
        pageNo = (pageNo - 1) * pageSize;
        return this.baseMapper.queryMySite(uid, status, pageNo, pageSize);
        List<QueryMySiteVo> queryMySiteVos = this.baseMapper.queryMySite(uid, status, pageNo, pageSize);
        for (QueryMySiteVo queryMySiteVo : queryMySiteVos) {
            SiteBooking siteBooking = siteBookingService.getById(queryMySiteVo.getId());
            Site site = this.getById(siteBooking.getSiteId());
            String[] split = siteBooking.getTimes().split(";");
            queryMySiteVo.setPlayPaiCoin(site.getPlayPaiCoin() * split.length);
        }
        return queryMySiteVos;
    }
@@ -527,7 +534,7 @@
        String[] split = siteBooking.getTimes().split(";");
        Double payMoney = 0D;
        if(payType == 3){
            payMoney = new BigDecimal(site.getCashPrice()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
            payMoney = new BigDecimal(site.getPlayPaiCoin()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
            if(appUser.getPlayPaiCoins().compareTo(payMoney.intValue()) < 0){
                return ResultUtil.error("玩湃币不足");
            }