package com.dsh.course.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dsh.course.entity.TCoursePackage; import com.dsh.course.entity.TCoursePackageDiscount; import com.dsh.course.feignclient.other.StoreClient; import com.dsh.course.feignclient.other.model.GetDistanceVo; import com.dsh.course.mapper.TCoursePackageDiscountMapper; import com.dsh.course.mapper.TCoursePackageMapper; import com.dsh.course.model.vo.response.WeekLimitedResponse; import com.dsh.course.service.TCoursePackageDiscountService; import com.dsh.course.util.DateTimeHelper; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; /** *

* 课包折扣 服务实现类 *

* * @author administrator * @since 2023-06-14 */ @Service public class TCoursePackageDiscountServiceImpl extends ServiceImpl implements TCoursePackageDiscountService { @Resource private TCoursePackageMapper tcpMapper; @Resource private StoreClient sreClient; @Override public WeekLimitedResponse getWeeksBenefitCourse(Integer appUserId,Integer discountType,String lon,String lat) { Date start = DateTimeHelper.getTodayTime(); Date lastTime = DateTimeHelper.getWeekOfLastDay(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); WeekLimitedResponse response= new WeekLimitedResponse(); List list = new ArrayList<>(); QueryWrapper tCoursePackageDiscountQueryWrapper = new QueryWrapper<>(); tCoursePackageDiscountQueryWrapper.eq("auditStatus",2 ); List tCoursePackageDiscounts = new ArrayList<>(); if (null == discountType || discountType == 1){ tCoursePackageDiscountQueryWrapper.eq("type",3); response.setDiscountType(1); tCoursePackageDiscounts = this.baseMapper.selectList(tCoursePackageDiscountQueryWrapper); if (tCoursePackageDiscounts.size() > 0){ for (TCoursePackageDiscount tCoursePackageDiscount : tCoursePackageDiscounts) { WeekLimitedResponse.Details ls = new WeekLimitedResponse.Details(); try { ObjectMapper objectMapper = new ObjectMapper(); JsonNode rootNode = null; rootNode = objectMapper.readTree(tCoursePackageDiscount.getContent()); String courseHours = rootNode.get("courseHours").asText(); String lifespanEnd = rootNode.get("lifespanEnd").asText(); Date endTime = simpleDateFormat.parse(lifespanEnd); if (endTime.compareTo(lastTime) < 0){ continue; } TCoursePackage coursePackage = tcpMapper.selectById(tCoursePackageDiscount.getCoursePackageId()); GetDistanceVo distanceVo = new GetDistanceVo(); distanceVo.setLatitude(lat); distanceVo.setLongitude(lon); distanceVo.setStoreId(coursePackage.getStoreId()); ls.setStoreDistance(sreClient.calculateDistance(distanceVo)); // TODO: 2023/7/10 限时折扣查询 list.add(ls); } catch (Exception e) { e.printStackTrace(); } } } }else { tCoursePackageDiscountQueryWrapper.eq("type",4); response.setDiscountType(2); tCoursePackageDiscounts = this.baseMapper.selectList(tCoursePackageDiscountQueryWrapper); if (tCoursePackageDiscounts.size() > 0){ for (TCoursePackageDiscount tCoursePackageDiscount : tCoursePackageDiscounts) { try { ObjectMapper objectMapper = new ObjectMapper(); JsonNode rootNode = null; rootNode = objectMapper.readTree(tCoursePackageDiscount.getContent()); String courseHours = rootNode.get("courseHours").asText(); String lifespanStart = rootNode.get("lifespanStart").asText(); String lifespanEnd = rootNode.get("lifespanEnd").asText(); String classHours = rootNode.get("classHours").asText(); } catch (Exception e) { e.printStackTrace(); } } } } return response; } }