liujie
2026-05-12 76b3532393aa98c2daaeb67caeefa2ab9556e866
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
package com.xiaopeng.operation.controller;
 
import com.xiaopeng.api.model.operation.XpOpenCity;
import com.xiaopeng.api.model.operation.XpPasswordFreePolicy;
import com.xiaopeng.api.query.operation.XpPasswordFreePolicyQuery;
import com.xiaopeng.api.vo.account.LoginUser;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.common.core.exception.ServiceException;
import com.xiaopeng.common.core.web.page.PageInfo;
import com.xiaopeng.common.log.annotation.AdminOperationLog;
import com.xiaopeng.common.log.enums.AdminBusinessType;
import com.xiaopeng.common.log.enums.AdminOperationType;
import com.xiaopeng.common.security.service.TokenService;
import com.xiaopeng.operation.service.XpOpenCityService;
import com.xiaopeng.operation.service.XpPasswordFreePolicyService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
 
import javax.annotation.Resource;
import javax.validation.Valid;
import java.time.LocalDateTime;
 
 
@Slf4j
@RestController
@RequestMapping("")
@Api(tags = "免密支付策略")
public class XpPasswordFreePolicyController {
 
 
    @Resource
    private XpPasswordFreePolicyService xpPasswordFreePolicyService;
    @Resource
    private TokenService tokenService;
 
    @Resource
    private  XpOpenCityService xpOpenCityService;
 
    /**
     * 分页查询路线规划配置列表
     */
    @ApiOperation(value = "免密支付策略分页列表", tags = {"管理后台-交易定价-免密支付策略"}, response = XpPasswordFreePolicy.class)
    @PostMapping("/api/v1/passwordFreePolicy/pageList")
    public R<PageInfo<XpPasswordFreePolicy>> pageList(@RequestBody XpPasswordFreePolicyQuery query) {
        PageInfo<XpPasswordFreePolicy> pageInfo = xpPasswordFreePolicyService.pageList(query);
        return R.ok(pageInfo);
    }
 
 
    /**
     * 分页查询路线规划配置列表
     */
    @ApiOperation(value = "免密支付策略详情接口", tags = {"管理后台-交易定价-免密支付策略"}, response = XpPasswordFreePolicy.class)
    @GetMapping("/api/v1/passwordFreePolicy/getById/{id}")
    public R<XpPasswordFreePolicy> getById(@PathVariable Long id) {
        XpPasswordFreePolicy bean = xpPasswordFreePolicyService.getById(id);
        return R.ok(bean);
    }
 
    /**
     * 新增路线规划配置
     */
    @ApiOperation(value = "新增免密支付策略", tags = {"管理后台-交易定价-免密支付策略"})
    @AdminOperationLog(
            businessType = AdminBusinessType.PASSWORD_FREE_POLICY,
            operationType = AdminOperationType.ADD,
            content = "新增免密支付策略",
            appendRequestData = true
    )
    @PostMapping("/api/v1/passwordFreePolicy/add")
    public R<?> add(@Valid @RequestBody XpPasswordFreePolicy dto) {
 
        LoginUser loginUser = tokenService.getLoginUser();
 
        dto.setCreateBy(loginUser.getUsername());
        dto.setCreateTime(LocalDateTime.now());
 
        XpOpenCity xpOpenCity = xpOpenCityService.getByCode(dto.getCityCode());
        if(xpOpenCity == null){
            return R.fail("开通城市不存在");
        }
        dto.setProvinceName(xpOpenCity.getProvinceName());
        dto.setProvinceCode(xpOpenCity.getProvinceCode());
        if(xpOpenCity.getCityCode() .equals(dto.getCityCode())){
            dto.setCityName(xpOpenCity.getCityName());
        }else if(xpOpenCity.getDistrictCode().equals(dto.getCityCode())){
            dto.setCityName(xpOpenCity.getDistrictName());
        }
        xpPasswordFreePolicyService.save(dto);
        return R.ok();
    }
 
    /**
     * 编辑路线规划配置
     */
    @ApiOperation(value = "编辑免密支付策略", tags = {"管理后台-交易定价-免密支付策略"})
    @AdminOperationLog(
            businessType = AdminBusinessType.PASSWORD_FREE_POLICY,
            operationType = AdminOperationType.EDIT,
            content = "编辑免密支付策略",
            appendRequestData = true
    )
    @PostMapping("/api/v1/passwordFreePolicy/edit")
    public R<?> edit(@Valid @RequestBody XpPasswordFreePolicy dto) {
        // 1. 查询原记录是否存在
        XpPasswordFreePolicy routePlan = xpPasswordFreePolicyService.getById(dto.getId());
        if (routePlan == null) {
            return R.fail("数据不存在");
        }
        LoginUser loginUser = tokenService.getLoginUser();
 
        dto.setUpdateBy(loginUser.getUsername());
        dto.setUpdateTime(LocalDateTime.now());
        XpOpenCity xpOpenCity = xpOpenCityService.getByCode(dto.getCityCode());
        if(xpOpenCity == null){
            return R.fail("开通城市不存在");
        }
        dto.setProvinceName(xpOpenCity.getProvinceName());
        dto.setProvinceCode(xpOpenCity.getProvinceCode());
        if(xpOpenCity.getCityCode() .equals(dto.getCityCode())){
            dto.setCityName(xpOpenCity.getCityName());
        }else if(xpOpenCity.getDistrictCode().equals(dto.getCityCode())){
            dto.setCityName(xpOpenCity.getDistrictName());
        }
        xpPasswordFreePolicyService.updateById(dto);
        return R.ok();
    }
 
    /**
     * 删除路线规划配置
     */
    @ApiOperation(value = "删除免密支付策略", tags = {"管理后台-管理后台-交易定价-免密支付策略"})
    @AdminOperationLog(
            businessType = AdminBusinessType.PASSWORD_FREE_POLICY,
            operationType = AdminOperationType.DELETE,
            contentExpression = "'删除免密支付策略,id=' + #p0",
            appendRequestData = false
    )
    @DeleteMapping("/api/v1/passwordFreePolicy/deleteById/{id}")
    public R<?> deleteById(@PathVariable Long id) {
        xpPasswordFreePolicyService.deleteById(id);
        return R.ok();
    }
 
 
}