| | |
| | | import com.dsh.course.entity.CoursePackagePaymentConfig; |
| | | import com.dsh.course.entity.TCoursePackage; |
| | | import com.dsh.course.entity.TCoursePackageDiscount; |
| | | import com.dsh.course.entity.TCoursePackagePayment; |
| | | import com.dsh.course.feignclient.other.StoreClient; |
| | | import com.dsh.course.feignclient.other.model.GetDistanceVo; |
| | | import com.dsh.course.feignclient.other.model.Store; |
| | | import com.dsh.course.mapper.CoursePackagePaymentConfigMapper; |
| | | import com.dsh.course.mapper.TCoursePackageDiscountMapper; |
| | | import com.dsh.course.mapper.TCoursePackageMapper; |
| | | import com.dsh.course.mapper.TCoursePackagePaymentMapper; |
| | | import com.dsh.course.model.vo.response.ExchangeCoursePackageResponse; |
| | | import com.dsh.course.model.vo.response.WeekLimitedResponse; |
| | | import com.dsh.course.service.TCoursePackageDiscountService; |
| | | import com.dsh.course.util.DateTimeHelper; |
| | | import com.dsh.course.util.LocalDateTimeUtils; |
| | | import com.dsh.course.util.ResultUtil; |
| | | import com.dsh.course.util.StrUtils; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | |
| | | @Resource |
| | | private TCoursePackageMapper tcpMapper; |
| | | |
| | | @Resource |
| | | private TCoursePackagePaymentMapper tcppMapper; |
| | | |
| | | @Resource |
| | | private CoursePackagePaymentConfigMapper cppcMapper; |
| | |
| | | tCoursePackageDiscounts = this.baseMapper.selectList(tCoursePackageDiscountQueryWrapper); |
| | | if (tCoursePackageDiscounts.size() > 0) { |
| | | for (TCoursePackageDiscount tCoursePackageDiscount : tCoursePackageDiscounts) { |
| | | TCoursePackage coursePackage = tcpMapper.selectById(tCoursePackageDiscount.getCoursePackageId()); |
| | | // 判断预约人数是否已满 |
| | | Integer maxSubscribeNumber = coursePackage.getMaxSubscribeNumber(); |
| | | Integer integer = tcppMapper.selectCount(new QueryWrapper<TCoursePackagePayment>() |
| | | .eq("appUserId",appUserId ) |
| | | .eq("status",1)); |
| | | if (integer >= maxSubscribeNumber){ |
| | | continue; |
| | | } |
| | | /** |
| | | * [{ |
| | | * "startDate": "2023-01-01 00:00:00", |
| | |
| | | // 判断当前日期是否在开始时间和结束时间范围内 |
| | | if (isDateWithinRange(localTime, parse1, parse2)) { |
| | | WeekLimitedResponse.Details resde = new WeekLimitedResponse.Details(); |
| | | TCoursePackage coursePackage = tcpMapper.selectById(tCoursePackageDiscount.getCoursePackageId()); |
| | | |
| | | resde.setCoursePackageDiscountId(tCoursePackageDiscount.getId()); |
| | | resde.setImage(coursePackage.getCoverDrawing()); |
| | | resde.setCoursePackageName(coursePackage.getName()); |
| | | CoursePackagePaymentConfig paymentConfig = cppcMapper.selectById(tCoursePackageDiscount.getCoursePackagePaymentConfigId()); |
| | |
| | | int weekNumOfDate = DateTimeHelper.getWeekNumOfDate(tempDate); |
| | | if (isDateWithinRange(tempDate, parse1, parse2) && weeks.contains(weekNumOfDate)) { |
| | | WeekLimitedResponse.Details resde = new WeekLimitedResponse.Details(); |
| | | TCoursePackage coursePackage = tcpMapper.selectById(tCoursePackageDiscount.getCoursePackageId()); |
| | | |
| | | resde.setCoursePackageDiscountId(tCoursePackageDiscount.getId()); |
| | | resde.setImage(coursePackage.getCoverDrawing()); |
| | | resde.setCoursePackageName(coursePackage.getName()); |
| | | CoursePackagePaymentConfig paymentConfig = cppcMapper.selectById(tCoursePackageDiscount.getCoursePackagePaymentConfigId()); |
| | |
| | | tCoursePackageDiscounts = this.baseMapper.selectList(tCoursePackageDiscountQueryWrapper); |
| | | if (tCoursePackageDiscounts.size() > 0) { |
| | | for (TCoursePackageDiscount tCoursePackageDiscount : tCoursePackageDiscounts) { |
| | | TCoursePackage coursePackage = tcpMapper.selectById(tCoursePackageDiscount.getCoursePackageId()); |
| | | // 判断预约人数是否已满 |
| | | Integer maxSubscribeNumber = coursePackage.getMaxSubscribeNumber(); |
| | | Integer integer = tcppMapper.selectCount(new QueryWrapper<TCoursePackagePayment>() |
| | | .eq("appUserId",appUserId ) |
| | | .eq("status",1)); |
| | | if (integer >= maxSubscribeNumber){ |
| | | continue; |
| | | } |
| | | // [{ |
| | | // "startDate": "2023-01-01 00:00:00", |
| | | // "endDate": "2023-12-31 23:59:59", |
| | |
| | | // 判断当前日期是否在开始时间和结束时间范围内 |
| | | if (isDateWithinRange(localTime, parse1, parse2)) { |
| | | WeekLimitedResponse.Details resde = new WeekLimitedResponse.Details(); |
| | | TCoursePackage coursePackage = tcpMapper.selectById(tCoursePackageDiscount.getCoursePackageId()); |
| | | |
| | | resde.setCoursePackageDiscountId(tCoursePackageDiscount.getId()); |
| | | resde.setImage(coursePackage.getCoverDrawing()); |
| | | resde.setCoursePackageName(coursePackage.getName()); |
| | | CoursePackagePaymentConfig paymentConfig = cppcMapper.selectById(tCoursePackageDiscount.getCoursePackagePaymentConfigId()); |
| | |
| | | int weekNumOfDate = DateTimeHelper.getWeekNumOfDate(tempDate); |
| | | if (isDateWithinRange(tempDate, parse1, parse2) && weeks.contains(weekNumOfDate)) { |
| | | WeekLimitedResponse.Details resde = new WeekLimitedResponse.Details(); |
| | | TCoursePackage coursePackage = tcpMapper.selectById(tCoursePackageDiscount.getCoursePackageId()); |
| | | |
| | | resde.setCoursePackageDiscountId(tCoursePackageDiscount.getId()); |
| | | resde.setImage(coursePackage.getCoverDrawing()); |
| | | resde.setCoursePackageName(coursePackage.getName()); |
| | | CoursePackagePaymentConfig paymentConfig = cppcMapper.selectById(tCoursePackageDiscount.getCoursePackagePaymentConfigId()); |
| | |
| | | return response; |
| | | } |
| | | |
| | | @Override |
| | | public ExchangeCoursePackageResponse getWeekFreeCourseDetails(Integer coursePackageDiscountId,String lat,String lon) { |
| | | ExchangeCoursePackageResponse packageResponse = new ExchangeCoursePackageResponse(); |
| | | TCoursePackageDiscount coursePackageDiscount = this.baseMapper.selectById(coursePackageDiscountId); |
| | | packageResponse.setCoursePackageDiscountId(coursePackageDiscount.getId()); |
| | | Integer coursePackageId = coursePackageDiscount.getCoursePackageId(); |
| | | |
| | | TCoursePackage coursePackage = tcpMapper.selectById(coursePackageId); |
| | | |
| | | packageResponse.setCoverDrawing(coursePackage.getCoverDrawing()); |
| | | packageResponse.setIntroduceDrawing(coursePackage.getIntroduceDrawing()); |
| | | packageResponse.setCoursePackageName(coursePackage.getName()); |
| | | |
| | | Store store = sreClient.queryStoreById(coursePackage.getStoreId()); |
| | | packageResponse.setStoreNameAddr(store.getName() +"(" +store.getAddress()+")"); |
| | | GetDistanceVo distanceVo = new GetDistanceVo(); |
| | | |
| | | distanceVo.setLatitude(lat); |
| | | distanceVo.setLongitude(lon); |
| | | distanceVo.setStoreId(coursePackage.getStoreId()); |
| | | long l = sreClient.calculateDistance(distanceVo); |
| | | packageResponse.setDistance(l); |
| | | |
| | | JSONArray jsonArray = JSON.parseArray(coursePackageDiscount.getContent()); |
| | | JSONObject jsonObject = jsonArray.getJSONObject(0); |
| | | CoursePackagePaymentConfig paymentConfig = cppcMapper.selectById(coursePackageDiscount.getCoursePackagePaymentConfigId()); |
| | | if (coursePackageDiscount.getType() == 3){ |
| | | Double cashPayment = jsonObject.getDouble("cashPayment"); |
| | | packageResponse.setClassHours(paymentConfig.getClassHours()); |
| | | packageResponse.setCostPrice(paymentConfig.getCashPayment()); |
| | | packageResponse.setDiscountPrice(cashPayment); |
| | | }else { |
| | | packageResponse.setClassHours(paymentConfig.getClassHours()); |
| | | |
| | | Integer cashPayment = jsonObject.getInteger("hour"); |
| | | packageResponse.setFreeClassHours(cashPayment); |
| | | |
| | | packageResponse.setCostPrice(paymentConfig.getCashPayment()); |
| | | TCoursePackageDiscount coursePackageDiscount1 = this.baseMapper.selectOne(new QueryWrapper<TCoursePackageDiscount>() |
| | | .eq("type", 1) |
| | | .eq("coursePackageId",coursePackage.getId())); |
| | | String content = coursePackageDiscount1.getContent(); |
| | | JSONObject jsonObject1 = JSON.parseObject(content); |
| | | Double vipPrice = jsonObject1.getDouble("num1"); |
| | | packageResponse.setDiscountPrice(vipPrice); |
| | | packageResponse.setWanpaiGold(paymentConfig.getPlayPaiCoin()); |
| | | } |
| | | List<Integer> weeks = StrUtils.dealStrToList(coursePackage.getClassWeeks()); |
| | | if (weeks.size() > 0){ |
| | | StringBuilder courWeeks = new StringBuilder("每"); |
| | | for (Integer integer : weeks) { |
| | | switch (integer){ |
| | | case 1: |
| | | courWeeks.append("周一、"); |
| | | break; |
| | | case 2: |
| | | courWeeks.append("周二、"); |
| | | break; |
| | | case 3: |
| | | courWeeks.append("周三、"); |
| | | break; |
| | | case 4: |
| | | courWeeks.append("周四、"); |
| | | break; |
| | | case 5: |
| | | courWeeks.append("周五、"); |
| | | break; |
| | | case 6: |
| | | courWeeks.append("周六、"); |
| | | break; |
| | | case 7: |
| | | courWeeks.append("周末、"); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | } |
| | | if (courWeeks.length() > 0 && courWeeks.charAt(courWeeks.length() - 1) == ','){ |
| | | courWeeks.deleteCharAt(courWeeks.length() - 1); |
| | | } |
| | | packageResponse.setWeekTime(courWeeks.toString()); |
| | | } |
| | | packageResponse.setTime(coursePackage.getClassStartTime()+"-"+coursePackage.getClassEndTime()); |
| | | |
| | | return packageResponse; |
| | | } |
| | | |
| | | @Override |
| | | public ResultUtil paymentDiscountCoursePack(Integer coursePackageDiscountId, Integer appuserId) { |
| | | // TODO: 2023/7/13 折扣课包支付 |
| | | return null; |
| | | } |
| | | |
| | | |
| | | private static boolean isDateWithinRange(Date date, Date startTime, Date endTime) { |
| | | return date.after(startTime) && date.before(endTime); |