xuhy
2026-04-17 b1f9f103c06d413b22953b3e10585674af7d9dd8
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
package com.xiaopeng.operation.service.impl;
 
 
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xiaopeng.api.vo.HotFixInfoVo;
import com.xiaopeng.common.redis.service.RedisService;
import com.xiaopeng.operation.mapper.XpSystemSettingMapper;
import com.xiaopeng.api.model.operation.XpSystemSetting;
import com.xiaopeng.operation.service.XpSystemSettingService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import java.util.Objects;
 
/**
 * <p>
 * 系统设置表 服务实现类
 * </p>
 *
 * @author liu
 * @since 2026-02-03
 */
@Service
public class XpSystemSettingServiceImpl extends ServiceImpl<XpSystemSettingMapper, XpSystemSetting> implements XpSystemSettingService {
    @Autowired
    private RedisService redisService;
    @Override
    public String getCustomerServicePhone() {
        XpSystemSetting xpSystemSetting = this.getOne(null);
        if (xpSystemSetting != null) {
            return xpSystemSetting.getCustomerServicePhone();
        }
        return "";
    }
 
    @Override
    public Integer getOrderDistance() {
        XpSystemSetting xpSystemSetting = this.getOne(null);
        if (xpSystemSetting != null) {
            return xpSystemSetting.getOrderDistance();
        }
        return 0;
    }
 
    @Override
    public Integer getMinOrderDistance() {
        XpSystemSetting xpSystemSetting = this.getOne(null);
        if (xpSystemSetting != null) {
            return xpSystemSetting.getMinOrderDistance();
        }
        return 0;
    }
 
    @Override
    public Integer getOrderFinishTime() {
        XpSystemSetting xpSystemSetting = this.getOne(null);
        if (xpSystemSetting != null) {
            return xpSystemSetting.getArriveTime();
        }
        return 15;
    }
 
    @Override
    public XpSystemSetting getSystemSettingOne(){
        LambdaQueryWrapper<XpSystemSetting> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(XpSystemSetting::getDeleted, false);
        XpSystemSetting obj = super.getOne(queryWrapper, false);
 
        if(obj.getXczCaCount() == null){
            obj.setXczCaCount(2);
        }
        if(obj.getXczSyDistance() == null){
            obj.setXczSyDistance(800);
        }
        if(obj.getXczSyTime() == null){
            obj.setXczSyTime(5);
        }
        if(obj.getXczHmSpeedPerHour() == null){
            obj.setXczSyDistance(3);
        }
        if(obj.getXczHmDuration() == null){
            obj.setXczHmDuration(3);
        }
        return obj;
    }
 
 
    @Override
    public void saveSystemSetting(XpSystemSetting xpSystemSetting) {
        XpSystemSetting existSetting = lambdaQuery().last("limit 1").one();
        if (Objects.nonNull(existSetting)) {
            lambdaUpdate().eq(XpSystemSetting::getId, existSetting.getId())
                    .set(XpSystemSetting::getCustomerServicePhone, xpSystemSetting.getCustomerServicePhone())
                    .set(XpSystemSetting::getOrderDistance, xpSystemSetting.getOrderDistance())
                    .set(XpSystemSetting::getMinOrderDistance, xpSystemSetting.getMinOrderDistance())
                    .set(XpSystemSetting::getArriveTime, xpSystemSetting.getArriveTime())
                    .set(XpSystemSetting::getHeadShowCount, xpSystemSetting.getHeadShowCount())
                    .set(XpSystemSetting::getNearPointDistance, xpSystemSetting.getNearPointDistance())
                    .set(XpSystemSetting::getAdsorptionDistance, xpSystemSetting.getAdsorptionDistance())
                    .set(XpSystemSetting::getHotfixStatus, xpSystemSetting.getHotfixStatus())
                    .set(XpSystemSetting::getHotfixStartTime, xpSystemSetting.getHotfixStartTime())
                    .set(XpSystemSetting::getHotfixEndTime, xpSystemSetting.getHotfixEndTime()).update();
        }else {
            save(xpSystemSetting);
        }
        //保存热修复信息到redis
        HotFixInfoVo hotFixInfoVo = new HotFixInfoVo();
        hotFixInfoVo.setHotfixStatus(xpSystemSetting.getHotfixStatus() == null ? 0 : xpSystemSetting.getHotfixStatus());
        hotFixInfoVo.setHotfixStartTime(xpSystemSetting.getHotfixStartTime());
        hotFixInfoVo.setHotfixEndTime(xpSystemSetting.getHotfixEndTime());
        redisService.setCacheObject("HOT_FIX_INFO", hotFixInfoVo);
    }
}