puzhibing
2023-07-10 f95325fd2635a9af08c0acac70e70379978d128a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
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;
    }
}