package com.xiaopeng.operation.controller; 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 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> contentAll() { return R.ok(xpAgreementService.getContentByTypeAll()); } @ApiOperation(value = "获取协议/隐私政策", tags = {"运维APP-个人中心"}, response = XpAgreementVo.class) @GetMapping("/maintenance-app/base/v1/privacy/content/{type}") public R getAppContent(@ApiParam(name = "type", value = "类型 8=运维APP-小鹏Robotaxi自动驾驶出行运维隐私政策 9=运维APP-第三方共享信息清单 10=运维APP-个人信息收集清单 11=运维APP-权限调用") @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 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 = {"运维APP-登录"}, response = XpAgreementVo.class) @GetMapping("/maintenance-app/base/v1/loginAgreement/getLoginAgreementList") public R> getLoginAgreementList() { return R.ok(xpLoginAgreementService.getLoginAgreementList(2)); } @ApiOperation(value = "获取协议", tags = {"管理后台-内容中心"}) @GetMapping("/api/v1/agreement/content/{type}") public R getAgreementContent(@ApiParam(name = "type", value = "类型 -1预付款,-2付款, 1=小鹏Robotaxi隐私政策 2=个人信息收集清单 3=敏感个人信息处理情况说明 4=向第三方提供个人信息情况的说明 5=乘车须知 6=计费规则说明 7=权限说明 8=运维APP-小鹏Robotaxi自动驾驶出行运维隐私政策 9=运维APP-第三方共享信息清单 10=运维APP-个人信息收集清单 11=运维APP-权限调用") @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> getLoginAgreementPageList(@PathVariable Integer type) { List list = xpLoginAgreementService.list(new QueryWrapper().eq("type", type) .eq("is_deleted", 0).orderByDesc("sort")); return R.ok(list); } @ApiOperation(value = "保存登录协议", tags = {"管理后台-内容中心"}) @PostMapping("/api/v1/agreement/saveLoginAgreement") public R saveLoginAgreement(@RequestBody @Valid XpLoginAgreement dto) { long count = xpLoginAgreementService.count(new QueryWrapper().eq("type", dto.getType())); dto.setSort(Long.valueOf(count + 1).intValue()); xpLoginAgreementService.save(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(); } }