puzhibing
2026-05-09 b70ae5eb265dcf3911103bb818579e515a3a5ec3
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
151
package com.xiaopeng.operation.controller;
 
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.xiaopeng.api.model.operation.XpAgreement;
import com.xiaopeng.api.model.operation.XpLoginAgreement;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.common.core.web.controller.BaseController;
import com.xiaopeng.operation.dto.XpAgreementDTO;
import com.xiaopeng.operation.service.IXpLoginAgreementService;
import com.xiaopeng.operation.service.XpAgreementService;
import com.xiaopeng.operation.vo.XpAgreementVo;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
 
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.List;
 
@Slf4j
@Validated
@RestController
public class XpAgreementController extends BaseController {
 
    private final XpAgreementService xpAgreementService;
 
    @Resource
    private IXpLoginAgreementService xpLoginAgreementService;
 
    public XpAgreementController(XpAgreementService xpAgreementService) {
        this.xpAgreementService = xpAgreementService;
    }
 
    @ApiOperation(value = "获取协议", tags = {"小程序-首页"}, response = XpAgreementVo.class)
    @GetMapping("/base/v1/mini-program/privacy/content/{type}")
    public R<XpAgreementVo> getContent(@PathVariable Integer type) {
        return R.ok(xpAgreementService.getContentByType(type));
    }
 
 
    @ApiOperation(value = "获取协议所有", tags = {"小程序-首页所有"}, response = XpAgreementVo.class)
    @GetMapping("/base/v1/mini-program/privacy/contentAll")
    public R<List<XpAgreementVo>> contentAll() {
        return R.ok(xpAgreementService.getContentByTypeAll());
    }
 
 
    @ApiOperation(value = "获取登录协议", tags = {"小程序-首页所有"}, response = XpAgreementVo.class)
    @GetMapping("/base/v1/mini-program/loginAgreement/getLoginAgreement")
    public R<List<XpAgreementVo>> getLoginAgreement() {
        return R.ok(xpLoginAgreementService.getLoginAgreementList(1));
    }
 
 
    @ApiOperation(value = "获取协议/隐私政策", tags = {"运维APP-个人中心"}, response = XpAgreementVo.class)
    @GetMapping("/maintenance-app/base/v1/privacy/content/{type}")
    @ApiParam(name = "type", value = "类型 8=运维APP-小鹏Robotaxi自动驾驶出行运维隐私政策 9=运维APP-第三方共享信息清单 10=运维APP-个人信息收集清单 11=运维APP-权限调用")
    public R<XpAgreementVo> getAppContent(@PathVariable Integer type) {
        return R.ok(xpAgreementService.getContentByType(type));
    }
 
 
    @ApiOperation(value = "获取协议/隐私政策", tags = {"运维APP-个人中心"}, response = XpAgreementVo.class)
    @GetMapping("/maintenance-app/base/v1/privacy/getAppContentById/{id}")
    public R<XpAgreementVo> getAppContentById(@ApiParam(name = "id", value = "协议id") @PathVariable Integer id) {
        XpLoginAgreement xpAgreement = xpLoginAgreementService.getById(id);
        if (xpAgreement != null) {
            XpAgreementVo xpAgreementVo = new XpAgreementVo();
            xpAgreementVo.setId(xpAgreement.getId().longValue());
            xpAgreementVo.setContent(xpAgreement.getContent());
            xpAgreementVo.setVersion(xpAgreement.getVersion());
            return R.ok(xpAgreementVo);
        }
        return R.ok();
    }
 
    @ApiOperation(value = "获取协议/隐私政策", tags = {"小程序-首页所有"}, response = XpAgreementVo.class)
    @GetMapping("/base/v1/mini-program/loginAgreement/getAppContentInfo/{id}")
    public R<XpAgreementVo> getAppContentInfo(@ApiParam(name = "id", value = "协议id") @PathVariable Integer id) {
        XpLoginAgreement xpAgreement = xpLoginAgreementService.getById(id);
        if (xpAgreement != null) {
            XpAgreementVo xpAgreementVo = new XpAgreementVo();
            xpAgreementVo.setId(xpAgreement.getId().longValue());
            xpAgreementVo.setContent(xpAgreement.getContent());
            xpAgreementVo.setVersion(xpAgreement.getVersion());
            return R.ok(xpAgreementVo);
        }
        return R.ok();
    }
 
 
 
    @ApiOperation(value = "获取登录协议", tags = {"运维APP-登录"}, response = XpAgreementVo.class)
    @GetMapping("/maintenance-app/base/v1/loginAgreement/getLoginAgreementList")
    public R<List<XpAgreementVo>> getLoginAgreementList() {
        return R.ok(xpLoginAgreementService.getLoginAgreementList(2));
    }
 
 
    @ApiOperation(value = "获取协议", tags = {"管理后台-内容中心"})
    @GetMapping("/api/v1/agreement/content/{type}")
    @ApiParam(name = "type", value = "类型 1=小鹏Robotaxi隐私政策 2=个人信息收集清单 3=敏感个人信息处理情况说明 4=向第三方提供个人信息情况的说明 5=乘车须知 6=计费规则说明 " +
            "7=权限说明 8=运维APP-小鹏Robotaxi自动驾驶出行运维隐私政策 9=运维APP-第三方共享信息清单 10=运维APP-个人信息收集清单 11=运维APP-权限调用 12=预付款协议 13=付款协议")
    public R<XpAgreement> getAgreementContent( @PathVariable Integer type) {
        return R.ok(xpAgreementService.getAgreementContent(type));
    }
 
    @ApiOperation(value = "保存协议", tags = {"管理后台-内容中心"})
    @PostMapping("/api/v1/agreement/save")
    public R<?> saveAgreement(@RequestBody @Valid XpAgreementDTO dto) {
        xpAgreementService.saveAgreement(dto);
        return R.ok();
    }
 
 
    @ApiOperation(value = "获取登录协议列表", tags = {"管理后台-内容中心"})
    @GetMapping("/api/v1/agreement/getLoginAgreementPageList/{type}")
    @ApiParam(name = "type", value = "类型(1=用户登录协议,2=运维APP登录协议)")
    public R<List<XpLoginAgreement>> getLoginAgreementPageList(@PathVariable Integer type) {
        LambdaQueryWrapper<XpLoginAgreement> queryWrapper = new LambdaQueryWrapper<XpLoginAgreement>()
                .eq(XpLoginAgreement::getType, type)
                .eq(XpLoginAgreement::getDeleted, 0)
                .orderByDesc(XpLoginAgreement::getSort);
        List<XpLoginAgreement> list = xpLoginAgreementService.list(queryWrapper);
        return R.ok(list);
    }
 
 
    @ApiOperation(value = "保存登录协议", tags = {"管理后台-内容中心"})
    @PostMapping("/api/v1/agreement/saveLoginAgreement")
    public R<?> saveLoginAgreement(@RequestBody @Valid XpLoginAgreement dto) {
        if(null == dto.getId()){
            long count = xpLoginAgreementService.count(new QueryWrapper<XpLoginAgreement>().eq("type", dto.getType()));
            dto.setSort(Long.valueOf(count + 1).intValue());
        }
        xpLoginAgreementService.saveOrUpdate(dto);
        return R.ok();
    }
 
 
    @ApiOperation(value = "删除登录协议", tags = {"管理后台-内容中心"})
    @DeleteMapping("/api/v1/agreement/deleteLoginAgreement/{id}")
    public R<?> deleteLoginAgreement(@PathVariable Integer id) {
        xpLoginAgreementService.removeById(id);
        return R.ok();
    }
 
}