| | |
| | | import com.dsh.course.model.vo.response.Details; |
| | | import com.dsh.course.model.vo.response.ExchangeCoursePackageResponse; |
| | | import com.dsh.course.service.TCoursePackageDiscountService; |
| | | import com.dsh.course.util.DateTimeHelper; |
| | | import com.dsh.course.util.LocalDateTimeUtils; |
| | | import com.dsh.course.util.StrUtils; |
| | | import com.dsh.course.util.*; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.text.ParseException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.ArrayList; |
| | | import java.util.Calendar; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | Date parse2 = null; |
| | | String startDate = jsonObject.getString("startDate"); |
| | | String endDate = jsonObject.getString("endDate"); |
| | | String startTime = jsonObject.getString("startTime"); |
| | | String endTime = jsonObject.getString("endTime"); |
| | | |
| | | SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); |
| | | String currentTime = sdf.format(new Date()); |
| | | |
| | | boolean isWithinTimeRange = false; |
| | | try { |
| | | Date currentTimeDate = sdf.parse(currentTime); |
| | | Date startTimeDate = sdf.parse(startTime); |
| | | Date endTimeDate = sdf.parse(endTime); |
| | | |
| | | if (currentTimeDate.after(startTimeDate) && currentTimeDate.before(endTimeDate)) { |
| | | isWithinTimeRange = true; |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | try { |
| | | parse1 = simpleDateFormat.parse(startDate); |
| | | parse2 = simpleDateFormat.parse(endDate); |
| | |
| | | resde.setDate(localTime); |
| | | resde.setOriginalPrice(paymentConfig.getCashPayment()); |
| | | resde.setDiscountPrice(cashPayment); |
| | | if (isWithinTimeRange) { |
| | | resde.setStatus(1); |
| | | }else { |
| | | resde.setStatus(2); |
| | | } |
| | | GetDistanceVo distanceVo = new GetDistanceVo(); |
| | | distanceVo.setLatitude(lat); |
| | | distanceVo.setLongitude(lon); |
| | | distanceVo.setStoreId(coursePackage.getStoreId()); |
| | | String s = sreClient.calculateDistance(distanceVo); |
| | | resde.setStoreDistance(s); |
| | | |
| | | |
| | | |
| | | |
| | | list.add(resde); |
| | | } |
| | | } |
| | |
| | | Date parse2 = null; |
| | | String startDate = jsonObject.getString("startDate"); |
| | | String endDate = jsonObject.getString("endDate"); |
| | | String startTime = jsonObject.getString("startTime"); |
| | | String endTime = jsonObject.getString("endTime"); |
| | | |
| | | SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); |
| | | String currentTime = sdf.format(new Date()); |
| | | |
| | | boolean isWithinTimeRange = false; |
| | | try { |
| | | Date currentTimeDate = sdf.parse(currentTime); |
| | | Date startTimeDate = sdf.parse(startTime); |
| | | Date endTimeDate = sdf.parse(endTime); |
| | | |
| | | if (currentTimeDate.after(startTimeDate) && currentTimeDate.before(endTimeDate)) { |
| | | isWithinTimeRange = true; |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | try { |
| | | parse1 = simpleDateFormat.parse(startDate); |
| | | parse2 = simpleDateFormat.parse(endDate); |
| | |
| | | CoursePackagePaymentConfig paymentConfig = cppcMapper.selectById(tCoursePackageDiscount.getCoursePackagePaymentConfigId()); |
| | | resde.setCourseHours(paymentConfig.getClassHours()); |
| | | resde.setDonateHours(cashPayment); |
| | | resde.setCoin(paymentConfig.getPlayPaiCoin()); |
| | | resde.setDataTime("今日"); |
| | | resde.setDate(localTime); |
| | | resde.setOriginalPrice(paymentConfig.getCashPayment()); |
| | | if (isWithinTimeRange) { |
| | | resde.setStatus(1); |
| | | }else { |
| | | resde.setStatus(2); |
| | | |
| | | } |
| | | GetDistanceVo distanceVo = new GetDistanceVo(); |
| | | distanceVo.setLatitude(lat); |
| | | distanceVo.setLongitude(lon); |
| | |
| | | resde.setCourseHours(paymentConfig.getClassHours()); |
| | | resde.setDonateHours(cashPayment); |
| | | String weekOfDate = ""; |
| | | resde.setCoin(paymentConfig.getPlayPaiCoin()); |
| | | if (weekStr != 7 && tempDate.equals(tomorrowDate)) { |
| | | weekOfDate = "明日"; |
| | | } else { |
| | |
| | | packageResponse.setCoursePackageDiscountId(coursePackageId); |
| | | |
| | | TCoursePackage coursePackage = tcpMapper.selectById(coursePackageId); |
| | | |
| | | packageResponse.setType(coursePackage.getType()); |
| | | packageResponse.setCoverDrawing(coursePackage.getCoverDrawing()); |
| | | packageResponse.setIntroduceDrawing(coursePackage.getIntroduceDrawing()); |
| | | packageResponse.setCoursePackageName(coursePackage.getName()); |
| | | packageResponse.setDetailDrawing(coursePackage.getDetailDrawing()); |
| | | // packageResponse.setPayType(coursePackage.getPayType()); |
| | | |
| | | |
| | | if (coursePackage.getType()==2) { |
| | | Date startTime = coursePackage.getStartTime(); |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd"); |
| | | String formattedDate = sdf.format(startTime); |
| | | |
| | | Date endTime = coursePackage.getEndTime(); |
| | | String formattedDate1 = sdf.format(endTime); |
| | | |
| | | packageResponse.setHoliTime(formattedDate +"-"+ formattedDate1); |
| | | |
| | | } |
| | | 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()); |
| | | String s = sreClient.calculateDistance(distanceVo); |
| | | packageResponse.setDistance(Double.valueOf(s)); |
| | | |
| | | if(ToolUtil.isNotEmpty(lon) && ToolUtil.isNotEmpty(lat)){ |
| | | Map<String, Double> distance = GeodesyUtil.getDistance(lon + "," + lat, store.getLon() + "," + store.getLat()); |
| | | double wgs84 = new BigDecimal(distance.get("WGS84")).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); |
| | | packageResponse.setDistance(wgs84); |
| | | } |
| | | |
| | | // distanceVo.setLatitude(lat); |
| | | // distanceVo.setLongitude(lon); |
| | | // distanceVo.setStoreId(coursePackage.getStoreId()); |
| | | // String s = sreClient.calculateDistance(distanceVo); |
| | | // |
| | | // |
| | | // packageResponse.setDistance(Double.valueOf(s)); |
| | | if (coursePackageDiscount.getType() == 1 || coursePackageDiscount.getType() == 2){ |
| | | return packageResponse; |
| | | } |
| | |
| | | CoursePackagePaymentConfig paymentConfig = cppcMapper.selectById(coursePackageDiscount.getCoursePackagePaymentConfigId()); |
| | | if (coursePackageDiscount.getType() == 3 ||coursePackageDiscount.getType() == 4){ |
| | | Double cashPayment = jsonObject.getDouble("cashPayment"); |
| | | |
| | | if(ToolUtil.isNotEmpty(paymentConfig.getCashPayment()) && paymentConfig.getCashPayment()>0 && ToolUtil.isNotEmpty(paymentConfig.getPlayPaiCoin()) && paymentConfig.getPlayPaiCoin()>0 ){ |
| | | packageResponse.setPayType(3); |
| | | }else if(ToolUtil.isNotEmpty(paymentConfig.getCashPayment()) && paymentConfig.getCashPayment()>0){ |
| | | packageResponse.setPayType(1); |
| | | }else if( ToolUtil.isNotEmpty(paymentConfig.getPlayPaiCoin()) && paymentConfig.getPlayPaiCoin()>0 ){ |
| | | packageResponse.setPayType(2); |
| | | } |
| | | |
| | | packageResponse.setClassHours(paymentConfig.getClassHours()); |
| | | packageResponse.setCostPrice(paymentConfig.getCashPayment()); |
| | | if (paymentConfig.getPlayPaiCoin()!=null) { |
| | | packageResponse.setWanpaiGold(paymentConfig.getPlayPaiCoin()); |
| | | } |
| | | if (cashPayment!=null) { |
| | | packageResponse.setDiscountPrice(cashPayment); |
| | | |
| | | }else { |
| | | packageResponse.setDiscountPrice(paymentConfig.getCashPayment()); |
| | | packageResponse.setCostPrice(null); |
| | | } |
| | | Integer cashPayment1 = jsonObject.getInteger("hour"); |
| | | packageResponse.setFreeClassHours(cashPayment1); |
| | | }else { |
| | | packageResponse.setClassHours(paymentConfig.getClassHours()); |
| | | |
| | |
| | | } |
| | | packageResponse.setWeekTime(courWeeks.toString()); |
| | | } |
| | | packageResponse.setTime(coursePackage.getClassStartTime()+"-"+coursePackage.getClassEndTime()); |
| | | |
| | | String classStartTime = coursePackage.getClassStartTime(); |
| | | String classEndTime = coursePackage.getClassEndTime(); |
| | | ArrayList<String> 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); |
| | | } |
| | | } |
| | | |
| | | String classTimeAsString = String.join(" | ", classTime); |
| | | |
| | | |
| | | |
| | | packageResponse.setTime(classTimeAsString); |
| | | |
| | | return packageResponse; |
| | | } |