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;
|
|
/**
|
* <p>
|
* 课包折扣 服务实现类
|
* </p>
|
*
|
* @author administrator
|
* @since 2023-06-14
|
*/
|
@Service
|
public class TCoursePackageDiscountServiceImpl extends ServiceImpl<TCoursePackageDiscountMapper, TCoursePackageDiscount> 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<WeekLimitedResponse.Details> list = new ArrayList<>();
|
QueryWrapper<TCoursePackageDiscount> tCoursePackageDiscountQueryWrapper = new QueryWrapper<>();
|
tCoursePackageDiscountQueryWrapper.eq("auditStatus",2 );
|
List<TCoursePackageDiscount> 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;
|
}
|
}
|