puzhibing
2023-08-03 7558a21c1ae1b48b0888f3e3906eb4ba6a68b06f
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
package com.stylefeng.guns.modular.system.service.impl;
 
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity;
import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics;
import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService;
import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
import com.stylefeng.guns.modular.system.dao.ReportLossMapper;
import com.stylefeng.guns.modular.system.model.ReportLoss;
import com.stylefeng.guns.modular.system.model.UserInfo;
import com.stylefeng.guns.modular.system.service.IReportLossService;
import com.stylefeng.guns.modular.system.service.IUserInfoService;
import com.stylefeng.guns.modular.system.util.EmailUtil;
import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
 
import java.io.File;
import java.util.Date;
 
@Service
public class ReportLossServiceImpl extends ServiceImpl<ReportLossMapper, ReportLoss> implements IReportLossService {
 
    @Autowired
    private IOrderPrivateCarService orderPrivateCarService;
 
    @Autowired
    private IOrderTaxiService orderTaxiService;
 
    @Autowired
    private IOrderCrossCityService orderCrossCityService;
 
    @Autowired
    private IOrderLogisticsService orderLogisticsService;
 
    @Autowired
    private IUserInfoService userInfoService;
 
    @Value("${spring.mail.template-path}")
    private String templatePath;
 
 
 
    @Override
    public void addReportLoss(Integer orderType, Integer orderId, String remark, String image) throws Exception {
        ReportLoss reportLoss = new ReportLoss();
        reportLoss.setImage(image);
        reportLoss.setInsertTime(new Date());
        reportLoss.setOrderId(orderId);
        reportLoss.setOrderType(orderType);
        reportLoss.setRemark(remark);
        reportLoss.setState(1);
        reportLoss.setStatus(1);
        switch (orderType){
            case 1:
                OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
                reportLoss.setUserId(orderPrivateCar.getUserId());
                break;
            case 2:
                OrderTaxi orderTaxi = orderTaxiService.selectById(orderId);
                reportLoss.setUserId(orderTaxi.getUserId());
                break;
            case 3:
                OrderCrossCity orderCrossCity = orderCrossCityService.selectById(orderId);
                reportLoss.setUserId(orderCrossCity.getUserId());
                break;
            case 4:
                OrderLogistics orderLogistics = orderLogisticsService.selectById(orderId);
                reportLoss.setUserId(orderLogistics.getUserId());
                break;
            case 5:
                OrderLogistics orderLogistics1 = orderLogisticsService.selectById(orderId);
                reportLoss.setUserId(orderLogistics1.getUserId());
                break;
        }
        this.insert(reportLoss);
 
        UserInfo userInfo = userInfoService.selectById(reportLoss.getUserId());
 
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    if(ToolUtil.isNotEmpty(userInfo.getEmail())){
                        String path = templatePath + "user/reportLoss.html";
                        Document document = Jsoup.parse(new File(path), "UTF-8");
                        document.getElementById("chinese").remove();
                        document.getElementById("french").remove();
                        Element english_user = document.getElementById("english_user");
                        english_user.text("Hello " + userInfo.getNickName() + ",");
                        EmailUtil.send(userInfo.getEmail(), "Report loss of goods",  document.html());
                    }
                }catch (Exception e){
                    e.printStackTrace();
                }
            }
        }).start();
    }
}