puzhibing
2023-02-15 2811bab657aab4145b65a45a824fb63e93b58e30
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
package com.stylefeng.guns.modular.CharteredCar.server.impl;
 
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.CharteredCar.dao.OrderCharteredCarMapper;
import com.stylefeng.guns.modular.CharteredCar.model.OrderCharteredCar;
import com.stylefeng.guns.modular.CharteredCar.server.IOrderCharteredCarService;
import com.stylefeng.guns.modular.system.dao.SensitiveWordsMapper;
import com.stylefeng.guns.modular.system.model.Company;
import com.stylefeng.guns.modular.system.model.OrderCancel;
import com.stylefeng.guns.modular.system.model.SensitiveWords;
import com.stylefeng.guns.modular.system.model.UserInfo;
import com.stylefeng.guns.modular.system.service.ICompanyCityService;
import com.stylefeng.guns.modular.system.service.IOrderCancelService;
import com.stylefeng.guns.modular.system.service.ISystemNoticeService;
import com.stylefeng.guns.modular.system.util.DateUtil;
import com.stylefeng.guns.modular.system.util.ResultUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import javax.annotation.Resource;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
 
@Service
public class OrderCharteredCarServiceImpl extends ServiceImpl<OrderCharteredCarMapper, OrderCharteredCar> implements IOrderCharteredCarService {
 
    @Resource
    private OrderCharteredCarMapper orderCharteredCarMapper;
 
    @Resource
    private SensitiveWordsMapper sensitiveWordsMapper;
 
    @Autowired
    private ICompanyCityService companyCityService;
 
    @Autowired
    private DateUtil dateUtil;
 
    @Autowired
    private IOrderCancelService orderCancelService;
 
    @Autowired
    private ISystemNoticeService systemNoticeService;
 
 
 
    /**
     * 保存数据
     * @param traveltime
     * @param carTime
     * @param modelUse
     * @param peopleNumber
     * @param contactPerson
     * @param contactPhone
     * @param uid
     * @return
     * @throws Exception
     */
    @Override
    public ResultUtil orderCharteredCar(Date travelTime, Integer carTime, Integer serverCarModelId, String modelUse, Integer peopleNumber,
                                        String contactPerson, String contactPhone, String placeLonLat, Integer uid) throws Exception {
        OrderCharteredCar orderCharteredCar = new OrderCharteredCar();
        orderCharteredCar.setUserId(uid);
        Company query = companyCityService.query(placeLonLat.split(",")[0], placeLonLat.split(",")[1]);
        if(null == query){
            return ResultUtil.error("该地点暂无企业服务");
        }
        orderCharteredCar.setCompanyId(query.getId());
        orderCharteredCar.setOrderNumber(this.getOrderNum());
        orderCharteredCar.setTraveltime(travelTime);
        orderCharteredCar.setCarTime(carTime);
        orderCharteredCar.setServerCarModelId(serverCarModelId);
        orderCharteredCar.setModelUse(modelUse);
        orderCharteredCar.setPeopleNumber(peopleNumber);
        orderCharteredCar.setContactPerson(contactPerson);
        orderCharteredCar.setContactPhone(contactPhone);
        orderCharteredCar.setState(1);
        orderCharteredCar.setIsDelete(1);
        orderCharteredCar.setInsertTime(new Date());
        this.insert(orderCharteredCar);
        return ResultUtil.success();
    }
 
 
    /**
     * 获取个人中心订单列表
     * @param uid
     * @param pageNum
     * @param size
     * @return
     * @throws Exception
     */
    @Override
    public List<Map<String, Object>> queryMyOrderList(Integer uid, Integer pageNum, Integer size) throws Exception {
        pageNum = (pageNum - 1) * size;
        List<Map<String, Object>> maps = orderCharteredCarMapper.queryMyOrderList(uid, pageNum, size);
        return maps;
    }
 
 
    @Override
    public ResultUtil addCancle(Integer id, String reason, String remark, Integer uid) throws Exception {
        if(ToolUtil.isNotEmpty(remark)){
            if(ToolUtil.isNotEmpty(remark)){
                List<SensitiveWords> sensitiveWords = sensitiveWordsMapper.selectList(null);
                for(SensitiveWords s : sensitiveWords){
                    remark = remark.replaceAll(s.getContent(), "***");
                }
            }
        }
 
        OrderCharteredCar orderCharteredCar = this.selectById(id);
        if(null == orderCharteredCar){
            return ResultUtil.error("取消订单失败,订单信息有误");
        }
        if(orderCharteredCar.getState() != 1){
            return ResultUtil.error("取消订单失败,不合法的操作");
        }
 
        OrderCancel orderCancel = new OrderCancel();
        orderCancel.setOrderId(id);
        orderCancel.setOrderType(6);
        orderCancel.setReason(reason);
        orderCancel.setRemark(remark);
        orderCancel.setState(2);
        orderCancel.setInsertTime(new Date());
        orderCancel.setUserType(1);
        orderCancelService.insert(orderCancel);
        orderCharteredCar.setState(3);
        this.updateById(orderCharteredCar);
 
        //添加消息
        systemNoticeService.addSystemNotice(1, "您已成功取消旅游包车订单,谢谢使用!", orderCharteredCar.getUserId(), 1);
        Map<String, Object> map = new HashMap<>();
        map.put("id", orderCancel.getId());
        return ResultUtil.success(map);
    }
 
 
 
 
    public synchronized String getOrderNum() throws Exception{
        int size = this.selectCount(null);
        return "CHARTERED" + String.valueOf(1000000 + size + 1).substring(1);
    }
}