package com.dsh.course.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.dsh.course.entity.*; import com.dsh.course.feignclient.model.StoreOfCourseVo; import com.dsh.course.feignclient.other.StoreClient; import com.dsh.course.feignclient.other.model.Store; import com.dsh.course.model.BaseVo; import com.dsh.course.model.QueryCoursePackageLists; import com.dsh.course.model.QueryExamineCoursePackageLists; import com.dsh.course.model.vo.response.Details; import com.dsh.course.model.vo.response.ExchangeCoursePackageResponse; import com.dsh.course.service.*; import com.dsh.course.util.PageFactory; import com.dsh.course.util.ResultUtil; import com.dsh.course.util.TokenUtil; import com.dsh.course.util.ToolUtil; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.bouncycastle.math.Primes; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.*; import java.util.stream.Collectors; /** * @author zhibing.pu * @date 2023/7/5 9:58 */ @RestController @RequestMapping("") public class CoursePackageController { @Autowired private TCoursePackageService coursePackageService; @Autowired private TCoursePackageDiscountService tcpdService; @Resource private StoreClient storeClient; @Resource private TCoursePackagePaymentService tcppmenService; @Resource private ICoursePackagePaymentConfigService icppconfigService; @Autowired private TokenUtil tokenUtil; /** * 根据门店ids获取课包ids 根据课包ids 获取购课记录的用户ids */ @ResponseBody @PostMapping("/base/coursePackage/getCoursePackageByStoreIds") public List getCoursePackageByStoreIds(@RequestBody List storeIds) { try { // 获取当前课包的ids List courseIds = coursePackageService.list(new QueryWrapper().in("storeId", storeIds)) .stream().map(TCoursePackage::getId).collect(Collectors.toList()); if (courseIds.size() == 0) { return new ArrayList<>(); } else { List userIds = tcppmenService.list(new QueryWrapper().in("coursePackageId", courseIds)) .stream().map(TCoursePackagePayment::getAppUserId).collect(Collectors.toList()); return userIds; } } catch (Exception e) { e.printStackTrace(); return null; } } /** * 根据id获取课包 * * @param id * @return */ @ResponseBody @PostMapping("/base/coursePackage/queryCoursePackageById") public TCoursePackage queryCoursePackageById(@RequestBody Integer id) { try { TCoursePackage coursePackage = coursePackageService.getById(id); return coursePackage; } catch (Exception e) { e.printStackTrace(); return null; } } @ResponseBody @PostMapping("/base/coursePackage/queryByStoreId") public List queryByStoreId(@RequestBody Integer shopId) { try { List shopId1 = coursePackageService.list(new QueryWrapper().eq("storeId", shopId)); return shopId1; } catch (Exception e) { e.printStackTrace(); return null; } } @Autowired private TCoursePackagePaymentService packagePaymentService; @ResponseBody @PostMapping("/base/coursePackage/queryByCode") public Integer queryByCode(@RequestBody String code) { return packagePaymentService.listStoreId(code); } @Autowired private CoursePackageStudentService coursePackageStudentService; @Autowired private UserVideoDetailsService userVideoDetailsService; @ResponseBody @PostMapping("/base/coursePackage/counts") public Integer counts(@RequestBody Integer stuId) { return coursePackageStudentService.count(new QueryWrapper().eq("signInOrNot", 1).eq("studentId", stuId)); } @ResponseBody @PostMapping("/base/coursePackage/counts1") public Integer counts1(@RequestBody Integer stuId) { return userVideoDetailsService.count(new QueryWrapper().eq("appUserId", stuId)); } /** * 根据id获取课包 */ @ResponseBody @PostMapping("/base/coursePackage/getCoursePackageByStoreId") public List getCoursePackageByStoreId(@RequestBody Integer storeId) { return coursePackageService.list(new QueryWrapper().eq("storeId", storeId)); } /** * 根据课包类型获取课包 */ @ResponseBody @PostMapping("/base/coursePackage/getCoursePackageByType/{typeId}/{storeId}") public List getCoursePackageByType(@PathVariable("typeId") Integer typeId, @PathVariable("storeId") Integer storeId) { return coursePackageService.list(new QueryWrapper().eq("coursePackageTypeId", typeId).eq("storeId", storeId)); } /** * 本周福利列表 */ @ResponseBody @PostMapping("/api/useBenefit/weekLimitedBenefit") @ApiOperation(value = "本周福利-限时折扣列表", tags = {"APP-使用福利"}) @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), @ApiImplicitParam(name = "discountType", value = "默认显示 限时折扣 (1限时折扣 2赠送课时)", dataType = "int"), @ApiImplicitParam(name = "lon", value = "经度", dataType = "String"), @ApiImplicitParam(name = "lat", value = "纬度", dataType = "String"), }) public ResultUtil> thisWeeksBenefitList(Integer discountType, String lon, String lat) throws Exception { // try { Integer appUserId = tokenUtil.getUserIdFormRedis(); if (null == appUserId) { return ResultUtil.tokenErr(); } String[] strings = {"今日", "明日", "周一", "周二", "周三", "周四", "周五", "周六", "周日"}; List stringList = new ArrayList<>(Arrays.asList(strings)); List
weeksBenefitCourse = tcpdService.getWeeksBenefitCourse(appUserId, discountType, lon, lat); weeksBenefitCourse.sort(new Comparator
() { @Override public int compare(Details o1, Details o2) { return stringList.indexOf(o1.getDataTime()) - stringList.indexOf(o2.getDataTime()); } }); // return ResultUtil.success(tcpdService.getWeeksBenefitCourse(appUserId,discountType,lon,lat)); return ResultUtil.success(weeksBenefitCourse); // }catch (Exception e){ // return ResultUtil.runErr(); // } } /** * 折扣课包详情 */ @ResponseBody @PostMapping("/api/useBenefit/discountCourseDatas") @ApiOperation(value = "本周福利-折扣课包详情", tags = {"APP-使用福利"}) @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), @ApiImplicitParam(name = "coursePackageDiscountId", value = "限时折扣配置id/赠送课时配置id", dataType = "int"), @ApiImplicitParam(name = "lon", value = "经度", dataType = "String"), @ApiImplicitParam(name = "lat", value = "纬度", dataType = "String"), }) public ResultUtil discountCourseDatas(Integer coursePackageDiscountId, String lon, String lat) { // try { return ResultUtil.success(tcpdService.getWeekFreeCourseDetails(coursePackageDiscountId, lat, lon)); // }catch (Exception e){ // return ResultUtil.runErr(); // } } @ResponseBody @PostMapping("/base/coursePack/courseList") public List getStoreOfCourseList(@RequestBody Integer storeId) { List courseVoList = new ArrayList<>(); Store store = storeClient.queryStoreById(storeId); List list = coursePackageService.list(new QueryWrapper() .eq("storeId", storeId) .eq("auditStatus", 2) .eq("state", 1).orderByDesc("insertTime")); if (list.size() > 0) { for (TCoursePackage coursePackage : list) { int count = tcppmenService.count(new QueryWrapper() .eq("coursePackageId", coursePackage.getId())); StoreOfCourseVo courseVo = new StoreOfCourseVo(); courseVo.setCourseId(coursePackage.getId()); courseVo.setName(coursePackage.getName() + "(" + store.getName() + ")"); String classStartTime = coursePackage.getClassStartTime(); String classEndTime = coursePackage.getClassEndTime(); ArrayList classTime = new ArrayList<>(); String[] split4 = classStartTime.split(","); String[] split3 = classEndTime.split(","); if (ToolUtil.isNotEmpty(classStartTime)) { for (int i = 0; i < split4.length; i++) { String s = split4[i].substring(0, 5) + "-" + split3[i].substring(0, 5); classTime.add(s); } } // coursePackageInfo.setTimes(classTime); String classTimeAsString = String.join("|", classTime); courseVo.setClassStartTime(classTimeAsString); courseVo.setCoverDrawing(coursePackage.getCoverDrawing()); courseVo.setApplicantsNumber(count); List list1 = icppconfigService.list(new QueryWrapper() .eq("coursePackageId", coursePackage.getId())); // 取价格最低的课时 CoursePackagePaymentConfig minConfig = list1.stream() .min(Comparator.comparingDouble(CoursePackagePaymentConfig::getCashPayment)) .orElse(null); List classHours = new ArrayList<>(); for (CoursePackagePaymentConfig coursePackagePaymentConfig : list1) { classHours.add(coursePackagePaymentConfig.getClassHours()); } if (minConfig != null) { courseVo.setClassHours(classHours); courseVo.setOriginalPrice(minConfig.getCashPayment()); courseVo.setCoin(minConfig.getPlayPaiCoin()); } courseVoList.add(courseVo); } } return courseVoList; } /** * 根据id获取课包 * * @param coursePackConfigId * @return */ @ResponseBody @PostMapping("/base/coursePackage/queryConfigCoursePackData") public CoursePackagePaymentConfig queryConfigCoursePackData(@RequestBody Integer coursePackConfigId) { return icppconfigService.getById(coursePackConfigId); } /** * 获取课包管理列表数据 * * @param queryCoursePackageLists * @return */ @ResponseBody @PostMapping("/coursePackage/queryCoursePackageLists") public Page> queryCoursePackageLists(@RequestBody QueryCoursePackageLists queryCoursePackageLists) { Page> page = new PageFactory>().defaultPage(queryCoursePackageLists.getLimit(), queryCoursePackageLists.getOffset(), queryCoursePackageLists.getSort(), queryCoursePackageLists.getOrder()); Page> mapPage = page.setRecords(coursePackageService.queryCoursePackageLists(page, queryCoursePackageLists)); return mapPage; } /** * 添加数据 * * @param coursePackage * @return */ @ResponseBody @PostMapping("/coursePackage/addCoursePackage") public Integer addCoursePackage(@RequestBody TCoursePackage coursePackage) { coursePackage.setInsertTime(new Date()); coursePackage.setNeedNum(coursePackage.getCodeTime()); return coursePackageService.addCoursePackage(coursePackage); } /** * 修改数据 * * @param coursePackage */ @ResponseBody @PostMapping("/coursePackage/updateCoursePackageById") public void updateCoursePackageById(@RequestBody TCoursePackage coursePackage) { coursePackageService.updateCoursePackageById(coursePackage); } /** * 获取课包审核列表 * * @param queryExamineCoursePackageLists * @return */ @ResponseBody @PostMapping("/coursePackage/queryExamineCoursePackageLists") public Page> queryExamineCoursePackageLists(@RequestBody QueryExamineCoursePackageLists queryExamineCoursePackageLists) { Page> page = new PageFactory>().defaultPage(queryExamineCoursePackageLists.getLimit(), queryExamineCoursePackageLists.getOffset(), queryExamineCoursePackageLists.getSort(), queryExamineCoursePackageLists.getOrder()); Page> mapPage = page.setRecords(coursePackageService.queryExamineCoursePackageLists(page, queryExamineCoursePackageLists)); return mapPage; } }